January 28, 2020, 02:50:10 PM

Author Topic: [bmx] RequestText by Galaxy613 [ 1+ years ago ]  (Read 772 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bmx] RequestText by Galaxy613 [ 1+ years ago ]
« on: June 29, 2017, 12:28:42 AM »
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
  1. Import maxgui.Drivers
  2. Import maxgui.proxyGadgets
  3. ?Win32
  4. Import maxgui.win32maxguiex
  5. ?MacOS
  6. Import maxgui.CocoaMaxGui
  7. ?Linux
  8. Import MaxGui.FLTKMaxGui
  9. ?
  10.  
  11. Function RequestText$(titleText$, questionText$, defaultTxt$="", doesGameHideMouse = True)
  12.         Local rWindow:TGadget = CreateWindow(titleText,64,64,350,125,Null,WINDOW_TITLEBAR|WINDOW_CENTER)
  13.         CreateLabel(questionText,8,8,325,16,rWindow)
  14.         Local rTextfield:TGadget = CreateTextField(8,8+24,325,24,rWindow)
  15.         Local rOkButton:TGadget = CreateButton("Ok",325-200-8,32+32,100,24,rWindow)
  16.         Local rCancelButton:TGadget = CreateButton("Cancel",325-100,32+32,100,24,rWindow)
  17.        
  18.         rTextfield.SetText defaultTxt
  19.        
  20.         ActivateWindow rWindow
  21.         If doesGameHideMouse Then ShowMouse
  22.        
  23.         While Not AppTerminate( )
  24.             WaitEvent()
  25.                        
  26.                 Select CurrentEvent.id
  27.                         Case EVENT_WINDOWCLOSE, EVENT_APPTERMINATE
  28.                                 rTextfield.SetText defaultTxt
  29.                                 Exit
  30.                         Case EVENT_GADGETACTION
  31.                                 If CurrentEvent.source = rOkButton Then
  32.                                         Exit
  33.                                 ElseIf CurrentEvent.source = rCancelButton
  34.                                         rTextfield.SetText defaultTxt
  35.                                         Exit
  36.                                 End If
  37.                 End Select
  38.         Wend
  39.        
  40.         Local returnText$ = rTextfield.GetText()
  41.        
  42.         HideGadget rWindow
  43.         FreeGadget rWindow
  44.         If doesGameHideMouse Then HideMouse
  45.        
  46.         Return returnText
  47. End Function


Comments : none...