For 550D, see GUI Events/550D.
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
- 0x80B == PRESS_UP_BUTTON
- 0x80D == PRESS_DOWN_BUTTON
- 0x80F == PRESS_MENU_BUTTON
- 0x812 == PRESS_SET_BUTTON (maybe)
- 0x81B == PRESS_UP_BUTTON
- 0x820 == SUB_DIAL (spin left)
- 0x823 == PRESS_MLT_CENTER_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
- 0x1000008A == START_SHOOT_MOVIE
[AJ] It was getting a little messy - and so I've separated my 5D entries into the following:
Button Event num | Button_Event | App |
---|---|---|
0x804 | TERMINATE_WINSYS | DlgLiveView.c |
0x805 | DELETE_DIALOG_REQUEST | DlgLiveView.c |
0x807 | PRESS_MLT_RIGHT_BUTTON_press | DlgLiveView.c |
0x809 | PRESS_MLT_LEFT_BUTTON | DlgLiveView.c |
0x80B | PRESS_MLT_UP_BUTTON_press | DlgLiveView.c |
0x80F (and 0x10000000) | PRESS_MENU/DISP_BUTTON | DlgLiveView.c |
0x812 | PRESS_SET_BUTTON (strange Logic) | DlgLiveView.c |
0x819 | PRESS_TELE_MAG_BUTTON | DlgLiveView.c |
0x81A | UNPRESS_TELE_MAG_BUTTON | DlgLiveView.c |
0x81B | PRESS_WIDE_REDUCTION_BUTTON | DlgLiveView.c |
0x81C | UNPRESS_WIDE_REDUCTION_BUTTON | DlgLiveView.c |
0x81F | PRESS_MLT_LEFTUP_BUTTON | DlgLiveView.c |
0x820 | PRESS_MLT_LEFT_BUTTON (spin left?) | DlgLiveView.c |
0x821 | PRESS_MLT_LEFTDOWN_BUTTON | DlgLiveView.c |
0x822 | PRESS_MLT_UP_BUTTON_press | DlgLiveView.c |
0x823 | PRESS_MLT_CENTER_BUTTON | DlgLiveView.c |
0x824 | PRESS_MLT_DOWN_BUTTON_press | DlgLiveView.c |
0x825 | PRESS_MLT_RIGHTUP_BUTTON | DlgLiveView.c |
0x826 | PRESS_MLT_RIGHT_BUTTON | DlgLiveView.c |
0x827 | PRESS_MLT_RIGHTDOWN_BUTTON | DlgLiveView.c |
0x829 | PRESS_INFO_BUTTON | DlgLiveView.c |
0x10000000 (and 0x80F) | PRESS_MENU/DISP_BUTTON | DlgLiveView.c |
0x10000001 | PRESS_ERASE_BUTTON | DlgLiveView.c |
0x10000003 (and 0x10000009) | PRESS_PICTURE_STYLE_BUTTON | DlgLiveView.c |
0x10000005 | PRESS_DIRECT_PRINT_BUTTON | DlgLiveView.c |
0x10000009 (and 0x10000003) | PRESS_PICTURE_STYLE_BUTTON | DlgLiveView.c |
0x10000069 | LOCAL_OLC_BLINK | DlgLiveView.c |
0x1000006B | LOCAL_LV_CARD_CHANGE | DlgLiveView.c |
0x1000006D | LOCAL_DIALOG_REFRESH_LV | DlgLiveView.c |
0x10000077 | LOCAL_MOVIE_RECORD_SECCOU | DlgLiveView.c |
0x10000078 | LOCAL_MOVIE_RECORD_STOP | DlgLiveView.c |
0x10000079 | LOCAL_MOVIE_RECORD_ERROR | DlgLiveView.c |
0x1000007A | LOCAL_MOVIE_RECORD_BUFFER | DlgLiveView.c |