diff options
Diffstat (limited to 'lib/wx/c_src')
-rw-r--r-- | lib/wx/c_src/Makefile.in | 17 | ||||
-rw-r--r-- | lib/wx/c_src/gen/wxe_derived_dest.h | 14 | ||||
-rw-r--r-- | lib/wx/c_src/gen/wxe_events.cpp | 160 | ||||
-rw-r--r-- | lib/wx/c_src/gen/wxe_funcs.cpp | 307 | ||||
-rw-r--r-- | lib/wx/c_src/gen/wxe_macros.h | 1217 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_callback_impl.cpp (renamed from lib/wx/c_src/wxePrintout.cpp) | 82 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_callback_impl.h | 100 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_driver.c | 4 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_driver.h | 3 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_events.h | 45 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_gl.cpp | 17 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_gl.h | 25 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_helpers.cpp | 95 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_helpers.h | 122 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_impl.cpp | 490 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_impl.h | 231 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_main.cpp | 163 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_memory.h | 61 |
18 files changed, 1803 insertions, 1350 deletions
diff --git a/lib/wx/c_src/Makefile.in b/lib/wx/c_src/Makefile.in index 5507a74c14..4a7342f714 100644 --- a/lib/wx/c_src/Makefile.in +++ b/lib/wx/c_src/Makefile.in @@ -1,7 +1,7 @@ # # %CopyrightBegin% # -# Copyright Ericsson AB 2008-2012. All Rights Reserved. +# Copyright Ericsson AB 2008-2014. All Rights Reserved. # # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in @@ -34,8 +34,9 @@ SO_EXT = @SO_EXT@ OBJC_CC=@OBJC_CC@ OBJC_CFLAGS=@OBJC_CFLAGS@ -GENERAL = wxe_driver wxe_ps_init wxe_impl wxePrintout wxe_return wxe_gl -GENERAL_H = wxe_driver.h wxe_impl.h wxe_return.h +GENERAL = wxe_driver wxe_ps_init wxe_main wxe_impl wxe_helpers wxe_callback_impl wxe_return wxe_gl +GENERAL_H = wxe_callback_impl.h wxe_driver.h wxe_events.h wxe_gl.h \ + wxe_helpers.h wxe_impl.h wxe_memory.h wxe_return.h GENERATED_F = wxe_funcs wxe_events wxe_init GENERATED_H = gen/wxe_macros.h @@ -79,8 +80,8 @@ TARGET_DIR = ../priv/$(SYS_TYPE) COMMON_CFLAGS = @DEFS@ $(ERL_INCS) CC = @CC@ -CPP = @CXX@ -LD = $(CPP) +CXX = @CXX@ +LD = $(CXX) LDFLAGS = @LDFLAGS@ RESCOMP = @WX_RESCOMP@ @@ -110,7 +111,7 @@ GL_LIBS = @GL_LIBS@ CC_O = $(V_CC) -c $(CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) OBJC_CC_O = $(OBJC_CC) -c $(CFLAGS) $(OBJC_CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) -CPP_O = $(V_CPP) -c $(CXX_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) +CXX_O = $(V_CXX) -c $(CXX_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) # Targets @@ -140,7 +141,7 @@ $(WX_OBJECTS): $(GENERATED_H) $(GENERAL_H) $(SYS_TYPE)/%.o: %.cpp $(V_at)mkdir -p $(SYS_TYPE) - $(CPP_O) $< -o $@ + $(CXX_O) $< -o $@ $(SYS_TYPE)/%.o: %.c $(V_at)mkdir -p $(SYS_TYPE) @@ -152,7 +153,7 @@ $(SYS_TYPE)/wxe_ps_init.o: wxe_ps_init.c $(SYS_TYPE)/%.o: gen/%.cpp $(V_at)mkdir -p $(SYS_TYPE) - $(CPP_O) $< -o $@ + $(CXX_O) $< -o $@ $(SYS_TYPE)/%.o: gen/%.c $(V_at)mkdir -p $(SYS_TYPE) diff --git a/lib/wx/c_src/gen/wxe_derived_dest.h b/lib/wx/c_src/gen/wxe_derived_dest.h index 8dcaf1c1ac..42925bff3a 100644 --- a/lib/wx/c_src/gen/wxe_derived_dest.h +++ b/lib/wx/c_src/gen/wxe_derived_dest.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -736,6 +736,12 @@ class EwxPrintout : public wxPrintout { EwxPrintout(const wxString& title) : wxPrintout(title) {}; }; +class EwxStyledTextCtrl : public wxStyledTextCtrl { + public: ~EwxStyledTextCtrl() {((WxeApp *)wxTheApp)->clearPtr(this);}; + EwxStyledTextCtrl(wxWindow * parent,wxWindowID id,const wxPoint& pos,const wxSize& size,long style) : wxStyledTextCtrl(parent,id,pos,size,style) {}; + EwxStyledTextCtrl() : wxStyledTextCtrl() {}; +}; + class EwxClipboard : public wxClipboard { public: ~EwxClipboard() {((WxeApp *)wxTheApp)->clearPtr(this);}; EwxClipboard() : wxClipboard() {}; @@ -758,3 +764,9 @@ class EwxTaskBarIcon : public wxTaskBarIcon { EwxTaskBarIcon() : wxTaskBarIcon() {}; }; +class EwxLocale : public wxLocale { + public: ~EwxLocale() {((WxeApp *)wxTheApp)->clearPtr(this);}; + EwxLocale(int language,int flags) : wxLocale(language,flags) {}; + EwxLocale() : wxLocale() {}; +}; + diff --git a/lib/wx/c_src/gen/wxe_events.cpp b/lib/wx/c_src/gen/wxe_events.cpp index fb3a065448..0ca059ead4 100644 --- a/lib/wx/c_src/gen/wxe_events.cpp +++ b/lib/wx/c_src/gen/wxe_events.cpp @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -220,83 +220,84 @@ void initEventTable() {wxEVT_STC_HOTSPOT_DCLICK, 203, "stc_hotspot_dclick"}, {wxEVT_STC_CALLTIP_CLICK, 203, "stc_calltip_click"}, {wxEVT_STC_AUTOCOMP_SELECTION, 203, "stc_autocomp_selection"}, - {wxEVT_COMMAND_TREE_BEGIN_DRAG, 208, "command_tree_begin_drag"}, - {wxEVT_COMMAND_TREE_BEGIN_RDRAG, 208, "command_tree_begin_rdrag"}, - {wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, 208, "command_tree_begin_label_edit"}, - {wxEVT_COMMAND_TREE_END_LABEL_EDIT, 208, "command_tree_end_label_edit"}, - {wxEVT_COMMAND_TREE_DELETE_ITEM, 208, "command_tree_delete_item"}, - {wxEVT_COMMAND_TREE_GET_INFO, 208, "command_tree_get_info"}, - {wxEVT_COMMAND_TREE_SET_INFO, 208, "command_tree_set_info"}, - {wxEVT_COMMAND_TREE_ITEM_EXPANDED, 208, "command_tree_item_expanded"}, - {wxEVT_COMMAND_TREE_ITEM_EXPANDING, 208, "command_tree_item_expanding"}, - {wxEVT_COMMAND_TREE_ITEM_COLLAPSED, 208, "command_tree_item_collapsed"}, - {wxEVT_COMMAND_TREE_ITEM_COLLAPSING, 208, "command_tree_item_collapsing"}, - {wxEVT_COMMAND_TREE_SEL_CHANGED, 208, "command_tree_sel_changed"}, - {wxEVT_COMMAND_TREE_SEL_CHANGING, 208, "command_tree_sel_changing"}, - {wxEVT_COMMAND_TREE_KEY_DOWN, 208, "command_tree_key_down"}, - {wxEVT_COMMAND_TREE_ITEM_ACTIVATED, 208, "command_tree_item_activated"}, - {wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, 208, "command_tree_item_right_click"}, - {wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, 208, "command_tree_item_middle_click"}, - {wxEVT_COMMAND_TREE_END_DRAG, 208, "command_tree_end_drag"}, - {wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 208, "command_tree_state_image_click"}, - {wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, 208, "command_tree_item_gettooltip"}, - {wxEVT_COMMAND_TREE_ITEM_MENU, 208, "command_tree_item_menu"}, - {wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, 209, "command_notebook_page_changed"}, - {wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, 209, "command_notebook_page_changing"}, - {wxEVT_COMMAND_TEXT_COPY, 215, "command_text_copy"}, - {wxEVT_COMMAND_TEXT_CUT, 215, "command_text_cut"}, - {wxEVT_COMMAND_TEXT_PASTE, 215, "command_text_paste"}, - {wxEVT_COMMAND_SPINCTRL_UPDATED, 216, "command_spinctrl_updated"}, + {wxEVT_COMMAND_TREE_BEGIN_DRAG, 209, "command_tree_begin_drag"}, + {wxEVT_COMMAND_TREE_BEGIN_RDRAG, 209, "command_tree_begin_rdrag"}, + {wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, 209, "command_tree_begin_label_edit"}, + {wxEVT_COMMAND_TREE_END_LABEL_EDIT, 209, "command_tree_end_label_edit"}, + {wxEVT_COMMAND_TREE_DELETE_ITEM, 209, "command_tree_delete_item"}, + {wxEVT_COMMAND_TREE_GET_INFO, 209, "command_tree_get_info"}, + {wxEVT_COMMAND_TREE_SET_INFO, 209, "command_tree_set_info"}, + {wxEVT_COMMAND_TREE_ITEM_EXPANDED, 209, "command_tree_item_expanded"}, + {wxEVT_COMMAND_TREE_ITEM_EXPANDING, 209, "command_tree_item_expanding"}, + {wxEVT_COMMAND_TREE_ITEM_COLLAPSED, 209, "command_tree_item_collapsed"}, + {wxEVT_COMMAND_TREE_ITEM_COLLAPSING, 209, "command_tree_item_collapsing"}, + {wxEVT_COMMAND_TREE_SEL_CHANGED, 209, "command_tree_sel_changed"}, + {wxEVT_COMMAND_TREE_SEL_CHANGING, 209, "command_tree_sel_changing"}, + {wxEVT_COMMAND_TREE_KEY_DOWN, 209, "command_tree_key_down"}, + {wxEVT_COMMAND_TREE_ITEM_ACTIVATED, 209, "command_tree_item_activated"}, + {wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, 209, "command_tree_item_right_click"}, + {wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK, 209, "command_tree_item_middle_click"}, + {wxEVT_COMMAND_TREE_END_DRAG, 209, "command_tree_end_drag"}, + {wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, 209, "command_tree_state_image_click"}, + {wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, 209, "command_tree_item_gettooltip"}, + {wxEVT_COMMAND_TREE_ITEM_MENU, 209, "command_tree_item_menu"}, + {wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, 210, "command_notebook_page_changed"}, + {wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, 210, "command_notebook_page_changing"}, + {wxEVT_COMMAND_TEXT_COPY, 216, "command_text_copy"}, + {wxEVT_COMMAND_TEXT_CUT, 216, "command_text_cut"}, + {wxEVT_COMMAND_TEXT_PASTE, 216, "command_text_paste"}, + {wxEVT_COMMAND_SPINCTRL_UPDATED, 217, "command_spinctrl_updated"}, {wxEVT_SCROLL_LINEUP + wxEVT_USER_FIRST, 165, "spin_up"}, {wxEVT_SCROLL_LINEDOWN + wxEVT_USER_FIRST, 165, "spin_down"}, {wxEVT_SCROLL_THUMBTRACK + wxEVT_USER_FIRST, 165, "spin"}, - {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, 218, "command_splitter_sash_pos_changed"}, - {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, 218, "command_splitter_sash_pos_changing"}, - {wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, 218, "command_splitter_doubleclicked"}, - {wxEVT_COMMAND_SPLITTER_UNSPLIT, 218, "command_splitter_unsplit"}, - {wxEVT_COMMAND_HTML_LINK_CLICKED, 220, "command_html_link_clicked"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, 223, "command_auinotebook_page_close"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, 223, "command_auinotebook_page_changed"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, 223, "command_auinotebook_page_changing"}, - {wxEVT_COMMAND_AUINOTEBOOK_BUTTON, 223, "command_auinotebook_button"}, - {wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, 223, "command_auinotebook_begin_drag"}, - {wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, 223, "command_auinotebook_end_drag"}, - {wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, 223, "command_auinotebook_drag_motion"}, - {wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, 223, "command_auinotebook_allow_dnd"}, + {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, 219, "command_splitter_sash_pos_changed"}, + {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, 219, "command_splitter_sash_pos_changing"}, + {wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, 219, "command_splitter_doubleclicked"}, + {wxEVT_COMMAND_SPLITTER_UNSPLIT, 219, "command_splitter_unsplit"}, + {wxEVT_COMMAND_HTML_LINK_CLICKED, 221, "command_html_link_clicked"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, 224, "command_auinotebook_page_close"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, 224, "command_auinotebook_page_changed"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, 224, "command_auinotebook_page_changing"}, + {wxEVT_COMMAND_AUINOTEBOOK_BUTTON, 224, "command_auinotebook_button"}, + {wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, 224, "command_auinotebook_begin_drag"}, + {wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, 224, "command_auinotebook_end_drag"}, + {wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, 224, "command_auinotebook_drag_motion"}, + {wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, 224, "command_auinotebook_allow_dnd"}, #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 223, "command_auinotebook_tab_middle_down"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 224, "command_auinotebook_tab_middle_down"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, 223, "command_auinotebook_tab_middle_up"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, 224, "command_auinotebook_tab_middle_up"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 223, "command_auinotebook_tab_right_down"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 224, "command_auinotebook_tab_right_down"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 223, "command_auinotebook_tab_right_up"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 224, "command_auinotebook_tab_right_up"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 223, "command_auinotebook_page_closed"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 224, "command_auinotebook_page_closed"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 223, "command_auinotebook_drag_done"}, + {wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 224, "command_auinotebook_drag_done"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 223, "command_auinotebook_bg_dclick"}, + {wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 224, "command_auinotebook_bg_dclick"}, #endif - {wxEVT_AUI_PANE_BUTTON, 224, "aui_pane_button"}, - {wxEVT_AUI_PANE_CLOSE, 224, "aui_pane_close"}, - {wxEVT_AUI_PANE_MAXIMIZE, 224, "aui_pane_maximize"}, - {wxEVT_AUI_PANE_RESTORE, 224, "aui_pane_restore"}, - {wxEVT_AUI_RENDER, 224, "aui_render"}, - {wxEVT_AUI_FIND_MANAGER, 224, "aui_find_manager"}, - {wxEVT_TASKBAR_MOVE, 227, "taskbar_move"}, - {wxEVT_TASKBAR_LEFT_DOWN, 227, "taskbar_left_down"}, - {wxEVT_TASKBAR_LEFT_UP, 227, "taskbar_left_up"}, - {wxEVT_TASKBAR_RIGHT_DOWN, 227, "taskbar_right_down"}, - {wxEVT_TASKBAR_RIGHT_UP, 227, "taskbar_right_up"}, - {wxEVT_TASKBAR_LEFT_DCLICK, 227, "taskbar_left_dclick"}, - {wxEVT_TASKBAR_RIGHT_DCLICK, 227, "taskbar_right_dclick"}, + {wxEVT_AUI_PANE_BUTTON, 225, "aui_pane_button"}, + {wxEVT_AUI_PANE_CLOSE, 225, "aui_pane_close"}, + {wxEVT_AUI_PANE_MAXIMIZE, 225, "aui_pane_maximize"}, + {wxEVT_AUI_PANE_RESTORE, 225, "aui_pane_restore"}, + {wxEVT_AUI_RENDER, 225, "aui_render"}, + {wxEVT_AUI_FIND_MANAGER, 225, "aui_find_manager"}, + {wxEVT_TASKBAR_MOVE, 228, "taskbar_move"}, + {wxEVT_TASKBAR_LEFT_DOWN, 228, "taskbar_left_down"}, + {wxEVT_TASKBAR_LEFT_UP, 228, "taskbar_left_up"}, + {wxEVT_TASKBAR_RIGHT_DOWN, 228, "taskbar_right_down"}, + {wxEVT_TASKBAR_RIGHT_UP, 228, "taskbar_right_up"}, + {wxEVT_TASKBAR_LEFT_DCLICK, 228, "taskbar_left_dclick"}, + {wxEVT_TASKBAR_RIGHT_DCLICK, 228, "taskbar_right_dclick"}, + {wxEVT_INIT_DIALOG, 229, "init_dialog"}, {-1, 0, } }; for(int i=0; event_types[i].ev_type != -1; i++) { @@ -315,16 +316,6 @@ void initEventTable() } } -void wxeEvtListener::forward(wxEvent& event) -{ -#ifdef DEBUG - if(!sendevent(&event, port)) - fprintf(stderr, "Couldn't send event!\r\n"); -#else -sendevent(&event, port); -#endif -} - int getRef(void* ptr, wxeMemEnv* memenv) { WxeApp * app = (WxeApp *) wxTheApp; @@ -337,7 +328,7 @@ bool sendevent(wxEvent *event, ErlDrvTermData port) char * evClass = NULL; wxMBConvUTF32 UTFconverter; wxeEtype *Etype = etmap[event->GetEventType()]; - wxeCallbackData *cb = (wxeCallbackData *)event->m_callbackUserData; + wxeEvtListener *cb = (wxeEvtListener *)event->m_callbackUserData; WxeApp * app = (WxeApp *) wxTheApp; wxeMemEnv *memenv = app->getMemEnv(port); if(!memenv) return 0; @@ -728,7 +719,7 @@ case 203: {// wxStyledTextEvent rt.addTupleCount(22); break; } -case 208: {// wxTreeEvent +case 209: {// wxTreeEvent wxTreeEvent * ev = (wxTreeEvent *) event; evClass = (char*)"wxTreeEvent"; rt.addAtom((char*)"wxTree"); @@ -739,21 +730,21 @@ case 208: {// wxTreeEvent rt.addTupleCount(5); break; } -case 209: {// wxNotebookEvent +case 210: {// wxNotebookEvent evClass = (char*)"wxNotebookEvent"; rt.addAtom((char*)"wxNotebook"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } -case 215: {// wxClipboardTextEvent +case 216: {// wxClipboardTextEvent evClass = (char*)"wxClipboardTextEvent"; rt.addAtom((char*)"wxClipboardText"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } -case 216: {// wxSpinEvent +case 217: {// wxSpinEvent wxSpinEvent * ev = (wxSpinEvent *) event; evClass = (char*)"wxSpinEvent"; rt.addAtom((char*)"wxSpin"); @@ -762,14 +753,14 @@ case 216: {// wxSpinEvent rt.addTupleCount(3); break; } -case 218: {// wxSplitterEvent +case 219: {// wxSplitterEvent evClass = (char*)"wxSplitterEvent"; rt.addAtom((char*)"wxSplitter"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } -case 220: {// wxHtmlLinkEvent +case 221: {// wxHtmlLinkEvent wxHtmlLinkEvent * ev = (wxHtmlLinkEvent *) event; evClass = (char*)"wxHtmlLinkEvent"; rt.addAtom((char*)"wxHtmlLink"); @@ -778,7 +769,7 @@ case 220: {// wxHtmlLinkEvent rt.addTupleCount(3); break; } -case 223: {// wxAuiNotebookEvent +case 224: {// wxAuiNotebookEvent wxAuiNotebookEvent * ev = (wxAuiNotebookEvent *) event; wxAuiNotebook * GetDragSource = ev->GetDragSource(); evClass = (char*)"wxAuiNotebookEvent"; @@ -790,7 +781,7 @@ case 223: {// wxAuiNotebookEvent rt.addTupleCount(5); break; } -case 224: {// wxAuiManagerEvent +case 225: {// wxAuiManagerEvent wxAuiManagerEvent * ev = (wxAuiManagerEvent *) event; wxAuiManager * GetManager = ev->GetManager(); wxAuiPaneInfo * GetPane = ev->GetPane(); @@ -807,13 +798,20 @@ case 224: {// wxAuiManagerEvent rt.addTupleCount(8); break; } -case 227: {// wxTaskBarIconEvent +case 228: {// wxTaskBarIconEvent evClass = (char*)"wxTaskBarIconEvent"; rt.addAtom((char*)"wxTaskBarIcon"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } +case 229: {// wxInitDialogEvent + evClass = (char*)"wxInitDialogEvent"; + rt.addAtom((char*)"wxInitDialog"); + rt.addAtom(Etype->eName); + rt.addTupleCount(2); + break; +} } rt.addTupleCount(5); diff --git a/lib/wx/c_src/gen/wxe_funcs.cpp b/lib/wx/c_src/gen/wxe_funcs.cpp index b5fbac3fe0..c1e9f3829a 100644 --- a/lib/wx/c_src/gen/wxe_funcs.cpp +++ b/lib/wx/c_src/gen/wxe_funcs.cpp @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -45,9 +45,14 @@ void WxeApp::wxe_dispatch(wxeCommand& Ecmd) switch (Ecmd.op) { case DESTROY_OBJECT: { - wxObject *This = (wxObject *) getPtr(bp,memenv); if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This); - delete This; } - } break; + wxObject *This = (wxObject *) getPtr(bp,memenv); + if(This) { + if(recurse_level > 1) { + delayed_delete->Append(Ecmd.Save()); + } else { + ((WxeApp *) wxTheApp)->clearPtr((void *) This); + delete This; } + } } break; case WXE_REGISTER_OBJECT: { registerPid(bp, Ecmd.caller, memenv); rt.addAtom("ok"); @@ -62,20 +67,8 @@ void WxeApp::wxe_dispatch(wxeCommand& Ecmd) case WXE_INIT_OPENGL: wxe_initOpenGL(rt, bp); break; -case 98: { // wxeEvtListener::wxeEvtListener - wxeEvtListener *Result = new wxeEvtListener(Ecmd.port); - rt.addRef(getRef((void *)Result,memenv), "wxeEvtListener"); - break; -} -case 99: { // wxeEvtListener::destroy - wxObject *This = (wxObject *) getPtr(bp,memenv); - rt.addAtom("ok"); - delete This; - break; -} -case 100: { // wxEvtHandler::Connect - wxeEvtListener *Listener = (wxeEvtListener *) getPtr(bp,memenv); bp += 4; +case 100: { // wxEvtHandler::Connect wxEvtHandler *This = (wxEvtHandler *) getPtr(bp, memenv); bp += 4; int * winid = (int *) bp; bp += 4; int * lastId = (int *) bp; bp += 4; @@ -86,20 +79,22 @@ case 100: { // wxEvtHandler::Connect int * eventTypeLen = (int *) bp; bp += 4; int * class_nameLen = (int *) bp; bp += 4; - if(*haveUserData) { + if(*haveUserData) { userData = new wxeErlTerm(Ecmd.bin[0]); } int eventType = wxeEventTypeFromAtom(bp); bp += *eventTypeLen; char *class_name = bp; bp+= *class_nameLen; if(eventType > 0 ) { - wxeCallbackData * Evt_cb = new wxeCallbackData(Ecmd.caller,getRef(This, memenv), - class_name,*fun_cb, - *skip, userData, Listener); + wxeEvtListener * Evt_cb = new wxeEvtListener(Ecmd.caller,getRef(This, memenv), + class_name,*fun_cb, + *skip, userData, Ecmd.port); This->Connect((int) *winid,(int) *lastId,eventType, (wxObjectEventFunction)(wxEventFunction) &wxeEvtListener::forward, - Evt_cb, Listener); + Evt_cb, Evt_cb); rt.addAtom("ok"); + rt.addRef(getRef((void *)Evt_cb,memenv), "wxeEvtListener"); + rt.addTupleCount(2); } else { rt.addAtom("badarg"); rt.addAtom("event_type"); @@ -107,7 +102,7 @@ case 100: { // wxEvtHandler::Connect } break; } -case 101: { // wxEvtHandler::Disconnect +case 101: { // wxEvtHandler::Disconnect wxeEvtListener *Listener = (wxeEvtListener *) getPtr(bp,memenv); bp += 4; wxEvtHandler *This = (wxEvtHandler *) getPtr(bp, memenv); bp += 4; int * winid = (int *) bp; bp += 4; @@ -117,14 +112,14 @@ case 101: { // wxEvtHandler::Disconnect int eventType = wxeEventTypeFromAtom(bp); bp += *eventTypeLen; if(eventType > 0) { bool Result = This->Disconnect((int) *winid,(int) *lastId,eventType, - (wxObjectEventFunction)(wxEventFunction) - &wxeEvtListener::forward, - NULL, Listener); + (wxObjectEventFunction)(wxEventFunction) + &wxeEvtListener::forward, + NULL, Listener); rt.addBool(Result); } else { rt.addAtom("badarg"); rt.addAtom("event_type"); - rt.addTupleCount(2); + rt.addTupleCount(2); } break; } @@ -15880,7 +15875,7 @@ case wxListCtrl_SortItems: { // wxListCtrl::SortItems taylormade callbackInfo* cb = new callbackInfo(); cb->port = Ecmd.port; cb->callbackID = sortCallback; - bool Result = This->SortItems(wxEListCtrlCompare, (long)cb); + bool Result = This->SortItems(wxEListCtrlCompare, (wxeIntPtr)cb); delete cb; /* Destroy the callback, see wxEPrintout::clear_cb */ @@ -26735,6 +26730,20 @@ case utils_wxIsPlatform64Bit: { // utils::wxIsPlatform64Bit rt.addBool(Result); break; } +case gdicmn_wxDisplaySize: { // gdicmn::wxDisplaySize + int width; + int height; + ::wxDisplaySize(&width,&height); + rt.addInt(width); + rt.addInt(height); + rt.addTupleCount(2); + break; +} +case gdicmn_wxSetCursor: { // gdicmn::wxSetCursor + wxCursor *cursor = (wxCursor *) getPtr(bp,memenv); bp += 4; + ::wxSetCursor(*cursor); + break; +} case wxPrintout_new: { // wxPrintout::wxPrintout taylormade int onPreparePrinting=0,onBeginPrinting=0,onEndPrinting=0,onBeginDocument=0, @@ -26953,14 +26962,14 @@ case wxStyledTextCtrl_new_2: { // wxStyledTextCtrl::wxStyledTextCtrl style = (long)*(int *) bp; bp += 4; } break; }}; - wxStyledTextCtrl * Result = new wxStyledTextCtrl(parent,id,pos,size,style); - /* Possible memory leak here, class is missing virt dest */ + wxStyledTextCtrl * Result = new EwxStyledTextCtrl(parent,id,pos,size,style); + newPtr((void *) Result, 0, memenv); rt.addRef(getRef((void *)Result,memenv), "wxStyledTextCtrl"); break; } case wxStyledTextCtrl_new_0: { // wxStyledTextCtrl::wxStyledTextCtrl - wxStyledTextCtrl * Result = new wxStyledTextCtrl(); - /* Possible memory leak here, class is missing virt dest */ + wxStyledTextCtrl * Result = new EwxStyledTextCtrl(); + newPtr((void *) Result, 0, memenv); rt.addRef(getRef((void *)Result,memenv), "wxStyledTextCtrl"); break; } @@ -30447,7 +30456,7 @@ case wxNotebookEvent_SetSelection: { // wxNotebookEvent::SetSelection } case wxFileDataObject_new: { // wxFileDataObject::wxFileDataObject wxFileDataObject * Result = new wxFileDataObject(); - newPtr((void *) Result, 211, memenv); + newPtr((void *) Result, 212, memenv); rt.addRef(getRef((void *)Result,memenv), "wxFileDataObject"); break; } @@ -30483,7 +30492,7 @@ case wxTextDataObject_new: { // wxTextDataObject::wxTextDataObject } break; }}; wxTextDataObject * Result = new wxTextDataObject(text); - newPtr((void *) Result, 212, memenv); + newPtr((void *) Result, 213, memenv); rt.addRef(getRef((void *)Result,memenv), "wxTextDataObject"); break; } @@ -30519,7 +30528,7 @@ case wxTextDataObject_destroy: { // wxTextDataObject::destroy case wxBitmapDataObject_new_1_1: { // wxBitmapDataObject::wxBitmapDataObject wxBitmap *bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4; wxBitmapDataObject * Result = new wxBitmapDataObject(*bitmap); - newPtr((void *) Result, 213, memenv); + newPtr((void *) Result, 214, memenv); rt.addRef(getRef((void *)Result,memenv), "wxBitmapDataObject"); break; } @@ -30531,7 +30540,7 @@ bitmap = (wxBitmap *) getPtr(bp,memenv); bp += 4; } break; }}; wxBitmapDataObject * Result = new wxBitmapDataObject(*bitmap); - newPtr((void *) Result, 213, memenv); + newPtr((void *) Result, 214, memenv); rt.addRef(getRef((void *)Result,memenv), "wxBitmapDataObject"); break; } @@ -31364,7 +31373,7 @@ case wxAuiManagerEvent_CanVeto: { // wxAuiManagerEvent::CanVeto } case wxLogNull_new: { // wxLogNull::wxLogNull wxLogNull * Result = new wxLogNull(); - newPtr((void *) Result, 225, memenv); + newPtr((void *) Result, 226, memenv); rt.addRef(getRef((void *)Result,memenv), "wxLogNull"); break; } @@ -31411,6 +31420,213 @@ case wxTaskBarIcon_SetIcon: { // wxTaskBarIcon::SetIcon rt.addBool(Result); break; } +case wxLocale_new_0: { // wxLocale::wxLocale + wxLocale * Result = new EwxLocale(); + newPtr((void *) Result, 230, memenv); + rt.addRef(getRef((void *)Result,memenv), "wxLocale"); + break; +} +case wxLocale_new_2: { // wxLocale::wxLocale + int flags=wxLOCALE_LOAD_DEFAULT|wxLOCALE_CONV_ENCODING; + int * language = (int *) bp; bp += 4; + bp += 4; /* Align */ + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + flags = (int)*(int *) bp; bp += 4; + } break; + }}; + wxLocale * Result = new EwxLocale(*language,flags); + newPtr((void *) Result, 230, memenv); + rt.addRef(getRef((void *)Result,memenv), "wxLocale"); + break; +} +case wxLocale_destruct: { // wxLocale::~wxLocale + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(This) { ((WxeApp *) wxTheApp)->clearPtr((void *) This); + delete This;} + break; +} +case wxLocale_Init: { // wxLocale::Init + int language=wxLANGUAGE_DEFAULT; + int flags=wxLOCALE_LOAD_DEFAULT|wxLOCALE_CONV_ENCODING; + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + bp += 4; /* Align */ + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + language = (int)*(int *) bp; bp += 4; + } break; + case 2: {bp += 4; + flags = (int)*(int *) bp; bp += 4; + } break; + }}; + if(!This) throw wxe_badarg(0); + bool Result = This->Init(language,flags); + rt.addBool(Result); + break; +} +case wxLocale_AddCatalog_1: { // wxLocale::AddCatalog + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + wxString szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + if(!This) throw wxe_badarg(0); + bool Result = This->AddCatalog(szDomain); + rt.addBool(Result); + break; +} +case wxLocale_AddCatalog_3: { // wxLocale::AddCatalog + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + wxString szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + wxLanguage msgIdLanguage = *(wxLanguage *) bp; bp += 4;; + int * msgIdCharsetLen = (int *) bp; bp += 4; + wxString msgIdCharset = wxString(bp, wxConvUTF8); + bp += *msgIdCharsetLen+((8-((0+ *msgIdCharsetLen) & 7)) & 7); + if(!This) throw wxe_badarg(0); + bool Result = This->AddCatalog(szDomain,msgIdLanguage,msgIdCharset); + rt.addBool(Result); + break; +} +case wxLocale_AddCatalogLookupPathPrefix: { // wxLocale::AddCatalogLookupPathPrefix + int * prefixLen = (int *) bp; bp += 4; + wxString prefix = wxString(bp, wxConvUTF8); + bp += *prefixLen+((8-((4+ *prefixLen) & 7)) & 7); + wxLocale::AddCatalogLookupPathPrefix(prefix); + break; +} +case wxLocale_GetCanonicalName: { // wxLocale::GetCanonicalName + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + wxString Result = This->GetCanonicalName(); + rt.add(Result); + break; +} +case wxLocale_GetLanguage: { // wxLocale::GetLanguage + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + int Result = This->GetLanguage(); + rt.addInt(Result); + break; +} +case wxLocale_GetLanguageName: { // wxLocale::GetLanguageName + int * lang = (int *) bp; bp += 4; + wxString Result = wxLocale::GetLanguageName(*lang); + rt.add(Result); + break; +} +case wxLocale_GetLocale: { // wxLocale::GetLocale + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + const wxeLocaleC Result = This->GetLocale(); + rt.add(wxeLocaleC2String(Result)); + break; +} +case wxLocale_GetName: { // wxLocale::GetName + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + const wxString * Result = &This->GetName(); + rt.add(Result); + break; +} +case wxLocale_GetString_2: { // wxLocale::GetString + wxString szDomain= wxEmptyString; + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szOrigStringLen = (int *) bp; bp += 4; + wxString szOrigString = wxString(bp, wxConvUTF8); + bp += *szOrigStringLen+((8-((0+ *szOrigStringLen) & 7)) & 7); + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + } break; + }}; + if(!This) throw wxe_badarg(0); + const wxeLocaleC Result = This->GetString(szOrigString,szDomain); + rt.add(wxeLocaleC2String(Result)); + break; +} +case wxLocale_GetString_4: { // wxLocale::GetString + wxString szDomain= wxEmptyString; + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szOrigStringLen = (int *) bp; bp += 4; + wxString szOrigString = wxString(bp, wxConvUTF8); + bp += *szOrigStringLen+((8-((0+ *szOrigStringLen) & 7)) & 7); + int * szOrigString2Len = (int *) bp; bp += 4; + wxString szOrigString2 = wxString(bp, wxConvUTF8); + bp += *szOrigString2Len+((8-((4+ *szOrigString2Len) & 7)) & 7); + int * n = (int *) bp; bp += 4; + bp += 4; /* Align */ + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + } break; + }}; + if(!This) throw wxe_badarg(0); + const wxeLocaleC Result = This->GetString(szOrigString,szOrigString2,*n,szDomain); + rt.add(wxeLocaleC2String(Result)); + break; +} +case wxLocale_GetHeaderValue: { // wxLocale::GetHeaderValue + wxString szDomain= wxEmptyString; + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szHeaderLen = (int *) bp; bp += 4; + wxString szHeader = wxString(bp, wxConvUTF8); + bp += *szHeaderLen+((8-((0+ *szHeaderLen) & 7)) & 7); + while( * (int*) bp) { switch (* (int*) bp) { + case 1: {bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + } break; + }}; + if(!This) throw wxe_badarg(0); + wxString Result = This->GetHeaderValue(szHeader,szDomain); + rt.add(Result); + break; +} +case wxLocale_GetSysName: { // wxLocale::GetSysName + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + wxString Result = This->GetSysName(); + rt.add(Result); + break; +} +case wxLocale_GetSystemEncoding: { // wxLocale::GetSystemEncoding + int Result = wxLocale::GetSystemEncoding(); + rt.addInt(Result); + break; +} +case wxLocale_GetSystemEncodingName: { // wxLocale::GetSystemEncodingName + wxString Result = wxLocale::GetSystemEncodingName(); + rt.add(Result); + break; +} +case wxLocale_GetSystemLanguage: { // wxLocale::GetSystemLanguage + int Result = wxLocale::GetSystemLanguage(); + rt.addInt(Result); + break; +} +case wxLocale_IsLoaded: { // wxLocale::IsLoaded + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + int * szDomainLen = (int *) bp; bp += 4; + wxString szDomain = wxString(bp, wxConvUTF8); + bp += *szDomainLen+((8-((0+ *szDomainLen) & 7)) & 7); + if(!This) throw wxe_badarg(0); + bool Result = This->IsLoaded(szDomain); + rt.addBool(Result); + break; +} +case wxLocale_IsOk: { // wxLocale::IsOk + wxLocale *This = (wxLocale *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + bool Result = This->IsOk(); + rt.addBool(Result); + break; +} default: { wxeReturn error = wxeReturn(WXE_DRV_PORT, Ecmd.caller, false); error.addAtom("_wxe_error_"); error.addInt((int) Ecmd.op); @@ -31432,7 +31648,7 @@ case wxTaskBarIcon_SetIcon: { // wxTaskBarIcon::SetIcon }} /* The End */ -void WxeApp::delete_object(void *ptr, wxeRefData *refd) { +bool WxeApp::delete_object(void *ptr, wxeRefData *refd) { switch(refd->type) { case 24: delete (wxGridCellBoolRenderer *) ptr; break; case 25: delete (wxGridCellBoolEditor *) ptr; break; @@ -31451,10 +31667,13 @@ void WxeApp::delete_object(void *ptr, wxeRefData *refd) { case 101: delete (wxListItemAttr *) ptr; break; case 103: delete (wxTextAttr *) ptr; break; case 155: delete (wxAuiPaneInfo *) ptr; break; - case 211: /* delete (wxFileDataObject *) ptr;These objects must be deleted by owner object */ break; - case 212: /* delete (wxTextDataObject *) ptr;These objects must be deleted by owner object */ break; - case 213: /* delete (wxBitmapDataObject *) ptr;These objects must be deleted by owner object */ break; - case 225: delete (wxLogNull *) ptr; break; - default: delete (wxObject *) ptr; -}} + case 212: /* delete (wxFileDataObject *) ptr;These objects must be deleted by owner object */ break; + case 213: /* delete (wxTextDataObject *) ptr;These objects must be deleted by owner object */ break; + case 214: /* delete (wxBitmapDataObject *) ptr;These objects must be deleted by owner object */ break; + case 226: delete (wxLogNull *) ptr; break; + case 230: delete (EwxLocale *) ptr; return false; + default: delete (wxObject *) ptr; return false; + } + return true; +} diff --git a/lib/wx/c_src/gen/wxe_macros.h b/lib/wx/c_src/gen/wxe_macros.h index a1da6500d5..2da24f5d5e 100644 --- a/lib/wx/c_src/gen/wxe_macros.h +++ b/lib/wx/c_src/gen/wxe_macros.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -2756,601 +2756,624 @@ #define utils_wxGetOsDescription 2924 #define utils_wxIsPlatformLittleEndian 2925 #define utils_wxIsPlatform64Bit 2926 -#define wxPrintout_new 2927 -#define wxPrintout_destruct 2928 -#define wxPrintout_GetDC 2929 -#define wxPrintout_GetPageSizeMM 2930 -#define wxPrintout_GetPageSizePixels 2931 -#define wxPrintout_GetPaperRectPixels 2932 -#define wxPrintout_GetPPIPrinter 2933 -#define wxPrintout_GetPPIScreen 2934 -#define wxPrintout_GetTitle 2935 -#define wxPrintout_IsPreview 2936 -#define wxPrintout_FitThisSizeToPaper 2937 -#define wxPrintout_FitThisSizeToPage 2938 -#define wxPrintout_FitThisSizeToPageMargins 2939 -#define wxPrintout_MapScreenSizeToPaper 2940 -#define wxPrintout_MapScreenSizeToPage 2941 -#define wxPrintout_MapScreenSizeToPageMargins 2942 -#define wxPrintout_MapScreenSizeToDevice 2943 -#define wxPrintout_GetLogicalPaperRect 2944 -#define wxPrintout_GetLogicalPageRect 2945 -#define wxPrintout_GetLogicalPageMarginsRect 2946 -#define wxPrintout_SetLogicalOrigin 2947 -#define wxPrintout_OffsetLogicalOrigin 2948 -#define wxStyledTextCtrl_new_2 2949 -#define wxStyledTextCtrl_new_0 2950 -#define wxStyledTextCtrl_destruct 2951 -#define wxStyledTextCtrl_Create 2952 -#define wxStyledTextCtrl_AddText 2953 -#define wxStyledTextCtrl_AddStyledText 2954 -#define wxStyledTextCtrl_InsertText 2955 -#define wxStyledTextCtrl_ClearAll 2956 -#define wxStyledTextCtrl_ClearDocumentStyle 2957 -#define wxStyledTextCtrl_GetLength 2958 -#define wxStyledTextCtrl_GetCharAt 2959 -#define wxStyledTextCtrl_GetCurrentPos 2960 -#define wxStyledTextCtrl_GetAnchor 2961 -#define wxStyledTextCtrl_GetStyleAt 2962 -#define wxStyledTextCtrl_Redo 2963 -#define wxStyledTextCtrl_SetUndoCollection 2964 -#define wxStyledTextCtrl_SelectAll 2965 -#define wxStyledTextCtrl_SetSavePoint 2966 -#define wxStyledTextCtrl_GetStyledText 2967 -#define wxStyledTextCtrl_CanRedo 2968 -#define wxStyledTextCtrl_MarkerLineFromHandle 2969 -#define wxStyledTextCtrl_MarkerDeleteHandle 2970 -#define wxStyledTextCtrl_GetUndoCollection 2971 -#define wxStyledTextCtrl_GetViewWhiteSpace 2972 -#define wxStyledTextCtrl_SetViewWhiteSpace 2973 -#define wxStyledTextCtrl_PositionFromPoint 2974 -#define wxStyledTextCtrl_PositionFromPointClose 2975 -#define wxStyledTextCtrl_GotoLine 2976 -#define wxStyledTextCtrl_GotoPos 2977 -#define wxStyledTextCtrl_SetAnchor 2978 -#define wxStyledTextCtrl_GetCurLine 2979 -#define wxStyledTextCtrl_GetEndStyled 2980 -#define wxStyledTextCtrl_ConvertEOLs 2981 -#define wxStyledTextCtrl_GetEOLMode 2982 -#define wxStyledTextCtrl_SetEOLMode 2983 -#define wxStyledTextCtrl_StartStyling 2984 -#define wxStyledTextCtrl_SetStyling 2985 -#define wxStyledTextCtrl_GetBufferedDraw 2986 -#define wxStyledTextCtrl_SetBufferedDraw 2987 -#define wxStyledTextCtrl_SetTabWidth 2988 -#define wxStyledTextCtrl_GetTabWidth 2989 -#define wxStyledTextCtrl_SetCodePage 2990 -#define wxStyledTextCtrl_MarkerDefine 2991 -#define wxStyledTextCtrl_MarkerSetForeground 2992 -#define wxStyledTextCtrl_MarkerSetBackground 2993 -#define wxStyledTextCtrl_MarkerAdd 2994 -#define wxStyledTextCtrl_MarkerDelete 2995 -#define wxStyledTextCtrl_MarkerDeleteAll 2996 -#define wxStyledTextCtrl_MarkerGet 2997 -#define wxStyledTextCtrl_MarkerNext 2998 -#define wxStyledTextCtrl_MarkerPrevious 2999 -#define wxStyledTextCtrl_MarkerDefineBitmap 3000 -#define wxStyledTextCtrl_MarkerAddSet 3001 -#define wxStyledTextCtrl_MarkerSetAlpha 3002 -#define wxStyledTextCtrl_SetMarginType 3003 -#define wxStyledTextCtrl_GetMarginType 3004 -#define wxStyledTextCtrl_SetMarginWidth 3005 -#define wxStyledTextCtrl_GetMarginWidth 3006 -#define wxStyledTextCtrl_SetMarginMask 3007 -#define wxStyledTextCtrl_GetMarginMask 3008 -#define wxStyledTextCtrl_SetMarginSensitive 3009 -#define wxStyledTextCtrl_GetMarginSensitive 3010 -#define wxStyledTextCtrl_StyleClearAll 3011 -#define wxStyledTextCtrl_StyleSetForeground 3012 -#define wxStyledTextCtrl_StyleSetBackground 3013 -#define wxStyledTextCtrl_StyleSetBold 3014 -#define wxStyledTextCtrl_StyleSetItalic 3015 -#define wxStyledTextCtrl_StyleSetSize 3016 -#define wxStyledTextCtrl_StyleSetFaceName 3017 -#define wxStyledTextCtrl_StyleSetEOLFilled 3018 -#define wxStyledTextCtrl_StyleResetDefault 3019 -#define wxStyledTextCtrl_StyleSetUnderline 3020 -#define wxStyledTextCtrl_StyleSetCase 3021 -#define wxStyledTextCtrl_StyleSetHotSpot 3022 -#define wxStyledTextCtrl_SetSelForeground 3023 -#define wxStyledTextCtrl_SetSelBackground 3024 -#define wxStyledTextCtrl_GetSelAlpha 3025 -#define wxStyledTextCtrl_SetSelAlpha 3026 -#define wxStyledTextCtrl_SetCaretForeground 3027 -#define wxStyledTextCtrl_CmdKeyAssign 3028 -#define wxStyledTextCtrl_CmdKeyClear 3029 -#define wxStyledTextCtrl_CmdKeyClearAll 3030 -#define wxStyledTextCtrl_SetStyleBytes 3031 -#define wxStyledTextCtrl_StyleSetVisible 3032 -#define wxStyledTextCtrl_GetCaretPeriod 3033 -#define wxStyledTextCtrl_SetCaretPeriod 3034 -#define wxStyledTextCtrl_SetWordChars 3035 -#define wxStyledTextCtrl_BeginUndoAction 3036 -#define wxStyledTextCtrl_EndUndoAction 3037 -#define wxStyledTextCtrl_IndicatorSetStyle 3038 -#define wxStyledTextCtrl_IndicatorGetStyle 3039 -#define wxStyledTextCtrl_IndicatorSetForeground 3040 -#define wxStyledTextCtrl_IndicatorGetForeground 3041 -#define wxStyledTextCtrl_SetWhitespaceForeground 3042 -#define wxStyledTextCtrl_SetWhitespaceBackground 3043 -#define wxStyledTextCtrl_GetStyleBits 3044 -#define wxStyledTextCtrl_SetLineState 3045 -#define wxStyledTextCtrl_GetLineState 3046 -#define wxStyledTextCtrl_GetMaxLineState 3047 -#define wxStyledTextCtrl_GetCaretLineVisible 3048 -#define wxStyledTextCtrl_SetCaretLineVisible 3049 -#define wxStyledTextCtrl_GetCaretLineBackground 3050 -#define wxStyledTextCtrl_SetCaretLineBackground 3051 -#define wxStyledTextCtrl_AutoCompShow 3052 -#define wxStyledTextCtrl_AutoCompCancel 3053 -#define wxStyledTextCtrl_AutoCompActive 3054 -#define wxStyledTextCtrl_AutoCompPosStart 3055 -#define wxStyledTextCtrl_AutoCompComplete 3056 -#define wxStyledTextCtrl_AutoCompStops 3057 -#define wxStyledTextCtrl_AutoCompSetSeparator 3058 -#define wxStyledTextCtrl_AutoCompGetSeparator 3059 -#define wxStyledTextCtrl_AutoCompSelect 3060 -#define wxStyledTextCtrl_AutoCompSetCancelAtStart 3061 -#define wxStyledTextCtrl_AutoCompGetCancelAtStart 3062 -#define wxStyledTextCtrl_AutoCompSetFillUps 3063 -#define wxStyledTextCtrl_AutoCompSetChooseSingle 3064 -#define wxStyledTextCtrl_AutoCompGetChooseSingle 3065 -#define wxStyledTextCtrl_AutoCompSetIgnoreCase 3066 -#define wxStyledTextCtrl_AutoCompGetIgnoreCase 3067 -#define wxStyledTextCtrl_UserListShow 3068 -#define wxStyledTextCtrl_AutoCompSetAutoHide 3069 -#define wxStyledTextCtrl_AutoCompGetAutoHide 3070 -#define wxStyledTextCtrl_AutoCompSetDropRestOfWord 3071 -#define wxStyledTextCtrl_AutoCompGetDropRestOfWord 3072 -#define wxStyledTextCtrl_RegisterImage 3073 -#define wxStyledTextCtrl_ClearRegisteredImages 3074 -#define wxStyledTextCtrl_AutoCompGetTypeSeparator 3075 -#define wxStyledTextCtrl_AutoCompSetTypeSeparator 3076 -#define wxStyledTextCtrl_AutoCompSetMaxWidth 3077 -#define wxStyledTextCtrl_AutoCompGetMaxWidth 3078 -#define wxStyledTextCtrl_AutoCompSetMaxHeight 3079 -#define wxStyledTextCtrl_AutoCompGetMaxHeight 3080 -#define wxStyledTextCtrl_SetIndent 3081 -#define wxStyledTextCtrl_GetIndent 3082 -#define wxStyledTextCtrl_SetUseTabs 3083 -#define wxStyledTextCtrl_GetUseTabs 3084 -#define wxStyledTextCtrl_SetLineIndentation 3085 -#define wxStyledTextCtrl_GetLineIndentation 3086 -#define wxStyledTextCtrl_GetLineIndentPosition 3087 -#define wxStyledTextCtrl_GetColumn 3088 -#define wxStyledTextCtrl_SetUseHorizontalScrollBar 3089 -#define wxStyledTextCtrl_GetUseHorizontalScrollBar 3090 -#define wxStyledTextCtrl_SetIndentationGuides 3091 -#define wxStyledTextCtrl_GetIndentationGuides 3092 -#define wxStyledTextCtrl_SetHighlightGuide 3093 -#define wxStyledTextCtrl_GetHighlightGuide 3094 -#define wxStyledTextCtrl_GetLineEndPosition 3095 -#define wxStyledTextCtrl_GetCodePage 3096 -#define wxStyledTextCtrl_GetCaretForeground 3097 -#define wxStyledTextCtrl_GetReadOnly 3098 -#define wxStyledTextCtrl_SetCurrentPos 3099 -#define wxStyledTextCtrl_SetSelectionStart 3100 -#define wxStyledTextCtrl_GetSelectionStart 3101 -#define wxStyledTextCtrl_SetSelectionEnd 3102 -#define wxStyledTextCtrl_GetSelectionEnd 3103 -#define wxStyledTextCtrl_SetPrintMagnification 3104 -#define wxStyledTextCtrl_GetPrintMagnification 3105 -#define wxStyledTextCtrl_SetPrintColourMode 3106 -#define wxStyledTextCtrl_GetPrintColourMode 3107 -#define wxStyledTextCtrl_FindText 3108 -#define wxStyledTextCtrl_FormatRange 3109 -#define wxStyledTextCtrl_GetFirstVisibleLine 3110 -#define wxStyledTextCtrl_GetLine 3111 -#define wxStyledTextCtrl_GetLineCount 3112 -#define wxStyledTextCtrl_SetMarginLeft 3113 -#define wxStyledTextCtrl_GetMarginLeft 3114 -#define wxStyledTextCtrl_SetMarginRight 3115 -#define wxStyledTextCtrl_GetMarginRight 3116 -#define wxStyledTextCtrl_GetModify 3117 -#define wxStyledTextCtrl_SetSelection 3118 -#define wxStyledTextCtrl_GetSelectedText 3119 -#define wxStyledTextCtrl_GetTextRange 3120 -#define wxStyledTextCtrl_HideSelection 3121 -#define wxStyledTextCtrl_LineFromPosition 3122 -#define wxStyledTextCtrl_PositionFromLine 3123 -#define wxStyledTextCtrl_LineScroll 3124 -#define wxStyledTextCtrl_EnsureCaretVisible 3125 -#define wxStyledTextCtrl_ReplaceSelection 3126 -#define wxStyledTextCtrl_SetReadOnly 3127 -#define wxStyledTextCtrl_CanPaste 3128 -#define wxStyledTextCtrl_CanUndo 3129 -#define wxStyledTextCtrl_EmptyUndoBuffer 3130 -#define wxStyledTextCtrl_Undo 3131 -#define wxStyledTextCtrl_Cut 3132 -#define wxStyledTextCtrl_Copy 3133 -#define wxStyledTextCtrl_Paste 3134 -#define wxStyledTextCtrl_Clear 3135 -#define wxStyledTextCtrl_SetText 3136 -#define wxStyledTextCtrl_GetText 3137 -#define wxStyledTextCtrl_GetTextLength 3138 -#define wxStyledTextCtrl_GetOvertype 3139 -#define wxStyledTextCtrl_SetCaretWidth 3140 -#define wxStyledTextCtrl_GetCaretWidth 3141 -#define wxStyledTextCtrl_SetTargetStart 3142 -#define wxStyledTextCtrl_GetTargetStart 3143 -#define wxStyledTextCtrl_SetTargetEnd 3144 -#define wxStyledTextCtrl_GetTargetEnd 3145 -#define wxStyledTextCtrl_ReplaceTarget 3146 -#define wxStyledTextCtrl_SearchInTarget 3147 -#define wxStyledTextCtrl_SetSearchFlags 3148 -#define wxStyledTextCtrl_GetSearchFlags 3149 -#define wxStyledTextCtrl_CallTipShow 3150 -#define wxStyledTextCtrl_CallTipCancel 3151 -#define wxStyledTextCtrl_CallTipActive 3152 -#define wxStyledTextCtrl_CallTipPosAtStart 3153 -#define wxStyledTextCtrl_CallTipSetHighlight 3154 -#define wxStyledTextCtrl_CallTipSetBackground 3155 -#define wxStyledTextCtrl_CallTipSetForeground 3156 -#define wxStyledTextCtrl_CallTipSetForegroundHighlight 3157 -#define wxStyledTextCtrl_CallTipUseStyle 3158 -#define wxStyledTextCtrl_VisibleFromDocLine 3159 -#define wxStyledTextCtrl_DocLineFromVisible 3160 -#define wxStyledTextCtrl_WrapCount 3161 -#define wxStyledTextCtrl_SetFoldLevel 3162 -#define wxStyledTextCtrl_GetFoldLevel 3163 -#define wxStyledTextCtrl_GetLastChild 3164 -#define wxStyledTextCtrl_GetFoldParent 3165 -#define wxStyledTextCtrl_ShowLines 3166 -#define wxStyledTextCtrl_HideLines 3167 -#define wxStyledTextCtrl_GetLineVisible 3168 -#define wxStyledTextCtrl_SetFoldExpanded 3169 -#define wxStyledTextCtrl_GetFoldExpanded 3170 -#define wxStyledTextCtrl_ToggleFold 3171 -#define wxStyledTextCtrl_EnsureVisible 3172 -#define wxStyledTextCtrl_SetFoldFlags 3173 -#define wxStyledTextCtrl_EnsureVisibleEnforcePolicy 3174 -#define wxStyledTextCtrl_SetTabIndents 3175 -#define wxStyledTextCtrl_GetTabIndents 3176 -#define wxStyledTextCtrl_SetBackSpaceUnIndents 3177 -#define wxStyledTextCtrl_GetBackSpaceUnIndents 3178 -#define wxStyledTextCtrl_SetMouseDwellTime 3179 -#define wxStyledTextCtrl_GetMouseDwellTime 3180 -#define wxStyledTextCtrl_WordStartPosition 3181 -#define wxStyledTextCtrl_WordEndPosition 3182 -#define wxStyledTextCtrl_SetWrapMode 3183 -#define wxStyledTextCtrl_GetWrapMode 3184 -#define wxStyledTextCtrl_SetWrapVisualFlags 3185 -#define wxStyledTextCtrl_GetWrapVisualFlags 3186 -#define wxStyledTextCtrl_SetWrapVisualFlagsLocation 3187 -#define wxStyledTextCtrl_GetWrapVisualFlagsLocation 3188 -#define wxStyledTextCtrl_SetWrapStartIndent 3189 -#define wxStyledTextCtrl_GetWrapStartIndent 3190 -#define wxStyledTextCtrl_SetLayoutCache 3191 -#define wxStyledTextCtrl_GetLayoutCache 3192 -#define wxStyledTextCtrl_SetScrollWidth 3193 -#define wxStyledTextCtrl_GetScrollWidth 3194 -#define wxStyledTextCtrl_TextWidth 3195 -#define wxStyledTextCtrl_GetEndAtLastLine 3196 -#define wxStyledTextCtrl_TextHeight 3197 -#define wxStyledTextCtrl_SetUseVerticalScrollBar 3198 -#define wxStyledTextCtrl_GetUseVerticalScrollBar 3199 -#define wxStyledTextCtrl_AppendText 3200 -#define wxStyledTextCtrl_GetTwoPhaseDraw 3201 -#define wxStyledTextCtrl_SetTwoPhaseDraw 3202 -#define wxStyledTextCtrl_TargetFromSelection 3203 -#define wxStyledTextCtrl_LinesJoin 3204 -#define wxStyledTextCtrl_LinesSplit 3205 -#define wxStyledTextCtrl_SetFoldMarginColour 3206 -#define wxStyledTextCtrl_SetFoldMarginHiColour 3207 -#define wxStyledTextCtrl_LineDown 3208 -#define wxStyledTextCtrl_LineDownExtend 3209 -#define wxStyledTextCtrl_LineUp 3210 -#define wxStyledTextCtrl_LineUpExtend 3211 -#define wxStyledTextCtrl_CharLeft 3212 -#define wxStyledTextCtrl_CharLeftExtend 3213 -#define wxStyledTextCtrl_CharRight 3214 -#define wxStyledTextCtrl_CharRightExtend 3215 -#define wxStyledTextCtrl_WordLeft 3216 -#define wxStyledTextCtrl_WordLeftExtend 3217 -#define wxStyledTextCtrl_WordRight 3218 -#define wxStyledTextCtrl_WordRightExtend 3219 -#define wxStyledTextCtrl_Home 3220 -#define wxStyledTextCtrl_HomeExtend 3221 -#define wxStyledTextCtrl_LineEnd 3222 -#define wxStyledTextCtrl_LineEndExtend 3223 -#define wxStyledTextCtrl_DocumentStart 3224 -#define wxStyledTextCtrl_DocumentStartExtend 3225 -#define wxStyledTextCtrl_DocumentEnd 3226 -#define wxStyledTextCtrl_DocumentEndExtend 3227 -#define wxStyledTextCtrl_PageUp 3228 -#define wxStyledTextCtrl_PageUpExtend 3229 -#define wxStyledTextCtrl_PageDown 3230 -#define wxStyledTextCtrl_PageDownExtend 3231 -#define wxStyledTextCtrl_EditToggleOvertype 3232 -#define wxStyledTextCtrl_Cancel 3233 -#define wxStyledTextCtrl_DeleteBack 3234 -#define wxStyledTextCtrl_Tab 3235 -#define wxStyledTextCtrl_BackTab 3236 -#define wxStyledTextCtrl_NewLine 3237 -#define wxStyledTextCtrl_FormFeed 3238 -#define wxStyledTextCtrl_VCHome 3239 -#define wxStyledTextCtrl_VCHomeExtend 3240 -#define wxStyledTextCtrl_ZoomIn 3241 -#define wxStyledTextCtrl_ZoomOut 3242 -#define wxStyledTextCtrl_DelWordLeft 3243 -#define wxStyledTextCtrl_DelWordRight 3244 -#define wxStyledTextCtrl_LineCut 3245 -#define wxStyledTextCtrl_LineDelete 3246 -#define wxStyledTextCtrl_LineTranspose 3247 -#define wxStyledTextCtrl_LineDuplicate 3248 -#define wxStyledTextCtrl_LowerCase 3249 -#define wxStyledTextCtrl_UpperCase 3250 -#define wxStyledTextCtrl_LineScrollDown 3251 -#define wxStyledTextCtrl_LineScrollUp 3252 -#define wxStyledTextCtrl_DeleteBackNotLine 3253 -#define wxStyledTextCtrl_HomeDisplay 3254 -#define wxStyledTextCtrl_HomeDisplayExtend 3255 -#define wxStyledTextCtrl_LineEndDisplay 3256 -#define wxStyledTextCtrl_LineEndDisplayExtend 3257 -#define wxStyledTextCtrl_HomeWrapExtend 3258 -#define wxStyledTextCtrl_LineEndWrap 3259 -#define wxStyledTextCtrl_LineEndWrapExtend 3260 -#define wxStyledTextCtrl_VCHomeWrap 3261 -#define wxStyledTextCtrl_VCHomeWrapExtend 3262 -#define wxStyledTextCtrl_LineCopy 3263 -#define wxStyledTextCtrl_MoveCaretInsideView 3264 -#define wxStyledTextCtrl_LineLength 3265 -#define wxStyledTextCtrl_BraceHighlight 3266 -#define wxStyledTextCtrl_BraceBadLight 3267 -#define wxStyledTextCtrl_BraceMatch 3268 -#define wxStyledTextCtrl_GetViewEOL 3269 -#define wxStyledTextCtrl_SetViewEOL 3270 -#define wxStyledTextCtrl_SetModEventMask 3271 -#define wxStyledTextCtrl_GetEdgeColumn 3272 -#define wxStyledTextCtrl_SetEdgeColumn 3273 -#define wxStyledTextCtrl_SetEdgeMode 3274 -#define wxStyledTextCtrl_GetEdgeMode 3275 -#define wxStyledTextCtrl_GetEdgeColour 3276 -#define wxStyledTextCtrl_SetEdgeColour 3277 -#define wxStyledTextCtrl_SearchAnchor 3278 -#define wxStyledTextCtrl_SearchNext 3279 -#define wxStyledTextCtrl_SearchPrev 3280 -#define wxStyledTextCtrl_LinesOnScreen 3281 -#define wxStyledTextCtrl_UsePopUp 3282 -#define wxStyledTextCtrl_SelectionIsRectangle 3283 -#define wxStyledTextCtrl_SetZoom 3284 -#define wxStyledTextCtrl_GetZoom 3285 -#define wxStyledTextCtrl_GetModEventMask 3286 -#define wxStyledTextCtrl_SetSTCFocus 3287 -#define wxStyledTextCtrl_GetSTCFocus 3288 -#define wxStyledTextCtrl_SetStatus 3289 -#define wxStyledTextCtrl_GetStatus 3290 -#define wxStyledTextCtrl_SetMouseDownCaptures 3291 -#define wxStyledTextCtrl_GetMouseDownCaptures 3292 -#define wxStyledTextCtrl_SetSTCCursor 3293 -#define wxStyledTextCtrl_GetSTCCursor 3294 -#define wxStyledTextCtrl_SetControlCharSymbol 3295 -#define wxStyledTextCtrl_GetControlCharSymbol 3296 -#define wxStyledTextCtrl_WordPartLeft 3297 -#define wxStyledTextCtrl_WordPartLeftExtend 3298 -#define wxStyledTextCtrl_WordPartRight 3299 -#define wxStyledTextCtrl_WordPartRightExtend 3300 -#define wxStyledTextCtrl_SetVisiblePolicy 3301 -#define wxStyledTextCtrl_DelLineLeft 3302 -#define wxStyledTextCtrl_DelLineRight 3303 -#define wxStyledTextCtrl_GetXOffset 3304 -#define wxStyledTextCtrl_ChooseCaretX 3305 -#define wxStyledTextCtrl_SetXCaretPolicy 3306 -#define wxStyledTextCtrl_SetYCaretPolicy 3307 -#define wxStyledTextCtrl_GetPrintWrapMode 3308 -#define wxStyledTextCtrl_SetHotspotActiveForeground 3309 -#define wxStyledTextCtrl_SetHotspotActiveBackground 3310 -#define wxStyledTextCtrl_SetHotspotActiveUnderline 3311 -#define wxStyledTextCtrl_SetHotspotSingleLine 3312 -#define wxStyledTextCtrl_ParaDownExtend 3313 -#define wxStyledTextCtrl_ParaUp 3314 -#define wxStyledTextCtrl_ParaUpExtend 3315 -#define wxStyledTextCtrl_PositionBefore 3316 -#define wxStyledTextCtrl_PositionAfter 3317 -#define wxStyledTextCtrl_CopyRange 3318 -#define wxStyledTextCtrl_CopyText 3319 -#define wxStyledTextCtrl_SetSelectionMode 3320 -#define wxStyledTextCtrl_GetSelectionMode 3321 -#define wxStyledTextCtrl_LineDownRectExtend 3322 -#define wxStyledTextCtrl_LineUpRectExtend 3323 -#define wxStyledTextCtrl_CharLeftRectExtend 3324 -#define wxStyledTextCtrl_CharRightRectExtend 3325 -#define wxStyledTextCtrl_HomeRectExtend 3326 -#define wxStyledTextCtrl_VCHomeRectExtend 3327 -#define wxStyledTextCtrl_LineEndRectExtend 3328 -#define wxStyledTextCtrl_PageUpRectExtend 3329 -#define wxStyledTextCtrl_PageDownRectExtend 3330 -#define wxStyledTextCtrl_StutteredPageUp 3331 -#define wxStyledTextCtrl_StutteredPageUpExtend 3332 -#define wxStyledTextCtrl_StutteredPageDown 3333 -#define wxStyledTextCtrl_StutteredPageDownExtend 3334 -#define wxStyledTextCtrl_WordLeftEnd 3335 -#define wxStyledTextCtrl_WordLeftEndExtend 3336 -#define wxStyledTextCtrl_WordRightEnd 3337 -#define wxStyledTextCtrl_WordRightEndExtend 3338 -#define wxStyledTextCtrl_SetWhitespaceChars 3339 -#define wxStyledTextCtrl_SetCharsDefault 3340 -#define wxStyledTextCtrl_AutoCompGetCurrent 3341 -#define wxStyledTextCtrl_Allocate 3342 -#define wxStyledTextCtrl_FindColumn 3343 -#define wxStyledTextCtrl_GetCaretSticky 3344 -#define wxStyledTextCtrl_SetCaretSticky 3345 -#define wxStyledTextCtrl_ToggleCaretSticky 3346 -#define wxStyledTextCtrl_SetPasteConvertEndings 3347 -#define wxStyledTextCtrl_GetPasteConvertEndings 3348 -#define wxStyledTextCtrl_SelectionDuplicate 3349 -#define wxStyledTextCtrl_SetCaretLineBackAlpha 3350 -#define wxStyledTextCtrl_GetCaretLineBackAlpha 3351 -#define wxStyledTextCtrl_StartRecord 3352 -#define wxStyledTextCtrl_StopRecord 3353 -#define wxStyledTextCtrl_SetLexer 3354 -#define wxStyledTextCtrl_GetLexer 3355 -#define wxStyledTextCtrl_Colourise 3356 -#define wxStyledTextCtrl_SetProperty 3357 -#define wxStyledTextCtrl_SetKeyWords 3358 -#define wxStyledTextCtrl_SetLexerLanguage 3359 -#define wxStyledTextCtrl_GetProperty 3360 -#define wxStyledTextCtrl_GetStyleBitsNeeded 3361 -#define wxStyledTextCtrl_GetCurrentLine 3362 -#define wxStyledTextCtrl_StyleSetSpec 3363 -#define wxStyledTextCtrl_StyleSetFont 3364 -#define wxStyledTextCtrl_StyleSetFontAttr 3365 -#define wxStyledTextCtrl_StyleSetCharacterSet 3366 -#define wxStyledTextCtrl_StyleSetFontEncoding 3367 -#define wxStyledTextCtrl_CmdKeyExecute 3368 -#define wxStyledTextCtrl_SetMargins 3369 -#define wxStyledTextCtrl_GetSelection 3370 -#define wxStyledTextCtrl_PointFromPosition 3371 -#define wxStyledTextCtrl_ScrollToLine 3372 -#define wxStyledTextCtrl_ScrollToColumn 3373 -#define wxStyledTextCtrl_SetVScrollBar 3374 -#define wxStyledTextCtrl_SetHScrollBar 3375 -#define wxStyledTextCtrl_GetLastKeydownProcessed 3376 -#define wxStyledTextCtrl_SetLastKeydownProcessed 3377 -#define wxStyledTextCtrl_SaveFile 3378 -#define wxStyledTextCtrl_LoadFile 3379 -#define wxStyledTextCtrl_DoDragOver 3380 -#define wxStyledTextCtrl_DoDropText 3381 -#define wxStyledTextCtrl_GetUseAntiAliasing 3382 -#define wxStyledTextCtrl_AddTextRaw 3383 -#define wxStyledTextCtrl_InsertTextRaw 3384 -#define wxStyledTextCtrl_GetCurLineRaw 3385 -#define wxStyledTextCtrl_GetLineRaw 3386 -#define wxStyledTextCtrl_GetSelectedTextRaw 3387 -#define wxStyledTextCtrl_GetTextRangeRaw 3388 -#define wxStyledTextCtrl_SetTextRaw 3389 -#define wxStyledTextCtrl_GetTextRaw 3390 -#define wxStyledTextCtrl_AppendTextRaw 3391 -#define wxArtProvider_GetBitmap 3392 -#define wxArtProvider_GetIcon 3393 -#define wxTreeEvent_GetKeyCode 3394 -#define wxTreeEvent_GetItem 3395 -#define wxTreeEvent_GetKeyEvent 3396 -#define wxTreeEvent_GetLabel 3397 -#define wxTreeEvent_GetOldItem 3398 -#define wxTreeEvent_GetPoint 3399 -#define wxTreeEvent_IsEditCancelled 3400 -#define wxTreeEvent_SetToolTip 3401 -#define wxNotebookEvent_GetOldSelection 3402 -#define wxNotebookEvent_GetSelection 3403 -#define wxNotebookEvent_SetOldSelection 3404 -#define wxNotebookEvent_SetSelection 3405 -#define wxFileDataObject_new 3406 -#define wxFileDataObject_AddFile 3407 -#define wxFileDataObject_GetFilenames 3408 -#define wxFileDataObject_destroy 3409 -#define wxTextDataObject_new 3410 -#define wxTextDataObject_GetTextLength 3411 -#define wxTextDataObject_GetText 3412 -#define wxTextDataObject_SetText 3413 -#define wxTextDataObject_destroy 3414 -#define wxBitmapDataObject_new_1_1 3415 -#define wxBitmapDataObject_new_1_0 3416 -#define wxBitmapDataObject_GetBitmap 3417 -#define wxBitmapDataObject_SetBitmap 3418 -#define wxBitmapDataObject_destroy 3419 -#define wxClipboard_new 3421 -#define wxClipboard_destruct 3422 -#define wxClipboard_AddData 3423 -#define wxClipboard_Clear 3424 -#define wxClipboard_Close 3425 -#define wxClipboard_Flush 3426 -#define wxClipboard_GetData 3427 -#define wxClipboard_IsOpened 3428 -#define wxClipboard_Open 3429 -#define wxClipboard_SetData 3430 -#define wxClipboard_UsePrimarySelection 3432 -#define wxClipboard_IsSupported 3433 -#define wxClipboard_Get 3434 -#define wxSpinEvent_GetPosition 3435 -#define wxSpinEvent_SetPosition 3436 -#define wxSplitterWindow_new_0 3437 -#define wxSplitterWindow_new_2 3438 -#define wxSplitterWindow_destruct 3439 -#define wxSplitterWindow_Create 3440 -#define wxSplitterWindow_GetMinimumPaneSize 3441 -#define wxSplitterWindow_GetSashGravity 3442 -#define wxSplitterWindow_GetSashPosition 3443 -#define wxSplitterWindow_GetSplitMode 3444 -#define wxSplitterWindow_GetWindow1 3445 -#define wxSplitterWindow_GetWindow2 3446 -#define wxSplitterWindow_Initialize 3447 -#define wxSplitterWindow_IsSplit 3448 -#define wxSplitterWindow_ReplaceWindow 3449 -#define wxSplitterWindow_SetSashGravity 3450 -#define wxSplitterWindow_SetSashPosition 3451 -#define wxSplitterWindow_SetSashSize 3452 -#define wxSplitterWindow_SetMinimumPaneSize 3453 -#define wxSplitterWindow_SetSplitMode 3454 -#define wxSplitterWindow_SplitHorizontally 3455 -#define wxSplitterWindow_SplitVertically 3456 -#define wxSplitterWindow_Unsplit 3457 -#define wxSplitterWindow_UpdateSize 3458 -#define wxSplitterEvent_GetSashPosition 3459 -#define wxSplitterEvent_GetX 3460 -#define wxSplitterEvent_GetY 3461 -#define wxSplitterEvent_GetWindowBeingRemoved 3462 -#define wxSplitterEvent_SetSashPosition 3463 -#define wxHtmlWindow_new_0 3464 -#define wxHtmlWindow_new_2 3465 -#define wxHtmlWindow_AppendToPage 3466 -#define wxHtmlWindow_GetOpenedAnchor 3467 -#define wxHtmlWindow_GetOpenedPage 3468 -#define wxHtmlWindow_GetOpenedPageTitle 3469 -#define wxHtmlWindow_GetRelatedFrame 3470 -#define wxHtmlWindow_HistoryBack 3471 -#define wxHtmlWindow_HistoryCanBack 3472 -#define wxHtmlWindow_HistoryCanForward 3473 -#define wxHtmlWindow_HistoryClear 3474 -#define wxHtmlWindow_HistoryForward 3475 -#define wxHtmlWindow_LoadFile 3476 -#define wxHtmlWindow_LoadPage 3477 -#define wxHtmlWindow_SelectAll 3478 -#define wxHtmlWindow_SelectionToText 3479 -#define wxHtmlWindow_SelectLine 3480 -#define wxHtmlWindow_SelectWord 3481 -#define wxHtmlWindow_SetBorders 3482 -#define wxHtmlWindow_SetFonts 3483 -#define wxHtmlWindow_SetPage 3484 -#define wxHtmlWindow_SetRelatedFrame 3485 -#define wxHtmlWindow_SetRelatedStatusBar 3486 -#define wxHtmlWindow_ToText 3487 -#define wxHtmlWindow_destroy 3488 -#define wxHtmlLinkEvent_GetLinkInfo 3489 -#define wxSystemSettings_GetColour 3490 -#define wxSystemSettings_GetFont 3491 -#define wxSystemSettings_GetMetric 3492 -#define wxSystemSettings_GetScreenType 3493 -#define wxSystemOptions_GetOption 3494 -#define wxSystemOptions_GetOptionInt 3495 -#define wxSystemOptions_HasOption 3496 -#define wxSystemOptions_IsFalse 3497 -#define wxSystemOptions_SetOption_2_1 3498 -#define wxSystemOptions_SetOption_2_0 3499 -#define wxAuiNotebookEvent_SetSelection 3500 -#define wxAuiNotebookEvent_GetSelection 3501 -#define wxAuiNotebookEvent_SetOldSelection 3502 -#define wxAuiNotebookEvent_GetOldSelection 3503 -#define wxAuiNotebookEvent_SetDragSource 3504 -#define wxAuiNotebookEvent_GetDragSource 3505 -#define wxAuiManagerEvent_SetManager 3506 -#define wxAuiManagerEvent_GetManager 3507 -#define wxAuiManagerEvent_SetPane 3508 -#define wxAuiManagerEvent_GetPane 3509 -#define wxAuiManagerEvent_SetButton 3510 -#define wxAuiManagerEvent_GetButton 3511 -#define wxAuiManagerEvent_SetDC 3512 -#define wxAuiManagerEvent_GetDC 3513 -#define wxAuiManagerEvent_Veto 3514 -#define wxAuiManagerEvent_GetVeto 3515 -#define wxAuiManagerEvent_SetCanVeto 3516 -#define wxAuiManagerEvent_CanVeto 3517 -#define wxLogNull_new 3518 -#define wxLogNull_destroy 3519 -#define wxTaskBarIcon_new 3520 -#define wxTaskBarIcon_destruct 3521 -#define wxTaskBarIcon_PopupMenu 3522 -#define wxTaskBarIcon_RemoveIcon 3523 -#define wxTaskBarIcon_SetIcon 3524 +#define gdicmn_wxDisplaySize 2927 +#define gdicmn_wxSetCursor 2928 +#define wxPrintout_new 2929 +#define wxPrintout_destruct 2930 +#define wxPrintout_GetDC 2931 +#define wxPrintout_GetPageSizeMM 2932 +#define wxPrintout_GetPageSizePixels 2933 +#define wxPrintout_GetPaperRectPixels 2934 +#define wxPrintout_GetPPIPrinter 2935 +#define wxPrintout_GetPPIScreen 2936 +#define wxPrintout_GetTitle 2937 +#define wxPrintout_IsPreview 2938 +#define wxPrintout_FitThisSizeToPaper 2939 +#define wxPrintout_FitThisSizeToPage 2940 +#define wxPrintout_FitThisSizeToPageMargins 2941 +#define wxPrintout_MapScreenSizeToPaper 2942 +#define wxPrintout_MapScreenSizeToPage 2943 +#define wxPrintout_MapScreenSizeToPageMargins 2944 +#define wxPrintout_MapScreenSizeToDevice 2945 +#define wxPrintout_GetLogicalPaperRect 2946 +#define wxPrintout_GetLogicalPageRect 2947 +#define wxPrintout_GetLogicalPageMarginsRect 2948 +#define wxPrintout_SetLogicalOrigin 2949 +#define wxPrintout_OffsetLogicalOrigin 2950 +#define wxStyledTextCtrl_new_2 2951 +#define wxStyledTextCtrl_new_0 2952 +#define wxStyledTextCtrl_destruct 2953 +#define wxStyledTextCtrl_Create 2954 +#define wxStyledTextCtrl_AddText 2955 +#define wxStyledTextCtrl_AddStyledText 2956 +#define wxStyledTextCtrl_InsertText 2957 +#define wxStyledTextCtrl_ClearAll 2958 +#define wxStyledTextCtrl_ClearDocumentStyle 2959 +#define wxStyledTextCtrl_GetLength 2960 +#define wxStyledTextCtrl_GetCharAt 2961 +#define wxStyledTextCtrl_GetCurrentPos 2962 +#define wxStyledTextCtrl_GetAnchor 2963 +#define wxStyledTextCtrl_GetStyleAt 2964 +#define wxStyledTextCtrl_Redo 2965 +#define wxStyledTextCtrl_SetUndoCollection 2966 +#define wxStyledTextCtrl_SelectAll 2967 +#define wxStyledTextCtrl_SetSavePoint 2968 +#define wxStyledTextCtrl_GetStyledText 2969 +#define wxStyledTextCtrl_CanRedo 2970 +#define wxStyledTextCtrl_MarkerLineFromHandle 2971 +#define wxStyledTextCtrl_MarkerDeleteHandle 2972 +#define wxStyledTextCtrl_GetUndoCollection 2973 +#define wxStyledTextCtrl_GetViewWhiteSpace 2974 +#define wxStyledTextCtrl_SetViewWhiteSpace 2975 +#define wxStyledTextCtrl_PositionFromPoint 2976 +#define wxStyledTextCtrl_PositionFromPointClose 2977 +#define wxStyledTextCtrl_GotoLine 2978 +#define wxStyledTextCtrl_GotoPos 2979 +#define wxStyledTextCtrl_SetAnchor 2980 +#define wxStyledTextCtrl_GetCurLine 2981 +#define wxStyledTextCtrl_GetEndStyled 2982 +#define wxStyledTextCtrl_ConvertEOLs 2983 +#define wxStyledTextCtrl_GetEOLMode 2984 +#define wxStyledTextCtrl_SetEOLMode 2985 +#define wxStyledTextCtrl_StartStyling 2986 +#define wxStyledTextCtrl_SetStyling 2987 +#define wxStyledTextCtrl_GetBufferedDraw 2988 +#define wxStyledTextCtrl_SetBufferedDraw 2989 +#define wxStyledTextCtrl_SetTabWidth 2990 +#define wxStyledTextCtrl_GetTabWidth 2991 +#define wxStyledTextCtrl_SetCodePage 2992 +#define wxStyledTextCtrl_MarkerDefine 2993 +#define wxStyledTextCtrl_MarkerSetForeground 2994 +#define wxStyledTextCtrl_MarkerSetBackground 2995 +#define wxStyledTextCtrl_MarkerAdd 2996 +#define wxStyledTextCtrl_MarkerDelete 2997 +#define wxStyledTextCtrl_MarkerDeleteAll 2998 +#define wxStyledTextCtrl_MarkerGet 2999 +#define wxStyledTextCtrl_MarkerNext 3000 +#define wxStyledTextCtrl_MarkerPrevious 3001 +#define wxStyledTextCtrl_MarkerDefineBitmap 3002 +#define wxStyledTextCtrl_MarkerAddSet 3003 +#define wxStyledTextCtrl_MarkerSetAlpha 3004 +#define wxStyledTextCtrl_SetMarginType 3005 +#define wxStyledTextCtrl_GetMarginType 3006 +#define wxStyledTextCtrl_SetMarginWidth 3007 +#define wxStyledTextCtrl_GetMarginWidth 3008 +#define wxStyledTextCtrl_SetMarginMask 3009 +#define wxStyledTextCtrl_GetMarginMask 3010 +#define wxStyledTextCtrl_SetMarginSensitive 3011 +#define wxStyledTextCtrl_GetMarginSensitive 3012 +#define wxStyledTextCtrl_StyleClearAll 3013 +#define wxStyledTextCtrl_StyleSetForeground 3014 +#define wxStyledTextCtrl_StyleSetBackground 3015 +#define wxStyledTextCtrl_StyleSetBold 3016 +#define wxStyledTextCtrl_StyleSetItalic 3017 +#define wxStyledTextCtrl_StyleSetSize 3018 +#define wxStyledTextCtrl_StyleSetFaceName 3019 +#define wxStyledTextCtrl_StyleSetEOLFilled 3020 +#define wxStyledTextCtrl_StyleResetDefault 3021 +#define wxStyledTextCtrl_StyleSetUnderline 3022 +#define wxStyledTextCtrl_StyleSetCase 3023 +#define wxStyledTextCtrl_StyleSetHotSpot 3024 +#define wxStyledTextCtrl_SetSelForeground 3025 +#define wxStyledTextCtrl_SetSelBackground 3026 +#define wxStyledTextCtrl_GetSelAlpha 3027 +#define wxStyledTextCtrl_SetSelAlpha 3028 +#define wxStyledTextCtrl_SetCaretForeground 3029 +#define wxStyledTextCtrl_CmdKeyAssign 3030 +#define wxStyledTextCtrl_CmdKeyClear 3031 +#define wxStyledTextCtrl_CmdKeyClearAll 3032 +#define wxStyledTextCtrl_SetStyleBytes 3033 +#define wxStyledTextCtrl_StyleSetVisible 3034 +#define wxStyledTextCtrl_GetCaretPeriod 3035 +#define wxStyledTextCtrl_SetCaretPeriod 3036 +#define wxStyledTextCtrl_SetWordChars 3037 +#define wxStyledTextCtrl_BeginUndoAction 3038 +#define wxStyledTextCtrl_EndUndoAction 3039 +#define wxStyledTextCtrl_IndicatorSetStyle 3040 +#define wxStyledTextCtrl_IndicatorGetStyle 3041 +#define wxStyledTextCtrl_IndicatorSetForeground 3042 +#define wxStyledTextCtrl_IndicatorGetForeground 3043 +#define wxStyledTextCtrl_SetWhitespaceForeground 3044 +#define wxStyledTextCtrl_SetWhitespaceBackground 3045 +#define wxStyledTextCtrl_GetStyleBits 3046 +#define wxStyledTextCtrl_SetLineState 3047 +#define wxStyledTextCtrl_GetLineState 3048 +#define wxStyledTextCtrl_GetMaxLineState 3049 +#define wxStyledTextCtrl_GetCaretLineVisible 3050 +#define wxStyledTextCtrl_SetCaretLineVisible 3051 +#define wxStyledTextCtrl_GetCaretLineBackground 3052 +#define wxStyledTextCtrl_SetCaretLineBackground 3053 +#define wxStyledTextCtrl_AutoCompShow 3054 +#define wxStyledTextCtrl_AutoCompCancel 3055 +#define wxStyledTextCtrl_AutoCompActive 3056 +#define wxStyledTextCtrl_AutoCompPosStart 3057 +#define wxStyledTextCtrl_AutoCompComplete 3058 +#define wxStyledTextCtrl_AutoCompStops 3059 +#define wxStyledTextCtrl_AutoCompSetSeparator 3060 +#define wxStyledTextCtrl_AutoCompGetSeparator 3061 +#define wxStyledTextCtrl_AutoCompSelect 3062 +#define wxStyledTextCtrl_AutoCompSetCancelAtStart 3063 +#define wxStyledTextCtrl_AutoCompGetCancelAtStart 3064 +#define wxStyledTextCtrl_AutoCompSetFillUps 3065 +#define wxStyledTextCtrl_AutoCompSetChooseSingle 3066 +#define wxStyledTextCtrl_AutoCompGetChooseSingle 3067 +#define wxStyledTextCtrl_AutoCompSetIgnoreCase 3068 +#define wxStyledTextCtrl_AutoCompGetIgnoreCase 3069 +#define wxStyledTextCtrl_UserListShow 3070 +#define wxStyledTextCtrl_AutoCompSetAutoHide 3071 +#define wxStyledTextCtrl_AutoCompGetAutoHide 3072 +#define wxStyledTextCtrl_AutoCompSetDropRestOfWord 3073 +#define wxStyledTextCtrl_AutoCompGetDropRestOfWord 3074 +#define wxStyledTextCtrl_RegisterImage 3075 +#define wxStyledTextCtrl_ClearRegisteredImages 3076 +#define wxStyledTextCtrl_AutoCompGetTypeSeparator 3077 +#define wxStyledTextCtrl_AutoCompSetTypeSeparator 3078 +#define wxStyledTextCtrl_AutoCompSetMaxWidth 3079 +#define wxStyledTextCtrl_AutoCompGetMaxWidth 3080 +#define wxStyledTextCtrl_AutoCompSetMaxHeight 3081 +#define wxStyledTextCtrl_AutoCompGetMaxHeight 3082 +#define wxStyledTextCtrl_SetIndent 3083 +#define wxStyledTextCtrl_GetIndent 3084 +#define wxStyledTextCtrl_SetUseTabs 3085 +#define wxStyledTextCtrl_GetUseTabs 3086 +#define wxStyledTextCtrl_SetLineIndentation 3087 +#define wxStyledTextCtrl_GetLineIndentation 3088 +#define wxStyledTextCtrl_GetLineIndentPosition 3089 +#define wxStyledTextCtrl_GetColumn 3090 +#define wxStyledTextCtrl_SetUseHorizontalScrollBar 3091 +#define wxStyledTextCtrl_GetUseHorizontalScrollBar 3092 +#define wxStyledTextCtrl_SetIndentationGuides 3093 +#define wxStyledTextCtrl_GetIndentationGuides 3094 +#define wxStyledTextCtrl_SetHighlightGuide 3095 +#define wxStyledTextCtrl_GetHighlightGuide 3096 +#define wxStyledTextCtrl_GetLineEndPosition 3097 +#define wxStyledTextCtrl_GetCodePage 3098 +#define wxStyledTextCtrl_GetCaretForeground 3099 +#define wxStyledTextCtrl_GetReadOnly 3100 +#define wxStyledTextCtrl_SetCurrentPos 3101 +#define wxStyledTextCtrl_SetSelectionStart 3102 +#define wxStyledTextCtrl_GetSelectionStart 3103 +#define wxStyledTextCtrl_SetSelectionEnd 3104 +#define wxStyledTextCtrl_GetSelectionEnd 3105 +#define wxStyledTextCtrl_SetPrintMagnification 3106 +#define wxStyledTextCtrl_GetPrintMagnification 3107 +#define wxStyledTextCtrl_SetPrintColourMode 3108 +#define wxStyledTextCtrl_GetPrintColourMode 3109 +#define wxStyledTextCtrl_FindText 3110 +#define wxStyledTextCtrl_FormatRange 3111 +#define wxStyledTextCtrl_GetFirstVisibleLine 3112 +#define wxStyledTextCtrl_GetLine 3113 +#define wxStyledTextCtrl_GetLineCount 3114 +#define wxStyledTextCtrl_SetMarginLeft 3115 +#define wxStyledTextCtrl_GetMarginLeft 3116 +#define wxStyledTextCtrl_SetMarginRight 3117 +#define wxStyledTextCtrl_GetMarginRight 3118 +#define wxStyledTextCtrl_GetModify 3119 +#define wxStyledTextCtrl_SetSelection 3120 +#define wxStyledTextCtrl_GetSelectedText 3121 +#define wxStyledTextCtrl_GetTextRange 3122 +#define wxStyledTextCtrl_HideSelection 3123 +#define wxStyledTextCtrl_LineFromPosition 3124 +#define wxStyledTextCtrl_PositionFromLine 3125 +#define wxStyledTextCtrl_LineScroll 3126 +#define wxStyledTextCtrl_EnsureCaretVisible 3127 +#define wxStyledTextCtrl_ReplaceSelection 3128 +#define wxStyledTextCtrl_SetReadOnly 3129 +#define wxStyledTextCtrl_CanPaste 3130 +#define wxStyledTextCtrl_CanUndo 3131 +#define wxStyledTextCtrl_EmptyUndoBuffer 3132 +#define wxStyledTextCtrl_Undo 3133 +#define wxStyledTextCtrl_Cut 3134 +#define wxStyledTextCtrl_Copy 3135 +#define wxStyledTextCtrl_Paste 3136 +#define wxStyledTextCtrl_Clear 3137 +#define wxStyledTextCtrl_SetText 3138 +#define wxStyledTextCtrl_GetText 3139 +#define wxStyledTextCtrl_GetTextLength 3140 +#define wxStyledTextCtrl_GetOvertype 3141 +#define wxStyledTextCtrl_SetCaretWidth 3142 +#define wxStyledTextCtrl_GetCaretWidth 3143 +#define wxStyledTextCtrl_SetTargetStart 3144 +#define wxStyledTextCtrl_GetTargetStart 3145 +#define wxStyledTextCtrl_SetTargetEnd 3146 +#define wxStyledTextCtrl_GetTargetEnd 3147 +#define wxStyledTextCtrl_ReplaceTarget 3148 +#define wxStyledTextCtrl_SearchInTarget 3149 +#define wxStyledTextCtrl_SetSearchFlags 3150 +#define wxStyledTextCtrl_GetSearchFlags 3151 +#define wxStyledTextCtrl_CallTipShow 3152 +#define wxStyledTextCtrl_CallTipCancel 3153 +#define wxStyledTextCtrl_CallTipActive 3154 +#define wxStyledTextCtrl_CallTipPosAtStart 3155 +#define wxStyledTextCtrl_CallTipSetHighlight 3156 +#define wxStyledTextCtrl_CallTipSetBackground 3157 +#define wxStyledTextCtrl_CallTipSetForeground 3158 +#define wxStyledTextCtrl_CallTipSetForegroundHighlight 3159 +#define wxStyledTextCtrl_CallTipUseStyle 3160 +#define wxStyledTextCtrl_VisibleFromDocLine 3161 +#define wxStyledTextCtrl_DocLineFromVisible 3162 +#define wxStyledTextCtrl_WrapCount 3163 +#define wxStyledTextCtrl_SetFoldLevel 3164 +#define wxStyledTextCtrl_GetFoldLevel 3165 +#define wxStyledTextCtrl_GetLastChild 3166 +#define wxStyledTextCtrl_GetFoldParent 3167 +#define wxStyledTextCtrl_ShowLines 3168 +#define wxStyledTextCtrl_HideLines 3169 +#define wxStyledTextCtrl_GetLineVisible 3170 +#define wxStyledTextCtrl_SetFoldExpanded 3171 +#define wxStyledTextCtrl_GetFoldExpanded 3172 +#define wxStyledTextCtrl_ToggleFold 3173 +#define wxStyledTextCtrl_EnsureVisible 3174 +#define wxStyledTextCtrl_SetFoldFlags 3175 +#define wxStyledTextCtrl_EnsureVisibleEnforcePolicy 3176 +#define wxStyledTextCtrl_SetTabIndents 3177 +#define wxStyledTextCtrl_GetTabIndents 3178 +#define wxStyledTextCtrl_SetBackSpaceUnIndents 3179 +#define wxStyledTextCtrl_GetBackSpaceUnIndents 3180 +#define wxStyledTextCtrl_SetMouseDwellTime 3181 +#define wxStyledTextCtrl_GetMouseDwellTime 3182 +#define wxStyledTextCtrl_WordStartPosition 3183 +#define wxStyledTextCtrl_WordEndPosition 3184 +#define wxStyledTextCtrl_SetWrapMode 3185 +#define wxStyledTextCtrl_GetWrapMode 3186 +#define wxStyledTextCtrl_SetWrapVisualFlags 3187 +#define wxStyledTextCtrl_GetWrapVisualFlags 3188 +#define wxStyledTextCtrl_SetWrapVisualFlagsLocation 3189 +#define wxStyledTextCtrl_GetWrapVisualFlagsLocation 3190 +#define wxStyledTextCtrl_SetWrapStartIndent 3191 +#define wxStyledTextCtrl_GetWrapStartIndent 3192 +#define wxStyledTextCtrl_SetLayoutCache 3193 +#define wxStyledTextCtrl_GetLayoutCache 3194 +#define wxStyledTextCtrl_SetScrollWidth 3195 +#define wxStyledTextCtrl_GetScrollWidth 3196 +#define wxStyledTextCtrl_TextWidth 3197 +#define wxStyledTextCtrl_GetEndAtLastLine 3198 +#define wxStyledTextCtrl_TextHeight 3199 +#define wxStyledTextCtrl_SetUseVerticalScrollBar 3200 +#define wxStyledTextCtrl_GetUseVerticalScrollBar 3201 +#define wxStyledTextCtrl_AppendText 3202 +#define wxStyledTextCtrl_GetTwoPhaseDraw 3203 +#define wxStyledTextCtrl_SetTwoPhaseDraw 3204 +#define wxStyledTextCtrl_TargetFromSelection 3205 +#define wxStyledTextCtrl_LinesJoin 3206 +#define wxStyledTextCtrl_LinesSplit 3207 +#define wxStyledTextCtrl_SetFoldMarginColour 3208 +#define wxStyledTextCtrl_SetFoldMarginHiColour 3209 +#define wxStyledTextCtrl_LineDown 3210 +#define wxStyledTextCtrl_LineDownExtend 3211 +#define wxStyledTextCtrl_LineUp 3212 +#define wxStyledTextCtrl_LineUpExtend 3213 +#define wxStyledTextCtrl_CharLeft 3214 +#define wxStyledTextCtrl_CharLeftExtend 3215 +#define wxStyledTextCtrl_CharRight 3216 +#define wxStyledTextCtrl_CharRightExtend 3217 +#define wxStyledTextCtrl_WordLeft 3218 +#define wxStyledTextCtrl_WordLeftExtend 3219 +#define wxStyledTextCtrl_WordRight 3220 +#define wxStyledTextCtrl_WordRightExtend 3221 +#define wxStyledTextCtrl_Home 3222 +#define wxStyledTextCtrl_HomeExtend 3223 +#define wxStyledTextCtrl_LineEnd 3224 +#define wxStyledTextCtrl_LineEndExtend 3225 +#define wxStyledTextCtrl_DocumentStart 3226 +#define wxStyledTextCtrl_DocumentStartExtend 3227 +#define wxStyledTextCtrl_DocumentEnd 3228 +#define wxStyledTextCtrl_DocumentEndExtend 3229 +#define wxStyledTextCtrl_PageUp 3230 +#define wxStyledTextCtrl_PageUpExtend 3231 +#define wxStyledTextCtrl_PageDown 3232 +#define wxStyledTextCtrl_PageDownExtend 3233 +#define wxStyledTextCtrl_EditToggleOvertype 3234 +#define wxStyledTextCtrl_Cancel 3235 +#define wxStyledTextCtrl_DeleteBack 3236 +#define wxStyledTextCtrl_Tab 3237 +#define wxStyledTextCtrl_BackTab 3238 +#define wxStyledTextCtrl_NewLine 3239 +#define wxStyledTextCtrl_FormFeed 3240 +#define wxStyledTextCtrl_VCHome 3241 +#define wxStyledTextCtrl_VCHomeExtend 3242 +#define wxStyledTextCtrl_ZoomIn 3243 +#define wxStyledTextCtrl_ZoomOut 3244 +#define wxStyledTextCtrl_DelWordLeft 3245 +#define wxStyledTextCtrl_DelWordRight 3246 +#define wxStyledTextCtrl_LineCut 3247 +#define wxStyledTextCtrl_LineDelete 3248 +#define wxStyledTextCtrl_LineTranspose 3249 +#define wxStyledTextCtrl_LineDuplicate 3250 +#define wxStyledTextCtrl_LowerCase 3251 +#define wxStyledTextCtrl_UpperCase 3252 +#define wxStyledTextCtrl_LineScrollDown 3253 +#define wxStyledTextCtrl_LineScrollUp 3254 +#define wxStyledTextCtrl_DeleteBackNotLine 3255 +#define wxStyledTextCtrl_HomeDisplay 3256 +#define wxStyledTextCtrl_HomeDisplayExtend 3257 +#define wxStyledTextCtrl_LineEndDisplay 3258 +#define wxStyledTextCtrl_LineEndDisplayExtend 3259 +#define wxStyledTextCtrl_HomeWrapExtend 3260 +#define wxStyledTextCtrl_LineEndWrap 3261 +#define wxStyledTextCtrl_LineEndWrapExtend 3262 +#define wxStyledTextCtrl_VCHomeWrap 3263 +#define wxStyledTextCtrl_VCHomeWrapExtend 3264 +#define wxStyledTextCtrl_LineCopy 3265 +#define wxStyledTextCtrl_MoveCaretInsideView 3266 +#define wxStyledTextCtrl_LineLength 3267 +#define wxStyledTextCtrl_BraceHighlight 3268 +#define wxStyledTextCtrl_BraceBadLight 3269 +#define wxStyledTextCtrl_BraceMatch 3270 +#define wxStyledTextCtrl_GetViewEOL 3271 +#define wxStyledTextCtrl_SetViewEOL 3272 +#define wxStyledTextCtrl_SetModEventMask 3273 +#define wxStyledTextCtrl_GetEdgeColumn 3274 +#define wxStyledTextCtrl_SetEdgeColumn 3275 +#define wxStyledTextCtrl_SetEdgeMode 3276 +#define wxStyledTextCtrl_GetEdgeMode 3277 +#define wxStyledTextCtrl_GetEdgeColour 3278 +#define wxStyledTextCtrl_SetEdgeColour 3279 +#define wxStyledTextCtrl_SearchAnchor 3280 +#define wxStyledTextCtrl_SearchNext 3281 +#define wxStyledTextCtrl_SearchPrev 3282 +#define wxStyledTextCtrl_LinesOnScreen 3283 +#define wxStyledTextCtrl_UsePopUp 3284 +#define wxStyledTextCtrl_SelectionIsRectangle 3285 +#define wxStyledTextCtrl_SetZoom 3286 +#define wxStyledTextCtrl_GetZoom 3287 +#define wxStyledTextCtrl_GetModEventMask 3288 +#define wxStyledTextCtrl_SetSTCFocus 3289 +#define wxStyledTextCtrl_GetSTCFocus 3290 +#define wxStyledTextCtrl_SetStatus 3291 +#define wxStyledTextCtrl_GetStatus 3292 +#define wxStyledTextCtrl_SetMouseDownCaptures 3293 +#define wxStyledTextCtrl_GetMouseDownCaptures 3294 +#define wxStyledTextCtrl_SetSTCCursor 3295 +#define wxStyledTextCtrl_GetSTCCursor 3296 +#define wxStyledTextCtrl_SetControlCharSymbol 3297 +#define wxStyledTextCtrl_GetControlCharSymbol 3298 +#define wxStyledTextCtrl_WordPartLeft 3299 +#define wxStyledTextCtrl_WordPartLeftExtend 3300 +#define wxStyledTextCtrl_WordPartRight 3301 +#define wxStyledTextCtrl_WordPartRightExtend 3302 +#define wxStyledTextCtrl_SetVisiblePolicy 3303 +#define wxStyledTextCtrl_DelLineLeft 3304 +#define wxStyledTextCtrl_DelLineRight 3305 +#define wxStyledTextCtrl_GetXOffset 3306 +#define wxStyledTextCtrl_ChooseCaretX 3307 +#define wxStyledTextCtrl_SetXCaretPolicy 3308 +#define wxStyledTextCtrl_SetYCaretPolicy 3309 +#define wxStyledTextCtrl_GetPrintWrapMode 3310 +#define wxStyledTextCtrl_SetHotspotActiveForeground 3311 +#define wxStyledTextCtrl_SetHotspotActiveBackground 3312 +#define wxStyledTextCtrl_SetHotspotActiveUnderline 3313 +#define wxStyledTextCtrl_SetHotspotSingleLine 3314 +#define wxStyledTextCtrl_ParaDownExtend 3315 +#define wxStyledTextCtrl_ParaUp 3316 +#define wxStyledTextCtrl_ParaUpExtend 3317 +#define wxStyledTextCtrl_PositionBefore 3318 +#define wxStyledTextCtrl_PositionAfter 3319 +#define wxStyledTextCtrl_CopyRange 3320 +#define wxStyledTextCtrl_CopyText 3321 +#define wxStyledTextCtrl_SetSelectionMode 3322 +#define wxStyledTextCtrl_GetSelectionMode 3323 +#define wxStyledTextCtrl_LineDownRectExtend 3324 +#define wxStyledTextCtrl_LineUpRectExtend 3325 +#define wxStyledTextCtrl_CharLeftRectExtend 3326 +#define wxStyledTextCtrl_CharRightRectExtend 3327 +#define wxStyledTextCtrl_HomeRectExtend 3328 +#define wxStyledTextCtrl_VCHomeRectExtend 3329 +#define wxStyledTextCtrl_LineEndRectExtend 3330 +#define wxStyledTextCtrl_PageUpRectExtend 3331 +#define wxStyledTextCtrl_PageDownRectExtend 3332 +#define wxStyledTextCtrl_StutteredPageUp 3333 +#define wxStyledTextCtrl_StutteredPageUpExtend 3334 +#define wxStyledTextCtrl_StutteredPageDown 3335 +#define wxStyledTextCtrl_StutteredPageDownExtend 3336 +#define wxStyledTextCtrl_WordLeftEnd 3337 +#define wxStyledTextCtrl_WordLeftEndExtend 3338 +#define wxStyledTextCtrl_WordRightEnd 3339 +#define wxStyledTextCtrl_WordRightEndExtend 3340 +#define wxStyledTextCtrl_SetWhitespaceChars 3341 +#define wxStyledTextCtrl_SetCharsDefault 3342 +#define wxStyledTextCtrl_AutoCompGetCurrent 3343 +#define wxStyledTextCtrl_Allocate 3344 +#define wxStyledTextCtrl_FindColumn 3345 +#define wxStyledTextCtrl_GetCaretSticky 3346 +#define wxStyledTextCtrl_SetCaretSticky 3347 +#define wxStyledTextCtrl_ToggleCaretSticky 3348 +#define wxStyledTextCtrl_SetPasteConvertEndings 3349 +#define wxStyledTextCtrl_GetPasteConvertEndings 3350 +#define wxStyledTextCtrl_SelectionDuplicate 3351 +#define wxStyledTextCtrl_SetCaretLineBackAlpha 3352 +#define wxStyledTextCtrl_GetCaretLineBackAlpha 3353 +#define wxStyledTextCtrl_StartRecord 3354 +#define wxStyledTextCtrl_StopRecord 3355 +#define wxStyledTextCtrl_SetLexer 3356 +#define wxStyledTextCtrl_GetLexer 3357 +#define wxStyledTextCtrl_Colourise 3358 +#define wxStyledTextCtrl_SetProperty 3359 +#define wxStyledTextCtrl_SetKeyWords 3360 +#define wxStyledTextCtrl_SetLexerLanguage 3361 +#define wxStyledTextCtrl_GetProperty 3362 +#define wxStyledTextCtrl_GetStyleBitsNeeded 3363 +#define wxStyledTextCtrl_GetCurrentLine 3364 +#define wxStyledTextCtrl_StyleSetSpec 3365 +#define wxStyledTextCtrl_StyleSetFont 3366 +#define wxStyledTextCtrl_StyleSetFontAttr 3367 +#define wxStyledTextCtrl_StyleSetCharacterSet 3368 +#define wxStyledTextCtrl_StyleSetFontEncoding 3369 +#define wxStyledTextCtrl_CmdKeyExecute 3370 +#define wxStyledTextCtrl_SetMargins 3371 +#define wxStyledTextCtrl_GetSelection 3372 +#define wxStyledTextCtrl_PointFromPosition 3373 +#define wxStyledTextCtrl_ScrollToLine 3374 +#define wxStyledTextCtrl_ScrollToColumn 3375 +#define wxStyledTextCtrl_SetVScrollBar 3376 +#define wxStyledTextCtrl_SetHScrollBar 3377 +#define wxStyledTextCtrl_GetLastKeydownProcessed 3378 +#define wxStyledTextCtrl_SetLastKeydownProcessed 3379 +#define wxStyledTextCtrl_SaveFile 3380 +#define wxStyledTextCtrl_LoadFile 3381 +#define wxStyledTextCtrl_DoDragOver 3382 +#define wxStyledTextCtrl_DoDropText 3383 +#define wxStyledTextCtrl_GetUseAntiAliasing 3384 +#define wxStyledTextCtrl_AddTextRaw 3385 +#define wxStyledTextCtrl_InsertTextRaw 3386 +#define wxStyledTextCtrl_GetCurLineRaw 3387 +#define wxStyledTextCtrl_GetLineRaw 3388 +#define wxStyledTextCtrl_GetSelectedTextRaw 3389 +#define wxStyledTextCtrl_GetTextRangeRaw 3390 +#define wxStyledTextCtrl_SetTextRaw 3391 +#define wxStyledTextCtrl_GetTextRaw 3392 +#define wxStyledTextCtrl_AppendTextRaw 3393 +#define wxArtProvider_GetBitmap 3394 +#define wxArtProvider_GetIcon 3395 +#define wxTreeEvent_GetKeyCode 3396 +#define wxTreeEvent_GetItem 3397 +#define wxTreeEvent_GetKeyEvent 3398 +#define wxTreeEvent_GetLabel 3399 +#define wxTreeEvent_GetOldItem 3400 +#define wxTreeEvent_GetPoint 3401 +#define wxTreeEvent_IsEditCancelled 3402 +#define wxTreeEvent_SetToolTip 3403 +#define wxNotebookEvent_GetOldSelection 3404 +#define wxNotebookEvent_GetSelection 3405 +#define wxNotebookEvent_SetOldSelection 3406 +#define wxNotebookEvent_SetSelection 3407 +#define wxFileDataObject_new 3408 +#define wxFileDataObject_AddFile 3409 +#define wxFileDataObject_GetFilenames 3410 +#define wxFileDataObject_destroy 3411 +#define wxTextDataObject_new 3412 +#define wxTextDataObject_GetTextLength 3413 +#define wxTextDataObject_GetText 3414 +#define wxTextDataObject_SetText 3415 +#define wxTextDataObject_destroy 3416 +#define wxBitmapDataObject_new_1_1 3417 +#define wxBitmapDataObject_new_1_0 3418 +#define wxBitmapDataObject_GetBitmap 3419 +#define wxBitmapDataObject_SetBitmap 3420 +#define wxBitmapDataObject_destroy 3421 +#define wxClipboard_new 3423 +#define wxClipboard_destruct 3424 +#define wxClipboard_AddData 3425 +#define wxClipboard_Clear 3426 +#define wxClipboard_Close 3427 +#define wxClipboard_Flush 3428 +#define wxClipboard_GetData 3429 +#define wxClipboard_IsOpened 3430 +#define wxClipboard_Open 3431 +#define wxClipboard_SetData 3432 +#define wxClipboard_UsePrimarySelection 3434 +#define wxClipboard_IsSupported 3435 +#define wxClipboard_Get 3436 +#define wxSpinEvent_GetPosition 3437 +#define wxSpinEvent_SetPosition 3438 +#define wxSplitterWindow_new_0 3439 +#define wxSplitterWindow_new_2 3440 +#define wxSplitterWindow_destruct 3441 +#define wxSplitterWindow_Create 3442 +#define wxSplitterWindow_GetMinimumPaneSize 3443 +#define wxSplitterWindow_GetSashGravity 3444 +#define wxSplitterWindow_GetSashPosition 3445 +#define wxSplitterWindow_GetSplitMode 3446 +#define wxSplitterWindow_GetWindow1 3447 +#define wxSplitterWindow_GetWindow2 3448 +#define wxSplitterWindow_Initialize 3449 +#define wxSplitterWindow_IsSplit 3450 +#define wxSplitterWindow_ReplaceWindow 3451 +#define wxSplitterWindow_SetSashGravity 3452 +#define wxSplitterWindow_SetSashPosition 3453 +#define wxSplitterWindow_SetSashSize 3454 +#define wxSplitterWindow_SetMinimumPaneSize 3455 +#define wxSplitterWindow_SetSplitMode 3456 +#define wxSplitterWindow_SplitHorizontally 3457 +#define wxSplitterWindow_SplitVertically 3458 +#define wxSplitterWindow_Unsplit 3459 +#define wxSplitterWindow_UpdateSize 3460 +#define wxSplitterEvent_GetSashPosition 3461 +#define wxSplitterEvent_GetX 3462 +#define wxSplitterEvent_GetY 3463 +#define wxSplitterEvent_GetWindowBeingRemoved 3464 +#define wxSplitterEvent_SetSashPosition 3465 +#define wxHtmlWindow_new_0 3466 +#define wxHtmlWindow_new_2 3467 +#define wxHtmlWindow_AppendToPage 3468 +#define wxHtmlWindow_GetOpenedAnchor 3469 +#define wxHtmlWindow_GetOpenedPage 3470 +#define wxHtmlWindow_GetOpenedPageTitle 3471 +#define wxHtmlWindow_GetRelatedFrame 3472 +#define wxHtmlWindow_HistoryBack 3473 +#define wxHtmlWindow_HistoryCanBack 3474 +#define wxHtmlWindow_HistoryCanForward 3475 +#define wxHtmlWindow_HistoryClear 3476 +#define wxHtmlWindow_HistoryForward 3477 +#define wxHtmlWindow_LoadFile 3478 +#define wxHtmlWindow_LoadPage 3479 +#define wxHtmlWindow_SelectAll 3480 +#define wxHtmlWindow_SelectionToText 3481 +#define wxHtmlWindow_SelectLine 3482 +#define wxHtmlWindow_SelectWord 3483 +#define wxHtmlWindow_SetBorders 3484 +#define wxHtmlWindow_SetFonts 3485 +#define wxHtmlWindow_SetPage 3486 +#define wxHtmlWindow_SetRelatedFrame 3487 +#define wxHtmlWindow_SetRelatedStatusBar 3488 +#define wxHtmlWindow_ToText 3489 +#define wxHtmlWindow_destroy 3490 +#define wxHtmlLinkEvent_GetLinkInfo 3491 +#define wxSystemSettings_GetColour 3492 +#define wxSystemSettings_GetFont 3493 +#define wxSystemSettings_GetMetric 3494 +#define wxSystemSettings_GetScreenType 3495 +#define wxSystemOptions_GetOption 3496 +#define wxSystemOptions_GetOptionInt 3497 +#define wxSystemOptions_HasOption 3498 +#define wxSystemOptions_IsFalse 3499 +#define wxSystemOptions_SetOption_2_1 3500 +#define wxSystemOptions_SetOption_2_0 3501 +#define wxAuiNotebookEvent_SetSelection 3502 +#define wxAuiNotebookEvent_GetSelection 3503 +#define wxAuiNotebookEvent_SetOldSelection 3504 +#define wxAuiNotebookEvent_GetOldSelection 3505 +#define wxAuiNotebookEvent_SetDragSource 3506 +#define wxAuiNotebookEvent_GetDragSource 3507 +#define wxAuiManagerEvent_SetManager 3508 +#define wxAuiManagerEvent_GetManager 3509 +#define wxAuiManagerEvent_SetPane 3510 +#define wxAuiManagerEvent_GetPane 3511 +#define wxAuiManagerEvent_SetButton 3512 +#define wxAuiManagerEvent_GetButton 3513 +#define wxAuiManagerEvent_SetDC 3514 +#define wxAuiManagerEvent_GetDC 3515 +#define wxAuiManagerEvent_Veto 3516 +#define wxAuiManagerEvent_GetVeto 3517 +#define wxAuiManagerEvent_SetCanVeto 3518 +#define wxAuiManagerEvent_CanVeto 3519 +#define wxLogNull_new 3520 +#define wxLogNull_destroy 3521 +#define wxTaskBarIcon_new 3522 +#define wxTaskBarIcon_destruct 3523 +#define wxTaskBarIcon_PopupMenu 3524 +#define wxTaskBarIcon_RemoveIcon 3525 +#define wxTaskBarIcon_SetIcon 3526 +#define wxLocale_new_0 3527 +#define wxLocale_new_2 3529 +#define wxLocale_destruct 3530 +#define wxLocale_Init 3532 +#define wxLocale_AddCatalog_1 3533 +#define wxLocale_AddCatalog_3 3534 +#define wxLocale_AddCatalogLookupPathPrefix 3535 +#define wxLocale_GetCanonicalName 3536 +#define wxLocale_GetLanguage 3537 +#define wxLocale_GetLanguageName 3538 +#define wxLocale_GetLocale 3539 +#define wxLocale_GetName 3540 +#define wxLocale_GetString_2 3541 +#define wxLocale_GetString_4 3542 +#define wxLocale_GetHeaderValue 3543 +#define wxLocale_GetSysName 3544 +#define wxLocale_GetSystemEncoding 3545 +#define wxLocale_GetSystemEncodingName 3546 +#define wxLocale_GetSystemLanguage 3547 +#define wxLocale_IsLoaded 3548 +#define wxLocale_IsOk 3549 diff --git a/lib/wx/c_src/wxePrintout.cpp b/lib/wx/c_src/wxe_callback_impl.cpp index fc8782ba95..3a59004eb0 100644 --- a/lib/wx/c_src/wxePrintout.cpp +++ b/lib/wx/c_src/wxe_callback_impl.cpp @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -20,9 +20,60 @@ #include <wx/wx.h> #include "wxe_impl.h" #include "wxe_return.h" +#include "wxe_events.h" +#include "wxe_gl.h" #include "gen/wxe_macros.h" #include "gen/wxe_derived_dest.h" + +/* **************************************************************************** + * CallbackData * + * ****************************************************************************/ + +wxeEvtListener::wxeEvtListener(ErlDrvTermData caller, int req, char *req_type, + int funcb, int skip_ev, wxeErlTerm * userData, + ErlDrvTermData from_port) + : wxEvtHandler() +{ + port=from_port; + listener = caller; + obj = req; + fun_id = funcb; + strcpy(class_name, req_type); + skip = skip_ev; + user_data = userData; +} + +wxeEvtListener::~wxeEvtListener() { + // fprintf(stderr, "CBD Deleteing %p %s\r\n", this, class_name); fflush(stderr); + if(user_data) { + delete user_data; + } + ptrMap::iterator it; + it = ((WxeApp *)wxTheApp)->ptr2ref.find(this); + if(it != ((WxeApp *)wxTheApp)->ptr2ref.end()) { + wxeRefData *refd = it->second; + wxeReturn rt = wxeReturn(WXE_DRV_PORT, refd->memenv->owner, false); + rt.addAtom("wx_delete_cb"); + rt.addInt(fun_id); + rt.addRef(refd->ref, "wxeEvtListener"); + rt.addRef(obj, class_name); + rt.addTupleCount(4); + rt.send(); + } + ((WxeApp *)wxTheApp)->clearPtr(this); +} + +void wxeEvtListener::forward(wxEvent& event) +{ +#ifdef DEBUG + if(!sendevent(&event, port)) + fprintf(stderr, "Couldn't send event!\r\n"); +#else +sendevent(&event, port); +#endif +} + /* *****************************************************************/ /* Special Class impls */ @@ -228,6 +279,35 @@ EwxListCtrl::~EwxListCtrl() { clear_cb(port, onGetItemColumnImage); ((WxeApp *)wxTheApp)->clearPtr(this); } + +/* **************************************************************************** + * wxListCtrlCompare wrapper + * ****************************************************************************/ + +int wxCALLBACK wxEListCtrlCompare(wxeIntPtr item1, wxeIntPtr item2, wxeIntPtr callbackInfoPtr) +{ + callbackInfo * cb = (callbackInfo *)callbackInfoPtr; + wxeMemEnv * memenv = ((WxeApp *) wxTheApp)->getMemEnv(cb->port); + wxeReturn rt = wxeReturn(WXE_DRV_PORT, memenv->owner, false); + rt.addInt(cb->callbackID); + rt.addInt(item1); + rt.addInt(item2); + rt.endList(2); + rt.addAtom("_wx_invoke_cb_"); + rt.addTupleCount(3); + rt.send(); + handle_event_callback(WXE_DRV_PORT_HANDLE, memenv->owner); + + if(((WxeApp *) wxTheApp)->cb_buff) { + int res = * (int*) ((WxeApp *) wxTheApp)->cb_buff; + driver_free(((WxeApp *) wxTheApp)->cb_buff); + ((WxeApp *) wxTheApp)->cb_buff = NULL; + return res; + } + return 0; +} + + // tools void clear_cb(ErlDrvTermData port, int callback) diff --git a/lib/wx/c_src/wxe_callback_impl.h b/lib/wx/c_src/wxe_callback_impl.h new file mode 100644 index 0000000000..ecfcd3db41 --- /dev/null +++ b/lib/wx/c_src/wxe_callback_impl.h @@ -0,0 +1,100 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2014. All Rights Reserved. + * + * The contents of this file are subject to the Erlang Public License, + * Version 1.1, (the "License"); you may not use this file except in + * compliance with the License. You should have received a copy of the + * Erlang Public License along with this software. If not, it can be + * retrieved online at http://www.erlang.org/. + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * %CopyrightEnd% + */ + +#ifndef _WXE_CALLBACK_IMPL_H +#define _WXE_CALLBACK_IMPL_H + +void pre_callback(); +void handle_event_callback(ErlDrvPort port, ErlDrvTermData process); + +#if wxCHECK_VERSION(2,9,0) + #define wxeIntPtr wxIntPtr +#else + // This is bad but how it was in wx-2.8 + #define wxeIntPtr long +#endif + +/* Fun Callback id */ +class wxeEvtListener : public wxEvtHandler +{ +public: + wxeEvtListener(ErlDrvTermData caller, int req, char *req_type, + int funcb, int skip_ev, wxeErlTerm * userData, + ErlDrvTermData Thisport); + ~wxeEvtListener(); + void forward(wxEvent& event); + ErlDrvTermData port; + ErlDrvTermData listener; + int fun_id; + int obj; + char class_name[40]; + int skip; + wxeErlTerm * user_data; +}; + +class wxEPrintout : public wxPrintout +{ + public: + wxEPrintout(wxString Title, int onPrintP, int onPrepareP, + int onBeginP, int onEndP, + int onBeginD, int onEndD, + int hasP, int getPageI, ErlDrvTermData Port) : + wxPrintout(Title), + onPrintPage(onPrintP), onPreparePrinting(onPrepareP), + onBeginPrinting(onBeginP), onEndPrinting(onEndP), + onBeginDocument(onBeginD), onEndDocument(onEndD), hasPage(hasP), getPageInfo(getPageI), + port(Port) + { } ; + + ~wxEPrintout(); + + bool OnBeginDocument(int startPage, int endPage); + void OnEndDocument(); + void OnBeginPrinting(); + void OnEndPrinting(); + + void OnPreparePrinting(); + + bool HasPage(int page); + bool OnPrintPage(int page); + void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo); + + int onPrintPage; + int onPreparePrinting; + int onBeginPrinting; + int onEndPrinting; + int onBeginDocument; + int onEndDocument; + int hasPage; + int getPageInfo; + + ErlDrvTermData port; +}; + +void clear_cb(ErlDrvTermData port, int callback); + +// Implementation of wxListCtrlCompare +struct callbackInfo { + ErlDrvTermData port; + int callbackID; +}; + +int wxCALLBACK wxEListCtrlCompare(wxeIntPtr item1, wxeIntPtr item2, wxeIntPtr callbackInfoPtr); + +#endif diff --git a/lib/wx/c_src/wxe_driver.c b/lib/wx/c_src/wxe_driver.c index 4d3aa577bf..ea52737fa2 100644 --- a/lib/wx/c_src/wxe_driver.c +++ b/lib/wx/c_src/wxe_driver.c @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -195,7 +195,7 @@ void wxe_process_died(ErlDrvData handle, ErlDrvMonitor *monitor) { /* Callback is active for the dead process */ wxe_data *sd = ((wxe_data *)handle); - push_command(WXE_CB_RETURN,NULL,0,sd); + push_command(WXE_CB_DIED,NULL,0,sd); /* ErlDrvTermData pid; */ /* pid = driver_get_monitored_process(sd->port_handle, monitor); */ diff --git a/lib/wx/c_src/wxe_driver.h b/lib/wx/c_src/wxe_driver.h index 0f0143bd4c..e35bbe2118 100644 --- a/lib/wx/c_src/wxe_driver.h +++ b/lib/wx/c_src/wxe_driver.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -89,6 +89,7 @@ extern char * erl_wx_privdir; #define WXE_BIN_INCR 11 #define WXE_BIN_DECR 12 #define WXE_INIT_OPENGL 13 +#define WXE_CB_DIED 14 #define OPENGL_START 5000 diff --git a/lib/wx/c_src/wxe_events.h b/lib/wx/c_src/wxe_events.h index 718e0ad120..93b5551123 100644 --- a/lib/wx/c_src/wxe_events.h +++ b/lib/wx/c_src/wxe_events.h @@ -1,20 +1,20 @@ /* * %CopyrightBegin% - * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. - * + * + * Copyright Ericsson AB 2008-2014. All Rights Reserved. + * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved online at http://www.erlang.org/. - * + * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. - * - * %CopyrightEnd% + * + * %CopyrightEnd% */ #ifndef __WXE_EVENT_H__ @@ -22,6 +22,8 @@ #include "wxe_driver.h" +bool sendevent(wxEvent * event, ErlDrvTermData port); + class wxeEtype { public: @@ -30,38 +32,7 @@ public: int cID; }; -/* One EvtListener per listening erlang process */ -/* If callbacks are used the receiver is wxe_master process */ -/* and a wxeEvtListener pre callback is registered */ -class wxeEvtListener : public wxEvtHandler -{ - public: - wxeEvtListener(ErlDrvTermData Thisport) : port(Thisport) - {} - // {fprintf(stderr, "Creating %x\r\n", (unsigned int) this); fflush(stderr);} - ~wxeEvtListener() {} - void forward(wxEvent& event); - ErlDrvTermData port; -}; - void initEventTable(); int wxeEventTypeFromAtom(char *etype_atom); -/* Fun Callback id */ -class wxeCallbackData : public wxObject -{ -public: - wxeCallbackData(ErlDrvTermData caller, int req, char *req_type, - int funcb, int skip_ev, wxeErlTerm * userData, - wxeEvtListener *handler_cb); - ~wxeCallbackData(); - wxeEvtListener * handler; - ErlDrvTermData listener; - int fun_id; - int obj; - char class_name[40]; - int skip; - wxeErlTerm * user_data; -}; - #endif diff --git a/lib/wx/c_src/wxe_gl.cpp b/lib/wx/c_src/wxe_gl.cpp index 34904397d3..a9feb23831 100644 --- a/lib/wx/c_src/wxe_gl.cpp +++ b/lib/wx/c_src/wxe_gl.cpp @@ -1,20 +1,20 @@ /* * %CopyrightBegin% - * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. - * + * + * Copyright Ericsson AB 2008-2014. All Rights Reserved. + * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved online at http://www.erlang.org/. - * + * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. - * - * %CopyrightEnd% + * + * %CopyrightEnd% */ #include <stdio.h> @@ -26,8 +26,9 @@ #endif #include "wxe_impl.h" #include "wxe_return.h" +#include "wxe_gl.h" -/* **************************************************************************** +/* **************************************************************************** * Opengl context management * * ****************************************************************************/ @@ -138,7 +139,7 @@ void gl_dispatch(int op, char *bp,ErlDrvTermData caller,WXEBinRef *bins[]){ else { ErlDrvTermData rt[] = // Error msg {ERL_DRV_ATOM, driver_mk_atom((char *) "_egl_error_"), - ERL_DRV_INT, op, + ERL_DRV_INT, (ErlDrvTermData) op, ERL_DRV_ATOM, driver_mk_atom((char *) "no_gl_context"), ERL_DRV_TUPLE,3}; erl_drv_send_term(WXE_DRV_PORT,caller,rt,8); diff --git a/lib/wx/c_src/wxe_gl.h b/lib/wx/c_src/wxe_gl.h index 1b556ff4ec..dc117bf610 100644 --- a/lib/wx/c_src/wxe_gl.h +++ b/lib/wx/c_src/wxe_gl.h @@ -1,22 +1,35 @@ /* * %CopyrightBegin% - * - * Copyright Ericsson AB 2008-2010. All Rights Reserved. - * + * + * Copyright Ericsson AB 2008-2014. All Rights Reserved. + * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved online at http://www.erlang.org/. - * + * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. - * - * %CopyrightEnd% + * + * %CopyrightEnd% */ +#ifndef _WXE_GL_H +#define _WXE_GL_H + #include "egl_impl.h" +#include "wxe_return.h" +void activateGL(ErlDrvTermData caller); +void setActiveGL(ErlDrvTermData caller, wxGLCanvas *canvas); +void deleteActiveGL(wxGLCanvas *canvas); void wxe_initOpenGL(wxeReturn, char*); +void gl_dispatch(int op, char *bp, ErlDrvTermData caller, WXEBinRef *bins[]); + +WX_DECLARE_HASH_MAP(ErlDrvTermData, wxGLCanvas*, wxIntegerHash, wxIntegerEqual, wxeGLC); +extern wxeGLC glc; + +#endif diff --git a/lib/wx/c_src/wxe_helpers.cpp b/lib/wx/c_src/wxe_helpers.cpp new file mode 100644 index 0000000000..15d75080d9 --- /dev/null +++ b/lib/wx/c_src/wxe_helpers.cpp @@ -0,0 +1,95 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2014. All Rights Reserved. + * + * The contents of this file are subject to the Erlang Public License, + * Version 1.1, (the "License"); you may not use this file except in + * compliance with the License. You should have received a copy of the + * Erlang Public License along with this software. If not, it can be + * retrieved online at http://www.erlang.org/. + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * %CopyrightEnd% + */ + +#include <wx/wx.h> +#include "wxe_impl.h" + +/* **************************************************************************** + * Erlang Commands + * ****************************************************************************/ + +wxeCommand::wxeCommand(int fc,char * cbuf,int buflen, wxe_data *sd) + : wxObject() +{ + WXEBinRef *temp, *start, *prev; + int n = 0; + ref_count = 1; + caller = driver_caller(sd->port_handle); + port = sd->port; + op = fc; + len = buflen; + bin[0] = NULL; + bin[1] = NULL; + bin[2] = NULL; + + if(cbuf) { + buffer = (char *) driver_alloc(len); + memcpy((void *) buffer, (void *) cbuf, len);; + + temp = sd->bin; + + prev = NULL; + start = temp; + + while(temp) { + if(caller == temp->from) { + bin[n++] = temp; + if(prev) { + prev->next = temp->next; + } else { + start = temp->next; + } + temp = temp->next; + } else { + prev = temp; + temp = temp->next; + } + } + sd->bin = start; + } else { // No-op only PING currently + buffer = NULL; + } +} + +wxeCommand::~wxeCommand() { + int n = 0; + if(buffer) { + while(bin[n]) { + if(bin[n]->bin) + driver_free_binary(bin[n]->bin); + driver_free(bin[n++]); + } + driver_free(buffer); + } +} + +/* **************************************************************************** + * TreeItemData + * ****************************************************************************/ + +wxETreeItemData::wxETreeItemData(int sz, char * data) { + size = sz; + bin = (char *) driver_alloc(sz); + memcpy(bin, data, sz); +} + +wxETreeItemData::~wxETreeItemData() +{ + driver_free(bin); +} diff --git a/lib/wx/c_src/wxe_helpers.h b/lib/wx/c_src/wxe_helpers.h new file mode 100644 index 0000000000..659bc666c6 --- /dev/null +++ b/lib/wx/c_src/wxe_helpers.h @@ -0,0 +1,122 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2014. All Rights Reserved. + * + * The contents of this file are subject to the Erlang Public License, + * Version 1.1, (the "License"); you may not use this file except in + * compliance with the License. You should have received a copy of the + * Erlang Public License along with this software. If not, it can be + * retrieved online at http://www.erlang.org/. + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * %CopyrightEnd% + */ + +#ifndef _WXE_HELPER_H +#define _WXE_HELPER_H + +DECLARE_EVENT_TYPE(wxeEVT_META_COMMAND, -1) + +class wxeMetaCommand : public wxEvent +{ + public: + wxeMetaCommand(wxe_data *sd, int EvId) + : wxEvent(EvId, wxeEVT_META_COMMAND) + { caller = driver_caller(sd->port_handle); port = sd->port; pdl = sd->pdl; } ; + wxeMetaCommand(const wxeMetaCommand& event) + : wxEvent(event) + { caller = event.caller; port = event.port; pdl = event.pdl; }; + virtual ~wxeMetaCommand() {}; + virtual wxEvent *Clone() const { return new wxeMetaCommand(*this); } + + ErlDrvTermData caller; + ErlDrvTermData port; + ErlDrvPDL pdl; +}; + +class wxeCommand : public wxObject +{ + public: + wxeCommand(int fc,char * cbuf,int buflen, wxe_data *); + virtual ~wxeCommand(); // Use Delete() + + wxeCommand * Save() {ref_count++; return this; }; + void Delete() {if(--ref_count < 1) delete this;}; + + ErlDrvTermData caller; + ErlDrvTermData port; + WXEBinRef * bin[3]; + char * buffer; + int len; + int op; + int ref_count; +}; + +class intListElement { + public: + intListElement(int Element) {car = Element; cdr = NULL;}; + intListElement(int Element, intListElement *list) + {car = Element; cdr = list;}; + int car; + intListElement *cdr; +}; + +class intList { + public: + intList() {list = NULL;}; + ~intList() { + intListElement *head = list; + while(head) { + intListElement *tail=head->cdr; + delete head; + head = tail; + } }; + bool IsEmpty() {return list == NULL;}; + void Append(int Element) { list = new intListElement(Element, list); }; + int Pop() { + intListElement *temp = list; + int res = list->car; + list = temp->cdr; + delete temp; + return res; + } + intListElement *list; +}; + +class wxe_badarg +{ + public: + wxe_badarg(int Ref) : ref(Ref) { } ; + int ref; +}; + +class wxeErlTerm : public wxClientData +{ + public: + wxeErlTerm(WXEBinRef * data) + { + size = data->size; + bin = (char *) driver_alloc(size); + memcpy(bin, data->base, size); + } ; + ~wxeErlTerm() { driver_free(bin); }; + char * bin; + int size; +}; + +class wxETreeItemData : public wxTreeItemData +{ + public: + wxETreeItemData(int sz, char * data); + ~wxETreeItemData(); + + int size; + char * bin; +}; + +#endif diff --git a/lib/wx/c_src/wxe_impl.cpp b/lib/wx/c_src/wxe_impl.cpp index 4968075659..f617aaf349 100644 --- a/lib/wx/c_src/wxe_impl.cpp +++ b/lib/wx/c_src/wxe_impl.cpp @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -23,10 +23,6 @@ #include <wx/wx.h> -#if defined(_WIN32) -#include <wx/msw/private.h> // for wxSetInstance -#endif - // Avoid including these in dcbuffer below #include "wx/dcmemory.h" #include "wx/dcclient.h" @@ -34,12 +30,12 @@ // Ok ugly but needed for wxBufferedDC crash workaround #define private public #include <wx/dcbuffer.h> - #undef private #include "wxe_impl.h" #include "wxe_events.h" #include "wxe_return.h" +#include "wxe_gl.h" IMPLEMENT_APP_NO_MAIN(WxeApp) @@ -47,120 +43,21 @@ DECLARE_APP(WxeApp) DEFINE_EVENT_TYPE(wxeEVT_META_COMMAND) -#define WXE_NOT_INITIATED 0 -#define WXE_INITIATED 1 -#define WXE_EXITED 2 -#define WXE_ERROR -1 - #define WXE_NORMAL 0 #define WXE_CALLBACK 1 #define WXE_STORED 2 -ErlDrvTid wxe_thread; - -ErlDrvMutex *wxe_status_m; -ErlDrvCond *wxe_status_c; - -ErlDrvMutex * wxe_batch_locker_m; -ErlDrvCond * wxe_batch_locker_c; - -static int wxe_status = WXE_NOT_INITIATED; +// Globals initiated in wxe_init.cpp +extern ErlDrvMutex *wxe_status_m; +extern ErlDrvCond *wxe_status_c; +extern ErlDrvMutex * wxe_batch_locker_m; +extern ErlDrvCond * wxe_batch_locker_c; +extern ErlDrvTermData init_caller; +extern int wxe_status; wxList * wxe_batch = NULL; wxList * wxe_batch_cb_saved = NULL; - -ErlDrvTermData wxe_batch_caller = 0; -ErlDrvTermData init_caller = 0; - -// extern opengl -void gl_dispatch(int op, char *bp, ErlDrvTermData caller, WXEBinRef *bins[]); - - -// Until fixed in emulator -#ifndef _WIN32 -extern "C" { -extern void erts_thread_disable_fpe(void); -} -#endif - -#if defined(__APPLE__) && defined(__MACH__) && !defined(__DARWIN__) -#define __DARWIN__ 1 -#endif - -#ifdef __DARWIN__ -extern "C" { - int erl_drv_stolen_main_thread_join(ErlDrvTid tid, void **respp); - int erl_drv_steal_main_thread(char *name, - ErlDrvTid *dtid, - void* (*func)(void*), - void* arg, - ErlDrvThreadOpts *opts); -} -#endif - -void *wxe_main_loop(void * ); - -/* ************************************************************ - * START AND STOP of driver thread - * ************************************************************/ - -int load_native_gui() -{ - return 1; -} - -int start_native_gui(wxe_data *sd) -{ - int res; - wxe_status_m = erl_drv_mutex_create((char *) "wxe_status_m"); - wxe_status_c = erl_drv_cond_create((char *)"wxe_status_c"); - - wxe_batch_locker_m = erl_drv_mutex_create((char *)"wxe_batch_locker_m"); - wxe_batch_locker_c = erl_drv_cond_create((char *)"wxe_batch_locker_c"); - init_caller = driver_connected(sd->port_handle); - -#ifdef __DARWIN__ - res = erl_drv_steal_main_thread((char *)"wxwidgets", - &wxe_thread,wxe_main_loop,(void *) sd->pdl,NULL); -#else - res = erl_drv_thread_create((char *)"wxwidgets", - &wxe_thread,wxe_main_loop,(void *) sd->pdl,NULL); -#endif - if(res == 0) { - erl_drv_mutex_lock(wxe_status_m); - for(;wxe_status == WXE_NOT_INITIATED;) { - erl_drv_cond_wait(wxe_status_c, wxe_status_m); - } - erl_drv_mutex_unlock(wxe_status_m); - return wxe_status; - } else { - wxString msg; - msg.Printf(wxT("Erlang failed to create wxe-thread %d\r\n"), res); - send_msg("error", &msg); - return -1; - } -} - -void stop_native_gui(wxe_data *sd) -{ - if(wxe_status == WXE_INITIATED) { - meta_command(WXE_SHUTDOWN, sd); - } -#ifdef __DARWIN__ - erl_drv_stolen_main_thread_join(wxe_thread, NULL); -#else - erl_drv_thread_join(wxe_thread, NULL); -#endif - erl_drv_mutex_destroy(wxe_status_m); - erl_drv_cond_destroy(wxe_status_c); - erl_drv_mutex_destroy(wxe_batch_locker_m); - erl_drv_cond_destroy(wxe_batch_locker_c); -} - -void unload_native_gui() -{ - -} +int wxe_batch_caller = 0; // inside batch if larger than 0 /* ************************************************************ * Commands from erlang @@ -169,7 +66,8 @@ void unload_native_gui() void push_command(int op,char * buf,int len, wxe_data *sd) { - // fprintf(stderr, "Op %d %d\r\n", op, (int) driver_caller(sd->port_handle)),fflush(stderr); + /* fprintf(stderr, "Op %d %d [%ld] %d\r\n", op, (int) driver_caller(sd->port_handle), + wxe_batch->size(), wxe_batch_caller),fflush(stderr); */ wxeCommand *Cmd = new wxeCommand(op, buf, len, sd); erl_drv_mutex_lock(wxe_batch_locker_m); wxe_batch->Append(Cmd); @@ -195,9 +93,8 @@ void meta_command(int what, wxe_data *sd) { wxeCommand *Cmd = new wxeCommand(WXE_DEBUG_PING, NULL, 0, sd); wxe_batch->Append(Cmd); erl_drv_cond_signal(wxe_batch_locker_c); - } else { - wxWakeUpIdle(); } + wxWakeUpIdle(); erl_drv_mutex_unlock(wxe_batch_locker_m); } else { if(sd) { @@ -207,60 +104,19 @@ void meta_command(int what, wxe_data *sd) { } } -/* ************************************************************ - * wxWidgets Thread - * ************************************************************/ - -void *wxe_main_loop(void *vpdl) -{ - int result; - int argc = 1; - char * temp = (char *) "Erlang"; - char * argv[] = {temp,NULL}; - ErlDrvPDL pdl = (ErlDrvPDL) vpdl; - - driver_pdl_inc_refc(pdl); - - // Disable floating point execption if they are on. - // This should be done in emulator but it's not in yet. -#ifndef _WIN32 - erts_thread_disable_fpe(); -#else - // Setup that wxWidgets should look for cursors and icons in - // this dll and not in werl.exe (which is the default) - HMODULE WXEHandle = GetModuleHandle(_T("wxe_driver")); - wxSetInstance((HINSTANCE) WXEHandle); -#endif - - wxe_ps_init(); - result = wxEntry(argc, argv); - // fprintf(stderr, "WXWidgets quits main loop %d \r\n", result); - if(result >= 0 && wxe_status == WXE_INITIATED) { - /* We are done try to make a clean exit */ - wxe_status = WXE_EXITED; - driver_pdl_dec_refc(pdl); -#ifndef __DARWIN__ - erl_drv_thread_exit(NULL); -#endif - return NULL; - } else { - erl_drv_mutex_lock(wxe_status_m); - wxe_status = WXE_ERROR; - erl_drv_cond_signal(wxe_status_c); - erl_drv_mutex_unlock(wxe_status_m); - driver_pdl_dec_refc(pdl); - return NULL; - } -} - -void WxeApp::dummy_close(wxEvent& Ev) { - // fprintf(stderr, "Dummy Close invoked\r\n"); - // wxMac really wants a top level window which command-q quits if there are no - // windows open, and this will kill the erlang, override default handling +void send_msg(const char * type, const wxString * msg) { + wxeReturn rt = wxeReturn(WXE_DRV_PORT, init_caller); + rt.addAtom((char *) "wxe_driver"); + rt.addAtom((char *) type); + rt.add(msg); + rt.addTupleCount(3); + rt.send(); } +/* ************************************************************ + * Init WxeApp the application emulator + * ************************************************************/ -// Init wx-widgets thread bool WxeApp::OnInit() { @@ -268,6 +124,9 @@ bool WxeApp::OnInit() wxe_batch = new wxList; wxe_batch_cb_saved = new wxList; cb_buff = NULL; + recurse_level = 0; + delayed_cleanup = new wxList; + delayed_delete = new wxList; wxe_ps_init2(); // wxIdleEvent::SetMode(wxIDLE_PROCESS_SPECIFIED); // Hmm printpreview doesn't work in 2.9 with this @@ -301,17 +160,27 @@ bool WxeApp::OnInit() return TRUE; } + +#ifdef _MACOSX +void WxeApp::MacOpenFile(const wxString &filename) { + send_msg("open_file", &filename); +} +#endif + void WxeApp::shutdown(wxeMetaCommand& Ecmd) { ExitMainLoop(); } -void send_msg(const char * type, wxString * msg) { - wxeReturn rt = wxeReturn(WXE_DRV_PORT, init_caller); - rt.addAtom((char *) "wxe_driver"); - rt.addAtom((char *) type); - rt.add(msg); - rt.addTupleCount(3); - rt.send(); +void WxeApp::dummy_close(wxEvent& Ev) { + // fprintf(stderr, "Dummy Close invoked\r\n"); + // wxMac really wants a top level window which command-q quits if there are no + // windows open, and this will kill the erlang, override default handling +} + +// Called by wx thread +void WxeApp::idle(wxIdleEvent& event) { + event.Skip(true); + dispatch_cmds(); } /* ************************************************************ @@ -328,29 +197,51 @@ void handle_event_callback(ErlDrvPort port, ErlDrvTermData process) { WxeApp * app = (WxeApp *) wxTheApp; ErlDrvMonitor monitor; - driver_monitor_process(port, process, &monitor); - // Should we be able to handle commands when recursing? probably - erl_drv_mutex_lock(wxe_batch_locker_m); - //fprintf(stderr, "\r\nCB EV Start %lu \r\n", process);fflush(stderr); - app->dispatch_cb(wxe_batch, wxe_batch_cb_saved, process); - //fprintf(stderr, "CB EV done %lu \r\n", process);fflush(stderr); - wxe_batch_caller = 0; - erl_drv_mutex_unlock(wxe_batch_locker_m); - driver_demonitor_process(port, &monitor); -} - -// Called by wx thread -void WxeApp::idle(wxIdleEvent& event) { - event.Skip(true); - dispatch_cmds(); + // Is thread safe if pdl have been incremented + if(driver_monitor_process(port, process, &monitor) == 0) { + // Should we be able to handle commands when recursing? probably + erl_drv_mutex_lock(wxe_batch_locker_m); + //fprintf(stderr, "\r\nCB EV Start %lu \r\n", process);fflush(stderr); + app->recurse_level++; + app->dispatch_cb(wxe_batch, wxe_batch_cb_saved, process); + app->recurse_level--; + //fprintf(stderr, "CB EV done %lu \r\n", process);fflush(stderr); + wxe_batch_caller = 0; + erl_drv_mutex_unlock(wxe_batch_locker_m); + driver_demonitor_process(port, &monitor); + } } -void WxeApp::dispatch_cmds() { +void WxeApp::dispatch_cmds() +{ erl_drv_mutex_lock(wxe_batch_locker_m); + recurse_level++; int level = dispatch(wxe_batch_cb_saved, 0, WXE_STORED); dispatch(wxe_batch, level, WXE_NORMAL); + recurse_level--; wxe_batch_caller = 0; erl_drv_mutex_unlock(wxe_batch_locker_m); + // Cleanup old memenv's and deleted objects + if(recurse_level == 0) { + if(delayed_delete->size() > 0) + for( wxList::compatibility_iterator node = delayed_delete->GetFirst(); + node; + node = delayed_delete->GetFirst()) { + wxeCommand *event = (wxeCommand *)node->GetData(); + delayed_delete->Erase(node); + wxe_dispatch(*event); + event->Delete(); + } + if(delayed_cleanup->size() > 0) + for( wxList::compatibility_iterator node = delayed_cleanup->GetFirst(); + node; + node = delayed_cleanup->GetFirst()) { + wxeMetaCommand *event = (wxeMetaCommand *)node->GetData(); + delayed_cleanup->Erase(node); + destroyMemEnv(*event); + delete event; + } + } } // Should have erl_drv_mutex_lock(wxe_batch_locker_m); @@ -402,7 +293,7 @@ int WxeApp::dispatch(wxList * batch, int blevel, int list_type) erl_drv_mutex_lock(wxe_batch_locker_m); break; } - delete event; + event->Delete(); } } else { if((list_type == WXE_STORED) || (blevel <= 0 && list_type == WXE_NORMAL)) { @@ -434,6 +325,7 @@ void WxeApp::dispatch_cb(wxList * batch, wxList * temp, ErlDrvTermData process) // fprintf(stderr, " Ev %d %lu\r\n", event->op, event->caller); if(event->caller == process || // Callbacks from CB process only event->op == WXE_CB_START || // Event callback start change process + event->op == WXE_CB_DIED || // Event callback process died // Allow connect_cb during CB i.e. msg from wxe_server. (memenv && event->caller == memenv->owner)) { @@ -446,7 +338,8 @@ void WxeApp::dispatch_cb(wxList * batch, wxList * temp, ErlDrvTermData process) if(event->len > 0) { cb_buff = (char *) driver_alloc(event->len); memcpy(cb_buff, event->buffer, event->len); - } + } // continue + case WXE_CB_DIED: callback_returned = 1; return; case WXE_CB_START: @@ -481,7 +374,7 @@ void WxeApp::dispatch_cb(wxList * batch, wxList * temp, ErlDrvTermData process) return; break; } - delete event; + event->Delete(); } else { // fprintf(stderr, " save %d \r\n", event->op); temp->Append(event); @@ -518,12 +411,20 @@ void WxeApp::newMemEnv(wxeMetaCommand& Ecmd) { erl_drv_send_term(WXE_DRV_PORT,Ecmd.caller,rt,2); } -void WxeApp::destroyMemEnv(wxeMetaCommand& Ecmd) { +void WxeApp::destroyMemEnv(wxeMetaCommand& Ecmd) +{ // Clear incoming cmd queue first // dispatch_cmds(); wxWindow *parent = NULL; wxeMemEnv * memenv = refmap[Ecmd.port]; + if(!memenv) { + wxString msg; + msg.Printf(wxT("MemEnv already deleted")); + send_msg("debug", &msg); + return; + } + if(wxe_debug) { wxString msg; msg.Printf(wxT("Destroying all memory ")); @@ -537,26 +438,33 @@ void WxeApp::destroyMemEnv(wxeMetaCommand& Ecmd) { ptrMap::iterator it = ptr2ref.find(ptr); if(it != ptr2ref.end()) { wxeRefData *refd = it->second; - if(refd->alloc_in_erl) { - if(refd->type == 2) { - wxDialog *win = (wxDialog *) ptr; - if(win->IsModal()) { - win->EndModal(-1); - } - parent = win->GetParent(); - if(parent) { - ptrMap::iterator parentRef = ptr2ref.find(parent); - if(parentRef == ptr2ref.end()) { - // The parent is already dead delete the parent ref - win->SetParent(NULL); - } + if(refd->alloc_in_erl && refd->type == 2) { + wxDialog *win = (wxDialog *) ptr; + if(win->IsModal()) { + win->EndModal(-1); + } + parent = win->GetParent(); + if(parent) { + ptrMap::iterator parentRef = ptr2ref.find(parent); + if(parentRef == ptr2ref.end()) { + // The parent is already dead delete the parent ref + win->SetParent(NULL); } + } + if(recurse_level > 0) { + // Delay delete until we are out of dispatch* + } else { delete win; } } } } } + + if(recurse_level > 0) { + delayed_cleanup->Append(Ecmd.Clone()); + return; + } // First pass, delete all top parents/windows of all linked objects // fprintf(stderr, "close port %x\r\n", Ecmd.port);fflush(stderr); @@ -592,20 +500,20 @@ void WxeApp::destroyMemEnv(wxeMetaCommand& Ecmd) { if(it != ptr2ref.end()) { wxeRefData *refd = it->second; if(refd->alloc_in_erl) { - int type = refd->type; if((refd->type == 1) && ((wxObject *)ptr)->IsKindOf(CLASSINFO(wxBufferedDC))) { ((wxBufferedDC *)ptr)->m_dc = NULL; // Workaround } wxString msg; - if((refd->type == 0)) { // Maybe also class 1 + bool cleanup_ref=true; + if(refd->type == 0) { // Maybe also class 1 wxClassInfo *cinfo = ((wxObject *)ptr)->GetClassInfo(); msg.Printf(wxT("Memory leak: {wx_ref, %d, %s}"), refd->ref, cinfo->GetClassName()); send_msg("error", &msg); } else { - delete_object(ptr, refd); + cleanup_ref = delete_object(ptr, refd); } - if(type == 0 || type > 2) { + if(cleanup_ref) { // Delete refs for leaks and non overridden allocs delete refd; ptr2ref.erase(it); @@ -713,7 +621,7 @@ void WxeApp::clearPtr(void * ptr) { if(((int) refd->pid) != -1) { // Send terminate pid to owner - wxeReturn rt = wxeReturn(WXE_DRV_PORT,refd->memenv->owner, false); + wxeReturn rt = wxeReturn(WXE_DRV_PORT,refd->pid, false); rt.addAtom("_wxe_destroy_"); rt.add(ERL_DRV_PID, refd->pid); rt.addTupleCount(2); @@ -781,161 +689,3 @@ void WxeApp::registerPid(char * bp, ErlDrvTermData pid, wxeMemEnv * memenv) { }; throw wxe_badarg(index); } - - -/* ************************************************************ - * Misc utility classes - * ************************************************************/ - -/* **************************************************************************** - * Memory handling - * ****************************************************************************/ - -wxeMemEnv::wxeMemEnv() { - ref2ptr = (void **) driver_alloc(128*sizeof(void *)); - ref2ptr[0] = NULL; - next = 1; - max = 128; -} - -wxeMemEnv::~wxeMemEnv() { - driver_free(ref2ptr); -} - -/* **************************************************************************** - * Erlang Commands (don't need to be derived of wxEvent anymore should - * be re-written to own class struct) - * ****************************************************************************/ - -wxeCommand::wxeCommand(int fc,char * cbuf,int buflen, wxe_data *sd) - : wxObject() -{ - WXEBinRef *temp, *start, *prev; - int n = 0; - caller = driver_caller(sd->port_handle); - port = sd->port; - op = fc; - len = buflen; - bin[0] = NULL; - bin[1] = NULL; - bin[2] = NULL; - - if(cbuf) { - buffer = (char *) driver_alloc(len); - memcpy((void *) buffer, (void *) cbuf, len);; - - temp = sd->bin; - - prev = NULL; - start = temp; - - while(temp) { - if(caller == temp->from) { - bin[n++] = temp; - if(prev) { - prev->next = temp->next; - } else { - start = temp->next; - } - temp = temp->next; - } else { - prev = temp; - temp = temp->next; - } - } - sd->bin = start; - } else { // No-op only PING currently - buffer = NULL; - } -} - -wxeCommand::~wxeCommand() { - int n = 0; - if(buffer) { - while(bin[n]) { - if(bin[n]->bin) - driver_free_binary(bin[n]->bin); - driver_free(bin[n++]); - } - driver_free(buffer); - } -} - -/* **************************************************************************** - * TreeItemData - * ****************************************************************************/ - -wxETreeItemData::wxETreeItemData(int sz, char * data) { - size = sz; - bin = (char *) driver_alloc(sz); - memcpy(bin, data, sz); -} - -wxETreeItemData::~wxETreeItemData() -{ - driver_free(bin); -} - -/* **************************************************************************** - * CallbackData * - * ****************************************************************************/ - -wxeCallbackData::wxeCallbackData(ErlDrvTermData caller, int req, char *req_type, - int funcb, int skip_ev, wxeErlTerm * userData, - wxeEvtListener *handler_cb) - : wxObject() -{ - listener = caller; - obj = req; - fun_id = funcb; - strcpy(class_name, req_type); - skip = skip_ev; - user_data = userData; - handler = handler_cb; -} - -wxeCallbackData::~wxeCallbackData() { - // fprintf(stderr, "CBD Deleteing %p %s\r\n", this, class_name); fflush(stderr); - if(user_data) { - delete user_data; - } - ptrMap::iterator it; - it = ((WxeApp *)wxTheApp)->ptr2ref.find(handler); - if(it != ((WxeApp *)wxTheApp)->ptr2ref.end()) { - wxeRefData *refd = it->second; - wxeReturn rt = wxeReturn(WXE_DRV_PORT, refd->memenv->owner, false); - rt.addAtom("wx_delete_cb"); - rt.addInt(fun_id); - rt.addRef(refd->ref, "wxeEvtListener"); - rt.addRef(obj, class_name); - rt.addTupleCount(4); - rt.send(); - } -} - -/* **************************************************************************** - * wxListCtrlCompare wrapper - * ****************************************************************************/ - -int wxCALLBACK wxEListCtrlCompare(long item1, long item2, long callbackInfoPtr) -{ - callbackInfo * cb = (callbackInfo *)callbackInfoPtr; - wxeMemEnv * memenv = ((WxeApp *) wxTheApp)->getMemEnv(cb->port); - wxeReturn rt = wxeReturn(WXE_DRV_PORT, memenv->owner, false); - rt.addInt(cb->callbackID); - rt.addInt(item1); - rt.addInt(item2); - rt.endList(2); - rt.addAtom("_wx_invoke_cb_"); - rt.addTupleCount(3); - rt.send(); - handle_event_callback(WXE_DRV_PORT_HANDLE, memenv->owner); - - if(((WxeApp *) wxTheApp)->cb_buff) { - int res = * (int*) ((WxeApp *) wxTheApp)->cb_buff; - driver_free(((WxeApp *) wxTheApp)->cb_buff); - ((WxeApp *) wxTheApp)->cb_buff = NULL; - return res; - } - return 0; -} diff --git a/lib/wx/c_src/wxe_impl.h b/lib/wx/c_src/wxe_impl.h index a3c57e2598..5b23e1cbbd 100644 --- a/lib/wx/c_src/wxe_impl.h +++ b/lib/wx/c_src/wxe_impl.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2013. All Rights Reserved. + * Copyright Ericsson AB 2008-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -14,12 +14,17 @@ * the License for the specific language governing rights and limitations * under the License. * - * %CopyrightEnd% + * %CopyrightEnd% */ #ifndef _WXE_IMPL_H #define _WXE_IMPL_H +#if defined(__APPLE__) && defined(__MACH__) && !defined(__DARWIN__) +#define __DARWIN__ 1 +#endif + + #include <wx/glcanvas.h> #include <wx/treectrl.h> #include <wx/print.h> @@ -27,124 +32,32 @@ extern "C" { #include "wxe_driver.h" } -DECLARE_EVENT_TYPE(wxeEVT_META_COMMAND, -1) - -class wxeMetaCommand : public wxEvent -{ - public: - wxeMetaCommand(wxe_data *sd, int EvId) - : wxEvent(EvId, wxeEVT_META_COMMAND) - { caller = driver_caller(sd->port_handle); port = sd->port; pdl = sd->pdl; } ; - wxeMetaCommand(const wxeMetaCommand& event) - : wxEvent(event) - { caller = event.caller; port = event.port; pdl = event.pdl; }; - virtual ~wxeMetaCommand() {}; - virtual wxEvent *Clone() const { return new wxeMetaCommand(*this); } - - ErlDrvTermData caller; - ErlDrvTermData port; - ErlDrvPDL pdl; -}; - -class wxeCommand : public wxObject -{ - public: - wxeCommand(int fc,char * cbuf,int buflen, wxe_data *); - virtual ~wxeCommand(); - - ErlDrvTermData caller; - ErlDrvTermData port; - WXEBinRef * bin[3]; - char * buffer; - int len; - int op; -}; - -#define WXE_EVENT_PTR 0 -#define WXE_OBJECT_PTR 1 - -class intListElement { -public: - intListElement(int Element) {car = Element; cdr = NULL;}; - intListElement(int Element, intListElement *list) - {car = Element; cdr = list;}; - int car; - intListElement *cdr; -}; - -class intList { -public: - intList() {list = NULL;}; - bool IsEmpty() {return list == NULL;}; - void Append(int Element) { list = new intListElement(Element, list); }; - int Pop() { - intListElement *temp = list; - int res = list->car; - list = temp->cdr; - delete temp; - return res; - } - intListElement *list; -}; - -class wxe_badarg -{ -public: - wxe_badarg(int Ref) : ref(Ref) { } ; - int ref; -}; - -class wxeErlTerm : public wxClientData -{ - public: - wxeErlTerm(WXEBinRef * data) - { - size = data->size; - bin = (char *) driver_alloc(size); - memcpy(bin, data->base, size); - } ; - ~wxeErlTerm() { driver_free(bin); }; - char * bin; - int size; -}; - -class wxeMemEnv -{ -public: - wxeMemEnv(); - int next; - int max; - void ** ref2ptr; - intList free; - ~wxeMemEnv(); - ErlDrvTermData owner; -}; +#include "wxe_helpers.h" +#include "wxe_callback_impl.h" +#include "wxe_memory.h" -class wxeRefData { - public: - wxeRefData(unsigned int dref, int ttype, int is_new, wxeMemEnv *menv) : - ref(dref), type(ttype), alloc_in_erl(is_new), memenv(menv), pid(-1) { } ; - int ref; - int type; - // 0 = wxWindow subclasses, 1 = wxObject subclasses - // 2 = wxDialog subclasses, 3 = allocated wxObjects but not returned from new - // > 3 classes which lack virtual destr, or are supposed to be allocated on - // the stack - bool alloc_in_erl; - wxeMemEnv *memenv; - ErlDrvTermData pid; -}; +#if !wxCHECK_VERSION(2,9,0) +#define wxeLocaleC wxChar * +#define wxeLocaleC2String(Str) wxString(Str) +#else +typedef wxString wxeLocaleC; +#define wxeLocaleC2String(Str) Str +#endif -WX_DECLARE_HASH_MAP(ErlDrvTermData, wxGLCanvas*, wxIntegerHash, wxIntegerEqual, wxeGLC); -WX_DECLARE_HASH_MAP(ErlDrvTermData, wxeMemEnv*, wxIntegerHash, wxIntegerEqual, wxeMemMap); +#define WXE_NOT_INITIATED 0 +#define WXE_INITIATED 1 +#define WXE_EXITED 2 +#define WXE_ERROR -1 - -WX_DECLARE_VOIDPTR_HASH_MAP(wxeRefData *, ptrMap); +void send_msg(const char *, const wxString *); // For debugging and error msgs class WxeApp : public wxApp { public: - virtual bool OnInit(); + virtual bool OnInit(); +#ifdef _MACOSX + virtual void MacOpenFile(const wxString &filename); +#endif void shutdown(wxeMetaCommand& event); int dispatch(wxList *, int, int); @@ -158,101 +71,31 @@ public: void dummy_close(wxEvent& Ev); bool sendevent(wxEvent *event); - // MemEnv handling + // MemEnv handling void newMemEnv(wxeMetaCommand& event); void destroyMemEnv(wxeMetaCommand& event); wxeMemEnv * getMemEnv(ErlDrvTermData port); - + int newPtr(void * ptr, int type, wxeMemEnv *memenv); int getRef(void * ptr, wxeMemEnv *memenv); - void * getPtr(char * bp, wxeMemEnv *memenv); + void * getPtr(char * bp, wxeMemEnv *memenv); void clearPtr(void *ptr); void registerPid(char *ptr, ErlDrvTermData pid, wxeMemEnv *memenv); - void init_nonconsts(wxeMemEnv *memenv, ErlDrvTermData caller); - + void init_nonconsts(wxeMemEnv *memenv, ErlDrvTermData caller); + // Code found in gen/wxe_derived_dest.h - void delete_object(void *ptr, wxeRefData *refd); - + bool delete_object(void *ptr, wxeRefData *refd); + wxeMemMap refmap; ptrMap ptr2ref; wxeMemEnv * global_me; - + + int recurse_level; + wxList * delayed_cleanup; + wxList * delayed_delete; // Temp container for callbacks char *cb_buff; int cb_len; }; -class wxETreeItemData : public wxTreeItemData -{ - public: - wxETreeItemData(int sz, char * data); - - ~wxETreeItemData(); - - int size; - char * bin; -}; - -bool sendevent(wxEvent * event, ErlDrvTermData port); -void pre_callback(); -void handle_event_callback(ErlDrvPort port, ErlDrvTermData process); - -void activateGL(ErlDrvTermData caller); -void setActiveGL(ErlDrvTermData caller, wxGLCanvas *canvas); -void deleteActiveGL(wxGLCanvas *canvas); - -void send_msg(const char *, wxString *); // For debugging and error msgs - -extern wxeGLC glc; - -class wxEPrintout : public wxPrintout -{ - public: - wxEPrintout(wxString Title, int onPrintP, int onPrepareP, - int onBeginP, int onEndP, - int onBeginD, int onEndD, - int hasP, int getPageI, ErlDrvTermData Port) : - wxPrintout(Title), - onPrintPage(onPrintP), onPreparePrinting(onPrepareP), - onBeginPrinting(onBeginP), onEndPrinting(onEndP), - onBeginDocument(onBeginD), onEndDocument(onEndD), hasPage(hasP), getPageInfo(getPageI), - port(Port) - { } ; - - ~wxEPrintout(); - - bool OnBeginDocument(int startPage, int endPage); - void OnEndDocument(); - void OnBeginPrinting(); - void OnEndPrinting(); - - void OnPreparePrinting(); - - bool HasPage(int page); - bool OnPrintPage(int page); - void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo); - - int onPrintPage; - int onPreparePrinting; - int onBeginPrinting; - int onEndPrinting; - int onBeginDocument; - int onEndDocument; - int hasPage; - int getPageInfo; - - ErlDrvTermData port; -}; - -void clear_cb(ErlDrvTermData port, int callback); - - -// Implementation of wxListCtrlCompare -struct callbackInfo { - ErlDrvTermData port; - int callbackID; -}; - -int wxCALLBACK wxEListCtrlCompare(long item1, long item2, long callbackInfoPtr); - #endif //_WXE_IMPL_H diff --git a/lib/wx/c_src/wxe_main.cpp b/lib/wx/c_src/wxe_main.cpp new file mode 100644 index 0000000000..2bec2422c9 --- /dev/null +++ b/lib/wx/c_src/wxe_main.cpp @@ -0,0 +1,163 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2014. All Rights Reserved. + * + * The contents of this file are subject to the Erlang Public License, + * Version 1.1, (the "License"); you may not use this file except in + * compliance with the License. You should have received a copy of the + * Erlang Public License along with this software. If not, it can be + * retrieved online at http://www.erlang.org/. + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * %CopyrightEnd% + */ + +#if defined(_WIN32) +#include <wx/msw/private.h> // for wxSetInstance +#endif + +#include "wxe_impl.h" + +// Until fixed in emulator +#ifndef _WIN32 +extern "C" { + extern void erts_thread_disable_fpe(void); +} +#endif + +ErlDrvTid wxe_thread; + +ErlDrvMutex *wxe_status_m; +ErlDrvCond *wxe_status_c; + +int wxe_status = WXE_NOT_INITIATED; + +ErlDrvMutex * wxe_batch_locker_m; +ErlDrvCond * wxe_batch_locker_c; +ErlDrvTermData init_caller = 0; + +#ifdef __DARWIN__ +extern "C" { + int erl_drv_stolen_main_thread_join(ErlDrvTid tid, void **respp); + int erl_drv_steal_main_thread(char *name, + ErlDrvTid *dtid, + void* (*func)(void*), + void* arg, + ErlDrvThreadOpts *opts); +} +#endif + +void *wxe_main_loop(void * ); + +/* ************************************************************ + * START AND STOP of driver thread + * ************************************************************/ + +int load_native_gui() +{ + return 1; +} + +int start_native_gui(wxe_data *sd) +{ + int res; + wxe_status_m = erl_drv_mutex_create((char *) "wxe_status_m"); + wxe_status_c = erl_drv_cond_create((char *)"wxe_status_c"); + + wxe_batch_locker_m = erl_drv_mutex_create((char *)"wxe_batch_locker_m"); + wxe_batch_locker_c = erl_drv_cond_create((char *)"wxe_batch_locker_c"); + init_caller = driver_connected(sd->port_handle); + +#ifdef __DARWIN__ + res = erl_drv_steal_main_thread((char *)"wxwidgets", + &wxe_thread,wxe_main_loop,(void *) sd->pdl,NULL); +#else + res = erl_drv_thread_create((char *)"wxwidgets", + &wxe_thread,wxe_main_loop,(void *) sd->pdl,NULL); +#endif + if(res == 0) { + erl_drv_mutex_lock(wxe_status_m); + for(;wxe_status == WXE_NOT_INITIATED;) { + erl_drv_cond_wait(wxe_status_c, wxe_status_m); + } + erl_drv_mutex_unlock(wxe_status_m); + return wxe_status; + } else { + wxString msg; + msg.Printf(wxT("Erlang failed to create wxe-thread %d\r\n"), res); + send_msg("error", &msg); + return -1; + } +} + +void stop_native_gui(wxe_data *sd) +{ + if(wxe_status == WXE_INITIATED) { + meta_command(WXE_SHUTDOWN, sd); + } +#ifdef __DARWIN__ + erl_drv_stolen_main_thread_join(wxe_thread, NULL); +#else + erl_drv_thread_join(wxe_thread, NULL); +#endif + erl_drv_mutex_destroy(wxe_status_m); + erl_drv_cond_destroy(wxe_status_c); + erl_drv_mutex_destroy(wxe_batch_locker_m); + erl_drv_cond_destroy(wxe_batch_locker_c); +} + +void unload_native_gui() +{ + +} + +/* ************************************************************ + * wxWidgets Thread + * ************************************************************/ + +void *wxe_main_loop(void *vpdl) +{ + int result; + int argc = 1; + char * temp = (char *) "Erlang"; + char * argv[] = {temp,NULL}; + ErlDrvPDL pdl = (ErlDrvPDL) vpdl; + + driver_pdl_inc_refc(pdl); + + // Disable floating point execption if they are on. + // This should be done in emulator but it's not in yet. +#ifndef _WIN32 + erts_thread_disable_fpe(); +#else + // Setup that wxWidgets should look for cursors and icons in + // this dll and not in werl.exe (which is the default) + HMODULE WXEHandle = GetModuleHandle(_T("wxe_driver")); + wxSetInstance((HINSTANCE) WXEHandle); +#endif + + wxe_ps_init(); + result = wxEntry(argc, argv); + // fprintf(stderr, "WXWidgets quits main loop %d \r\n", result); + if(result >= 0 && wxe_status == WXE_INITIATED) { + /* We are done try to make a clean exit */ + wxe_status = WXE_EXITED; + driver_pdl_dec_refc(pdl); +#ifndef __DARWIN__ + erl_drv_thread_exit(NULL); +#endif + return NULL; + } else { + erl_drv_mutex_lock(wxe_status_m); + wxe_status = WXE_ERROR; + erl_drv_cond_signal(wxe_status_c); + erl_drv_mutex_unlock(wxe_status_m); + driver_pdl_dec_refc(pdl); + return NULL; + } +} diff --git a/lib/wx/c_src/wxe_memory.h b/lib/wx/c_src/wxe_memory.h new file mode 100644 index 0000000000..ec22183bfa --- /dev/null +++ b/lib/wx/c_src/wxe_memory.h @@ -0,0 +1,61 @@ +/* + * %CopyrightBegin% + * + * Copyright Ericsson AB 2014. All Rights Reserved. + * + * The contents of this file are subject to the Erlang Public License, + * Version 1.1, (the "License"); you may not use this file except in + * compliance with the License. You should have received a copy of the + * Erlang Public License along with this software. If not, it can be + * retrieved online at http://www.erlang.org/. + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * %CopyrightEnd% + */ + +#ifndef _WXE_MEMORY_H +#define _WXE_MEMORY_H + +class wxeMemEnv +{ +public: + wxeMemEnv() + { + ref2ptr = (void **) driver_alloc(128*sizeof(void *)); + ref2ptr[0] = NULL; + next = 1; + max = 128; + }; + ~wxeMemEnv() + { driver_free(ref2ptr); }; + int next; + int max; + void ** ref2ptr; + intList free; + ErlDrvTermData owner; +}; + +class wxeRefData { + public: + wxeRefData(unsigned int dref, int ttype, int is_new, wxeMemEnv *menv) : + ref(dref), type(ttype), alloc_in_erl(is_new), memenv(menv), pid(-1) { } ; + int ref; + int type; + // 0 = wxWindow subclasses, 1 = wxObject subclasses + // 2 = wxDialog subclasses, 3 = allocated wxObjects but not returned from new + // > 3 classes which lack virtual destr, or are supposed to be allocated on + // the stack + bool alloc_in_erl; + wxeMemEnv *memenv; + ErlDrvTermData pid; +}; + +WX_DECLARE_HASH_MAP(ErlDrvTermData, wxeMemEnv*, wxIntegerHash, wxIntegerEqual, wxeMemMap); + +WX_DECLARE_VOIDPTR_HASH_MAP(wxeRefData *, ptrMap); + +#endif |