Derive from wxTextEntry instead of wxTextCtrlBase

This commit is contained in:
ali kettab
2019-12-29 18:59:18 +01:00
committed by Vadim Zeitlin
parent c09db9c23d
commit 020b6ebcb8
3 changed files with 8 additions and 90 deletions

View File

@@ -67,26 +67,6 @@ public:
virtual void SetDescriptiveText(const wxString& text) wxOVERRIDE; virtual void SetDescriptiveText(const wxString& text) wxOVERRIDE;
virtual wxString GetDescriptiveText() const wxOVERRIDE; virtual wxString GetDescriptiveText() const wxOVERRIDE;
// accessors
// ---------
virtual int GetLineLength(long lineNo) const wxOVERRIDE;
virtual wxString GetLineText(long lineNo) const wxOVERRIDE;
virtual int GetNumberOfLines() const wxOVERRIDE;
virtual bool IsModified() const wxOVERRIDE;
// sets/clears the dirty flag
virtual void MarkDirty() wxOVERRIDE;
virtual void DiscardEdits() wxOVERRIDE;
// translate between the position (which is just an index in the text ctrl
// considering all its contents as a single strings) and (x, y) coordinates
// which represent column and line.
virtual long XYToPosition(long x, long y) const wxOVERRIDE;
virtual bool PositionToXY(long pos, long *x, long *y) const wxOVERRIDE;
virtual void ShowPosition(long pos) wxOVERRIDE;
virtual void Clear() wxOVERRIDE; virtual void Clear() wxOVERRIDE;
#if wxUSE_MENUS #if wxUSE_MENUS
@@ -95,7 +75,6 @@ public:
private: private:
// From wxTextEntry: // From wxTextEntry:
virtual wxWindow *GetEditableWindow() wxOVERRIDE { return this; }
virtual GtkEditable *GetEditable() const wxOVERRIDE; virtual GtkEditable *GetEditable() const wxOVERRIDE;
@@ -127,7 +106,6 @@ private:
wxMenu *m_menu; wxMenu *m_menu;
#endif // wxUSE_MENUS #endif // wxUSE_MENUS
bool m_modified;
bool m_cancelButtonVisible; bool m_cancelButtonVisible;
wxDECLARE_DYNAMIC_CLASS(wxSearchCtrl); wxDECLARE_DYNAMIC_CLASS(wxSearchCtrl);

View File

@@ -38,7 +38,12 @@
// otherwise. // otherwise.
#define wxUSE_NATIVE_SEARCH_CONTROL 1 #define wxUSE_NATIVE_SEARCH_CONTROL 1
#define wxSearchCtrlBaseBaseClass wxTextCtrlBase class WXDLLIMPEXP_CORE wxGTKSearchCtrlBase
: public wxControl, public wxTextEntry
{
};
#define wxSearchCtrlBaseBaseClass wxGTKSearchCtrlBase
#endif #endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -101,13 +101,13 @@ wx_gtk_icon_press(GtkEntry* WXUNUSED(entry),
// ============================================================================ // ============================================================================
// wxSearchCtrl implementation // wxSearchCtrl implementation
// ============================================================================ // ============================================================================
wxBEGIN_EVENT_TABLE(wxSearchCtrl, wxSearchCtrlBase) wxBEGIN_EVENT_TABLE(wxSearchCtrl, wxControl)
EVT_CHAR(wxSearchCtrl::OnChar) EVT_CHAR(wxSearchCtrl::OnChar)
EVT_TEXT(wxID_ANY, wxSearchCtrl::OnText) EVT_TEXT(wxID_ANY, wxSearchCtrl::OnText)
EVT_TEXT_ENTER(wxID_ANY, wxSearchCtrl::OnTextEnter) EVT_TEXT_ENTER(wxID_ANY, wxSearchCtrl::OnTextEnter)
wxEND_EVENT_TABLE() wxEND_EVENT_TABLE()
wxIMPLEMENT_DYNAMIC_CLASS(wxSearchCtrl, wxSearchCtrlBase); wxIMPLEMENT_DYNAMIC_CLASS(wxSearchCtrl, wxControl);
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// creation/destruction // creation/destruction
@@ -225,71 +225,6 @@ void wxSearchCtrl::Clear()
ShowCancelButton(false); ShowCancelButton(false);
} }
bool wxSearchCtrl::IsModified() const
{
return m_modified;
}
void wxSearchCtrl::MarkDirty()
{
m_modified = true;
}
void wxSearchCtrl::DiscardEdits()
{
m_modified = false;
}
bool wxSearchCtrl::PositionToXY(long pos, long *x, long *y ) const
{
if (pos <= GTKGetEntryTextLength(GetEntry()))
{
if ( y )
*y = 0;
if ( x )
*x = pos;
}
else
{
// index out of bounds
return false;
}
return true;
}
long wxSearchCtrl::XYToPosition(long x, long y ) const
{
if ( y != 0 || x > GTKGetEntryTextLength(GetEntry()) )
return -1;
return x;
}
int wxSearchCtrl::GetLineLength(long lineNo) const
{
const wxString str = GetLineText(lineNo);
return (int) str.length();
}
int wxSearchCtrl::GetNumberOfLines() const
{
return 1;
}
wxString wxSearchCtrl::GetLineText( long lineNo ) const
{
if ( lineNo == 0 )
return GetValue();
return wxString();
}
void wxSearchCtrl::ShowPosition( long pos )
{
gtk_editable_set_position(GetEditable(), pos);
}
// search control specific interfaces // search control specific interfaces
// ---------------------------------- // ----------------------------------
#if wxUSE_MENUS #if wxUSE_MENUS