gui_main_task() retrieves events from the main message queue. The types are 0-6 and the events have an integer parameter, an object pointer and an unknown 32-bit value.
- 0: GUI_CONTROL
- 1: GUI_CHANGE_MODE
- 2: Local event?
- 3: GUI_OTHER_EVENT (11 == CANCEL_ALL_EVENT)
- 4: Timeout?
- 5: GUI_CHANGE_SHOOT_TYPE
- 6: GUI_CHANGE_LCD_STATE
The massive gui event handler transforms the parameter value for GUI_CONTROL events into some other type of event. The low values (0x00-0xFF?) are reserved for dialog box items on screen. It should be possible to generate a mapping of event parameters to GUI events and each button to a gui event.
- 0x800 == GOT_TOP_OF_CONTROL
- 0x801 == LOST_TOP_OF_CONTROL
- 0x802 == INITIALIZE_CONTROLLER
- 0x804 == TERMINATE_WINSYS
- 0x805 == DELETE_DIALOG_REQUEST
- 0x807 == PRESS_RIGHT_BUTTON
- 0x809 == PRESS_LEFT_BUTTON [AJ 5D2] PRESS_MLT_LEFT_BUTTON
- 0x80B == PRESS_UP_BUTTON [AJ 5D2] PRESS_MLT_UP_BUTTON
- 0x80D == PRESS_DOWN_BUTTON [AJ 5D2] PRESS_MLT_DOWN_BUTTON
- 0x80F == PRESS_MENU_BUTTON [AJ 5D2] PRESS_MENU/DISP_BUTTON
- 0x810 == [AJ 5D2] ?
- 0x812 == PRESS_SET_BUTTON (maybe)
- 0x819 == [AJ 5D2] PRESS_TELE_MAG_BUTTON
- 0x81A == [AJ 5D2] UNPRESS_TELE_MAG_BUTTON
- 0x81B == PRESS_UP_BUTTON [AJ 5D2] PRESS_WIDE_REDUCTION_BUTTON
- 0x81C == [AJ 5D2] UNPRESS_WIDE_REDUCTION_BUTTON
- 0x81D == [AJ 5D2] ?
- 0x81F == [AJ 5D2] PRESS_MLT_LEFTUP_BUTTON
- 0x820 == SUB_DIAL (spin left)
- 0x821 == [AJ 5D2] PRESS_MLT_LEFTDOWN_BUTTON
- 0x822 == [AJ 5D2] ?
- 0x823 == PRESS_MLT_CENTER_BUTTON
- 0x824 == [AJ 5D2] ?
- 0x825 == [AJ 5D2] PRESS_MLT_RIGHTUP_BUTTON
- 0x826 == [AJ 5D2] ?
- 0x827 == [AJ 5D2] PRESS_MLT_RIGHTDOWN_BUTTON
- 0x829 == PRESS_INFO_BUTTON
- 0x82B == ELECTRONIC_SUB_DIAL_RIGHT
- 0x82C == ELECTRONIC_SUB_DIAL_LEFT
- ? == SUB_DIAL (spin right)
- 0x10000000 == PRESS_DISP_BUTTON
- 0x10000005 == PRESS_DIRECT_PRINT_BUTTON
- 0x10000007 == PRESS_FUNC_BUTTON
- 0x10000009 == PRESS_PICTURE_STYLE_BUTTON
- 0x1000000B == OPEN_SLOT_COVER
- 0x1000000C == CLOSE_SLOT_COVER
- 0x10000069 == [AJ 5D2] LOCAL_OLC_BLINK
- 0x10000078 == [AJ 5D2] LOCAL_MOVIE_RECORD_STOP
- 0x10000079 == [AJ 5D2] LOCAL_MOVIE_RECORD_ERROR
- 0x1000008A == START_SHOOT_MOVIE