1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/motif/combobox.h 3// Purpose: wxComboBox class 4// Author: Julian Smart 5// Modified by: 6// Created: 17/09/98 7// RCS-ID: $Id: combobox.h 41020 2006-09-05 20:47:48Z VZ $ 8// Copyright: (c) Julian Smart 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_COMBOBOX_H_ 13#define _WX_COMBOBOX_H_ 14 15#include "wx/choice.h" 16 17// Combobox item 18class WXDLLEXPORT wxComboBox: public wxChoice 19{ 20 DECLARE_DYNAMIC_CLASS(wxComboBox) 21 22public: 23 wxComboBox() { m_inSetSelection = false; } 24 virtual ~wxComboBox(); 25 26 inline wxComboBox(wxWindow *parent, wxWindowID id, 27 const wxString& value = wxEmptyString, 28 const wxPoint& pos = wxDefaultPosition, 29 const wxSize& size = wxDefaultSize, 30 int n = 0, const wxString choices[] = NULL, 31 long style = 0, 32 const wxValidator& validator = wxDefaultValidator, 33 const wxString& name = wxComboBoxNameStr) 34 { 35 m_inSetSelection = false; 36 Create(parent, id, value, pos, size, n, choices, 37 style, validator, name); 38 } 39 40 inline wxComboBox(wxWindow *parent, wxWindowID id, 41 const wxString& value, 42 const wxPoint& pos, 43 const wxSize& size, 44 const wxArrayString& choices, 45 long style = 0, 46 const wxValidator& validator = wxDefaultValidator, 47 const wxString& name = wxComboBoxNameStr) 48 { 49 m_inSetSelection = false; 50 Create(parent, id, value, pos, size, choices, 51 style, validator, name); 52 } 53 54 bool Create(wxWindow *parent, wxWindowID id, 55 const wxString& value = wxEmptyString, 56 const wxPoint& pos = wxDefaultPosition, 57 const wxSize& size = wxDefaultSize, 58 int n = 0, const wxString choices[] = NULL, 59 long style = 0, 60 const wxValidator& validator = wxDefaultValidator, 61 const wxString& name = wxComboBoxNameStr); 62 63 bool Create(wxWindow *parent, wxWindowID id, 64 const wxString& value, 65 const wxPoint& pos, 66 const wxSize& size, 67 const wxArrayString& choices, 68 long style = 0, 69 const wxValidator& validator = wxDefaultValidator, 70 const wxString& name = wxComboBoxNameStr); 71 72 // implementation of wxControlWithItems 73 virtual int DoAppend(const wxString& item); 74 virtual int DoInsert(const wxString& item, unsigned int pos); 75 virtual void Delete(unsigned int n); 76 virtual void Clear(); 77 virtual int GetSelection() const ; 78 virtual void SetSelection(int n); 79 virtual int FindString(const wxString& s, bool bCase = false) const; 80 virtual wxString GetString(unsigned int n) const ; 81 virtual void SetString(unsigned int n, const wxString& s); 82 83 // Text field functions 84 virtual wxString GetValue() const ; 85 virtual void SetValue(const wxString& value); 86 87 // Clipboard operations 88 virtual void Copy(); 89 virtual void Cut(); 90 virtual void Paste(); 91 virtual void SetInsertionPoint(long pos); 92 virtual void SetInsertionPointEnd(); 93 virtual long GetInsertionPoint() const ; 94 virtual wxTextPos GetLastPosition() const ; 95 virtual void Replace(long from, long to, const wxString& value); 96 virtual void Remove(long from, long to); 97 virtual void SetSelection(long from, long to); 98 virtual void SetEditable(bool editable); 99 100 // Implementation 101 virtual void ChangeFont(bool keepOriginalSize = true); 102 virtual void ChangeBackgroundColour(); 103 virtual void ChangeForegroundColour(); 104 WXWidget GetTopWidget() const { return m_mainWidget; } 105 WXWidget GetMainWidget() const { return m_mainWidget; } 106 107 virtual wxSize DoGetBestSize() const; 108protected: 109 virtual void DoSetSize(int x, int y, 110 int width, int height, 111 int sizeFlags = wxSIZE_AUTO); 112private: 113 // only implemented for native combo box 114 void AdjustDropDownListSize(); 115 116 // implementation detail, should really be private 117public: 118 bool m_inSetSelection; 119}; 120 121#endif 122// _WX_COMBOBOX_H_ 123