i was using AdvancedGadgetEvents() for something like this, so it was very usefull for me...
Code: Select all
;/ Default-Button Example by nco2k (long time ago)
#Button_A = 0
#Button_B = 1
#Button_Exit = 2
#Shortcut_Escape = 0
#Shortcut_Return = 1
Global DefaultButton.l
Procedure WndProc(hWnd, Msg, wParam, lParam)
If Msg = #WM_ACTIVATE
If hWnd = WindowID(0)
If (wParam & $FFFF) = #WA_INACTIVE
SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, 0, #True)
SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, 0, #True)
SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, 0, #True)
Else
If DefaultButton = #Button_A
SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
ElseIf DefaultButton = #Button_B
SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
ElseIf DefaultButton = #Button_Exit
SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
EndIf
EndIf
EndIf
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0, 0, 0, 320, 95, #PB_Window_TitleBar | #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Default-Button Example")
If CreateGadgetList(WindowID(0))
AdvancedGadgetEvents(#True)
ButtonGadget(#Button_A, 110, 5, 100, 25, "A")
ButtonGadget(#Button_B, 110, 35, 100, 25, "B", #PB_Button_Default)
DefaultButton = #Button_B
ActivateGadget(#Button_B)
ButtonGadget(#Button_Exit, 110, 65, 100, 25, "Exit")
EndIf
AddKeyboardShortcut(0, #PB_Shortcut_Escape, #Shortcut_Escape)
AddKeyboardShortcut(0, #PB_Shortcut_Return, #Shortcut_Return)
SetWindowCallback(@WndProc())
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenuID()
Case #Shortcut_Escape
End
Case #Shortcut_Return
If DefaultButton = #Button_A
Debug "A"
ElseIf DefaultButton = #Button_B
Debug "B"
ElseIf DefaultButton = #Button_Exit
End
EndIf
EndSelect
Case #PB_Event_Gadget
Select EventGadgetID()
Case #PB_Event_Gadget
Case #Button_A
Select EventType()
Case #PB_EventType_Focus
SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, 0, #True)
SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, 0, #True)
SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
DefaultButton = #Button_A
Case #PB_EventType_LeftClick
Debug "A"
EndSelect
Case #Button_B
Select EventType()
Case #PB_EventType_Focus
SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, 0, #True)
SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, 0, #True)
SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
DefaultButton = #Button_B
Case #PB_EventType_LeftClick
Debug "B"
EndSelect
Case #Button_Exit
Select EventType()
Case #PB_EventType_Focus
SendMessage_(GadgetID(#Button_A), #BM_SETSTYLE, 0, #True)
SendMessage_(GadgetID(#Button_B), #BM_SETSTYLE, 0, #True)
SendMessage_(GadgetID(#Button_Exit), #BM_SETSTYLE, #BS_DEFPUSHBUTTON, #True)
DefaultButton = #Button_Exit
Case #PB_EventType_LeftClick
End
EndSelect
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
End
same with MoveWindow() why was that dropped?? now i have to use ResizeWindow(0, 200, 200, WindowWidth(0), WindowHeight(0)) when i only want to change the x/y. :roll: