[bmx] RequestText by Galaxy613 [ 1+ years ago ]

Started by BlitzBot, June 29, 2017, 00:28:42

Previous topic - Next topic

BlitzBot

Title : RequestText
Author : Galaxy613
Posted : 1+ years ago

Description : You can use Confirm, Notify, RequestFile... but not get a single line of text. This is a simple MaxGUI function to quickly get a line of text from the user.

Code :
Code (blitzmax) Select
Import maxgui.Drivers
Import maxgui.proxyGadgets
?Win32
Import maxgui.win32maxguiex
?MacOS
Import maxgui.CocoaMaxGui
?Linux
Import MaxGui.FLTKMaxGui
?

Function RequestText$(titleText$, questionText$, defaultTxt$="", doesGameHideMouse = True)
Local rWindow:TGadget = CreateWindow(titleText,64,64,350,125,Null,WINDOW_TITLEBAR|WINDOW_CENTER)
CreateLabel(questionText,8,8,325,16,rWindow)
Local rTextfield:TGadget = CreateTextField(8,8+24,325,24,rWindow)
Local rOkButton:TGadget = CreateButton("Ok",325-200-8,32+32,100,24,rWindow)
Local rCancelButton:TGadget = CreateButton("Cancel",325-100,32+32,100,24,rWindow)

rTextfield.SetText defaultTxt

ActivateWindow rWindow
If doesGameHideMouse Then ShowMouse

While Not AppTerminate( )
   WaitEvent()

Select CurrentEvent.id
Case EVENT_WINDOWCLOSE, EVENT_APPTERMINATE
rTextfield.SetText defaultTxt
Exit
Case EVENT_GADGETACTION
If CurrentEvent.source = rOkButton Then
Exit
ElseIf CurrentEvent.source = rCancelButton
rTextfield.SetText defaultTxt
Exit
End If
End Select
Wend

Local returnText$ = rTextfield.GetText()

HideGadget rWindow
FreeGadget rWindow
If doesGameHideMouse Then HideMouse

Return returnText
End Function


Comments : none...