11class ScintillaGTKAccessible;
13#define OBJECT_CLASS GObjectClass
18 _ScintillaObject *
sci;
47 CLIPFORMAT cfColumnSelect;
64#if GTK_CHECK_VERSION(3,0,0)
84 static void ClassInit(
OBJECT_CLASS *object_class, GtkWidgetClass *widget_class, GtkContainerClass *container_class);
109 bool SetIdle(
bool on)
override;
127 std::string
CaseMapString(
const std::string &s,
int caseMapping)
override;
128 int KeyDefault(
int key,
int modifiers)
override;
130 void Copy()
override;
132 void Paste()
override;
134 void AddToPopUp(
const char *
label,
int cmd = 0,
bool enabled =
true)
override;
139 void InsertSelection(GtkClipboard *clipBoard, GtkSelectionData *selectionData);
142 void ReceivedClipboard(GtkClipboard *clipBoard, GtkSelectionData *selection_data) noexcept;
148 static
void ClipboardGetSelection(GtkClipboard *clip, GtkSelectionData *selection_data, guint info,
void *data);
154 void Resize(
int width,
int height);
158 static
void Realize(GtkWidget *widget);
160 static
void UnRealize(GtkWidget *widget);
162 static
void Map(GtkWidget *widget);
164 static
void UnMap(GtkWidget *widget);
166 static gint
FocusIn(GtkWidget *widget, GdkEventFocus *event);
168 static gint
FocusOut(GtkWidget *widget, GdkEventFocus *event);
169 static
void SizeRequest(GtkWidget *widget, GtkRequisition *requisition);
170#if GTK_CHECK_VERSION(3,0,0)
171 static void GetPreferredWidth(GtkWidget *widget, gint *minimalWidth, gint *naturalWidth);
172 static void GetPreferredHeight(GtkWidget *widget, gint *minimalHeight, gint *naturalHeight);
174 static void SizeAllocate(GtkWidget *widget, GtkAllocation *allocation);
175#if GTK_CHECK_VERSION(3,0,0)
176 gboolean DrawTextThis(cairo_t *cr);
177 static gboolean DrawText(GtkWidget *widget, cairo_t *cr,
ScintillaGTK *sciThis);
178 gboolean DrawThis(cairo_t *cr);
179 static gboolean DrawMain(GtkWidget *widget, cairo_t *cr);
183 gboolean
Expose(GtkWidget *widget, GdkEventExpose *ose);
184 static gboolean
ExposeMain(GtkWidget *widget, GdkEventExpose *ose);
186 void ForAll(GtkCallback callback, gpointer callback_data);
187 static void MainForAll(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data);
192 static gint
Press(GtkWidget *widget, GdkEventButton *event);
193 static gint
MouseRelease(GtkWidget *widget, GdkEventButton *event);
194 static gint
ScrollEvent(GtkWidget *widget, GdkEventScroll *event);
195 static gint
Motion(GtkWidget *widget, GdkEventMotion *event);
196 gboolean
KeyThis(GdkEventKey *event);
197 static gboolean
KeyPress(GtkWidget *widget, GdkEventKey *event);
198 static gboolean
KeyRelease(GtkWidget *widget, GdkEventKey *event);
199#if GTK_CHECK_VERSION(3,0,0)
200 gboolean DrawPreeditThis(GtkWidget *widget, cairo_t *cr);
201 static gboolean DrawPreedit(GtkWidget *widget, cairo_t *cr,
ScintillaGTK *sciThis);
219 static void StyleSetText(GtkWidget *widget, GtkStyle *previous,
void *);
220 static void RealizeText(GtkWidget *widget,
void *);
221 static void Dispose(GObject *
object);
222 static void Destroy(GObject *
object);
223 static void SelectionReceived(GtkWidget *widget, GtkSelectionData *selection_data,
225 static void SelectionGet(GtkWidget *widget, GtkSelectionData *selection_data,
226 guint info, guint time);
227 static gint
SelectionClear(GtkWidget *widget, GdkEventSelection *selection_event);
228 gboolean
DragMotionThis(GdkDragContext *context, gint x, gint y, guint dragtime);
229 static gboolean
DragMotion(GtkWidget *widget, GdkDragContext *context,
230 gint x, gint y, guint dragtime);
231 static void DragLeave(GtkWidget *widget, GdkDragContext *context,
233 static void DragEnd(GtkWidget *widget, GdkDragContext *context);
234 static gboolean
Drop(GtkWidget *widget, GdkDragContext *context,
235 gint x, gint y, guint time);
237 gint x, gint y, GtkSelectionData *selection_data, guint info, guint time);
238 static void DragDataGet(GtkWidget *widget, GdkDragContext *context,
239 GtkSelectionData *selection_data, guint info, guint time);
240 static gboolean
TimeOut(gpointer ptt);
242 static gboolean
StyleIdle(gpointer pSci);
248#if GTK_CHECK_VERSION(3,0,0)
249 static gboolean DrawCT(GtkWidget *widget, cairo_t *cr,
CallTip *ctip);
251 static gboolean
ExposeCT(GtkWidget *widget, GdkEventExpose *ose,
CallTip *ctip);
299std::string
ConvertText(
const char *s,
size_t len,
const char *charSetDest,
300 const char *charSetSource,
bool transliterations,
bool silent=
false);
GObjectWatcher & operator=(const GObjectWatcher &)=delete
GObjectWatcher & operator=(GObjectWatcher &&)=delete
GObjectWatcher(GObject *obj)
void WeakNotifyThis(GObject *obj G_GNUC_UNUSED)
static void WeakNotify(gpointer data, GObject *obj)
virtual ~GObjectWatcher()
GObjectWatcher(GObjectWatcher &&)=delete
GObjectWatcher(const GObjectWatcher &)=delete
A geometric rectangle class.
static void Realize(GtkWidget *widget)
void SetVerticalScrollPos() override
static void PopUpCB(GtkMenuItem *menuItem, ScintillaGTK *sciThis)
sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) override
static gboolean TimeOut(gpointer ptt)
bool ModifyScrollBars(Sci::Line nMax, Sci::Line nPage) override
PRectangle GetClientRectangle() const override
void SetMouseCapture(bool on) override
static GdkAtom atomString
static gint ScrollEvent(GtkWidget *widget, GdkEventScroll *event)
bool PaintContains(PRectangle rc) override
void ScrollText(Sci::Line linesToMove) override
void FineTickerCancel(TickReason reason) override
static void MainForAll(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data)
static AtkObject * GetAccessible(GtkWidget *widget)
static void ScrollSignal(GtkAdjustment *adj, ScintillaGTK *sciThis)
ScintillaGTK & operator=(const ScintillaGTK &)=delete
static gboolean Drop(GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time)
static gint FocusIn(GtkWidget *widget, GdkEventFocus *event)
void PreeditChangedWindowedThis()
gboolean DragMotionThis(GdkDragContext *context, gint x, gint y, guint dragtime)
static gboolean KeyRelease(GtkWidget *widget, GdkEventKey *event)
static gboolean KeyPress(GtkWidget *widget, GdkEventKey *event)
void CommitThis(char *commitStr)
static void Map(GtkWidget *widget)
gboolean ExposePreeditThis(GtkWidget *widget, GdkEventExpose *ose)
CaseFolder * CaseFolderForEncoding() override
void NotifyParent(SCNotification scn) override
static gint Press(GtkWidget *widget, GdkEventButton *event)
int horizontalScrollBarHeight
void ReceivedSelection(GtkSelectionData *selection_data)
gboolean Expose(GtkWidget *widget, GdkEventExpose *ose)
ScintillaGTK & operator=(ScintillaGTK &&)=delete
static void DragEnd(GtkWidget *widget, GdkDragContext *context)
bool AbandonPaint() override
If painting then abandon the painting because a wider redraw is needed.
int rectangularSelectionModifier
static gint MouseRelease(GtkWidget *widget, GdkEventButton *event)
void NotifyFocus(bool focus) override
static gint FocusOut(GtkWidget *widget, GdkEventFocus *event)
GtkAdjustment * adjustmenth
void UnclaimSelection(GdkEventSelection *selection_event)
static void UnRealize(GtkWidget *widget)
ScintillaGTK(_ScintillaObject *sci_)
void QueueIdleWork(WorkNeeded::workItems items, Sci::Position upTo) override
static void DragDataGet(GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time)
gboolean ExposeTextThis(GtkWidget *widget, GdkEventExpose *ose)
GtkAdjustment * adjustmentv
void AddToPopUp(const char *label, int cmd=0, bool enabled=true) override
static gint Motion(GtkWidget *widget, GdkEventMotion *event)
static gboolean StyleIdle(gpointer pSci)
GUnicodeScript lastNonCommonScript
void CopyToClipboard(const SelectionText &selectedText) override
ScintillaGTK(const ScintillaGTK &)=delete
bool ValidCodePage(int codePage) const override
static void SizeRequest(GtkWidget *widget, GtkRequisition *requisition)
static void ScrollHSignal(GtkAdjustment *adj, ScintillaGTK *sciThis)
static void DragDataReceived(GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time)
bool FineTickerRunning(TickReason reason) override
int KeyDefault(int key, int modifiers) override
void ReconfigureScrollBars() override
void CreateCallTipWindow(PRectangle rc) override
void ClaimSelection() override
GtkIMContext * im_context
static void Commit(GtkIMContext *context, char *str, ScintillaGTK *sciThis)
static void RealizeText(GtkWidget *widget, void *)
void UnRealizeThis(GtkWidget *widget)
int verticalScrollBarWidth
gint64 lastWheelMouseTime
static void ClassInit(GObjectClass *object_class, GtkWidgetClass *widget_class, GtkContainerClass *container_class)
GObject * MainObject() const noexcept
ScintillaGTK(ScintillaGTK &&)=delete
static void SelectionGet(GtkWidget *widget, GtkSelectionData *selection_data, guint info, guint time)
static void ClipboardClearSelection(GtkClipboard *clip, void *data)
Sci::Position TargetAsUTF8(char *text) const
static void UnMap(GtkWidget *widget)
void Resize(int width, int height)
static void PrimarySelection(GtkWidget *widget, GtkSelectionData *selection_data, guint info, guint time_stamp, ScintillaGTK *sciThis)
static void DragLeave(GtkWidget *widget, GdkDragContext *context, guint time)
static void PreeditChanged(GtkIMContext *context, ScintillaGTK *sciThis)
void SetHorizontalScrollPos() override
gint FocusInThis(GtkWidget *widget)
bool DragThreshold(Point ptStart, Point ptNow) override
static gboolean DragMotion(GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint dragtime)
void StoreOnClipboard(SelectionText *clipText)
static void StyleSetText(GtkWidget *widget, GtkStyle *previous, void *)
void ReceivedClipboard(GtkClipboard *clipBoard, GtkSelectionData *selection_data) noexcept
static void ClipboardGetSelection(GtkClipboard *clip, GtkSelectionData *selection_data, guint info, void *data)
GtkWidgetClass * parentClass
void SetCandidateWindowPos()
static gboolean PrimaryClear(GtkWidget *widget, GdkEventSelection *event, ScintillaGTK *sciThis)
unsigned int linesPerScroll
static void GetSelection(GtkSelectionData *selection_data, guint info, SelectionText *text)
bool HaveMouseCapture() override
static gboolean ExposePreedit(GtkWidget *widget, GdkEventExpose *ose, ScintillaGTK *sciThis)
TimeThunk timers[tickDwell+1]
void StartDrag() override
static gboolean IdleCallback(gpointer pSci)
void NotifyURIDropped(const char *list)
gint PressThis(GdkEventButton *event)
static void Dispose(GObject *object)
static gboolean ExposeMain(GtkWidget *widget, GdkEventExpose *ose)
gboolean KeyThis(GdkEventKey *event)
gint FocusOutThis(GtkWidget *widget)
static gint SelectionClear(GtkWidget *widget, GdkEventSelection *selection_event)
static void Destroy(GObject *object)
static sptr_t DirectFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam)
static GdkAtom atomUTF8Mime
static ScintillaGTK * FromWidget(GtkWidget *widget) noexcept
void NotifyKey(int key, int modifiers)
static gboolean ExposeText(GtkWidget *widget, GdkEventExpose *ose, ScintillaGTK *sciThis)
void InsertSelection(GtkClipboard *clipBoard, GtkSelectionData *selectionData)
void GetGtkSelectionText(GtkSelectionData *selectionData, SelectionText &selText)
void RealizeThis(GtkWidget *widget)
sptr_t DefWndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) override
gint lastWheelMouseDirection
void FineTickerStart(TickReason reason, int millis, int tolerance) override
void RequestSelection(GdkAtom atomSelection)
void DrawImeIndicator(int indicator, int len)
static bool IsStringAtom(GdkAtom type)
static void SizeAllocate(GtkWidget *widget, GtkAllocation *allocation)
void PreeditChangedInlineThis()
void ReceivedDrop(GtkSelectionData *selection_data)
static GdkAtom atomDROPFILES_DND
void DisplayCursor(Window::Cursor c) override
static void SelectionReceived(GtkWidget *widget, GtkSelectionData *selection_data, guint time)
const char * CharacterSetID() const
static gboolean PressCT(GtkWidget *widget, GdkEventButton *event, ScintillaGTK *sciThis)
void MoveImeCarets(int pos)
std::string CaseMapString(const std::string &s, int caseMapping) override
void ForAll(GtkCallback callback, gpointer callback_data)
bool SetIdle(bool on) override
void SetDocPointer(Document *document) override
static GdkAtom atomUriList
Sci::Position EncodedFromUTF8(const char *utf8, char *encoded) const
bool OwnPrimarySelection()
AtkObject * GetAccessibleThis(GtkWidget *widget)
static gboolean ExposeCT(GtkWidget *widget, GdkEventExpose *ose, CallTip *ctip)
void NotifyChange() override
Hold a piece of text selected for copying or dragging, along with encoding and selection format infor...
Class to hide the details of window manipulation.
Styling buffer using one element for each run rather than using a filled buffer.
std::string ConvertText(const char *s, size_t len, const char *charSetDest, const char *charSetSource, bool transliterations, bool silent)