diff options
-rw-r--r-- | doc/ScintillaHistory.html | 1 | ||||
-rw-r--r-- | gtk/ScintillaGTK.cxx | 25 |
2 files changed, 23 insertions, 3 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 3505a09b3..118d90e28 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -145,6 +145,7 @@ <li>Sean O'Dell</li> <li>Stefanos Togoulidis</li> <li>Hans Hagen</li> + <li>Jim Cape</li> </ul> <p> Images used in GTK+ version diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index d421d5326..21b938a69 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -123,7 +123,7 @@ class ScintillaGTK : public ScintillaBase { public: ScintillaGTK(_ScintillaObject *sci_); virtual ~ScintillaGTK(); - static void ClassInit(GtkObjectClass* object_class, GtkWidgetClass *widget_class); + static void ClassInit(GtkObjectClass* object_class, GtkWidgetClass *widget_class, GtkContainerClass *container_class); private: virtual void Initialise(); @@ -183,6 +183,8 @@ private: gint Expose(GtkWidget *widget, GdkEventExpose *ose); static gint ExposeMain(GtkWidget *widget, GdkEventExpose *ose); static void Draw(GtkWidget *widget, GdkRectangle *area); + void ForAll(GtkCallback callback, gpointer callback_data); + static void MainForAll(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); static void ScrollSignal(GtkAdjustment *adj, ScintillaGTK *sciThis); static void ScrollHSignal(GtkAdjustment *adj, ScintillaGTK *sciThis); @@ -456,6 +458,20 @@ void ScintillaGTK::UnMap(GtkWidget *widget) { sciThis->UnMapThis(); } +void ScintillaGTK::ForAll(GtkCallback callback, gpointer callback_data) { + (*callback) (PWidget(wText), callback_data); + (*callback) (PWidget(scrollbarv), callback_data); + (*callback) (PWidget(scrollbarh), callback_data); +} + +void ScintillaGTK::MainForAll(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { + ScintillaGTK *sciThis = ScintillaFromWidget((GtkWidget *)container); + + if (callback != NULL && include_internals) { + sciThis->ForAll(callback, callback_data); + } +} + #ifdef INTERNATIONAL_INPUT gint ScintillaGTK::CursorMoved(GtkWidget *widget, int xoffset, int yoffset, ScintillaGTK *sciThis) { if (GTK_WIDGET_HAS_FOCUS(widget) && gdk_im_ready() && sciThis->ic && @@ -2065,7 +2081,7 @@ guint scintilla_get_type() { return scintilla_type; } -void ScintillaGTK::ClassInit(GtkObjectClass* object_class, GtkWidgetClass *widget_class) { +void ScintillaGTK::ClassInit(GtkObjectClass* object_class, GtkWidgetClass *widget_class, GtkContainerClass *container_class) { // Define default signal handlers for the class: Could move more // of the signal handlers here (those that currently attached to wDraw // in Initialise() may require coordinate translation?) @@ -2107,6 +2123,8 @@ void ScintillaGTK::ClassInit(GtkObjectClass* object_class, GtkWidgetClass *widge widget_class->unrealize = UnRealize; widget_class->map = Map; widget_class->unmap = UnMap; + + container_class->forall = MainForAll; } #if GTK_MAJOR_VERSION < 2 @@ -2121,6 +2139,7 @@ void ScintillaGTK::ClassInit(GtkObjectClass* object_class, GtkWidgetClass *widge static void scintilla_class_init(ScintillaClass *klass) { GtkObjectClass *object_class = (GtkObjectClass*) klass; GtkWidgetClass *widget_class = (GtkWidgetClass*) klass; + GtkContainerClass *container_class = (GtkContainerClass*) klass; parent_class = (GtkWidgetClass*) gtk_type_class(gtk_container_get_type()); @@ -2148,7 +2167,7 @@ static void scintilla_class_init(ScintillaClass *klass) { klass->command = NULL; klass->notify = NULL; - ScintillaGTK::ClassInit(object_class, widget_class); + ScintillaGTK::ClassInit(object_class, widget_class, container_class); } static void scintilla_init(ScintillaObject *sci) { |