Code updated for 5.20+
Excellent work Fred!
This is what I searched for . Now here is an example:
Code: Select all
; (c) 2001 - Franco's template - absolutely freeware
; Events with the new @ProcedureName() command.
; ; Enable inline ASM support!
;
; EnableASM
Dim ConnectMenu.i(16) ;max gadgets from menu & toolbar
Dim ConnectGadget.i(3) ;max other gadgets
; Create all Functions and connect these.
Procedure FunctionNew()
MessageRequester("Procedure Function","New",0)
EndProcedure
ConnectMenu(0) = @FunctionNew()
ConnectMenu(14) = @FunctionNew()
ConnectGadget(0) = @FunctionNew()
Procedure FunctionOpen()
MessageRequester("Procedure Function","Open",0)
EndProcedure
ConnectMenu(1) = @FunctionOpen()
ConnectMenu(15) = @FunctionOpen()
ConnectGadget(1) = @FunctionOpen()
Procedure FunctionSave()
MessageRequester("Procedure Function","Save",0)
EndProcedure
ConnectMenu(2) = @FunctionSave()
ConnectMenu(16) = @FunctionSave()
ConnectGadget(2) = @FunctionSave()
Procedure FunctionPrint()
MessageRequester("Procedure Function","Print",0)
EndProcedure
ConnectMenu(3) = @FunctionPrint()
ConnectGadget(3) = @FunctionPrint()
Procedure FunctionFind()
MessageRequester("Procedure Function","Find",0)
EndProcedure
ConnectMenu(4) = @FunctionFind()
Procedure FunctionReplace()
MessageRequester("Procedure Function","Replace",0)
EndProcedure
ConnectMenu(5) = @FunctionReplace()
Procedure FunctionCut()
MessageRequester("Procedure Function","Cut",0)
EndProcedure
ConnectMenu(6) = @FunctionCut()
Procedure FunctionCopy()
MessageRequester("Procedure Function","Copy",0)
EndProcedure
ConnectMenu(7) = @FunctionCopy()
Procedure FunctionPaste()
MessageRequester("Procedure Function","Paste",0)
EndProcedure
ConnectMenu(8) = @FunctionPaste()
Procedure FunctionUndo()
MessageRequester("Procedure Function","Undo",0)
EndProcedure
ConnectMenu(9) = @FunctionUndo()
Procedure FunctionRedo()
MessageRequester("Procedure Function","Redo",0)
EndProcedure
ConnectMenu(10) = @FunctionRedo()
Procedure FunctionDelete()
MessageRequester("Procedure Function","Delete",0)
EndProcedure
ConnectMenu(11) = @FunctionDelete()
Procedure FunctionProperties()
MessageRequester("Procedure Function","Properties",0)
EndProcedure
ConnectMenu(12) = @FunctionProperties()
Procedure FunctionHelp()
MessageRequester("Procedure Function","Help",0)
EndProcedure
ConnectMenu(13) = @FunctionHelp()
If OpenWindow(0, 200, 200, 340, 240, "ToolBar event example", #PB_Window_SystemMenu)
If CreateToolBar(0, WindowID(0))
ToolBarStandardButton(0, #PB_ToolBarIcon_New)
ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
ToolBarStandardButton(3, #PB_ToolBarIcon_Print)
ToolBarStandardButton(4, #PB_ToolBarIcon_Find)
ToolBarStandardButton(5, #PB_ToolBarIcon_Replace)
ToolBarStandardButton(6, #PB_ToolBarIcon_Cut)
ToolBarStandardButton(7, #PB_ToolBarIcon_Copy)
ToolBarStandardButton(8, #PB_ToolBarIcon_Paste)
ToolBarStandardButton(9, #PB_ToolBarIcon_Undo)
ToolBarStandardButton(10, #PB_ToolBarIcon_Redo)
ToolBarStandardButton(11, #PB_ToolBarIcon_Delete)
ToolBarStandardButton(12, #PB_ToolBarIcon_Properties)
ToolBarStandardButton(13, #PB_ToolBarIcon_Help)
EndIf
If CreateMenu(0, WindowID(0))
MenuTitle("Project")
MenuItem(14, "New")
MenuItem(15, "Open")
MenuItem(16, "Save")
EndIf
ButtonGadget(0,2,170,80,25,"New")
ButtonGadget(1,85,170,80,25,"Open")
ButtonGadget(2,168,170,80,25,"Save")
ButtonGadget(3,251,170,80,25,"Print")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Menu : Function.i = ConnectMenu(EventGadget()) : CallFunctionFast(Function) : EndIf
If EventID = #PB_Event_Gadget : Function.i = ConnectGadget(EventGadget()) : CallFunctionFast(Function) : EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
End
Franco