📄 srchctlg.h
字号:
/////////////////////////////////////////////////////////////////////////////// Name: wx/generic/srchctlg.h// Purpose: generic wxSearchCtrl class// Author: Vince Harron// Modified by:// Created: 2006-02-19// RCS-ID: // Copyright: Vince Harron// Licence: wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef _WX_GENERIC_SEARCHCTRL_H_#define _WX_GENERIC_SEARCHCTRL_H_#if wxUSE_SEARCHCTRL#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "srchctlg.h"#endif#include "wx/bitmap.h"// ----------------------------------------------------------------------------class WXDLLEXPORT wxSearchButton;class WXDLLEXPORT wxSearchTextCtrl;class WXDLLEXPORT wxSearchCtrlBase : public wxTextCtrlBase{public: wxSearchCtrlBase() {} virtual ~wxSearchCtrlBase() {} // search control virtual void SetMenu( wxMenu* menu ) = 0; virtual wxMenu* GetMenu() = 0; // get/set options virtual void SetSearchButtonVisible( bool show ) = 0; virtual bool GetSearchButtonVisible() const = 0; virtual void SetCancelButtonVisible( bool show ) = 0; virtual bool GetCancelButtonVisible() const = 0;protected:};// ----------------------------------------------------------------------------// wxSearchCtrl is a combination of wxTextCtrl and wxSearchButton// ----------------------------------------------------------------------------class WXDLLEXPORT 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); ~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); // get/set search button menu // -------------------------- virtual void SetMenu( wxMenu* menu ); virtual wxMenu* GetMenu(); // get/set search options // ---------------------- virtual void SetSearchButtonVisible( bool show ); virtual bool GetSearchButtonVisible() const; virtual void SetCancelButtonVisible( bool show ); virtual bool GetCancelButtonVisible() const; // accessors // --------- virtual wxString GetValue() const; virtual void SetValue(const wxString& value); 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); // search control generic only void SetSearchBitmap( const wxBitmap& bitmap ); void SetSearchMenuBitmap( const wxBitmap& bitmap ); void SetCancelBitmap( const wxBitmap& bitmap );protected: virtual void DoSetValue(const wxString& value, int flags = 0); // 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 ); virtual void OnSearchButton( wxCommandEvent& event ); void OnSetFocus( wxFocusEvent& event );private: friend class wxSearchButton; void PopupSearchMenu(); // the subcontrols wxSearchTextCtrl *m_text; wxSearchButton *m_searchButton; wxSearchButton *m_cancelButton; wxMenu *m_menu; bool m_searchButtonVisible; bool m_cancelButtonVisible; bool m_searchBitmapUser; bool m_searchMenuBitmapUser; bool m_cancelBitmapUser; wxBitmap m_searchBitmap; wxBitmap m_searchMenuBitmap; wxBitmap m_cancelBitmap;private: DECLARE_DYNAMIC_CLASS(wxSearchCtrl) DECLARE_EVENT_TABLE()};#endif // wxUSE_SEARCHCTRL#endif // _WX_GENERIC_SEARCHCTRL_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -