diff options
Diffstat (limited to 'gtk/ScintillaGTK.cxx')
-rw-r--r-- | gtk/ScintillaGTK.cxx | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx index bd4c98ccc..f150a9297 100644 --- a/gtk/ScintillaGTK.cxx +++ b/gtk/ScintillaGTK.cxx @@ -125,6 +125,8 @@ private: static gint TimeOut(ScintillaGTK *sciThis); static void PopUpCB(ScintillaGTK *sciThis, guint action, GtkWidget *widget); static gint ExposeCT(GtkWidget *widget, GdkEventExpose *ose, CallTip *ct); + static long DirectFunction(ScintillaGTK *sciThis, + unsigned int iMessage, unsigned long wParam, long lParam); }; enum { @@ -327,6 +329,12 @@ long ScintillaGTK::WndProc(unsigned int iMessage, unsigned long wParam, long lPa gtk_widget_grab_focus(wMain.GetID()); break; + case SCI_GETDIRECTFUNCTION: + return reinterpret_cast<long>(DirectFunction); + + case SCI_GETDIRECTPOINTER: + return reinterpret_cast<long>(this); + default: return ScintillaBase::WndProc(iMessage,wParam,lParam); } @@ -464,12 +472,12 @@ void ScintillaGTK::ReconfigureScrollBars() { void ScintillaGTK::NotifyChange() { gtk_signal_emit(GTK_OBJECT(sci), scintilla_signals[COMMAND_SIGNAL], - MAKELONG(ctrlID, SCEN_CHANGE), wMain.GetID()); + Platform::LongFromTwoShorts(ctrlID, SCEN_CHANGE), wMain.GetID()); } void ScintillaGTK::NotifyFocus(bool focus) { gtk_signal_emit(GTK_OBJECT(sci), scintilla_signals[COMMAND_SIGNAL], - MAKELONG(ctrlID, focus ? SCEN_SETFOCUS : SCEN_KILLFOCUS), wMain.GetID()); + Platform::LongFromTwoShorts(ctrlID, focus ? SCEN_SETFOCUS : SCEN_KILLFOCUS), wMain.GetID()); } void ScintillaGTK::NotifyParent(SCNotification scn) { @@ -718,7 +726,7 @@ gint ScintillaGTK::MoveResize(GtkWidget *, GtkAllocation *allocation, ScintillaG } gint ScintillaGTK::Press(GtkWidget *, GdkEventButton *event, ScintillaGTK *sciThis) { - Platform::DebugPrintf("Press %x time=%d state = %x button = %x\n",sciThis,event->time, event->state, event->button); + //Platform::DebugPrintf("Press %x time=%d state = %x button = %x\n",sciThis,event->time, event->state, event->button); // Do not use GTK+ double click events as Scintilla has its own double click detection if (event->type != GDK_BUTTON_PRESS) return FALSE; @@ -1026,6 +1034,11 @@ gint ScintillaGTK::ExposeCT(GtkWidget *widget, GdkEventExpose * /*ose*/, CallTip return TRUE; } +long ScintillaGTK::DirectFunction( + ScintillaGTK *sciThis, unsigned int iMessage, unsigned long wParam, long lParam) { + return sciThis->WndProc(iMessage, wParam, lParam); +} + long scintilla_send_message(ScintillaObject *sci, int iMessage, int wParam, int lParam) { ScintillaGTK *psci = reinterpret_cast<ScintillaGTK *>(sci->pscin); return psci->WndProc(iMessage, wParam, lParam); |