]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/gen_iface.py
Generate the interface file for STC from gen_iface too.
[wxWidgets.git] / src / stc / gen_iface.py
index 805514e134984fbda7ec9328bb4def85addc1307..9db059ea9fe5007f00049e7dd8690ff2faffe283 100755 (executable)
@@ -18,8 +18,10 @@ from fileinput import FileInput
 
 IFACE         = os.path.abspath('./scintilla/include/Scintilla.iface')
 H_TEMPLATE    = os.path.abspath('./stc.h.in')
+IH_TEMPLATE   = os.path.abspath('./stc.interface.h.in')
 CPP_TEMPLATE  = os.path.abspath('./stc.cpp.in')
 H_DEST        = os.path.abspath('../../include/wx/stc/stc.h')
+IH_DEST       = os.path.abspath('../../interface/wx/stc/stc.h')
 CPP_DEST      = os.path.abspath('./stc.cpp')
 if len(sys.argv) > 1 and sys.argv[1] == '--wxpython':
     DOCSTR_DEST   = os.path.abspath('../../../wxPython/src/_stc_gendocs.i')
@@ -932,7 +934,7 @@ constNonGetterMethods = (
 
 #----------------------------------------------------------------------------
 
-def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest, docstr_dest):
+def processIface(iface, h_tmplt, cpp_tmplt, ih_tmplt, h_dest, cpp_dest, docstr_dest, ih_dest):
     curDocStrings = []
     values = []
     methods = []
@@ -979,23 +981,26 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest, docstr_dest):
     data = {}
     data['VALUES'] = processVals(values)
     data['CMDS']   = processVals(cmds)
-    defs, imps, docstrings = processMethods(methods)
+    defs, imps, docstrings, idefs = processMethods(methods)
     data['METHOD_DEFS'] = defs
+    data['METHOD_IDEFS'] = idefs
     data['METHOD_IMPS'] = imps
 
     # get template text
     h_text = open(h_tmplt).read()
+    ih_text = open(ih_tmplt).read()
     cpp_text = open(cpp_tmplt).read()
 
     # do the substitutions
     h_text = h_text % data
     cpp_text = cpp_text % data
+    ih_text = ih_text % data
 
     # write out destination files
     open(h_dest, 'w').write(h_text)
     open(cpp_dest, 'w').write(cpp_text)
     open(docstr_dest, 'w').write(docstrings)
-
+    open(ih_dest, 'w').write(ih_text)
 
 
 def joinWithNewLines(values):
@@ -1009,7 +1014,7 @@ def processVals(values):
         if docs:
             text.append('')
             for x in docs:
-                text.append('// ' + x)
+                text.append('/// ' + x)
         text.append('#define %s %s' % (name, value))
     return joinWithNewLines(text)
 
@@ -1017,6 +1022,7 @@ def processVals(values):
 
 def processMethods(methods):
     defs = []
+    idefs = []
     imps = []
     dstr = []
 
@@ -1046,6 +1052,18 @@ def processMethods(methods):
             theDef = theDef + ';'
         defs.append(theDef)
 
+        # Build the method definition for the interface .h file
+        if docs:
+            idefs.append('')
+            idefs.append('    /**')
+            for x in docs:
+                idefs.append('        ' + x)
+            idefs.append('    */')
+        if name == 'GetCurLine':
+            idefs.append('    wxString GetCurLine(int* linePos=NULL);')
+        else:
+            idefs.append(theDef)
+                     
         # Build the method implementation string
         if docs:
             imps.append('')
@@ -1072,7 +1090,7 @@ def processMethods(methods):
         imps.append(theImp)
 
 
-    return joinWithNewLines(defs), joinWithNewLines(imps), joinWithNewLines(dstr)
+    return joinWithNewLines(defs), joinWithNewLines(imps), joinWithNewLines(dstr), joinWithNewLines(idefs)
 
 
 #----------------------------------------------------------------------------
@@ -1197,7 +1215,7 @@ def main(args):
         sys.exit(1)
 
     # Now just do it
-    processIface(IFACE, H_TEMPLATE, CPP_TEMPLATE, H_DEST, CPP_DEST, DOCSTR_DEST)
+    processIface(IFACE, H_TEMPLATE, CPP_TEMPLATE, IH_TEMPLATE, H_DEST, CPP_DEST, DOCSTR_DEST, IH_DEST)