virtual void Replace(long from, long to, const wxString& value);
virtual void Remove(long from, long to);
- // clears the dirty flag
+ // sets/clears the dirty flag
+ virtual void MarkDirty();
virtual void DiscardEdits();
virtual void SetMaxLength(unsigned long len);
virtual void ShowPosition(long pos);
+#ifdef __WXGTK20__
+ virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const;
+ virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt,
+ wxTextCoord *col,
+ wxTextCoord *row) const
+ {
+ return wxTextCtrlBase::HitTest(pt, col, row);
+ }
+#endif // __WXGTK20__
+
// Clipboard operations
virtual void Copy();
virtual void Cut();
GtkWidget* GetConnectWidget();
bool IsOwnGtkWindow( GdkWindow *window );
- void ApplyWidgetStyle();
+ void DoApplyWidgetStyle(GtkRcStyle *style);
void CalculateScrollbar();
void OnInternalIdle();
+
+#ifdef __WXGTK20__
+ void SetUpdateFont(bool WXUNUSED(update)) { }
+#else // !__WXGTK20__
+ void SetUpdateFont(bool update) { m_updateFont = update; }
void UpdateFontIfNeeded();
+#endif // __WXGTK20__/!__WXGTK20__
void SetModified() { m_modified = TRUE; }
// avoid horrible flicker/scrolling back and forth
virtual void Freeze();
virtual void Thaw();
-
+
// textctrl specific scrolling
virtual bool ScrollLines(int lines);
virtual bool ScrollPages(int pages);
// should we ignore the changed signal? always resets the flag
bool IgnoreTextUpdate();
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
protected:
virtual wxSize DoGetBestSize() const;
// scroll position changed
bool DoScroll(GtkAdjustment *adj, int diff);
+ // Widgets that use the style->base colour for the BG colour should
+ // override this and return true.
+ virtual bool UseGTKStyleBase() const { return true; }
+
+#ifdef __WXGTK20__
+ // has the control been frozen by Freeze()?
+ bool IsFrozen() const { return m_frozenness > 0; }
+#endif
+
private:
// change the font for everything in this control
void ChangeFontGlobally();
bool m_modified:1;
bool m_vScrollbarVisible:1;
+#ifndef __WXGTK20__
bool m_updateFont:1;
+#endif // !__WXGTK20__
bool m_ignoreNextUpdate:1;
+#ifdef __WXGTK20__
+ // Our text buffer. Convenient, and holds the buffer while using
+ // a dummy one when m_frozenness > 0
+ GtkTextBuffer *m_buffer;
+
+ // number of calls to Freeze() minus number of calls to Thaw()
+ unsigned int m_frozenness;
+#endif
+
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxTextCtrl);
};