X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a33203cb9f52a07df4d9c375c33d6cf3103cba7a..728f972bcef8d6b01f5f67cb77060d23098d8877:/contrib/src/stc/gen_iface.py?ds=sidebyside diff --git a/contrib/src/stc/gen_iface.py b/contrib/src/stc/gen_iface.py index 6e0a0aee90..4e0afbb129 100644 --- a/contrib/src/stc/gen_iface.py +++ b/contrib/src/stc/gen_iface.py @@ -21,6 +21,7 @@ H_TEMPLATE = os.path.abspath('./stc.h.in') CPP_TEMPLATE = os.path.abspath('./stc.cpp.in') H_DEST = os.path.abspath('../../include/wx/stc/stc.h') CPP_DEST = os.path.abspath('./stc.cpp') +DOCSTR_DEST = os.path.abspath('../../../wxPython/contrib/stc/_stc_gendocs.i') # Value prefixes to convert @@ -93,6 +94,14 @@ methodOverrideMap = { SendMsg(%s, data.GetDataLen(), (long)data.GetData());''', 0), + 'AppendText' : (0, + 'void %s(const wxString& text);', + + '''void %s(const wxString& text) { + wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(text); + SendMsg(%s, strlen(buf), (long)(const char*)buf);''', + 0), + 'GetViewWS' : ( 'GetViewWhiteSpace', 0, 0, 0), 'SetViewWS' : ( 'SetViewWhiteSpace', 0, 0, 0), @@ -194,6 +203,8 @@ methodOverrideMap = { // convert bmp to a xpm in a string wxMemoryOutputStream strm; wxImage img = bmp.ConvertToImage(); + if (img.HasAlpha()) + img.ConvertAlphaToMask(); img.SaveFile(strm, wxBITMAP_TYPE_XPM); size_t len = strm.GetSize(); char* buff = new char[len+1]; @@ -220,7 +231,8 @@ methodOverrideMap = { 'SetSelBack' : ('SetSelBackground', 0, 0, 0), 'SetCaretFore' : ('SetCaretForeground', 0, 0, 0), 'StyleSetFont' : ('StyleSetFaceName', 0, 0, 0), - + 'StyleSetCharacterSet' : (None, 0, 0, 0), + 'AssignCmdKey' : ('CmdKeyAssign', 'void %s(int key, int modifiers, int cmd);', @@ -289,6 +301,8 @@ methodOverrideMap = { // convert bmp to a xpm in a string wxMemoryOutputStream strm; wxImage img = bmp.ConvertToImage(); + if (img.HasAlpha()) + img.ConvertAlphaToMask(); img.SaveFile(strm, wxBITMAP_TYPE_XPM); size_t len = strm.GetSize(); char* buff = new char[len+1]; @@ -574,7 +588,7 @@ methodOverrideMap = { #---------------------------------------------------------------------------- -def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest): +def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest, docstr_dest): curDocStrings = [] values = [] methods = [] @@ -621,7 +635,7 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest): data = {} data['VALUES'] = processVals(values) data['CMDS'] = processVals(cmds) - defs, imps = processMethods(methods) + defs, imps, docstrings = processMethods(methods) data['METHOD_DEFS'] = defs data['METHOD_IMPS'] = imps @@ -636,6 +650,7 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest): # write out destination files open(h_dest, 'w').write(h_text) open(cpp_dest, 'w').write(cpp_text) + open(docstr_dest, 'w').write(docstrings) @@ -656,6 +671,7 @@ def processVals(values): def processMethods(methods): defs = [] imps = [] + dstr = [] for retType, name, number, param1, param2, docs in methods: retType = retTypeMap.get(retType, retType) @@ -666,6 +682,11 @@ def processMethods(methods): if name is None: continue + # Build docstrings + st = 'DocStr(wxStyledTextCtrl::%s,\n' \ + '"%s", "");\n' % (name, '\n'.join(docs)) + dstr.append(st) + # Build the method definition for the .h file if docs: defs.append('') @@ -699,7 +720,7 @@ def processMethods(methods): imps.append(theImp) - return string.join(defs, '\n'), string.join(imps, '\n') + return '\n'.join(defs), '\n'.join(imps), '\n'.join(dstr) #---------------------------------------------------------------------------- @@ -819,7 +840,7 @@ def main(args): # TODO: parse command line args to replace default input/output files??? # Now just do it - processIface(IFACE, H_TEMPLATE, CPP_TEMPLATE, H_DEST, CPP_DEST) + processIface(IFACE, H_TEMPLATE, CPP_TEMPLATE, H_DEST, CPP_DEST, DOCSTR_DEST)