Code archives/BlitzPlus Gui/System Requestors for MaxGUI

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

Download source code

System Requestors for MaxGUI by JoshK2011
brl.system requestors that disable all program windows while open
SuperStrict

Import brl.system
Import maxgui.maxgui

Private

Global disabledwindowslist:TList

Function TopMostGadget:TGadget(gadget:TGadget)
	While gadget.parent
		gadget=gadget.parent
	Wend
	Return gadget
EndFunction

Function DisableWindows(gadget:TGadget)
	If Not disabledwindowslist disabledwindowslist=New TList
	If Not GadgetDisabled(gadget)
		DisableGadget gadget
		disabledwindowslist.addlast(gadget)
	EndIf
	For gadget=EachIn gadget.kids
		If GadgetClass(gadget)=GADGET_WINDOW
			DisableWindows gadget
		EndIf
	Next
EndFunction

Public

Function Notify:Int(text:String,serious:Int=False)
	Local result:Int
	Local gadget:TGadget
	
	gadget=ActiveGadget()
	If gadget
		gadget=TopMostGadget(gadget)
		DisableWindows(gadget)
	EndIf
	
	result=brl.system.Notify(text,serious)
	
	If disabledwindowslist
		For gadget=EachIn disabledwindowslist
			EnableGadget gadget
		Next
		disabledwindowslist=Null
	EndIf	
	
	Return result
EndFunction

Function Confirm:Int(text:String,serious:Int=False)
	Local result:Int
	Local gadget:TGadget
	
	gadget=ActiveGadget()
	If gadget
		gadget=TopMostGadget(gadget)
		DisableWindows(gadget)
	EndIf
		
	result=brl.system.Confirm(text,serious)
	
	If disabledwindowslist
		For gadget=EachIn disabledwindowslist
			EnableGadget gadget
		Next
		disabledwindowslist=Null
	EndIf	
	
	Return result
EndFunction

Function Proceed:Int(text:String,serious:Int=False)
	Local result:Int
	Local gadget:TGadget
	
	gadget=ActiveGadget()
	If gadget
		gadget=TopMostGadget(gadget)
		DisableWindows(gadget)
	EndIf
	
	result=brl.system.Proceed(text,serious)
	
	If disabledwindowslist
		For gadget=EachIn disabledwindowslist
			EnableGadget gadget
		Next
		disabledwindowslist=Null
	EndIf	
	
	Return result
EndFunction

Function RequestDir:String(text:String,initial_path:String="")
	Local result:String
	Local gadget:TGadget
	
	gadget=ActiveGadget()
	If gadget
		gadget=TopMostGadget(gadget)
		DisableWindows(gadget)
	EndIf
	
	result=brl.system.RequestDir(text,initial_path)
	
	If disabledwindowslist
		For gadget=EachIn disabledwindowslist
			EnableGadget gadget
		Next
		disabledwindowslist=Null
	EndIf	
	
	Return result
EndFunction

Function RequestFile:String(text:String,extensions:String="",save_flag:Int=False,initial_path:String="")
	Local result:String
	Local gadget:TGadget
	
	gadget=ActiveGadget()
	If gadget
		gadget=TopMostGadget(gadget)
		DisableWindows(gadget)
	EndIf
	
	result=brl.system.RequestFile(text,extensions,save_flag,initial_path)
	
	If disabledwindowslist
		For gadget=EachIn disabledwindowslist
			EnableGadget gadget
		Next
		disabledwindowslist=Null
	EndIf	
	
	Return result
EndFunction

Comments

None.

Code Archives Forum