diff options
Diffstat (limited to 'lib/wx/c_src')
-rw-r--r-- | lib/wx/c_src/Makefile.in | 42 | ||||
-rw-r--r-- | lib/wx/c_src/gen/gl_funcs.cpp | 48 | ||||
-rw-r--r-- | lib/wx/c_src/gen/wxe_derived_dest.h | 6 | ||||
-rw-r--r-- | lib/wx/c_src/gen/wxe_events.cpp | 114 | ||||
-rw-r--r-- | lib/wx/c_src/gen/wxe_funcs.cpp | 83 | ||||
-rw-r--r-- | lib/wx/c_src/gen/wxe_macros.h | 2513 | ||||
-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 | 93 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_driver.c | 4 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_driver.h | 4 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_events.h | 46 | ||||
-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 | 507 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_impl.h | 218 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_main.cpp | 163 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_memory.h | 61 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_ps_init.c | 68 | ||||
-rw-r--r-- | lib/wx/c_src/wxe_return.cpp | 4 |
21 files changed, 2258 insertions, 2057 deletions
diff --git a/lib/wx/c_src/Makefile.in b/lib/wx/c_src/Makefile.in index 1d17076d23..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 @@ -46,6 +47,7 @@ HAVE_OPENGL = true OPENGL_F = gl_funcs egl_impl include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/output.mk include $(ERL_TOP)/make/$(TARGET)/otp_ded.mk ERL_INCS= $(DED_INCLUDES) @@ -78,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@ @@ -107,9 +109,9 @@ endif GL_LIBS = @GL_LIBS@ -CC_O = $(CC) -c $(CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) +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 = $(CPP) -c $(CXX_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) +CXX_O = $(V_CXX) -c $(CXX_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) # Targets @@ -138,36 +140,36 @@ $(GL_OBJECTS): $(GL_H) $(WX_OBJECTS): $(GENERATED_H) $(GENERAL_H) $(SYS_TYPE)/%.o: %.cpp - mkdir -p $(SYS_TYPE) - $(CPP_O) $< -o $@ + $(V_at)mkdir -p $(SYS_TYPE) + $(CXX_O) $< -o $@ $(SYS_TYPE)/%.o: %.c - mkdir -p $(SYS_TYPE) + $(V_at)mkdir -p $(SYS_TYPE) $(CC_O) $< -o $@ $(SYS_TYPE)/wxe_ps_init.o: wxe_ps_init.c - mkdir -p $(SYS_TYPE) - $(OBJC_CC_O) $< -o $@ + $(V_at)mkdir -p $(SYS_TYPE) + $(cc_verbose)$(OBJC_CC_O) $< -o $@ $(SYS_TYPE)/%.o: gen/%.cpp - mkdir -p $(SYS_TYPE) - $(CPP_O) $< -o $@ + $(V_at)mkdir -p $(SYS_TYPE) + $(CXX_O) $< -o $@ $(SYS_TYPE)/%.o: gen/%.c - mkdir -p $(SYS_TYPE) + $(V_at)mkdir -p $(SYS_TYPE) $(CC_O) $< -o $@ $(SYS_TYPE)/wxe_win32.$(RC_FILE_EXT): wxe_win32.rc - mkdir -p $(SYS_TYPE) + $(V_at)mkdir -p $(SYS_TYPE) $(RESCOMP) -o $@ $< $(TARGET_DIR)/wxe_driver$(SO_EXT): $(WX_OBJECTS) - mkdir -p $(TARGET_DIR) - $(LD) $(LDFLAGS) $(WX_OBJECTS) $(WX_LIBS) -o $@ + $(V_at)mkdir -p $(TARGET_DIR) + $(V_LD) $(LDFLAGS) $(WX_OBJECTS) $(WX_LIBS) -o $@ $(TARGET_DIR)/erl_gl$(SO_EXT): $(GL_OBJECTS) - mkdir -p $(TARGET_DIR) - $(CC) $(LDFLAGS) $(GL_OBJECTS) $(GL_LIBS) -o $@ + $(V_at)mkdir -p $(TARGET_DIR) + $(V_CC) $(LDFLAGS) $(GL_OBJECTS) $(GL_LIBS) -o $@ # ---------------------------------------------------- diff --git a/lib/wx/c_src/gen/gl_funcs.cpp b/lib/wx/c_src/gen/gl_funcs.cpp index e1bd920e71..40a2fbac3c 100644 --- a/lib/wx/c_src/gen/gl_funcs.cpp +++ b/lib/wx/c_src/gen/gl_funcs.cpp @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2008-2012. All Rights Reserved. + * Copyright Ericsson AB 2008-2013. 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 @@ -133,9 +133,9 @@ case 5015: { // gluBuild3DMipmaps }; break; case 5016: { // gluCheckExtension GLubyte *extName = (GLubyte *) bp; - int extNameLen[1] = {strlen((char *)extName)}; bp += extNameLen[0]+1+((8-((1+extNameLen[0]+0)%8))%8); + int extNameLen[1] = {(int)strlen((char *)extName)}; bp += extNameLen[0]+1+((8-((1+extNameLen[0]+0)%8))%8); GLubyte *extString = (GLubyte *) bp; - int extStringLen[1] = {strlen((char *)extString)}; bp += extStringLen[0]+1+((8-((1+extStringLen[0]+0)%8))%8); + int extStringLen[1] = {(int)strlen((char *)extString)}; bp += extStringLen[0]+1+((8-((1+extStringLen[0]+0)%8))%8); GLboolean result = wegluCheckExtension(extName,extString); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -3246,7 +3246,7 @@ case 5446: { // glBindAttribLocation GLuint *program = (GLuint *) bp; bp += 4; GLuint *index = (GLuint *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); weglBindAttribLocation(*program,*index,name); }; break; case 5447: { // glCompileShader @@ -3352,7 +3352,7 @@ case 5457: { // glGetAttachedShaders case 5458: { // glGetAttribLocation GLuint *program = (GLuint *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); GLint result = weglGetAttribLocation(*program,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -3427,7 +3427,7 @@ case 5463: { // glGetShaderSource case 5464: { // glGetUniformLocation GLuint *program = (GLuint *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); GLint result = weglGetUniformLocation(*program,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -4186,13 +4186,13 @@ case 5558: { // glBindFragDataLocation GLuint *program = (GLuint *) bp; bp += 4; GLuint *color = (GLuint *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); weglBindFragDataLocation(*program,*color,name); }; break; case 5559: { // glGetFragDataLocation GLuint *program = (GLuint *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); GLint result = weglGetFragDataLocation(*program,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -4547,7 +4547,7 @@ case 5608: { // glProgramStringARB GLenum *target = (GLenum *) bp; bp += 4; GLenum *format = (GLenum *) bp; bp += 4; GLvoid *string = (GLvoid *) bp; - int stringLen[1] = {strlen((char *)string)}; bp += stringLen[0]+1+((8-((1+stringLen[0]+0)%8))%8); + int stringLen[1] = {(int)strlen((char *)string)}; bp += stringLen[0]+1+((8-((1+stringLen[0]+0)%8))%8); weglProgramStringARB(*target,*format,*stringLen,string); }; break; case 5609: { // glBindProgramARB @@ -4867,7 +4867,7 @@ case 5640: { // glGetAttachedObjectsARB case 5641: { // glGetUniformLocationARB GLhandleARB programObj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); GLint result = weglGetUniformLocationARB(programObj,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -4970,7 +4970,7 @@ case 5646: { // glBindAttribLocationARB GLhandleARB programObj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; GLuint *index = (GLuint *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); weglBindAttribLocationARB(programObj,*index,name); }; break; case 5647: { // glGetActiveAttribARB @@ -4996,7 +4996,7 @@ case 5647: { // glGetActiveAttribARB case 5648: { // glGetAttribLocationARB GLhandleARB programObj = (GLhandleARB) * (GLuint64EXT *) bp; bp += 8; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); GLint result = weglGetAttribLocationARB(programObj,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -5288,7 +5288,7 @@ case 5677: { // glGetActiveUniformName case 5678: { // glGetUniformBlockIndex GLuint *program = (GLuint *) bp; bp += 4; GLchar *uniformBlockName = (GLchar *) bp; - int uniformBlockNameLen[1] = {strlen((char *)uniformBlockName)}; bp += uniformBlockNameLen[0]+1+((8-((1+uniformBlockNameLen[0]+4)%8))%8); + int uniformBlockNameLen[1] = {(int)strlen((char *)uniformBlockName)}; bp += uniformBlockNameLen[0]+1+((8-((1+uniformBlockNameLen[0]+4)%8))%8); GLuint result = weglGetUniformBlockIndex(*program,uniformBlockName); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -5525,14 +5525,14 @@ case 5700: { // glSampleMaski case 5701: { // glNamedStringARB GLenum *type = (GLenum *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); GLchar *string = (GLchar *) bp; - int stringLen[1] = {strlen((char *)string)}; bp += stringLen[0]+1+((8-((1+stringLen[0]+0)%8))%8); + int stringLen[1] = {(int)strlen((char *)string)}; bp += stringLen[0]+1+((8-((1+stringLen[0]+0)%8))%8); weglNamedStringARB(*type,*nameLen,name,*stringLen,string); }; break; case 5702: { // glDeleteNamedStringARB GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); weglDeleteNamedStringARB(*nameLen,name); }; break; case 5703: { // glCompileShaderIncludeARB @@ -5549,7 +5549,7 @@ case 5703: { // glCompileShaderIncludeARB }; break; case 5704: { // glIsNamedStringARB GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); GLboolean result = weglIsNamedStringARB(*nameLen,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -5559,7 +5559,7 @@ case 5704: { // glIsNamedStringARB }; break; case 5705: { // glGetNamedStringARB GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); GLsizei *bufSize = (GLsizei *) bp; bp += 4; GLint stringlen[1] = {0}; GLchar *string; @@ -5574,7 +5574,7 @@ case 5705: { // glGetNamedStringARB }; break; case 5706: { // glGetNamedStringivARB GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); GLenum *pname = (GLenum *) bp; bp += 4; GLint params[1] = {0}; weglGetNamedStringivARB(*nameLen,name,*pname,params); @@ -5589,13 +5589,13 @@ case 5707: { // glBindFragDataLocationIndexed GLuint *colorNumber = (GLuint *) bp; bp += 4; GLuint *index = (GLuint *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); weglBindFragDataLocationIndexed(*program,*colorNumber,*index,name); }; break; case 5708: { // glGetFragDataIndex GLuint *program = (GLuint *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+4)%8))%8); GLint result = weglGetFragDataIndex(*program,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -5954,7 +5954,7 @@ case 5748: { // glGetSubroutineUniformLocation GLuint *program = (GLuint *) bp; bp += 4; GLenum *shadertype = (GLenum *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); GLint result = weglGetSubroutineUniformLocation(*program,*shadertype,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -5966,7 +5966,7 @@ case 5749: { // glGetSubroutineIndex GLuint *program = (GLuint *) bp; bp += 4; GLenum *shadertype = (GLenum *) bp; bp += 4; GLchar *name = (GLchar *) bp; - int nameLen[1] = {strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); + int nameLen[1] = {(int)strlen((char *)name)}; bp += nameLen[0]+1+((8-((1+nameLen[0]+0)%8))%8); GLuint result = weglGetSubroutineIndex(*program,*shadertype,name); int AP = 0; ErlDrvTermData rt[6]; rt[AP++]=ERL_DRV_ATOM; rt[AP++]=driver_mk_atom((char *) "_egl_result_"); @@ -6869,7 +6869,7 @@ case 5854: { // glDebugMessageInsertARB GLuint *id = (GLuint *) bp; bp += 4; GLenum *severity = (GLenum *) bp; bp += 4; GLchar *buf = (GLchar *) bp; - int bufLen[1] = {strlen((char *)buf)}; bp += bufLen[0]+1+((8-((1+bufLen[0]+0)%8))%8); + int bufLen[1] = {(int)strlen((char *)buf)}; bp += bufLen[0]+1+((8-((1+bufLen[0]+0)%8))%8); weglDebugMessageInsertARB(*source,*type,*id,*severity,*bufLen,buf); }; break; case 5855: { // glGetDebugMessageLogARB diff --git a/lib/wx/c_src/gen/wxe_derived_dest.h b/lib/wx/c_src/gen/wxe_derived_dest.h index 8dcaf1c1ac..7e2d4524cb 100644 --- a/lib/wx/c_src/gen/wxe_derived_dest.h +++ b/lib/wx/c_src/gen/wxe_derived_dest.h @@ -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() {}; diff --git a/lib/wx/c_src/gen/wxe_events.cpp b/lib/wx/c_src/gen/wxe_events.cpp index c9cdee3160..1bd17366a2 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 @@ -243,57 +243,61 @@ void initEventTable() {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_SPINCTRL_UPDATED, 215, "command_spinctrl_updated"}, + {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_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, 217, "command_splitter_sash_pos_changed"}, - {wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, 217, "command_splitter_sash_pos_changing"}, - {wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, 217, "command_splitter_doubleclicked"}, - {wxEVT_COMMAND_SPLITTER_UNSPLIT, 217, "command_splitter_unsplit"}, - {wxEVT_COMMAND_HTML_LINK_CLICKED, 219, "command_html_link_clicked"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, 222, "command_auinotebook_page_close"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, 222, "command_auinotebook_page_changed"}, - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, 222, "command_auinotebook_page_changing"}, - {wxEVT_COMMAND_AUINOTEBOOK_BUTTON, 222, "command_auinotebook_button"}, - {wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, 222, "command_auinotebook_begin_drag"}, - {wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, 222, "command_auinotebook_end_drag"}, - {wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, 222, "command_auinotebook_drag_motion"}, - {wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, 222, "command_auinotebook_allow_dnd"}, + {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"}, #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 222, "command_auinotebook_tab_middle_down"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 223, "command_auinotebook_tab_middle_down"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, 222, "command_auinotebook_tab_middle_up"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, 223, "command_auinotebook_tab_middle_up"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 222, "command_auinotebook_tab_right_down"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 223, "command_auinotebook_tab_right_down"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 222, "command_auinotebook_tab_right_up"}, + {wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 223, "command_auinotebook_tab_right_up"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 222, "command_auinotebook_page_closed"}, + {wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 223, "command_auinotebook_page_closed"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 222, "command_auinotebook_drag_done"}, + {wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 223, "command_auinotebook_drag_done"}, #endif #if wxCHECK_VERSION(2,8,5) - {wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 222, "command_auinotebook_bg_dclick"}, + {wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 223, "command_auinotebook_bg_dclick"}, #endif - {wxEVT_AUI_PANE_BUTTON, 223, "aui_pane_button"}, - {wxEVT_AUI_PANE_CLOSE, 223, "aui_pane_close"}, - {wxEVT_AUI_PANE_MAXIMIZE, 223, "aui_pane_maximize"}, - {wxEVT_AUI_PANE_RESTORE, 223, "aui_pane_restore"}, - {wxEVT_AUI_RENDER, 223, "aui_render"}, - {wxEVT_AUI_FIND_MANAGER, 223, "aui_find_manager"}, - {wxEVT_TASKBAR_MOVE, 226, "taskbar_move"}, - {wxEVT_TASKBAR_LEFT_DOWN, 226, "taskbar_left_down"}, - {wxEVT_TASKBAR_LEFT_UP, 226, "taskbar_left_up"}, - {wxEVT_TASKBAR_RIGHT_DOWN, 226, "taskbar_right_down"}, - {wxEVT_TASKBAR_RIGHT_UP, 226, "taskbar_right_up"}, - {wxEVT_TASKBAR_LEFT_DCLICK, 226, "taskbar_left_dclick"}, - {wxEVT_TASKBAR_RIGHT_DCLICK, 226, "taskbar_right_dclick"}, + {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_INIT_DIALOG, 228, "init_dialog"}, {-1, 0, } }; for(int i=0; event_types[i].ev_type != -1; i++) { @@ -312,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; @@ -334,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; @@ -343,7 +337,7 @@ bool sendevent(wxEvent *event, ErlDrvTermData port) rt.addAtom((char*)"wx"); rt.addInt((int) event->GetId()); - rt.addRef(getRef((void *)(cb->obj), memenv), cb->class_name); + rt.addRef(cb->obj, cb->class_name); rt.addExt2Term(cb->user_data); switch(Etype->cID) { case 164: {// wxCommandEvent @@ -743,7 +737,14 @@ case 209: {// wxNotebookEvent rt.addTupleCount(2); break; } -case 215: {// wxSpinEvent +case 215: {// wxClipboardTextEvent + evClass = (char*)"wxClipboardTextEvent"; + rt.addAtom((char*)"wxClipboardText"); + rt.addAtom(Etype->eName); + rt.addTupleCount(2); + break; +} +case 216: {// wxSpinEvent wxSpinEvent * ev = (wxSpinEvent *) event; evClass = (char*)"wxSpinEvent"; rt.addAtom((char*)"wxSpin"); @@ -752,14 +753,14 @@ case 215: {// wxSpinEvent rt.addTupleCount(3); break; } -case 217: {// wxSplitterEvent +case 218: {// wxSplitterEvent evClass = (char*)"wxSplitterEvent"; rt.addAtom((char*)"wxSplitter"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } -case 219: {// wxHtmlLinkEvent +case 220: {// wxHtmlLinkEvent wxHtmlLinkEvent * ev = (wxHtmlLinkEvent *) event; evClass = (char*)"wxHtmlLinkEvent"; rt.addAtom((char*)"wxHtmlLink"); @@ -768,7 +769,7 @@ case 219: {// wxHtmlLinkEvent rt.addTupleCount(3); break; } -case 222: {// wxAuiNotebookEvent +case 223: {// wxAuiNotebookEvent wxAuiNotebookEvent * ev = (wxAuiNotebookEvent *) event; wxAuiNotebook * GetDragSource = ev->GetDragSource(); evClass = (char*)"wxAuiNotebookEvent"; @@ -780,7 +781,7 @@ case 222: {// wxAuiNotebookEvent rt.addTupleCount(5); break; } -case 223: {// wxAuiManagerEvent +case 224: {// wxAuiManagerEvent wxAuiManagerEvent * ev = (wxAuiManagerEvent *) event; wxAuiManager * GetManager = ev->GetManager(); wxAuiPaneInfo * GetPane = ev->GetPane(); @@ -797,13 +798,20 @@ case 223: {// wxAuiManagerEvent rt.addTupleCount(8); break; } -case 226: {// wxTaskBarIconEvent +case 227: {// wxTaskBarIconEvent evClass = (char*)"wxTaskBarIconEvent"; rt.addAtom((char*)"wxTaskBarIcon"); rt.addAtom(Etype->eName); rt.addTupleCount(2); break; } +case 228: {// 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 2d55f34346..3f5cb4c0f5 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,(void *) This, - class_name,*fun_cb, - *skip, userData); - This->Connect((int) *winid,(int) *lastId,eventType, - (wxObjectEventFunction)(wxEventFunction) &wxeEvtListener::forward, - Evt_cb, Listener); - rt.addAtom("ok"); + 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, 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; } @@ -2218,6 +2213,12 @@ case wxPanel_InitDialog: { // wxPanel::InitDialog This->InitDialog(); break; } +case wxPanel_SetFocusIgnoringChildren: { // wxPanel::SetFocusIgnoringChildren + wxPanel *This = (wxPanel *) getPtr(bp,memenv); bp += 4; + if(!This) throw wxe_badarg(0); + This->SetFocusIgnoringChildren(); + break; +} case wxScrolledWindow_new_0: { // wxScrolledWindow::wxScrolledWindow wxScrolledWindow * Result = new EwxScrolledWindow(); newPtr((void *) Result, 0, memenv); @@ -8849,16 +8850,14 @@ case wxStatusBar_Create: { // wxStatusBar::Create break; } case wxStatusBar_GetFieldRect: { // wxStatusBar::GetFieldRect + wxRect rect; wxStatusBar *This = (wxStatusBar *) getPtr(bp,memenv); bp += 4; int * i = (int *) bp; bp += 4; - int * rectX = (int *) bp; bp += 4; - int * rectY = (int *) bp; bp += 4; - int * rectW = (int *) bp; bp += 4; - int * rectH = (int *) bp; bp += 4; - wxRect rect = wxRect(*rectX,*rectY,*rectW,*rectH); if(!This) throw wxe_badarg(0); bool Result = This->GetFieldRect(*i,rect); rt.addBool(Result); + rt.add(rect); + rt.addTupleCount(2); break; } case wxStatusBar_GetFieldsCount: { // wxStatusBar::GetFieldsCount @@ -15133,7 +15132,7 @@ case wxListBox_Set: { // wxListBox::Set } bp += (8-((0+ itemsASz) & 7 )) & 7; if(!This) throw wxe_badarg(0); - This->Set(items,(void **) NULL); + This->Set(items); break; } case wxListBox_HitTest: { // wxListBox::HitTest @@ -26949,14 +26948,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; } @@ -31360,7 +31359,7 @@ case wxAuiManagerEvent_CanVeto: { // wxAuiManagerEvent::CanVeto } case wxLogNull_new: { // wxLogNull::wxLogNull wxLogNull * Result = new wxLogNull(); - newPtr((void *) Result, 224, memenv); + newPtr((void *) Result, 225, memenv); rt.addRef(getRef((void *)Result,memenv), "wxLogNull"); break; } @@ -31450,7 +31449,7 @@ void WxeApp::delete_object(void *ptr, wxeRefData *refd) { 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 224: delete (wxLogNull *) ptr; break; + case 225: delete (wxLogNull *) ptr; break; default: delete (wxObject *) ptr; }} diff --git a/lib/wx/c_src/gen/wxe_macros.h b/lib/wx/c_src/gen/wxe_macros.h index c341825d8d..a1da6500d5 100644 --- a/lib/wx/c_src/gen/wxe_macros.h +++ b/lib/wx/c_src/gen/wxe_macros.h @@ -288,1262 +288,1263 @@ #define wxPanel_new_2 334 #define wxPanel_destruct 335 #define wxPanel_InitDialog 336 -#define wxScrolledWindow_new_0 337 -#define wxScrolledWindow_new_2 338 -#define wxScrolledWindow_destruct 339 -#define wxScrolledWindow_CalcScrolledPosition_4 340 -#define wxScrolledWindow_CalcScrolledPosition_1 341 -#define wxScrolledWindow_CalcUnscrolledPosition_4 342 -#define wxScrolledWindow_CalcUnscrolledPosition_1 343 -#define wxScrolledWindow_EnableScrolling 344 -#define wxScrolledWindow_GetScrollPixelsPerUnit 345 -#define wxScrolledWindow_GetViewStart 346 -#define wxScrolledWindow_DoPrepareDC 347 -#define wxScrolledWindow_PrepareDC 348 -#define wxScrolledWindow_Scroll 349 -#define wxScrolledWindow_SetScrollbars 350 -#define wxScrolledWindow_SetScrollRate 351 -#define wxScrolledWindow_SetTargetWindow 352 -#define wxSashWindow_new_0 353 -#define wxSashWindow_new_2 354 -#define wxSashWindow_destruct 355 -#define wxSashWindow_GetSashVisible 356 -#define wxSashWindow_GetMaximumSizeX 357 -#define wxSashWindow_GetMaximumSizeY 358 -#define wxSashWindow_GetMinimumSizeX 359 -#define wxSashWindow_GetMinimumSizeY 360 -#define wxSashWindow_SetMaximumSizeX 361 -#define wxSashWindow_SetMaximumSizeY 362 -#define wxSashWindow_SetMinimumSizeX 363 -#define wxSashWindow_SetMinimumSizeY 364 -#define wxSashWindow_SetSashVisible 365 -#define wxSashLayoutWindow_new_0 366 -#define wxSashLayoutWindow_new_2 367 -#define wxSashLayoutWindow_Create 368 -#define wxSashLayoutWindow_GetAlignment 369 -#define wxSashLayoutWindow_GetOrientation 370 -#define wxSashLayoutWindow_SetAlignment 371 -#define wxSashLayoutWindow_SetDefaultSize 372 -#define wxSashLayoutWindow_SetOrientation 373 -#define wxSashLayoutWindow_destroy 374 -#define wxGrid_new_0 375 -#define wxGrid_new_3 376 -#define wxGrid_new_4 377 -#define wxGrid_destruct 378 -#define wxGrid_AppendCols 379 -#define wxGrid_AppendRows 380 -#define wxGrid_AutoSize 381 -#define wxGrid_AutoSizeColumn 382 -#define wxGrid_AutoSizeColumns 383 -#define wxGrid_AutoSizeRow 384 -#define wxGrid_AutoSizeRows 385 -#define wxGrid_BeginBatch 386 -#define wxGrid_BlockToDeviceRect 387 -#define wxGrid_CanDragColSize 388 -#define wxGrid_CanDragRowSize 389 -#define wxGrid_CanDragGridSize 390 -#define wxGrid_CanEnableCellControl 391 -#define wxGrid_CellToRect_2 392 -#define wxGrid_CellToRect_1 393 -#define wxGrid_ClearGrid 394 -#define wxGrid_ClearSelection 395 -#define wxGrid_CreateGrid 396 -#define wxGrid_DeleteCols 397 -#define wxGrid_DeleteRows 398 -#define wxGrid_DisableCellEditControl 399 -#define wxGrid_DisableDragColSize 400 -#define wxGrid_DisableDragGridSize 401 -#define wxGrid_DisableDragRowSize 402 -#define wxGrid_EnableCellEditControl 403 -#define wxGrid_EnableDragColSize 404 -#define wxGrid_EnableDragGridSize 405 -#define wxGrid_EnableDragRowSize 406 -#define wxGrid_EnableEditing 407 -#define wxGrid_EnableGridLines 408 -#define wxGrid_EndBatch 409 -#define wxGrid_Fit 410 -#define wxGrid_ForceRefresh 411 -#define wxGrid_GetBatchCount 412 -#define wxGrid_GetCellAlignment 413 -#define wxGrid_GetCellBackgroundColour 414 -#define wxGrid_GetCellEditor 415 -#define wxGrid_GetCellFont 416 -#define wxGrid_GetCellRenderer 417 -#define wxGrid_GetCellTextColour 418 -#define wxGrid_GetCellValue_2 419 -#define wxGrid_GetCellValue_1 420 -#define wxGrid_GetColLabelAlignment 421 -#define wxGrid_GetColLabelSize 422 -#define wxGrid_GetColLabelValue 423 -#define wxGrid_GetColMinimalAcceptableWidth 424 -#define wxGrid_GetDefaultCellAlignment 425 -#define wxGrid_GetDefaultCellBackgroundColour 426 -#define wxGrid_GetDefaultCellFont 427 -#define wxGrid_GetDefaultCellTextColour 428 -#define wxGrid_GetDefaultColLabelSize 429 -#define wxGrid_GetDefaultColSize 430 -#define wxGrid_GetDefaultEditor 431 -#define wxGrid_GetDefaultEditorForCell_2 432 -#define wxGrid_GetDefaultEditorForCell_1 433 -#define wxGrid_GetDefaultEditorForType 434 -#define wxGrid_GetDefaultRenderer 435 -#define wxGrid_GetDefaultRendererForCell 436 -#define wxGrid_GetDefaultRendererForType 437 -#define wxGrid_GetDefaultRowLabelSize 438 -#define wxGrid_GetDefaultRowSize 439 -#define wxGrid_GetGridCursorCol 440 -#define wxGrid_GetGridCursorRow 441 -#define wxGrid_GetGridLineColour 442 -#define wxGrid_GridLinesEnabled 443 -#define wxGrid_GetLabelBackgroundColour 444 -#define wxGrid_GetLabelFont 445 -#define wxGrid_GetLabelTextColour 446 -#define wxGrid_GetNumberCols 447 -#define wxGrid_GetNumberRows 448 -#define wxGrid_GetOrCreateCellAttr 449 -#define wxGrid_GetRowMinimalAcceptableHeight 450 -#define wxGrid_GetRowLabelAlignment 451 -#define wxGrid_GetRowLabelSize 452 -#define wxGrid_GetRowLabelValue 453 -#define wxGrid_GetRowSize 454 -#define wxGrid_GetScrollLineX 455 -#define wxGrid_GetScrollLineY 456 -#define wxGrid_GetSelectedCells 457 -#define wxGrid_GetSelectedCols 458 -#define wxGrid_GetSelectedRows 459 -#define wxGrid_GetSelectionBackground 460 -#define wxGrid_GetSelectionBlockTopLeft 461 -#define wxGrid_GetSelectionBlockBottomRight 462 -#define wxGrid_GetSelectionForeground 463 -#define wxGrid_GetViewWidth 464 -#define wxGrid_GetGridWindow 465 -#define wxGrid_GetGridRowLabelWindow 466 -#define wxGrid_GetGridColLabelWindow 467 -#define wxGrid_GetGridCornerLabelWindow 468 -#define wxGrid_HideCellEditControl 469 -#define wxGrid_InsertCols 470 -#define wxGrid_InsertRows 471 -#define wxGrid_IsCellEditControlEnabled 472 -#define wxGrid_IsCurrentCellReadOnly 473 -#define wxGrid_IsEditable 474 -#define wxGrid_IsInSelection_2 475 -#define wxGrid_IsInSelection_1 476 -#define wxGrid_IsReadOnly 477 -#define wxGrid_IsSelection 478 -#define wxGrid_IsVisible_3 479 -#define wxGrid_IsVisible_2 480 -#define wxGrid_MakeCellVisible_2 481 -#define wxGrid_MakeCellVisible_1 482 -#define wxGrid_MoveCursorDown 483 -#define wxGrid_MoveCursorLeft 484 -#define wxGrid_MoveCursorRight 485 -#define wxGrid_MoveCursorUp 486 -#define wxGrid_MoveCursorDownBlock 487 -#define wxGrid_MoveCursorLeftBlock 488 -#define wxGrid_MoveCursorRightBlock 489 -#define wxGrid_MoveCursorUpBlock 490 -#define wxGrid_MovePageDown 491 -#define wxGrid_MovePageUp 492 -#define wxGrid_RegisterDataType 493 -#define wxGrid_SaveEditControlValue 494 -#define wxGrid_SelectAll 495 -#define wxGrid_SelectBlock_5 496 -#define wxGrid_SelectBlock_3 497 -#define wxGrid_SelectCol 498 -#define wxGrid_SelectRow 499 -#define wxGrid_SetCellAlignment_4 500 -#define wxGrid_SetCellAlignment_3 501 -#define wxGrid_SetCellAlignment_1 502 -#define wxGrid_SetCellBackgroundColour_3_0 503 -#define wxGrid_SetCellBackgroundColour_1 504 -#define wxGrid_SetCellBackgroundColour_3_1 505 -#define wxGrid_SetCellEditor 506 -#define wxGrid_SetCellFont 507 -#define wxGrid_SetCellRenderer 508 -#define wxGrid_SetCellTextColour_3_0 509 -#define wxGrid_SetCellTextColour_3_1 510 -#define wxGrid_SetCellTextColour_1 511 -#define wxGrid_SetCellValue_3_0 512 -#define wxGrid_SetCellValue_2 513 -#define wxGrid_SetCellValue_3_1 514 -#define wxGrid_SetColAttr 515 -#define wxGrid_SetColFormatBool 516 -#define wxGrid_SetColFormatNumber 517 -#define wxGrid_SetColFormatFloat 518 -#define wxGrid_SetColFormatCustom 519 -#define wxGrid_SetColLabelAlignment 520 -#define wxGrid_SetColLabelSize 521 -#define wxGrid_SetColLabelValue 522 -#define wxGrid_SetColMinimalWidth 523 -#define wxGrid_SetColMinimalAcceptableWidth 524 -#define wxGrid_SetColSize 525 -#define wxGrid_SetDefaultCellAlignment 526 -#define wxGrid_SetDefaultCellBackgroundColour 527 -#define wxGrid_SetDefaultCellFont 528 -#define wxGrid_SetDefaultCellTextColour 529 -#define wxGrid_SetDefaultEditor 530 -#define wxGrid_SetDefaultRenderer 531 -#define wxGrid_SetDefaultColSize 532 -#define wxGrid_SetDefaultRowSize 533 -#define wxGrid_SetGridCursor 534 -#define wxGrid_SetGridLineColour 535 -#define wxGrid_SetLabelBackgroundColour 536 -#define wxGrid_SetLabelFont 537 -#define wxGrid_SetLabelTextColour 538 -#define wxGrid_SetMargins 539 -#define wxGrid_SetReadOnly 540 -#define wxGrid_SetRowAttr 541 -#define wxGrid_SetRowLabelAlignment 542 -#define wxGrid_SetRowLabelSize 543 -#define wxGrid_SetRowLabelValue 544 -#define wxGrid_SetRowMinimalHeight 545 -#define wxGrid_SetRowMinimalAcceptableHeight 546 -#define wxGrid_SetRowSize 547 -#define wxGrid_SetScrollLineX 548 -#define wxGrid_SetScrollLineY 549 -#define wxGrid_SetSelectionBackground 550 -#define wxGrid_SetSelectionForeground 551 -#define wxGrid_SetSelectionMode 552 -#define wxGrid_ShowCellEditControl 553 -#define wxGrid_XToCol 554 -#define wxGrid_XToEdgeOfCol 555 -#define wxGrid_YToEdgeOfRow 556 -#define wxGrid_YToRow 557 -#define wxGridCellRenderer_Draw 558 -#define wxGridCellRenderer_GetBestSize 559 -#define wxGridCellEditor_Create 560 -#define wxGridCellEditor_IsCreated 561 -#define wxGridCellEditor_SetSize 562 -#define wxGridCellEditor_Show 563 -#define wxGridCellEditor_PaintBackground 564 -#define wxGridCellEditor_BeginEdit 565 -#define wxGridCellEditor_EndEdit 566 -#define wxGridCellEditor_Reset 567 -#define wxGridCellEditor_StartingKey 568 -#define wxGridCellEditor_StartingClick 569 -#define wxGridCellEditor_HandleReturn 570 -#define wxGridCellBoolRenderer_new 571 -#define wxGridCellBoolRenderer_destroy 572 -#define wxGridCellBoolEditor_new 573 -#define wxGridCellBoolEditor_IsTrueValue 574 -#define wxGridCellBoolEditor_UseStringValues 575 -#define wxGridCellBoolEditor_destroy 576 -#define wxGridCellFloatRenderer_new 577 -#define wxGridCellFloatRenderer_GetPrecision 578 -#define wxGridCellFloatRenderer_GetWidth 579 -#define wxGridCellFloatRenderer_SetParameters 580 -#define wxGridCellFloatRenderer_SetPrecision 581 -#define wxGridCellFloatRenderer_SetWidth 582 -#define wxGridCellFloatRenderer_destroy 583 -#define wxGridCellFloatEditor_new 584 -#define wxGridCellFloatEditor_SetParameters 585 -#define wxGridCellFloatEditor_destroy 586 -#define wxGridCellStringRenderer_new 587 -#define wxGridCellStringRenderer_destroy 588 -#define wxGridCellTextEditor_new 589 -#define wxGridCellTextEditor_SetParameters 590 -#define wxGridCellTextEditor_destroy 591 -#define wxGridCellChoiceEditor_new 593 -#define wxGridCellChoiceEditor_SetParameters 594 -#define wxGridCellChoiceEditor_destroy 595 -#define wxGridCellNumberRenderer_new 596 -#define wxGridCellNumberRenderer_destroy 597 -#define wxGridCellNumberEditor_new 598 -#define wxGridCellNumberEditor_GetValue 599 -#define wxGridCellNumberEditor_SetParameters 600 -#define wxGridCellNumberEditor_destroy 601 -#define wxGridCellAttr_SetTextColour 602 -#define wxGridCellAttr_SetBackgroundColour 603 -#define wxGridCellAttr_SetFont 604 -#define wxGridCellAttr_SetAlignment 605 -#define wxGridCellAttr_SetReadOnly 606 -#define wxGridCellAttr_SetRenderer 607 -#define wxGridCellAttr_SetEditor 608 -#define wxGridCellAttr_HasTextColour 609 -#define wxGridCellAttr_HasBackgroundColour 610 -#define wxGridCellAttr_HasFont 611 -#define wxGridCellAttr_HasAlignment 612 -#define wxGridCellAttr_HasRenderer 613 -#define wxGridCellAttr_HasEditor 614 -#define wxGridCellAttr_GetTextColour 615 -#define wxGridCellAttr_GetBackgroundColour 616 -#define wxGridCellAttr_GetFont 617 -#define wxGridCellAttr_GetAlignment 618 -#define wxGridCellAttr_GetRenderer 619 -#define wxGridCellAttr_GetEditor 620 -#define wxGridCellAttr_IsReadOnly 621 -#define wxGridCellAttr_SetDefAttr 622 -#define wxDC_Blit 623 -#define wxDC_CalcBoundingBox 624 -#define wxDC_Clear 625 -#define wxDC_ComputeScaleAndOrigin 626 -#define wxDC_CrossHair 627 -#define wxDC_DestroyClippingRegion 628 -#define wxDC_DeviceToLogicalX 629 -#define wxDC_DeviceToLogicalXRel 630 -#define wxDC_DeviceToLogicalY 631 -#define wxDC_DeviceToLogicalYRel 632 -#define wxDC_DrawArc 633 -#define wxDC_DrawBitmap 634 -#define wxDC_DrawCheckMark 635 -#define wxDC_DrawCircle 636 -#define wxDC_DrawEllipse_2 638 -#define wxDC_DrawEllipse_1 639 -#define wxDC_DrawEllipticArc 640 -#define wxDC_DrawIcon 641 -#define wxDC_DrawLabel 642 -#define wxDC_DrawLine 643 -#define wxDC_DrawLines 644 -#define wxDC_DrawPolygon 646 -#define wxDC_DrawPoint 648 -#define wxDC_DrawRectangle_2 650 -#define wxDC_DrawRectangle_1 651 -#define wxDC_DrawRotatedText 652 -#define wxDC_DrawRoundedRectangle_3 654 -#define wxDC_DrawRoundedRectangle_2 655 -#define wxDC_DrawText 656 -#define wxDC_EndDoc 657 -#define wxDC_EndPage 658 -#define wxDC_FloodFill 659 -#define wxDC_GetBackground 660 -#define wxDC_GetBackgroundMode 661 -#define wxDC_GetBrush 662 -#define wxDC_GetCharHeight 663 -#define wxDC_GetCharWidth 664 -#define wxDC_GetClippingBox 665 -#define wxDC_GetFont 667 -#define wxDC_GetLayoutDirection 668 -#define wxDC_GetLogicalFunction 669 -#define wxDC_GetMapMode 670 -#define wxDC_GetMultiLineTextExtent_4 671 -#define wxDC_GetMultiLineTextExtent_1 672 -#define wxDC_GetPartialTextExtents 673 -#define wxDC_GetPen 674 -#define wxDC_GetPixel 675 -#define wxDC_GetPPI 676 -#define wxDC_GetSize 678 -#define wxDC_GetSizeMM 680 -#define wxDC_GetTextBackground 681 -#define wxDC_GetTextExtent_4 682 -#define wxDC_GetTextExtent_1 683 -#define wxDC_GetTextForeground 685 -#define wxDC_GetUserScale 686 -#define wxDC_GradientFillConcentric_3 687 -#define wxDC_GradientFillConcentric_4 688 -#define wxDC_GradientFillLinear 689 -#define wxDC_LogicalToDeviceX 690 -#define wxDC_LogicalToDeviceXRel 691 -#define wxDC_LogicalToDeviceY 692 -#define wxDC_LogicalToDeviceYRel 693 -#define wxDC_MaxX 694 -#define wxDC_MaxY 695 -#define wxDC_MinX 696 -#define wxDC_MinY 697 -#define wxDC_IsOk 698 -#define wxDC_ResetBoundingBox 699 -#define wxDC_SetAxisOrientation 700 -#define wxDC_SetBackground 701 -#define wxDC_SetBackgroundMode 702 -#define wxDC_SetBrush 703 -#define wxDC_SetClippingRegion_2 705 -#define wxDC_SetClippingRegion_1_1 706 -#define wxDC_SetClippingRegion_1_0 707 -#define wxDC_SetDeviceOrigin 708 -#define wxDC_SetFont 709 -#define wxDC_SetLayoutDirection 710 -#define wxDC_SetLogicalFunction 711 -#define wxDC_SetMapMode 712 -#define wxDC_SetPalette 713 -#define wxDC_SetPen 714 -#define wxDC_SetTextBackground 715 -#define wxDC_SetTextForeground 716 -#define wxDC_SetUserScale 717 -#define wxDC_StartDoc 718 -#define wxDC_StartPage 719 -#define wxMirrorDC_new 720 -#define wxMirrorDC_destroy 721 -#define wxScreenDC_new 722 -#define wxScreenDC_destruct 723 -#define wxPostScriptDC_new_0 724 -#define wxPostScriptDC_new_1 725 -#define wxPostScriptDC_destruct 726 -#define wxPostScriptDC_SetResolution 727 -#define wxPostScriptDC_GetResolution 728 -#define wxWindowDC_new_0 729 -#define wxWindowDC_new_1 730 -#define wxWindowDC_destruct 731 -#define wxClientDC_new_0 732 -#define wxClientDC_new_1 733 -#define wxClientDC_destroy 734 -#define wxPaintDC_new_0 735 -#define wxPaintDC_new_1 736 -#define wxPaintDC_destroy 737 -#define wxMemoryDC_new_1_0 739 -#define wxMemoryDC_new_1_1 740 -#define wxMemoryDC_new_0 741 -#define wxMemoryDC_destruct 743 -#define wxMemoryDC_SelectObject 744 -#define wxMemoryDC_SelectObjectAsSource 745 -#define wxBufferedDC_new_0 746 -#define wxBufferedDC_new_2 747 -#define wxBufferedDC_new_3 748 -#define wxBufferedDC_destruct 749 -#define wxBufferedDC_Init_2 750 -#define wxBufferedDC_Init_3 751 -#define wxBufferedPaintDC_new_3 752 -#define wxBufferedPaintDC_new_2 753 -#define wxBufferedPaintDC_destruct 754 -#define wxGraphicsObject_destruct 755 -#define wxGraphicsObject_GetRenderer 756 -#define wxGraphicsObject_IsNull 757 -#define wxGraphicsContext_destruct 758 -#define wxGraphicsContext_Create_1_1 759 -#define wxGraphicsContext_Create_1_0 760 -#define wxGraphicsContext_Create_0 761 -#define wxGraphicsContext_CreatePen 762 -#define wxGraphicsContext_CreateBrush 763 -#define wxGraphicsContext_CreateRadialGradientBrush 764 -#define wxGraphicsContext_CreateLinearGradientBrush 765 -#define wxGraphicsContext_CreateFont 766 -#define wxGraphicsContext_CreateMatrix 767 -#define wxGraphicsContext_CreatePath 768 -#define wxGraphicsContext_Clip_1 769 -#define wxGraphicsContext_Clip_4 770 -#define wxGraphicsContext_ResetClip 771 -#define wxGraphicsContext_DrawBitmap 772 -#define wxGraphicsContext_DrawEllipse 773 -#define wxGraphicsContext_DrawIcon 774 -#define wxGraphicsContext_DrawLines 775 -#define wxGraphicsContext_DrawPath 776 -#define wxGraphicsContext_DrawRectangle 777 -#define wxGraphicsContext_DrawRoundedRectangle 778 -#define wxGraphicsContext_DrawText_3 779 -#define wxGraphicsContext_DrawText_4_0 780 -#define wxGraphicsContext_DrawText_4_1 781 -#define wxGraphicsContext_DrawText_5 782 -#define wxGraphicsContext_FillPath 783 -#define wxGraphicsContext_StrokePath 784 -#define wxGraphicsContext_GetPartialTextExtents 785 -#define wxGraphicsContext_GetTextExtent 786 -#define wxGraphicsContext_Rotate 787 -#define wxGraphicsContext_Scale 788 -#define wxGraphicsContext_Translate 789 -#define wxGraphicsContext_GetTransform 790 -#define wxGraphicsContext_SetTransform 791 -#define wxGraphicsContext_ConcatTransform 792 -#define wxGraphicsContext_SetBrush_1_1 793 -#define wxGraphicsContext_SetBrush_1_0 794 -#define wxGraphicsContext_SetFont_1 795 -#define wxGraphicsContext_SetFont_2 796 -#define wxGraphicsContext_SetPen_1_0 797 -#define wxGraphicsContext_SetPen_1_1 798 -#define wxGraphicsContext_StrokeLine 799 -#define wxGraphicsContext_StrokeLines 800 -#define wxGraphicsMatrix_Concat 802 -#define wxGraphicsMatrix_Get 804 -#define wxGraphicsMatrix_Invert 805 -#define wxGraphicsMatrix_IsEqual 806 -#define wxGraphicsMatrix_IsIdentity 808 -#define wxGraphicsMatrix_Rotate 809 -#define wxGraphicsMatrix_Scale 810 -#define wxGraphicsMatrix_Translate 811 -#define wxGraphicsMatrix_Set 812 -#define wxGraphicsMatrix_TransformPoint 813 -#define wxGraphicsMatrix_TransformDistance 814 -#define wxGraphicsPath_MoveToPoint_2 815 -#define wxGraphicsPath_MoveToPoint_1 816 -#define wxGraphicsPath_AddArc_6 817 -#define wxGraphicsPath_AddArc_5 818 -#define wxGraphicsPath_AddArcToPoint 819 -#define wxGraphicsPath_AddCircle 820 -#define wxGraphicsPath_AddCurveToPoint_6 821 -#define wxGraphicsPath_AddCurveToPoint_3 822 -#define wxGraphicsPath_AddEllipse 823 -#define wxGraphicsPath_AddLineToPoint_2 824 -#define wxGraphicsPath_AddLineToPoint_1 825 -#define wxGraphicsPath_AddPath 826 -#define wxGraphicsPath_AddQuadCurveToPoint 827 -#define wxGraphicsPath_AddRectangle 828 -#define wxGraphicsPath_AddRoundedRectangle 829 -#define wxGraphicsPath_CloseSubpath 830 -#define wxGraphicsPath_Contains_3 831 -#define wxGraphicsPath_Contains_2 832 -#define wxGraphicsPath_GetBox 834 -#define wxGraphicsPath_GetCurrentPoint 836 -#define wxGraphicsPath_Transform 837 -#define wxGraphicsRenderer_GetDefaultRenderer 838 -#define wxGraphicsRenderer_CreateContext_1_1 839 -#define wxGraphicsRenderer_CreateContext_1_0 840 -#define wxGraphicsRenderer_CreatePen 841 -#define wxGraphicsRenderer_CreateBrush 842 -#define wxGraphicsRenderer_CreateLinearGradientBrush 843 -#define wxGraphicsRenderer_CreateRadialGradientBrush 844 -#define wxGraphicsRenderer_CreateFont 845 -#define wxGraphicsRenderer_CreateMatrix 846 -#define wxGraphicsRenderer_CreatePath 847 -#define wxMenuBar_new_1 849 -#define wxMenuBar_new_0 851 -#define wxMenuBar_destruct 853 -#define wxMenuBar_Append 854 -#define wxMenuBar_Check 855 -#define wxMenuBar_Enable_2 856 -#define wxMenuBar_Enable_1 857 -#define wxMenuBar_EnableTop 858 -#define wxMenuBar_FindMenu 859 -#define wxMenuBar_FindMenuItem 860 -#define wxMenuBar_FindItem 861 -#define wxMenuBar_GetHelpString 862 -#define wxMenuBar_GetLabel_1 863 -#define wxMenuBar_GetLabel_0 864 -#define wxMenuBar_GetLabelTop 865 -#define wxMenuBar_GetMenu 866 -#define wxMenuBar_GetMenuCount 867 -#define wxMenuBar_Insert 868 -#define wxMenuBar_IsChecked 869 -#define wxMenuBar_IsEnabled_1 870 -#define wxMenuBar_IsEnabled_0 871 -#define wxMenuBar_Remove 872 -#define wxMenuBar_Replace 873 -#define wxMenuBar_SetHelpString 874 -#define wxMenuBar_SetLabel_2 875 -#define wxMenuBar_SetLabel_1 876 -#define wxMenuBar_SetLabelTop 877 -#define wxControl_GetLabel 878 -#define wxControl_SetLabel 879 -#define wxControlWithItems_Append_1 880 -#define wxControlWithItems_Append_2 881 -#define wxControlWithItems_appendStrings_1 882 -#define wxControlWithItems_Clear 883 -#define wxControlWithItems_Delete 884 -#define wxControlWithItems_FindString 885 -#define wxControlWithItems_getClientData 886 -#define wxControlWithItems_setClientData 887 -#define wxControlWithItems_GetCount 888 -#define wxControlWithItems_GetSelection 889 -#define wxControlWithItems_GetString 890 -#define wxControlWithItems_GetStringSelection 891 -#define wxControlWithItems_Insert_2 892 -#define wxControlWithItems_Insert_3 893 -#define wxControlWithItems_IsEmpty 894 -#define wxControlWithItems_Select 895 -#define wxControlWithItems_SetSelection 896 -#define wxControlWithItems_SetString 897 -#define wxControlWithItems_SetStringSelection 898 -#define wxMenu_new_2 901 -#define wxMenu_new_1 902 -#define wxMenu_destruct 904 -#define wxMenu_Append_3 905 -#define wxMenu_Append_1 906 -#define wxMenu_Append_4_0 907 -#define wxMenu_Append_4_1 908 -#define wxMenu_AppendCheckItem 909 -#define wxMenu_AppendRadioItem 910 -#define wxMenu_AppendSeparator 911 -#define wxMenu_Break 912 -#define wxMenu_Check 913 -#define wxMenu_Delete_1_0 914 -#define wxMenu_Delete_1_1 915 -#define wxMenu_Destroy_1_0 916 -#define wxMenu_Destroy_1_1 917 -#define wxMenu_Enable 918 -#define wxMenu_FindItem_1 919 -#define wxMenu_FindItem_2 920 -#define wxMenu_FindItemByPosition 921 -#define wxMenu_GetHelpString 922 -#define wxMenu_GetLabel 923 -#define wxMenu_GetMenuItemCount 924 -#define wxMenu_GetMenuItems 925 -#define wxMenu_GetTitle 927 -#define wxMenu_Insert_2 928 -#define wxMenu_Insert_3 929 -#define wxMenu_Insert_5_1 930 -#define wxMenu_Insert_5_0 931 -#define wxMenu_InsertCheckItem 932 -#define wxMenu_InsertRadioItem 933 -#define wxMenu_InsertSeparator 934 -#define wxMenu_IsChecked 935 -#define wxMenu_IsEnabled 936 -#define wxMenu_Prepend_1 937 -#define wxMenu_Prepend_2 938 -#define wxMenu_Prepend_4_1 939 -#define wxMenu_Prepend_4_0 940 -#define wxMenu_PrependCheckItem 941 -#define wxMenu_PrependRadioItem 942 -#define wxMenu_PrependSeparator 943 -#define wxMenu_Remove_1_0 944 -#define wxMenu_Remove_1_1 945 -#define wxMenu_SetHelpString 946 -#define wxMenu_SetLabel 947 -#define wxMenu_SetTitle 948 -#define wxMenuItem_new 949 -#define wxMenuItem_destruct 951 -#define wxMenuItem_Check 952 -#define wxMenuItem_Enable 953 -#define wxMenuItem_GetBitmap 954 -#define wxMenuItem_GetHelp 955 -#define wxMenuItem_GetId 956 -#define wxMenuItem_GetKind 957 -#define wxMenuItem_GetLabel 958 -#define wxMenuItem_GetLabelFromText 959 -#define wxMenuItem_GetMenu 960 -#define wxMenuItem_GetText 961 -#define wxMenuItem_GetSubMenu 962 -#define wxMenuItem_IsCheckable 963 -#define wxMenuItem_IsChecked 964 -#define wxMenuItem_IsEnabled 965 -#define wxMenuItem_IsSeparator 966 -#define wxMenuItem_IsSubMenu 967 -#define wxMenuItem_SetBitmap 968 -#define wxMenuItem_SetHelp 969 -#define wxMenuItem_SetMenu 970 -#define wxMenuItem_SetSubMenu 971 -#define wxMenuItem_SetText 972 -#define wxToolBar_AddControl 973 -#define wxToolBar_AddSeparator 974 -#define wxToolBar_AddTool_5 975 -#define wxToolBar_AddTool_4_0 976 -#define wxToolBar_AddTool_1 977 -#define wxToolBar_AddTool_4_1 978 -#define wxToolBar_AddTool_3 979 -#define wxToolBar_AddTool_6 980 -#define wxToolBar_AddCheckTool 981 -#define wxToolBar_AddRadioTool 982 -#define wxToolBar_DeleteTool 983 -#define wxToolBar_DeleteToolByPos 984 -#define wxToolBar_EnableTool 985 -#define wxToolBar_FindById 986 -#define wxToolBar_FindControl 987 -#define wxToolBar_FindToolForPosition 988 -#define wxToolBar_GetToolSize 989 -#define wxToolBar_GetToolBitmapSize 990 -#define wxToolBar_GetMargins 991 -#define wxToolBar_GetToolEnabled 992 -#define wxToolBar_GetToolLongHelp 993 -#define wxToolBar_GetToolPacking 994 -#define wxToolBar_GetToolPos 995 -#define wxToolBar_GetToolSeparation 996 -#define wxToolBar_GetToolShortHelp 997 -#define wxToolBar_GetToolState 998 -#define wxToolBar_InsertControl 999 -#define wxToolBar_InsertSeparator 1000 -#define wxToolBar_InsertTool_5 1001 -#define wxToolBar_InsertTool_2 1002 -#define wxToolBar_InsertTool_4 1003 -#define wxToolBar_Realize 1004 -#define wxToolBar_RemoveTool 1005 -#define wxToolBar_SetMargins 1006 -#define wxToolBar_SetToolBitmapSize 1007 -#define wxToolBar_SetToolLongHelp 1008 -#define wxToolBar_SetToolPacking 1009 -#define wxToolBar_SetToolShortHelp 1010 -#define wxToolBar_SetToolSeparation 1011 -#define wxToolBar_ToggleTool 1012 -#define wxStatusBar_new_0 1014 -#define wxStatusBar_new_2 1015 -#define wxStatusBar_destruct 1017 -#define wxStatusBar_Create 1018 -#define wxStatusBar_GetFieldRect 1019 -#define wxStatusBar_GetFieldsCount 1020 -#define wxStatusBar_GetStatusText 1021 -#define wxStatusBar_PopStatusText 1022 -#define wxStatusBar_PushStatusText 1023 -#define wxStatusBar_SetFieldsCount 1024 -#define wxStatusBar_SetMinHeight 1025 -#define wxStatusBar_SetStatusText 1026 -#define wxStatusBar_SetStatusWidths 1027 -#define wxStatusBar_SetStatusStyles 1028 -#define wxBitmap_new_0 1029 -#define wxBitmap_new_3 1030 -#define wxBitmap_new_4 1031 -#define wxBitmap_new_2_0 1032 -#define wxBitmap_new_2_1 1033 -#define wxBitmap_destruct 1034 -#define wxBitmap_ConvertToImage 1035 -#define wxBitmap_CopyFromIcon 1036 -#define wxBitmap_Create 1037 -#define wxBitmap_GetDepth 1038 -#define wxBitmap_GetHeight 1039 -#define wxBitmap_GetPalette 1040 -#define wxBitmap_GetMask 1041 -#define wxBitmap_GetWidth 1042 -#define wxBitmap_GetSubBitmap 1043 -#define wxBitmap_LoadFile 1044 -#define wxBitmap_Ok 1045 -#define wxBitmap_SaveFile 1046 -#define wxBitmap_SetDepth 1047 -#define wxBitmap_SetHeight 1048 -#define wxBitmap_SetMask 1049 -#define wxBitmap_SetPalette 1050 -#define wxBitmap_SetWidth 1051 -#define wxIcon_new_0 1052 -#define wxIcon_new_2 1053 -#define wxIcon_new_1 1054 -#define wxIcon_CopyFromBitmap 1055 -#define wxIcon_destroy 1056 -#define wxIconBundle_new_0 1057 -#define wxIconBundle_new_2 1058 -#define wxIconBundle_new_1_0 1059 -#define wxIconBundle_new_1_1 1060 -#define wxIconBundle_destruct 1061 -#define wxIconBundle_AddIcon_2 1062 -#define wxIconBundle_AddIcon_1 1063 -#define wxIconBundle_GetIcon_1_1 1064 -#define wxIconBundle_GetIcon_1_0 1065 -#define wxCursor_new_0 1066 -#define wxCursor_new_1_0 1067 -#define wxCursor_new_1_1 1068 -#define wxCursor_new_4 1069 -#define wxCursor_destruct 1070 -#define wxCursor_Ok 1071 -#define wxMask_new_0 1072 -#define wxMask_new_2_1 1073 -#define wxMask_new_2_0 1074 -#define wxMask_new_1 1075 -#define wxMask_destruct 1076 -#define wxMask_Create_2_1 1077 -#define wxMask_Create_2_0 1078 -#define wxMask_Create_1 1079 -#define wxImage_new_0 1080 -#define wxImage_new_3_0 1081 -#define wxImage_new_4 1082 -#define wxImage_new_5 1083 -#define wxImage_new_2 1084 -#define wxImage_new_3_1 1085 -#define wxImage_Blur 1086 -#define wxImage_BlurHorizontal 1087 -#define wxImage_BlurVertical 1088 -#define wxImage_ConvertAlphaToMask 1089 -#define wxImage_ConvertToGreyscale 1090 -#define wxImage_ConvertToMono 1091 -#define wxImage_Copy 1092 -#define wxImage_Create_3 1093 -#define wxImage_Create_4 1094 -#define wxImage_Create_5 1095 -#define wxImage_Destroy 1096 -#define wxImage_FindFirstUnusedColour 1097 -#define wxImage_GetImageExtWildcard 1098 -#define wxImage_GetAlpha_2 1099 -#define wxImage_GetAlpha_0 1100 -#define wxImage_GetBlue 1101 -#define wxImage_GetData 1102 -#define wxImage_GetGreen 1103 -#define wxImage_GetImageCount 1104 -#define wxImage_GetHeight 1105 -#define wxImage_GetMaskBlue 1106 -#define wxImage_GetMaskGreen 1107 -#define wxImage_GetMaskRed 1108 -#define wxImage_GetOrFindMaskColour 1109 -#define wxImage_GetPalette 1110 -#define wxImage_GetRed 1111 -#define wxImage_GetSubImage 1112 -#define wxImage_GetWidth 1113 -#define wxImage_HasAlpha 1114 -#define wxImage_HasMask 1115 -#define wxImage_GetOption 1116 -#define wxImage_GetOptionInt 1117 -#define wxImage_HasOption 1118 -#define wxImage_InitAlpha 1119 -#define wxImage_InitStandardHandlers 1120 -#define wxImage_IsTransparent 1121 -#define wxImage_LoadFile_2 1122 -#define wxImage_LoadFile_3 1123 -#define wxImage_Ok 1124 -#define wxImage_RemoveHandler 1125 -#define wxImage_Mirror 1126 -#define wxImage_Replace 1127 -#define wxImage_Rescale 1128 -#define wxImage_Resize 1129 -#define wxImage_Rotate 1130 -#define wxImage_RotateHue 1131 -#define wxImage_Rotate90 1132 -#define wxImage_SaveFile_1 1133 -#define wxImage_SaveFile_2_0 1134 -#define wxImage_SaveFile_2_1 1135 -#define wxImage_Scale 1136 -#define wxImage_Size 1137 -#define wxImage_SetAlpha_3 1138 -#define wxImage_SetAlpha_2 1139 -#define wxImage_SetData_2 1140 -#define wxImage_SetData_4 1141 -#define wxImage_SetMask 1142 -#define wxImage_SetMaskColour 1143 -#define wxImage_SetMaskFromImage 1144 -#define wxImage_SetOption_2_1 1145 -#define wxImage_SetOption_2_0 1146 -#define wxImage_SetPalette 1147 -#define wxImage_SetRGB_5 1148 -#define wxImage_SetRGB_4 1149 -#define wxImage_destroy 1150 -#define wxBrush_new_0 1151 -#define wxBrush_new_2 1152 -#define wxBrush_new_1 1153 -#define wxBrush_destruct 1155 -#define wxBrush_GetColour 1156 -#define wxBrush_GetStipple 1157 -#define wxBrush_GetStyle 1158 -#define wxBrush_IsHatch 1159 -#define wxBrush_IsOk 1160 -#define wxBrush_SetColour_1 1161 -#define wxBrush_SetColour_3 1162 -#define wxBrush_SetStipple 1163 -#define wxBrush_SetStyle 1164 -#define wxPen_new_0 1165 -#define wxPen_new_2 1166 -#define wxPen_destruct 1167 -#define wxPen_GetCap 1168 -#define wxPen_GetColour 1169 -#define wxPen_GetJoin 1170 -#define wxPen_GetStyle 1171 -#define wxPen_GetWidth 1172 -#define wxPen_IsOk 1173 -#define wxPen_SetCap 1174 -#define wxPen_SetColour_1 1175 -#define wxPen_SetColour_3 1176 -#define wxPen_SetJoin 1177 -#define wxPen_SetStyle 1178 -#define wxPen_SetWidth 1179 -#define wxRegion_new_0 1180 -#define wxRegion_new_4 1181 -#define wxRegion_new_2 1182 -#define wxRegion_new_1_1 1183 -#define wxRegion_new_1_0 1185 -#define wxRegion_destruct 1187 -#define wxRegion_Clear 1188 -#define wxRegion_Contains_2 1189 -#define wxRegion_Contains_1_0 1190 -#define wxRegion_Contains_4 1191 -#define wxRegion_Contains_1_1 1192 -#define wxRegion_ConvertToBitmap 1193 -#define wxRegion_GetBox 1194 -#define wxRegion_Intersect_4 1195 -#define wxRegion_Intersect_1_1 1196 -#define wxRegion_Intersect_1_0 1197 -#define wxRegion_IsEmpty 1198 -#define wxRegion_Subtract_4 1199 -#define wxRegion_Subtract_1_1 1200 -#define wxRegion_Subtract_1_0 1201 -#define wxRegion_Offset_2 1202 -#define wxRegion_Offset_1 1203 -#define wxRegion_Union_4 1204 -#define wxRegion_Union_1_2 1205 -#define wxRegion_Union_1_1 1206 -#define wxRegion_Union_1_0 1207 -#define wxRegion_Union_3 1208 -#define wxRegion_Xor_4 1209 -#define wxRegion_Xor_1_1 1210 -#define wxRegion_Xor_1_0 1211 -#define wxAcceleratorTable_new_0 1212 -#define wxAcceleratorTable_new_2 1213 -#define wxAcceleratorTable_destruct 1214 -#define wxAcceleratorTable_Ok 1215 -#define wxAcceleratorEntry_new_1_0 1216 -#define wxAcceleratorEntry_new_1_1 1217 -#define wxAcceleratorEntry_GetCommand 1218 -#define wxAcceleratorEntry_GetFlags 1219 -#define wxAcceleratorEntry_GetKeyCode 1220 -#define wxAcceleratorEntry_Set 1221 -#define wxAcceleratorEntry_destroy 1222 -#define wxCaret_new_3 1227 -#define wxCaret_new_2 1228 -#define wxCaret_destruct 1230 -#define wxCaret_Create_3 1231 -#define wxCaret_Create_2 1232 -#define wxCaret_GetBlinkTime 1233 -#define wxCaret_GetPosition 1235 -#define wxCaret_GetSize 1237 -#define wxCaret_GetWindow 1238 -#define wxCaret_Hide 1239 -#define wxCaret_IsOk 1240 -#define wxCaret_IsVisible 1241 -#define wxCaret_Move_2 1242 -#define wxCaret_Move_1 1243 -#define wxCaret_SetBlinkTime 1244 -#define wxCaret_SetSize_2 1245 -#define wxCaret_SetSize_1 1246 -#define wxCaret_Show 1247 -#define wxSizer_Add_2_1 1248 -#define wxSizer_Add_2_0 1249 -#define wxSizer_Add_3 1250 -#define wxSizer_Add_2_3 1251 -#define wxSizer_Add_2_2 1252 -#define wxSizer_AddSpacer 1253 -#define wxSizer_AddStretchSpacer 1254 -#define wxSizer_CalcMin 1255 -#define wxSizer_Clear 1256 -#define wxSizer_Detach_1_2 1257 -#define wxSizer_Detach_1_1 1258 -#define wxSizer_Detach_1_0 1259 -#define wxSizer_Fit 1260 -#define wxSizer_FitInside 1261 -#define wxSizer_GetChildren 1262 -#define wxSizer_GetItem_2_1 1263 -#define wxSizer_GetItem_2_0 1264 -#define wxSizer_GetItem_1 1265 -#define wxSizer_GetSize 1266 -#define wxSizer_GetPosition 1267 -#define wxSizer_GetMinSize 1268 -#define wxSizer_Hide_2_0 1269 -#define wxSizer_Hide_2_1 1270 -#define wxSizer_Hide_1 1271 -#define wxSizer_Insert_3_1 1272 -#define wxSizer_Insert_3_0 1273 -#define wxSizer_Insert_4 1274 -#define wxSizer_Insert_3_3 1275 -#define wxSizer_Insert_3_2 1276 -#define wxSizer_Insert_2 1277 -#define wxSizer_InsertSpacer 1278 -#define wxSizer_InsertStretchSpacer 1279 -#define wxSizer_IsShown_1_2 1280 -#define wxSizer_IsShown_1_1 1281 -#define wxSizer_IsShown_1_0 1282 -#define wxSizer_Layout 1283 -#define wxSizer_Prepend_2_1 1284 -#define wxSizer_Prepend_2_0 1285 -#define wxSizer_Prepend_3 1286 -#define wxSizer_Prepend_2_3 1287 -#define wxSizer_Prepend_2_2 1288 -#define wxSizer_Prepend_1 1289 -#define wxSizer_PrependSpacer 1290 -#define wxSizer_PrependStretchSpacer 1291 -#define wxSizer_RecalcSizes 1292 -#define wxSizer_Remove_1_1 1293 -#define wxSizer_Remove_1_0 1294 -#define wxSizer_Replace_3_1 1295 -#define wxSizer_Replace_3_0 1296 -#define wxSizer_Replace_2 1297 -#define wxSizer_SetDimension 1298 -#define wxSizer_SetMinSize_2 1299 -#define wxSizer_SetMinSize_1 1300 -#define wxSizer_SetItemMinSize_3_2 1301 -#define wxSizer_SetItemMinSize_2_2 1302 -#define wxSizer_SetItemMinSize_3_1 1303 -#define wxSizer_SetItemMinSize_2_1 1304 -#define wxSizer_SetItemMinSize_3_0 1305 -#define wxSizer_SetItemMinSize_2_0 1306 -#define wxSizer_SetSizeHints 1307 -#define wxSizer_SetVirtualSizeHints 1308 -#define wxSizer_Show_2_2 1309 -#define wxSizer_Show_2_1 1310 -#define wxSizer_Show_2_0 1311 -#define wxSizer_Show_1 1312 -#define wxSizerFlags_new 1313 -#define wxSizerFlags_Align 1314 -#define wxSizerFlags_Border_2 1315 -#define wxSizerFlags_Border_1 1316 -#define wxSizerFlags_Center 1317 -#define wxSizerFlags_Centre 1318 -#define wxSizerFlags_Expand 1319 -#define wxSizerFlags_Left 1320 -#define wxSizerFlags_Proportion 1321 -#define wxSizerFlags_Right 1322 -#define wxSizerFlags_destroy 1323 -#define wxSizerItem_new_5_1 1324 -#define wxSizerItem_new_2_1 1325 -#define wxSizerItem_new_5_0 1326 -#define wxSizerItem_new_2_0 1327 -#define wxSizerItem_new_6 1328 -#define wxSizerItem_new_3 1329 -#define wxSizerItem_new_0 1330 -#define wxSizerItem_destruct 1331 -#define wxSizerItem_CalcMin 1332 -#define wxSizerItem_DeleteWindows 1333 -#define wxSizerItem_DetachSizer 1334 -#define wxSizerItem_GetBorder 1335 -#define wxSizerItem_GetFlag 1336 -#define wxSizerItem_GetMinSize 1337 -#define wxSizerItem_GetPosition 1338 -#define wxSizerItem_GetProportion 1339 -#define wxSizerItem_GetRatio 1340 -#define wxSizerItem_GetRect 1341 -#define wxSizerItem_GetSize 1342 -#define wxSizerItem_GetSizer 1343 -#define wxSizerItem_GetSpacer 1344 -#define wxSizerItem_GetUserData 1345 -#define wxSizerItem_GetWindow 1346 -#define wxSizerItem_IsSizer 1347 -#define wxSizerItem_IsShown 1348 -#define wxSizerItem_IsSpacer 1349 -#define wxSizerItem_IsWindow 1350 -#define wxSizerItem_SetBorder 1351 -#define wxSizerItem_SetDimension 1352 -#define wxSizerItem_SetFlag 1353 -#define wxSizerItem_SetInitSize 1354 -#define wxSizerItem_SetMinSize_1 1355 -#define wxSizerItem_SetMinSize_2 1356 -#define wxSizerItem_SetProportion 1357 -#define wxSizerItem_SetRatio_2 1358 -#define wxSizerItem_SetRatio_1_1 1359 -#define wxSizerItem_SetRatio_1_0 1360 -#define wxSizerItem_SetSizer 1361 -#define wxSizerItem_SetSpacer_1 1362 -#define wxSizerItem_SetSpacer_2 1363 -#define wxSizerItem_SetWindow 1364 -#define wxSizerItem_Show 1365 -#define wxBoxSizer_new 1366 -#define wxBoxSizer_GetOrientation 1367 -#define wxBoxSizer_destroy 1368 -#define wxStaticBoxSizer_new_2 1369 -#define wxStaticBoxSizer_new_3 1370 -#define wxStaticBoxSizer_GetStaticBox 1371 -#define wxStaticBoxSizer_destroy 1372 -#define wxGridSizer_new_4 1373 -#define wxGridSizer_new_2 1374 -#define wxGridSizer_GetCols 1375 -#define wxGridSizer_GetHGap 1376 -#define wxGridSizer_GetRows 1377 -#define wxGridSizer_GetVGap 1378 -#define wxGridSizer_SetCols 1379 -#define wxGridSizer_SetHGap 1380 -#define wxGridSizer_SetRows 1381 -#define wxGridSizer_SetVGap 1382 -#define wxGridSizer_destroy 1383 -#define wxFlexGridSizer_new_4 1384 -#define wxFlexGridSizer_new_2 1385 -#define wxFlexGridSizer_AddGrowableCol 1386 -#define wxFlexGridSizer_AddGrowableRow 1387 -#define wxFlexGridSizer_GetFlexibleDirection 1388 -#define wxFlexGridSizer_GetNonFlexibleGrowMode 1389 -#define wxFlexGridSizer_RemoveGrowableCol 1390 -#define wxFlexGridSizer_RemoveGrowableRow 1391 -#define wxFlexGridSizer_SetFlexibleDirection 1392 -#define wxFlexGridSizer_SetNonFlexibleGrowMode 1393 -#define wxFlexGridSizer_destroy 1394 -#define wxGridBagSizer_new 1395 -#define wxGridBagSizer_Add_3_2 1396 -#define wxGridBagSizer_Add_3_1 1397 -#define wxGridBagSizer_Add_4 1398 -#define wxGridBagSizer_Add_1_0 1399 -#define wxGridBagSizer_Add_2_1 1400 -#define wxGridBagSizer_Add_2_0 1401 -#define wxGridBagSizer_Add_3_0 1402 -#define wxGridBagSizer_Add_1_1 1403 -#define wxGridBagSizer_CalcMin 1404 -#define wxGridBagSizer_CheckForIntersection_2 1405 -#define wxGridBagSizer_CheckForIntersection_3 1406 -#define wxGridBagSizer_FindItem_1_1 1407 -#define wxGridBagSizer_FindItem_1_0 1408 -#define wxGridBagSizer_FindItemAtPoint 1409 -#define wxGridBagSizer_FindItemAtPosition 1410 -#define wxGridBagSizer_FindItemWithData 1411 -#define wxGridBagSizer_GetCellSize 1412 -#define wxGridBagSizer_GetEmptyCellSize 1413 -#define wxGridBagSizer_GetItemPosition_1_2 1414 -#define wxGridBagSizer_GetItemPosition_1_1 1415 -#define wxGridBagSizer_GetItemPosition_1_0 1416 -#define wxGridBagSizer_GetItemSpan_1_2 1417 -#define wxGridBagSizer_GetItemSpan_1_1 1418 -#define wxGridBagSizer_GetItemSpan_1_0 1419 -#define wxGridBagSizer_SetEmptyCellSize 1420 -#define wxGridBagSizer_SetItemPosition_2_2 1421 -#define wxGridBagSizer_SetItemPosition_2_1 1422 -#define wxGridBagSizer_SetItemPosition_2_0 1423 -#define wxGridBagSizer_SetItemSpan_2_2 1424 -#define wxGridBagSizer_SetItemSpan_2_1 1425 -#define wxGridBagSizer_SetItemSpan_2_0 1426 -#define wxGridBagSizer_destroy 1427 -#define wxStdDialogButtonSizer_new 1428 -#define wxStdDialogButtonSizer_AddButton 1429 -#define wxStdDialogButtonSizer_Realize 1430 -#define wxStdDialogButtonSizer_SetAffirmativeButton 1431 -#define wxStdDialogButtonSizer_SetCancelButton 1432 -#define wxStdDialogButtonSizer_SetNegativeButton 1433 -#define wxStdDialogButtonSizer_destroy 1434 -#define wxFont_new_0 1435 -#define wxFont_new_1 1436 -#define wxFont_new_5 1437 -#define wxFont_destruct 1439 -#define wxFont_IsFixedWidth 1440 -#define wxFont_GetDefaultEncoding 1441 -#define wxFont_GetFaceName 1442 -#define wxFont_GetFamily 1443 -#define wxFont_GetNativeFontInfoDesc 1444 -#define wxFont_GetNativeFontInfoUserDesc 1445 -#define wxFont_GetPointSize 1446 -#define wxFont_GetStyle 1447 -#define wxFont_GetUnderlined 1448 -#define wxFont_GetWeight 1449 -#define wxFont_Ok 1450 -#define wxFont_SetDefaultEncoding 1451 -#define wxFont_SetFaceName 1452 -#define wxFont_SetFamily 1453 -#define wxFont_SetPointSize 1454 -#define wxFont_SetStyle 1455 -#define wxFont_SetUnderlined 1456 -#define wxFont_SetWeight 1457 -#define wxToolTip_Enable 1458 -#define wxToolTip_SetDelay 1459 -#define wxToolTip_new 1460 -#define wxToolTip_SetTip 1461 -#define wxToolTip_GetTip 1462 -#define wxToolTip_GetWindow 1463 -#define wxToolTip_destroy 1464 -#define wxButton_new_3 1466 -#define wxButton_new_0 1467 -#define wxButton_destruct 1468 -#define wxButton_Create 1469 -#define wxButton_GetDefaultSize 1470 -#define wxButton_SetDefault 1471 -#define wxButton_SetLabel 1472 -#define wxBitmapButton_new_4 1474 -#define wxBitmapButton_new_0 1475 -#define wxBitmapButton_Create 1476 -#define wxBitmapButton_GetBitmapDisabled 1477 -#define wxBitmapButton_GetBitmapFocus 1479 -#define wxBitmapButton_GetBitmapLabel 1481 -#define wxBitmapButton_GetBitmapSelected 1483 -#define wxBitmapButton_SetBitmapDisabled 1485 -#define wxBitmapButton_SetBitmapFocus 1486 -#define wxBitmapButton_SetBitmapLabel 1487 -#define wxBitmapButton_SetBitmapSelected 1488 -#define wxBitmapButton_destroy 1489 -#define wxToggleButton_new_0 1490 -#define wxToggleButton_new_4 1491 -#define wxToggleButton_Create 1492 -#define wxToggleButton_GetValue 1493 -#define wxToggleButton_SetValue 1494 -#define wxToggleButton_destroy 1495 -#define wxCalendarCtrl_new_0 1496 -#define wxCalendarCtrl_new_3 1497 -#define wxCalendarCtrl_Create 1498 -#define wxCalendarCtrl_destruct 1499 -#define wxCalendarCtrl_SetDate 1500 -#define wxCalendarCtrl_GetDate 1501 -#define wxCalendarCtrl_EnableYearChange 1502 -#define wxCalendarCtrl_EnableMonthChange 1503 -#define wxCalendarCtrl_EnableHolidayDisplay 1504 -#define wxCalendarCtrl_SetHeaderColours 1505 -#define wxCalendarCtrl_GetHeaderColourFg 1506 -#define wxCalendarCtrl_GetHeaderColourBg 1507 -#define wxCalendarCtrl_SetHighlightColours 1508 -#define wxCalendarCtrl_GetHighlightColourFg 1509 -#define wxCalendarCtrl_GetHighlightColourBg 1510 -#define wxCalendarCtrl_SetHolidayColours 1511 -#define wxCalendarCtrl_GetHolidayColourFg 1512 -#define wxCalendarCtrl_GetHolidayColourBg 1513 -#define wxCalendarCtrl_GetAttr 1514 -#define wxCalendarCtrl_SetAttr 1515 -#define wxCalendarCtrl_SetHoliday 1516 -#define wxCalendarCtrl_ResetAttr 1517 -#define wxCalendarCtrl_HitTest 1518 -#define wxCalendarDateAttr_new_0 1519 -#define wxCalendarDateAttr_new_2_1 1520 -#define wxCalendarDateAttr_new_2_0 1521 -#define wxCalendarDateAttr_SetTextColour 1522 -#define wxCalendarDateAttr_SetBackgroundColour 1523 -#define wxCalendarDateAttr_SetBorderColour 1524 -#define wxCalendarDateAttr_SetFont 1525 -#define wxCalendarDateAttr_SetBorder 1526 -#define wxCalendarDateAttr_SetHoliday 1527 -#define wxCalendarDateAttr_HasTextColour 1528 -#define wxCalendarDateAttr_HasBackgroundColour 1529 -#define wxCalendarDateAttr_HasBorderColour 1530 -#define wxCalendarDateAttr_HasFont 1531 -#define wxCalendarDateAttr_HasBorder 1532 -#define wxCalendarDateAttr_IsHoliday 1533 -#define wxCalendarDateAttr_GetTextColour 1534 -#define wxCalendarDateAttr_GetBackgroundColour 1535 -#define wxCalendarDateAttr_GetBorderColour 1536 -#define wxCalendarDateAttr_GetFont 1537 -#define wxCalendarDateAttr_GetBorder 1538 -#define wxCalendarDateAttr_destroy 1539 -#define wxCheckBox_new_4 1541 -#define wxCheckBox_new_0 1542 -#define wxCheckBox_Create 1543 -#define wxCheckBox_GetValue 1544 -#define wxCheckBox_Get3StateValue 1545 -#define wxCheckBox_Is3rdStateAllowedForUser 1546 -#define wxCheckBox_Is3State 1547 -#define wxCheckBox_IsChecked 1548 -#define wxCheckBox_SetValue 1549 -#define wxCheckBox_Set3StateValue 1550 -#define wxCheckBox_destroy 1551 -#define wxCheckListBox_new_0 1552 -#define wxCheckListBox_new_3 1554 -#define wxCheckListBox_Check 1555 -#define wxCheckListBox_IsChecked 1556 -#define wxCheckListBox_destroy 1557 -#define wxChoice_new_3 1560 -#define wxChoice_new_0 1561 -#define wxChoice_destruct 1563 -#define wxChoice_Create 1565 -#define wxChoice_Delete 1566 -#define wxChoice_GetColumns 1567 -#define wxChoice_SetColumns 1568 -#define wxComboBox_new_0 1569 -#define wxComboBox_new_3 1571 -#define wxComboBox_destruct 1572 -#define wxComboBox_Create 1574 -#define wxComboBox_CanCopy 1575 -#define wxComboBox_CanCut 1576 -#define wxComboBox_CanPaste 1577 -#define wxComboBox_CanRedo 1578 -#define wxComboBox_CanUndo 1579 -#define wxComboBox_Copy 1580 -#define wxComboBox_Cut 1581 -#define wxComboBox_GetInsertionPoint 1582 -#define wxComboBox_GetLastPosition 1583 -#define wxComboBox_GetValue 1584 -#define wxComboBox_Paste 1585 -#define wxComboBox_Redo 1586 -#define wxComboBox_Replace 1587 -#define wxComboBox_Remove 1588 -#define wxComboBox_SetInsertionPoint 1589 -#define wxComboBox_SetInsertionPointEnd 1590 -#define wxComboBox_SetSelection_1 1591 -#define wxComboBox_SetSelection_2 1592 -#define wxComboBox_SetValue 1593 -#define wxComboBox_Undo 1594 -#define wxGauge_new_0 1595 -#define wxGauge_new_4 1596 -#define wxGauge_Create 1597 -#define wxGauge_GetBezelFace 1598 -#define wxGauge_GetRange 1599 -#define wxGauge_GetShadowWidth 1600 -#define wxGauge_GetValue 1601 -#define wxGauge_IsVertical 1602 -#define wxGauge_SetBezelFace 1603 -#define wxGauge_SetRange 1604 -#define wxGauge_SetShadowWidth 1605 -#define wxGauge_SetValue 1606 -#define wxGauge_Pulse 1607 -#define wxGauge_destroy 1608 -#define wxGenericDirCtrl_new_0 1609 -#define wxGenericDirCtrl_new_2 1610 -#define wxGenericDirCtrl_destruct 1611 -#define wxGenericDirCtrl_Create 1612 -#define wxGenericDirCtrl_Init 1613 -#define wxGenericDirCtrl_CollapseTree 1614 -#define wxGenericDirCtrl_ExpandPath 1615 -#define wxGenericDirCtrl_GetDefaultPath 1616 -#define wxGenericDirCtrl_GetPath 1617 -#define wxGenericDirCtrl_GetFilePath 1618 -#define wxGenericDirCtrl_GetFilter 1619 -#define wxGenericDirCtrl_GetFilterIndex 1620 -#define wxGenericDirCtrl_GetRootId 1621 -#define wxGenericDirCtrl_GetTreeCtrl 1622 -#define wxGenericDirCtrl_ReCreateTree 1623 -#define wxGenericDirCtrl_SetDefaultPath 1624 -#define wxGenericDirCtrl_SetFilter 1625 -#define wxGenericDirCtrl_SetFilterIndex 1626 -#define wxGenericDirCtrl_SetPath 1627 -#define wxStaticBox_new_4 1629 -#define wxStaticBox_new_0 1630 -#define wxStaticBox_Create 1631 -#define wxStaticBox_destroy 1632 -#define wxStaticLine_new_2 1634 -#define wxStaticLine_new_0 1635 -#define wxStaticLine_Create 1636 -#define wxStaticLine_IsVertical 1637 -#define wxStaticLine_GetDefaultSize 1638 -#define wxStaticLine_destroy 1639 -#define wxListBox_new_3 1642 -#define wxListBox_new_0 1643 -#define wxListBox_destruct 1645 -#define wxListBox_Create 1647 -#define wxListBox_Deselect 1648 -#define wxListBox_GetSelections 1649 -#define wxListBox_InsertItems 1650 -#define wxListBox_IsSelected 1651 +#define wxPanel_SetFocusIgnoringChildren 337 +#define wxScrolledWindow_new_0 338 +#define wxScrolledWindow_new_2 339 +#define wxScrolledWindow_destruct 340 +#define wxScrolledWindow_CalcScrolledPosition_4 341 +#define wxScrolledWindow_CalcScrolledPosition_1 342 +#define wxScrolledWindow_CalcUnscrolledPosition_4 343 +#define wxScrolledWindow_CalcUnscrolledPosition_1 344 +#define wxScrolledWindow_EnableScrolling 345 +#define wxScrolledWindow_GetScrollPixelsPerUnit 346 +#define wxScrolledWindow_GetViewStart 347 +#define wxScrolledWindow_DoPrepareDC 348 +#define wxScrolledWindow_PrepareDC 349 +#define wxScrolledWindow_Scroll 350 +#define wxScrolledWindow_SetScrollbars 351 +#define wxScrolledWindow_SetScrollRate 352 +#define wxScrolledWindow_SetTargetWindow 353 +#define wxSashWindow_new_0 354 +#define wxSashWindow_new_2 355 +#define wxSashWindow_destruct 356 +#define wxSashWindow_GetSashVisible 357 +#define wxSashWindow_GetMaximumSizeX 358 +#define wxSashWindow_GetMaximumSizeY 359 +#define wxSashWindow_GetMinimumSizeX 360 +#define wxSashWindow_GetMinimumSizeY 361 +#define wxSashWindow_SetMaximumSizeX 362 +#define wxSashWindow_SetMaximumSizeY 363 +#define wxSashWindow_SetMinimumSizeX 364 +#define wxSashWindow_SetMinimumSizeY 365 +#define wxSashWindow_SetSashVisible 366 +#define wxSashLayoutWindow_new_0 367 +#define wxSashLayoutWindow_new_2 368 +#define wxSashLayoutWindow_Create 369 +#define wxSashLayoutWindow_GetAlignment 370 +#define wxSashLayoutWindow_GetOrientation 371 +#define wxSashLayoutWindow_SetAlignment 372 +#define wxSashLayoutWindow_SetDefaultSize 373 +#define wxSashLayoutWindow_SetOrientation 374 +#define wxSashLayoutWindow_destroy 375 +#define wxGrid_new_0 376 +#define wxGrid_new_3 377 +#define wxGrid_new_4 378 +#define wxGrid_destruct 379 +#define wxGrid_AppendCols 380 +#define wxGrid_AppendRows 381 +#define wxGrid_AutoSize 382 +#define wxGrid_AutoSizeColumn 383 +#define wxGrid_AutoSizeColumns 384 +#define wxGrid_AutoSizeRow 385 +#define wxGrid_AutoSizeRows 386 +#define wxGrid_BeginBatch 387 +#define wxGrid_BlockToDeviceRect 388 +#define wxGrid_CanDragColSize 389 +#define wxGrid_CanDragRowSize 390 +#define wxGrid_CanDragGridSize 391 +#define wxGrid_CanEnableCellControl 392 +#define wxGrid_CellToRect_2 393 +#define wxGrid_CellToRect_1 394 +#define wxGrid_ClearGrid 395 +#define wxGrid_ClearSelection 396 +#define wxGrid_CreateGrid 397 +#define wxGrid_DeleteCols 398 +#define wxGrid_DeleteRows 399 +#define wxGrid_DisableCellEditControl 400 +#define wxGrid_DisableDragColSize 401 +#define wxGrid_DisableDragGridSize 402 +#define wxGrid_DisableDragRowSize 403 +#define wxGrid_EnableCellEditControl 404 +#define wxGrid_EnableDragColSize 405 +#define wxGrid_EnableDragGridSize 406 +#define wxGrid_EnableDragRowSize 407 +#define wxGrid_EnableEditing 408 +#define wxGrid_EnableGridLines 409 +#define wxGrid_EndBatch 410 +#define wxGrid_Fit 411 +#define wxGrid_ForceRefresh 412 +#define wxGrid_GetBatchCount 413 +#define wxGrid_GetCellAlignment 414 +#define wxGrid_GetCellBackgroundColour 415 +#define wxGrid_GetCellEditor 416 +#define wxGrid_GetCellFont 417 +#define wxGrid_GetCellRenderer 418 +#define wxGrid_GetCellTextColour 419 +#define wxGrid_GetCellValue_2 420 +#define wxGrid_GetCellValue_1 421 +#define wxGrid_GetColLabelAlignment 422 +#define wxGrid_GetColLabelSize 423 +#define wxGrid_GetColLabelValue 424 +#define wxGrid_GetColMinimalAcceptableWidth 425 +#define wxGrid_GetDefaultCellAlignment 426 +#define wxGrid_GetDefaultCellBackgroundColour 427 +#define wxGrid_GetDefaultCellFont 428 +#define wxGrid_GetDefaultCellTextColour 429 +#define wxGrid_GetDefaultColLabelSize 430 +#define wxGrid_GetDefaultColSize 431 +#define wxGrid_GetDefaultEditor 432 +#define wxGrid_GetDefaultEditorForCell_2 433 +#define wxGrid_GetDefaultEditorForCell_1 434 +#define wxGrid_GetDefaultEditorForType 435 +#define wxGrid_GetDefaultRenderer 436 +#define wxGrid_GetDefaultRendererForCell 437 +#define wxGrid_GetDefaultRendererForType 438 +#define wxGrid_GetDefaultRowLabelSize 439 +#define wxGrid_GetDefaultRowSize 440 +#define wxGrid_GetGridCursorCol 441 +#define wxGrid_GetGridCursorRow 442 +#define wxGrid_GetGridLineColour 443 +#define wxGrid_GridLinesEnabled 444 +#define wxGrid_GetLabelBackgroundColour 445 +#define wxGrid_GetLabelFont 446 +#define wxGrid_GetLabelTextColour 447 +#define wxGrid_GetNumberCols 448 +#define wxGrid_GetNumberRows 449 +#define wxGrid_GetOrCreateCellAttr 450 +#define wxGrid_GetRowMinimalAcceptableHeight 451 +#define wxGrid_GetRowLabelAlignment 452 +#define wxGrid_GetRowLabelSize 453 +#define wxGrid_GetRowLabelValue 454 +#define wxGrid_GetRowSize 455 +#define wxGrid_GetScrollLineX 456 +#define wxGrid_GetScrollLineY 457 +#define wxGrid_GetSelectedCells 458 +#define wxGrid_GetSelectedCols 459 +#define wxGrid_GetSelectedRows 460 +#define wxGrid_GetSelectionBackground 461 +#define wxGrid_GetSelectionBlockTopLeft 462 +#define wxGrid_GetSelectionBlockBottomRight 463 +#define wxGrid_GetSelectionForeground 464 +#define wxGrid_GetViewWidth 465 +#define wxGrid_GetGridWindow 466 +#define wxGrid_GetGridRowLabelWindow 467 +#define wxGrid_GetGridColLabelWindow 468 +#define wxGrid_GetGridCornerLabelWindow 469 +#define wxGrid_HideCellEditControl 470 +#define wxGrid_InsertCols 471 +#define wxGrid_InsertRows 472 +#define wxGrid_IsCellEditControlEnabled 473 +#define wxGrid_IsCurrentCellReadOnly 474 +#define wxGrid_IsEditable 475 +#define wxGrid_IsInSelection_2 476 +#define wxGrid_IsInSelection_1 477 +#define wxGrid_IsReadOnly 478 +#define wxGrid_IsSelection 479 +#define wxGrid_IsVisible_3 480 +#define wxGrid_IsVisible_2 481 +#define wxGrid_MakeCellVisible_2 482 +#define wxGrid_MakeCellVisible_1 483 +#define wxGrid_MoveCursorDown 484 +#define wxGrid_MoveCursorLeft 485 +#define wxGrid_MoveCursorRight 486 +#define wxGrid_MoveCursorUp 487 +#define wxGrid_MoveCursorDownBlock 488 +#define wxGrid_MoveCursorLeftBlock 489 +#define wxGrid_MoveCursorRightBlock 490 +#define wxGrid_MoveCursorUpBlock 491 +#define wxGrid_MovePageDown 492 +#define wxGrid_MovePageUp 493 +#define wxGrid_RegisterDataType 494 +#define wxGrid_SaveEditControlValue 495 +#define wxGrid_SelectAll 496 +#define wxGrid_SelectBlock_5 497 +#define wxGrid_SelectBlock_3 498 +#define wxGrid_SelectCol 499 +#define wxGrid_SelectRow 500 +#define wxGrid_SetCellAlignment_4 501 +#define wxGrid_SetCellAlignment_3 502 +#define wxGrid_SetCellAlignment_1 503 +#define wxGrid_SetCellBackgroundColour_3_0 504 +#define wxGrid_SetCellBackgroundColour_1 505 +#define wxGrid_SetCellBackgroundColour_3_1 506 +#define wxGrid_SetCellEditor 507 +#define wxGrid_SetCellFont 508 +#define wxGrid_SetCellRenderer 509 +#define wxGrid_SetCellTextColour_3_0 510 +#define wxGrid_SetCellTextColour_3_1 511 +#define wxGrid_SetCellTextColour_1 512 +#define wxGrid_SetCellValue_3_0 513 +#define wxGrid_SetCellValue_2 514 +#define wxGrid_SetCellValue_3_1 515 +#define wxGrid_SetColAttr 516 +#define wxGrid_SetColFormatBool 517 +#define wxGrid_SetColFormatNumber 518 +#define wxGrid_SetColFormatFloat 519 +#define wxGrid_SetColFormatCustom 520 +#define wxGrid_SetColLabelAlignment 521 +#define wxGrid_SetColLabelSize 522 +#define wxGrid_SetColLabelValue 523 +#define wxGrid_SetColMinimalWidth 524 +#define wxGrid_SetColMinimalAcceptableWidth 525 +#define wxGrid_SetColSize 526 +#define wxGrid_SetDefaultCellAlignment 527 +#define wxGrid_SetDefaultCellBackgroundColour 528 +#define wxGrid_SetDefaultCellFont 529 +#define wxGrid_SetDefaultCellTextColour 530 +#define wxGrid_SetDefaultEditor 531 +#define wxGrid_SetDefaultRenderer 532 +#define wxGrid_SetDefaultColSize 533 +#define wxGrid_SetDefaultRowSize 534 +#define wxGrid_SetGridCursor 535 +#define wxGrid_SetGridLineColour 536 +#define wxGrid_SetLabelBackgroundColour 537 +#define wxGrid_SetLabelFont 538 +#define wxGrid_SetLabelTextColour 539 +#define wxGrid_SetMargins 540 +#define wxGrid_SetReadOnly 541 +#define wxGrid_SetRowAttr 542 +#define wxGrid_SetRowLabelAlignment 543 +#define wxGrid_SetRowLabelSize 544 +#define wxGrid_SetRowLabelValue 545 +#define wxGrid_SetRowMinimalHeight 546 +#define wxGrid_SetRowMinimalAcceptableHeight 547 +#define wxGrid_SetRowSize 548 +#define wxGrid_SetScrollLineX 549 +#define wxGrid_SetScrollLineY 550 +#define wxGrid_SetSelectionBackground 551 +#define wxGrid_SetSelectionForeground 552 +#define wxGrid_SetSelectionMode 553 +#define wxGrid_ShowCellEditControl 554 +#define wxGrid_XToCol 555 +#define wxGrid_XToEdgeOfCol 556 +#define wxGrid_YToEdgeOfRow 557 +#define wxGrid_YToRow 558 +#define wxGridCellRenderer_Draw 559 +#define wxGridCellRenderer_GetBestSize 560 +#define wxGridCellEditor_Create 561 +#define wxGridCellEditor_IsCreated 562 +#define wxGridCellEditor_SetSize 563 +#define wxGridCellEditor_Show 564 +#define wxGridCellEditor_PaintBackground 565 +#define wxGridCellEditor_BeginEdit 566 +#define wxGridCellEditor_EndEdit 567 +#define wxGridCellEditor_Reset 568 +#define wxGridCellEditor_StartingKey 569 +#define wxGridCellEditor_StartingClick 570 +#define wxGridCellEditor_HandleReturn 571 +#define wxGridCellBoolRenderer_new 572 +#define wxGridCellBoolRenderer_destroy 573 +#define wxGridCellBoolEditor_new 574 +#define wxGridCellBoolEditor_IsTrueValue 575 +#define wxGridCellBoolEditor_UseStringValues 576 +#define wxGridCellBoolEditor_destroy 577 +#define wxGridCellFloatRenderer_new 578 +#define wxGridCellFloatRenderer_GetPrecision 579 +#define wxGridCellFloatRenderer_GetWidth 580 +#define wxGridCellFloatRenderer_SetParameters 581 +#define wxGridCellFloatRenderer_SetPrecision 582 +#define wxGridCellFloatRenderer_SetWidth 583 +#define wxGridCellFloatRenderer_destroy 584 +#define wxGridCellFloatEditor_new 585 +#define wxGridCellFloatEditor_SetParameters 586 +#define wxGridCellFloatEditor_destroy 587 +#define wxGridCellStringRenderer_new 588 +#define wxGridCellStringRenderer_destroy 589 +#define wxGridCellTextEditor_new 590 +#define wxGridCellTextEditor_SetParameters 591 +#define wxGridCellTextEditor_destroy 592 +#define wxGridCellChoiceEditor_new 594 +#define wxGridCellChoiceEditor_SetParameters 595 +#define wxGridCellChoiceEditor_destroy 596 +#define wxGridCellNumberRenderer_new 597 +#define wxGridCellNumberRenderer_destroy 598 +#define wxGridCellNumberEditor_new 599 +#define wxGridCellNumberEditor_GetValue 600 +#define wxGridCellNumberEditor_SetParameters 601 +#define wxGridCellNumberEditor_destroy 602 +#define wxGridCellAttr_SetTextColour 603 +#define wxGridCellAttr_SetBackgroundColour 604 +#define wxGridCellAttr_SetFont 605 +#define wxGridCellAttr_SetAlignment 606 +#define wxGridCellAttr_SetReadOnly 607 +#define wxGridCellAttr_SetRenderer 608 +#define wxGridCellAttr_SetEditor 609 +#define wxGridCellAttr_HasTextColour 610 +#define wxGridCellAttr_HasBackgroundColour 611 +#define wxGridCellAttr_HasFont 612 +#define wxGridCellAttr_HasAlignment 613 +#define wxGridCellAttr_HasRenderer 614 +#define wxGridCellAttr_HasEditor 615 +#define wxGridCellAttr_GetTextColour 616 +#define wxGridCellAttr_GetBackgroundColour 617 +#define wxGridCellAttr_GetFont 618 +#define wxGridCellAttr_GetAlignment 619 +#define wxGridCellAttr_GetRenderer 620 +#define wxGridCellAttr_GetEditor 621 +#define wxGridCellAttr_IsReadOnly 622 +#define wxGridCellAttr_SetDefAttr 623 +#define wxDC_Blit 624 +#define wxDC_CalcBoundingBox 625 +#define wxDC_Clear 626 +#define wxDC_ComputeScaleAndOrigin 627 +#define wxDC_CrossHair 628 +#define wxDC_DestroyClippingRegion 629 +#define wxDC_DeviceToLogicalX 630 +#define wxDC_DeviceToLogicalXRel 631 +#define wxDC_DeviceToLogicalY 632 +#define wxDC_DeviceToLogicalYRel 633 +#define wxDC_DrawArc 634 +#define wxDC_DrawBitmap 635 +#define wxDC_DrawCheckMark 636 +#define wxDC_DrawCircle 637 +#define wxDC_DrawEllipse_2 639 +#define wxDC_DrawEllipse_1 640 +#define wxDC_DrawEllipticArc 641 +#define wxDC_DrawIcon 642 +#define wxDC_DrawLabel 643 +#define wxDC_DrawLine 644 +#define wxDC_DrawLines 645 +#define wxDC_DrawPolygon 647 +#define wxDC_DrawPoint 649 +#define wxDC_DrawRectangle_2 651 +#define wxDC_DrawRectangle_1 652 +#define wxDC_DrawRotatedText 653 +#define wxDC_DrawRoundedRectangle_3 655 +#define wxDC_DrawRoundedRectangle_2 656 +#define wxDC_DrawText 657 +#define wxDC_EndDoc 658 +#define wxDC_EndPage 659 +#define wxDC_FloodFill 660 +#define wxDC_GetBackground 661 +#define wxDC_GetBackgroundMode 662 +#define wxDC_GetBrush 663 +#define wxDC_GetCharHeight 664 +#define wxDC_GetCharWidth 665 +#define wxDC_GetClippingBox 666 +#define wxDC_GetFont 668 +#define wxDC_GetLayoutDirection 669 +#define wxDC_GetLogicalFunction 670 +#define wxDC_GetMapMode 671 +#define wxDC_GetMultiLineTextExtent_4 672 +#define wxDC_GetMultiLineTextExtent_1 673 +#define wxDC_GetPartialTextExtents 674 +#define wxDC_GetPen 675 +#define wxDC_GetPixel 676 +#define wxDC_GetPPI 677 +#define wxDC_GetSize 679 +#define wxDC_GetSizeMM 681 +#define wxDC_GetTextBackground 682 +#define wxDC_GetTextExtent_4 683 +#define wxDC_GetTextExtent_1 684 +#define wxDC_GetTextForeground 686 +#define wxDC_GetUserScale 687 +#define wxDC_GradientFillConcentric_3 688 +#define wxDC_GradientFillConcentric_4 689 +#define wxDC_GradientFillLinear 690 +#define wxDC_LogicalToDeviceX 691 +#define wxDC_LogicalToDeviceXRel 692 +#define wxDC_LogicalToDeviceY 693 +#define wxDC_LogicalToDeviceYRel 694 +#define wxDC_MaxX 695 +#define wxDC_MaxY 696 +#define wxDC_MinX 697 +#define wxDC_MinY 698 +#define wxDC_IsOk 699 +#define wxDC_ResetBoundingBox 700 +#define wxDC_SetAxisOrientation 701 +#define wxDC_SetBackground 702 +#define wxDC_SetBackgroundMode 703 +#define wxDC_SetBrush 704 +#define wxDC_SetClippingRegion_2 706 +#define wxDC_SetClippingRegion_1_1 707 +#define wxDC_SetClippingRegion_1_0 708 +#define wxDC_SetDeviceOrigin 709 +#define wxDC_SetFont 710 +#define wxDC_SetLayoutDirection 711 +#define wxDC_SetLogicalFunction 712 +#define wxDC_SetMapMode 713 +#define wxDC_SetPalette 714 +#define wxDC_SetPen 715 +#define wxDC_SetTextBackground 716 +#define wxDC_SetTextForeground 717 +#define wxDC_SetUserScale 718 +#define wxDC_StartDoc 719 +#define wxDC_StartPage 720 +#define wxMirrorDC_new 721 +#define wxMirrorDC_destroy 722 +#define wxScreenDC_new 723 +#define wxScreenDC_destruct 724 +#define wxPostScriptDC_new_0 725 +#define wxPostScriptDC_new_1 726 +#define wxPostScriptDC_destruct 727 +#define wxPostScriptDC_SetResolution 728 +#define wxPostScriptDC_GetResolution 729 +#define wxWindowDC_new_0 730 +#define wxWindowDC_new_1 731 +#define wxWindowDC_destruct 732 +#define wxClientDC_new_0 733 +#define wxClientDC_new_1 734 +#define wxClientDC_destroy 735 +#define wxPaintDC_new_0 736 +#define wxPaintDC_new_1 737 +#define wxPaintDC_destroy 738 +#define wxMemoryDC_new_1_0 740 +#define wxMemoryDC_new_1_1 741 +#define wxMemoryDC_new_0 742 +#define wxMemoryDC_destruct 744 +#define wxMemoryDC_SelectObject 745 +#define wxMemoryDC_SelectObjectAsSource 746 +#define wxBufferedDC_new_0 747 +#define wxBufferedDC_new_2 748 +#define wxBufferedDC_new_3 749 +#define wxBufferedDC_destruct 750 +#define wxBufferedDC_Init_2 751 +#define wxBufferedDC_Init_3 752 +#define wxBufferedPaintDC_new_3 753 +#define wxBufferedPaintDC_new_2 754 +#define wxBufferedPaintDC_destruct 755 +#define wxGraphicsObject_destruct 756 +#define wxGraphicsObject_GetRenderer 757 +#define wxGraphicsObject_IsNull 758 +#define wxGraphicsContext_destruct 759 +#define wxGraphicsContext_Create_1_1 760 +#define wxGraphicsContext_Create_1_0 761 +#define wxGraphicsContext_Create_0 762 +#define wxGraphicsContext_CreatePen 763 +#define wxGraphicsContext_CreateBrush 764 +#define wxGraphicsContext_CreateRadialGradientBrush 765 +#define wxGraphicsContext_CreateLinearGradientBrush 766 +#define wxGraphicsContext_CreateFont 767 +#define wxGraphicsContext_CreateMatrix 768 +#define wxGraphicsContext_CreatePath 769 +#define wxGraphicsContext_Clip_1 770 +#define wxGraphicsContext_Clip_4 771 +#define wxGraphicsContext_ResetClip 772 +#define wxGraphicsContext_DrawBitmap 773 +#define wxGraphicsContext_DrawEllipse 774 +#define wxGraphicsContext_DrawIcon 775 +#define wxGraphicsContext_DrawLines 776 +#define wxGraphicsContext_DrawPath 777 +#define wxGraphicsContext_DrawRectangle 778 +#define wxGraphicsContext_DrawRoundedRectangle 779 +#define wxGraphicsContext_DrawText_3 780 +#define wxGraphicsContext_DrawText_4_0 781 +#define wxGraphicsContext_DrawText_4_1 782 +#define wxGraphicsContext_DrawText_5 783 +#define wxGraphicsContext_FillPath 784 +#define wxGraphicsContext_StrokePath 785 +#define wxGraphicsContext_GetPartialTextExtents 786 +#define wxGraphicsContext_GetTextExtent 787 +#define wxGraphicsContext_Rotate 788 +#define wxGraphicsContext_Scale 789 +#define wxGraphicsContext_Translate 790 +#define wxGraphicsContext_GetTransform 791 +#define wxGraphicsContext_SetTransform 792 +#define wxGraphicsContext_ConcatTransform 793 +#define wxGraphicsContext_SetBrush_1_1 794 +#define wxGraphicsContext_SetBrush_1_0 795 +#define wxGraphicsContext_SetFont_1 796 +#define wxGraphicsContext_SetFont_2 797 +#define wxGraphicsContext_SetPen_1_0 798 +#define wxGraphicsContext_SetPen_1_1 799 +#define wxGraphicsContext_StrokeLine 800 +#define wxGraphicsContext_StrokeLines 801 +#define wxGraphicsMatrix_Concat 803 +#define wxGraphicsMatrix_Get 805 +#define wxGraphicsMatrix_Invert 806 +#define wxGraphicsMatrix_IsEqual 807 +#define wxGraphicsMatrix_IsIdentity 809 +#define wxGraphicsMatrix_Rotate 810 +#define wxGraphicsMatrix_Scale 811 +#define wxGraphicsMatrix_Translate 812 +#define wxGraphicsMatrix_Set 813 +#define wxGraphicsMatrix_TransformPoint 814 +#define wxGraphicsMatrix_TransformDistance 815 +#define wxGraphicsPath_MoveToPoint_2 816 +#define wxGraphicsPath_MoveToPoint_1 817 +#define wxGraphicsPath_AddArc_6 818 +#define wxGraphicsPath_AddArc_5 819 +#define wxGraphicsPath_AddArcToPoint 820 +#define wxGraphicsPath_AddCircle 821 +#define wxGraphicsPath_AddCurveToPoint_6 822 +#define wxGraphicsPath_AddCurveToPoint_3 823 +#define wxGraphicsPath_AddEllipse 824 +#define wxGraphicsPath_AddLineToPoint_2 825 +#define wxGraphicsPath_AddLineToPoint_1 826 +#define wxGraphicsPath_AddPath 827 +#define wxGraphicsPath_AddQuadCurveToPoint 828 +#define wxGraphicsPath_AddRectangle 829 +#define wxGraphicsPath_AddRoundedRectangle 830 +#define wxGraphicsPath_CloseSubpath 831 +#define wxGraphicsPath_Contains_3 832 +#define wxGraphicsPath_Contains_2 833 +#define wxGraphicsPath_GetBox 835 +#define wxGraphicsPath_GetCurrentPoint 837 +#define wxGraphicsPath_Transform 838 +#define wxGraphicsRenderer_GetDefaultRenderer 839 +#define wxGraphicsRenderer_CreateContext_1_1 840 +#define wxGraphicsRenderer_CreateContext_1_0 841 +#define wxGraphicsRenderer_CreatePen 842 +#define wxGraphicsRenderer_CreateBrush 843 +#define wxGraphicsRenderer_CreateLinearGradientBrush 844 +#define wxGraphicsRenderer_CreateRadialGradientBrush 845 +#define wxGraphicsRenderer_CreateFont 846 +#define wxGraphicsRenderer_CreateMatrix 847 +#define wxGraphicsRenderer_CreatePath 848 +#define wxMenuBar_new_1 850 +#define wxMenuBar_new_0 852 +#define wxMenuBar_destruct 854 +#define wxMenuBar_Append 855 +#define wxMenuBar_Check 856 +#define wxMenuBar_Enable_2 857 +#define wxMenuBar_Enable_1 858 +#define wxMenuBar_EnableTop 859 +#define wxMenuBar_FindMenu 860 +#define wxMenuBar_FindMenuItem 861 +#define wxMenuBar_FindItem 862 +#define wxMenuBar_GetHelpString 863 +#define wxMenuBar_GetLabel_1 864 +#define wxMenuBar_GetLabel_0 865 +#define wxMenuBar_GetLabelTop 866 +#define wxMenuBar_GetMenu 867 +#define wxMenuBar_GetMenuCount 868 +#define wxMenuBar_Insert 869 +#define wxMenuBar_IsChecked 870 +#define wxMenuBar_IsEnabled_1 871 +#define wxMenuBar_IsEnabled_0 872 +#define wxMenuBar_Remove 873 +#define wxMenuBar_Replace 874 +#define wxMenuBar_SetHelpString 875 +#define wxMenuBar_SetLabel_2 876 +#define wxMenuBar_SetLabel_1 877 +#define wxMenuBar_SetLabelTop 878 +#define wxControl_GetLabel 879 +#define wxControl_SetLabel 880 +#define wxControlWithItems_Append_1 881 +#define wxControlWithItems_Append_2 882 +#define wxControlWithItems_appendStrings_1 883 +#define wxControlWithItems_Clear 884 +#define wxControlWithItems_Delete 885 +#define wxControlWithItems_FindString 886 +#define wxControlWithItems_getClientData 887 +#define wxControlWithItems_setClientData 888 +#define wxControlWithItems_GetCount 889 +#define wxControlWithItems_GetSelection 890 +#define wxControlWithItems_GetString 891 +#define wxControlWithItems_GetStringSelection 892 +#define wxControlWithItems_Insert_2 893 +#define wxControlWithItems_Insert_3 894 +#define wxControlWithItems_IsEmpty 895 +#define wxControlWithItems_Select 896 +#define wxControlWithItems_SetSelection 897 +#define wxControlWithItems_SetString 898 +#define wxControlWithItems_SetStringSelection 899 +#define wxMenu_new_2 902 +#define wxMenu_new_1 903 +#define wxMenu_destruct 905 +#define wxMenu_Append_3 906 +#define wxMenu_Append_1 907 +#define wxMenu_Append_4_0 908 +#define wxMenu_Append_4_1 909 +#define wxMenu_AppendCheckItem 910 +#define wxMenu_AppendRadioItem 911 +#define wxMenu_AppendSeparator 912 +#define wxMenu_Break 913 +#define wxMenu_Check 914 +#define wxMenu_Delete_1_0 915 +#define wxMenu_Delete_1_1 916 +#define wxMenu_Destroy_1_0 917 +#define wxMenu_Destroy_1_1 918 +#define wxMenu_Enable 919 +#define wxMenu_FindItem_1 920 +#define wxMenu_FindItem_2 921 +#define wxMenu_FindItemByPosition 922 +#define wxMenu_GetHelpString 923 +#define wxMenu_GetLabel 924 +#define wxMenu_GetMenuItemCount 925 +#define wxMenu_GetMenuItems 926 +#define wxMenu_GetTitle 928 +#define wxMenu_Insert_2 929 +#define wxMenu_Insert_3 930 +#define wxMenu_Insert_5_1 931 +#define wxMenu_Insert_5_0 932 +#define wxMenu_InsertCheckItem 933 +#define wxMenu_InsertRadioItem 934 +#define wxMenu_InsertSeparator 935 +#define wxMenu_IsChecked 936 +#define wxMenu_IsEnabled 937 +#define wxMenu_Prepend_1 938 +#define wxMenu_Prepend_2 939 +#define wxMenu_Prepend_4_1 940 +#define wxMenu_Prepend_4_0 941 +#define wxMenu_PrependCheckItem 942 +#define wxMenu_PrependRadioItem 943 +#define wxMenu_PrependSeparator 944 +#define wxMenu_Remove_1_0 945 +#define wxMenu_Remove_1_1 946 +#define wxMenu_SetHelpString 947 +#define wxMenu_SetLabel 948 +#define wxMenu_SetTitle 949 +#define wxMenuItem_new 950 +#define wxMenuItem_destruct 952 +#define wxMenuItem_Check 953 +#define wxMenuItem_Enable 954 +#define wxMenuItem_GetBitmap 955 +#define wxMenuItem_GetHelp 956 +#define wxMenuItem_GetId 957 +#define wxMenuItem_GetKind 958 +#define wxMenuItem_GetLabel 959 +#define wxMenuItem_GetLabelFromText 960 +#define wxMenuItem_GetMenu 961 +#define wxMenuItem_GetText 962 +#define wxMenuItem_GetSubMenu 963 +#define wxMenuItem_IsCheckable 964 +#define wxMenuItem_IsChecked 965 +#define wxMenuItem_IsEnabled 966 +#define wxMenuItem_IsSeparator 967 +#define wxMenuItem_IsSubMenu 968 +#define wxMenuItem_SetBitmap 969 +#define wxMenuItem_SetHelp 970 +#define wxMenuItem_SetMenu 971 +#define wxMenuItem_SetSubMenu 972 +#define wxMenuItem_SetText 973 +#define wxToolBar_AddControl 974 +#define wxToolBar_AddSeparator 975 +#define wxToolBar_AddTool_5 976 +#define wxToolBar_AddTool_4_0 977 +#define wxToolBar_AddTool_1 978 +#define wxToolBar_AddTool_4_1 979 +#define wxToolBar_AddTool_3 980 +#define wxToolBar_AddTool_6 981 +#define wxToolBar_AddCheckTool 982 +#define wxToolBar_AddRadioTool 983 +#define wxToolBar_DeleteTool 984 +#define wxToolBar_DeleteToolByPos 985 +#define wxToolBar_EnableTool 986 +#define wxToolBar_FindById 987 +#define wxToolBar_FindControl 988 +#define wxToolBar_FindToolForPosition 989 +#define wxToolBar_GetToolSize 990 +#define wxToolBar_GetToolBitmapSize 991 +#define wxToolBar_GetMargins 992 +#define wxToolBar_GetToolEnabled 993 +#define wxToolBar_GetToolLongHelp 994 +#define wxToolBar_GetToolPacking 995 +#define wxToolBar_GetToolPos 996 +#define wxToolBar_GetToolSeparation 997 +#define wxToolBar_GetToolShortHelp 998 +#define wxToolBar_GetToolState 999 +#define wxToolBar_InsertControl 1000 +#define wxToolBar_InsertSeparator 1001 +#define wxToolBar_InsertTool_5 1002 +#define wxToolBar_InsertTool_2 1003 +#define wxToolBar_InsertTool_4 1004 +#define wxToolBar_Realize 1005 +#define wxToolBar_RemoveTool 1006 +#define wxToolBar_SetMargins 1007 +#define wxToolBar_SetToolBitmapSize 1008 +#define wxToolBar_SetToolLongHelp 1009 +#define wxToolBar_SetToolPacking 1010 +#define wxToolBar_SetToolShortHelp 1011 +#define wxToolBar_SetToolSeparation 1012 +#define wxToolBar_ToggleTool 1013 +#define wxStatusBar_new_0 1015 +#define wxStatusBar_new_2 1016 +#define wxStatusBar_destruct 1018 +#define wxStatusBar_Create 1019 +#define wxStatusBar_GetFieldRect 1020 +#define wxStatusBar_GetFieldsCount 1021 +#define wxStatusBar_GetStatusText 1022 +#define wxStatusBar_PopStatusText 1023 +#define wxStatusBar_PushStatusText 1024 +#define wxStatusBar_SetFieldsCount 1025 +#define wxStatusBar_SetMinHeight 1026 +#define wxStatusBar_SetStatusText 1027 +#define wxStatusBar_SetStatusWidths 1028 +#define wxStatusBar_SetStatusStyles 1029 +#define wxBitmap_new_0 1030 +#define wxBitmap_new_3 1031 +#define wxBitmap_new_4 1032 +#define wxBitmap_new_2_0 1033 +#define wxBitmap_new_2_1 1034 +#define wxBitmap_destruct 1035 +#define wxBitmap_ConvertToImage 1036 +#define wxBitmap_CopyFromIcon 1037 +#define wxBitmap_Create 1038 +#define wxBitmap_GetDepth 1039 +#define wxBitmap_GetHeight 1040 +#define wxBitmap_GetPalette 1041 +#define wxBitmap_GetMask 1042 +#define wxBitmap_GetWidth 1043 +#define wxBitmap_GetSubBitmap 1044 +#define wxBitmap_LoadFile 1045 +#define wxBitmap_Ok 1046 +#define wxBitmap_SaveFile 1047 +#define wxBitmap_SetDepth 1048 +#define wxBitmap_SetHeight 1049 +#define wxBitmap_SetMask 1050 +#define wxBitmap_SetPalette 1051 +#define wxBitmap_SetWidth 1052 +#define wxIcon_new_0 1053 +#define wxIcon_new_2 1054 +#define wxIcon_new_1 1055 +#define wxIcon_CopyFromBitmap 1056 +#define wxIcon_destroy 1057 +#define wxIconBundle_new_0 1058 +#define wxIconBundle_new_2 1059 +#define wxIconBundle_new_1_0 1060 +#define wxIconBundle_new_1_1 1061 +#define wxIconBundle_destruct 1062 +#define wxIconBundle_AddIcon_2 1063 +#define wxIconBundle_AddIcon_1 1064 +#define wxIconBundle_GetIcon_1_1 1065 +#define wxIconBundle_GetIcon_1_0 1066 +#define wxCursor_new_0 1067 +#define wxCursor_new_1_0 1068 +#define wxCursor_new_1_1 1069 +#define wxCursor_new_4 1070 +#define wxCursor_destruct 1071 +#define wxCursor_Ok 1072 +#define wxMask_new_0 1073 +#define wxMask_new_2_1 1074 +#define wxMask_new_2_0 1075 +#define wxMask_new_1 1076 +#define wxMask_destruct 1077 +#define wxMask_Create_2_1 1078 +#define wxMask_Create_2_0 1079 +#define wxMask_Create_1 1080 +#define wxImage_new_0 1081 +#define wxImage_new_3_0 1082 +#define wxImage_new_4 1083 +#define wxImage_new_5 1084 +#define wxImage_new_2 1085 +#define wxImage_new_3_1 1086 +#define wxImage_Blur 1087 +#define wxImage_BlurHorizontal 1088 +#define wxImage_BlurVertical 1089 +#define wxImage_ConvertAlphaToMask 1090 +#define wxImage_ConvertToGreyscale 1091 +#define wxImage_ConvertToMono 1092 +#define wxImage_Copy 1093 +#define wxImage_Create_3 1094 +#define wxImage_Create_4 1095 +#define wxImage_Create_5 1096 +#define wxImage_Destroy 1097 +#define wxImage_FindFirstUnusedColour 1098 +#define wxImage_GetImageExtWildcard 1099 +#define wxImage_GetAlpha_2 1100 +#define wxImage_GetAlpha_0 1101 +#define wxImage_GetBlue 1102 +#define wxImage_GetData 1103 +#define wxImage_GetGreen 1104 +#define wxImage_GetImageCount 1105 +#define wxImage_GetHeight 1106 +#define wxImage_GetMaskBlue 1107 +#define wxImage_GetMaskGreen 1108 +#define wxImage_GetMaskRed 1109 +#define wxImage_GetOrFindMaskColour 1110 +#define wxImage_GetPalette 1111 +#define wxImage_GetRed 1112 +#define wxImage_GetSubImage 1113 +#define wxImage_GetWidth 1114 +#define wxImage_HasAlpha 1115 +#define wxImage_HasMask 1116 +#define wxImage_GetOption 1117 +#define wxImage_GetOptionInt 1118 +#define wxImage_HasOption 1119 +#define wxImage_InitAlpha 1120 +#define wxImage_InitStandardHandlers 1121 +#define wxImage_IsTransparent 1122 +#define wxImage_LoadFile_2 1123 +#define wxImage_LoadFile_3 1124 +#define wxImage_Ok 1125 +#define wxImage_RemoveHandler 1126 +#define wxImage_Mirror 1127 +#define wxImage_Replace 1128 +#define wxImage_Rescale 1129 +#define wxImage_Resize 1130 +#define wxImage_Rotate 1131 +#define wxImage_RotateHue 1132 +#define wxImage_Rotate90 1133 +#define wxImage_SaveFile_1 1134 +#define wxImage_SaveFile_2_0 1135 +#define wxImage_SaveFile_2_1 1136 +#define wxImage_Scale 1137 +#define wxImage_Size 1138 +#define wxImage_SetAlpha_3 1139 +#define wxImage_SetAlpha_2 1140 +#define wxImage_SetData_2 1141 +#define wxImage_SetData_4 1142 +#define wxImage_SetMask 1143 +#define wxImage_SetMaskColour 1144 +#define wxImage_SetMaskFromImage 1145 +#define wxImage_SetOption_2_1 1146 +#define wxImage_SetOption_2_0 1147 +#define wxImage_SetPalette 1148 +#define wxImage_SetRGB_5 1149 +#define wxImage_SetRGB_4 1150 +#define wxImage_destroy 1151 +#define wxBrush_new_0 1152 +#define wxBrush_new_2 1153 +#define wxBrush_new_1 1154 +#define wxBrush_destruct 1156 +#define wxBrush_GetColour 1157 +#define wxBrush_GetStipple 1158 +#define wxBrush_GetStyle 1159 +#define wxBrush_IsHatch 1160 +#define wxBrush_IsOk 1161 +#define wxBrush_SetColour_1 1162 +#define wxBrush_SetColour_3 1163 +#define wxBrush_SetStipple 1164 +#define wxBrush_SetStyle 1165 +#define wxPen_new_0 1166 +#define wxPen_new_2 1167 +#define wxPen_destruct 1168 +#define wxPen_GetCap 1169 +#define wxPen_GetColour 1170 +#define wxPen_GetJoin 1171 +#define wxPen_GetStyle 1172 +#define wxPen_GetWidth 1173 +#define wxPen_IsOk 1174 +#define wxPen_SetCap 1175 +#define wxPen_SetColour_1 1176 +#define wxPen_SetColour_3 1177 +#define wxPen_SetJoin 1178 +#define wxPen_SetStyle 1179 +#define wxPen_SetWidth 1180 +#define wxRegion_new_0 1181 +#define wxRegion_new_4 1182 +#define wxRegion_new_2 1183 +#define wxRegion_new_1_1 1184 +#define wxRegion_new_1_0 1186 +#define wxRegion_destruct 1188 +#define wxRegion_Clear 1189 +#define wxRegion_Contains_2 1190 +#define wxRegion_Contains_1_0 1191 +#define wxRegion_Contains_4 1192 +#define wxRegion_Contains_1_1 1193 +#define wxRegion_ConvertToBitmap 1194 +#define wxRegion_GetBox 1195 +#define wxRegion_Intersect_4 1196 +#define wxRegion_Intersect_1_1 1197 +#define wxRegion_Intersect_1_0 1198 +#define wxRegion_IsEmpty 1199 +#define wxRegion_Subtract_4 1200 +#define wxRegion_Subtract_1_1 1201 +#define wxRegion_Subtract_1_0 1202 +#define wxRegion_Offset_2 1203 +#define wxRegion_Offset_1 1204 +#define wxRegion_Union_4 1205 +#define wxRegion_Union_1_2 1206 +#define wxRegion_Union_1_1 1207 +#define wxRegion_Union_1_0 1208 +#define wxRegion_Union_3 1209 +#define wxRegion_Xor_4 1210 +#define wxRegion_Xor_1_1 1211 +#define wxRegion_Xor_1_0 1212 +#define wxAcceleratorTable_new_0 1213 +#define wxAcceleratorTable_new_2 1214 +#define wxAcceleratorTable_destruct 1215 +#define wxAcceleratorTable_Ok 1216 +#define wxAcceleratorEntry_new_1_0 1217 +#define wxAcceleratorEntry_new_1_1 1218 +#define wxAcceleratorEntry_GetCommand 1219 +#define wxAcceleratorEntry_GetFlags 1220 +#define wxAcceleratorEntry_GetKeyCode 1221 +#define wxAcceleratorEntry_Set 1222 +#define wxAcceleratorEntry_destroy 1223 +#define wxCaret_new_3 1228 +#define wxCaret_new_2 1229 +#define wxCaret_destruct 1231 +#define wxCaret_Create_3 1232 +#define wxCaret_Create_2 1233 +#define wxCaret_GetBlinkTime 1234 +#define wxCaret_GetPosition 1236 +#define wxCaret_GetSize 1238 +#define wxCaret_GetWindow 1239 +#define wxCaret_Hide 1240 +#define wxCaret_IsOk 1241 +#define wxCaret_IsVisible 1242 +#define wxCaret_Move_2 1243 +#define wxCaret_Move_1 1244 +#define wxCaret_SetBlinkTime 1245 +#define wxCaret_SetSize_2 1246 +#define wxCaret_SetSize_1 1247 +#define wxCaret_Show 1248 +#define wxSizer_Add_2_1 1249 +#define wxSizer_Add_2_0 1250 +#define wxSizer_Add_3 1251 +#define wxSizer_Add_2_3 1252 +#define wxSizer_Add_2_2 1253 +#define wxSizer_AddSpacer 1254 +#define wxSizer_AddStretchSpacer 1255 +#define wxSizer_CalcMin 1256 +#define wxSizer_Clear 1257 +#define wxSizer_Detach_1_2 1258 +#define wxSizer_Detach_1_1 1259 +#define wxSizer_Detach_1_0 1260 +#define wxSizer_Fit 1261 +#define wxSizer_FitInside 1262 +#define wxSizer_GetChildren 1263 +#define wxSizer_GetItem_2_1 1264 +#define wxSizer_GetItem_2_0 1265 +#define wxSizer_GetItem_1 1266 +#define wxSizer_GetSize 1267 +#define wxSizer_GetPosition 1268 +#define wxSizer_GetMinSize 1269 +#define wxSizer_Hide_2_0 1270 +#define wxSizer_Hide_2_1 1271 +#define wxSizer_Hide_1 1272 +#define wxSizer_Insert_3_1 1273 +#define wxSizer_Insert_3_0 1274 +#define wxSizer_Insert_4 1275 +#define wxSizer_Insert_3_3 1276 +#define wxSizer_Insert_3_2 1277 +#define wxSizer_Insert_2 1278 +#define wxSizer_InsertSpacer 1279 +#define wxSizer_InsertStretchSpacer 1280 +#define wxSizer_IsShown_1_2 1281 +#define wxSizer_IsShown_1_1 1282 +#define wxSizer_IsShown_1_0 1283 +#define wxSizer_Layout 1284 +#define wxSizer_Prepend_2_1 1285 +#define wxSizer_Prepend_2_0 1286 +#define wxSizer_Prepend_3 1287 +#define wxSizer_Prepend_2_3 1288 +#define wxSizer_Prepend_2_2 1289 +#define wxSizer_Prepend_1 1290 +#define wxSizer_PrependSpacer 1291 +#define wxSizer_PrependStretchSpacer 1292 +#define wxSizer_RecalcSizes 1293 +#define wxSizer_Remove_1_1 1294 +#define wxSizer_Remove_1_0 1295 +#define wxSizer_Replace_3_1 1296 +#define wxSizer_Replace_3_0 1297 +#define wxSizer_Replace_2 1298 +#define wxSizer_SetDimension 1299 +#define wxSizer_SetMinSize_2 1300 +#define wxSizer_SetMinSize_1 1301 +#define wxSizer_SetItemMinSize_3_2 1302 +#define wxSizer_SetItemMinSize_2_2 1303 +#define wxSizer_SetItemMinSize_3_1 1304 +#define wxSizer_SetItemMinSize_2_1 1305 +#define wxSizer_SetItemMinSize_3_0 1306 +#define wxSizer_SetItemMinSize_2_0 1307 +#define wxSizer_SetSizeHints 1308 +#define wxSizer_SetVirtualSizeHints 1309 +#define wxSizer_Show_2_2 1310 +#define wxSizer_Show_2_1 1311 +#define wxSizer_Show_2_0 1312 +#define wxSizer_Show_1 1313 +#define wxSizerFlags_new 1314 +#define wxSizerFlags_Align 1315 +#define wxSizerFlags_Border_2 1316 +#define wxSizerFlags_Border_1 1317 +#define wxSizerFlags_Center 1318 +#define wxSizerFlags_Centre 1319 +#define wxSizerFlags_Expand 1320 +#define wxSizerFlags_Left 1321 +#define wxSizerFlags_Proportion 1322 +#define wxSizerFlags_Right 1323 +#define wxSizerFlags_destroy 1324 +#define wxSizerItem_new_5_1 1325 +#define wxSizerItem_new_2_1 1326 +#define wxSizerItem_new_5_0 1327 +#define wxSizerItem_new_2_0 1328 +#define wxSizerItem_new_6 1329 +#define wxSizerItem_new_3 1330 +#define wxSizerItem_new_0 1331 +#define wxSizerItem_destruct 1332 +#define wxSizerItem_CalcMin 1333 +#define wxSizerItem_DeleteWindows 1334 +#define wxSizerItem_DetachSizer 1335 +#define wxSizerItem_GetBorder 1336 +#define wxSizerItem_GetFlag 1337 +#define wxSizerItem_GetMinSize 1338 +#define wxSizerItem_GetPosition 1339 +#define wxSizerItem_GetProportion 1340 +#define wxSizerItem_GetRatio 1341 +#define wxSizerItem_GetRect 1342 +#define wxSizerItem_GetSize 1343 +#define wxSizerItem_GetSizer 1344 +#define wxSizerItem_GetSpacer 1345 +#define wxSizerItem_GetUserData 1346 +#define wxSizerItem_GetWindow 1347 +#define wxSizerItem_IsSizer 1348 +#define wxSizerItem_IsShown 1349 +#define wxSizerItem_IsSpacer 1350 +#define wxSizerItem_IsWindow 1351 +#define wxSizerItem_SetBorder 1352 +#define wxSizerItem_SetDimension 1353 +#define wxSizerItem_SetFlag 1354 +#define wxSizerItem_SetInitSize 1355 +#define wxSizerItem_SetMinSize_1 1356 +#define wxSizerItem_SetMinSize_2 1357 +#define wxSizerItem_SetProportion 1358 +#define wxSizerItem_SetRatio_2 1359 +#define wxSizerItem_SetRatio_1_1 1360 +#define wxSizerItem_SetRatio_1_0 1361 +#define wxSizerItem_SetSizer 1362 +#define wxSizerItem_SetSpacer_1 1363 +#define wxSizerItem_SetSpacer_2 1364 +#define wxSizerItem_SetWindow 1365 +#define wxSizerItem_Show 1366 +#define wxBoxSizer_new 1367 +#define wxBoxSizer_GetOrientation 1368 +#define wxBoxSizer_destroy 1369 +#define wxStaticBoxSizer_new_2 1370 +#define wxStaticBoxSizer_new_3 1371 +#define wxStaticBoxSizer_GetStaticBox 1372 +#define wxStaticBoxSizer_destroy 1373 +#define wxGridSizer_new_4 1374 +#define wxGridSizer_new_2 1375 +#define wxGridSizer_GetCols 1376 +#define wxGridSizer_GetHGap 1377 +#define wxGridSizer_GetRows 1378 +#define wxGridSizer_GetVGap 1379 +#define wxGridSizer_SetCols 1380 +#define wxGridSizer_SetHGap 1381 +#define wxGridSizer_SetRows 1382 +#define wxGridSizer_SetVGap 1383 +#define wxGridSizer_destroy 1384 +#define wxFlexGridSizer_new_4 1385 +#define wxFlexGridSizer_new_2 1386 +#define wxFlexGridSizer_AddGrowableCol 1387 +#define wxFlexGridSizer_AddGrowableRow 1388 +#define wxFlexGridSizer_GetFlexibleDirection 1389 +#define wxFlexGridSizer_GetNonFlexibleGrowMode 1390 +#define wxFlexGridSizer_RemoveGrowableCol 1391 +#define wxFlexGridSizer_RemoveGrowableRow 1392 +#define wxFlexGridSizer_SetFlexibleDirection 1393 +#define wxFlexGridSizer_SetNonFlexibleGrowMode 1394 +#define wxFlexGridSizer_destroy 1395 +#define wxGridBagSizer_new 1396 +#define wxGridBagSizer_Add_3_2 1397 +#define wxGridBagSizer_Add_3_1 1398 +#define wxGridBagSizer_Add_4 1399 +#define wxGridBagSizer_Add_1_0 1400 +#define wxGridBagSizer_Add_2_1 1401 +#define wxGridBagSizer_Add_2_0 1402 +#define wxGridBagSizer_Add_3_0 1403 +#define wxGridBagSizer_Add_1_1 1404 +#define wxGridBagSizer_CalcMin 1405 +#define wxGridBagSizer_CheckForIntersection_2 1406 +#define wxGridBagSizer_CheckForIntersection_3 1407 +#define wxGridBagSizer_FindItem_1_1 1408 +#define wxGridBagSizer_FindItem_1_0 1409 +#define wxGridBagSizer_FindItemAtPoint 1410 +#define wxGridBagSizer_FindItemAtPosition 1411 +#define wxGridBagSizer_FindItemWithData 1412 +#define wxGridBagSizer_GetCellSize 1413 +#define wxGridBagSizer_GetEmptyCellSize 1414 +#define wxGridBagSizer_GetItemPosition_1_2 1415 +#define wxGridBagSizer_GetItemPosition_1_1 1416 +#define wxGridBagSizer_GetItemPosition_1_0 1417 +#define wxGridBagSizer_GetItemSpan_1_2 1418 +#define wxGridBagSizer_GetItemSpan_1_1 1419 +#define wxGridBagSizer_GetItemSpan_1_0 1420 +#define wxGridBagSizer_SetEmptyCellSize 1421 +#define wxGridBagSizer_SetItemPosition_2_2 1422 +#define wxGridBagSizer_SetItemPosition_2_1 1423 +#define wxGridBagSizer_SetItemPosition_2_0 1424 +#define wxGridBagSizer_SetItemSpan_2_2 1425 +#define wxGridBagSizer_SetItemSpan_2_1 1426 +#define wxGridBagSizer_SetItemSpan_2_0 1427 +#define wxGridBagSizer_destroy 1428 +#define wxStdDialogButtonSizer_new 1429 +#define wxStdDialogButtonSizer_AddButton 1430 +#define wxStdDialogButtonSizer_Realize 1431 +#define wxStdDialogButtonSizer_SetAffirmativeButton 1432 +#define wxStdDialogButtonSizer_SetCancelButton 1433 +#define wxStdDialogButtonSizer_SetNegativeButton 1434 +#define wxStdDialogButtonSizer_destroy 1435 +#define wxFont_new_0 1436 +#define wxFont_new_1 1437 +#define wxFont_new_5 1438 +#define wxFont_destruct 1440 +#define wxFont_IsFixedWidth 1441 +#define wxFont_GetDefaultEncoding 1442 +#define wxFont_GetFaceName 1443 +#define wxFont_GetFamily 1444 +#define wxFont_GetNativeFontInfoDesc 1445 +#define wxFont_GetNativeFontInfoUserDesc 1446 +#define wxFont_GetPointSize 1447 +#define wxFont_GetStyle 1448 +#define wxFont_GetUnderlined 1449 +#define wxFont_GetWeight 1450 +#define wxFont_Ok 1451 +#define wxFont_SetDefaultEncoding 1452 +#define wxFont_SetFaceName 1453 +#define wxFont_SetFamily 1454 +#define wxFont_SetPointSize 1455 +#define wxFont_SetStyle 1456 +#define wxFont_SetUnderlined 1457 +#define wxFont_SetWeight 1458 +#define wxToolTip_Enable 1459 +#define wxToolTip_SetDelay 1460 +#define wxToolTip_new 1461 +#define wxToolTip_SetTip 1462 +#define wxToolTip_GetTip 1463 +#define wxToolTip_GetWindow 1464 +#define wxToolTip_destroy 1465 +#define wxButton_new_3 1467 +#define wxButton_new_0 1468 +#define wxButton_destruct 1469 +#define wxButton_Create 1470 +#define wxButton_GetDefaultSize 1471 +#define wxButton_SetDefault 1472 +#define wxButton_SetLabel 1473 +#define wxBitmapButton_new_4 1475 +#define wxBitmapButton_new_0 1476 +#define wxBitmapButton_Create 1477 +#define wxBitmapButton_GetBitmapDisabled 1478 +#define wxBitmapButton_GetBitmapFocus 1480 +#define wxBitmapButton_GetBitmapLabel 1482 +#define wxBitmapButton_GetBitmapSelected 1484 +#define wxBitmapButton_SetBitmapDisabled 1486 +#define wxBitmapButton_SetBitmapFocus 1487 +#define wxBitmapButton_SetBitmapLabel 1488 +#define wxBitmapButton_SetBitmapSelected 1489 +#define wxBitmapButton_destroy 1490 +#define wxToggleButton_new_0 1491 +#define wxToggleButton_new_4 1492 +#define wxToggleButton_Create 1493 +#define wxToggleButton_GetValue 1494 +#define wxToggleButton_SetValue 1495 +#define wxToggleButton_destroy 1496 +#define wxCalendarCtrl_new_0 1497 +#define wxCalendarCtrl_new_3 1498 +#define wxCalendarCtrl_Create 1499 +#define wxCalendarCtrl_destruct 1500 +#define wxCalendarCtrl_SetDate 1501 +#define wxCalendarCtrl_GetDate 1502 +#define wxCalendarCtrl_EnableYearChange 1503 +#define wxCalendarCtrl_EnableMonthChange 1504 +#define wxCalendarCtrl_EnableHolidayDisplay 1505 +#define wxCalendarCtrl_SetHeaderColours 1506 +#define wxCalendarCtrl_GetHeaderColourFg 1507 +#define wxCalendarCtrl_GetHeaderColourBg 1508 +#define wxCalendarCtrl_SetHighlightColours 1509 +#define wxCalendarCtrl_GetHighlightColourFg 1510 +#define wxCalendarCtrl_GetHighlightColourBg 1511 +#define wxCalendarCtrl_SetHolidayColours 1512 +#define wxCalendarCtrl_GetHolidayColourFg 1513 +#define wxCalendarCtrl_GetHolidayColourBg 1514 +#define wxCalendarCtrl_GetAttr 1515 +#define wxCalendarCtrl_SetAttr 1516 +#define wxCalendarCtrl_SetHoliday 1517 +#define wxCalendarCtrl_ResetAttr 1518 +#define wxCalendarCtrl_HitTest 1519 +#define wxCalendarDateAttr_new_0 1520 +#define wxCalendarDateAttr_new_2_1 1521 +#define wxCalendarDateAttr_new_2_0 1522 +#define wxCalendarDateAttr_SetTextColour 1523 +#define wxCalendarDateAttr_SetBackgroundColour 1524 +#define wxCalendarDateAttr_SetBorderColour 1525 +#define wxCalendarDateAttr_SetFont 1526 +#define wxCalendarDateAttr_SetBorder 1527 +#define wxCalendarDateAttr_SetHoliday 1528 +#define wxCalendarDateAttr_HasTextColour 1529 +#define wxCalendarDateAttr_HasBackgroundColour 1530 +#define wxCalendarDateAttr_HasBorderColour 1531 +#define wxCalendarDateAttr_HasFont 1532 +#define wxCalendarDateAttr_HasBorder 1533 +#define wxCalendarDateAttr_IsHoliday 1534 +#define wxCalendarDateAttr_GetTextColour 1535 +#define wxCalendarDateAttr_GetBackgroundColour 1536 +#define wxCalendarDateAttr_GetBorderColour 1537 +#define wxCalendarDateAttr_GetFont 1538 +#define wxCalendarDateAttr_GetBorder 1539 +#define wxCalendarDateAttr_destroy 1540 +#define wxCheckBox_new_4 1542 +#define wxCheckBox_new_0 1543 +#define wxCheckBox_Create 1544 +#define wxCheckBox_GetValue 1545 +#define wxCheckBox_Get3StateValue 1546 +#define wxCheckBox_Is3rdStateAllowedForUser 1547 +#define wxCheckBox_Is3State 1548 +#define wxCheckBox_IsChecked 1549 +#define wxCheckBox_SetValue 1550 +#define wxCheckBox_Set3StateValue 1551 +#define wxCheckBox_destroy 1552 +#define wxCheckListBox_new_0 1553 +#define wxCheckListBox_new_3 1555 +#define wxCheckListBox_Check 1556 +#define wxCheckListBox_IsChecked 1557 +#define wxCheckListBox_destroy 1558 +#define wxChoice_new_3 1561 +#define wxChoice_new_0 1562 +#define wxChoice_destruct 1564 +#define wxChoice_Create 1566 +#define wxChoice_Delete 1567 +#define wxChoice_GetColumns 1568 +#define wxChoice_SetColumns 1569 +#define wxComboBox_new_0 1570 +#define wxComboBox_new_3 1572 +#define wxComboBox_destruct 1573 +#define wxComboBox_Create 1575 +#define wxComboBox_CanCopy 1576 +#define wxComboBox_CanCut 1577 +#define wxComboBox_CanPaste 1578 +#define wxComboBox_CanRedo 1579 +#define wxComboBox_CanUndo 1580 +#define wxComboBox_Copy 1581 +#define wxComboBox_Cut 1582 +#define wxComboBox_GetInsertionPoint 1583 +#define wxComboBox_GetLastPosition 1584 +#define wxComboBox_GetValue 1585 +#define wxComboBox_Paste 1586 +#define wxComboBox_Redo 1587 +#define wxComboBox_Replace 1588 +#define wxComboBox_Remove 1589 +#define wxComboBox_SetInsertionPoint 1590 +#define wxComboBox_SetInsertionPointEnd 1591 +#define wxComboBox_SetSelection_1 1592 +#define wxComboBox_SetSelection_2 1593 +#define wxComboBox_SetValue 1594 +#define wxComboBox_Undo 1595 +#define wxGauge_new_0 1596 +#define wxGauge_new_4 1597 +#define wxGauge_Create 1598 +#define wxGauge_GetBezelFace 1599 +#define wxGauge_GetRange 1600 +#define wxGauge_GetShadowWidth 1601 +#define wxGauge_GetValue 1602 +#define wxGauge_IsVertical 1603 +#define wxGauge_SetBezelFace 1604 +#define wxGauge_SetRange 1605 +#define wxGauge_SetShadowWidth 1606 +#define wxGauge_SetValue 1607 +#define wxGauge_Pulse 1608 +#define wxGauge_destroy 1609 +#define wxGenericDirCtrl_new_0 1610 +#define wxGenericDirCtrl_new_2 1611 +#define wxGenericDirCtrl_destruct 1612 +#define wxGenericDirCtrl_Create 1613 +#define wxGenericDirCtrl_Init 1614 +#define wxGenericDirCtrl_CollapseTree 1615 +#define wxGenericDirCtrl_ExpandPath 1616 +#define wxGenericDirCtrl_GetDefaultPath 1617 +#define wxGenericDirCtrl_GetPath 1618 +#define wxGenericDirCtrl_GetFilePath 1619 +#define wxGenericDirCtrl_GetFilter 1620 +#define wxGenericDirCtrl_GetFilterIndex 1621 +#define wxGenericDirCtrl_GetRootId 1622 +#define wxGenericDirCtrl_GetTreeCtrl 1623 +#define wxGenericDirCtrl_ReCreateTree 1624 +#define wxGenericDirCtrl_SetDefaultPath 1625 +#define wxGenericDirCtrl_SetFilter 1626 +#define wxGenericDirCtrl_SetFilterIndex 1627 +#define wxGenericDirCtrl_SetPath 1628 +#define wxStaticBox_new_4 1630 +#define wxStaticBox_new_0 1631 +#define wxStaticBox_Create 1632 +#define wxStaticBox_destroy 1633 +#define wxStaticLine_new_2 1635 +#define wxStaticLine_new_0 1636 +#define wxStaticLine_Create 1637 +#define wxStaticLine_IsVertical 1638 +#define wxStaticLine_GetDefaultSize 1639 +#define wxStaticLine_destroy 1640 +#define wxListBox_new_3 1643 +#define wxListBox_new_0 1644 +#define wxListBox_destruct 1646 +#define wxListBox_Create 1648 +#define wxListBox_Deselect 1649 +#define wxListBox_GetSelections 1650 +#define wxListBox_InsertItems 1651 +#define wxListBox_IsSelected 1652 #define wxListBox_Set 1653 #define wxListBox_HitTest 1654 #define wxListBox_SetFirstItem_1_0 1655 diff --git a/lib/wx/c_src/wxePrintout.cpp b/lib/wx/c_src/wxe_callback_impl.cpp index fc8782ba95..e06f68dcbf 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(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; +} + + // 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..1c355e4d38 --- /dev/null +++ b/lib/wx/c_src/wxe_callback_impl.h @@ -0,0 +1,93 @@ +/* + * %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); + +/* 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(long item1, long item2, long 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 c765c866c2..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 @@ -67,6 +67,7 @@ void push_command(int op,char * buf,int len, wxe_data *); void meta_command(int what, wxe_data *sd); void * wxe_ps_init(); +void * wxe_ps_init2(); extern ErlDrvPort WXE_DRV_PORT_HANDLE; extern ErlDrvTermData WXE_DRV_PORT; @@ -88,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 6bbb0dfa13..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: @@ -33,36 +35,4 @@ public: void initEventTable(); int wxeEventTypeFromAtom(char *etype_atom); -/* Fun Callback id */ -class wxeCallbackData : public wxObject -{ -public: - wxeCallbackData(ErlDrvTermData caller, void *req, char *req_type, - int funcb, int skip_ev, wxeErlTerm * userData); - ~wxeCallbackData(); - ErlDrvTermData listener; - int fun_id; - void * obj; - char class_name[40]; - int skip; - wxeErlTerm * user_data; -}; - -/* 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);} - void forward(wxEvent& event); - ~wxeEvtListener() { - ((WxeApp *)wxTheApp)->clearPtr(this); - // fprintf(stderr, "Deleteing %x\r\n", (unsigned int) this); fflush(stderr); - }; - ErlDrvTermData port; -}; - #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 adfee8da73..5964ccfd00 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 @@ -30,16 +30,12 @@ // Ok ugly but needed for wxBufferedDC crash workaround #define private public #include <wx/dcbuffer.h> - -#if defined(__WXMSW__) - #include <wx/msw/private.h> // for wxSetInstance -#endif - #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,115 +104,54 @@ 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); - - // ErlDrvSysInfo einfo; - // driver_system_info(&einfo, sizeof(ErlDrvSysInfo)); - // 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 - - 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; - } -} - -wxFrame * dummy_window; - -void create_dummy_window() { - dummy_window = new wxFrame(NULL,-1, wxT("wx driver"), - wxPoint(0,0), wxSize(5,5), - wxFRAME_NO_TASKBAR); - - wxMenuBar * menubar = new wxMenuBar(); - dummy_window->SetMenuBar(menubar); - // wx-2.9 Don't delete the app menubar correctly - dummy_window->Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, - (wxObjectEventFunction) (wxEventFunction) &WxeApp::dummy_close); - dummy_window->Connect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, - (wxObjectEventFunction) (wxEventFunction) &WxeApp::dummy_close); - dummy_window->Show(true); - // dummy_window->Show(false); -} - -// wxMac really wants a top level window which command-q quits if there are no -// windows open, and this will kill the thread, so restart the dummy_window each -// time a we receive a close. -void WxeApp::dummy_close(wxEvent& Ev) { - if(Ev.GetEventType() == wxEVT_CLOSE_WINDOW) { - create_dummy_window(); - } +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(); } +/* ************************************************************ + * Init WxeApp the application emulator + * ************************************************************/ -// Init wx-widgets thread bool WxeApp::OnInit() { - wxe_ps_init(); global_me = new wxeMemEnv(); wxe_batch = new wxList; wxe_batch_cb_saved = new wxList; cb_buff = NULL; + recurse_level = 0; + delayed_cleanup = new wxList; + delayed_delete = new wxList; - // wxIdleEvent::SetMode(wxIDLE_PROCESS_SPECIFIED); Hmm printpreview doesn't work in 2.9 with this + wxe_ps_init2(); + // wxIdleEvent::SetMode(wxIDLE_PROCESS_SPECIFIED); // Hmm printpreview doesn't work in 2.9 with this - this->Connect(wxID_ANY, wxEVT_IDLE, - (wxObjectEventFunction) (wxEventFunction) &WxeApp::idle); - this->Connect(CREATE_PORT, wxeEVT_META_COMMAND, - (wxObjectEventFunction) (wxEventFunction) &WxeApp::newMemEnv); - this->Connect(DELETE_PORT, wxeEVT_META_COMMAND, - (wxObjectEventFunction) (wxEventFunction) &WxeApp::destroyMemEnv); - this->Connect(WXE_SHUTDOWN, wxeEVT_META_COMMAND, - (wxObjectEventFunction) (wxEventFunction) &WxeApp::shutdown); + Connect(wxID_ANY, wxEVT_IDLE, (wxObjectEventFunction) (wxEventFunction) &WxeApp::idle); + Connect(CREATE_PORT, wxeEVT_META_COMMAND,(wxObjectEventFunction) (wxEventFunction) &WxeApp::newMemEnv); + Connect(DELETE_PORT, wxeEVT_META_COMMAND,(wxObjectEventFunction) (wxEventFunction) &WxeApp::destroyMemEnv); + Connect(WXE_SHUTDOWN, wxeEVT_META_COMMAND,(wxObjectEventFunction) (wxEventFunction) &WxeApp::shutdown); // fprintf(stderr, "Size void* %d: long %d long long %d int64 %d \r\n", // sizeof(void *), sizeof(long), sizeof(long long), sizeof(wxInt64)); initEventTable(); wxInitAllImageHandlers(); - /* Create a dummy window so wxWidgets don't automagicly quits the main loop - after the last window */ -#ifdef __DARWIN__ - create_dummy_window(); -#else - SetExitOnFrameDelete(false); +#ifdef _MACOSX + /* Create a default MenuBar so that we can intercept the quit command */ + wxMenuBar *macMB = new wxMenuBar; + wxMenuBar::MacSetCommonMenuBar(macMB); + macMB->MacInstallMenuBar(); + macMB->Connect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, + (wxObjectEventFunction) (wxEventFunction) &WxeApp::dummy_close); #endif + SetExitOnFrameDelete(false); + init_nonconsts(global_me, init_caller); erl_drv_mutex_lock(wxe_status_m); wxe_status = WXE_INITIATED; @@ -325,19 +161,19 @@ bool WxeApp::OnInit() } void WxeApp::shutdown(wxeMetaCommand& Ecmd) { -#ifdef __DARWIN__ - delete dummy_window; -#endif 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(); } /* ************************************************************ @@ -354,28 +190,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) { - 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); @@ -427,7 +286,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)) { @@ -459,6 +318,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)) { @@ -471,7 +331,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: @@ -506,7 +367,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); @@ -543,7 +404,8 @@ 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; @@ -562,26 +424,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* + delayed_cleanup->Append(Ecmd.Clone()); + } else { delete win; } } } } } + + if(recurse_level > 0) + return; + // First pass, delete all top parents/windows of all linked objects // fprintf(stderr, "close port %x\r\n", Ecmd.port);fflush(stderr); @@ -806,147 +675,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,void * req, char *req_type, - int funcb, int skip_ev, wxeErlTerm * userData) - : wxObject() -{ - listener = caller; - obj = req; - fun_id = funcb; - strcpy(class_name, req_type); - skip = skip_ev; - user_data = userData; -} - -wxeCallbackData::~wxeCallbackData() { - // fprintf(stderr, "CBD Deleteing %x %s\r\n", (unsigned int) this, class_name); fflush(stderr); - if(user_data) { - delete user_data; - } -} - -/* **************************************************************************** - * 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..bb54961edd 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,119 +32,16 @@ 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; -}; - -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, wxGLCanvas*, wxIntegerHash, wxIntegerEqual, wxeGLC); -WX_DECLARE_HASH_MAP(ErlDrvTermData, wxeMemEnv*, wxIntegerHash, wxIntegerEqual, wxeMemMap); +#include "wxe_helpers.h" +#include "wxe_callback_impl.h" +#include "wxe_memory.h" +#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 *, wxString *); // For debugging and error msgs class WxeApp : public wxApp { @@ -158,101 +60,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); - + 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 diff --git a/lib/wx/c_src/wxe_ps_init.c b/lib/wx/c_src/wxe_ps_init.c index 541d188098..d000e242de 100644 --- a/lib/wx/c_src/wxe_ps_init.c +++ b/lib/wx/c_src/wxe_ps_init.c @@ -19,6 +19,7 @@ #include <stdio.h> #include "wxe_driver.h" + /* Platform specific initialisation stuff */ #ifdef _MACOSX @@ -30,34 +31,63 @@ extern OSErr CPSSetProcessName (ProcessSerialNumber *psn, char *processname); void * wxe_ps_init() { ProcessSerialNumber psn; - NSAutoreleasePool *pool; // Enable GUI - GetCurrentProcess(&psn); - char *app_title = getenv("WX_APP_TITLE"); - // Undocumented function (but no documented way of doing this exists) - CPSSetProcessName(&psn, app_title?app_title:"Erlang"); - TransformProcessType(&psn, kProcessTransformToForegroundApplication); - SetFrontProcess(&psn); - // Enable Cocoa calls from Carbon app - NSApplicationLoad(); + if(!GetCurrentProcess(&psn)) { + TransformProcessType(&psn, kProcessTransformToForegroundApplication); +#ifdef MAC_OS_X_VERSION_10_6 + [[NSRunningApplication currentApplication] activateWithOptions: + (NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps)]; +#else + SetFrontProcess(&psn); +#endif + } + return (void *) 0; +} + +int is_packaged_app() { + // Can get lost in when execing around, we use the name instead + /* if(mainBundle) { */ + /* return (CFBundleGetValueForInfoDictionaryKey(mainBundle, CFSTR("CFBundlePackageType")) != nil); */ + /* } */ +#ifdef MAC_OS_X_VERSION_10_6 + NSString * appName = [[NSRunningApplication currentApplication] localizedName]; + return (strncmp("beam", [appName UTF8String], 4) != 0); +#else + return 0; +#endif +} + +void * wxe_ps_init2() { + NSAutoreleasePool *pool; + ProcessSerialNumber psn; // Setup and enable gui pool = [[NSAutoreleasePool alloc] init]; - - NSApplication *app = [NSApplication sharedApplication]; - // Load and set icon - NSMutableString *file = [[NSMutableString alloc] init]; - [file appendFormat:@"%s/%s", erl_wx_privdir, "erlang-logo64.png"]; - NSImage *icon = [[NSImage alloc] initWithContentsOfFile: file]; - [app setApplicationIconImage: icon]; + if( !is_packaged_app() ) { + // Undocumented function (but no documented way of doing this exists) + char *app_title = getenv("WX_APP_TITLE"); + if(!GetCurrentProcess(&psn)) { + CPSSetProcessName(&psn, app_title?app_title:"Erlang"); + } + // Load and set icon + NSMutableString *file = [[NSMutableString alloc] init]; + [file appendFormat:@"%s/%s", erl_wx_privdir, "erlang-logo64.png"]; + NSImage *icon = [[NSImage alloc] initWithContentsOfFile: file]; + [NSApp setApplicationIconImage: icon]; + }; - return (void *) pool; + return pool; } + /* _MACOSX */ #else -void * wxe_ps_init() +void * wxe_ps_init() +{ + return (void *) 0; +} +void * wxe_ps_init2() { return (void *) 0; } -#endif +#endif diff --git a/lib/wx/c_src/wxe_return.cpp b/lib/wx/c_src/wxe_return.cpp index d50a74ac9d..aebf6bae1b 100644 --- a/lib/wx/c_src/wxe_return.cpp +++ b/lib/wx/c_src/wxe_return.cpp @@ -66,9 +66,7 @@ int wxeReturn::send() { #ifdef DEBUG if(res == -1) { - wxString msg; - msg.Printf(wxT("Failed to send return or event msg")); - send_msg("internal_error", &msg); + fprintf(stderr, "Failed to send return or event msg\r\n"); } #endif |