| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/gtk1/combobox.h
- // Purpose:
- // Author: Robert Roebling
- // Created: 01/02/97
- // Copyright: (c) 1998 Robert Roebling
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef __GTKCOMBOBOXH__
- #define __GTKCOMBOBOXH__
- #include "wx/defs.h"
- #if wxUSE_COMBOBOX
- #include "wx/object.h"
- //-----------------------------------------------------------------------------
- // classes
- //-----------------------------------------------------------------------------
- class WXDLLIMPEXP_FWD_CORE wxComboBox;
- //-----------------------------------------------------------------------------
- // global data
- //-----------------------------------------------------------------------------
- extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[];
- extern WXDLLIMPEXP_BASE const wxChar* wxEmptyString;
- //-----------------------------------------------------------------------------
- // wxComboBox
- //-----------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxComboBox :
- public wxWindowWithItems<wxControl, wxComboBoxBase>
- {
- public:
- inline wxComboBox() {}
- inline wxComboBox(wxWindow *parent, wxWindowID id,
- const wxString& value = wxEmptyString,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- int n = 0, const wxString choices[] = (const wxString *) NULL,
- long style = 0,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxComboBoxNameStr)
- {
- Create(parent, id, value, pos, size, n, choices, style, validator, name);
- }
- inline wxComboBox(wxWindow *parent, wxWindowID id,
- const wxString& value,
- const wxPoint& pos,
- const wxSize& size,
- const wxArrayString& choices,
- long style = 0,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxComboBoxNameStr)
- {
- Create(parent, id, value, pos, size, choices, style, validator, name);
- }
- virtual ~wxComboBox();
- bool Create(wxWindow *parent, wxWindowID id,
- const wxString& value = wxEmptyString,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- int n = 0, const wxString choices[] = (const wxString *) NULL,
- long style = 0,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxComboBoxNameStr);
- bool Create(wxWindow *parent, wxWindowID id,
- const wxString& value,
- const wxPoint& pos,
- const wxSize& size,
- const wxArrayString& choices,
- long style = 0,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxComboBoxNameStr);
- void DoClear();
- void DoDeleteOneItem(unsigned int n);
- virtual int FindString(const wxString& s, bool bCase = false) const;
- int GetSelection() const;
- int GetCurrentSelection() const;
- virtual wxString GetString(unsigned int n) const;
- wxString GetStringSelection() const;
- virtual unsigned int GetCount() const;
- virtual void SetSelection(int n);
- virtual void SetString(unsigned int n, const wxString &text);
- wxString GetValue() const { return DoGetValue(); }
- void SetValue(const wxString& value);
- void WriteText(const wxString& value);
- void Copy();
- void Cut();
- void Paste();
- bool CanCopy() const;
- bool CanCut() const;
- bool CanPaste() const;
- void SetInsertionPoint( long pos );
- void SetInsertionPointEnd() { SetInsertionPoint( -1 ); }
- long GetInsertionPoint() const;
- virtual wxTextPos GetLastPosition() const;
- void Remove(long from, long to) { Replace(from, to, wxEmptyString); }
- void Replace( long from, long to, const wxString& value );
- void SetSelection( long from, long to );
- void GetSelection( long* from, long* to ) const;
- void SetEditable( bool editable );
- void Undo() ;
- void Redo() ;
- bool CanUndo() const;
- bool CanRedo() const;
- void SelectAll();
- bool IsEditable() const ;
- bool HasSelection() const ;
- // implementation
- virtual void SetFocus();
- void OnSize( wxSizeEvent &event );
- void OnChar( wxKeyEvent &event );
- // Standard event handling
- void OnCut(wxCommandEvent& event);
- void OnCopy(wxCommandEvent& event);
- void OnPaste(wxCommandEvent& event);
- void OnUndo(wxCommandEvent& event);
- void OnRedo(wxCommandEvent& event);
- void OnDelete(wxCommandEvent& event);
- void OnSelectAll(wxCommandEvent& event);
- void OnUpdateCut(wxUpdateUIEvent& event);
- void OnUpdateCopy(wxUpdateUIEvent& event);
- void OnUpdatePaste(wxUpdateUIEvent& event);
- void OnUpdateUndo(wxUpdateUIEvent& event);
- void OnUpdateRedo(wxUpdateUIEvent& event);
- void OnUpdateDelete(wxUpdateUIEvent& event);
- void OnUpdateSelectAll(wxUpdateUIEvent& event);
- bool m_ignoreNextUpdate:1;
- wxList m_clientDataList;
- wxList m_clientObjectList;
- int m_prevSelection;
- void DisableEvents();
- void EnableEvents();
- GtkWidget* GetConnectWidget();
- bool IsOwnGtkWindow( GdkWindow *window );
- void DoApplyWidgetStyle(GtkRcStyle *style);
- static wxVisualAttributes
- GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
- protected:
- virtual int DoInsertItems(const wxArrayStringsAdapter& items,
- unsigned int pos,
- void **clientData, wxClientDataType type);
- virtual void DoSetItemClientData(unsigned int n, void* clientData);
- virtual void* DoGetItemClientData(unsigned int n) const;
- virtual wxSize DoGetBestSize() const;
- // implement wxTextEntry pure virtual methods
- virtual wxString DoGetValue() const;
- virtual wxWindow *GetEditableWindow() { return this; }
- // Widgets that use the style->base colour for the BG colour should
- // override this and return true.
- virtual bool UseGTKStyleBase() const { return true; }
- private:
- DECLARE_DYNAMIC_CLASS_NO_COPY(wxComboBox)
- DECLARE_EVENT_TABLE()
- };
- #endif
- #endif
- // __GTKCOMBOBOXH__
|