choicece.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/msw/wince/choicece.h
  3. // Purpose: wxChoice implementation for smart phones driven by WinCE
  4. // Author: Wlodzimierz ABX Skiba
  5. // Modified by:
  6. // Created: 29.07.2004
  7. // Copyright: (c) Wlodzimierz Skiba
  8. // Licence: wxWindows licence
  9. ///////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_CHOICECE_H_BASE_
  11. #define _WX_CHOICECE_H_BASE_
  12. // ----------------------------------------------------------------------------
  13. // headers
  14. // ----------------------------------------------------------------------------
  15. #include "wx/defs.h"
  16. #if wxUSE_CHOICE
  17. #include "wx/dynarray.h"
  18. class WXDLLIMPEXP_FWD_CORE wxChoice;
  19. WX_DEFINE_EXPORTED_ARRAY_PTR(wxChoice *, wxArrayChoiceSpins);
  20. // ----------------------------------------------------------------------------
  21. // Choice item
  22. // ----------------------------------------------------------------------------
  23. class WXDLLIMPEXP_CORE wxChoice : public wxChoiceBase
  24. {
  25. public:
  26. // ctors
  27. wxChoice() { }
  28. virtual ~wxChoice();
  29. wxChoice(wxWindow *parent,
  30. wxWindowID id,
  31. const wxPoint& pos = wxDefaultPosition,
  32. const wxSize& size = wxDefaultSize,
  33. int n = 0, const wxString choices[] = NULL,
  34. long style = 0,
  35. const wxValidator& validator = wxDefaultValidator,
  36. const wxString& name = wxChoiceNameStr)
  37. {
  38. Create(parent, id, pos, size, n, choices, style, validator, name);
  39. }
  40. wxChoice(wxWindow *parent,
  41. wxWindowID id,
  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 = wxChoiceNameStr)
  48. {
  49. Create(parent, id, pos, size, choices, style, validator, name);
  50. }
  51. bool Create(wxWindow *parent,
  52. wxWindowID id,
  53. const wxPoint& pos = wxDefaultPosition,
  54. const wxSize& size = wxDefaultSize,
  55. int n = 0, const wxString choices[] = NULL,
  56. long style = 0,
  57. const wxValidator& validator = wxDefaultValidator,
  58. const wxString& name = wxChoiceNameStr);
  59. bool Create(wxWindow *parent,
  60. wxWindowID id,
  61. const wxPoint& pos,
  62. const wxSize& size,
  63. const wxArrayString& choices,
  64. long style = 0,
  65. const wxValidator& validator = wxDefaultValidator,
  66. const wxString& name = wxChoiceNameStr);
  67. // implement base class pure virtuals
  68. virtual void DoDeleteOneItem(unsigned int n);
  69. virtual void DoClear();
  70. virtual unsigned int GetCount() const;
  71. virtual int GetSelection() const;
  72. virtual void SetSelection(int n);
  73. virtual int FindString(const wxString& s, bool bCase = false) const;
  74. virtual wxString GetString(unsigned int n) const;
  75. virtual void SetString(unsigned int n, const wxString& s);
  76. // get the subclassed window proc of the buddy list of choices
  77. WXFARPROC GetBuddyWndProc() const { return m_wndProcBuddy; }
  78. // return the choice object whose buddy is the given window or NULL
  79. static wxChoice *GetChoiceForListBox(WXHWND hwndBuddy);
  80. virtual bool MSWCommand(WXUINT param, WXWORD id);
  81. protected:
  82. virtual int DoInsertItems(const wxArrayStringsAdapter& items,
  83. unsigned int pos,
  84. void **clientData, wxClientDataType type);
  85. virtual void DoSetItemClientData(unsigned int n, void* clientData);
  86. virtual void* DoGetItemClientData(unsigned int n) const;
  87. virtual WXHWND MSWGetItemsHWND() const { return m_hwndBuddy; }
  88. // MSW implementation
  89. virtual void DoGetPosition(int *x, int *y) const;
  90. virtual void DoMoveWindow(int x, int y, int width, int height);
  91. virtual wxSize DoGetBestSize() const;
  92. virtual void DoGetSize(int *width, int *height) const;
  93. virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
  94. // create and initialize the control
  95. bool CreateAndInit(wxWindow *parent, wxWindowID id,
  96. const wxPoint& pos,
  97. const wxSize& size,
  98. int n, const wxString choices[],
  99. long style,
  100. const wxValidator& validator,
  101. const wxString& name);
  102. // the data for the "buddy" list
  103. WXHWND m_hwndBuddy;
  104. WXFARPROC m_wndProcBuddy;
  105. // all existing wxChoice - this allows to find the one corresponding to
  106. // the given buddy window in GetSpinChoiceCtrl()
  107. static wxArrayChoiceSpins ms_allChoiceSpins;
  108. private:
  109. DECLARE_DYNAMIC_CLASS_NO_COPY(wxChoice)
  110. };
  111. #endif // wxUSE_CHOICE
  112. #endif // _WX_CHOICECE_H_BASE_