[bmx] System Requestors for MaxGUI by JoshK [ 1+ years ago ]

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

Previous topic - Next topic

BlitzBot

Title : System Requestors for MaxGUI
Author : JoshK
Posted : 1+ years ago

Description : brl.system requestors that disable all program windows while open

Code :
Code: blitzmax
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...