wxWidgets/src/stc
Artur Wieczorek f311807112 Handle EVT_CONTEXT_MENU directly in wxSTC (wxOSX)
A simulation of context menu event by handling directly EVT_RIGHT_UP was implemented in wxSTC in 451c5cc7b9, but later on, EVT_CONTEXT_MENU generation in wxOSX was fixed in 524c47aa3a so  simulation is no longer necessary and this event can be directly handled in wxSTC.
2017-07-02 13:02:13 +02:00
..
scintilla Fix Scintilla compilation: include <algorithm> required for std::lower_bound 2017-06-25 13:22:33 +03:00
descrip.mms Update OpenVMS compile support 2017-02-22 16:47:02 +01:00
gen_docs.py Handle EVT_CONTEXT_MENU directly in wxSTC (wxOSX) 2017-07-02 13:02:13 +02:00
gen_iface.py Fix gen_iface.py to be compatible with python <2.7 2017-06-25 13:42:05 +03:00
PlatWX.cpp Fix MSVC14 warnings about shadowed variables in wxSTC 2017-04-09 21:29:31 +02:00
PlatWX.h Minimal tweaks and additions to get wxSTC compiling successfully again, with Scintilla 3.21 2012-08-14 05:14:46 +00:00
README.txt Fix assorted typos in comments and other non-code. 2013-09-17 15:25:59 +00:00
ScintillaWX.cpp Propagate EVT_CONTEXT_MENU if standard Scintilla context menu wasn't displayed 2017-03-16 23:36:54 +01:00
ScintillaWX.h Propagate EVT_CONTEXT_MENU if standard Scintilla context menu wasn't displayed 2017-03-16 23:36:54 +01:00
stc_i18n.cpp Remove all lines containing cvs/svn "$Id$" keyword. 2013-07-26 16:02:46 +00:00
stc.cpp Handle EVT_CONTEXT_MENU directly in wxSTC (wxOSX) 2017-07-02 13:02:13 +02:00
stc.cpp.in Handle EVT_CONTEXT_MENU directly in wxSTC (wxOSX) 2017-07-02 13:02:13 +02:00
stc.h.in Handle EVT_CONTEXT_MENU directly in wxSTC (wxOSX) 2017-07-02 13:02:13 +02:00
stc.interface.h.in Fix "ont" (instead of "one") typo in wxSTC 2017-04-18 12:25:46 +02:00

This contrib is the wxStyledTextCtrl, which is a wrapper around the
Scintilla edit control.  (See www.scintilla.org)

There is still VERY MUCH to be done, most notable of which is a more
advanced sample that exercises more of the code.  (I haven't tested
AutoComplete or CallTips, or most of the event types at all yet.)  And
also documentation, adding wrappers for some new scintilla
functionality, building and testing on wxGTK, etc.  Be patient, it all
will get there soon.



Let me describe a bit about the architecture I am implementing...
Obviously there is the Platform layer which implements the various
platform classes by using wxWindows classes and filling in where
needed.  Then there is a ScintillaWX class that is derived from
ScintillaBase and implements the necessary virtual methods that
Scintilla needs to fully function.  This class however is not meant to
ever be used directly by wx programmers.  I call it one end of the
bridge between the wx and Scintilla worlds.  The other end of the
bridge is a class called wxStyledTextCtrl that looks, feels and acts
like other classes in wxWindows.  Here is a diagram:


 +------------------+          +-------------------+
 | wxStyledTextCtrl |--bridge--|    ScintillaWX    |
 +------------------+          +-------------------+
                               |   ScintillaBase   |
                               +-------------------+
                               |       Editor      |
                               +-------------------+
                               |     PlatWX        |
                               +-------------------+


wxStyledTextCtrl derives from wxControl so it has a window that can be
drawn upon.  When a wxStyledTextCtrl is constructed it constructs a
ScintillaWX for itself and passes itself to the scintilla object to be
set as the wMain and wDraw attributes.  All method calls on the STC
are sent over the bridge in the form of calls to ScintillaWX::WndProc.
All notifications are sent back over the bridge and turned into
wxEvents.


Robin

[SOLARIS NOTE - ellers@iinet.net.au - June 2002]

On sunos5 (sparc) the stc code breaks if optimisation is turned on (the
default). If your release build breaks but the debug build is fine, 
try reconfiguring with --disable-optimise and rebuilding. If you are using
wxPython you will also need to disable optimised compiling. To do this I
had to hand modify the python makefile in (prefix)/lib/python2.2/config/Makefile
to remove optimisation flags.