X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/41a499cd92710e3c954fa6e23ce3438cf26f5fcf..5cf1cb1006d6b5762d96c07ee3892883607460c7:/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 f35fb2931b..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 @@ -202,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]; @@ -228,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);', @@ -297,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]; @@ -582,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 = [] @@ -629,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 @@ -644,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) @@ -664,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) @@ -674,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('') @@ -707,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) #---------------------------------------------------------------------------- @@ -827,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)