Unfortunately, some events cannot be bound, so my event declaration block looks like this:
Code: Select all
BindGadgetEvent(#CANVAS_MAIN, @OnInput(), #PB_EventType_Input)
BindGadgetEvent(#CANVAS_MAIN, @OnKeyUp(), #PB_EventType_KeyUp)
BindGadgetEvent(#CANVAS_MAIN, @OnKeyDown(), #PB_EventType_KeyDown)
BindGadgetEvent(#CANVAS_MAIN, @OnLeftClick(), #PB_EventType_LeftClick)
BindGadgetEvent(#CANVAS_MAIN, @OnRightClick(), #PB_EventType_RightClick)
BindGadgetEvent(#CANVAS_MAIN, @OnMouseMove(), #PB_EventType_MouseMove)
BindGadgetEvent(#CANVAS_MAIN, @OnMouseWheel(), #PB_EventType_MouseWheel)
BindEvent(#PB_Event_SizeWindow, @OnResize(), #WINDOW_MAIN)
BindEvent(#PB_Event_ActivateWindow, @OnFocus(), #WINDOW_MAIN)
BindEvent(#PB_Event_Timer, @OnTimer(), #WINDOW_MAIN)
BindEvent(#EVENT_REDRAW_TERMINAL, @RenderTerminal())
BindEvent(#EVENT_REDRAW_VIEW, @RenderView())
AddKeyboardShortcut(#WINDOW_MAIN, #PB_Shortcut_Tab, #EVENT_TAB)
AddKeyboardShortcut(#WINDOW_MAIN, #PB_Shortcut_Shift | #PB_Shortcut_Tab, #EVENT_SHIFT_TAB)
Repeat
event = WaitWindowEvent()
Select event
Case #PB_Event_CloseWindow
CloseTerminal()
Case #PB_Event_Menu
Select EventMenu()
Case #EVENT_TAB
If terminal\no_keyboard_navigation = #False And terminal\active_view\locked = #False
NextView()
EndIf
Case #EVENT_SHIFT_TAB
If terminal\no_keyboard_navigation = #False And terminal\active_view\locked = #False
PreviousView()
EndIf
EndSelect
EndSelect
ForEver
EDIT: Hmm... Maybe they could all go to BindEvent actually
