choice.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/motif/choice.h
  3. // Purpose: wxChoice class
  4. // Author: Julian Smart
  5. // Modified by:
  6. // Created: 17/09/98
  7. // Copyright: (c) Julian Smart
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_CHOICE_H_
  11. #define _WX_CHOICE_H_
  12. #include "wx/clntdata.h"
  13. #ifndef wxWIDGET_ARRAY_DEFINED
  14. #define wxWIDGET_ARRAY_DEFINED
  15. #include "wx/dynarray.h"
  16. WX_DEFINE_ARRAY_PTR(WXWidget, wxWidgetArray);
  17. #endif
  18. // Choice item
  19. class WXDLLIMPEXP_CORE wxChoice: public wxChoiceBase
  20. {
  21. DECLARE_DYNAMIC_CLASS(wxChoice)
  22. public:
  23. wxChoice();
  24. virtual ~wxChoice();
  25. wxChoice(wxWindow *parent, wxWindowID id,
  26. const wxPoint& pos = wxDefaultPosition,
  27. const wxSize& size = wxDefaultSize,
  28. int n = 0, const wxString choices[] = NULL,
  29. long style = 0,
  30. const wxValidator& validator = wxDefaultValidator,
  31. const wxString& name = wxChoiceNameStr)
  32. {
  33. Init();
  34. Create(parent, id, pos, size, n, choices, style, validator, name);
  35. }
  36. wxChoice(wxWindow *parent, wxWindowID id,
  37. const wxPoint& pos,
  38. const wxSize& size,
  39. const wxArrayString& choices,
  40. long style = 0,
  41. const wxValidator& validator = wxDefaultValidator,
  42. const wxString& name = wxChoiceNameStr)
  43. {
  44. Init();
  45. Create(parent, id, pos, size, choices, style, validator, name);
  46. }
  47. bool Create(wxWindow *parent, wxWindowID id,
  48. const wxPoint& pos = wxDefaultPosition,
  49. const wxSize& size = wxDefaultSize,
  50. int n = 0, const wxString choices[] = NULL,
  51. long style = 0,
  52. const wxValidator& validator = wxDefaultValidator,
  53. const wxString& name = wxChoiceNameStr);
  54. bool Create(wxWindow *parent, wxWindowID id,
  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 = wxChoiceNameStr);
  61. // implementation of wxControlWithItems
  62. virtual unsigned int GetCount() const;
  63. virtual int GetSelection() const;
  64. virtual void DoDeleteOneItem(unsigned int n);
  65. virtual void DoClear();
  66. virtual void SetString(unsigned int n, const wxString& s);
  67. virtual wxString GetString(unsigned int n) const;
  68. // implementation of wxChoiceBase
  69. virtual void SetSelection(int n);
  70. virtual void SetColumns(int n = 1 );
  71. virtual int GetColumns() const ;
  72. // Original API
  73. virtual void Command(wxCommandEvent& event);
  74. void SetFocus();
  75. // Implementation
  76. virtual void ChangeFont(bool keepOriginalSize = true);
  77. virtual void ChangeBackgroundColour();
  78. virtual void ChangeForegroundColour();
  79. WXWidget GetTopWidget() const { return m_formWidget; }
  80. WXWidget GetMainWidget() const { return m_buttonWidget; }
  81. virtual wxSize DoGetBestSize() const;
  82. // implementation, for wxChoiceCallback
  83. const wxWidgetArray& GetWidgets() const { return m_widgetArray; }
  84. const wxArrayString& GetStrings() const { return m_stringArray; }
  85. protected:
  86. // minimum size for the text ctrl
  87. wxSize GetItemsSize() const;
  88. // common part of all contructors
  89. void Init();
  90. WXWidget m_menuWidget;
  91. WXWidget m_buttonWidget;
  92. wxWidgetArray m_widgetArray;
  93. WXWidget m_formWidget;
  94. wxArrayString m_stringArray;
  95. virtual void DoSetSize(int x, int y,
  96. int width, int height,
  97. int sizeFlags = wxSIZE_AUTO);
  98. // implementation of wxControlWithItems
  99. virtual int DoInsertItems(const wxArrayStringsAdapter& items,
  100. unsigned int pos,
  101. void **clientData, wxClientDataType type);
  102. };
  103. #endif // _WX_CHOICE_H_