Code archives/BlitzPlus Gui/RequestText

This code has been declared by its author to be Public Domain code.

Download source code

RequestText by Galaxy6132011
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.
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.

Code Archives Forum