combobox.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/osx/combobox.h
  3. // Purpose: wxComboBox class
  4. // Author: Stefan Csomor
  5. // Modified by:
  6. // Created: 1998-01-01
  7. // Copyright: (c) Stefan Csomor
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_COMBOBOX_H_
  11. #define _WX_COMBOBOX_H_
  12. #include "wx/containr.h"
  13. #include "wx/choice.h"
  14. #include "wx/textctrl.h"
  15. WX_DEFINE_ARRAY( char * , wxComboBoxDataArray ) ;
  16. // forward declaration of private implementation classes
  17. class wxComboBoxText;
  18. class wxComboBoxChoice;
  19. class wxComboWidgetImpl;
  20. // Combobox item
  21. class WXDLLIMPEXP_CORE wxComboBox :
  22. public wxWindowWithItems<
  23. #if wxOSX_USE_CARBON
  24. wxNavigationEnabled<wxControl>,
  25. #else
  26. wxControl,
  27. #endif
  28. wxComboBoxBase>
  29. {
  30. DECLARE_DYNAMIC_CLASS(wxComboBox)
  31. public:
  32. virtual ~wxComboBox();
  33. #if wxOSX_USE_CARBON
  34. // forward these functions to all subcontrols
  35. virtual bool Enable(bool enable = true);
  36. virtual bool Show(bool show = true);
  37. #endif
  38. // callback functions
  39. virtual void DelegateTextChanged( const wxString& value );
  40. virtual void DelegateChoice( const wxString& value );
  41. wxComboBox() { }
  42. wxComboBox(wxWindow *parent, wxWindowID id,
  43. const wxString& value = wxEmptyString,
  44. const wxPoint& pos = wxDefaultPosition,
  45. const wxSize& size = wxDefaultSize,
  46. int n = 0, const wxString choices[] = NULL,
  47. long style = 0,
  48. const wxValidator& validator = wxDefaultValidator,
  49. const wxString& name = wxComboBoxNameStr)
  50. {
  51. Create(parent, id, value, pos, size, n, choices, style, validator, name);
  52. }
  53. wxComboBox(wxWindow *parent, wxWindowID id,
  54. const wxString& value,
  55. const wxPoint& pos,
  56. const wxSize& size,
  57. const wxArrayString& choices,
  58. long style = 0,
  59. const wxValidator& validator = wxDefaultValidator,
  60. const wxString& name = wxComboBoxNameStr)
  61. {
  62. Create(parent, id, value, pos, size, choices, style, validator, name);
  63. }
  64. bool Create(wxWindow *parent, wxWindowID id,
  65. const wxString& value = wxEmptyString,
  66. const wxPoint& pos = wxDefaultPosition,
  67. const wxSize& size = wxDefaultSize,
  68. int n = 0, const wxString choices[] = NULL,
  69. long style = 0,
  70. const wxValidator& validator = wxDefaultValidator,
  71. const wxString& name = wxComboBoxNameStr);
  72. bool Create(wxWindow *parent, wxWindowID id,
  73. const wxString& value,
  74. const wxPoint& pos,
  75. const wxSize& size,
  76. const wxArrayString& choices,
  77. long style = 0,
  78. const wxValidator& validator = wxDefaultValidator,
  79. const wxString& name = wxComboBoxNameStr);
  80. virtual int GetSelection() const;
  81. virtual void GetSelection(long *from, long *to) const;
  82. virtual void SetSelection(int n);
  83. virtual void SetSelection(long from, long to);
  84. virtual int FindString(const wxString& s, bool bCase = false) const;
  85. virtual wxString GetString(unsigned int n) const;
  86. virtual wxString GetStringSelection() const;
  87. virtual void SetString(unsigned int n, const wxString& s);
  88. virtual unsigned int GetCount() const;
  89. virtual void SetValue(const wxString& value);
  90. // these methods are provided by wxTextEntry for the native impl.
  91. #if wxOSX_USE_CARBON
  92. // Text field functions
  93. virtual wxString GetValue() const;
  94. virtual void WriteText(const wxString& text);
  95. // Clipboard operations
  96. virtual void Copy();
  97. virtual void Cut();
  98. virtual void Paste();
  99. virtual void SetInsertionPoint(long pos);
  100. virtual void SetInsertionPointEnd();
  101. virtual long GetInsertionPoint() const;
  102. virtual wxTextPos GetLastPosition() const;
  103. virtual void Replace(long from, long to, const wxString& value);
  104. virtual void Remove(long from, long to);
  105. virtual void SetEditable(bool editable);
  106. virtual bool IsEditable() const;
  107. virtual void Undo();
  108. virtual void Redo();
  109. virtual void SelectAll();
  110. virtual bool CanCopy() const;
  111. virtual bool CanCut() const;
  112. virtual bool CanPaste() const;
  113. virtual bool CanUndo() const;
  114. virtual bool CanRedo() const;
  115. virtual wxClientDataType GetClientDataType() const;
  116. virtual wxTextWidgetImpl* GetTextPeer() const;
  117. #endif // wxOSX_USE_CARBON
  118. #if wxOSX_USE_COCOA
  119. virtual void Popup();
  120. virtual void Dismiss();
  121. #endif // wxOSX_USE_COCOA
  122. // osx specific event handling common for all osx-ports
  123. virtual bool OSXHandleClicked( double timestampsec );
  124. #if wxOSX_USE_COCOA
  125. wxComboWidgetImpl* GetComboPeer() const;
  126. #endif
  127. protected:
  128. // List functions
  129. virtual void DoDeleteOneItem(unsigned int n);
  130. virtual void DoClear();
  131. // wxTextEntry functions
  132. #if wxOSX_USE_CARBON
  133. virtual wxString DoGetValue() const;
  134. #endif
  135. virtual wxWindow *GetEditableWindow() { return this; }
  136. // override the base class virtuals involved in geometry calculations
  137. virtual wxSize DoGetBestSize() const;
  138. #if wxOSX_USE_CARBON
  139. virtual void DoMoveWindow(int x, int y, int width, int height);
  140. #endif
  141. virtual int DoInsertItems(const wxArrayStringsAdapter& items,
  142. unsigned int pos,
  143. void **clientData, wxClientDataType type);
  144. virtual void DoSetItemClientData(unsigned int n, void* clientData);
  145. virtual void * DoGetItemClientData(unsigned int n) const;
  146. #if wxOSX_USE_CARBON
  147. virtual void SetClientDataType(wxClientDataType clientDataItemsType);
  148. #endif
  149. virtual void EnableTextChangedEvents(bool enable);
  150. // the subcontrols
  151. wxComboBoxText* m_text;
  152. wxComboBoxChoice* m_choice;
  153. wxComboBoxDataArray m_datas;
  154. };
  155. #endif // _WX_COMBOBOX_H_