added 3-state checkboxes (patch 813790)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23982 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -41,6 +41,7 @@ WIDGETS_CXXFLAGS = $(CPPFLAGS) -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
|
||||
-I$(srcdir)/../../samples $(CXXFLAGS)
|
||||
WIDGETS_OBJECTS = \
|
||||
widgets_button.o \
|
||||
widgets_checkbox.o \
|
||||
widgets_combobox.o \
|
||||
widgets_gauge.o \
|
||||
widgets_listbox.o \
|
||||
@@ -162,6 +163,9 @@ widgets.app/Contents/PkgInfo: widgets$(EXEEXT) $(top_srcdir)/src/mac/Info.plist.
|
||||
widgets_button.o: $(srcdir)/button.cpp
|
||||
$(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
widgets_checkbox.o: $(srcdir)/checkbox.cpp
|
||||
$(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
widgets_combobox.o: $(srcdir)/combobox.cpp
|
||||
$(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
|
160
samples/widgets/checkbox.cpp
Normal file
160
samples/widgets/checkbox.cpp
Normal file
@@ -0,0 +1,160 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Program: wxWindows Widgets Sample
|
||||
// Name: checkbox.cpp
|
||||
// Purpose: Part of the widgets sample showing wxCheckBox
|
||||
// Author: Dimitri Schoolwerth
|
||||
// Created: 27 Sep 2003
|
||||
// Id: $Id$
|
||||
// Copyright: (c) 2003 wxWindows team
|
||||
// License: wxWindows license
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ============================================================================
|
||||
// declarations
|
||||
// ============================================================================
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// headers
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// for compilers that support precompilation, includes "wx/wx.h".
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
#ifdef __BORLANDC__
|
||||
#pragma hdrstop
|
||||
#endif
|
||||
|
||||
// for all others, include the necessary headers
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/app.h"
|
||||
#include "wx/log.h"
|
||||
|
||||
#include "wx/button.h"
|
||||
#include "wx/checkbox.h"
|
||||
|
||||
#include "wx/sizer.h"
|
||||
|
||||
#endif
|
||||
|
||||
#include "widgets.h"
|
||||
|
||||
#include "icons/checkbox.xpm"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// CheckBoxWidgetsPage
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class CheckBoxWidgetsPage : public WidgetsPage
|
||||
{
|
||||
public:
|
||||
CheckBoxWidgetsPage(wxNotebook *notebook, wxImageList *imaglist);
|
||||
virtual ~CheckBoxWidgetsPage();
|
||||
|
||||
protected:
|
||||
// event handlers
|
||||
void OnCheckBox(wxCommandEvent& event);
|
||||
|
||||
void OnButton(wxCommandEvent& event);
|
||||
|
||||
// the controls
|
||||
// ------------
|
||||
|
||||
wxCheckBox *m_chk2States,
|
||||
*m_chk3States,
|
||||
*m_chk3StatesAllows3rdStateForUser;
|
||||
|
||||
wxButton *m_button;
|
||||
|
||||
private:
|
||||
DECLARE_EVENT_TABLE()
|
||||
DECLARE_WIDGETS_PAGE(CheckBoxWidgetsPage)
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// event tables
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
BEGIN_EVENT_TABLE(CheckBoxWidgetsPage, WidgetsPage)
|
||||
EVT_CHECKBOX(wxID_ANY, CheckBoxWidgetsPage::OnCheckBox)
|
||||
EVT_BUTTON(wxID_ANY, CheckBoxWidgetsPage::OnButton)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
// ============================================================================
|
||||
// implementation
|
||||
// ============================================================================
|
||||
|
||||
IMPLEMENT_WIDGETS_PAGE(CheckBoxWidgetsPage, wxT("CheckBox"));
|
||||
|
||||
CheckBoxWidgetsPage::CheckBoxWidgetsPage(wxNotebook *notebook,
|
||||
wxImageList *imaglist)
|
||||
: WidgetsPage(notebook)
|
||||
{
|
||||
imaglist->Add(wxBitmap(checkbox_xpm));
|
||||
|
||||
m_chk2States = new wxCheckBox( this, wxID_ANY,
|
||||
wxT("I'm a standard 2-state checkbox") );
|
||||
m_chk3States = new wxCheckBox( this, wxID_ANY,
|
||||
wxT("I'm a 3-state checkbox that disallows setting the undetermined")
|
||||
wxT(" state by the user" ),
|
||||
wxDefaultPosition, wxDefaultSize, wxCHK_3STATE);
|
||||
m_button = new wxButton( this, wxID_ANY, wxT("&Programmatically set this")
|
||||
wxT(" checkbox to undetermined state") );
|
||||
|
||||
m_chk3StatesAllows3rdStateForUser = new wxCheckBox(this, wxID_ANY,
|
||||
wxT("I'm a 3-state checkbox that allows setting the 3rd state by the user"),
|
||||
wxDefaultPosition, wxDefaultSize, wxCHK_3STATE
|
||||
| wxCHK_ALLOW_3RD_STATE_FOR_USER);
|
||||
|
||||
wxSizer *sizerTop = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
sizerTop->Add(0, 0, 1, wxEXPAND);
|
||||
sizerTop->Add(m_chk2States, 0, wxEXPAND);
|
||||
sizerTop->Add(0, 0, 1, wxEXPAND);
|
||||
wxSizer *sizerCheckBoxAndButton = new wxBoxSizer(wxHORIZONTAL);
|
||||
{
|
||||
wxSizer *szr = sizerCheckBoxAndButton;
|
||||
szr->Add(m_chk3States, 0, wxEXPAND);
|
||||
szr->Add(0, 0, 1, wxEXPAND);
|
||||
szr->Add(m_button, 0, wxEXPAND);
|
||||
|
||||
sizerTop->Add(szr, 0, wxEXPAND);
|
||||
}
|
||||
|
||||
sizerTop->Add(0, 0, 1, wxEXPAND);
|
||||
sizerTop->Add(m_chk3StatesAllows3rdStateForUser, 0, wxEXPAND);
|
||||
sizerTop->Add(0, 0, 1, wxEXPAND);
|
||||
|
||||
SetSizer(sizerTop);
|
||||
|
||||
sizerTop->Fit(this);
|
||||
}
|
||||
|
||||
CheckBoxWidgetsPage::~CheckBoxWidgetsPage()
|
||||
{
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// event handlers
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void CheckBoxWidgetsPage::OnCheckBox(wxCommandEvent& event)
|
||||
{
|
||||
static const wxString stateNames[] =
|
||||
{
|
||||
wxT("unchecked"),
|
||||
wxT("checked"),
|
||||
wxT("undetermined/mixed"),
|
||||
};
|
||||
wxCheckBoxState state = (wxCheckBoxState) event.GetInt();
|
||||
|
||||
wxCHECK_RET( (state >= 0) && (state < WXSIZEOF(stateNames)),
|
||||
"event.GetInt() returned an invalid wxCheckBoxState" );
|
||||
|
||||
wxLogMessage(wxT("Checkbox now set to state: %s"),
|
||||
stateNames[state].c_str());
|
||||
}
|
||||
|
||||
void CheckBoxWidgetsPage::OnButton(wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
m_chk3States->Set3StateValue(wxCHK_UNDETERMINED);
|
||||
}
|
@@ -30,6 +30,7 @@ WIDGETS_CXXFLAGS = $(CPPFLAGS) $(__RUNTIME_LIBS_6) -I$(BCCDIR)\include \
|
||||
-I. $(__DLLFLAG_p) -I.\..\..\samples $(CXXFLAGS)
|
||||
WIDGETS_OBJECTS = \
|
||||
$(OBJS)\widgets_button.obj \
|
||||
$(OBJS)\widgets_checkbox.obj \
|
||||
$(OBJS)\widgets_combobox.obj \
|
||||
$(OBJS)\widgets_gauge.obj \
|
||||
$(OBJS)\widgets_listbox.obj \
|
||||
@@ -166,6 +167,9 @@ all: $(OBJS)\widgets.exe
|
||||
$(OBJS)\widgets_button.obj: .\button.cpp
|
||||
$(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) $**
|
||||
|
||||
$(OBJS)\widgets_checkbox.obj: .\checkbox.cpp
|
||||
$(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) $**
|
||||
|
||||
$(OBJS)\widgets_combobox.obj: .\combobox.cpp
|
||||
$(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) $**
|
||||
|
||||
|
@@ -23,6 +23,7 @@ WIDGETS_CXXFLAGS = $(CPPFLAGS) $(__DEBUGINFO) $(__OPTIMIZEFLAG_2) $(GCCFLAGS) \
|
||||
$(__EXCEPTIONSFLAG_5)
|
||||
WIDGETS_OBJECTS = \
|
||||
$(OBJS)\widgets_button.o \
|
||||
$(OBJS)\widgets_checkbox.o \
|
||||
$(OBJS)\widgets_combobox.o \
|
||||
$(OBJS)\widgets_gauge.o \
|
||||
$(OBJS)\widgets_listbox.o \
|
||||
@@ -173,6 +174,9 @@ all: $(OBJS)\widgets.exe
|
||||
$(OBJS)\widgets_button.o: ./button.cpp
|
||||
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
$(OBJS)\widgets_checkbox.o: ./checkbox.cpp
|
||||
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
$(OBJS)\widgets_combobox.o: ./combobox.cpp
|
||||
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
|
@@ -24,6 +24,7 @@ WIDGETS_CXXFLAGS = $(CPPFLAGS) /M$(__RUNTIME_LIBS_7)$(__DEBUGRUNTIME_3) \
|
||||
$(__EXCEPTIONSFLAG_8) $(__EXCEPTIONSFLAG_9)
|
||||
WIDGETS_OBJECTS = \
|
||||
$(OBJS)\widgets_button.obj \
|
||||
$(OBJS)\widgets_checkbox.obj \
|
||||
$(OBJS)\widgets_combobox.obj \
|
||||
$(OBJS)\widgets_gauge.obj \
|
||||
$(OBJS)\widgets_listbox.obj \
|
||||
@@ -254,6 +255,9 @@ all: $(OBJS)\widgets.exe
|
||||
$(OBJS)\widgets_button.obj: .\button.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) $**
|
||||
|
||||
$(OBJS)\widgets_checkbox.obj: .\checkbox.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) $**
|
||||
|
||||
$(OBJS)\widgets_combobox.obj: .\combobox.cpp
|
||||
$(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) $**
|
||||
|
||||
|
@@ -177,6 +177,7 @@ WIDGETS_CXXFLAGS = $(CPPFLAGS) $(__DEBUGINFO_0) $(__OPTIMIZEFLAG_2) -bm &
|
||||
-i=.\..\..\samples $(CXXFLAGS) $(__EXCEPTIONSFLAG_7)
|
||||
WIDGETS_OBJECTS = &
|
||||
$(OBJS)\widgets_button.obj &
|
||||
$(OBJS)\widgets_checkbox.obj &
|
||||
$(OBJS)\widgets_combobox.obj &
|
||||
$(OBJS)\widgets_gauge.obj &
|
||||
$(OBJS)\widgets_listbox.obj &
|
||||
@@ -200,6 +201,9 @@ all : .SYMBOLIC $(OBJS)\widgets.exe
|
||||
$(OBJS)\widgets_button.obj : .AUTODEPEND .\button.cpp
|
||||
$(CXX) -zq -fo=$^@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
$(OBJS)\widgets_checkbox.obj : .AUTODEPEND .\checkbox.cpp
|
||||
$(CXX) -zq -fo=$^@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
$(OBJS)\widgets_combobox.obj : .AUTODEPEND .\combobox.cpp
|
||||
$(CXX) -zq -fo=$^@ $(WIDGETS_CXXFLAGS) $<
|
||||
|
||||
|
@@ -4,9 +4,9 @@
|
||||
<include file="../../build/bakefiles/common_samples.bkl"/>
|
||||
|
||||
<exe id="widgets" template="wx_sample" template_append="wx_append">
|
||||
<sources>button.cpp combobox.cpp gauge.cpp listbox.cpp notebook.cpp
|
||||
radiobox.cpp slider.cpp spinbtn.cpp static.cpp textctrl.cpp
|
||||
widgets.cpp</sources>
|
||||
<sources>button.cpp checkbox.cpp combobox.cpp gauge.cpp listbox.cpp
|
||||
notebook.cpp radiobox.cpp slider.cpp spinbtn.cpp static.cpp
|
||||
textctrl.cpp widgets.cpp</sources>
|
||||
<wx-lib>core</wx-lib>
|
||||
<wx-lib>base</wx-lib>
|
||||
<win32-res>widgets.rc</win32-res>
|
||||
|
@@ -472,6 +472,10 @@ SOURCE=.\button.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\checkbox.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\combobox.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
Reference in New Issue
Block a user