Yeah, we need the cancel option!
I made a very simple one:
Code: Select all
Procedure.s InputRequesterOkCancel(Title$,Message$,DefaultString$)
Protected Result$, Window, String, OK, Cancel
Window = OpenWindow(#PB_Any,0,0,300,95,Title$,#PB_Window_ScreenCentered)
If Window And CreateGadgetList(WindowID(Window))
TextGadget(#PB_Any,10,10,280,20,Message$)
String = StringGadget(#PB_Any,10,30,280,20,DefaultString$): SetActiveGadget(String)
OK = ButtonGadget(#PB_Any,60,60,80,25,"OK",#PB_Button_Default)
Cancel = ButtonGadget(#PB_Any,150,60,80,25,"Cancel")
Repeat
If WaitWindowEvent() = #PB_Event_Gadget
If EventGadget() = OK
Result$ = GetGadgetText(String)
Break
ElseIf EventGadget() = Cancel
Result$ = ""
Break
EndIf
EndIf
If GetKeyState_(#VK_RETURN) > 1
Result$ = GetGadgetText(String)
Break
EndIf
ForEver
EndIf
CloseWindow(Window)
ProcedureReturn Result$
EndProcedure
Input$ = InputRequesterOkCancel("Hello","Enter a string:","")
If Input$
Debug Input$
EndIf
I like logic, hence I dislike humans but love computers.