Add a very simple page showing wxHeaderCtrl in the widgets sample
This is mostly in order to test that changing font and colours works for this control (or, rather, that currently it doesn't in wxMSW).
This commit is contained in:
@@ -70,6 +70,7 @@ WIDGETS_OBJECTS = \
|
|||||||
widgets_filepicker.o \
|
widgets_filepicker.o \
|
||||||
widgets_fontpicker.o \
|
widgets_fontpicker.o \
|
||||||
widgets_gauge.o \
|
widgets_gauge.o \
|
||||||
|
widgets_headerctrl.o \
|
||||||
widgets_hyperlnk.o \
|
widgets_hyperlnk.o \
|
||||||
widgets_itemcontainer.o \
|
widgets_itemcontainer.o \
|
||||||
widgets_listbox.o \
|
widgets_listbox.o \
|
||||||
@@ -265,6 +266,9 @@ widgets_fontpicker.o: $(srcdir)/fontpicker.cpp
|
|||||||
widgets_gauge.o: $(srcdir)/gauge.cpp
|
widgets_gauge.o: $(srcdir)/gauge.cpp
|
||||||
$(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/gauge.cpp
|
$(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/gauge.cpp
|
||||||
|
|
||||||
|
widgets_headerctrl.o: $(srcdir)/headerctrl.cpp
|
||||||
|
$(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/headerctrl.cpp
|
||||||
|
|
||||||
widgets_hyperlnk.o: $(srcdir)/hyperlnk.cpp
|
widgets_hyperlnk.o: $(srcdir)/hyperlnk.cpp
|
||||||
$(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/hyperlnk.cpp
|
$(CXXC) -c -o $@ $(WIDGETS_CXXFLAGS) $(srcdir)/hyperlnk.cpp
|
||||||
|
|
||||||
|
114
samples/widgets/headerctrl.cpp
Normal file
114
samples/widgets/headerctrl.cpp
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Program: wxWidgets Widgets Sample
|
||||||
|
// Name: headerctrl.cpp
|
||||||
|
// Purpose: Part of the widgets sample showing wxHeaderCtrl
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Created: 2016-04-17
|
||||||
|
// Copyright: (c) 2016 wxWindows team
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// declarations
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// for compilers that support precompilation, includes "wx/wx.h".
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_HEADERCTRL
|
||||||
|
|
||||||
|
// for all others, include the necessary headers
|
||||||
|
#ifndef WX_PRECOMP
|
||||||
|
#include "wx/button.h"
|
||||||
|
#include "wx/sizer.h"
|
||||||
|
#include "wx/stattext.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "wx/headerctrl.h"
|
||||||
|
|
||||||
|
#include "widgets.h"
|
||||||
|
|
||||||
|
#include "icons/header.xpm"
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// HeaderCtrlWidgetsPage
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class HeaderCtrlWidgetsPage : public WidgetsPage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
HeaderCtrlWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist)
|
||||||
|
: WidgetsPage(book, imaglist, header_xpm)
|
||||||
|
{
|
||||||
|
m_header = NULL;
|
||||||
|
m_sizerHeader = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual wxWindow *GetWidget() const wxOVERRIDE { return m_header; }
|
||||||
|
virtual void RecreateWidget() wxOVERRIDE;
|
||||||
|
|
||||||
|
// lazy creation of the content
|
||||||
|
virtual void CreateContent() wxOVERRIDE;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// the control itself and the sizer it is in
|
||||||
|
wxHeaderCtrlSimple *m_header;
|
||||||
|
wxSizer *m_sizerHeader;
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_WIDGETS_PAGE(HeaderCtrlWidgetsPage)
|
||||||
|
};
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// implementation
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
|
||||||
|
#define HEADER_CTRL_FAMILY NATIVE_CTRLS
|
||||||
|
#else
|
||||||
|
#define HEADER_CTRL_FAMILY GENERIC_CTRLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
IMPLEMENT_WIDGETS_PAGE(HeaderCtrlWidgetsPage,
|
||||||
|
wxT("Header"), HEADER_CTRL_FAMILY);
|
||||||
|
|
||||||
|
void HeaderCtrlWidgetsPage::CreateContent()
|
||||||
|
{
|
||||||
|
m_sizerHeader = new wxStaticBoxSizer(wxVERTICAL, this, "Header");
|
||||||
|
RecreateWidget();
|
||||||
|
|
||||||
|
wxSizer* const sizerTop = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
sizerTop->Add(m_sizerHeader, wxSizerFlags(1).Expand().DoubleBorder());
|
||||||
|
|
||||||
|
SetSizer(sizerTop);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HeaderCtrlWidgetsPage::RecreateWidget()
|
||||||
|
{
|
||||||
|
m_sizerHeader->Clear(true /* delete windows */);
|
||||||
|
|
||||||
|
int flags = GetAttrs().m_defaultFlags;
|
||||||
|
|
||||||
|
flags |= wxHD_DEFAULT_STYLE;
|
||||||
|
|
||||||
|
m_header = new wxHeaderCtrlSimple(this, wxID_ANY,
|
||||||
|
wxDefaultPosition, wxDefaultSize,
|
||||||
|
flags);
|
||||||
|
m_header->AppendColumn(wxHeaderColumnSimple("First", 100));
|
||||||
|
m_header->AppendColumn(wxHeaderColumnSimple("Second", 200));
|
||||||
|
|
||||||
|
m_sizerHeader->AddStretchSpacer();
|
||||||
|
m_sizerHeader->Add(m_header, wxSizerFlags().Expand());
|
||||||
|
m_sizerHeader->AddStretchSpacer();
|
||||||
|
m_sizerHeader->Layout();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_HEADERCTRL
|
54
samples/widgets/icons/header.xpm
Normal file
54
samples/widgets/icons/header.xpm
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
/* XPM */
|
||||||
|
static const char *const header_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"32 32 16 1",
|
||||||
|
" c Gray0",
|
||||||
|
". c #808000",
|
||||||
|
"X c #000080",
|
||||||
|
"o c #808080",
|
||||||
|
"O c #000000",
|
||||||
|
"+ c #808000",
|
||||||
|
"@ c #000080",
|
||||||
|
"# c none",
|
||||||
|
"$ c #808080",
|
||||||
|
"% c Red",
|
||||||
|
"& c Green",
|
||||||
|
"* c Yellow",
|
||||||
|
"= c Blue",
|
||||||
|
"- c Magenta",
|
||||||
|
"; c Cyan",
|
||||||
|
": c Gray100",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ############################## ",
|
||||||
|
" #&&&&&&&&&&&&&&&&&&&&&&&&&&&&# ",
|
||||||
|
" #&&&&&&&&&&&&&&&&&&&&&&&&&&&&# ",
|
||||||
|
" #&&&&&&&&&&&&&&&&&&&&&&&&&&&&# ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" ############################## ",
|
||||||
|
" "
|
||||||
|
};
|
@@ -51,6 +51,7 @@ WIDGETS_OBJECTS = \
|
|||||||
$(OBJS)\widgets_filepicker.obj \
|
$(OBJS)\widgets_filepicker.obj \
|
||||||
$(OBJS)\widgets_fontpicker.obj \
|
$(OBJS)\widgets_fontpicker.obj \
|
||||||
$(OBJS)\widgets_gauge.obj \
|
$(OBJS)\widgets_gauge.obj \
|
||||||
|
$(OBJS)\widgets_headerctrl.obj \
|
||||||
$(OBJS)\widgets_hyperlnk.obj \
|
$(OBJS)\widgets_hyperlnk.obj \
|
||||||
$(OBJS)\widgets_itemcontainer.obj \
|
$(OBJS)\widgets_itemcontainer.obj \
|
||||||
$(OBJS)\widgets_listbox.obj \
|
$(OBJS)\widgets_listbox.obj \
|
||||||
@@ -310,6 +311,9 @@ $(OBJS)\widgets_fontpicker.obj: .\fontpicker.cpp
|
|||||||
$(OBJS)\widgets_gauge.obj: .\gauge.cpp
|
$(OBJS)\widgets_gauge.obj: .\gauge.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) .\gauge.cpp
|
$(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) .\gauge.cpp
|
||||||
|
|
||||||
|
$(OBJS)\widgets_headerctrl.obj: .\headerctrl.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) .\headerctrl.cpp
|
||||||
|
|
||||||
$(OBJS)\widgets_hyperlnk.obj: .\hyperlnk.cpp
|
$(OBJS)\widgets_hyperlnk.obj: .\hyperlnk.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) .\hyperlnk.cpp
|
$(CXX) -q -c -P -o$@ $(WIDGETS_CXXFLAGS) .\hyperlnk.cpp
|
||||||
|
|
||||||
|
@@ -44,6 +44,7 @@ WIDGETS_OBJECTS = \
|
|||||||
$(OBJS)\widgets_filepicker.o \
|
$(OBJS)\widgets_filepicker.o \
|
||||||
$(OBJS)\widgets_fontpicker.o \
|
$(OBJS)\widgets_fontpicker.o \
|
||||||
$(OBJS)\widgets_gauge.o \
|
$(OBJS)\widgets_gauge.o \
|
||||||
|
$(OBJS)\widgets_headerctrl.o \
|
||||||
$(OBJS)\widgets_hyperlnk.o \
|
$(OBJS)\widgets_hyperlnk.o \
|
||||||
$(OBJS)\widgets_itemcontainer.o \
|
$(OBJS)\widgets_itemcontainer.o \
|
||||||
$(OBJS)\widgets_listbox.o \
|
$(OBJS)\widgets_listbox.o \
|
||||||
@@ -299,6 +300,9 @@ $(OBJS)\widgets_fontpicker.o: ./fontpicker.cpp
|
|||||||
$(OBJS)\widgets_gauge.o: ./gauge.cpp
|
$(OBJS)\widgets_gauge.o: ./gauge.cpp
|
||||||
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
$(OBJS)\widgets_headerctrl.o: ./headerctrl.cpp
|
||||||
|
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\widgets_hyperlnk.o: ./hyperlnk.cpp
|
$(OBJS)\widgets_hyperlnk.o: ./hyperlnk.cpp
|
||||||
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
@@ -68,6 +68,7 @@ WIDGETS_OBJECTS = \
|
|||||||
widgets_filepicker.o \
|
widgets_filepicker.o \
|
||||||
widgets_fontpicker.o \
|
widgets_fontpicker.o \
|
||||||
widgets_gauge.o \
|
widgets_gauge.o \
|
||||||
|
widgets_headerctrl.o \
|
||||||
widgets_hyperlnk.o \
|
widgets_hyperlnk.o \
|
||||||
widgets_itemcontainer.o \
|
widgets_itemcontainer.o \
|
||||||
widgets_listbox.o \
|
widgets_listbox.o \
|
||||||
@@ -165,6 +166,9 @@ widgets_fontpicker.o: ./fontpicker.cpp
|
|||||||
widgets_gauge.o: ./gauge.cpp
|
widgets_gauge.o: ./gauge.cpp
|
||||||
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
widgets_headerctrl.o: ./headerctrl.cpp
|
||||||
|
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
widgets_hyperlnk.o: ./hyperlnk.cpp
|
widgets_hyperlnk.o: ./hyperlnk.cpp
|
||||||
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(WIDGETS_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
@@ -46,6 +46,7 @@ WIDGETS_OBJECTS = \
|
|||||||
$(OBJS)\widgets_filepicker.obj \
|
$(OBJS)\widgets_filepicker.obj \
|
||||||
$(OBJS)\widgets_fontpicker.obj \
|
$(OBJS)\widgets_fontpicker.obj \
|
||||||
$(OBJS)\widgets_gauge.obj \
|
$(OBJS)\widgets_gauge.obj \
|
||||||
|
$(OBJS)\widgets_headerctrl.obj \
|
||||||
$(OBJS)\widgets_hyperlnk.obj \
|
$(OBJS)\widgets_hyperlnk.obj \
|
||||||
$(OBJS)\widgets_itemcontainer.obj \
|
$(OBJS)\widgets_itemcontainer.obj \
|
||||||
$(OBJS)\widgets_listbox.obj \
|
$(OBJS)\widgets_listbox.obj \
|
||||||
@@ -433,6 +434,9 @@ $(OBJS)\widgets_fontpicker.obj: .\fontpicker.cpp
|
|||||||
$(OBJS)\widgets_gauge.obj: .\gauge.cpp
|
$(OBJS)\widgets_gauge.obj: .\gauge.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) .\gauge.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) .\gauge.cpp
|
||||||
|
|
||||||
|
$(OBJS)\widgets_headerctrl.obj: .\headerctrl.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) .\headerctrl.cpp
|
||||||
|
|
||||||
$(OBJS)\widgets_hyperlnk.obj: .\hyperlnk.cpp
|
$(OBJS)\widgets_hyperlnk.obj: .\hyperlnk.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) .\hyperlnk.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(WIDGETS_CXXFLAGS) .\hyperlnk.cpp
|
||||||
|
|
||||||
|
@@ -37,6 +37,7 @@
|
|||||||
filepicker.cpp
|
filepicker.cpp
|
||||||
fontpicker.cpp
|
fontpicker.cpp
|
||||||
gauge.cpp
|
gauge.cpp
|
||||||
|
headerctrl.cpp
|
||||||
hyperlnk.cpp
|
hyperlnk.cpp
|
||||||
itemcontainer.cpp
|
itemcontainer.cpp
|
||||||
listbox.cpp
|
listbox.cpp
|
||||||
|
@@ -328,6 +328,9 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath=".\gauge.cpp">
|
RelativePath=".\gauge.cpp">
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\headerctrl.cpp">
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\hyperlnk.cpp">
|
RelativePath=".\hyperlnk.cpp">
|
||||||
</File>
|
</File>
|
||||||
|
@@ -866,6 +866,10 @@
|
|||||||
RelativePath=".\gauge.cpp"
|
RelativePath=".\gauge.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\headerctrl.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\hyperlnk.cpp"
|
RelativePath=".\hyperlnk.cpp"
|
||||||
>
|
>
|
||||||
|
@@ -838,6 +838,10 @@
|
|||||||
RelativePath=".\gauge.cpp"
|
RelativePath=".\gauge.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\headerctrl.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\hyperlnk.cpp"
|
RelativePath=".\hyperlnk.cpp"
|
||||||
>
|
>
|
||||||
|
Reference in New Issue
Block a user