| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/generic/srchctlg.h
- // Purpose: generic wxSearchCtrl class
- // Author: Vince Harron
- // Created: 2006-02-19
- // Copyright: Vince Harron
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_GENERIC_SEARCHCTRL_H_
- #define _WX_GENERIC_SEARCHCTRL_H_
- #if wxUSE_SEARCHCTRL
- #include "wx/bitmap.h"
- class WXDLLIMPEXP_FWD_CORE wxSearchButton;
- class WXDLLIMPEXP_FWD_CORE wxSearchTextCtrl;
- // ----------------------------------------------------------------------------
- // wxSearchCtrl is a combination of wxTextCtrl and wxSearchButton
- // ----------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxSearchCtrl : public wxSearchCtrlBase
- {
- public:
- // creation
- // --------
- wxSearchCtrl();
- wxSearchCtrl(wxWindow *parent, wxWindowID id,
- const wxString& value = wxEmptyString,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = 0,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxSearchCtrlNameStr);
- virtual ~wxSearchCtrl();
- bool Create(wxWindow *parent, wxWindowID id,
- const wxString& value = wxEmptyString,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = 0,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxSearchCtrlNameStr);
- #if wxUSE_MENUS
- // get/set search button menu
- // --------------------------
- virtual void SetMenu( wxMenu* menu );
- virtual wxMenu* GetMenu();
- #endif // wxUSE_MENUS
- // get/set search options
- // ----------------------
- virtual void ShowSearchButton( bool show );
- virtual bool IsSearchButtonVisible() const;
- virtual void ShowCancelButton( bool show );
- virtual bool IsCancelButtonVisible() const;
- // TODO: In 2.9 these should probably be virtual, and declared in the base class...
- void SetDescriptiveText(const wxString& text);
- wxString GetDescriptiveText() const;
- // accessors
- // ---------
- virtual wxString GetRange(long from, long to) const;
- virtual int GetLineLength(long lineNo) const;
- virtual wxString GetLineText(long lineNo) const;
- virtual int GetNumberOfLines() const;
- virtual bool IsModified() const;
- virtual bool IsEditable() const;
- // more readable flag testing methods
- virtual bool IsSingleLine() const;
- virtual bool IsMultiLine() const;
- // If the return values from and to are the same, there is no selection.
- virtual void GetSelection(long* from, long* to) const;
- virtual wxString GetStringSelection() const;
- // operations
- // ----------
- // editing
- virtual void Clear();
- virtual void Replace(long from, long to, const wxString& value);
- virtual void Remove(long from, long to);
- // load/save the controls contents from/to the file
- virtual bool LoadFile(const wxString& file);
- virtual bool SaveFile(const wxString& file = wxEmptyString);
- // sets/clears the dirty flag
- virtual void MarkDirty();
- virtual void DiscardEdits();
- // set the max number of characters which may be entered in a single line
- // text control
- virtual void SetMaxLength(unsigned long WXUNUSED(len));
- // writing text inserts it at the current position, appending always
- // inserts it at the end
- virtual void WriteText(const wxString& text);
- virtual void AppendText(const wxString& text);
- // insert the character which would have resulted from this key event,
- // return true if anything has been inserted
- virtual bool EmulateKeyPress(const wxKeyEvent& event);
- // text control under some platforms supports the text styles: these
- // methods allow to apply the given text style to the given selection or to
- // set/get the style which will be used for all appended text
- virtual bool SetStyle(long start, long end, const wxTextAttr& style);
- virtual bool GetStyle(long position, wxTextAttr& style);
- virtual bool SetDefaultStyle(const wxTextAttr& style);
- virtual const wxTextAttr& GetDefaultStyle() const;
- // 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;
- virtual bool PositionToXY(long pos, long *x, long *y) const;
- virtual void ShowPosition(long pos);
- // find the character at position given in pixels
- //
- // NB: pt is in device coords (not adjusted for the client area origin nor
- // scrolling)
- virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const;
- virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt,
- wxTextCoord *col,
- wxTextCoord *row) const;
- // Clipboard operations
- virtual void Copy();
- virtual void Cut();
- virtual void Paste();
- virtual bool CanCopy() const;
- virtual bool CanCut() const;
- virtual bool CanPaste() const;
- // Undo/redo
- virtual void Undo();
- virtual void Redo();
- virtual bool CanUndo() const;
- virtual bool CanRedo() const;
- // Insertion point
- virtual void SetInsertionPoint(long pos);
- virtual void SetInsertionPointEnd();
- virtual long GetInsertionPoint() const;
- virtual wxTextPos GetLastPosition() const;
- virtual void SetSelection(long from, long to);
- virtual void SelectAll();
- virtual void SetEditable(bool editable);
- #if 0
- // override streambuf method
- #if wxHAS_TEXT_WINDOW_STREAM
- int overflow(int i);
- #endif // wxHAS_TEXT_WINDOW_STREAM
- // stream-like insertion operators: these are always available, whether we
- // were, or not, compiled with streambuf support
- wxTextCtrl& operator<<(const wxString& s);
- wxTextCtrl& operator<<(int i);
- wxTextCtrl& operator<<(long i);
- wxTextCtrl& operator<<(float f);
- wxTextCtrl& operator<<(double d);
- wxTextCtrl& operator<<(const wxChar c);
- #endif
- // do the window-specific processing after processing the update event
- virtual void DoUpdateWindowUI(wxUpdateUIEvent& event);
- virtual bool ShouldInheritColours() const;
- // wxWindow overrides
- virtual bool SetFont(const wxFont& font);
- virtual bool SetBackgroundColour(const wxColour& colour);
- // search control generic only
- void SetSearchBitmap( const wxBitmap& bitmap );
- void SetCancelBitmap( const wxBitmap& bitmap );
- #if wxUSE_MENUS
- void SetSearchMenuBitmap( const wxBitmap& bitmap );
- #endif // wxUSE_MENUS
- protected:
- virtual void DoSetValue(const wxString& value, int flags);
- virtual wxString DoGetValue() const;
- virtual bool DoLoadFile(const wxString& file, int fileType);
- virtual bool DoSaveFile(const wxString& file, int fileType);
- // override the base class virtuals involved into geometry calculations
- virtual wxSize DoGetBestSize() const;
- virtual void DoMoveWindow(int x, int y, int width, int height);
- virtual void LayoutControls(int x, int y, int width, int height);
- virtual void RecalcBitmaps();
- void Init();
- virtual wxBitmap RenderSearchBitmap( int x, int y, bool renderDrop );
- virtual wxBitmap RenderCancelBitmap( int x, int y );
- void OnCancelButton( wxCommandEvent& event );
- void OnSetFocus( wxFocusEvent& event );
- void OnSize( wxSizeEvent& event );
- bool HasMenu() const
- {
- #if wxUSE_MENUS
- return m_menu != NULL;
- #else // !wxUSE_MENUS
- return false;
- #endif // wxUSE_MENUS/!wxUSE_MENUS
- }
- private:
- friend class wxSearchButton;
- // Implement pure virtual function inherited from wxCompositeWindow.
- virtual wxWindowList GetCompositeWindowParts() const;
- // Position the child controls using the current window size.
- void DoLayoutControls();
- #if wxUSE_MENUS
- void PopupSearchMenu();
- #endif // wxUSE_MENUS
- // the subcontrols
- wxSearchTextCtrl *m_text;
- wxSearchButton *m_searchButton;
- wxSearchButton *m_cancelButton;
- #if wxUSE_MENUS
- wxMenu *m_menu;
- #endif // wxUSE_MENUS
- bool m_searchButtonVisible;
- bool m_cancelButtonVisible;
- bool m_searchBitmapUser;
- bool m_cancelBitmapUser;
- #if wxUSE_MENUS
- bool m_searchMenuBitmapUser;
- #endif // wxUSE_MENUS
- wxBitmap m_searchBitmap;
- wxBitmap m_cancelBitmap;
- #if wxUSE_MENUS
- wxBitmap m_searchMenuBitmap;
- #endif // wxUSE_MENUS
- private:
- DECLARE_DYNAMIC_CLASS(wxSearchCtrl)
- DECLARE_EVENT_TABLE()
- };
- #endif // wxUSE_SEARCHCTRL
- #endif // _WX_GENERIC_SEARCHCTRL_H_
|