Ooops
October 28, 2020, 05:28:00 AM

Author Topic: [bmx] System Requestors for MaxGUI by JoshK [ 1+ years ago ]  (Read 1179 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
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
  1. SuperStrict
  2.  
  3. Import brl.system
  4. Import maxgui.maxgui
  5.  
  6. Private
  7.  
  8. Global disabledwindowslist:TList
  9.  
  10. Function TopMostGadget:TGadget(gadget:TGadget)
  11.         While gadget.parent
  12.                 gadget=gadget.parent
  13.         Wend
  14.         Return gadget
  15. EndFunction
  16.  
  17. Function DisableWindows(gadget:TGadget)
  18.         If Not disabledwindowslist disabledwindowslist=New TList
  19.         If Not GadgetDisabled(gadget)
  20.                 DisableGadget gadget
  21.                 disabledwindowslist.addlast(gadget)
  22.         EndIf
  23.         For gadget=EachIn gadget.kids
  24.                 If GadgetClass(gadget)=GADGET_WINDOW
  25.                         DisableWindows gadget
  26.                 EndIf
  27.         Next
  28. EndFunction
  29.  
  30. Public
  31.  
  32. Function Notify:Int(text:String,serious:Int=False)
  33.         Local result:Int
  34.         Local gadget:TGadget
  35.        
  36.         gadget=ActiveGadget()
  37.         If gadget
  38.                 gadget=TopMostGadget(gadget)
  39.                 DisableWindows(gadget)
  40.         EndIf
  41.        
  42.         result=brl.system.Notify(text,serious)
  43.        
  44.         If disabledwindowslist
  45.                 For gadget=EachIn disabledwindowslist
  46.                         EnableGadget gadget
  47.                 Next
  48.                 disabledwindowslist=Null
  49.         EndIf  
  50.        
  51.         Return result
  52. EndFunction
  53.  
  54. Function Confirm:Int(text:String,serious:Int=False)
  55.         Local result:Int
  56.         Local gadget:TGadget
  57.        
  58.         gadget=ActiveGadget()
  59.         If gadget
  60.                 gadget=TopMostGadget(gadget)
  61.                 DisableWindows(gadget)
  62.         EndIf
  63.                
  64.         result=brl.system.Confirm(text,serious)
  65.        
  66.         If disabledwindowslist
  67.                 For gadget=EachIn disabledwindowslist
  68.                         EnableGadget gadget
  69.                 Next
  70.                 disabledwindowslist=Null
  71.         EndIf  
  72.        
  73.         Return result
  74. EndFunction
  75.  
  76. Function Proceed:Int(text:String,serious:Int=False)
  77.         Local result:Int
  78.         Local gadget:TGadget
  79.        
  80.         gadget=ActiveGadget()
  81.         If gadget
  82.                 gadget=TopMostGadget(gadget)
  83.                 DisableWindows(gadget)
  84.         EndIf
  85.        
  86.         result=brl.system.Proceed(text,serious)
  87.        
  88.         If disabledwindowslist
  89.                 For gadget=EachIn disabledwindowslist
  90.                         EnableGadget gadget
  91.                 Next
  92.                 disabledwindowslist=Null
  93.         EndIf  
  94.        
  95.         Return result
  96. EndFunction
  97.  
  98. Function RequestDir:String(text:String,initial_path:String="")
  99.         Local result:String
  100.         Local gadget:TGadget
  101.        
  102.         gadget=ActiveGadget()
  103.         If gadget
  104.                 gadget=TopMostGadget(gadget)
  105.                 DisableWindows(gadget)
  106.         EndIf
  107.        
  108.         result=brl.system.RequestDir(text,initial_path)
  109.        
  110.         If disabledwindowslist
  111.                 For gadget=EachIn disabledwindowslist
  112.                         EnableGadget gadget
  113.                 Next
  114.                 disabledwindowslist=Null
  115.         EndIf  
  116.        
  117.         Return result
  118. EndFunction
  119.  
  120. Function RequestFile:String(text:String,extensions:String="",save_flag:Int=False,initial_path:String="")
  121.         Local result:String
  122.         Local gadget:TGadget
  123.        
  124.         gadget=ActiveGadget()
  125.         If gadget
  126.                 gadget=TopMostGadget(gadget)
  127.                 DisableWindows(gadget)
  128.         EndIf
  129.        
  130.         result=brl.system.RequestFile(text,extensions,save_flag,initial_path)
  131.        
  132.         If disabledwindowslist
  133.                 For gadget=EachIn disabledwindowslist
  134.                         EnableGadget gadget
  135.                 Next
  136.                 disabledwindowslist=Null
  137.         EndIf  
  138.        
  139.         Return result
  140. EndFunction


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal