1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/mac/classic/choice.h 3// Purpose: wxChoice class 4// Author: Stefan Csomor 5// Modified by: 6// Created: 1998-01-01 7// RCS-ID: $Id: choice.h 38319 2006-03-23 22:05:23Z VZ $ 8// Copyright: (c) Stefan Csomor 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_CHOICE_H_ 13#define _WX_CHOICE_H_ 14 15#include "wx/control.h" 16 17#include "wx/dynarray.h" 18#include "wx/arrstr.h" 19 20WXDLLEXPORT_DATA(extern const wxChar) wxChoiceNameStr[]; 21 22WX_DEFINE_ARRAY( char * , wxChoiceDataArray ) ; 23 24// Choice item 25class WXDLLEXPORT wxChoice: public wxChoiceBase 26{ 27 DECLARE_DYNAMIC_CLASS(wxChoice) 28 29public: 30 wxChoice() 31 : m_strings(), m_datas(), m_macPopUpMenuHandle(NULL) 32 {} 33 34 virtual ~wxChoice() ; 35 36 wxChoice(wxWindow *parent, wxWindowID id, 37 const wxPoint& pos = wxDefaultPosition, 38 const wxSize& size = wxDefaultSize, 39 int n = 0, const wxString choices[] = NULL, 40 long style = 0, 41 const wxValidator& validator = wxDefaultValidator, 42 const wxString& name = wxChoiceNameStr) 43 { 44 Create(parent, id, pos, size, n, choices, style, validator, name); 45 } 46 wxChoice(wxWindow *parent, wxWindowID id, 47 const wxPoint& pos, 48 const wxSize& size, 49 const wxArrayString& choices, 50 long style = 0, 51 const wxValidator& validator = wxDefaultValidator, 52 const wxString& name = wxChoiceNameStr) 53 { 54 Create(parent, id, pos, size, choices, style, validator, name); 55 } 56 57 bool Create(wxWindow *parent, wxWindowID id, 58 const wxPoint& pos = wxDefaultPosition, 59 const wxSize& size = wxDefaultSize, 60 int n = 0, const wxString choices[] = NULL, 61 long style = 0, 62 const wxValidator& validator = wxDefaultValidator, 63 const wxString& name = wxChoiceNameStr); 64 bool Create(wxWindow *parent, wxWindowID id, 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 = wxChoiceNameStr); 71 72 // implement base class pure virtuals 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 78 virtual unsigned int GetCount() const ; 79 virtual int GetSelection() const ; 80 virtual void SetSelection(int n); 81 82 virtual wxString GetString(unsigned int n) const ; 83 virtual void SetString(unsigned int pos, const wxString& s); 84 void MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown ) ; 85 86protected: 87 virtual wxSize DoGetBestSize() const ; 88 89public: // for wxComboBox only 90 virtual void DoSetItemClientData(unsigned int n, void* clientData ); 91 virtual void* DoGetItemClientData(unsigned int n) const; 92 virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData); 93 virtual wxClientData* DoGetItemClientObject(unsigned int n) const; 94 95protected: 96 // free all memory we have (used by Clear() and dtor) 97 // prevent collision with some BSD definitions of macro Free() 98 void FreeData(); 99 100 wxArrayString m_strings; 101 wxChoiceDataArray m_datas ; 102 WXHMENU m_macPopUpMenuHandle ; 103}; 104 105#endif 106 // _WX_CHOICE_H_ 107