choice.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/cocoa/choice.h
  3. // Purpose: wxChoice class
  4. // Author: David Elliott
  5. // Modified by:
  6. // Created: 2003/03/16
  7. // Copyright: (c) 2003 David Elliott
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #ifndef __WX_COCOA_CHOICE_H__
  11. #define __WX_COCOA_CHOICE_H__
  12. //#include "wx/cocoa/NSPopUpButton.h"
  13. #include "wx/cocoa/NSMenu.h"
  14. class WXDLLIMPEXP_FWD_BASE wxSortedArrayString;
  15. // ========================================================================
  16. // wxChoice
  17. // ========================================================================
  18. class WXDLLIMPEXP_CORE wxChoice: public wxChoiceBase /*, protected wxCocoaNSPopUpButton */, protected wxCocoaNSMenu
  19. {
  20. DECLARE_DYNAMIC_CLASS(wxChoice)
  21. DECLARE_EVENT_TABLE()
  22. // WX_DECLARE_COCOA_OWNER(NSTableView,NSControl,NSView)
  23. // ------------------------------------------------------------------------
  24. // initialization
  25. // ------------------------------------------------------------------------
  26. public:
  27. wxChoice() { Init(); }
  28. wxChoice(wxWindow *parent, wxWindowID winid,
  29. const wxPoint& pos = wxDefaultPosition,
  30. const wxSize& size = wxDefaultSize,
  31. int n = 0, const wxString choices[] = NULL,
  32. long style = 0,
  33. const wxValidator& validator = wxDefaultValidator,
  34. const wxString& name = wxChoiceNameStr)
  35. {
  36. Init();
  37. Create(parent, winid, pos, size, n, choices, style, validator, name);
  38. }
  39. wxChoice(wxWindow *parent, wxWindowID winid,
  40. const wxPoint& pos,
  41. const wxSize& size,
  42. const wxArrayString& choices,
  43. long style = 0,
  44. const wxValidator& validator = wxDefaultValidator,
  45. const wxString& name = wxChoiceNameStr)
  46. {
  47. Init();
  48. Create(parent, winid, pos, size, choices, style, validator, name);
  49. }
  50. bool Create(wxWindow *parent, wxWindowID winid,
  51. const wxPoint& pos = wxDefaultPosition,
  52. const wxSize& size = wxDefaultSize,
  53. int n = 0, const wxString choices[] = NULL,
  54. long style = 0,
  55. const wxValidator& validator = wxDefaultValidator,
  56. const wxString& name = wxChoiceNameStr);
  57. bool Create(wxWindow *parent, wxWindowID winid,
  58. const wxPoint& pos,
  59. const wxSize& size,
  60. const wxArrayString& choices,
  61. long style = 0,
  62. const wxValidator& validator = wxDefaultValidator,
  63. const wxString& name = wxChoiceNameStr);
  64. virtual ~wxChoice();
  65. protected:
  66. void Init();
  67. // ------------------------------------------------------------------------
  68. // Cocoa callbacks
  69. // ------------------------------------------------------------------------
  70. protected:
  71. void CocoaNotification_menuDidSendAction(WX_NSNotification notification);
  72. // ------------------------------------------------------------------------
  73. // Implementation
  74. // ------------------------------------------------------------------------
  75. public:
  76. virtual void DoClear();
  77. virtual unsigned int GetCount() const;
  78. virtual wxString GetString(unsigned int) const;
  79. virtual void SetString(unsigned int pos, const wxString&);
  80. virtual int FindString(const wxString& s, bool bCase = false) const;
  81. virtual int GetSelection() const;
  82. virtual int DoInsertItems(const wxArrayStringsAdapter& items,
  83. unsigned int pos,
  84. void **clientData, wxClientDataType type);
  85. virtual void DoDeleteOneItem(unsigned int pos);
  86. virtual void DoSetItemClientData(unsigned int, void*);
  87. virtual void* DoGetItemClientData(unsigned int) const;
  88. virtual void SetSelection(int pos);
  89. protected:
  90. wxSortedArrayString *m_sortedStrings;
  91. wxArrayPtrVoid m_itemsClientData;
  92. };
  93. #endif // __WX_COCOA_CHOICE_H__