a236aa2058
1. the main function for item insertion is now DoInsertItems() which allows for much more efficient addition of many new items at once 2. the items client data management is done entirely in wxItemContainer itself, the derived classes don't have to distinguish between void and object client data 3. many fixes for sorted controls, in particular implemented wxCB_SORT support in wxGTK combobox git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
92 lines
3.0 KiB
C++
92 lines
3.0 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/choice.h
|
|
// Purpose: wxChoice class interface
|
|
// Author: Vadim Zeitlin
|
|
// Modified by:
|
|
// Created: 26.07.99
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) wxWidgets team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_CHOICE_H_BASE_
|
|
#define _WX_CHOICE_H_BASE_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// headers
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#if wxUSE_CHOICE
|
|
|
|
#include "wx/ctrlsub.h" // the base class
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// global data
|
|
// ----------------------------------------------------------------------------
|
|
|
|
extern WXDLLEXPORT_DATA(const wxChar) wxChoiceNameStr[];
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxChoice allows to select one of a non-modifiable list of strings
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLEXPORT wxChoiceBase : public wxControlWithItems
|
|
{
|
|
public:
|
|
wxChoiceBase() { }
|
|
virtual ~wxChoiceBase();
|
|
|
|
// all generic methods are in wxControlWithItems
|
|
|
|
// get the current selection: this can only be different from the normal
|
|
// selection if the popup items list is currently opened and the user
|
|
// selected some item in it but didn't close the list yet; otherwise (and
|
|
// currently always on platforms other than MSW) this is the same as
|
|
// GetSelection()
|
|
virtual int GetCurrentSelection() const { return GetSelection(); }
|
|
|
|
// set/get the number of columns in the control (as they're not supported on
|
|
// most platforms, they do nothing by default)
|
|
virtual void SetColumns(int WXUNUSED(n) = 1 ) { }
|
|
virtual int GetColumns() const { return 1 ; }
|
|
|
|
// emulate selecting the item event.GetInt()
|
|
void Command(wxCommandEvent& event);
|
|
|
|
// override wxItemContainer::IsSorted
|
|
virtual bool IsSorted() const { return HasFlag(wxCB_SORT); }
|
|
|
|
private:
|
|
DECLARE_NO_COPY_CLASS(wxChoiceBase)
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// include the platform-dependent class definition
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#if defined(__WXUNIVERSAL__)
|
|
#include "wx/univ/choice.h"
|
|
#elif defined(__SMARTPHONE__) && defined(__WXWINCE__)
|
|
#include "wx/msw/wince/choicece.h"
|
|
#elif defined(__WXMSW__)
|
|
#include "wx/msw/choice.h"
|
|
#elif defined(__WXMOTIF__)
|
|
#include "wx/motif/choice.h"
|
|
#elif defined(__WXGTK20__)
|
|
#include "wx/gtk/choice.h"
|
|
#elif defined(__WXGTK__)
|
|
#include "wx/gtk1/choice.h"
|
|
#elif defined(__WXMAC__)
|
|
#include "wx/mac/choice.h"
|
|
#elif defined(__WXCOCOA__)
|
|
#include "wx/cocoa/choice.h"
|
|
#elif defined(__WXPM__)
|
|
#include "wx/os2/choice.h"
|
|
#endif
|
|
|
|
#endif // wxUSE_CHOICE
|
|
|
|
#endif // _WX_CHOICE_H_BASE_
|