1. wxChoice and wxComboBox support client data under MSW
2. control creation streamlined under MSW git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3157 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,18 +1,127 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/choice.h
|
||||
// Purpose: wxChoice class interface
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 26.07.99
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) wxWindows team
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_CHOICE_H_BASE_
|
||||
#define _WX_CHOICE_H_BASE_
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// headers
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "choicebase.h"
|
||||
#endif
|
||||
|
||||
#include "wx/control.h" // the base class
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// global data
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
WXDLLEXPORT_DATA(extern const wxChar*) wxChoiceNameStr;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxChoice allows to select one of a non-modifiable list of strings
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxChoiceBase : public wxControl
|
||||
{
|
||||
public:
|
||||
// ctor
|
||||
wxChoiceBase() { m_clientDataItemsType = ClientData_None; }
|
||||
|
||||
// add a new item to the list
|
||||
// no client data
|
||||
void Append(const wxString& item) { DoAppend(item); }
|
||||
// with client data which belongs to the caller
|
||||
void Append(const wxString &item, void* clientData)
|
||||
{ DoAppend(item); SetClientData(GetCount() - 1, clientData); }
|
||||
// with client data which will be deleted by the control
|
||||
void Append(const wxString &item, wxClientData* clientData)
|
||||
{ DoAppend(item); SetClientObject(GetCount() - 1, clientData); }
|
||||
|
||||
// delete items from the list
|
||||
// one item
|
||||
virtual void Delete(int n) = 0;
|
||||
// all of them
|
||||
virtual void Clear() = 0;
|
||||
|
||||
// selection (at most one item may be selected in wxChoice)
|
||||
// get the index of currently selected item or -1
|
||||
virtual int GetSelection() const = 0;
|
||||
// get the text of the currently selected item or empty string
|
||||
virtual wxString GetStringSelection() const;
|
||||
|
||||
// set selectionto current item
|
||||
virtual void SetSelection(int n) = 0;
|
||||
// set selection to the current item, returns TRUE if ok
|
||||
virtual bool SetStringSelection(const wxString& sel);
|
||||
|
||||
// accessors to the list of strings
|
||||
// get the number of items in the list of strings
|
||||
virtual int GetCount() const = 0;
|
||||
|
||||
// find string in the list, return wxNOT_FOUND if not found
|
||||
virtual int FindString(const wxString& s) const = 0;
|
||||
// get the string with the specified index
|
||||
virtual wxString GetString(int n) const = 0;
|
||||
|
||||
// set/get the number of columns in the control (as they're not supporte on
|
||||
// most platforms, they do nothing by default)
|
||||
virtual void SetColumns(int WXUNUSED(n) = 1 ) { }
|
||||
virtual int GetColumns() const { return 1 ; }
|
||||
|
||||
// client data
|
||||
// untyped (isn't deleted by the control)
|
||||
void SetClientData( int n, void* clientData );
|
||||
void* GetClientData( int n ) const;
|
||||
// typed (is owned and deleted by the control)
|
||||
void SetClientObject( int n, wxClientData* clientData );
|
||||
wxClientData* GetClientObject( int n ) const;
|
||||
|
||||
// emulate selecting the item event.GetInt() from the control
|
||||
virtual void Command(wxCommandEvent &event);
|
||||
|
||||
// deprecated functions, heer for backwards compatibility only
|
||||
int Number() const { return GetCount(); }
|
||||
|
||||
private:
|
||||
// pure virtuals to implement in the derived classes
|
||||
virtual void DoAppend(const wxString& item) = 0;
|
||||
|
||||
virtual void DoSetClientData( int n, void* clientData ) = 0;
|
||||
virtual void* DoGetClientData( int n ) const = 0;
|
||||
virtual void DoSetClientObject( int n, wxClientData* clientData ) = 0;
|
||||
virtual wxClientData* DoGetClientObject( int n ) const = 0;
|
||||
|
||||
// the type of the client data for the items
|
||||
wxClientDataType m_clientDataItemsType;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// include the platform-dependent class definition
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
#include "wx/msw/choice.h"
|
||||
#include "wx/msw/choice.h"
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/motif/choice.h"
|
||||
#include "wx/motif/choice.h"
|
||||
#elif defined(__WXGTK__)
|
||||
#include "wx/gtk/choice.h"
|
||||
#include "wx/gtk/choice.h"
|
||||
#elif defined(__WXQT__)
|
||||
#include "wx/qt/choice.h"
|
||||
#include "wx/qt/choice.h"
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/mac/choice.h"
|
||||
#include "wx/mac/choice.h"
|
||||
#elif defined(__WXSTUBS__)
|
||||
#include "wx/stubs/choice.h"
|
||||
#include "wx/stubs/choice.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user