wx/msw/frame.h \
wx/msw/gauge.h \
wx/msw/gdiimage.h \
- wx/msw/headercol.h \
wx/msw/headerctrl.h \
wx/msw/icon.h \
wx/msw/imaglist.h \
wx/msw/frame.h \
wx/msw/gauge.h \
wx/msw/gdiimage.h \
- wx/msw/headercol.h \
wx/msw/headerctrl.h \
wx/msw/icon.h \
wx/msw/imaglist.h \
wx/generic/dirctrlg.h \
wx/generic/dragimgg.h \
wx/generic/filectrlg.h \
- wx/generic/headercol.h \
wx/generic/headerctrl.h \
wx/generic/logg.h \
wx/generic/msgdlgg.h \
monodll_dirctrlg.o \
monodll_dragimgg.o \
monodll_filectrlg.o \
- monodll_headercolg.o \
monodll_headerctrlg.o \
monodll_listbkg.o \
monodll_logg.o \
monodll_dirctrlg.o \
monodll_dragimgg.o \
monodll_filectrlg.o \
- monodll_headercolg.o \
monodll_headerctrlg.o \
monodll_listbkg.o \
monodll_logg.o \
monodll_msw_filedlg.o \
monodll_msw_frame.o \
monodll_msw_gauge.o \
- monodll_headercol.o \
monodll_headerctrl.o \
monodll_msw_iniconf.o \
monodll_msw_listbox.o \
monodll_msw_filedlg.o \
monodll_msw_frame.o \
monodll_msw_gauge.o \
- monodll_headercol.o \
monodll_headerctrl.o \
monodll_msw_iniconf.o \
monodll_msw_listbox.o \
monolib_dirctrlg.o \
monolib_dragimgg.o \
monolib_filectrlg.o \
- monolib_headercolg.o \
monolib_headerctrlg.o \
monolib_listbkg.o \
monolib_logg.o \
monolib_dirctrlg.o \
monolib_dragimgg.o \
monolib_filectrlg.o \
- monolib_headercolg.o \
monolib_headerctrlg.o \
monolib_listbkg.o \
monolib_logg.o \
monolib_msw_filedlg.o \
monolib_msw_frame.o \
monolib_msw_gauge.o \
- monolib_headercol.o \
monolib_headerctrl.o \
monolib_msw_iniconf.o \
monolib_msw_listbox.o \
monolib_msw_filedlg.o \
monolib_msw_frame.o \
monolib_msw_gauge.o \
- monolib_headercol.o \
monolib_headerctrl.o \
monolib_msw_iniconf.o \
monolib_msw_listbox.o \
coredll_dirctrlg.o \
coredll_dragimgg.o \
coredll_filectrlg.o \
- coredll_headercolg.o \
coredll_headerctrlg.o \
coredll_listbkg.o \
coredll_logg.o \
coredll_dirctrlg.o \
coredll_dragimgg.o \
coredll_filectrlg.o \
- coredll_headercolg.o \
coredll_headerctrlg.o \
coredll_listbkg.o \
coredll_logg.o \
coredll_msw_filedlg.o \
coredll_msw_frame.o \
coredll_msw_gauge.o \
- coredll_headercol.o \
coredll_headerctrl.o \
coredll_msw_iniconf.o \
coredll_msw_listbox.o \
coredll_msw_filedlg.o \
coredll_msw_frame.o \
coredll_msw_gauge.o \
- coredll_headercol.o \
coredll_headerctrl.o \
coredll_msw_iniconf.o \
coredll_msw_listbox.o \
corelib_dirctrlg.o \
corelib_dragimgg.o \
corelib_filectrlg.o \
- corelib_headercolg.o \
corelib_headerctrlg.o \
corelib_listbkg.o \
corelib_logg.o \
corelib_dirctrlg.o \
corelib_dragimgg.o \
corelib_filectrlg.o \
- corelib_headercolg.o \
corelib_headerctrlg.o \
corelib_listbkg.o \
corelib_logg.o \
corelib_msw_filedlg.o \
corelib_msw_frame.o \
corelib_msw_gauge.o \
- corelib_headercol.o \
corelib_headerctrl.o \
corelib_msw_iniconf.o \
corelib_msw_listbox.o \
corelib_msw_filedlg.o \
corelib_msw_frame.o \
corelib_msw_gauge.o \
- corelib_headercol.o \
corelib_headerctrl.o \
corelib_msw_iniconf.o \
corelib_msw_listbox.o \
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_msw_gauge.o: $(srcdir)/src/msw/gauge.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/gauge.cpp
-@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_headercol.o: $(srcdir)/src/msw/headercol.cpp $(MONODLL_ODEP)
-@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
-
-@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_headercol.o: $(srcdir)/src/msw/headercol.cpp $(MONODLL_ODEP)
-@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
-
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
@COND_USE_GUI_1@monodll_filectrlg.o: $(srcdir)/src/generic/filectrlg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/filectrlg.cpp
-@COND_USE_GUI_1@monodll_headercolg.o: $(srcdir)/src/generic/headercolg.cpp $(MONODLL_ODEP)
-@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/headercolg.cpp
-
@COND_USE_GUI_1@monodll_headerctrlg.o: $(srcdir)/src/generic/headerctrlg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/headerctrlg.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_msw_gauge.o: $(srcdir)/src/msw/gauge.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/gauge.cpp
-@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_headercol.o: $(srcdir)/src/msw/headercol.cpp $(MONOLIB_ODEP)
-@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
-
-@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_headercol.o: $(srcdir)/src/msw/headercol.cpp $(MONOLIB_ODEP)
-@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
-
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
@COND_USE_GUI_1@monolib_filectrlg.o: $(srcdir)/src/generic/filectrlg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/filectrlg.cpp
-@COND_USE_GUI_1@monolib_headercolg.o: $(srcdir)/src/generic/headercolg.cpp $(MONOLIB_ODEP)
-@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/headercolg.cpp
-
@COND_USE_GUI_1@monolib_headerctrlg.o: $(srcdir)/src/generic/headerctrlg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/headerctrlg.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@coredll_msw_gauge.o: $(srcdir)/src/msw/gauge.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/gauge.cpp
-@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_headercol.o: $(srcdir)/src/msw/headercol.cpp $(COREDLL_ODEP)
-@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
-
-@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@coredll_headercol.o: $(srcdir)/src/msw/headercol.cpp $(COREDLL_ODEP)
-@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
-
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
@COND_USE_GUI_1@coredll_filectrlg.o: $(srcdir)/src/generic/filectrlg.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/filectrlg.cpp
-@COND_USE_GUI_1@coredll_headercolg.o: $(srcdir)/src/generic/headercolg.cpp $(COREDLL_ODEP)
-@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/headercolg.cpp
-
@COND_USE_GUI_1@coredll_headerctrlg.o: $(srcdir)/src/generic/headerctrlg.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/headerctrlg.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@corelib_msw_gauge.o: $(srcdir)/src/msw/gauge.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/gauge.cpp
-@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_headercol.o: $(srcdir)/src/msw/headercol.cpp $(CORELIB_ODEP)
-@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
-
-@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@corelib_headercol.o: $(srcdir)/src/msw/headercol.cpp $(CORELIB_ODEP)
-@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/headercol.cpp
-
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_headerctrl.o: $(srcdir)/src/msw/headerctrl.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/headerctrl.cpp
@COND_USE_GUI_1@corelib_filectrlg.o: $(srcdir)/src/generic/filectrlg.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/filectrlg.cpp
-@COND_USE_GUI_1@corelib_headercolg.o: $(srcdir)/src/generic/headercolg.cpp $(CORELIB_ODEP)
-@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/headercolg.cpp
-
@COND_USE_GUI_1@corelib_headerctrlg.o: $(srcdir)/src/generic/headerctrlg.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/headerctrlg.cpp
src/generic/dirctrlg.cpp
src/generic/dragimgg.cpp
src/generic/filectrlg.cpp
- src/generic/headercolg.cpp
src/generic/headerctrlg.cpp
src/generic/listbkg.cpp
src/generic/logg.cpp
wx/generic/dirctrlg.h
wx/generic/dragimgg.h
wx/generic/filectrlg.h
- wx/generic/headercol.h
wx/generic/headerctrl.h
wx/generic/logg.h
wx/generic/msgdlgg.h
src/msw/filedlg.cpp
src/msw/frame.cpp
src/msw/gauge.cpp
- src/msw/headercol.cpp
src/msw/headerctrl.cpp
src/msw/iniconf.cpp
src/msw/listbox.cpp
wx/msw/frame.h
wx/msw/gauge.h
wx/msw/gdiimage.h
- wx/msw/headercol.h
wx/msw/headerctrl.h
wx/msw/icon.h
wx/msw/imaglist.h
$(OBJS)\monodll_filedlg.obj \
$(OBJS)\monodll_frame.obj \
$(OBJS)\monodll_gauge.obj \
- $(OBJS)\monodll_headercol.obj \
$(OBJS)\monodll_headerctrl.obj \
$(OBJS)\monodll_iniconf.obj \
$(OBJS)\monodll_listbox.obj \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
$(OBJS)\monodll_filectrlg.obj \
- $(OBJS)\monodll_headercolg.obj \
$(OBJS)\monodll_headerctrlg.obj \
$(OBJS)\monodll_listbkg.obj \
$(OBJS)\monodll_logg.obj \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
$(OBJS)\monodll_filectrlg.obj \
- $(OBJS)\monodll_headercolg.obj \
$(OBJS)\monodll_headerctrlg.obj \
$(OBJS)\monodll_listbkg.obj \
$(OBJS)\monodll_logg.obj \
$(OBJS)\monolib_filedlg.obj \
$(OBJS)\monolib_frame.obj \
$(OBJS)\monolib_gauge.obj \
- $(OBJS)\monolib_headercol.obj \
$(OBJS)\monolib_headerctrl.obj \
$(OBJS)\monolib_iniconf.obj \
$(OBJS)\monolib_listbox.obj \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
$(OBJS)\monolib_filectrlg.obj \
- $(OBJS)\monolib_headercolg.obj \
$(OBJS)\monolib_headerctrlg.obj \
$(OBJS)\monolib_listbkg.obj \
$(OBJS)\monolib_logg.obj \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
$(OBJS)\monolib_filectrlg.obj \
- $(OBJS)\monolib_headercolg.obj \
$(OBJS)\monolib_headerctrlg.obj \
$(OBJS)\monolib_listbkg.obj \
$(OBJS)\monolib_logg.obj \
$(OBJS)\coredll_filedlg.obj \
$(OBJS)\coredll_frame.obj \
$(OBJS)\coredll_gauge.obj \
- $(OBJS)\coredll_headercol.obj \
$(OBJS)\coredll_headerctrl.obj \
$(OBJS)\coredll_iniconf.obj \
$(OBJS)\coredll_listbox.obj \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
$(OBJS)\coredll_filectrlg.obj \
- $(OBJS)\coredll_headercolg.obj \
$(OBJS)\coredll_headerctrlg.obj \
$(OBJS)\coredll_listbkg.obj \
$(OBJS)\coredll_logg.obj \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
$(OBJS)\coredll_filectrlg.obj \
- $(OBJS)\coredll_headercolg.obj \
$(OBJS)\coredll_headerctrlg.obj \
$(OBJS)\coredll_listbkg.obj \
$(OBJS)\coredll_logg.obj \
$(OBJS)\corelib_filedlg.obj \
$(OBJS)\corelib_frame.obj \
$(OBJS)\corelib_gauge.obj \
- $(OBJS)\corelib_headercol.obj \
$(OBJS)\corelib_headerctrl.obj \
$(OBJS)\corelib_iniconf.obj \
$(OBJS)\corelib_listbox.obj \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
$(OBJS)\corelib_filectrlg.obj \
- $(OBJS)\corelib_headercolg.obj \
$(OBJS)\corelib_headerctrlg.obj \
$(OBJS)\corelib_listbkg.obj \
$(OBJS)\corelib_logg.obj \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
$(OBJS)\corelib_filectrlg.obj \
- $(OBJS)\corelib_headercolg.obj \
$(OBJS)\corelib_headerctrlg.obj \
$(OBJS)\corelib_listbkg.obj \
$(OBJS)\corelib_logg.obj \
$(OBJS)\monodll_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\frame.cpp
-$(OBJS)\monodll_headercol.obj: ..\..\src\msw\headercol.cpp
- $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\headercol.cpp
-
$(OBJS)\monodll_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\monodll_headercolg.obj: ..\..\src\generic\headercolg.cpp
- $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\headercolg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
$(OBJS)\monolib_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\frame.cpp
-$(OBJS)\monolib_headercol.obj: ..\..\src\msw\headercol.cpp
- $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\headercol.cpp
-
$(OBJS)\monolib_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\monolib_headercolg.obj: ..\..\src\generic\headercolg.cpp
- $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\headercolg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
$(OBJS)\coredll_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\frame.cpp
-$(OBJS)\coredll_headercol.obj: ..\..\src\msw\headercol.cpp
- $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\headercol.cpp
-
$(OBJS)\coredll_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\coredll_headercolg.obj: ..\..\src\generic\headercolg.cpp
- $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\headercolg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
$(OBJS)\corelib_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\frame.cpp
-$(OBJS)\corelib_headercol.obj: ..\..\src\msw\headercol.cpp
- $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\headercol.cpp
-
$(OBJS)\corelib_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\corelib_headercolg.obj: ..\..\src\generic\headercolg.cpp
- $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\headercolg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
$(OBJS)\monodll_filedlg.o \
$(OBJS)\monodll_frame.o \
$(OBJS)\monodll_gauge.o \
- $(OBJS)\monodll_headercol.o \
$(OBJS)\monodll_headerctrl.o \
$(OBJS)\monodll_iniconf.o \
$(OBJS)\monodll_listbox.o \
$(OBJS)\monodll_dirctrlg.o \
$(OBJS)\monodll_dragimgg.o \
$(OBJS)\monodll_filectrlg.o \
- $(OBJS)\monodll_headercolg.o \
$(OBJS)\monodll_headerctrlg.o \
$(OBJS)\monodll_listbkg.o \
$(OBJS)\monodll_logg.o \
$(OBJS)\monodll_dirctrlg.o \
$(OBJS)\monodll_dragimgg.o \
$(OBJS)\monodll_filectrlg.o \
- $(OBJS)\monodll_headercolg.o \
$(OBJS)\monodll_headerctrlg.o \
$(OBJS)\monodll_listbkg.o \
$(OBJS)\monodll_logg.o \
$(OBJS)\monolib_filedlg.o \
$(OBJS)\monolib_frame.o \
$(OBJS)\monolib_gauge.o \
- $(OBJS)\monolib_headercol.o \
$(OBJS)\monolib_headerctrl.o \
$(OBJS)\monolib_iniconf.o \
$(OBJS)\monolib_listbox.o \
$(OBJS)\monolib_dirctrlg.o \
$(OBJS)\monolib_dragimgg.o \
$(OBJS)\monolib_filectrlg.o \
- $(OBJS)\monolib_headercolg.o \
$(OBJS)\monolib_headerctrlg.o \
$(OBJS)\monolib_listbkg.o \
$(OBJS)\monolib_logg.o \
$(OBJS)\monolib_dirctrlg.o \
$(OBJS)\monolib_dragimgg.o \
$(OBJS)\monolib_filectrlg.o \
- $(OBJS)\monolib_headercolg.o \
$(OBJS)\monolib_headerctrlg.o \
$(OBJS)\monolib_listbkg.o \
$(OBJS)\monolib_logg.o \
$(OBJS)\coredll_filedlg.o \
$(OBJS)\coredll_frame.o \
$(OBJS)\coredll_gauge.o \
- $(OBJS)\coredll_headercol.o \
$(OBJS)\coredll_headerctrl.o \
$(OBJS)\coredll_iniconf.o \
$(OBJS)\coredll_listbox.o \
$(OBJS)\coredll_dirctrlg.o \
$(OBJS)\coredll_dragimgg.o \
$(OBJS)\coredll_filectrlg.o \
- $(OBJS)\coredll_headercolg.o \
$(OBJS)\coredll_headerctrlg.o \
$(OBJS)\coredll_listbkg.o \
$(OBJS)\coredll_logg.o \
$(OBJS)\coredll_dirctrlg.o \
$(OBJS)\coredll_dragimgg.o \
$(OBJS)\coredll_filectrlg.o \
- $(OBJS)\coredll_headercolg.o \
$(OBJS)\coredll_headerctrlg.o \
$(OBJS)\coredll_listbkg.o \
$(OBJS)\coredll_logg.o \
$(OBJS)\corelib_filedlg.o \
$(OBJS)\corelib_frame.o \
$(OBJS)\corelib_gauge.o \
- $(OBJS)\corelib_headercol.o \
$(OBJS)\corelib_headerctrl.o \
$(OBJS)\corelib_iniconf.o \
$(OBJS)\corelib_listbox.o \
$(OBJS)\corelib_dirctrlg.o \
$(OBJS)\corelib_dragimgg.o \
$(OBJS)\corelib_filectrlg.o \
- $(OBJS)\corelib_headercolg.o \
$(OBJS)\corelib_headerctrlg.o \
$(OBJS)\corelib_listbkg.o \
$(OBJS)\corelib_logg.o \
$(OBJS)\corelib_dirctrlg.o \
$(OBJS)\corelib_dragimgg.o \
$(OBJS)\corelib_filectrlg.o \
- $(OBJS)\corelib_headercolg.o \
$(OBJS)\corelib_headerctrlg.o \
$(OBJS)\corelib_listbkg.o \
$(OBJS)\corelib_logg.o \
$(OBJS)\monodll_frame.o: ../../src/msw/frame.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
-$(OBJS)\monodll_headercol.o: ../../src/msw/headercol.cpp
- $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
-
$(OBJS)\monodll_headerctrl.o: ../../src/msw/headerctrl.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
-ifeq ($(USE_GUI),1)
-$(OBJS)\monodll_headercolg.o: ../../src/generic/headercolg.cpp
- $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
-endif
-
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_headerctrlg.o: ../../src/generic/headerctrlg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_frame.o: ../../src/msw/frame.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
-$(OBJS)\monolib_headercol.o: ../../src/msw/headercol.cpp
- $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
-
$(OBJS)\monolib_headerctrl.o: ../../src/msw/headerctrl.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
-ifeq ($(USE_GUI),1)
-$(OBJS)\monolib_headercolg.o: ../../src/generic/headercolg.cpp
- $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
-endif
-
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_headerctrlg.o: ../../src/generic/headerctrlg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\coredll_frame.o: ../../src/msw/frame.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
-$(OBJS)\coredll_headercol.o: ../../src/msw/headercol.cpp
- $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
-
$(OBJS)\coredll_headerctrl.o: ../../src/msw/headerctrl.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
-ifeq ($(USE_GUI),1)
-$(OBJS)\coredll_headercolg.o: ../../src/generic/headercolg.cpp
- $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
-endif
-
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_headerctrlg.o: ../../src/generic/headerctrlg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\corelib_frame.o: ../../src/msw/frame.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
-$(OBJS)\corelib_headercol.o: ../../src/msw/headercol.cpp
- $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
-
$(OBJS)\corelib_headerctrl.o: ../../src/msw/headerctrl.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
-ifeq ($(USE_GUI),1)
-$(OBJS)\corelib_headercolg.o: ../../src/generic/headercolg.cpp
- $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
-endif
-
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_headerctrlg.o: ../../src/generic/headerctrlg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_filedlg.obj \
$(OBJS)\monodll_frame.obj \
$(OBJS)\monodll_gauge.obj \
- $(OBJS)\monodll_headercol.obj \
$(OBJS)\monodll_headerctrl.obj \
$(OBJS)\monodll_iniconf.obj \
$(OBJS)\monodll_listbox.obj \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
$(OBJS)\monodll_filectrlg.obj \
- $(OBJS)\monodll_headercolg.obj \
$(OBJS)\monodll_headerctrlg.obj \
$(OBJS)\monodll_listbkg.obj \
$(OBJS)\monodll_logg.obj \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
$(OBJS)\monodll_filectrlg.obj \
- $(OBJS)\monodll_headercolg.obj \
$(OBJS)\monodll_headerctrlg.obj \
$(OBJS)\monodll_listbkg.obj \
$(OBJS)\monodll_logg.obj \
$(OBJS)\monolib_filedlg.obj \
$(OBJS)\monolib_frame.obj \
$(OBJS)\monolib_gauge.obj \
- $(OBJS)\monolib_headercol.obj \
$(OBJS)\monolib_headerctrl.obj \
$(OBJS)\monolib_iniconf.obj \
$(OBJS)\monolib_listbox.obj \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
$(OBJS)\monolib_filectrlg.obj \
- $(OBJS)\monolib_headercolg.obj \
$(OBJS)\monolib_headerctrlg.obj \
$(OBJS)\monolib_listbkg.obj \
$(OBJS)\monolib_logg.obj \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
$(OBJS)\monolib_filectrlg.obj \
- $(OBJS)\monolib_headercolg.obj \
$(OBJS)\monolib_headerctrlg.obj \
$(OBJS)\monolib_listbkg.obj \
$(OBJS)\monolib_logg.obj \
$(OBJS)\coredll_filedlg.obj \
$(OBJS)\coredll_frame.obj \
$(OBJS)\coredll_gauge.obj \
- $(OBJS)\coredll_headercol.obj \
$(OBJS)\coredll_headerctrl.obj \
$(OBJS)\coredll_iniconf.obj \
$(OBJS)\coredll_listbox.obj \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
$(OBJS)\coredll_filectrlg.obj \
- $(OBJS)\coredll_headercolg.obj \
$(OBJS)\coredll_headerctrlg.obj \
$(OBJS)\coredll_listbkg.obj \
$(OBJS)\coredll_logg.obj \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
$(OBJS)\coredll_filectrlg.obj \
- $(OBJS)\coredll_headercolg.obj \
$(OBJS)\coredll_headerctrlg.obj \
$(OBJS)\coredll_listbkg.obj \
$(OBJS)\coredll_logg.obj \
$(OBJS)\corelib_filedlg.obj \
$(OBJS)\corelib_frame.obj \
$(OBJS)\corelib_gauge.obj \
- $(OBJS)\corelib_headercol.obj \
$(OBJS)\corelib_headerctrl.obj \
$(OBJS)\corelib_iniconf.obj \
$(OBJS)\corelib_listbox.obj \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
$(OBJS)\corelib_filectrlg.obj \
- $(OBJS)\corelib_headercolg.obj \
$(OBJS)\corelib_headerctrlg.obj \
$(OBJS)\corelib_listbkg.obj \
$(OBJS)\corelib_logg.obj \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
$(OBJS)\corelib_filectrlg.obj \
- $(OBJS)\corelib_headercolg.obj \
$(OBJS)\corelib_headerctrlg.obj \
$(OBJS)\corelib_listbkg.obj \
$(OBJS)\corelib_logg.obj \
$(OBJS)\monodll_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\frame.cpp
-$(OBJS)\monodll_headercol.obj: ..\..\src\msw\headercol.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\headercol.cpp
-
$(OBJS)\monodll_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\monodll_headercolg.obj: ..\..\src\generic\headercolg.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\headercolg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
$(OBJS)\monolib_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\frame.cpp
-$(OBJS)\monolib_headercol.obj: ..\..\src\msw\headercol.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\headercol.cpp
-
$(OBJS)\monolib_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\monolib_headercolg.obj: ..\..\src\generic\headercolg.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\headercolg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
$(OBJS)\coredll_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\frame.cpp
-$(OBJS)\coredll_headercol.obj: ..\..\src\msw\headercol.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\headercol.cpp
-
$(OBJS)\coredll_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\coredll_headercolg.obj: ..\..\src\generic\headercolg.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\headercolg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
$(OBJS)\corelib_frame.obj: ..\..\src\msw\frame.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\frame.cpp
-$(OBJS)\corelib_headercol.obj: ..\..\src\msw\headercol.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\headercol.cpp
-
$(OBJS)\corelib_headerctrl.obj: ..\..\src\msw\headerctrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\msw\headerctrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\filectrlg.cpp
!endif
-!if "$(USE_GUI)" == "1"
-$(OBJS)\corelib_headercolg.obj: ..\..\src\generic\headercolg.cpp
- $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\headercolg.cpp
-!endif
-
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_headerctrlg.obj: ..\..\src\generic\headerctrlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\headerctrlg.cpp
$(OBJS)\monodll_filedlg.obj &
$(OBJS)\monodll_frame.obj &
$(OBJS)\monodll_gauge.obj &
- $(OBJS)\monodll_headercol.obj &
$(OBJS)\monodll_headerctrl.obj &
$(OBJS)\monodll_iniconf.obj &
$(OBJS)\monodll_listbox.obj &
$(OBJS)\monodll_dirctrlg.obj &
$(OBJS)\monodll_dragimgg.obj &
$(OBJS)\monodll_filectrlg.obj &
- $(OBJS)\monodll_headercolg.obj &
$(OBJS)\monodll_headerctrlg.obj &
$(OBJS)\monodll_listbkg.obj &
$(OBJS)\monodll_logg.obj &
$(OBJS)\monodll_dirctrlg.obj &
$(OBJS)\monodll_dragimgg.obj &
$(OBJS)\monodll_filectrlg.obj &
- $(OBJS)\monodll_headercolg.obj &
$(OBJS)\monodll_headerctrlg.obj &
$(OBJS)\monodll_listbkg.obj &
$(OBJS)\monodll_logg.obj &
$(OBJS)\monolib_filedlg.obj &
$(OBJS)\monolib_frame.obj &
$(OBJS)\monolib_gauge.obj &
- $(OBJS)\monolib_headercol.obj &
$(OBJS)\monolib_headerctrl.obj &
$(OBJS)\monolib_iniconf.obj &
$(OBJS)\monolib_listbox.obj &
$(OBJS)\monolib_dirctrlg.obj &
$(OBJS)\monolib_dragimgg.obj &
$(OBJS)\monolib_filectrlg.obj &
- $(OBJS)\monolib_headercolg.obj &
$(OBJS)\monolib_headerctrlg.obj &
$(OBJS)\monolib_listbkg.obj &
$(OBJS)\monolib_logg.obj &
$(OBJS)\monolib_dirctrlg.obj &
$(OBJS)\monolib_dragimgg.obj &
$(OBJS)\monolib_filectrlg.obj &
- $(OBJS)\monolib_headercolg.obj &
$(OBJS)\monolib_headerctrlg.obj &
$(OBJS)\monolib_listbkg.obj &
$(OBJS)\monolib_logg.obj &
$(OBJS)\coredll_filedlg.obj &
$(OBJS)\coredll_frame.obj &
$(OBJS)\coredll_gauge.obj &
- $(OBJS)\coredll_headercol.obj &
$(OBJS)\coredll_headerctrl.obj &
$(OBJS)\coredll_iniconf.obj &
$(OBJS)\coredll_listbox.obj &
$(OBJS)\coredll_dirctrlg.obj &
$(OBJS)\coredll_dragimgg.obj &
$(OBJS)\coredll_filectrlg.obj &
- $(OBJS)\coredll_headercolg.obj &
$(OBJS)\coredll_headerctrlg.obj &
$(OBJS)\coredll_listbkg.obj &
$(OBJS)\coredll_logg.obj &
$(OBJS)\coredll_dirctrlg.obj &
$(OBJS)\coredll_dragimgg.obj &
$(OBJS)\coredll_filectrlg.obj &
- $(OBJS)\coredll_headercolg.obj &
$(OBJS)\coredll_headerctrlg.obj &
$(OBJS)\coredll_listbkg.obj &
$(OBJS)\coredll_logg.obj &
$(OBJS)\corelib_filedlg.obj &
$(OBJS)\corelib_frame.obj &
$(OBJS)\corelib_gauge.obj &
- $(OBJS)\corelib_headercol.obj &
$(OBJS)\corelib_headerctrl.obj &
$(OBJS)\corelib_iniconf.obj &
$(OBJS)\corelib_listbox.obj &
$(OBJS)\corelib_dirctrlg.obj &
$(OBJS)\corelib_dragimgg.obj &
$(OBJS)\corelib_filectrlg.obj &
- $(OBJS)\corelib_headercolg.obj &
$(OBJS)\corelib_headerctrlg.obj &
$(OBJS)\corelib_listbkg.obj &
$(OBJS)\corelib_logg.obj &
$(OBJS)\corelib_dirctrlg.obj &
$(OBJS)\corelib_dragimgg.obj &
$(OBJS)\corelib_filectrlg.obj &
- $(OBJS)\corelib_headercolg.obj &
$(OBJS)\corelib_headerctrlg.obj &
$(OBJS)\corelib_listbkg.obj &
$(OBJS)\corelib_logg.obj &
$(OBJS)\monodll_frame.obj : .AUTODEPEND ..\..\src\msw\frame.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
-$(OBJS)\monodll_headercol.obj : .AUTODEPEND ..\..\src\msw\headercol.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
-
$(OBJS)\monodll_headerctrl.obj : .AUTODEPEND ..\..\src\msw\headerctrl.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
-!ifeq USE_GUI 1
-$(OBJS)\monodll_headercolg.obj : .AUTODEPEND ..\..\src\generic\headercolg.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
-!endif
-
!ifeq USE_GUI 1
$(OBJS)\monodll_headerctrlg.obj : .AUTODEPEND ..\..\src\generic\headerctrlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
$(OBJS)\monolib_frame.obj : .AUTODEPEND ..\..\src\msw\frame.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
-$(OBJS)\monolib_headercol.obj : .AUTODEPEND ..\..\src\msw\headercol.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
-
$(OBJS)\monolib_headerctrl.obj : .AUTODEPEND ..\..\src\msw\headerctrl.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
-!ifeq USE_GUI 1
-$(OBJS)\monolib_headercolg.obj : .AUTODEPEND ..\..\src\generic\headercolg.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
-!endif
-
!ifeq USE_GUI 1
$(OBJS)\monolib_headerctrlg.obj : .AUTODEPEND ..\..\src\generic\headerctrlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
$(OBJS)\coredll_frame.obj : .AUTODEPEND ..\..\src\msw\frame.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
-$(OBJS)\coredll_headercol.obj : .AUTODEPEND ..\..\src\msw\headercol.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
-
$(OBJS)\coredll_headerctrl.obj : .AUTODEPEND ..\..\src\msw\headerctrl.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
-!ifeq USE_GUI 1
-$(OBJS)\coredll_headercolg.obj : .AUTODEPEND ..\..\src\generic\headercolg.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
-!endif
-
!ifeq USE_GUI 1
$(OBJS)\coredll_headerctrlg.obj : .AUTODEPEND ..\..\src\generic\headerctrlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
$(OBJS)\corelib_frame.obj : .AUTODEPEND ..\..\src\msw\frame.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
-$(OBJS)\corelib_headercol.obj : .AUTODEPEND ..\..\src\msw\headercol.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
-
$(OBJS)\corelib_headerctrl.obj : .AUTODEPEND ..\..\src\msw\headerctrl.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
-!ifeq USE_GUI 1
-$(OBJS)\corelib_headercolg.obj : .AUTODEPEND ..\..\src\generic\headercolg.cpp
- $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
-!endif
-
!ifeq USE_GUI 1
$(OBJS)\corelib_headerctrlg.obj : .AUTODEPEND ..\..\src\generic\headerctrlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
# End Source File\r
# Begin Source File\r
\r
-SOURCE=..\..\src\msw\headercol.cpp\r
-\r
-!IF "$(CFG)" == "core - Win32 DLL Universal Release"\r
-\r
-# PROP Exclude_From_Build 1\r
-\r
-!ELSEIF "$(CFG)" == "core - Win32 DLL Universal Debug"\r
-\r
-# PROP Exclude_From_Build 1\r
-\r
-!ELSEIF "$(CFG)" == "core - Win32 DLL Release"\r
-\r
-\r
-!ELSEIF "$(CFG)" == "core - Win32 DLL Debug"\r
-\r
-\r
-!ELSEIF "$(CFG)" == "core - Win32 Universal Release"\r
-\r
-# PROP Exclude_From_Build 1\r
-\r
-!ELSEIF "$(CFG)" == "core - Win32 Universal Debug"\r
-\r
-# PROP Exclude_From_Build 1\r
-\r
-!ELSEIF "$(CFG)" == "core - Win32 Release"\r
-\r
-\r
-!ELSEIF "$(CFG)" == "core - Win32 Debug"\r
-\r
-\r
-!ENDIF\r
-\r
-# End Source File\r
-# Begin Source File\r
-\r
SOURCE=..\..\src\msw\headerctrl.cpp\r
\r
!IF "$(CFG)" == "core - Win32 DLL Universal Release"\r
# End Source File\r
# Begin Source File\r
\r
-SOURCE=..\..\src\generic\headercolg.cpp\r
-# End Source File\r
-# Begin Source File\r
-\r
SOURCE=..\..\src\generic\headerctrlg.cpp\r
# End Source File\r
# Begin Source File\r
# End Source File\r
# Begin Source File\r
\r
-SOURCE=..\..\include\wx\msw\headercol.h\r
-# End Source File\r
-# Begin Source File\r
-\r
SOURCE=..\..\include\wx\msw\headerctrl.h\r
# End Source File\r
# Begin Source File\r
# End Source File\r
# Begin Source File\r
\r
-SOURCE=..\..\include\wx\generic\headercol.h\r
-# End Source File\r
-# Begin Source File\r
-\r
SOURCE=..\..\include\wx\generic\headerctrl.h\r
# End Source File\r
# Begin Source File\r
<File\r
RelativePath="..\..\src\msw\graphics.cpp">\r
</File>\r
- <File\r
- RelativePath="..\..\src\msw\headercol.cpp">\r
- <FileConfiguration\r
- Name="DLL Universal Release|Win32"\r
- ExcludedFromBuild="TRUE"/>\r
- <FileConfiguration\r
- Name="DLL Universal Debug|Win32"\r
- ExcludedFromBuild="TRUE"/>\r
- <FileConfiguration\r
- Name="Universal Release|Win32"\r
- ExcludedFromBuild="TRUE"/>\r
- <FileConfiguration\r
- Name="Universal Debug|Win32"\r
- ExcludedFromBuild="TRUE"/>\r
- </File>\r
<File\r
RelativePath="..\..\src\msw\headerctrl.cpp">\r
<FileConfiguration\r
<File\r
RelativePath="..\..\src\generic\fontpickerg.cpp">\r
</File>\r
- <File\r
- RelativePath="..\..\src\generic\headercolg.cpp">\r
- </File>\r
<File\r
RelativePath="..\..\src\generic\headerctrlg.cpp">\r
</File>\r
<File\r
RelativePath="..\..\include\wx\msw\glcanvas.h">\r
</File>\r
- <File\r
- RelativePath="..\..\include\wx\msw\headercol.h">\r
- </File>\r
<File\r
RelativePath="..\..\include\wx\msw\headerctrl.h">\r
</File>\r
<File\r
RelativePath="..\..\include\wx\generic\gridsel.h">\r
</File>\r
- <File\r
- RelativePath="..\..\include\wx\generic\headercol.h">\r
- </File>\r
<File\r
RelativePath="..\..\include\wx\generic\headerctrl.h">\r
</File>\r
RelativePath="..\..\src\msw\graphics.cpp"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\src\msw\headercol.cpp"\r
- >\r
- <FileConfiguration\r
- Name="DLL Universal Release|Win32"\r
- ExcludedFromBuild="true"\r
- />\r
- <FileConfiguration\r
- Name="DLL Universal Debug|Win32"\r
- ExcludedFromBuild="true"\r
- />\r
- <FileConfiguration\r
- Name="Universal Release|Win32"\r
- ExcludedFromBuild="true"\r
- />\r
- <FileConfiguration\r
- Name="Universal Debug|Win32"\r
- ExcludedFromBuild="true"\r
- />\r
- </File>\r
<File\r
RelativePath="..\..\src\msw\headerctrl.cpp"\r
>\r
RelativePath="..\..\src\generic\fontpickerg.cpp"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\src\generic\headercolg.cpp"\r
- >\r
- </File>\r
<File\r
RelativePath="..\..\src\generic\headerctrlg.cpp"\r
>\r
RelativePath="..\..\include\wx\msw\glcanvas.h"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\include\wx\msw\headercol.h"\r
- >\r
- </File>\r
<File\r
RelativePath="..\..\include\wx\msw\headerctrl.h"\r
>\r
RelativePath="..\..\include\wx\generic\gridsel.h"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\include\wx\generic\headercol.h"\r
- >\r
- </File>\r
<File\r
RelativePath="..\..\include\wx\generic\headerctrl.h"\r
>\r
RelativePath="..\..\src\msw\graphics.cpp"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\src\msw\headercol.cpp"\r
- >\r
- <FileConfiguration\r
- Name="DLL Universal Release|Win32"\r
- ExcludedFromBuild="true"\r
- />\r
- <FileConfiguration\r
- Name="DLL Universal Debug|Win32"\r
- ExcludedFromBuild="true"\r
- />\r
- <FileConfiguration\r
- Name="Universal Release|Win32"\r
- ExcludedFromBuild="true"\r
- />\r
- <FileConfiguration\r
- Name="Universal Debug|Win32"\r
- ExcludedFromBuild="true"\r
- />\r
- </File>\r
<File\r
RelativePath="..\..\src\msw\headerctrl.cpp"\r
>\r
RelativePath="..\..\src\generic\fontpickerg.cpp"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\src\generic\headercolg.cpp"\r
- >\r
- </File>\r
<File\r
RelativePath="..\..\src\generic\headerctrlg.cpp"\r
>\r
RelativePath="..\..\include\wx\msw\glcanvas.h"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\include\wx\msw\headercol.h"\r
- >\r
- </File>\r
<File\r
RelativePath="..\..\include\wx\msw\headerctrl.h"\r
>\r
RelativePath="..\..\include\wx\generic\gridsel.h"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\include\wx\generic\headercol.h"\r
- >\r
- </File>\r
<File\r
RelativePath="..\..\include\wx\generic\headerctrl.h"\r
>\r
wxDATAVIEW_COL_HIDDEN = wxCOL_HIDDEN
};
-class WXDLLIMPEXP_ADV wxDataViewColumnBase : public
-// native implementations of wxDataViewCtrl have their own implementations of
-// wxDataViewColumnBase and so they need to only inherit from
-// wxHeaderColumnBase to provide the same interface as the generic port which
-// uses the platform native (if any) wxHeaderColumn
-#ifdef wxHAS_GENERIC_DATAVIEWCTRL
- wxHeaderColumn
-#else
- wxHeaderColumnBase
-#endif
+class WXDLLIMPEXP_ADV wxDataViewColumnBase : public wxHeaderColumnBase
{
public:
- wxDataViewColumnBase( const wxString &title, wxDataViewRenderer *renderer,
- unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH,
- wxAlignment align = wxALIGN_CENTER,
- int flags = wxDATAVIEW_COL_RESIZABLE );
- wxDataViewColumnBase( const wxBitmap &bitmap, wxDataViewRenderer *renderer,
- unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH,
- wxAlignment align = wxALIGN_CENTER,
- int flags = wxDATAVIEW_COL_RESIZABLE );
+ // ctor for the text columns: takes ownership of renderer
+ wxDataViewColumnBase(wxDataViewRenderer *renderer,
+ unsigned int model_column)
+ {
+ Init(renderer, model_column);
+ }
+
+ // ctor for the bitmap columns
+ wxDataViewColumnBase(const wxBitmap& bitmap,
+ wxDataViewRenderer *renderer,
+ unsigned int model_column)
+ : m_bitmap(bitmap)
+ {
+ Init(renderer, model_column);
+ }
+
virtual ~wxDataViewColumnBase();
// setters:
wxDataViewCtrl *GetOwner() const { return m_owner; }
wxDataViewRenderer* GetRenderer() const { return m_renderer; }
-#ifndef wxHAS_GENERIC_DATAVIEWCTRL
// implement some of base class pure virtuals (the rest is port-dependent
// and done differently in generic and native versions)
virtual void SetBitmap( const wxBitmap& bitmap ) { m_bitmap = bitmap; }
virtual wxBitmap GetBitmap() const { return m_bitmap; }
-#endif // !wxHAS_GENERIC_DATAVIEWCTRL
protected:
wxDataViewRenderer *m_renderer;
int m_model_column;
-#ifndef wxHAS_GENERIC_DATAVIEWCTRL
wxBitmap m_bitmap;
-#endif // !wxHAS_GENERIC_DATAVIEWCTRL
wxDataViewCtrl *m_owner;
-protected:
- DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewColumnBase)
+private:
+ // common part of all ctors
+ void Init(wxDataViewRenderer *renderer, unsigned int model_column);
};
// ---------------------------------------------------------
class WXDLLIMPEXP_ADV wxDataViewRenderer: public wxDataViewRendererBase
{
public:
- wxDataViewRenderer( const wxString &varianttype,
+ wxDataViewRenderer( const wxString &varianttype,
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int align = wxDVR_DEFAULT_ALIGNMENT );
virtual ~wxDataViewRenderer();
virtual bool Activate( wxRect WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
- const wxDataViewItem & WXUNUSED(item),
+ const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col) )
{ return false; }
virtual bool LeftClick( wxPoint WXUNUSED(cursor),
wxRect WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
- const wxDataViewItem & WXUNUSED(item),
+ const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col) )
{ return false; }
virtual bool RightClick( wxPoint WXUNUSED(cursor),
wxRect WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
- const wxDataViewItem & WXUNUSED(item),
+ const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col) )
{ return false; }
virtual bool StartDrag( wxPoint WXUNUSED(cursor),
wxRect WXUNUSED(cell),
wxDataViewModel *WXUNUSED(model),
- const wxDataViewItem & WXUNUSED(item),
+ const wxDataViewItem & WXUNUSED(item),
unsigned int WXUNUSED(col) )
{ return false; }
// Create DC on request
virtual wxDC *GetDC();
-
+
void SetHasAttr( bool set ) { m_hasAttr = set; }
void SetAttr( const wxDataViewItemAttr &attr ) { m_attr = attr; }
bool GetWantsAttr() { return m_wantsAttr; }
wxDC *m_dc;
int m_align;
wxDataViewCellMode m_mode;
-
+
protected:
bool m_wantsAttr;
bool m_hasAttr;
virtual bool HasEditorCtrl();
virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value );
-
+
protected:
wxString m_text;
int align = wxDVR_DEFAULT_ALIGNMENT );
bool Render( wxRect cell, wxDC *dc, int state );
-
+
protected:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRendererAttr)
};
bool GetValue( wxVariant &value ) const;
bool Render( wxRect cell, wxDC *dc, int state );
- bool Activate( wxRect cell, wxDataViewModel *model, const wxDataViewItem & item,
+ bool Activate( wxRect cell, wxDataViewModel *model, const wxDataViewItem & item,
unsigned int col );
wxSize GetSize() const;
protected:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer)
};
-
-// ---------------------------------------------------------
+
+// ---------------------------------------------------------
// wxDataViewIconTextRenderer
-// ---------------------------------------------------------
+// ---------------------------------------------------------
class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewCustomRenderer
{
public:
- wxDataViewIconTextRenderer( const wxString &varianttype = wxT("wxDataViewIconText"),
+ wxDataViewIconTextRenderer( const wxString &varianttype = wxT("wxDataViewIconText"),
wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
int align = wxDVR_DEFAULT_ALIGNMENT );
virtual ~wxDataViewIconTextRenderer();
-
+
bool SetValue( const wxVariant &value );
bool GetValue( wxVariant &value ) const;
-
+
virtual bool Render( wxRect cell, wxDC *dc, int state );
virtual wxSize GetSize() const;
-
+
virtual bool HasEditorCtrl() { return true; }
virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value );
virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value );
-
+
private:
wxDataViewIconText m_value;
-
+
protected:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer)
};
class WXDLLIMPEXP_ADV wxDataViewColumn : public wxDataViewColumnBase
{
public:
- wxDataViewColumn( const wxString &title, wxDataViewRenderer *renderer,
- unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH,
- wxAlignment align = wxALIGN_CENTER,
- int flags = wxDATAVIEW_COL_RESIZABLE );
- wxDataViewColumn( const wxBitmap &bitmap, wxDataViewRenderer *renderer,
- unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH,
- wxAlignment align = wxALIGN_CENTER,
- int flags = wxDATAVIEW_COL_RESIZABLE );
-
- // override some methods to notify the owner about changes
- virtual void SetFlags(int flags);
- virtual void SetWidth(int width);
- virtual void SetSortOrder(bool ascending);
-
- // override this one to return our default width for columns whose width
- // was not explicitly set
- virtual int GetWidth() const;
+ wxDataViewColumn(const wxString& title,
+ wxDataViewRenderer *renderer,
+ unsigned int model_column,
+ int width = wxDVC_DEFAULT_WIDTH,
+ wxAlignment align = wxALIGN_CENTER,
+ int flags = wxDATAVIEW_COL_RESIZABLE)
+ : wxDataViewColumnBase(renderer, model_column),
+ m_title(title)
+ {
+ Init(width, align, flags);
+ }
+
+ wxDataViewColumn(const wxBitmap& bitmap,
+ wxDataViewRenderer *renderer,
+ unsigned int model_column,
+ int width = wxDVC_DEFAULT_WIDTH,
+ wxAlignment align = wxALIGN_CENTER,
+ int flags = wxDATAVIEW_COL_RESIZABLE)
+ : wxDataViewColumnBase(bitmap, renderer, model_column)
+ {
+ Init(width, align, flags);
+ }
+
+ // implement wxHeaderColumnBase methods
+ virtual void SetTitle(const wxString& title) { m_title = title; }
+ virtual wxString GetTitle() const { return m_title; }
+
+ virtual void SetWidth(int width) { m_width = width; }
+ virtual int GetWidth() const { return m_width; }
+
+ virtual void SetMinWidth(int minWidth) { m_minWidth = minWidth; }
+ virtual int GetMinWidth() const { return m_minWidth; }
+
+ virtual void SetAlignment(wxAlignment align) { m_align = align; }
+ virtual wxAlignment GetAlignment() const { return m_align; }
+
+ virtual void SetFlags(int flags) { m_flags = flags; }
+ virtual int GetFlags() const { return m_flags; }
+
+ virtual void SetAsSortKey(bool sort = true) { m_sort = sort; }
+ virtual bool IsSortKey() const { return m_sort; }
+
+ virtual void SetSortOrder(bool ascending) { m_sortAscending = ascending; }
+ virtual bool IsSortOrderAscending() const { return m_sortAscending; }
private:
+ // common part of all ctors
+ void Init(int width, wxAlignment align, int flags)
+ {
+ m_width = width == wxCOL_WIDTH_DEFAULT ? wxDVC_DEFAULT_WIDTH : width;
+ m_minWidth = 0;
+ m_align = align;
+ m_flags = flags;
+ m_sort = false;
+ m_sortAscending = true;
+ }
+
// like SetWidth() but does not ask the header window of the
// wxDataViewCtrl to reflect the width-change.
void SetInternalWidth(int width);
+
+ wxString m_title;
+ int m_width,
+ m_minWidth;
+ wxAlignment m_align;
+ int m_flags;
+ bool m_sort,
+ m_sortAscending;
+
friend class wxDataViewHeaderWindowBase;
friend class wxDataViewHeaderWindow;
friend class wxDataViewHeaderWindowMSW;
-
- DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewColumn)
};
// ---------------------------------------------------------
const wxValidator& validator = wxDefaultValidator );
virtual bool AssociateModel( wxDataViewModel *model );
-
+
virtual bool AppendColumn( wxDataViewColumn *col );
virtual bool PrependColumn( wxDataViewColumn *col );
virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col );
virtual int GetColumnPosition( const wxDataViewColumn *column ) const;
virtual wxDataViewColumn *GetSortingColumn() const;
-
+
virtual wxDataViewItem GetSelection() const;
virtual int GetSelections( wxDataViewItemArray & sel ) const;
virtual void SetSelections( const wxDataViewItemArray & sel );
virtual void Expand( const wxDataViewItem & item );
virtual void Collapse( const wxDataViewItem & item );
-
+
virtual void SetFocus();
protected:
- virtual int GetSelections( wxArrayInt & sel ) const;
+ virtual int GetSelections( wxArrayInt & sel ) const;
virtual void SetSelections( const wxArrayInt & sel );
virtual void Select( int row );
virtual void Unselect( int row );
+++ /dev/null
-///////////////////////////////////////////////////////////////////////////////
-// Name: wx/generic/headercolg.h
-// Purpose: Generic wxHeaderColumn implementation
-// Author: Vadim Zeitlin
-// Created: 2008-12-04
-// RCS-ID: $Id$
-// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence: wxWindows licence
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _WX_GENERIC_HEADERCOLG_H_
-#define _WX_GENERIC_HEADERCOLG_H_
-
-// ----------------------------------------------------------------------------
-// wxHeaderColumn: trivial generic implementation of wxHeaderColumnBase
-// ----------------------------------------------------------------------------
-
-class WXDLLIMPEXP_CORE wxHeaderColumn : public wxHeaderColumnBase
-{
-public:
- // ctors and dtor
- wxHeaderColumn(const wxString& title,
- int width = wxCOL_WIDTH_DEFAULT,
- wxAlignment align = wxALIGN_NOT,
- int flags = wxCOL_DEFAULT_FLAGS)
- : m_title(title),
- m_width(width),
- m_align(align),
- m_flags(flags)
- {
- Init();
- }
-
- wxHeaderColumn(const wxBitmap& bitmap,
- int width = wxCOL_WIDTH_DEFAULT,
- wxAlignment align = wxALIGN_CENTER,
- int flags = wxCOL_DEFAULT_FLAGS)
- : m_bitmap(bitmap),
- m_width(width),
- m_align(align),
- m_flags(flags)
- {
- Init();
- }
-
- // implement base class pure virtuals
- virtual void SetTitle(const wxString& title) { m_title = title; }
- virtual wxString GetTitle() const { return m_title; }
-
- virtual void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; }
- wxBitmap GetBitmap() const { return m_bitmap; }
-
- virtual void SetWidth(int width) { m_width = width; }
- virtual int GetWidth() const { return m_width; }
-
- virtual void SetMinWidth(int minWidth) { m_minWidth = minWidth; }
- virtual int GetMinWidth() const { return m_minWidth; }
-
- virtual void SetAlignment(wxAlignment align) { m_align = align; }
- virtual wxAlignment GetAlignment() const { return m_align; }
-
- virtual void SetFlags(int flags) { m_flags = flags; }
- virtual int GetFlags() const { return m_flags; }
-
- virtual void SetSortOrder(bool ascending) { m_sortAscending = ascending; }
- virtual bool IsSortOrderAscending() const { return m_sortAscending; }
-
-private:
- // common part of all ctors
- void Init()
- {
- m_minWidth = 0;
- m_sortAscending = true;
- }
-
- wxString m_title;
- wxBitmap m_bitmap;
- int m_width,
- m_minWidth;
- wxAlignment m_align;
- int m_flags;
- bool m_sortAscending;
-};
-#endif // _WX_GENERIC_HEADERCOLG_H_
-
// refresh all the controls starting from (and including) the given one
void RefreshColsAfter(unsigned int idx);
- // all our current columns
- typedef wxVector<wxHeaderColumn> Columns;
- Columns m_cols;
-
- // sorting indicators for the columns: our API is such that it allows using
- // multiple columns for sorting, and even if this is not used anywhere in
- // practice right now, still support this
- //
- // the values are interpreted in the same way as ShowSortIndicator()
- // sortOrder parameter: true/false for ascending/descending sort if the
- // corresponding column is used for sorting or -1 otherwise
- wxVector<int> m_sortOrders;
-
// index of the column under mouse or -1 if none
unsigned int m_hover;
wxAlignment align = wxALIGN_CENTER,
int flags = wxDATAVIEW_COL_RESIZABLE );
- virtual ~wxDataViewColumn();
-
// setters:
virtual void SetSortable( bool sortable );
virtual void SetSortOrder( bool ascending );
+ virtual void SetAsSortKey(bool sort = true);
virtual void SetResizeable( bool resizeable );
virtual void SetHidden( bool hidden );
virtual bool IsSortable() const;
virtual bool IsSortOrderAscending() const;
+ virtual bool IsSortKey() const = 0;
+
virtual bool IsResizeable() const;
virtual bool IsHidden() const;
// wxListCtrl, wxDataViewCtrl or wxGrid
// ----------------------------------------------------------------------------
-class WXDLLIMPEXP_CORE wxHeaderColumnBase : public wxObject
+class WXDLLIMPEXP_CORE wxHeaderColumnBase
{
public:
// ctors and dtor
virtual void SetAlignment(wxAlignment align) = 0;
virtual wxAlignment GetAlignment() const = 0;
- // arbitrary client data associated with the column (currently only
- // implemented in MSW because it is used in MSW wxDataViewCtrl
- // implementation)
- virtual void SetClientData(wxUIntPtr WXUNUSED(data))
- { wxFAIL_MSG("not implemented"); }
- virtual wxUIntPtr GetClientData() const
- { return 0; }
-
// flags manipulations:
// --------------------
bool IsShown() const
{ return !IsHidden(); }
+
+ // sorting
+ // -------
+
+ // set this column as the one used to sort the control
+ virtual void SetAsSortKey(bool sort = true) = 0;
+ void UnsetAsSortKey() { SetAsSortKey(false); }
+
+ // return true if the column is used for sorting
+ virtual bool IsSortKey() const = 0;
+
// for sortable columns indicate whether we should sort in ascending or
- // descending order
+ // descending order (this should only be taken into account if IsSortKey())
virtual void SetSortOrder(bool ascending) = 0;
void ToggleSortOrder() { SetSortOrder(!IsSortOrderAscending()); }
virtual bool IsSortOrderAscending() const = 0;
int GetFromIndividualFlags() const;
};
-#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
- #include "wx/msw/headercol.h"
-#else
- #define wxHAS_GENERIC_HEADERCOL
- #include "wx/generic/headercolg.h"
-#endif
+// ----------------------------------------------------------------------------
+// wxHeaderColumnSimple: trivial generic implementation of wxHeaderColumnBase
+// ----------------------------------------------------------------------------
+class wxHeaderColumnSimple : public wxHeaderColumnBase
+{
+public:
+ // ctors and dtor
+ wxHeaderColumnSimple(const wxString& title,
+ int width = wxCOL_WIDTH_DEFAULT,
+ wxAlignment align = wxALIGN_NOT,
+ int flags = wxCOL_DEFAULT_FLAGS)
+ : m_title(title),
+ m_width(width),
+ m_align(align),
+ m_flags(flags)
+ {
+ Init();
+ }
+
+ wxHeaderColumnSimple(const wxBitmap& bitmap,
+ int width = wxCOL_WIDTH_DEFAULT,
+ wxAlignment align = wxALIGN_CENTER,
+ int flags = wxCOL_DEFAULT_FLAGS)
+ : m_bitmap(bitmap),
+ m_width(width),
+ m_align(align),
+ m_flags(flags)
+ {
+ Init();
+ }
+
+ // implement base class pure virtuals
+ virtual void SetTitle(const wxString& title) { m_title = title; }
+ virtual wxString GetTitle() const { return m_title; }
+
+ virtual void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; }
+ wxBitmap GetBitmap() const { return m_bitmap; }
+
+ virtual void SetWidth(int width) { m_width = width; }
+ virtual int GetWidth() const { return m_width; }
+
+ virtual void SetMinWidth(int minWidth) { m_minWidth = minWidth; }
+ virtual int GetMinWidth() const { return m_minWidth; }
+
+ virtual void SetAlignment(wxAlignment align) { m_align = align; }
+ virtual wxAlignment GetAlignment() const { return m_align; }
+
+ virtual void SetFlags(int flags) { m_flags = flags; }
+ virtual int GetFlags() const { return m_flags; }
+
+ virtual void SetAsSortKey(bool sort = true) { m_sort = sort; }
+ virtual bool IsSortKey() const { return m_sort; }
+
+ virtual void SetSortOrder(bool ascending) { m_sortAscending = ascending; }
+ virtual bool IsSortOrderAscending() const { return m_sortAscending; }
+
+private:
+ // common part of all ctors
+ void Init()
+ {
+ m_minWidth = 0;
+ m_sort = false;
+ m_sortAscending = true;
+ }
+
+ wxString m_title;
+ wxBitmap m_bitmap;
+ int m_width,
+ m_minWidth;
+ wxAlignment m_align;
+ int m_flags;
+ bool m_sort,
+ m_sortAscending;
+};
#endif // _WX_HEADERCOL_H_
#include "wx/control.h"
+#include "wx/vector.h"
+
#include "wx/headercol.h"
// notice that the classes in this header are defined in the core library even
extern WXDLLIMPEXP_DATA_CORE(const char) wxHeaderCtrlNameStr[];
-class WXDLLIMPEXP_FWD_CORE wxHeaderColumn;
-
// ----------------------------------------------------------------------------
// wxHeaderCtrlBase defines the interface of a header control
// ----------------------------------------------------------------------------
wxWindowID winid = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- long style = 0,
+ long style = wxHD_DEFAULT_STYLE,
const wxString& name = wxHeaderCtrlNameStr);
bool Create(wxWindow *parent,
wxWindowID winid = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- long style = 0,
+ long style = wxHD_DEFAULT_STYLE,
const wxString& name = wxHeaderCtrlNameStr);
*/
- // managing the columns
- // --------------------
+ // column-related methods
+ // ----------------------
+
+ // set the number of columns in the control
+ //
+ // this also calls UpdateColumn() for all columns
+ void SetColumnCount(unsigned int count) { DoSetCount(count); }
- // return the number of columns in the control
+ // return the number of columns in the control as set by SetColumnCount()
unsigned int GetColumnCount() const { return DoGetCount(); }
// return whether the control has any columns
- bool IsEmpty() const { return GetColumnCount() == 0; }
+ bool IsEmpty() const { return DoGetCount() == 0; }
+
+ // update the column with the given index
+ void UpdateColumn(unsigned int idx)
+ {
+ wxCHECK_RET( idx < GetColumnCount(), "invalid column index" );
+
+ DoUpdate(idx);
+ }
+
+
+ // implementation only from now on
+ // -------------------------------
+
+ // the user doesn't need to TAB to this control
+ virtual bool AcceptsFocusFromKeyboard() const { return false; }
+
+ // this method is only overridden in order to synchronize the control with
+ // the main window when it is scrolled, the derived class must implement
+ // DoScrollHorz()
+ virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL);
+
+protected:
+ // this method must be implemented by the derived classes to return the
+ // information for the given column
+ virtual wxHeaderColumnBase& GetColumn(unsigned int idx) = 0;
+
+private:
+ // methods implementing our public API and defined in platform-specific
+ // implementations
+ virtual void DoSetCount(unsigned int count) = 0;
+ virtual unsigned int DoGetCount() const = 0;
+ virtual void DoUpdate(unsigned int idx) = 0;
+
+ virtual void DoScrollHorz(int dx) = 0;
+
+ // this window doesn't look nice with the border so don't use it by default
+ virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
+};
+
+// ----------------------------------------------------------------------------
+// wxHeaderCtrl: port-specific header control implementation, notice that this
+// is still an ABC which is meant to be used as part of another
+// control, see wxHeaderCtrlSimple for a standalone version
+// ----------------------------------------------------------------------------
+
+#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
+ #include "wx/msw/headerctrl.h"
+#else
+ #define wxHAS_GENERIC_HEADERCTRL
+ #include "wx/generic/headerctrlg.h"
+#endif // platform
+
+// ----------------------------------------------------------------------------
+// wxHeaderCtrlSimple: concrete header control which can be used standalone
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_CORE wxHeaderCtrlSimple : public wxHeaderCtrl
+{
+public:
+ // control creation
+ // ----------------
+
+ wxHeaderCtrlSimple() { Init(); }
+ wxHeaderCtrlSimple(wxWindow *parent,
+ wxWindowID winid = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxHD_DEFAULT_STYLE,
+ const wxString& name = wxHeaderCtrlNameStr)
+ {
+ Init();
+
+ Create(parent, winid, pos, size, style, name);
+ }
+
+ // managing the columns
+ // --------------------
// insert the column at the given position, using GetColumnCount() as
// position appends it at the end
- void InsertColumn(const wxHeaderColumn& col, unsigned int idx)
+ void InsertColumn(const wxHeaderColumnSimple& col, unsigned int idx)
{
wxCHECK_RET( idx <= GetColumnCount(), "invalid column index" );
}
// append the column to the end of the control
- void AppendColumn(const wxHeaderColumn& col)
+ void AppendColumn(const wxHeaderColumnSimple& col)
{
DoInsert(col, GetColumnCount());
}
ShowColumn(idx, false);
}
- // indicate that the column is used for sorting in ascending order if
- // sortOrder is true, for sorting in descending order if it is false or not
- // used for sorting at all if it is -1
- void ShowSortIndicator(unsigned int idx, int sortOrder)
+ // indicate that the column is used for sorting
+ void ShowSortIndicator(unsigned int idx, bool ascending = true)
{
- wxCHECK_RET( sortOrder == 0 || sortOrder == 1 || sortOrder == -1,
- "invalid sort order value" );
-
wxCHECK_RET( idx < GetColumnCount(), "invalid column index" );
- DoShowSortIndicator(idx, sortOrder);
+ DoShowSortIndicator(idx, ascending);
}
- // remove the sort indicator from the given column
- void RemoveSortIndicator(unsigned int idx)
- {
- DoShowSortIndicator(idx, -1);
- }
+ // remove the sort indicator completely
+ void RemoveSortIndicator();
+protected:
+ virtual wxHeaderColumnBase& GetColumn(unsigned int idx);
- // implementation only from now on
- // -------------------------------
+private:
+ // functions implementing our public API
+ void DoInsert(const wxHeaderColumnSimple& col, unsigned int idx);
+ void DoDelete(unsigned int idx);
+ void DoShowColumn(unsigned int idx, bool show);
+ void DoShowSortIndicator(unsigned int idx, bool ascending);
- // the user doesn't need to TAB to this control
- virtual bool AcceptsFocusFromKeyboard() const { return false; }
+ // common part of all ctors
+ void Init();
- // this method is only overridden in order to synchronize the control with
- // the main window when it is scrolled, the derived class must implement
- // DoScrollHorz()
- virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL);
+ // bring the column count in sync with the number of columns we store
+ void UpdateColumnCount() { SetColumnCount(m_cols.size()); }
-private:
- virtual unsigned int DoGetCount() const = 0;
- virtual void DoInsert(const wxHeaderColumn& col, unsigned int idx) = 0;
- virtual void DoDelete(unsigned int idx) = 0;
- virtual void DoShowColumn(unsigned int idx, bool show) = 0;
- virtual void DoShowSortIndicator(unsigned int idx, int sortOrder) = 0;
- virtual void DoScrollHorz(int dx) = 0;
- // this window doesn't look nice with the border so don't use it by default
- virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
-};
+ // all our current columns
+ typedef wxVector<wxHeaderColumnSimple> Columns;
+ Columns m_cols;
-#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
- #include "wx/msw/headerctrl.h"
-#else
- #define wxHAS_GENERIC_HEADERCTRL
- #include "wx/generic/headerctrlg.h"
-#endif // platform
+ // the column currently used for sorting or -1 if none
+ unsigned int m_sortKey;
+
+
+ DECLARE_NO_COPY_CLASS(wxHeaderCtrlSimple)
+};
#endif // _WX_HEADERCTRL_H_
+++ /dev/null
-///////////////////////////////////////////////////////////////////////////////
-// Name: wx/msw/headercol.h
-// Purpose: wxHeaderColumn implementation for MSW
-// Author: Vadim Zeitlin
-// Created: 2008-12-02
-// RCS-ID: $Id$
-// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence: wxWindows licence
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef _WX_MSW_HEADERCOL_H_
-#define _WX_MSW_HEADERCOL_H_
-
-struct wxHDITEM;
-
-// ----------------------------------------------------------------------------
-// wxHeaderColumn
-// ----------------------------------------------------------------------------
-
-class WXDLLIMPEXP_CORE wxHeaderColumn : public wxHeaderColumnBase
-{
-public:
- // ctors and dtor
- wxHeaderColumn(const wxString& title,
- int width = wxCOL_WIDTH_DEFAULT,
- wxAlignment align = wxALIGN_NOT,
- int flags = wxCOL_DEFAULT_FLAGS);
- wxHeaderColumn(const wxBitmap &bitmap,
- int width = wxCOL_WIDTH_DEFAULT,
- wxAlignment align = wxALIGN_CENTER,
- int flags = wxCOL_DEFAULT_FLAGS);
-
- virtual ~wxHeaderColumn();
-
- // implement base class pure virtuals
- virtual void SetTitle(const wxString& title);
- virtual wxString GetTitle() const;
-
- virtual void SetBitmap(const wxBitmap& bitmap);
- wxBitmap GetBitmap() const;
-
- virtual void SetWidth(int width);
- virtual int GetWidth() const;
-
- virtual void SetMinWidth(int minWidth);
- virtual int GetMinWidth() const;
-
- virtual void SetAlignment(wxAlignment align);
- virtual wxAlignment GetAlignment() const;
-
- virtual void SetClientData(wxUIntPtr data);
- virtual wxUIntPtr GetClientData() const;
-
- virtual void SetFlags(int flags);
- virtual int GetFlags() const;
-
-
- virtual void SetSortOrder(bool ascending);
- virtual bool IsSortOrderAscending() const;
-
-
- // MSW-specific implementation helpers
- wxHDITEM& GetHDI();
- const wxHDITEM& GetHDI() const
- {
- return const_cast<wxHeaderColumn *>(this)->GetHDI();
- }
-
-private:
- // initialize m_impl
- void Init();
-
- struct wxMSWHeaderColumnImpl *m_impl;
-};
-
-#endif // _WX_MSW_HEADERCOL_H_
-
private:
// implement base class pure virtuals
+ virtual void DoSetCount(unsigned int count);
virtual unsigned int DoGetCount() const;
- virtual void DoInsert(const wxHeaderColumn& col, unsigned int idx);
- virtual void DoDelete(unsigned int idx);
- virtual void DoShowColumn(unsigned int idx, bool show);
- virtual void DoShowSortIndicator(unsigned int idx, int sortOrder);
+ virtual void DoUpdate(unsigned int idx);
+
virtual void DoScrollHorz(int dx);
// override wxWindow methods which must be implemented by a new control
// common part of all ctors
void Init();
+ // wrapper around Header_{Set,Insert}Item(): either appends the item to the
+ // end or modifies the existing item by copying information from
+ // GetColumn(idx) to it
+ enum Operation { Set, Insert };
+ void DoSetOrInsertItem(Operation oper, unsigned int idx);
+
+
// the image list: initially NULL, created on demand
wxImageList *m_imageList;
@class wxHeaderColumn
Represents a column header in controls displaying tabular data such as
- wxHeaderCtrl, wxDataViewCtrl or wxGrid.
+ wxDataViewCtrl or wxGrid.
+
+ Notice that this is an abstract base class which is implemented (usually
+ using the information stored in the associated control) by the different
+ controls using wxHeaderCtrl. You may use wxHeaderCtrlSimple which uses
+ concrete wxHeaderColumnSimple if you don't already store the column
+ information somewhere.
@library{wxcore}
@category{ctrl}
-
- @see wxHeaderCtrl
*/
class wxHeaderColumn
{
public:
- //@{
- /**
- Constructor for a column header.
-
- The first constructor creates a header showing the given text @a title
- while the second one creates one showing the specified @a bitmap image.
- */
- wxHeaderColumn(const wxString& title,
- int width = wxCOL_WIDTH_DEFAULT,
- wxAlignment align = wxALIGN_NOT,
- int flags = wxCOL_DEFAULT_FLAGS);
- wxHeaderColumn(const wxBitmap &bitmap,
- int width = wxDVC_DEFAULT_WIDTH,
- wxAlignment align = wxALIGN_CENTER,
- int flags = wxCOL_DEFAULT_FLAGS);
- //@}
-
/**
Set the text to display in the column header.
*/
- virtual void SetTitle(const wxString& title);
+ virtual void SetTitle(const wxString& title) = 0;
/**
Get the text shown in the column header.
*/
- virtual wxString GetTitle() const;
+ virtual wxString GetTitle() const = 0;
/**
Set the bitmap to be displayed in the column header.
Notice that the bitmaps displayed in different columns of the same
control must all be of the same size.
*/
- virtual void SetBitmap(const wxBitmap& bitmap);
+ virtual void SetBitmap(const wxBitmap& bitmap) = 0;
/**
Returns the bitmap in the header of the column, if any.
If the column has no associated bitmap, wxNullBitmap is returned.
*/
- virtual wxBitmap GetBitmap() const; \
+ virtual wxBitmap GetBitmap() const = 0;
/**
Set the column width.
The column width in pixels or the special wxCOL_WIDTH_DEFAULT value
meaning to use default width.
*/
- virtual void SetWidth(int width);
+ virtual void SetWidth(int width) = 0;
/**
Returns the current width of the column.
@return
Width of the column in pixels, never wxCOL_WIDTH_DEFAULT.
*/
- virtual int GetWidth() const;
+ virtual int GetWidth() const = 0;
/**
Set the minimal column width.
The minimal column width in pixels, may be 0 to remove any
previously set restrictions.
*/
- virtual void SetMinWidth(int minWidth);
+ virtual void SetMinWidth(int minWidth) = 0;
/**
Return the minimal column width.
@return
The value previously set by SetMinWidth() or 0 by default.
*/
- virtual int GetMinWidth() const;
+ virtual int GetMinWidth() const = 0;
/**
Set the alignment of the column header.
wxALIGN_CENTRE for consistency (but notice that GetAlignment()
never returns it).
*/
- virtual void SetAlignment(wxAlignment align);
+ virtual void SetAlignment(wxAlignment align) = 0;
/**
Returns the current column alignment.
@return
One of wxALIGN_CENTRE, wxALIGN_LEFT or wxALIGN_RIGHT.
*/
- virtual wxAlignment GetAlignment() const;
-
-
- // not documented because I'm not sure if it should be in the public API at
- // all
-#if 0
- // arbitrary client data associated with the column (currently only
- // implemented in MSW because it is used in MSW wxDataViewCtrl
- // implementation)
- virtual void SetClientData(wxUIntPtr data);
- virtual wxUIntPtr GetClientData() const;
-#endif
+ virtual wxAlignment GetAlignment() const = 0;
/**
Combination of wxCOL_RESIZABLE, wxCOL_SORTABLE, wxCOL_REORDERABLE
and wxCOL_HIDDEN bit flags.
*/
- virtual void SetFlags(int flags);
+ virtual void SetFlags(int flags) = 0;
/**
Set or clear the given flag.
@see SetFlags()
*/
- virtual int GetFlags() const;
+ virtual int GetFlags() const = 0;
/**
Return @true if the specified flag is currently set for this column.
*/
bool IsShown() const;
+
+
+ /**
+ Sets this column as the sort key for the associated control.
+
+ Calling this function with @true argument means that this column is
+ currently used for sorting the control contents and so should typically
+ display an arrow indicating it (the direction of the arrow depends on
+ IsSortOrderAscending() return value).
+
+ Don't confuse this function with SetSortable() which should be used to
+ indicate that the column @em may be used for sorting while this one is
+ used to indicate that it currently @em is used for sorting. Of course,
+ SetAsSortKey() can be only called for sortable columns.
+
+ @param sort
+ Sort (default) or don't sort the control contents by this column.
+ */
+ virtual void SetAsSortKey(bool sort = true) = 0;
+
+ /**
+ Don't use this column for sorting.
+
+ This is equivalent to calling SetAsSortKey() with @false argument.
+ */
+ void UnsetAsSortKey();
+
+ /**
+ Returns @true if the column is currently used for sorting.
+
+ Notice that this function simply returns the value last passed to
+ SetAsSortKey() (or @false if SetAsSortKey() had never been called), it
+ is up to the associated control to use this information to actually
+ sort its contents.
+ */
+ virtual bool IsSortKey() const = 0;
+
/**
Sets the sort order for this column.
- This only makes sense for sortable columns and is only taken into
- account by the control in which this column is inserted, this function
- just stores the sort order in the wxHeaderColumn object.
+ This only makes sense for sortable columns which are currently used as
+ sort key, i.e. for which IsSortKey() returns @true and is only taken
+ into account by the control in which this column is inserted, this
+ function just stores the sort order in the wxHeaderColumn object.
@param ascending
If @true, sort in ascending order, otherwise in descending order.
*/
- virtual void SetSortOrder(bool ascending);
+ virtual void SetSortOrder(bool ascending) = 0;
/**
Inverses the sort order.
/**
Returns @true, if the sort order is ascending.
+ Notice that it only makes sense to call this function if the column is
+ used for sorting at all, i.e. if IsSortKey() returns @true.
+
@see SetSortOrder()
*/
- virtual bool IsSortOrderAscending() const;
+ virtual bool IsSortOrderAscending() const = 0;
};
+/**
+ @class wxHeaderColumnSimple
+
+ Simple container for the information about the column.
+
+ This is a concrete class implementing all base wxHeaderColumn class methods
+ in a trivial way, i.e. by just storing the information in the object
+ itself. It is used by and with wxHeaderCtrlSimple, e.g.
+ @code
+ wxHeaderCtrlSimple * header = new wxHeaderCtrlSimple(...);
+ wxHeaderColumnSimple col("Title");
+ col.SetWidth(100);
+ col.SetSortable(100);
+ header->AppendColumn(col);
+ @endcode
+
+ @library{wxcore}
+ @category{ctrl}
+ */
+class wxHeaderColumnSimple : public wxHeaderColumn
+{
+public:
+ //@{
+ /**
+ Constructor for a column header.
+
+ The first constructor creates a header showing the given text @a title
+ while the second one creates one showing the specified @a bitmap image.
+ */
+ wxHeaderColumnSimple(const wxString& title,
+ int width = wxCOL_WIDTH_DEFAULT,
+ wxAlignment align = wxALIGN_NOT,
+ int flags = wxCOL_DEFAULT_FLAGS);
+
+ wxHeaderColumnSimple(const wxBitmap &bitmap,
+ int width = wxDVC_DEFAULT_WIDTH,
+ wxAlignment align = wxALIGN_CENTER,
+ int flags = wxCOL_DEFAULT_FLAGS);
+ //@}
+ //@{
+
+ /// Trivial implementations of the base class pure virtual functions.
+
+ virtual void SetTitle(const wxString& title);
+ virtual wxString GetTitle() const;
+ virtual void SetBitmap(const wxBitmap& bitmap);
+ virtual wxBitmap GetBitmap() const;
+ virtual void SetWidth(int width);
+ virtual int GetWidth() const;
+ virtual void SetMinWidth(int minWidth);
+ virtual int GetMinWidth() const;
+ virtual void SetAlignment(wxAlignment align);
+ virtual wxAlignment GetAlignment() const;
+ virtual void SetFlags(int flags);
+ virtual int GetFlags() const;
+ virtual void SetAsSortKey(bool sort = true);
+ virtual bool IsSortKey() const;
+ virtual void SetSortOrder(bool ascending);
+ virtual bool IsSortOrderAscending() const;
+
+ //@}
+};
It is used as part of wxGrid and (will be used in the near future) in
in wxDataViewCtrl and report view of wxListCtrl but can be also used
- independently.
+ independently. In general this class is meant to be used as part of another
+ control which already stores the column information somewhere as it can't
+ be used directly: instead you need to inherit from it and implement the
+ GetColumn() method to provide column information. See wxHeaderCtrlSimple
+ for a concrete control class which can be used directly.
In addition to labeling the columns, the control has the following
features:
wxWindowID winid = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- long style = 0,
+ long style = wxHD_DEFAULT_STYLE,
const wxString& name = wxHeaderCtrlNameStr);
/**
wxWindowID winid = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- long style = 0,
+ long style = wxHD_DEFAULT_STYLE,
const wxString& name = wxHeaderCtrlNameStr);
+ /**
+ Set the number of columns in the control.
+
+ The control will use GetColumn() to get information about all the
+ new columns and refresh itself, i.e. this method also has the same
+ effect as calling UpdateColumn() for all columns but it should only be
+ used if the number of columns really changed.
+ */
+ void SetColumnCount(unsigned int count);
+
/**
Return the number of columns in the control.
+ @return
+ Number of columns as previously set by SetColumnCount().
+
@see IsEmpty()
*/
unsigned int GetColumnCount() const;
*/
bool IsEmpty() const;
+protected:
+ /**
+ Method to be implemented by the derived classes to return the
+ information for the given column.
+
+ @param idx
+ The column index, between 0 and the value last passed to
+ SetColumnCount().
+ */
+ virtual wxHeaderColumnBase& GetColumn(unsigned int idx) = 0;
+};
+
+
+/**
+ @class wxHeaderCtrlSimple
+
+ wxHeaderCtrlSimple is a concrete header control which can be used directly,
+ without inheriting from it as you need to do when using wxHeaderCtrl
+ itself.
+
+ When using it, you need to use simple AppendColumn(), InsertColumn() and
+ DeleteColumn() methods instead of setting the number of columns with
+ SetColumnCount() and returning the information about them from the
+ overridden GetColumn().
+
+ @library{wxcore}
+ @category{ctrl}
+
+ @see wxHeaderCtrl
+*/
+class wxHeaderCtrlSimple : public wxHeaderCtrl
+{
+public:
+ /**
+ Default constructor not creating the underlying window.
+
+ You must use Create() after creating the object using this constructor.
+ */
+ wxHeaderCtrlSimple();
+
+ /**
+ Constructor creating the window.
+
+ Please see the base class wxHeaderCtrl::Create() method for the
+ parameters description.
+ */
+ wxHeaderCtrlSimple(wxWindow *parent,
+ wxWindowID winid = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = wxHD_DEFAULT_STYLE,
+ const wxString& name = wxHeaderCtrlNameStr);
+
/**
Insert the column at the given position.
// wxDataViewColumnBase
// ---------------------------------------------------------
-IMPLEMENT_ABSTRACT_CLASS(wxDataViewColumnBase, wxObject)
-
-wxDataViewColumnBase::wxDataViewColumnBase(const wxString& title,
- wxDataViewRenderer *renderer,
- unsigned int model_column,
- int width,
- wxAlignment align,
- int flags)
-#ifdef wxHAS_GENERIC_DATAVIEWCTRL
- : wxHeaderColumn(title, width, align, flags)
-#endif
-{
- m_renderer = renderer;
- m_model_column = model_column;
- m_owner = NULL;
- m_renderer->SetOwner( (wxDataViewColumn*) this );
-
- // NOTE: the wxDataViewColumn's ctor must store the width, align, flags
- // parameters inside the native control!
-#ifndef wxHAS_GENERIC_DATAVIEWCTRL
- wxUnusedVar(title);
- wxUnusedVar(width);
- wxUnusedVar(align);
- wxUnusedVar(flags);
-#endif // !wxHAS_GENERIC_DATAVIEWCTRL
-}
-
-wxDataViewColumnBase::wxDataViewColumnBase(const wxBitmap& bitmap,
- wxDataViewRenderer *renderer,
- unsigned int model_column,
- int width,
- wxAlignment align,
- int flags)
-#ifdef wxHAS_GENERIC_DATAVIEWCTRL
- : wxHeaderColumn(bitmap, width, align, flags)
-#else
- : m_bitmap(bitmap)
-#endif
+void wxDataViewColumnBase::Init(wxDataViewRenderer *renderer,
+ unsigned int model_column)
{
m_renderer = renderer;
m_model_column = model_column;
m_owner = NULL;
m_renderer->SetOwner( (wxDataViewColumn*) this );
-
-#ifndef wxHAS_GENERIC_DATAVIEWCTRL
- wxUnusedVar(width);
- wxUnusedVar(align);
- wxUnusedVar(flags);
-#endif // !wxHAS_GENERIC_DATAVIEWCTRL
}
wxDataViewColumnBase::~wxDataViewColumnBase()
#include "wx/headerctrl.h"
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+namespace
+{
+
+const unsigned int wxNO_COLUMN = static_cast<unsigned>(-1);
+
+} // anonymous namespace
+
// ============================================================================
// wxHeaderCtrlBase implementation
// ============================================================================
extern WXDLLIMPEXP_DATA_CORE(const char) wxHeaderCtrlNameStr[] = "wxHeaderCtrl";
-void wxHeaderCtrlBase::DeleteAllColumns()
-{
- const unsigned count = GetColumnCount();
- for ( unsigned n = 0; n < count; n++ )
- DeleteColumn(0);
-}
-
-
void wxHeaderCtrlBase::ScrollWindow(int dx,
int WXUNUSED_UNLESS_DEBUG(dy),
const wxRect * WXUNUSED_UNLESS_DEBUG(rect))
DoScrollHorz(dx);
}
+// ============================================================================
+// wxHeaderCtrlSimple implementation
+// ============================================================================
+
+void wxHeaderCtrlSimple::Init()
+{
+ m_sortKey = wxNO_COLUMN;
+}
+
+wxHeaderColumnBase& wxHeaderCtrlSimple::GetColumn(unsigned int idx)
+{
+ return m_cols[idx];
+}
+
+void wxHeaderCtrlSimple::DoInsert(const wxHeaderColumnSimple& col, unsigned int idx)
+{
+ m_cols.insert(m_cols.begin() + idx, col);
+
+ UpdateColumnCount();
+}
+
+void wxHeaderCtrlSimple::DoDelete(unsigned int idx)
+{
+ m_cols.erase(m_cols.begin() + idx);
+ if ( idx == m_sortKey )
+ m_sortKey = wxNO_COLUMN;
+
+ UpdateColumnCount();
+}
+
+void wxHeaderCtrlSimple::DeleteAllColumns()
+{
+ m_cols.clear();
+ m_sortKey = wxNO_COLUMN;
+
+ UpdateColumnCount();
+}
+
+
+void wxHeaderCtrlSimple::DoShowColumn(unsigned int idx, bool show)
+{
+ if ( show != m_cols[idx].IsShown() )
+ {
+ m_cols[idx].SetHidden(!show);
+
+ UpdateColumn(idx);
+ }
+}
+
+void wxHeaderCtrlSimple::DoShowSortIndicator(unsigned int idx, bool ascending)
+{
+ RemoveSortIndicator();
+
+ m_cols[idx].SetAsSortKey(ascending);
+ m_sortKey = idx;
+
+ UpdateColumn(idx);
+}
+
+void wxHeaderCtrlSimple::RemoveSortIndicator()
+{
+ if ( m_sortKey != wxNO_COLUMN )
+ {
+ const unsigned sortOld = m_sortKey;
+ m_sortKey = wxNO_COLUMN;
+
+ m_cols[sortOld].UnsetAsSortKey();
+
+ UpdateColumn(sortOld);
+ }
+}
+
#include "wx/list.h"
#include "wx/listimpl.cpp"
#include "wx/imaglist.h"
+#include "wx/headerctrl.h"
//-----------------------------------------------------------------------------
// classes
// wxDataViewHeaderWindow
//-----------------------------------------------------------------------------
-// on wxMSW the header window (only that part however) can be made native!
-#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
- #define USE_NATIVE_HEADER_WINDOW
-
- #include "wx/headerctrl.h"
-#endif
-
//Below is the compare stuff
//For the generic implements, both the leaf nodes and the nodes are sorted for fast search when needed
static wxDataViewModel * g_model;
static int g_column = -2;
static bool g_asending = true;
-// NB: for some reason, this class must be dllexport'ed or we get warnings from
-// MSVC in DLL build
-class WXDLLIMPEXP_ADV wxDataViewHeaderWindowBase : public
-#ifdef USE_NATIVE_HEADER_WINDOW
- wxHeaderCtrl
-#else
- wxControl
-#endif
-{
-public:
- wxDataViewHeaderWindowBase()
- { m_owner = NULL; }
-
- bool Create(wxDataViewCtrl *parent, wxWindowID id,
- const wxPoint &pos, const wxSize &size,
- const wxString &name)
- {
- return wxWindow::Create(parent, id, pos, size, wxNO_BORDER, name);
- }
-
- void SetOwner( wxDataViewCtrl* owner ) { m_owner = owner; }
- wxDataViewCtrl *GetOwner() { return m_owner; }
-
- // called on column addition/removal
- virtual void UpdateDisplay() { /* by default, do nothing */ }
-
- // returns the n-th column
- virtual wxDataViewColumn *GetColumn(unsigned int n)
- {
- wxASSERT(m_owner);
- wxDataViewColumn *ret = m_owner->GetColumn(n);
- wxASSERT(ret);
-
- return ret;
- }
-
-protected:
- wxDataViewCtrl *m_owner;
-
- // sends an event generated from the n-th wxDataViewColumn
- void SendEvent(wxEventType type, unsigned int n);
-};
-
-#ifdef USE_NATIVE_HEADER_WINDOW
-
-#define COLUMN_WIDTH_OFFSET 2
-#define wxDataViewHeaderWindowMSW wxDataViewHeaderWindow
-
-class wxDataViewHeaderWindowMSW : public wxDataViewHeaderWindowBase
-{
-public:
- wxDataViewHeaderWindowMSW(wxDataViewCtrl *parent)
- {
- Create(parent);
- }
-
- bool Create(wxDataViewCtrl *parent);
-
- // called when any column setting is changed and/or changed
- // the column count
- virtual void UpdateDisplay();
-
- virtual void OnInternalIdle();
-
- // called Refresh afterwards
- virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL);
-
- virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
-
-protected:
- virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
-
- virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags);
-
- wxSize DoGetBestSize() const;
-
- unsigned int GetColumnIdxFromHeader(NMHEADER *nmHDR);
-
- wxDataViewColumn *GetColumnFromHeader(NMHEADER *nmHDR)
- { return GetColumn(GetColumnIdxFromHeader(nmHDR)); }
-
- int m_scrollOffsetX;
- int m_buttonHeight;
- bool m_vetoColumnDrag;
- bool m_delayedUpdate;
-
-private:
- DECLARE_DYNAMIC_CLASS(wxDataViewHeaderWindowMSW)
-};
-
-#else // !defined(__WXMSW__)
-
-#define HEADER_WINDOW_HEIGHT 25
-#define HEADER_HORIZ_BORDER 5
-#define HEADER_VERT_BORDER 3
-#define wxGenericDataViewHeaderWindow wxDataViewHeaderWindow
-
-class wxGenericDataViewHeaderWindow : public wxDataViewHeaderWindowBase
+class wxDataViewHeaderWindow : public wxHeaderCtrl
{
public:
- wxGenericDataViewHeaderWindow( wxDataViewCtrl *parent,
- wxWindowID id = wxID_ANY,
- const wxPoint &pos = wxDefaultPosition,
- const wxSize &size = wxDefaultSize,
- const wxString &name = wxT("wxdataviewctrlheaderwindow") )
- {
- Init();
- Create(parent, id, pos, size, name);
- }
-
- bool Create(wxDataViewCtrl *parent, wxWindowID id,
- const wxPoint &pos, const wxSize &size,
- const wxString &name);
-
- ~wxGenericDataViewHeaderWindow()
+ wxDataViewHeaderWindow(wxDataViewCtrl *parent)
+ : wxHeaderCtrl(parent)
{
- delete m_resizeCursor;
}
- virtual void UpdateDisplay() { Refresh(); }
-
- // event handlers:
-
- void OnPaint( wxPaintEvent &event );
- void OnMouse( wxMouseEvent &event );
- void OnSetFocus( wxFocusEvent &event );
-
+ wxDataViewCtrl *GetOwner() const
+ { return static_cast<wxDataViewCtrl *>(GetParent()); }
protected:
-
- // vars used for column resizing:
-
- wxCursor *m_resizeCursor;
- const wxCursor *m_currentCursor;
- bool m_isDragging;
-
- bool m_dirty; // needs refresh?
- int m_hover; // index of the column under the mouse
- int m_column; // index of the column being resized
- int m_currentX; // divider line position in logical (unscrolled) coords
- int m_minX; // minimal position beyond which the divider line
- // can't be dragged in logical coords
-
- // the pen used to draw the current column width drag line
- // when resizing the columsn
- wxPen m_penCurrent;
-
-
- // internal utilities:
-
- void Init()
+ virtual wxHeaderColumnBase& GetColumn(unsigned int idx)
{
- m_currentCursor = (wxCursor *) NULL;
- m_resizeCursor = new wxCursor( wxCURSOR_SIZEWE );
-
- m_isDragging = false;
- m_dirty = false;
-
- m_hover = wxNOT_FOUND;
- m_column = wxNOT_FOUND;
- m_currentX = 0;
- m_minX = 0;
-
- wxColour col = wxSystemSettings::GetColour(wxSYS_COLOUR_3DLIGHT);
- m_penCurrent = wxPen(col, 1, wxSOLID);
+ return *(GetOwner()->GetColumn(idx));
}
- void AdjustDC(wxDC& dc);
-
private:
- DECLARE_DYNAMIC_CLASS(wxGenericDataViewHeaderWindow)
- DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxDataViewHeaderWindow)
};
-#endif // defined(__WXMSW__)
-
//-----------------------------------------------------------------------------
// wxDataViewRenameTimer
//-----------------------------------------------------------------------------
return false;
}
-// ---------------------------------------------------------
-// wxDataViewColumn
-// ---------------------------------------------------------
-
-IMPLEMENT_ABSTRACT_CLASS(wxDataViewColumn, wxDataViewColumnBase)
-
-wxDataViewColumn::wxDataViewColumn( const wxString &title, wxDataViewRenderer *cell,
- unsigned int model_column,
- int width, wxAlignment align, int flags ) :
- wxDataViewColumnBase( title, cell, model_column, width, align, flags )
-{
- wxDataViewColumnBase::SetWidth(width == wxCOL_WIDTH_DEFAULT
- ? wxDVC_DEFAULT_WIDTH
- : width);
- SetTitle(title);
- SetAlignment(align);
- SetFlags(flags);
-}
-
-wxDataViewColumn::wxDataViewColumn( const wxBitmap &bitmap, wxDataViewRenderer *cell,
- unsigned int model_column,
- int width, wxAlignment align, int flags ) :
- wxDataViewColumnBase( bitmap, cell, model_column, width, align, flags )
-{
- wxDataViewColumnBase::SetWidth(width == wxCOL_WIDTH_DEFAULT
- ? wxDVC_DEFAULT_WIDTH
- : width);
- SetBitmap(bitmap);
- SetAlignment(align);
- SetFlags(flags);
-}
-
-void wxDataViewColumn::SetFlags(int flags)
-{
- if ( flags != GetFlags() )
- {
- wxDataViewColumnBase::SetFlags(flags);
-
- // tell our owner to e.g. update its scrollbars:
- if ( GetOwner() )
- GetOwner()->OnColumnChange();
- }
-}
-
-void wxDataViewColumn::SetSortOrder( bool ascending )
-{
- if ( ascending == IsSortOrderAscending() )
- return;
-
- wxDataViewColumnBase::SetSortOrder(ascending);
-
- // Update header button
- if (GetOwner())
- GetOwner()->OnColumnChange();
-}
-
-void wxDataViewColumn::SetInternalWidth( int width )
-{
- if ( width == GetWidth() )
- return;
-
- wxDataViewColumnBase::SetWidth(width);
-
- // the scrollbars of the wxDataViewCtrl needs to be recalculated!
- if (m_owner && m_owner->m_clientArea)
- m_owner->m_clientArea->RecalculateDisplay();
-}
-
-void wxDataViewColumn::SetWidth( int width )
-{
- if ( width == wxCOL_WIDTH_DEFAULT )
- width = wxDVC_DEFAULT_WIDTH;
-
- if ( width == GetWidth() )
- return;
-
- if (m_owner->m_headerArea)
- m_owner->m_headerArea->UpdateDisplay();
-
- SetInternalWidth(width);
-}
-
-int wxDataViewColumn::GetWidth() const
-{
- int width = wxDataViewColumnBase::GetWidth();
- return width == wxCOL_WIDTH_DEFAULT ? wxDVC_DEFAULT_WIDTH : width;
-}
-
-//-----------------------------------------------------------------------------
-// wxDataViewHeaderWindowBase
-//-----------------------------------------------------------------------------
-
-void wxDataViewHeaderWindowBase::SendEvent(wxEventType type, unsigned int n)
-{
- wxWindow *parent = GetParent();
- wxDataViewEvent le(type, parent->GetId());
-
- le.SetEventObject(parent);
- le.SetColumn(n);
- le.SetDataViewColumn(GetColumn(n));
- le.SetModel(GetOwner()->GetModel());
-
- // for events created by wxDataViewHeaderWindow the
- // row / value fields are not valid
-
- parent->GetEventHandler()->ProcessEvent(le);
-}
-
-#ifdef USE_NATIVE_HEADER_WINDOW
-
-// implemented in msw/listctrl.cpp:
-int WXDLLIMPEXP_CORE wxMSWGetColumnClicked(NMHDR *nmhdr, POINT *ptClick);
-
-IMPLEMENT_ABSTRACT_CLASS(wxDataViewHeaderWindowMSW, wxWindow)
-
-bool wxDataViewHeaderWindowMSW::Create(wxDataViewCtrl *parent)
-{
- m_owner = parent;
-
- m_scrollOffsetX = 0;
- m_delayedUpdate = false;
- m_vetoColumnDrag = false;
- m_buttonHeight = wxRendererNative::Get().GetHeaderButtonHeight( this );
-
- return wxHeaderCtrl::Create(parent, wxID_ANY);
-}
-
-wxSize wxDataViewHeaderWindowMSW::DoGetBestSize() const
-{
- return wxSize( 80, m_buttonHeight+2 );
-}
-
-void wxDataViewHeaderWindowMSW::OnInternalIdle()
-{
- if (m_delayedUpdate)
- {
- m_delayedUpdate = false;
- UpdateDisplay();
- }
-}
-
-void wxDataViewHeaderWindowMSW::UpdateDisplay()
-{
- // remove old columns
- DeleteAllColumns();
-
- // add the updated array of columns to the header control
- const unsigned int cols = GetOwner()->GetColumnCount();
- for (unsigned int i = 0; i < cols; i++)
- {
- wxDataViewColumn * const col = GetColumn( i );
- if (col->IsHidden())
- continue; // don't add it!
-
- // we store the column index to use later as client data (we need to do
- // it since column indices in the control and the model may not be the
- // same if any columns have been hidden)
- col->SetClientData(i);
-
- AppendColumn(*col);
-
- if ( col->IsSortable() && GetOwner()->GetSortingColumn() == col )
- {
- ShowSortIndicator(GetColumnCount() - 1, col->IsSortOrderAscending());
- }
-
-#if 0
- // the native wxMSW implementation of the header window
- // draws the column separator COLUMN_WIDTH_OFFSET pixels
- // on the right: to correct this effect we make the column
- // exactly COLUMN_WIDTH_OFFSET wider (for the first column):
- if (i == 0)
- hdi.cxy += COLUMN_WIDTH_OFFSET;
-#endif
- }
-}
-
-unsigned int wxDataViewHeaderWindowMSW::GetColumnIdxFromHeader(NMHEADER *nmHDR)
-{
- unsigned int idx;
-
- // NOTE: we don't just return nmHDR->iItem because when there are
- // hidden columns, nmHDR->iItem may be different from
- // nmHDR->pitem->lParam
-
- if (nmHDR->pitem && nmHDR->pitem->mask & HDI_LPARAM)
- {
- idx = (unsigned int)nmHDR->pitem->lParam;
- return idx;
- }
-
- HDITEM item;
- item.mask = HDI_LPARAM;
- Header_GetItem((HWND)m_hWnd, nmHDR->iItem, &item);
-
- return (unsigned int)item.lParam;
-}
-
-bool wxDataViewHeaderWindowMSW::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
-{
- NMHDR *nmhdr = (NMHDR *)lParam;
-
- // is it a message from the header?
- if ( nmhdr->hwndFrom != (HWND)m_hWnd )
- return wxWindow::MSWOnNotify(idCtrl, lParam, result);
-
- NMHEADER *nmHDR = (NMHEADER *)nmhdr;
- switch ( nmhdr->code )
- {
- case NM_RELEASEDCAPTURE:
- {
- // user has released the mouse
- m_vetoColumnDrag = false;
- }
- break;
-
- case HDN_BEGINTRACK:
- // user has started to resize a column:
- // do we need to veto it?
- if (!GetColumn(nmHDR->iItem)->IsResizeable())
- {
- // veto it!
- *result = TRUE;
- }
- break;
-
- case HDN_BEGINDRAG:
- // valid column
- if (nmHDR->iItem != -1)
- {
- // user has started to reorder a valid column
- if ((m_vetoColumnDrag == true) || (!GetColumn(nmHDR->iItem)->IsReorderable()))
- {
- // veto it!
- *result = TRUE;
- m_vetoColumnDrag = true;
- }
- }
- else
- {
- // veto it!
- m_vetoColumnDrag = true;
- }
- break;
-
- case HDN_ENDDRAG: // user has finished reordering a column
- {
- wxDataViewColumn *col = GetColumn(nmHDR->iItem);
- unsigned int new_pos = nmHDR->pitem->iOrder;
- m_owner->ColumnMoved( col, new_pos );
- m_delayedUpdate = true;
- }
- break;
-
- case HDN_ITEMCHANGING:
- if (nmHDR->pitem != NULL &&
- (nmHDR->pitem->mask & HDI_WIDTH) != 0)
- {
- int minWidth = GetColumnFromHeader(nmHDR)->GetMinWidth();
- if (nmHDR->pitem->cxy < minWidth)
- {
- // do not allow the user to resize this column under
- // its minimal width:
- *result = TRUE;
- }
- }
- break;
-
- case HDN_ITEMCHANGED: // user is resizing a column
- case HDN_ENDTRACK: // user has finished resizing a column
-
- // update the width of the modified column:
- if (nmHDR->pitem != NULL &&
- (nmHDR->pitem->mask & HDI_WIDTH) != 0)
- {
- unsigned int idx = GetColumnIdxFromHeader(nmHDR);
- unsigned int w = nmHDR->pitem->cxy;
- wxDataViewColumn *col = GetColumn(idx);
-
- // see UpdateDisplay() for more info about COLUMN_WIDTH_OFFSET
- if (idx == 0 && w > COLUMN_WIDTH_OFFSET)
- w -= COLUMN_WIDTH_OFFSET;
-
- if (w >= (unsigned)col->GetMinWidth())
- col->SetInternalWidth(w);
- }
- break;
-
- case HDN_ITEMCLICK:
- {
- unsigned int idx = GetColumnIdxFromHeader(nmHDR);
- wxDataViewModel * model = GetOwner()->GetModel();
-
- if(nmHDR->iButton == 0)
- {
- wxDataViewColumn *col = GetColumn(idx);
- if(col->IsSortable())
- {
- if(model && m_owner->GetSortingColumn() == col)
- {
- bool order = col->IsSortOrderAscending();
- col->SetSortOrder(!order);
- }
- else if(model)
- {
- m_owner->SetSortingColumn(col);
- }
- }
- UpdateDisplay();
- if(model)
- model->Resort();
- }
-
- wxEventType evt = nmHDR->iButton == 0 ?
- wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK :
- wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK;
- SendEvent(evt, idx);
- }
- break;
-
- case NM_RCLICK:
- {
- // NOTE: for some reason (i.e. for a bug in Windows)
- // the HDN_ITEMCLICK notification is not sent on
- // right clicks, so we need to handle NM_RCLICK
-
- POINT ptClick;
- int column = wxMSWGetColumnClicked(nmhdr, &ptClick);
- if (column != wxNOT_FOUND)
- {
- HDITEM item;
- item.mask = HDI_LPARAM;
- Header_GetItem((HWND)m_hWnd, column, &item);
-
- // 'idx' may be different from 'column' if there are
- // hidden columns...
- unsigned int idx = (unsigned int)item.lParam;
- SendEvent(wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK,
- idx);
- }
- }
- break;
-
- case HDN_GETDISPINFOW:
- // see wxListCtrl::MSWOnNotify for more info!
- break;
-
- case HDN_ITEMDBLCLICK:
- {
- unsigned int idx = GetColumnIdxFromHeader(nmHDR);
- int w = GetOwner()->GetBestColumnWidth(idx);
-
- // update the native control:
- HDITEM hd;
- ZeroMemory(&hd, sizeof(hd));
- hd.mask = HDI_WIDTH;
- hd.cxy = w;
- Header_SetItem(GetHwnd(),
- nmHDR->iItem, // NOTE: we don't want 'idx' here!
- &hd);
-
- // update the wxDataViewColumn class:
- GetColumn(idx)->SetInternalWidth(w);
- }
- break;
-
- default:
- return wxWindow::MSWOnNotify(idCtrl, lParam, result);
- }
-
- return true;
-}
-
-void wxDataViewHeaderWindowMSW::ScrollWindow(int dx, int WXUNUSED(dy),
- const wxRect * WXUNUSED(rect))
-{
- m_scrollOffsetX += dx;
-
- GetParent()->Layout();
-}
-
-void wxDataViewHeaderWindowMSW::DoSetSize(int x, int y,
- int w, int h,
- int f)
-{
- // TODO: why is there a border + 2px around it?
- wxControl::DoSetSize( x+m_scrollOffsetX+1, y+1, w-m_scrollOffsetX-2, h-2, f );
-}
-
-#else // !defined(__WXMSW__)
-
-IMPLEMENT_ABSTRACT_CLASS(wxGenericDataViewHeaderWindow, wxWindow)
-BEGIN_EVENT_TABLE(wxGenericDataViewHeaderWindow, wxWindow)
- EVT_PAINT (wxGenericDataViewHeaderWindow::OnPaint)
- EVT_MOUSE_EVENTS (wxGenericDataViewHeaderWindow::OnMouse)
- EVT_SET_FOCUS (wxGenericDataViewHeaderWindow::OnSetFocus)
-END_EVENT_TABLE()
-
-bool wxGenericDataViewHeaderWindow::Create(wxDataViewCtrl *parent, wxWindowID id,
- const wxPoint &pos, const wxSize &size,
- const wxString &name )
-{
- m_owner = parent;
-
- if (!wxDataViewHeaderWindowBase::Create(parent, id, pos, size, name))
- return false;
-
- wxVisualAttributes attr = wxPanel::GetClassDefaultAttributes();
- SetBackgroundStyle( wxBG_STYLE_CUSTOM );
- SetOwnForegroundColour( attr.colFg );
- SetOwnBackgroundColour( attr.colBg );
- if (!m_hasFont)
- SetOwnFont( attr.font );
-
- // set our size hints: wxDataViewCtrl will put this wxWindow inside
- // a wxBoxSizer and in order to avoid super-big header windows,
- // we need to set our height as fixed
- SetMinSize(wxSize(-1, HEADER_WINDOW_HEIGHT));
- SetMaxSize(wxSize(-1, HEADER_WINDOW_HEIGHT));
-
- return true;
-}
-
-void wxGenericDataViewHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
-{
- int w, h;
- GetClientSize( &w, &h );
-
- wxAutoBufferedPaintDC dc( this );
-
- dc.SetBackground(GetBackgroundColour());
- dc.Clear();
-
- int xpix;
- m_owner->GetScrollPixelsPerUnit( &xpix, NULL );
-
- int x;
- m_owner->GetViewStart( &x, NULL );
-
- // account for the horz scrollbar offset
- dc.SetDeviceOrigin( -x * xpix, 0 );
-
- dc.SetFont( GetFont() );
-
- unsigned int cols = GetOwner()->GetColumnCount();
- unsigned int i;
- int xpos = 0;
- for (i = 0; i < cols; i++)
- {
- wxDataViewColumn *col = GetColumn( i );
- if (col->IsHidden())
- continue; // skip it!
-
- int cw = col->GetWidth();
- int ch = h;
-
- wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE;
- if (col->IsSortable() && GetOwner()->GetSortingColumn() == col)
- {
- if (col->IsSortOrderAscending())
- sortArrow = wxHDR_SORT_ICON_UP;
- else
- sortArrow = wxHDR_SORT_ICON_DOWN;
- }
-
- int state = 0;
- if (m_parent->IsEnabled())
- {
- if ((int) i == m_hover)
- state = wxCONTROL_CURRENT;
- }
- else
- {
- state = (int) wxCONTROL_DISABLED;
- }
-
- wxRendererNative::Get().DrawHeaderButton
- (
- this,
- dc,
- wxRect(xpos, 0, cw, ch-1),
- state,
- sortArrow
- );
-
- // align as required the column title:
- int x = xpos;
- wxSize titleSz = dc.GetTextExtent(col->GetTitle());
- switch (col->GetAlignment())
- {
- case wxALIGN_LEFT:
- x += HEADER_HORIZ_BORDER;
- break;
- case wxALIGN_RIGHT:
- x += cw - titleSz.GetWidth() - HEADER_HORIZ_BORDER;
- break;
- default:
- case wxALIGN_CENTER:
- case wxALIGN_CENTER_HORIZONTAL:
- x += (cw - titleSz.GetWidth() - 2 * HEADER_HORIZ_BORDER)/2;
- break;
- }
-
- // always center the title vertically:
- int y = wxMax((ch - titleSz.GetHeight()) / 2, HEADER_VERT_BORDER);
-
- dc.SetClippingRegion( xpos+HEADER_HORIZ_BORDER,
- HEADER_VERT_BORDER,
- wxMax(cw - 2 * HEADER_HORIZ_BORDER, 1), // width
- wxMax(ch - 2 * HEADER_VERT_BORDER, 1)); // height
- dc.DrawText( col->GetTitle(), x, y );
- dc.DestroyClippingRegion();
-
- xpos += cw;
- }
-}
-
-void wxGenericDataViewHeaderWindow::OnSetFocus( wxFocusEvent &event )
-{
- GetParent()->SetFocus();
- event.Skip();
-}
-
-void wxGenericDataViewHeaderWindow::OnMouse( wxMouseEvent &event )
-{
- // we want to work with logical coords
- int x;
- m_owner->CalcUnscrolledPosition(event.GetX(), 0, &x, NULL);
- int y = event.GetY();
-
- if (m_isDragging)
- {
- // we don't draw the line beyond our window,
- // but we allow dragging it there
- int w = 0;
- GetClientSize( &w, NULL );
- m_owner->CalcUnscrolledPosition(w, 0, &w, NULL);
- w -= 6;
-
- if (event.ButtonUp())
- {
- m_isDragging = false;
- if (HasCapture())
- ReleaseMouse();
-
- m_dirty = true;
- }
- m_currentX = wxMax(m_minX + 7, x);
-
- if (m_currentX < w)
- {
- GetColumn(m_column)->SetWidth(m_currentX - m_minX);
- Refresh();
- GetOwner()->Refresh();
- }
-
- }
- else // not dragging
- {
- m_minX = 0;
- m_column = wxNOT_FOUND;
-
- bool hit_border = false;
-
- // end of the current column
- int xpos = 0;
-
- // find the column where this event occured
- int countCol = m_owner->GetColumnCount();
- for (int column = 0; column < countCol; column++)
- {
- wxDataViewColumn *p = GetColumn(column);
-
- if (p->IsHidden())
- continue; // skip if not shown
-
- xpos += p->GetWidth();
- m_column = column;
- if ((abs(x-xpos) < 3) && (y < 22))
- {
- hit_border = true;
- break;
- }
-
- if (x < xpos)
- {
- // inside the column
- break;
- }
-
- m_minX = xpos;
- }
-
- int old_hover = m_hover;
- m_hover = m_column;
- if (event.Leaving())
- m_hover = wxNOT_FOUND;
- if (old_hover != m_hover)
- Refresh();
-
- if (m_column == wxNOT_FOUND)
- return;
-
- bool resizeable = GetColumn(m_column)->IsResizeable();
- if (event.LeftDClick() && resizeable)
- {
- GetColumn(m_column)->SetWidth(GetOwner()->GetBestColumnWidth(m_column));
- Refresh();
- }
- else if (event.LeftDown() || event.RightUp())
- {
- if (hit_border && event.LeftDown() && resizeable)
- {
- m_isDragging = true;
- CaptureMouse();
- m_currentX = x;
- }
- else // click on a column
- {
- wxDataViewModel * model = GetOwner()->GetModel();
- wxEventType evt = event.LeftDown() ?
- wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK :
- wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK;
- SendEvent(evt, m_column);
-
- //Left click the header
- if(event.LeftDown())
- {
- wxDataViewColumn *col = GetColumn(m_column);
- if(col->IsSortable())
- {
- wxDataViewColumn* sortCol = m_owner->GetSortingColumn();
- if(model && sortCol == col)
- {
- bool order = col->IsSortOrderAscending();
- col->SetSortOrder(!order);
- }
- else if(model)
- {
- m_owner->SetSortingColumn(col);
- }
- }
- UpdateDisplay();
- if(model)
- model->Resort();
- //Send the column sorted event
- SendEvent(wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, m_column);
- }
- }
- }
- else if (event.Moving())
- {
- if (hit_border && resizeable)
- m_currentCursor = m_resizeCursor;
- else
- m_currentCursor = wxSTANDARD_CURSOR;
-
- SetCursor(*m_currentCursor);
- }
- }
-}
-
-void wxGenericDataViewHeaderWindow::AdjustDC(wxDC& dc)
-{
- int xpix, x;
-
- m_owner->GetScrollPixelsPerUnit( &xpix, NULL );
- m_owner->GetViewStart( &x, NULL );
-
- // shift the DC origin to match the position of the main window horizontal
- // scrollbar: this allows us to always use logical coords
- dc.SetDeviceOrigin( -x * xpix, 0 );
-}
-
-#endif // defined(__WXMSW__)
-
//-----------------------------------------------------------------------------
// wxDataViewRenameTimer
//-----------------------------------------------------------------------------
void wxDataViewCtrl::OnColumnChange()
{
if (m_headerArea)
- m_headerArea->UpdateDisplay();
+ m_headerArea->SetColumnCount(GetColumnCount());
m_clientArea->UpdateDisplay();
}
+++ /dev/null
-///////////////////////////////////////////////////////////////////////////////
-// Name: src/generic/headercolg.cpp
-// Purpose: generic wxHeaderColumn implementation
-// Author: Vadim Zeitlin
-// Created: 2008-12-03
-// RCS-ID: $Id$
-// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence: wxWindows licence
-///////////////////////////////////////////////////////////////////////////////
-
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
-// for compilers that support precompilation, includes "wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-#endif // WX_PRECOMP
-
-#include "wx/headercol.h"
-
-#ifdef wxHAS_GENERIC_HEADERCOL
-
-// ============================================================================
-// implementation
-// ============================================================================
-
-#endif // wxHAS_GENERIC_HEADERCOL
return m_cols.size();
}
-void wxHeaderCtrl::DoInsert(const wxHeaderColumn& col, unsigned int idx)
-{
- m_cols.insert(m_cols.begin() + idx, col);
- m_sortOrders.insert(m_sortOrders.begin() + idx, -1);
-
- if ( m_cols[idx].IsShown() )
- RefreshColsAfter(idx);
-}
-
-void wxHeaderCtrl::DoDelete(unsigned int idx)
-{
- m_cols.erase(m_cols.begin() + idx);
- m_sortOrders.erase(m_sortOrders.begin() + idx);
-
- RefreshColsAfter(idx);
-}
-
-void wxHeaderCtrl::DoShowColumn(unsigned int idx, bool show)
-{
- if ( show != m_cols[idx].IsShown() )
- {
- m_cols[idx].SetHidden(!show);
-
- RefreshColsAfter(idx);
- }
-}
-
-void wxHeaderCtrl::DoShowSortIndicator(unsigned int idx, int sortOrder)
-{
- if ( sortOrder != m_sortOrders[idx] )
- {
- m_sortOrders[idx] = sortOrder;
-
- RefreshCol(idx);
- }
-}
-
// ----------------------------------------------------------------------------
// wxHeaderCtrl scrolling
// ----------------------------------------------------------------------------
{
Init( align, flags, width );
- gtk_tree_view_column_set_clickable( GTK_TREE_VIEW_COLUMN(m_column), TRUE );
SetTitle( title );
}
wxGtkTreeCellDataFunc, (gpointer) GetRenderer(), NULL );
}
-wxDataViewColumn::~wxDataViewColumn()
-{
-}
-
void wxDataViewColumn::OnInternalIdle()
{
if (m_isConnected)
{
GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(m_column);
- if (sortable)
+ gtk_tree_view_column_set_clickable( GTK_TREE_VIEW_COLUMN(m_column),
+ sortable );
+}
+
+bool wxDataViewColumn::IsSortable() const
+{
+ GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(m_column);
+ return gtk_tree_view_column_get_clickable( column );
+}
+
+void wxDataViewColumn::SetAsSortKey( bool sort )
+{
+ GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(m_column);
+
+ if (sort)
{
gtk_tree_view_column_set_sort_column_id( column, GetModelColumn() );
}
}
}
-bool wxDataViewColumn::IsSortable() const
+bool wxDataViewColumn::IsSortKey() const
{
GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(m_column);
return (gtk_tree_view_column_get_sort_column_id( column ) != -1);
+++ /dev/null
-///////////////////////////////////////////////////////////////////////////////
-// Name: src/msw/headercol.cpp
-// Purpose: wxHeaderColumn implementation for wxMSW
-// Author: Vadim Zeitlin
-// Created: 2008-12-03
-// RCS-ID: $Id$
-// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence: wxWindows licence
-///////////////////////////////////////////////////////////////////////////////
-
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
-// for compilers that support precompilation, includes "wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-#endif // WX_PRECOMP
-
-#include "wx/headercol.h"
-
-#include "wx/msw/wrapcctl.h"
-
-// ----------------------------------------------------------------------------
-// wxMSWHeaderColumnImpl
-// ----------------------------------------------------------------------------
-
-struct wxMSWHeaderColumnImpl
-{
- wxMSWHeaderColumnImpl()
- {
- flags = wxCOL_DEFAULT_FLAGS;
- minWidth = 0;
- ascending = true;
- }
-
- wxHDITEM hdi;
- wxWxCharBuffer bufTitle;
- wxBitmap bmp;
- int flags; // combination of wxCOL_XXX constants
- int minWidth; // 0 if not set
- bool ascending; // sort order
-
- DECLARE_NO_COPY_CLASS(wxMSWHeaderColumnImpl)
-};
-
-// ============================================================================
-// wxHeaderColumn implementation
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// wxHeaderColumn construction/destruction
-// ----------------------------------------------------------------------------
-
-void wxHeaderColumn::Init()
-{
- m_impl = new wxMSWHeaderColumnImpl;
-}
-
-wxHeaderColumn::wxHeaderColumn(const wxString& title,
- int width,
- wxAlignment align,
- int flags)
-{
- Init();
-
- SetTitle(title);
- SetWidth(width);
- SetAlignment(align);
- SetFlags(flags);
-}
-
-wxHeaderColumn::wxHeaderColumn(const wxBitmap& bitmap,
- int width,
- wxAlignment align,
- int flags)
-{
- Init();
-
- SetBitmap(bitmap);
- SetWidth(width);
- SetAlignment(align);
- SetFlags(flags);
-}
-
-wxHeaderColumn::~wxHeaderColumn()
-{
- delete m_impl;
-}
-
-// ----------------------------------------------------------------------------
-// wxHeaderColumn accessors corresponding to HDITEM fields
-// ----------------------------------------------------------------------------
-
-wxHDITEM& wxHeaderColumn::GetHDI()
-{
- return m_impl->hdi;
-}
-
-void wxHeaderColumn::SetTitle(const wxString& title)
-{
- HDITEM& hdi = m_impl->hdi;
-
- hdi.mask |= HDI_TEXT;
-
- // notice that we need to store the string we use the pointer to
- wxWxCharBuffer& buf = m_impl->bufTitle;
- buf = title.wc_str();
- hdi.pszText = buf.data();
- hdi.cchTextMax = wxStrlen(buf);
-}
-
-wxString wxHeaderColumn::GetTitle() const
-{
- HDITEM& hdi = m_impl->hdi;
-
- wxASSERT_MSG( hdi.mask & HDI_TEXT, "title not set" );
-
- return hdi.pszText;
-}
-
-void wxHeaderColumn::SetWidth(int width)
-{
- HDITEM& hdi = m_impl->hdi;
-
- if ( width != wxCOL_WIDTH_DEFAULT )
- {
- hdi.mask |= HDI_WIDTH;
- hdi.cxy = width;
- }
-}
-
-int wxHeaderColumn::GetWidth() const
-{
- HDITEM& hdi = m_impl->hdi;
-
- return hdi.mask & HDI_WIDTH ? hdi.cxy : wxCOL_WIDTH_DEFAULT;
-}
-
-void wxHeaderColumn::SetAlignment(wxAlignment align)
-{
- HDITEM& hdi = m_impl->hdi;
-
- if ( align != wxALIGN_NOT )
- {
- hdi.mask |= HDI_FORMAT;
- switch ( align )
- {
- case wxALIGN_LEFT:
- hdi.fmt |= HDF_LEFT;
- break;
-
- case wxALIGN_CENTER:
- case wxALIGN_CENTER_HORIZONTAL:
- hdi.fmt |= HDF_CENTER;
- break;
-
- case wxALIGN_RIGHT:
- hdi.fmt |= HDF_RIGHT;
- break;
-
- default:
- wxFAIL_MSG( "invalid column header alignment" );
- }
- }
-}
-
-wxAlignment wxHeaderColumn::GetAlignment() const
-{
- HDITEM& hdi = m_impl->hdi;
-
- if ( !(hdi.mask & HDI_FORMAT) )
- return wxALIGN_NOT;
-
- if ( hdi.fmt & HDF_CENTER )
- return wxALIGN_CENTER;
-
- if ( hdi.fmt & HDF_RIGHT )
- return wxALIGN_RIGHT;
-
- // HDF_LEFT == 0 so it doesn't make sense to test for it with bit and
- return wxALIGN_LEFT;
-}
-
-void wxHeaderColumn::SetClientData(wxUIntPtr data)
-{
- HDITEM& hdi = m_impl->hdi;
-
- hdi.mask |= HDI_LPARAM;
- hdi.lParam = data;
-}
-
-wxUIntPtr wxHeaderColumn::GetClientData() const
-{
- HDITEM& hdi = m_impl->hdi;
-
- wxASSERT_MSG( hdi.mask & HDI_LPARAM, "client data not set" );
-
- return hdi.lParam;
-}
-
-// ----------------------------------------------------------------------------
-// wxHeaderColumn trivial accessors for fields stored internally
-// ----------------------------------------------------------------------------
-
-void wxHeaderColumn::SetBitmap(const wxBitmap& bitmap)
-{
- m_impl->bmp = bitmap;
-}
-
-wxBitmap wxHeaderColumn::GetBitmap() const
-{
- return m_impl->bmp;
-}
-
-void wxHeaderColumn::SetMinWidth(int minWidth)
-{
- m_impl->minWidth = minWidth;
-}
-
-int wxHeaderColumn::GetMinWidth() const
-{
- return m_impl->minWidth;
-}
-
-void wxHeaderColumn::SetFlags(int flags)
-{
- m_impl->flags = flags;
-}
-
-int wxHeaderColumn::GetFlags() const
-{
- return m_impl->flags;
-}
-
-void wxHeaderColumn::SetSortOrder(bool ascending)
-{
- m_impl->ascending = ascending;
-}
-
-bool wxHeaderColumn::IsSortOrderAscending() const
-{
- return m_impl->ascending;
-}
-
-
return Header_GetItemCount(GetHwnd());
}
-void wxHeaderCtrl::DoInsert(const wxHeaderColumn& col, unsigned int idx)
+void wxHeaderCtrl::DoSetCount(unsigned int count)
{
- // copy the HDITEM because we may modify it below
- HDITEM hdi = col.GetHDI();
+ unsigned n;
+
+ // first delete all old columns
+ const unsigned countOld = DoGetCount();
+ for ( n = 0; n < countOld; n++ )
+ {
+ if ( !Header_DeleteItem(GetHwnd(), 0) )
+ {
+ wxLogLastError(_T("Header_DeleteItem"));
+ }
+ }
+
+ // and add the new ones
+ for ( n = 0; n < count; n++ )
+ {
+ DoSetOrInsertItem(Insert, n);
+ }
+}
+
+void wxHeaderCtrl::DoUpdate(unsigned int idx)
+{
+ DoSetOrInsertItem(Set, idx);
+}
+
+void wxHeaderCtrl::DoSetOrInsertItem(Operation oper, unsigned int idx)
+{
+ const wxHeaderColumnBase& col = GetColumn(idx);
+
+ wxHDITEM hdi;
+
+ // notice that we need to store the string we use the pointer to until we
+ // pass it to the control
+ wxWxCharBuffer buf;
+ if ( !col.GetTitle().empty() )
+ {
+ hdi.mask |= HDI_TEXT;
+
+ buf = col.GetTitle().wx_str();
+ hdi.pszText = buf.data();
+ hdi.cchTextMax = wxStrlen(buf);
+ }
const wxBitmap bmp = col.GetBitmap();
if ( bmp.IsOk() )
hdi.iImage = m_imageList->GetImageCount() - 1;
}
- if ( col.IsHidden() )
+ if ( col.GetAlignment() != wxALIGN_NOT )
{
- hdi.mask |= HDI_WIDTH;
- hdi.cxy = 0;
- }
-
- if ( Header_InsertItem(GetHwnd(), idx, &hdi) == -1 )
- {
- wxLogLastError(_T("Header_InsertItem"));
- }
-}
+ hdi.mask |= HDI_FORMAT;
+ switch ( col.GetAlignment() )
+ {
+ case wxALIGN_LEFT:
+ hdi.fmt |= HDF_LEFT;
+ break;
-void wxHeaderCtrl::DoDelete(unsigned int idx)
-{
- if ( !Header_DeleteItem(GetHwnd(), idx) )
- {
- wxLogLastError(_T("Header_DeleteItem"));
- }
-}
+ case wxALIGN_CENTER:
+ case wxALIGN_CENTER_HORIZONTAL:
+ hdi.fmt |= HDF_CENTER;
+ break;
-// ----------------------------------------------------------------------------
-// wxHeaderCtrl columns attributes
-// ----------------------------------------------------------------------------
+ case wxALIGN_RIGHT:
+ hdi.fmt |= HDF_RIGHT;
+ break;
-void wxHeaderCtrl::DoShowColumn(unsigned int idx, bool show)
-{
- wxHDITEM hdi;
- hdi.mask = HDI_WIDTH;
+ default:
+ wxFAIL_MSG( "invalid column header alignment" );
+ }
+ }
- if ( !Header_GetItem(GetHwnd(), idx, &hdi) )
+ if ( col.IsSortKey() )
{
- wxLogLastError(_T("Header_GetItem(HDI_WIDTH)"));
- return;
+ hdi.mask |= HDI_FORMAT;
+ hdi.fmt |= col.IsSortOrderAscending() ? HDF_SORTUP : HDF_SORTDOWN;
}
- if ( show )
- hdi.cxy = 80; // FIXME: we don't have the column width here any more
- else
- hdi.cxy = 0;
-
- if ( !Header_SetItem(GetHwnd(), idx, &hdi) )
+ if ( col.GetWidth() != wxCOL_WIDTH_DEFAULT || col.IsHidden() )
{
- wxLogLastError(_T("Header_SetItem(HDI_WIDTH)"));
- return;
+ hdi.mask |= HDI_WIDTH;
+ hdi.cxy = col.IsHidden() ? 0 : col.GetWidth();
}
-}
-void wxHeaderCtrl::DoShowSortIndicator(unsigned int idx, int sortOrder)
-{
- wxHDITEM hdi;
- hdi.mask = HDI_FORMAT;
-
- if ( !Header_GetItem(GetHwnd(), idx, &hdi) )
+ const LRESULT rc = ::SendMessage(GetHwnd(),
+ oper == Set ? HDM_SETITEM : HDM_INSERTITEM,
+ idx,
+ (LPARAM)&hdi);
+ if ( oper == Set )
{
- wxLogLastError(_T("Header_GetItem(HDI_FORMAT)"));
- return;
+ if ( !rc )
+ wxLogLastError(_T("Header_SetItem()"));
}
-
- if ( sortOrder == -1 )
- hdi.fmt &= ~(HDF_SORTDOWN | HDF_SORTUP);
- else
- hdi.fmt |= sortOrder ? HDF_SORTUP : HDF_SORTDOWN;
-
- if ( !Header_SetItem(GetHwnd(), idx, &hdi) )
+ else // Insert
{
- wxLogLastError(_T("Header_SetItem(HDI_FORMAT)"));
+ if ( rc == -1 )
+ wxLogLastError(_T("Header_InsertItem()"));
}
}
void AddDelete();
void BestSize();
- wxHeaderCtrl *m_header;
+ wxHeaderCtrlSimple *m_header;
DECLARE_NO_COPY_CLASS(HeaderCtrlTestCase)
};
void HeaderCtrlTestCase::setUp()
{
- m_header = new wxHeaderCtrl(wxTheApp->GetTopWindow());
+ m_header = new wxHeaderCtrlSimple(wxTheApp->GetTopWindow());
}
void HeaderCtrlTestCase::tearDown()