| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/generic/choicdgg.h
- // Purpose: Generic choice dialogs
- // Author: Julian Smart
- // Modified by: 03.11.00: VZ to add wxArrayString and multiple sel functions
- // Created: 01/02/97
- // Copyright: (c) wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_GENERIC_CHOICDGG_H_
- #define _WX_GENERIC_CHOICDGG_H_
- #include "wx/dynarray.h"
- #include "wx/dialog.h"
- class WXDLLIMPEXP_FWD_CORE wxListBoxBase;
- // ----------------------------------------------------------------------------
- // some (ugly...) constants
- // ----------------------------------------------------------------------------
- #define wxCHOICE_HEIGHT 150
- #define wxCHOICE_WIDTH 200
- #ifdef __WXWINCE__
- #define wxCHOICEDLG_STYLE \
- (wxDEFAULT_DIALOG_STYLE | wxOK | wxCANCEL | wxCENTRE)
- #else
- #define wxCHOICEDLG_STYLE \
- (wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK | wxCANCEL | wxCENTRE)
- #endif
- // ----------------------------------------------------------------------------
- // wxAnyChoiceDialog: a base class for dialogs containing a listbox
- // ----------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxAnyChoiceDialog : public wxDialog
- {
- public:
- wxAnyChoiceDialog() { }
- wxAnyChoiceDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- long styleDlg = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition,
- long styleLbox = wxLB_ALWAYS_SB)
- {
- (void)Create(parent, message, caption, n, choices,
- styleDlg, pos, styleLbox);
- }
- wxAnyChoiceDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- long styleDlg = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition,
- long styleLbox = wxLB_ALWAYS_SB)
- {
- (void)Create(parent, message, caption, choices,
- styleDlg, pos, styleLbox);
- }
- bool Create(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- long styleDlg = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition,
- long styleLbox = wxLB_ALWAYS_SB);
- bool Create(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- long styleDlg = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition,
- long styleLbox = wxLB_ALWAYS_SB);
- protected:
- wxListBoxBase *m_listbox;
- virtual wxListBoxBase *CreateList(int n,
- const wxString *choices,
- long styleLbox);
- wxDECLARE_NO_COPY_CLASS(wxAnyChoiceDialog);
- };
- // ----------------------------------------------------------------------------
- // wxSingleChoiceDialog: a dialog with single selection listbox
- // ----------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxSingleChoiceDialog : public wxAnyChoiceDialog
- {
- public:
- wxSingleChoiceDialog()
- {
- m_selection = -1;
- }
- wxSingleChoiceDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- int n,
- const wxString *choices,
- void **clientData = NULL,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition)
- {
- Create(parent, message, caption, n, choices, clientData, style, pos);
- }
- wxSingleChoiceDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- void **clientData = NULL,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition)
- {
- Create(parent, message, caption, choices, clientData, style, pos);
- }
- bool Create(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- int n,
- const wxString *choices,
- void **clientData = NULL,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition);
- bool Create(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- void **clientData = NULL,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition);
- void SetSelection(int sel);
- int GetSelection() const { return m_selection; }
- wxString GetStringSelection() const { return m_stringSelection; }
- void* GetSelectionData() const { return m_clientData; }
- #if WXWIN_COMPATIBILITY_2_8
- // Deprecated overloads taking "char**" client data.
- wxDEPRECATED_CONSTRUCTOR
- (
- wxSingleChoiceDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- int n,
- const wxString *choices,
- char **clientData,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition)
- )
- {
- Create(parent, message, caption, n, choices,
- (void**)clientData, style, pos);
- }
- wxDEPRECATED_CONSTRUCTOR
- (
- wxSingleChoiceDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- char **clientData,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition)
- )
- {
- Create(parent, message, caption, choices,
- (void**)clientData, style, pos);
- }
- wxDEPRECATED_INLINE
- (
- bool Create(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- int n,
- const wxString *choices,
- char **clientData,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition),
- return Create(parent, message, caption, n, choices,
- (void**)clientData, style, pos);
- )
- wxDEPRECATED_INLINE
- (
- bool Create(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- char **clientData,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition),
- return Create(parent, message, caption, choices,
- (void**)clientData, style, pos);
- )
- // NB: no need to make it return wxChar, it's untyped
- wxDEPRECATED_ACCESSOR
- (
- char* GetSelectionClientData() const,
- (char*)GetSelectionData()
- )
- #endif // WXWIN_COMPATIBILITY_2_8
- // implementation from now on
- void OnOK(wxCommandEvent& event);
- #ifndef __SMARTPHONE__
- void OnListBoxDClick(wxCommandEvent& event);
- #endif
- #ifdef __WXWINCE__
- void OnJoystickButtonDown(wxJoystickEvent& event);
- #endif
- protected:
- int m_selection;
- wxString m_stringSelection;
- void DoChoice();
- private:
- DECLARE_DYNAMIC_CLASS_NO_COPY(wxSingleChoiceDialog)
- DECLARE_EVENT_TABLE()
- };
- // ----------------------------------------------------------------------------
- // wxMultiChoiceDialog: a dialog with multi selection listbox
- // ----------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxMultiChoiceDialog : public wxAnyChoiceDialog
- {
- public:
- wxMultiChoiceDialog() { }
- wxMultiChoiceDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- int n,
- const wxString *choices,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition)
- {
- (void)Create(parent, message, caption, n, choices, style, pos);
- }
- wxMultiChoiceDialog(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition)
- {
- (void)Create(parent, message, caption, choices, style, pos);
- }
- bool Create(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- int n,
- const wxString *choices,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition);
- bool Create(wxWindow *parent,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- long style = wxCHOICEDLG_STYLE,
- const wxPoint& pos = wxDefaultPosition);
- void SetSelections(const wxArrayInt& selections);
- wxArrayInt GetSelections() const { return m_selections; }
- // implementation from now on
- virtual bool TransferDataFromWindow();
- protected:
- #if wxUSE_CHECKLISTBOX
- virtual wxListBoxBase *CreateList(int n,
- const wxString *choices,
- long styleLbox);
- #endif // wxUSE_CHECKLISTBOX
- wxArrayInt m_selections;
- private:
- DECLARE_DYNAMIC_CLASS_NO_COPY(wxMultiChoiceDialog)
- };
- // ----------------------------------------------------------------------------
- // wrapper functions which can be used to get selection(s) from the user
- // ----------------------------------------------------------------------------
- // get the user selection as a string
- WXDLLIMPEXP_CORE wxString wxGetSingleChoice(const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT,
- int initialSelection = 0);
- WXDLLIMPEXP_CORE wxString wxGetSingleChoice(const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT,
- int initialSelection = 0);
- WXDLLIMPEXP_CORE wxString wxGetSingleChoice(const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- int initialSelection,
- wxWindow *parent = NULL);
- WXDLLIMPEXP_CORE wxString wxGetSingleChoice(const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- int initialSelection,
- wxWindow *parent = NULL);
- // Same as above but gets position in list of strings, instead of string,
- // or -1 if no selection
- WXDLLIMPEXP_CORE int wxGetSingleChoiceIndex(const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT,
- int initialSelection = 0);
- WXDLLIMPEXP_CORE int wxGetSingleChoiceIndex(const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT,
- int initialSelection = 0);
- WXDLLIMPEXP_CORE int wxGetSingleChoiceIndex(const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- int initialSelection,
- wxWindow *parent = NULL);
- WXDLLIMPEXP_CORE int wxGetSingleChoiceIndex(const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- int initialSelection,
- wxWindow *parent = NULL);
- // Return client data instead or NULL if canceled
- WXDLLIMPEXP_CORE void* wxGetSingleChoiceData(const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- void **client_data,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT,
- int initialSelection = 0);
- WXDLLIMPEXP_CORE void* wxGetSingleChoiceData(const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- void **client_data,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT,
- int initialSelection = 0);
- WXDLLIMPEXP_CORE void* wxGetSingleChoiceData(const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- void **client_data,
- int initialSelection,
- wxWindow *parent = NULL);
- WXDLLIMPEXP_CORE void* wxGetSingleChoiceData(const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- void **client_data,
- int initialSelection,
- wxWindow *parent = NULL);
- // fill the array with the indices of the chosen items, it will be empty
- // if no items were selected or Cancel was pressed - return the number of
- // selections or -1 if cancelled
- WXDLLIMPEXP_CORE int wxGetSelectedChoices(wxArrayInt& selections,
- const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT);
- WXDLLIMPEXP_CORE int wxGetSelectedChoices(wxArrayInt& selections,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT);
- #if WXWIN_COMPATIBILITY_2_8
- // fill the array with the indices of the chosen items, it will be empty
- // if no items were selected or Cancel was pressed - return the number of
- // selections
- wxDEPRECATED( WXDLLIMPEXP_CORE size_t wxGetMultipleChoices(wxArrayInt& selections,
- const wxString& message,
- const wxString& caption,
- int n, const wxString *choices,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT) );
- wxDEPRECATED( WXDLLIMPEXP_CORE size_t wxGetMultipleChoices(wxArrayInt& selections,
- const wxString& message,
- const wxString& caption,
- const wxArrayString& choices,
- wxWindow *parent = NULL,
- int x = wxDefaultCoord,
- int y = wxDefaultCoord,
- bool centre = true,
- int width = wxCHOICE_WIDTH,
- int height = wxCHOICE_HEIGHT));
- #endif // WXWIN_COMPATIBILITY_2_8
- #endif // _WX_GENERIC_CHOICDGG_H_
|