Code: Select all
Enumeration
#main_win: #font
#F1
#main_menu
#test1
#test2
#break
#text
EndEnumeration
;-------------------------------------------------------
Global win_color.l=$E1C193
Global breaking=0
;-------------------------------------------------------
Declare mainmenu()
Declare sneltoets()
Declare proces1()
Declare proces2()
Declare breaking()
;-------------------------------------------------------
LoadFont(#font,"caladea",12, #PB_Font_Bold)
flags=#PB_Window_SystemMenu;| #PB_Window_Maximize;#PB_Window3D_Borderless;|#PB_Window_ScreenCentered
If OpenWindow (#main_win,200,200,500,500, "Break test" ,flags )
SetWindowColor(#main_win,win_color)
TextGadget(#text,100,300,300,30,"ok")
sneltoets() ;shortcut keys
mainmenu()
Repeat
Ev = WaitWindowEvent()
Select ev ;
Case #PB_Event_Menu
Select EventMenu()
Case #F1 ;break
breaking=1
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #test1
breaking=0
proces1()
Debug "test1"
Case #test2
breaking=0
proces2()
Debug "test2"
Case #break
breaking=1
Debug "break"
EndSelect
EndSelect
Until ev=#PB_Event_CloseWindow
EndIf
End
;--------------------------------------------------------
Procedure breaking()
TextGadget(#text,100,300,300,30,"interrupted")
EndProcedure
;----------------------------------------------------------
Procedure proces1()
n.l
TextGadget(#text,100,300,300,30,"RUNNING1")
For n=0 To 10000
Delay (10) ;
If breaking=1 ;test if break is pressed
Break
EndIf
Next
If breaking=0
TextGadget(#text,100,300,300,30,"end1")
Else
breaking()
EndIf
EndProcedure
;--------------------------------------------------------------
Procedure proces2()
n.l
TextGadget(#text,100,300,300,30,"RUNNING2")
For n=0 To 10000
Delay (10) ;
If breaking=1
Break
EndIf
Next
If breaking=0
TextGadget(#text,100,300,300,30,"end2")
Else
breaking()
EndIf
EndProcedure
;--------------------------------------------------------------
Procedure mainmenu()
ContainerGadget(#main_menu,10,10,200,200, #PB_Container_Raised)
If LoadFont(0, "Arial", 12,#PB_Font_Bold)
SetGadgetFont(#PB_Default, FontID(0)) ; Set the loaded Arial 16 font as new standard
EndIf
; SetGadgetFont(#main_menu, FontID(#font)) ; Set the loaded Arial 16 font as new standard
SetGadgetColor(#main_menu, #PB_Gadget_BackColor ,$9D7742)
ButtonGadget(#test1 ,20,20,120,40,"TEST1")
ButtonGadget(#TEST2 ,20,70,120,40,"TEST2")
ButtonGadget(#break ,20,120,120,40,"BREAK")
CloseGadgetList()
EndProcedure
;---------------------------------------------------------------------------------
Procedure sneltoets() ;sneltoetsen voor keybord events
AddKeyboardShortcut(#main_win, #PB_Shortcut_F1,#F1)
EndProcedure
;----------------------------------------------------------