wxEvtHandler(3)

MODULE
wxEvtHandler - The Event handler.

DESCRIPTION

The Event handler.

To get events from wxwidgets objects you subscribe to them by calling connect/[2-3]. Events are sent as messages, if no callback was supplied These messages will be #wx{} where EventRecord is a record that depends on the event type. The records are defined in: wx/include/wx.hrl.

If a callback was supplied to connect, the callback will be invoked (in another process) to handle the event. The callback should be of arity 2. fun(EventRecord::wx(), EventObject::wxObject()).

Beware that the callback will be in executed in new process each time.

The orginal documentation.

DATA TYPES

    wx() = #wx{id=integer(), obj=wxObject() (see module wx), userData=term(), event=Rec}
        Rec is a event record.

    wxAuiManager() = #wxAuiManager{type=wxEventType(), manager=wxAuiManager() (see module wxAuiManager), pane=wxAuiPaneInfo() (see module wxAuiPaneInfo), button=integer(), veto_flag=bool(), canveto_flag=bool(), dc=wxDC() (see module wxDC)}

        EventType:
            aui_pane_button, aui_pane_close, aui_pane_maximize, aui_pane_restore, aui_render, aui_find_manager
    Callback event: wxAuiManagerEvent

    wxAuiNotebook() = #wxAuiNotebook{type=wxEventType(), old_selection=integer(), selection=integer(), drag_source=wxAuiNotebook() (see module wxAuiNotebook)}

        EventType:
            command_auinotebook_page_close, command_auinotebook_page_changed, command_auinotebook_page_changing, command_auinotebook_button, command_auinotebook_begin_drag, command_auinotebook_end_drag, command_auinotebook_drag_motion, command_auinotebook_allow_dnd, command_auinotebook_tab_middle_down, command_auinotebook_tab_middle_up, command_auinotebook_tab_right_down, command_auinotebook_tab_right_up, command_auinotebook_page_closed, command_auinotebook_drag_done, command_auinotebook_bg_dclick
    Callback event: wxAuiNotebookEvent

    wxCalendar() = #wxCalendar{type=wxEventType()}

        EventType:
            calendar_sel_changed, calendar_day_changed, calendar_month_changed, calendar_year_changed, calendar_doubleclicked, calendar_weekday_clicked
    Callback event: wxCalendarEvent

    wxChildFocus() = #wxChildFocus{type=wxEventType()}

        EventType:
            child_focus
    Callback event: wxChildFocusEvent

    wxClose() = #wxClose{type=wxEventType()}

        EventType:
            close_window, end_session, query_end_session
    Callback event: wxCloseEvent

    wxColourPicker() = #wxColourPicker{type=wxEventType(), colour=colour() (see module wx)}

        EventType:
            command_colourpicker_changed
    Callback event: wxColourPickerEvent

    wxCommand() = #wxCommand{type=wxEventType(), cmdString=string(), commandInt=integer(), extraLong=integer()}

        EventType:
            command_button_clicked, command_checkbox_clicked, command_choice_selected, command_listbox_selected, command_listbox_doubleclicked, command_text_updated, command_text_enter, command_menu_selected, command_slider_updated, command_radiobox_selected, command_radiobutton_selected, command_scrollbar_updated, command_vlbox_selected, command_combobox_selected, command_tool_rclicked, command_tool_enter, command_checklistbox_toggled, command_togglebutton_clicked, command_left_click, command_left_dclick, command_right_click, command_set_focus, command_kill_focus, command_enter
    Callback event: wxCommandEvent

    wxContextMenu() = #wxContextMenu{type=wxEventType()}

        EventType:
            context_menu
    Callback event: wxContextMenuEvent

    wxDate() = #wxDate{type=wxEventType(), date=datetime() (see module wx)}

        EventType:
            date_changed
    Callback event: wxDateEvent

    wxDisplayChanged() = #wxDisplayChanged{type=wxEventType()}

        EventType:
            display_changed
    Callback event: wxDisplayChangedEvent

    wxErase() = #wxErase{type=wxEventType(), dc=wxDC() (see module wxDC)}

        EventType:
            erase_background
    Callback event: wxEraseEvent

    wxEventType() = aui_find_manager | aui_pane_button | aui_pane_close | aui_pane_maximize | aui_pane_restore | aui_render | calendar_day_changed | calendar_doubleclicked | calendar_month_changed | calendar_sel_changed | calendar_weekday_clicked | calendar_year_changed | char | char_hook | child_focus | close_window | command_auinotebook_allow_dnd | command_auinotebook_begin_drag | command_auinotebook_bg_dclick | command_auinotebook_button | command_auinotebook_drag_done | command_auinotebook_drag_motion | command_auinotebook_end_drag | command_auinotebook_page_changed | command_auinotebook_page_changing | command_auinotebook_page_close | command_auinotebook_page_closed | command_auinotebook_tab_middle_down | command_auinotebook_tab_middle_up | command_auinotebook_tab_right_down | command_auinotebook_tab_right_up | command_button_clicked | command_checkbox_clicked | command_checklistbox_toggled | command_choice_selected | command_colourpicker_changed | command_combobox_selected | command_dirpicker_changed | command_enter | command_filepicker_changed | command_fontpicker_changed | command_html_link_clicked | command_kill_focus | command_left_click | command_left_dclick | command_list_begin_drag | command_list_begin_label_edit | command_list_begin_rdrag | command_list_cache_hint | command_list_col_begin_drag | command_list_col_click | command_list_col_dragging | command_list_col_end_drag | command_list_col_right_click | command_list_delete_all_items | command_list_delete_item | command_list_end_label_edit | command_list_insert_item | command_list_item_activated | command_list_item_deselected | command_list_item_focused | command_list_item_middle_click | command_list_item_right_click | command_list_item_selected | command_list_key_down | command_listbox_doubleclicked | command_listbox_selected | command_menu_selected | command_notebook_page_changed | command_notebook_page_changing | command_radiobox_selected | command_radiobutton_selected | command_right_click | command_scrollbar_updated | command_set_focus | command_slider_updated | command_spinctrl_updated | command_splitter_doubleclicked | command_splitter_sash_pos_changed | command_splitter_sash_pos_changing | command_splitter_unsplit | command_text_enter | command_text_updated | command_togglebutton_clicked | command_tool_enter | command_tool_rclicked | command_tree_begin_drag | command_tree_begin_label_edit | command_tree_begin_rdrag | command_tree_delete_item | command_tree_end_drag | command_tree_end_label_edit | command_tree_get_info | command_tree_item_activated | command_tree_item_collapsed | command_tree_item_collapsing | command_tree_item_expanded | command_tree_item_expanding | command_tree_item_gettooltip | command_tree_item_menu | command_tree_item_middle_click | command_tree_item_right_click | command_tree_key_down | command_tree_sel_changed | command_tree_sel_changing | command_tree_set_info | command_tree_state_image_click | command_vlbox_selected | context_menu | create | date_changed | destroy | detailed_help | display_changed | end_session | enter_window | erase_background | grid_cell_begin_drag | grid_cell_change | grid_cell_left_click | grid_cell_left_dclick | grid_cell_right_click | grid_cell_right_dclick | grid_col_size | grid_editor_created | grid_editor_hidden | grid_editor_shown | grid_label_left_click | grid_label_left_dclick | grid_label_right_click | grid_label_right_dclick | grid_range_select | grid_row_size | grid_select_cell | help | iconize | idle | joy_button_down | joy_button_up | joy_move | joy_zmove | key_down | key_up | kill_focus | leave_window | left_dclick | left_down | left_up | maximize | menu_close | menu_highlight | menu_open | middle_dclick | middle_down | middle_up | motion | mouse_capture_changed | mousewheel | move | navigation_key | nc_enter_window | nc_leave_window | nc_left_dclick | nc_left_down | nc_left_up | nc_middle_dclick | nc_middle_down | nc_middle_up | nc_motion | nc_paint | nc_right_dclick | nc_right_down | nc_right_up | paint | paint_icon | palette_changed | query_end_session | query_new_palette | right_dclick | right_down | right_up | sash_dragged | scroll_bottom | scroll_changed | scroll_linedown | scroll_lineup | scroll_pagedown | scroll_pageup | scroll_thumbrelease | scroll_thumbtrack | scroll_top | scrollwin_bottom | scrollwin_linedown | scrollwin_lineup | scrollwin_pagedown | scrollwin_pageup | scrollwin_thumbrelease | scrollwin_thumbtrack | scrollwin_top | set_cursor | set_focus | show | size | spin | spin_down | spin_up | stc_autocomp_selection | stc_calltip_click | stc_change | stc_charadded | stc_do_drop | stc_doubleclick | stc_drag_over | stc_dwellend | stc_dwellstart | stc_hotspot_click | stc_hotspot_dclick | stc_key | stc_macrorecord | stc_marginclick | stc_modified | stc_needshown | stc_painted | stc_romodifyattempt | stc_savepointleft | stc_savepointreached | stc_start_drag | stc_styleneeded | stc_updateui | stc_uridropped | stc_userlistselection | stc_zoom | sys_colour_changed | update_ui

    wxEvtHandler()
        An object reference

    wxFileDirPicker() = #wxFileDirPicker{type=wxEventType(), path=string()}

        EventType:
            command_filepicker_changed, command_dirpicker_changed
    Callback event: wxFileDirPickerEvent

    wxFocus() = #wxFocus{type=wxEventType()}

        EventType:
            set_focus, kill_focus
    Callback event: wxFocusEvent

    wxFontPicker() = #wxFontPicker{type=wxEventType(), font=wxFont() (see module wxFont)}

        EventType:
            command_fontpicker_changed
    Callback event: wxFontPickerEvent

    wxGrid() = #wxGrid{type=wxEventType(), row=integer(), col=integer(), x=integer(), y=integer(), selecting=bool(), control=bool(), meta=bool(), shift=bool(), alt=bool()}

        EventType:
            grid_cell_left_click, grid_cell_right_click, grid_cell_left_dclick, grid_cell_right_dclick, grid_label_left_click, grid_label_right_click, grid_label_left_dclick, grid_label_right_dclick, grid_row_size, grid_col_size, grid_range_select, grid_cell_change, grid_select_cell, grid_editor_shown, grid_editor_hidden, grid_editor_created, grid_cell_begin_drag
    Callback event: wxGridEvent

    wxHelp() = #wxHelp{type=wxEventType()}

        EventType:
            help, detailed_help
    Callback event: wxHelpEvent

    wxHtmlLink() = #wxHtmlLink{type=wxEventType(), linkInfo=wxHtmlLinkInfo() (see module wx)}

        EventType:
            command_html_link_clicked
    Callback event: wxHtmlLinkEvent

    wxIconize() = #wxIconize{type=wxEventType()}

        EventType:
            iconize
    Callback event: wxIconizeEvent

    wxIdle() = #wxIdle{type=wxEventType()}

        EventType:
            idle
    Callback event: wxIdleEvent

    wxJoystick() = #wxJoystick{type=wxEventType()}

        EventType:
            joy_button_down, joy_button_up, joy_move, joy_zmove
    Callback event: wxJoystickEvent

    wxKey() = #wxKey{type=wxEventType(), x=integer(), y=integer(), keyCode=integer(), controlDown=bool(), shiftDown=bool(), altDown=bool(), metaDown=bool(), scanCode=bool(), uniChar=integer(), rawCode=integer(), rawFlags=integer()}

        EventType:
            char, char_hook, key_down, key_up
    Callback event: wxKeyEvent

    wxList() = #wxList{type=wxEventType(), code=integer(), oldItemIndex=integer(), itemIndex=integer(), col=integer(), pointDrag={X::integer(), Y::integer()}}

        EventType:
            command_list_begin_drag, command_list_begin_rdrag, command_list_begin_label_edit, command_list_end_label_edit, command_list_delete_item, command_list_delete_all_items, command_list_key_down, command_list_insert_item, command_list_col_click, command_list_col_right_click, command_list_col_begin_drag, command_list_col_dragging, command_list_col_end_drag, command_list_item_selected, command_list_item_deselected, command_list_item_right_click, command_list_item_middle_click, command_list_item_activated, command_list_item_focused, command_list_cache_hint
    Callback event: wxListEvent

    wxMaximize() = #wxMaximize{type=wxEventType()}

        EventType:
            maximize
    Callback event: wxMaximizeEvent

    wxMenu() = #wxMenu{type=wxEventType()}

        EventType:
            menu_open, menu_close, menu_highlight
    Callback event: wxMenuEvent

    wxMouse() = #wxMouse{type=wxEventType(), x=integer(), y=integer(), leftDown=bool(), middleDown=bool(), rightDown=bool(), controlDown=bool(), shiftDown=bool(), altDown=bool(), metaDown=bool(), wheelRotation=integer(), wheelDelta=integer(), linesPerAction=integer()}

        EventType:
            left_down, left_up, middle_down, middle_up, right_down, right_up, motion, enter_window, leave_window, left_dclick, middle_dclick, right_dclick, mousewheel, nc_left_down, nc_left_up, nc_middle_down, nc_middle_up, nc_right_down, nc_right_up, nc_motion, nc_enter_window, nc_leave_window, nc_left_dclick, nc_middle_dclick, nc_right_dclick
    Callback event: wxMouseEvent

    wxMouseCaptureChanged() = #wxMouseCaptureChanged{type=wxEventType()}

        EventType:
            mouse_capture_changed
    Callback event: wxMouseCaptureChangedEvent

    wxMove() = #wxMove{type=wxEventType()}

        EventType:
            move
    Callback event: wxMoveEvent

    wxNavigationKey() = #wxNavigationKey{type=wxEventType(), flags=integer(), focus=wxWindow() (see module wxWindow)}

        EventType:
            navigation_key
    Callback event: wxNavigationKeyEvent

    wxNcPaint() = #wxNcPaint{type=wxEventType()}

        EventType:
            nc_paint
    Callback event: wxNcPaintEvent

    wxNotebook() = #wxNotebook{type=wxEventType()}

        EventType:
            command_notebook_page_changed, command_notebook_page_changing
    Callback event: wxNotebookEvent

    wxPaint() = #wxPaint{type=wxEventType()}

        EventType:
            paint, paint_icon
    Callback event: wxPaintEvent

    wxPaletteChanged() = #wxPaletteChanged{type=wxEventType()}

        EventType:
            palette_changed
    Callback event: wxPaletteChangedEvent

    wxQueryNewPalette() = #wxQueryNewPalette{type=wxEventType()}

        EventType:
            query_new_palette
    Callback event: wxQueryNewPaletteEvent

    wxSash() = #wxSash{type=wxEventType(), edge=WxSashEdgePosition, dragRect={X::integer(), Y::integer(), W::integer(), H::integer()}, dragStatus=WxSashDragStatus}

        EventType:
            sash_dragged
    Callback event: wxSashEvent

    wxScroll() = #wxScroll{type=wxEventType(), commandInt=integer(), extraLong=integer()}

        EventType:
            scroll_top, scroll_bottom, scroll_lineup, scroll_linedown, scroll_pageup, scroll_pagedown, scroll_thumbtrack, scroll_thumbrelease, scroll_changed
    Callback event: wxScrollEvent

    wxScrollWin() = #wxScrollWin{type=wxEventType()}

        EventType:
            scrollwin_top, scrollwin_bottom, scrollwin_lineup, scrollwin_linedown, scrollwin_pageup, scrollwin_pagedown, scrollwin_thumbtrack, scrollwin_thumbrelease
    Callback event: wxScrollWinEvent

    wxSetCursor() = #wxSetCursor{type=wxEventType()}

        EventType:
            set_cursor
    Callback event: wxSetCursorEvent

    wxShow() = #wxShow{type=wxEventType()}

        EventType:
            show
    Callback event: wxShowEvent

    wxSize() = #wxSize{type=wxEventType(), size={W::integer(), H::integer()}, rect={X::integer(), Y::integer(), W::integer(), H::integer()}}

        EventType:
            size
    Callback event: wxSizeEvent

    wxSpin() = #wxSpin{type=wxEventType(), commandInt=integer()}

        EventType:
            command_spinctrl_updated, spin_up, spin_down, spin
    Callback event: wxSpinEvent

    wxSplitter() = #wxSplitter{type=wxEventType()}

        EventType:
            command_splitter_sash_pos_changed, command_splitter_sash_pos_changing, command_splitter_doubleclicked, command_splitter_unsplit
    Callback event: wxSplitterEvent

    wxStyledText() = #wxStyledText{type=wxEventType(), position=integer(), key=integer(), modifiers=integer(), modificationType=integer(), text=string(), length=integer(), linesAdded=integer(), line=integer(), foldLevelNow=integer(), foldLevelPrev=integer(), margin=integer(), message=integer(), wParam=integer(), lParam=integer(), listType=integer(), x=integer(), y=integer(), dragText=string(), dragAllowMove=bool(), dragResult=WxDragResult}

        EventType:
            stc_change, stc_styleneeded, stc_charadded, stc_savepointreached, stc_savepointleft, stc_romodifyattempt, stc_key, stc_doubleclick, stc_updateui, stc_modified, stc_macrorecord, stc_marginclick, stc_needshown, stc_painted, stc_userlistselection, stc_uridropped, stc_dwellstart, stc_dwellend, stc_start_drag, stc_drag_over, stc_do_drop, stc_zoom, stc_hotspot_click, stc_hotspot_dclick, stc_calltip_click, stc_autocomp_selection
    Callback event: wxStyledTextEvent

    wxSysColourChanged() = #wxSysColourChanged{type=wxEventType()}

        EventType:
            sys_colour_changed
    Callback event: wxSysColourChangedEvent

    wxTree() = #wxTree{type=wxEventType(), item=wxTreeItemId(), itemOld=wxTreeItemId(), pointDrag={X::integer(), Y::integer()}}

        EventType:
            command_tree_begin_drag, command_tree_begin_rdrag, command_tree_begin_label_edit, command_tree_end_label_edit, command_tree_delete_item, command_tree_get_info, command_tree_set_info, command_tree_item_expanded, command_tree_item_expanding, command_tree_item_collapsed, command_tree_item_collapsing, command_tree_sel_changed, command_tree_sel_changing, command_tree_key_down, command_tree_item_activated, command_tree_item_right_click, command_tree_item_middle_click, command_tree_end_drag, command_tree_state_image_click, command_tree_item_gettooltip, command_tree_item_menu
    Callback event: wxTreeEvent

    wxUpdateUI() = #wxUpdateUI{type=wxEventType()}

        EventType:
            update_ui
    Callback event: wxUpdateUIEvent

    wxWindowCreate() = #wxWindowCreate{type=wxEventType()}

        EventType:
            create
    Callback event: wxWindowCreateEvent

    wxWindowDestroy() = #wxWindowDestroy{type=wxEventType()}

        EventType:
            destroy
    Callback event: wxWindowDestroyEvent

EXPORTS

connect(This::wxEvtHandler(), EventType::wxEventType()) -> ok

    Equivalent to connect(This, EventType, [])

connect(This::wxEvtHandler(), EventType::wxEventType(), Options::[Options]) -> ok

    This function subscribes the to events of EventType, in the range id, lastId. The events will be received as messages if no callback is supplied.

    Options: {id, integer()}, The identifier (or first of the identifier range) to be associated with this event handler. Default ?wxID_ANY {lastId, integer()}, The second part of the identifier range. If used 'id' must be set as the starting identifier range. Default ?wxID_ANY {skip, boolean()}, If skip is true further event_handlers will be called. This is not used if the 'callback' option is used. Default false. {callback, function()} Use a callback fun(EventRecord::wx(), EventObject::wxObject()) to process the event. Default not specfied i.e. a message will be delivered to the process calling this function. {userData, term()} An erlang term that will be sent with the event. Default: [].

disconnect(This::wxEvtHandler()) -> true | false

    Equivalent to disconnect(This, null, []) Can also have an optional callback Fun() as an additional last argument.

disconnect(This::wxEvtHandler(), EventType::wxEventType()) -> true | false

    Equivalent to disconnect(This, EventType, [])

disconnect(This::wxEvtHandler(), EventType::wxEventType(), Opts) -> true | false

    See external documentation This function unsubscribes the process or callback fun from the event handler. EventType may be the atom 'null' to match any eventtype. Notice that the options skip and userdata is not used to match the eventhandler.