| 1 | This directory contains copies of the scintilla/src and |
| 2 | scintilla/include directories from the Scintilla source distribution. |
| 3 | All other code needed to implement Scintilla on top of wxWidgets is |
| 4 | located in the directory above this one. |
| 5 | |
| 6 | The current version of the Scintilla code is 3.21 |
| 7 | |
| 8 | These are the basic steps needed to update the version of Scintilla used by wxSTC. |
| 9 | |
| 10 | 1. Copy include, lexers, lexlib and src folders to src/stc/scintilla |
| 11 | |
| 12 | 2. Examine diffs between the new src/stc/scintilla/Scintilla.iface |
| 13 | file and the version in SVN. You should get familiar especially with |
| 14 | new method names or constants because some of them may need to be |
| 15 | tweaked to conform to similar naming patterns already used. (See step |
| 16 | #5 below.) |
| 17 | |
| 18 | 3. Identify new source files and update build/bakefiles/scintilla.bkl |
| 19 | accordingly so the new files will get built. Use bakefile to |
| 20 | regenerate the makefiles and project files. |
| 21 | |
| 22 | 4. Examine changes in src/stc/scintilla/include/Platform.h and |
| 23 | identify new or changed APIs that the wx "platform" will need to |
| 24 | provide to the rest of the Scintilla code. Implement those changes in |
| 25 | src/stc/PlatWX.cpp. You can use the win32 version of the platform |
| 26 | code from the Scintilla source tree as a guide if needed. You may |
| 27 | have to make a few tweaks to src/stc/scintilla/include/Platform.h to |
| 28 | keep the compile working cleanly, but try to keep them minimal. |
| 29 | |
| 30 | 5. Edit the gen_iface.py file. This is where the Scintilla.iface file |
| 31 | is read and the code for stc.h and stc.cpp is generated. For all new |
| 32 | methods or constant names check if there are similarly named things |
| 33 | defined here that are having something special done to them, and then |
| 34 | do the same sort of thing for those new items. For example if there |
| 35 | is a new AutoCFoo method, I add the line in gen_iface.py that will |
| 36 | cause the AutoCompFoo name to be used instead. The same for any |
| 37 | methods dealing with "Fore" or "Back" colors, they are renamed to |
| 38 | Foreground and Background. If there is a new method that could be |
| 39 | considered a "command function" (something that takes no parameters |
| 40 | and could conceivably be bound to a key event) then I make sure that |
| 41 | it's ID is in cmdValues or included in one of the existing ranges in |
| 42 | that list. |
| 43 | |
| 44 | 6. Run gen_iface.py. |
| 45 | |
| 46 | 7. Any other new methods should be checked to ensure that the |
| 47 | generated code is appropriate for what they are doing and if not then |
| 48 | in gen_iface.py you can supply custom function bodies for them |
| 49 | instead. |
| 50 | |
| 51 | 8. Add documentation code for any new methods to |
| 52 | interface/wx/stc/stc.h, also check any documentation-only changes from |
| 53 | Scintilla.iface and see if the existing docs for those items should be |
| 54 | updated too. |
| 55 | |
| 56 | 9. Build and test. |
| 57 | |
| 58 | 10. Submit patch to wxTrac. |