From 916eabe60eee4adb05387bbf1eaf1915ae5eac18 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 12 Oct 2008 13:04:00 +0000 Subject: [PATCH] add wxGenericStaticText (#9656) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- Makefile.in | 21 +++ build/bakefiles/files.bkl | 2 + build/msw/makefile.bcc | 28 ++++ build/msw/makefile.gcc | 28 ++++ build/msw/makefile.vc | 28 ++++ build/msw/makefile.wat | 28 ++++ build/msw/wx_core.dsp | 8 ++ build/msw/wx_vc7_core.vcproj | 6 + build/msw/wx_vc8_core.vcproj | 8 ++ build/msw/wx_vc9_core.vcproj | 8 ++ include/wx/control.h | 5 + include/wx/generic/stattextg.h | 62 +++++++++ include/wx/univ/control.h | 5 - include/wx/univ/stattext.h | 7 +- samples/widgets/static.cpp | 228 ++++++++++++++++----------------- src/common/ctrlcmn.cpp | 45 +++++++ src/generic/stattextg.cpp | 124 ++++++++++++++++++ src/univ/control.cpp | 45 ------- src/univ/stattext.cpp | 17 +-- 19 files changed, 516 insertions(+), 187 deletions(-) create mode 100644 include/wx/generic/stattextg.h create mode 100644 src/generic/stattextg.cpp diff --git a/Makefile.in b/Makefile.in index 7be1cec57d..b258177dcf 100644 --- a/Makefile.in +++ b/Makefile.in @@ -3679,6 +3679,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \ wx/generic/splitter.h \ wx/generic/srchctlg.h \ wx/generic/statbmpg.h \ + wx/generic/stattextg.h \ wx/generic/textdlgg.h \ wx/generic/treectlg.h \ wx/graphics.h \ @@ -4316,6 +4317,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS = \ monodll_splitter.o \ monodll_srchctlg.o \ monodll_statbmpg.o \ + monodll_stattextg.o \ monodll_textdlgg.o \ monodll_tipwin.o \ monodll_toolbkg.o \ @@ -4502,6 +4504,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \ monodll_splitter.o \ monodll_srchctlg.o \ monodll_statbmpg.o \ + monodll_stattextg.o \ monodll_textdlgg.o \ monodll_tipwin.o \ monodll_toolbkg.o \ @@ -6124,6 +6127,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_1 = \ monolib_splitter.o \ monolib_srchctlg.o \ monolib_statbmpg.o \ + monolib_stattextg.o \ monolib_textdlgg.o \ monolib_tipwin.o \ monolib_toolbkg.o \ @@ -6310,6 +6314,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \ monolib_splitter.o \ monolib_srchctlg.o \ monolib_statbmpg.o \ + monolib_stattextg.o \ monolib_textdlgg.o \ monolib_tipwin.o \ monolib_toolbkg.o \ @@ -8083,6 +8088,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \ coredll_splitter.o \ coredll_srchctlg.o \ coredll_statbmpg.o \ + coredll_stattextg.o \ coredll_textdlgg.o \ coredll_tipwin.o \ coredll_toolbkg.o \ @@ -8269,6 +8275,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \ coredll_splitter.o \ coredll_srchctlg.o \ coredll_statbmpg.o \ + coredll_stattextg.o \ coredll_textdlgg.o \ coredll_tipwin.o \ coredll_toolbkg.o \ @@ -9582,6 +9589,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \ corelib_splitter.o \ corelib_srchctlg.o \ corelib_statbmpg.o \ + corelib_stattextg.o \ corelib_textdlgg.o \ corelib_tipwin.o \ corelib_toolbkg.o \ @@ -9768,6 +9776,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \ corelib_splitter.o \ corelib_srchctlg.o \ corelib_statbmpg.o \ + corelib_stattextg.o \ corelib_textdlgg.o \ corelib_tipwin.o \ corelib_toolbkg.o \ @@ -18457,6 +18466,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@monodll_statbmpg.o: $(srcdir)/src/generic/statbmpg.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/statbmpg.cpp +@COND_USE_GUI_1@monodll_stattextg.o: $(srcdir)/src/generic/stattextg.cpp $(MONODLL_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/stattextg.cpp + @COND_USE_GUI_1@monodll_textdlgg.o: $(srcdir)/src/generic/textdlgg.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/textdlgg.cpp @@ -23131,6 +23143,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@monolib_statbmpg.o: $(srcdir)/src/generic/statbmpg.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/statbmpg.cpp +@COND_USE_GUI_1@monolib_stattextg.o: $(srcdir)/src/generic/stattextg.cpp $(MONOLIB_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/stattextg.cpp + @COND_USE_GUI_1@monolib_textdlgg.o: $(srcdir)/src/generic/textdlgg.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/textdlgg.cpp @@ -27994,6 +28009,9 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP) @COND_USE_GUI_1@coredll_statbmpg.o: $(srcdir)/src/generic/statbmpg.cpp $(COREDLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/statbmpg.cpp +@COND_USE_GUI_1@coredll_stattextg.o: $(srcdir)/src/generic/stattextg.cpp $(COREDLL_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/stattextg.cpp + @COND_USE_GUI_1@coredll_textdlgg.o: $(srcdir)/src/generic/textdlgg.cpp $(COREDLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/textdlgg.cpp @@ -31495,6 +31513,9 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP) @COND_USE_GUI_1@corelib_statbmpg.o: $(srcdir)/src/generic/statbmpg.cpp $(CORELIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/statbmpg.cpp +@COND_USE_GUI_1@corelib_stattextg.o: $(srcdir)/src/generic/stattextg.cpp $(CORELIB_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/stattextg.cpp + @COND_USE_GUI_1@corelib_textdlgg.o: $(srcdir)/src/generic/textdlgg.cpp $(CORELIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/textdlgg.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index 685fec11e9..7e03bd291f 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -733,6 +733,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/generic/splitter.cpp src/generic/srchctlg.cpp src/generic/statbmpg.cpp + src/generic/stattextg.cpp src/generic/textdlgg.cpp src/generic/tipwin.cpp src/generic/toolbkg.cpp @@ -795,6 +796,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/generic/splitter.h wx/generic/srchctlg.h wx/generic/statbmpg.h + wx/generic/stattextg.h wx/generic/textdlgg.h wx/generic/treectlg.h wx/graphics.h diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc index 4feb4045f6..2b0e3852f3 100644 --- a/build/msw/makefile.bcc +++ b/build/msw/makefile.bcc @@ -1751,6 +1751,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_splitter.obj \ $(OBJS)\monodll_srchctlg.obj \ $(OBJS)\monodll_statbmpg.obj \ + $(OBJS)\monodll_stattextg.obj \ $(OBJS)\monodll_textdlgg.obj \ $(OBJS)\monodll_tipwin.obj \ $(OBJS)\monodll_toolbkg.obj \ @@ -1984,6 +1985,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_splitter.obj \ $(OBJS)\monodll_srchctlg.obj \ $(OBJS)\monodll_statbmpg.obj \ + $(OBJS)\monodll_stattextg.obj \ $(OBJS)\monodll_textdlgg.obj \ $(OBJS)\monodll_tipwin.obj \ $(OBJS)\monodll_toolbkg.obj \ @@ -2416,6 +2418,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_splitter.obj \ $(OBJS)\monolib_srchctlg.obj \ $(OBJS)\monolib_statbmpg.obj \ + $(OBJS)\monolib_stattextg.obj \ $(OBJS)\monolib_textdlgg.obj \ $(OBJS)\monolib_tipwin.obj \ $(OBJS)\monolib_toolbkg.obj \ @@ -2649,6 +2652,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_splitter.obj \ $(OBJS)\monolib_srchctlg.obj \ $(OBJS)\monolib_statbmpg.obj \ + $(OBJS)\monolib_stattextg.obj \ $(OBJS)\monolib_textdlgg.obj \ $(OBJS)\monolib_tipwin.obj \ $(OBJS)\monolib_toolbkg.obj \ @@ -2986,6 +2990,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\coredll_splitter.obj \ $(OBJS)\coredll_srchctlg.obj \ $(OBJS)\coredll_statbmpg.obj \ + $(OBJS)\coredll_stattextg.obj \ $(OBJS)\coredll_textdlgg.obj \ $(OBJS)\coredll_tipwin.obj \ $(OBJS)\coredll_toolbkg.obj \ @@ -3219,6 +3224,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\coredll_splitter.obj \ $(OBJS)\coredll_srchctlg.obj \ $(OBJS)\coredll_statbmpg.obj \ + $(OBJS)\coredll_stattextg.obj \ $(OBJS)\coredll_textdlgg.obj \ $(OBJS)\coredll_tipwin.obj \ $(OBJS)\coredll_toolbkg.obj \ @@ -3455,6 +3461,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\corelib_splitter.obj \ $(OBJS)\corelib_srchctlg.obj \ $(OBJS)\corelib_statbmpg.obj \ + $(OBJS)\corelib_stattextg.obj \ $(OBJS)\corelib_textdlgg.obj \ $(OBJS)\corelib_tipwin.obj \ $(OBJS)\corelib_toolbkg.obj \ @@ -3688,6 +3695,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\corelib_splitter.obj \ $(OBJS)\corelib_srchctlg.obj \ $(OBJS)\corelib_statbmpg.obj \ + $(OBJS)\corelib_stattextg.obj \ $(OBJS)\corelib_textdlgg.obj \ $(OBJS)\corelib_tipwin.obj \ $(OBJS)\corelib_toolbkg.obj \ @@ -7315,6 +7323,11 @@ $(OBJS)\monodll_statbmpg.obj: ..\..\src\generic\statbmpg.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\statbmpg.cpp !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\monodll_stattextg.obj: ..\..\src\generic\stattextg.cpp + $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\stattextg.cpp +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\monodll_textdlgg.obj: ..\..\src\generic\textdlgg.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\textdlgg.cpp @@ -9498,6 +9511,11 @@ $(OBJS)\monolib_statbmpg.obj: ..\..\src\generic\statbmpg.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\statbmpg.cpp !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\monolib_stattextg.obj: ..\..\src\generic\stattextg.cpp + $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\stattextg.cpp +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\monolib_textdlgg.obj: ..\..\src\generic\textdlgg.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\textdlgg.cpp @@ -11705,6 +11723,11 @@ $(OBJS)\coredll_statbmpg.obj: ..\..\src\generic\statbmpg.cpp $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\statbmpg.cpp !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\coredll_stattextg.obj: ..\..\src\generic\stattextg.cpp + $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\stattextg.cpp +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\coredll_textdlgg.obj: ..\..\src\generic\textdlgg.cpp $(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\textdlgg.cpp @@ -13041,6 +13064,11 @@ $(OBJS)\corelib_statbmpg.obj: ..\..\src\generic\statbmpg.cpp $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\statbmpg.cpp !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\corelib_stattextg.obj: ..\..\src\generic\stattextg.cpp + $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\stattextg.cpp +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\corelib_textdlgg.obj: ..\..\src\generic\textdlgg.cpp $(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\textdlgg.cpp diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc index 2677f95f56..d3e7193136 100644 --- a/build/msw/makefile.gcc +++ b/build/msw/makefile.gcc @@ -1769,6 +1769,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_splitter.o \ $(OBJS)\monodll_srchctlg.o \ $(OBJS)\monodll_statbmpg.o \ + $(OBJS)\monodll_stattextg.o \ $(OBJS)\monodll_textdlgg.o \ $(OBJS)\monodll_tipwin.o \ $(OBJS)\monodll_toolbkg.o \ @@ -2004,6 +2005,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_splitter.o \ $(OBJS)\monodll_srchctlg.o \ $(OBJS)\monodll_statbmpg.o \ + $(OBJS)\monodll_stattextg.o \ $(OBJS)\monodll_textdlgg.o \ $(OBJS)\monodll_tipwin.o \ $(OBJS)\monodll_toolbkg.o \ @@ -2440,6 +2442,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_splitter.o \ $(OBJS)\monolib_srchctlg.o \ $(OBJS)\monolib_statbmpg.o \ + $(OBJS)\monolib_stattextg.o \ $(OBJS)\monolib_textdlgg.o \ $(OBJS)\monolib_tipwin.o \ $(OBJS)\monolib_toolbkg.o \ @@ -2675,6 +2678,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_splitter.o \ $(OBJS)\monolib_srchctlg.o \ $(OBJS)\monolib_statbmpg.o \ + $(OBJS)\monolib_stattextg.o \ $(OBJS)\monolib_textdlgg.o \ $(OBJS)\monolib_tipwin.o \ $(OBJS)\monolib_toolbkg.o \ @@ -3026,6 +3030,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\coredll_splitter.o \ $(OBJS)\coredll_srchctlg.o \ $(OBJS)\coredll_statbmpg.o \ + $(OBJS)\coredll_stattextg.o \ $(OBJS)\coredll_textdlgg.o \ $(OBJS)\coredll_tipwin.o \ $(OBJS)\coredll_toolbkg.o \ @@ -3261,6 +3266,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\coredll_splitter.o \ $(OBJS)\coredll_srchctlg.o \ $(OBJS)\coredll_statbmpg.o \ + $(OBJS)\coredll_stattextg.o \ $(OBJS)\coredll_textdlgg.o \ $(OBJS)\coredll_tipwin.o \ $(OBJS)\coredll_toolbkg.o \ @@ -3503,6 +3509,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\corelib_splitter.o \ $(OBJS)\corelib_srchctlg.o \ $(OBJS)\corelib_statbmpg.o \ + $(OBJS)\corelib_stattextg.o \ $(OBJS)\corelib_textdlgg.o \ $(OBJS)\corelib_tipwin.o \ $(OBJS)\corelib_toolbkg.o \ @@ -3738,6 +3745,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\corelib_splitter.o \ $(OBJS)\corelib_srchctlg.o \ $(OBJS)\corelib_statbmpg.o \ + $(OBJS)\corelib_stattextg.o \ $(OBJS)\corelib_textdlgg.o \ $(OBJS)\corelib_tipwin.o \ $(OBJS)\corelib_toolbkg.o \ @@ -7579,6 +7587,11 @@ $(OBJS)\monodll_statbmpg.o: ../../src/generic/statbmpg.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< endif +ifeq ($(USE_GUI),1) +$(OBJS)\monodll_stattextg.o: ../../src/generic/stattextg.cpp + $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< +endif + ifeq ($(USE_GUI),1) $(OBJS)\monodll_textdlgg.o: ../../src/generic/textdlgg.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< @@ -9876,6 +9889,11 @@ $(OBJS)\monolib_statbmpg.o: ../../src/generic/statbmpg.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< endif +ifeq ($(USE_GUI),1) +$(OBJS)\monolib_stattextg.o: ../../src/generic/stattextg.cpp + $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< +endif + ifeq ($(USE_GUI),1) $(OBJS)\monolib_textdlgg.o: ../../src/generic/textdlgg.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< @@ -12197,6 +12215,11 @@ $(OBJS)\coredll_statbmpg.o: ../../src/generic/statbmpg.cpp $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $< endif +ifeq ($(USE_GUI),1) +$(OBJS)\coredll_stattextg.o: ../../src/generic/stattextg.cpp + $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $< +endif + ifeq ($(USE_GUI),1) $(OBJS)\coredll_textdlgg.o: ../../src/generic/textdlgg.cpp $(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $< @@ -13645,6 +13668,11 @@ $(OBJS)\corelib_statbmpg.o: ../../src/generic/statbmpg.cpp $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $< endif +ifeq ($(USE_GUI),1) +$(OBJS)\corelib_stattextg.o: ../../src/generic/stattextg.cpp + $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $< +endif + ifeq ($(USE_GUI),1) $(OBJS)\corelib_textdlgg.o: ../../src/generic/textdlgg.cpp $(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $< diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc index fa84ac1eeb..52cd86d457 100644 --- a/build/msw/makefile.vc +++ b/build/msw/makefile.vc @@ -1931,6 +1931,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_splitter.obj \ $(OBJS)\monodll_srchctlg.obj \ $(OBJS)\monodll_statbmpg.obj \ + $(OBJS)\monodll_stattextg.obj \ $(OBJS)\monodll_textdlgg.obj \ $(OBJS)\monodll_tipwin.obj \ $(OBJS)\monodll_toolbkg.obj \ @@ -2164,6 +2165,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_splitter.obj \ $(OBJS)\monodll_srchctlg.obj \ $(OBJS)\monodll_statbmpg.obj \ + $(OBJS)\monodll_stattextg.obj \ $(OBJS)\monodll_textdlgg.obj \ $(OBJS)\monodll_tipwin.obj \ $(OBJS)\monodll_toolbkg.obj \ @@ -2602,6 +2604,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_splitter.obj \ $(OBJS)\monolib_srchctlg.obj \ $(OBJS)\monolib_statbmpg.obj \ + $(OBJS)\monolib_stattextg.obj \ $(OBJS)\monolib_textdlgg.obj \ $(OBJS)\monolib_tipwin.obj \ $(OBJS)\monolib_toolbkg.obj \ @@ -2835,6 +2838,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_splitter.obj \ $(OBJS)\monolib_srchctlg.obj \ $(OBJS)\monolib_statbmpg.obj \ + $(OBJS)\monolib_stattextg.obj \ $(OBJS)\monolib_textdlgg.obj \ $(OBJS)\monolib_tipwin.obj \ $(OBJS)\monolib_toolbkg.obj \ @@ -3202,6 +3206,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\coredll_splitter.obj \ $(OBJS)\coredll_srchctlg.obj \ $(OBJS)\coredll_statbmpg.obj \ + $(OBJS)\coredll_stattextg.obj \ $(OBJS)\coredll_textdlgg.obj \ $(OBJS)\coredll_tipwin.obj \ $(OBJS)\coredll_toolbkg.obj \ @@ -3435,6 +3440,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\coredll_splitter.obj \ $(OBJS)\coredll_srchctlg.obj \ $(OBJS)\coredll_statbmpg.obj \ + $(OBJS)\coredll_stattextg.obj \ $(OBJS)\coredll_textdlgg.obj \ $(OBJS)\coredll_tipwin.obj \ $(OBJS)\coredll_toolbkg.obj \ @@ -3677,6 +3683,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\corelib_splitter.obj \ $(OBJS)\corelib_srchctlg.obj \ $(OBJS)\corelib_statbmpg.obj \ + $(OBJS)\corelib_stattextg.obj \ $(OBJS)\corelib_textdlgg.obj \ $(OBJS)\corelib_tipwin.obj \ $(OBJS)\corelib_toolbkg.obj \ @@ -3910,6 +3917,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\corelib_splitter.obj \ $(OBJS)\corelib_srchctlg.obj \ $(OBJS)\corelib_statbmpg.obj \ + $(OBJS)\corelib_stattextg.obj \ $(OBJS)\corelib_textdlgg.obj \ $(OBJS)\corelib_tipwin.obj \ $(OBJS)\corelib_toolbkg.obj \ @@ -7661,6 +7669,11 @@ $(OBJS)\monodll_statbmpg.obj: ..\..\src\generic\statbmpg.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\statbmpg.cpp !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\monodll_stattextg.obj: ..\..\src\generic\stattextg.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\stattextg.cpp +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\monodll_textdlgg.obj: ..\..\src\generic\textdlgg.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\textdlgg.cpp @@ -9844,6 +9857,11 @@ $(OBJS)\monolib_statbmpg.obj: ..\..\src\generic\statbmpg.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\statbmpg.cpp !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\monolib_stattextg.obj: ..\..\src\generic\stattextg.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\stattextg.cpp +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\monolib_textdlgg.obj: ..\..\src\generic\textdlgg.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\textdlgg.cpp @@ -12051,6 +12069,11 @@ $(OBJS)\coredll_statbmpg.obj: ..\..\src\generic\statbmpg.cpp $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\statbmpg.cpp !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\coredll_stattextg.obj: ..\..\src\generic\stattextg.cpp + $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\stattextg.cpp +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\coredll_textdlgg.obj: ..\..\src\generic\textdlgg.cpp $(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) ..\..\src\generic\textdlgg.cpp @@ -13387,6 +13410,11 @@ $(OBJS)\corelib_statbmpg.obj: ..\..\src\generic\statbmpg.cpp $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\statbmpg.cpp !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\corelib_stattextg.obj: ..\..\src\generic\stattextg.cpp + $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\stattextg.cpp +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\corelib_textdlgg.obj: ..\..\src\generic\textdlgg.cpp $(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) ..\..\src\generic\textdlgg.cpp diff --git a/build/msw/makefile.wat b/build/msw/makefile.wat index 84ed250e93..097c823155 100644 --- a/build/msw/makefile.wat +++ b/build/msw/makefile.wat @@ -442,6 +442,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_splitter.obj & $(OBJS)\monodll_srchctlg.obj & $(OBJS)\monodll_statbmpg.obj & + $(OBJS)\monodll_stattextg.obj & $(OBJS)\monodll_textdlgg.obj & $(OBJS)\monodll_tipwin.obj & $(OBJS)\monodll_toolbkg.obj & @@ -677,6 +678,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_splitter.obj & $(OBJS)\monodll_srchctlg.obj & $(OBJS)\monodll_statbmpg.obj & + $(OBJS)\monodll_stattextg.obj & $(OBJS)\monodll_textdlgg.obj & $(OBJS)\monodll_tipwin.obj & $(OBJS)\monodll_toolbkg.obj & @@ -1118,6 +1120,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_splitter.obj & $(OBJS)\monolib_srchctlg.obj & $(OBJS)\monolib_statbmpg.obj & + $(OBJS)\monolib_stattextg.obj & $(OBJS)\monolib_textdlgg.obj & $(OBJS)\monolib_tipwin.obj & $(OBJS)\monolib_toolbkg.obj & @@ -1353,6 +1356,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_splitter.obj & $(OBJS)\monolib_srchctlg.obj & $(OBJS)\monolib_statbmpg.obj & + $(OBJS)\monolib_stattextg.obj & $(OBJS)\monolib_textdlgg.obj & $(OBJS)\monolib_tipwin.obj & $(OBJS)\monolib_toolbkg.obj & @@ -1715,6 +1719,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\coredll_splitter.obj & $(OBJS)\coredll_srchctlg.obj & $(OBJS)\coredll_statbmpg.obj & + $(OBJS)\coredll_stattextg.obj & $(OBJS)\coredll_textdlgg.obj & $(OBJS)\coredll_tipwin.obj & $(OBJS)\coredll_toolbkg.obj & @@ -1950,6 +1955,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\coredll_splitter.obj & $(OBJS)\coredll_srchctlg.obj & $(OBJS)\coredll_statbmpg.obj & + $(OBJS)\coredll_stattextg.obj & $(OBJS)\coredll_textdlgg.obj & $(OBJS)\coredll_tipwin.obj & $(OBJS)\coredll_toolbkg.obj & @@ -2194,6 +2200,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\corelib_splitter.obj & $(OBJS)\corelib_srchctlg.obj & $(OBJS)\corelib_statbmpg.obj & + $(OBJS)\corelib_stattextg.obj & $(OBJS)\corelib_textdlgg.obj & $(OBJS)\corelib_tipwin.obj & $(OBJS)\corelib_toolbkg.obj & @@ -2429,6 +2436,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\corelib_splitter.obj & $(OBJS)\corelib_srchctlg.obj & $(OBJS)\corelib_statbmpg.obj & + $(OBJS)\corelib_stattextg.obj & $(OBJS)\corelib_textdlgg.obj & $(OBJS)\corelib_tipwin.obj & $(OBJS)\corelib_toolbkg.obj & @@ -7824,6 +7832,11 @@ $(OBJS)\monodll_statbmpg.obj : .AUTODEPEND ..\..\src\generic\statbmpg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< !endif +!ifeq USE_GUI 1 +$(OBJS)\monodll_stattextg.obj : .AUTODEPEND ..\..\src\generic\stattextg.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< +!endif + !ifeq USE_GUI 1 $(OBJS)\monodll_textdlgg.obj : .AUTODEPEND ..\..\src\generic\textdlgg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< @@ -10121,6 +10134,11 @@ $(OBJS)\monolib_statbmpg.obj : .AUTODEPEND ..\..\src\generic\statbmpg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< !endif +!ifeq USE_GUI 1 +$(OBJS)\monolib_stattextg.obj : .AUTODEPEND ..\..\src\generic\stattextg.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< +!endif + !ifeq USE_GUI 1 $(OBJS)\monolib_textdlgg.obj : .AUTODEPEND ..\..\src\generic\textdlgg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< @@ -12442,6 +12460,11 @@ $(OBJS)\coredll_statbmpg.obj : .AUTODEPEND ..\..\src\generic\statbmpg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $< !endif +!ifeq USE_GUI 1 +$(OBJS)\coredll_stattextg.obj : .AUTODEPEND ..\..\src\generic\stattextg.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $< +!endif + !ifeq USE_GUI 1 $(OBJS)\coredll_textdlgg.obj : .AUTODEPEND ..\..\src\generic\textdlgg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $< @@ -13890,6 +13913,11 @@ $(OBJS)\corelib_statbmpg.obj : .AUTODEPEND ..\..\src\generic\statbmpg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $< !endif +!ifeq USE_GUI 1 +$(OBJS)\corelib_stattextg.obj : .AUTODEPEND ..\..\src\generic\stattextg.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $< +!endif + !ifeq USE_GUI 1 $(OBJS)\corelib_textdlgg.obj : .AUTODEPEND ..\..\src\generic\textdlgg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $< diff --git a/build/msw/wx_core.dsp b/build/msw/wx_core.dsp index 1fe9214bf9..87c784ca4c 100644 --- a/build/msw/wx_core.dsp +++ b/build/msw/wx_core.dsp @@ -3012,6 +3012,10 @@ SOURCE=..\..\src\generic\statbmpg.cpp # End Source File # Begin Source File +SOURCE=..\..\src\generic\stattextg.cpp +# End Source File +# Begin Source File + SOURCE=..\..\src\generic\statusbr.cpp !IF "$(CFG)" == "core - Win32 DLL Universal Release" @@ -5367,6 +5371,10 @@ SOURCE=..\..\include\wx\generic\statbmpg.h # End Source File # Begin Source File +SOURCE=..\..\include\wx\generic\stattextg.h +# End Source File +# Begin Source File + SOURCE=..\..\include\wx\generic\statusbr.h # End Source File # Begin Source File diff --git a/build/msw/wx_vc7_core.vcproj b/build/msw/wx_vc7_core.vcproj index 8adfa82f06..80e50156ad 100644 --- a/build/msw/wx_vc7_core.vcproj +++ b/build/msw/wx_vc7_core.vcproj @@ -1988,6 +1988,9 @@ + + + + diff --git a/build/msw/wx_vc8_core.vcproj b/build/msw/wx_vc8_core.vcproj index b1ad4b673f..3cdb14c800 100644 --- a/build/msw/wx_vc8_core.vcproj +++ b/build/msw/wx_vc8_core.vcproj @@ -2688,6 +2688,10 @@ RelativePath="..\..\src\generic\statbmpg.cpp" > + + @@ -4400,6 +4404,10 @@ RelativePath="..\..\include\wx\generic\statbmpg.h" > + + diff --git a/build/msw/wx_vc9_core.vcproj b/build/msw/wx_vc9_core.vcproj index 4af2267c9c..df07cb6fbf 100644 --- a/build/msw/wx_vc9_core.vcproj +++ b/build/msw/wx_vc9_core.vcproj @@ -2684,6 +2684,10 @@ RelativePath="..\..\src\generic\statbmpg.cpp" > + + @@ -4396,6 +4400,10 @@ RelativePath="..\..\include\wx\generic\statbmpg.h" > + + diff --git a/include/wx/control.h b/include/wx/control.h index ecc897525c..a7c6496e72 100644 --- a/include/wx/control.h +++ b/include/wx/control.h @@ -73,6 +73,11 @@ public: // removes the mnemonics characters static wxString RemoveMnemonics(const wxString& str); + // return the accel index in the string or -1 if none and puts the modified + // string into second parameter if non NULL + static int FindAccelIndex(const wxString& label, + wxString *labelOnly = NULL); + // controls by default inherit the colours of their parents, if a // particular control class doesn't want to do it, it can override diff --git a/include/wx/generic/stattextg.h b/include/wx/generic/stattextg.h new file mode 100644 index 0000000000..69ef8b08f6 --- /dev/null +++ b/include/wx/generic/stattextg.h @@ -0,0 +1,62 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/generic/stattextg.h +// Purpose: wxGenericStaticText header +// Author: Marcin Wojdyr +// Created: 2008-06-26 +// Id: $Id:$ +// Copyright: Marcin Wojdyr +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_GENERIC_STATTEXTG_H_ +#define _WX_GENERIC_STATTEXTG_H_ + +#include "wx/stattext.h" + +class WXDLLIMPEXP_CORE wxGenericStaticText : public wxStaticTextBase +{ +public: + wxGenericStaticText() { } + + wxGenericStaticText(wxWindow *parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxStaticTextNameStr) + { + Create(parent, id, label, pos, size, style, name); + } + + bool Create(wxWindow *parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxStaticTextNameStr); + + + virtual wxSize DoGetBestClientSize() const; + virtual wxSize DoGetBestSize() const; + + virtual void SetLabel(const wxString& label); + virtual bool SetFont(const wxFont &font); + + virtual wxString DoGetLabel() const { return m_label; } + virtual void DoSetLabel(const wxString& label); + +protected: + void OnPaint(wxPaintEvent& event); + void DoSetSize(int x, int y, int width, int height, int sizeFlags); + +private: + wxString m_label; + int m_mnemonic; + + DECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericStaticText) +}; + +#endif // _WX_GENERIC_STATTEXTG_H_ + diff --git a/include/wx/univ/control.h b/include/wx/univ/control.h index 22cd4efca6..74913c6fbc 100644 --- a/include/wx/univ/control.h +++ b/include/wx/univ/control.h @@ -71,11 +71,6 @@ public: // wxUniversal-specific methods - // return the accel index in the string or -1 if none and puts the modified - // string into second parameter if non NULL - static int FindAccelIndex(const wxString& label, - wxString *labelOnly = NULL); - // return the index of the accel char in the label or -1 if none int GetAccelIndex() const { return m_indexAccel; } diff --git a/include/wx/univ/stattext.h b/include/wx/univ/stattext.h index 888ade81f6..8f3fc62edd 100644 --- a/include/wx/univ/stattext.h +++ b/include/wx/univ/stattext.h @@ -12,7 +12,9 @@ #ifndef _WX_UNIV_STATTEXT_H_ #define _WX_UNIV_STATTEXT_H_ -class WXDLLIMPEXP_CORE wxStaticText : public wxStaticTextBase +#include "wx/generic/stattextg.h" + +class WXDLLIMPEXP_CORE wxStaticText : public wxGenericStaticText { public: wxStaticText() { } @@ -54,9 +56,6 @@ public: virtual bool IsFocused() const { return false; } protected: - // calculate the optimal size for the label - virtual wxSize DoGetBestClientSize() const; - // draw the control virtual void DoDraw(wxControlRenderer *renderer); diff --git a/samples/widgets/static.cpp b/samples/widgets/static.cpp index 8e4a24e0f6..7987424ac1 100644 --- a/samples/widgets/static.cpp +++ b/samples/widgets/static.cpp @@ -40,6 +40,7 @@ #include "wx/sizer.h" #include "wx/statline.h" +#include "wx/generic/stattextg.h" #include "widgets.h" #include "icons/statbox.xpm" @@ -81,64 +82,6 @@ enum StaticEllipsize_End }; -// ---------------------------------------------------------------------------- -// MyStaticText and MyStaticBox -// ---------------------------------------------------------------------------- - -// these 2 classes simply show that the static controls can get the mouse -// clicks too -- this used to be broken under MSW but works now - -class MyStaticText : public wxStaticText -{ -public: - MyStaticText(wxWindow* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0) - : wxStaticText(parent, id, label, pos, size, style) - { - } - -protected: - void OnMouseEvent(wxMouseEvent& WXUNUSED(event)) - { - wxLogMessage(wxT("Clicked on static text")); - } - - DECLARE_EVENT_TABLE() -}; - -class MyStaticBox : public wxStaticBox -{ -public: - MyStaticBox(wxWindow* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0) - : wxStaticBox(parent, id, label, pos, size, style) - { - } - -protected: - void OnMouseEvent(wxMouseEvent& WXUNUSED(event)) - { - wxLogMessage(wxT("Clicked on static box")); - } - - DECLARE_EVENT_TABLE() -}; - -BEGIN_EVENT_TABLE(MyStaticText, wxStaticText) - EVT_LEFT_UP(MyStaticText::OnMouseEvent) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(MyStaticBox, wxStaticBox) - EVT_LEFT_UP(MyStaticBox::OnMouseEvent) -END_EVENT_TABLE() // ---------------------------------------------------------------------------- // StaticWidgetsPage @@ -164,6 +107,7 @@ protected: void OnButtonBoxText(wxCommandEvent& event); void OnButtonLabelText(wxCommandEvent& event); void OnButtonLabelWithMarkupText(wxCommandEvent& event); + void OnMouseEvent(wxMouseEvent& event); // reset all parameters void Reset(); @@ -176,19 +120,20 @@ protected: // the check/radio boxes for styles wxCheckBox *m_chkVert, + *m_chkGeneric, *m_chkAutoResize, *m_chkEllipsize, - *m_chkMarkup; + *m_chkMarkup, + *m_chkGreen; wxRadioBox *m_radioHAlign, *m_radioVAlign, *m_radioEllipsize; // the controls and the sizer containing them - wxStaticBox *m_staticBox; wxStaticBoxSizer *m_sizerStatBox; - wxStaticText *m_statText, - *m_statTextWithMarkup; + wxStaticTextBase *m_statText, + *m_statMarkup; #if wxUSE_STATLINE wxStaticLine *m_statLine; #endif // wxUSE_STATLINE @@ -233,6 +178,8 @@ StaticWidgetsPage::StaticWidgetsPage(WidgetsBookCtrl *book, // init everything m_chkVert = m_chkAutoResize = (wxCheckBox *)NULL; + m_chkGeneric = NULL; + m_chkGreen = NULL; m_radioHAlign = m_radioVAlign = (wxRadioBox *)NULL; @@ -240,9 +187,8 @@ StaticWidgetsPage::StaticWidgetsPage(WidgetsBookCtrl *book, #if wxUSE_STATLINE m_statLine = (wxStaticLine *)NULL; #endif // wxUSE_STATLINE - m_statText = m_statTextWithMarkup = (wxStaticText *)NULL; + m_statText = m_statMarkup = NULL; - m_staticBox = (wxStaticBox *)NULL; m_sizerStatBox = (wxStaticBoxSizer *)NULL; m_sizerStatic = (wxSizer *)NULL; @@ -254,13 +200,13 @@ void StaticWidgetsPage::CreateContent() wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); // left pane - wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style")); - - wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL); + wxSizer *sizerLeft = new wxStaticBoxSizer(wxVERTICAL, this, "&Set style"); - m_chkMarkup = CreateCheckBoxAndAddToSizer(sizerLeft, _T("Support &markup")); - m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical line")); - m_chkAutoResize = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Fit to text")); + m_chkGeneric = CreateCheckBoxAndAddToSizer(sizerLeft, + "&Generic wxStaticText"); + m_chkMarkup = CreateCheckBoxAndAddToSizer(sizerLeft, "Support &markup"); + m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, "&Vertical line"); + m_chkAutoResize = CreateCheckBoxAndAddToSizer(sizerLeft, "&Fit to text"); sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer static const wxString halign[] = @@ -279,10 +225,10 @@ void StaticWidgetsPage::CreateContent() m_radioHAlign = new wxRadioBox(this, wxID_ANY, _T("&Horz alignment"), wxDefaultPosition, wxDefaultSize, - WXSIZEOF(halign), halign); + WXSIZEOF(halign), halign, 3); m_radioVAlign = new wxRadioBox(this, wxID_ANY, _T("&Vert alignment"), wxDefaultPosition, wxDefaultSize, - WXSIZEOF(valign), valign); + WXSIZEOF(valign), valign, 3); sizerLeft->Add(m_radioHAlign, 0, wxGROW | wxALL, 5); sizerLeft->Add(m_radioVAlign, 0, wxGROW | wxALL, 5); @@ -301,7 +247,8 @@ void StaticWidgetsPage::CreateContent() m_radioEllipsize = new wxRadioBox(this, wxID_ANY, _T("&Ellipsize mode"), wxDefaultPosition, wxDefaultSize, - WXSIZEOF(ellipsizeMode), ellipsizeMode); + WXSIZEOF(ellipsizeMode), ellipsizeMode, + 3); sizerLeft->Add(m_radioEllipsize, 0, wxGROW | wxALL, 5); @@ -309,26 +256,41 @@ void StaticWidgetsPage::CreateContent() sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15); // middle pane - wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY, _T("&Change labels")); - wxSizer *sizerMiddle = new wxStaticBoxSizer(box2, wxVERTICAL); - - wxSizer *sizerRow; - - sizerRow = CreateSizerWithTextAndButton(StaticPage_BoxText, - _T("Change &box label"), - wxID_ANY, &m_textBox); - sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); - - sizerRow = CreateSizerWithTextAndButton(StaticPage_LabelText, - _T("Change &text label"), - wxID_ANY, &m_textLabel); - sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); - - sizerRow = CreateSizerWithTextAndButton(StaticPage_LabelTextWithMarkup, - _T("Change decorated text label"), - wxID_ANY, &m_textLabelWithMarkup); - sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5); - + wxSizer *sizerMiddle = new wxStaticBoxSizer(wxVERTICAL, this, + "&Change labels"); + + m_textBox = new wxTextCtrl(this, wxID_ANY, wxEmptyString); + wxButton *b1 = new wxButton(this, wxID_ANY, "Change &box label"); + b1->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(StaticWidgetsPage::OnButtonBoxText), + NULL, this); + sizerMiddle->Add(m_textBox, 0, wxEXPAND|wxALL, 5); + sizerMiddle->Add(b1, 0, wxLEFT|wxBOTTOM, 5); + + m_textLabel = new wxTextCtrl(this, wxID_ANY, wxEmptyString, + wxDefaultPosition, wxDefaultSize, + wxTE_MULTILINE|wxHSCROLL); + wxButton *b2 = new wxButton(this, wxID_ANY, "Change &text label"); + b2->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(StaticWidgetsPage::OnButtonLabelText), + NULL, this); + sizerMiddle->Add(m_textLabel, 0, wxEXPAND|wxALL, 5); + sizerMiddle->Add(b2, 0, wxLEFT|wxBOTTOM, 5); + + m_textLabelWithMarkup = new wxTextCtrl(this, wxID_ANY, wxEmptyString, + wxDefaultPosition, wxDefaultSize, + wxTE_MULTILINE|wxHSCROLL); + + wxButton *b3 = new wxButton(this, wxID_ANY, "Change decorated text label"); + b3->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(StaticWidgetsPage::OnButtonLabelWithMarkupText), + NULL, this); + sizerMiddle->Add(m_textLabelWithMarkup, 0, wxEXPAND|wxALL, 5); + sizerMiddle->Add(b3, 0, wxLEFT|wxBOTTOM, 5); + + m_chkGreen = CreateCheckBoxAndAddToSizer(sizerLeft, + "Decorated label on g&reen"); + sizerMiddle->Add(m_chkGreen, 0, wxALL, 5); // final initializations // NB: must be done _before_ calling CreateStatic() @@ -363,6 +325,7 @@ void StaticWidgetsPage::CreateContent() void StaticWidgetsPage::Reset() { + m_chkGeneric->SetValue(false); m_chkVert->SetValue(false); m_chkAutoResize->SetValue(true); m_chkEllipsize->SetValue(true); @@ -378,11 +341,10 @@ void StaticWidgetsPage::CreateStatic() if ( m_sizerStatBox ) { - delete m_staticBox; // delete m_sizerStatBox; -- deleted by Remove() m_sizerStatic->Remove(m_sizerStatBox); delete m_statText; - delete m_statTextWithMarkup; + delete m_statMarkup; #if wxUSE_STATLINE delete m_statLine; #endif // wxUSE_STATLINE @@ -469,20 +431,37 @@ void StaticWidgetsPage::CreateStatic() flagsText |= align; flagsBox |= align; - m_staticBox = new MyStaticBox(this, wxID_ANY, m_textBox->GetValue(), - wxDefaultPosition, wxDefaultSize, - flagsBox); - m_sizerStatBox = new wxStaticBoxSizer(m_staticBox, isVert ? wxHORIZONTAL - : wxVERTICAL); - - m_statText = new MyStaticText(this, wxID_ANY, m_textLabel->GetValue(), - wxDefaultPosition, wxDefaultSize, - flagsDummyText); - m_statTextWithMarkup = new wxStaticText(this, wxID_ANY, - m_textLabelWithMarkup->GetValue(), - wxDefaultPosition, wxDefaultSize, - flagsText); + wxStaticBox *staticBox = new wxStaticBox(this, wxID_ANY, + m_textBox->GetValue(), + wxDefaultPosition, wxDefaultSize, + flagsBox); + m_sizerStatBox = new wxStaticBoxSizer(staticBox, isVert ? wxHORIZONTAL + : wxVERTICAL); + if ( m_chkGeneric->GetValue() ) + { + m_statText = new wxGenericStaticText(this, wxID_ANY, + m_textLabel->GetValue(), + wxDefaultPosition, wxDefaultSize, + flagsDummyText); + m_statMarkup = new wxGenericStaticText(this, wxID_ANY, + m_textLabelWithMarkup->GetValue(), + wxDefaultPosition, wxDefaultSize, + flagsText); + } + else // use native versions + { + m_statText = new wxStaticText(this, wxID_ANY, + m_textLabel->GetValue(), + wxDefaultPosition, wxDefaultSize, + flagsDummyText); + m_statMarkup = new wxStaticText(this, wxID_ANY, + m_textLabelWithMarkup->GetValue(), + wxDefaultPosition, wxDefaultSize, + flagsText); + } + if ( m_chkGreen->GetValue() ) + m_statMarkup->SetBackgroundColour(*wxGREEN); #if wxUSE_STATLINE m_statLine = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, @@ -493,11 +472,18 @@ void StaticWidgetsPage::CreateStatic() #if wxUSE_STATLINE m_sizerStatBox->Add(m_statLine, 0, wxGROW | wxALL, 5); #endif // wxUSE_STATLINE - m_sizerStatBox->Add(m_statTextWithMarkup, 1, wxGROW | wxALL, 5); + m_sizerStatBox->Add(m_statMarkup, 1, wxGROW | wxALL, 5); m_sizerStatic->Add(m_sizerStatBox, 1, wxGROW); m_sizerStatic->Layout(); + + m_statText->Connect(wxEVT_LEFT_UP, + wxMouseEventHandler(StaticWidgetsPage::OnMouseEvent), + NULL, this); + staticBox->Connect(wxEVT_LEFT_UP, + wxMouseEventHandler(StaticWidgetsPage::OnMouseEvent), + NULL, this); } // ---------------------------------------------------------------------------- @@ -526,29 +512,37 @@ void StaticWidgetsPage::OnButtonBoxText(wxCommandEvent& WXUNUSED(event)) m_sizerStatBox->GetStaticBox()->SetLabel(m_textBox->GetValue()); } -void StaticWidgetsPage::OnButtonLabelWithMarkupText(wxCommandEvent& WXUNUSED(event)) +void StaticWidgetsPage::OnButtonLabelText(wxCommandEvent& WXUNUSED(event)) { - m_statTextWithMarkup->SetLabel(m_textLabelWithMarkup->GetValue()); + m_statText->SetLabel(m_textLabel->GetValue()); // test GetLabel() and GetLabelText(); the first should return the // label as it is written in the relative text control; the second should // return the label as it's shown in the wxStaticText wxLogMessage(wxT("The original label should be '%s'"), - m_statTextWithMarkup->GetLabel().c_str()); + m_statText->GetLabel()); wxLogMessage(wxT("The label text is '%s'"), - m_statTextWithMarkup->GetLabelText().c_str()); + m_statText->GetLabelText()); } -void StaticWidgetsPage::OnButtonLabelText(wxCommandEvent& WXUNUSED(event)) +void StaticWidgetsPage::OnButtonLabelWithMarkupText(wxCommandEvent& WXUNUSED(event)) { - m_statText->SetLabel(m_textLabel->GetValue()); + m_statMarkup->SetLabel(m_textLabelWithMarkup->GetValue()); // test GetLabel() and GetLabelText(); the first should return the // label as it is written in the relative text control; the second should // return the label as it's shown in the wxStaticText wxLogMessage(wxT("The original label should be '%s'"), - m_statText->GetLabel().c_str()); + m_statMarkup->GetLabel()); wxLogMessage(wxT("The label text is '%s'"), - m_statText->GetLabelText().c_str()); + m_statMarkup->GetLabelText()); +} + +void StaticWidgetsPage::OnMouseEvent(wxMouseEvent& event) +{ + if ( event.GetEventObject() == m_statText ) + wxLogMessage("Clicked on static text"); + else + wxLogMessage("Clicked on static box"); } diff --git a/src/common/ctrlcmn.cpp b/src/common/ctrlcmn.cpp index 83f789b824..1ded2306b5 100644 --- a/src/common/ctrlcmn.cpp +++ b/src/common/ctrlcmn.cpp @@ -158,6 +158,51 @@ wxString wxControlBase::RemoveMnemonics(const wxString& str) return wxStripMenuCodes(str, wxStrip_Mnemonics); } +/* static */ +int wxControlBase::FindAccelIndex(const wxString& label, wxString *labelOnly) +{ + // the character following MNEMONIC_PREFIX is the accelerator for this + // control unless it is MNEMONIC_PREFIX too - this allows to insert + // literal MNEMONIC_PREFIX chars into the label + static const wxChar MNEMONIC_PREFIX = _T('&'); + + if ( labelOnly ) + { + labelOnly->Empty(); + labelOnly->Alloc(label.length()); + } + + int indexAccel = -1; + for ( wxString::const_iterator pc = label.begin(); pc != label.end(); ++pc ) + { + if ( *pc == MNEMONIC_PREFIX ) + { + ++pc; // skip it + if ( pc == label.end() ) + break; + else if ( *pc != MNEMONIC_PREFIX ) + { + if ( indexAccel == -1 ) + { + // remember it (-1 is for MNEMONIC_PREFIX itself + indexAccel = pc - label.begin() - 1; + } + else + { + wxFAIL_MSG(_T("duplicate accel char in control label")); + } + } + } + + if ( labelOnly ) + { + *labelOnly += *pc; + } + } + + return indexAccel; +} + wxBorder wxControlBase::GetDefaultBorder() const { return wxBORDER_THEME; diff --git a/src/generic/stattextg.cpp b/src/generic/stattextg.cpp new file mode 100644 index 0000000000..26a25cd02d --- /dev/null +++ b/src/generic/stattextg.cpp @@ -0,0 +1,124 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: src/generic/stattextg.cpp +// Purpose: wxGenericStaticText +// Author: Marcin Wojdyr +// Created: 2008-06-26 +// RCS-ID: $Id:$ +// Copyright: Marcin Wojdyr +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#if wxUSE_STATTEXT + +#ifndef WX_PRECOMP + #include "wx/dc.h" + #include "wx/validate.h" +#endif + +#include "wx/generic/stattextg.h" + + +IMPLEMENT_DYNAMIC_CLASS(wxGenericStaticText, wxStaticTextBase) + + +bool wxGenericStaticText::Create(wxWindow *parent, + wxWindowID id, + const wxString &label, + const wxPoint &pos, + const wxSize &size, + long style, + const wxString &name) +{ + if ( !wxControl::Create(parent, id, pos, size, style, + wxDefaultValidator, name) ) + return false; + + SetLabel(label); + SetInitialSize(size); + Connect(wxEVT_PAINT, wxPaintEventHandler(wxGenericStaticText::OnPaint)); + return true; +} + +void wxGenericStaticText::OnPaint(wxPaintEvent& WXUNUSED(event)) +{ + if ( m_label.empty() ) + return; + wxPaintDC dc(this); + PrepareDC(dc); + + wxRect rect = GetClientRect(); + if ( IsEnabled() ) + { + dc.SetTextForeground( + wxSystemSettings::GetColour(wxSYS_COLOUR_BTNTEXT)); + } + else // paint disabled text + { + // draw shadow of the text + dc.SetTextForeground( + wxSystemSettings::GetColour(wxSYS_COLOUR_BTNHIGHLIGHT)); + wxRect rectShadow = rect; + rectShadow.Offset(1, 1); + dc.DrawLabel(m_label, rectShadow, GetAlignment(), m_mnemonic); + dc.SetTextForeground( + wxSystemSettings::GetColour(wxSYS_COLOUR_BTNSHADOW)); + } + dc.DrawLabel(m_label, wxNullBitmap, rect, GetAlignment(), m_mnemonic); +} + + +wxSize wxGenericStaticText::DoGetBestClientSize() const +{ + wxClientDC dc(wxConstCast(this, wxGenericStaticText)); + wxCoord width, height; + dc.GetMultiLineTextExtent(GetLabel(), &width, &height); + return wxSize(width, height); +} + +wxSize wxGenericStaticText::DoGetBestSize() const +{ + wxSize ret = DoGetBestClientSize(); + CacheBestSize(ret); + return ret; +} + + +void wxGenericStaticText::SetLabel(const wxString& label) +{ + wxControl::SetLabel(label); + DoSetLabel(GetEllipsizedLabelWithoutMarkup()); + if ( !HasFlag(wxST_NO_AUTORESIZE) && !IsEllipsized() ) + InvalidateBestSize(); + Refresh(); +} + +void wxGenericStaticText::DoSetLabel(const wxString& label) +{ + m_mnemonic = FindAccelIndex(label, &m_label); +} + +bool wxGenericStaticText::SetFont(const wxFont &font) +{ + if ( !wxControl::SetFont(font) ) + return false; + if ( !HasFlag(wxST_NO_AUTORESIZE) ) + InvalidateBestSize(); + Refresh(); + return true; +} + +void wxGenericStaticText::DoSetSize(int x, int y, int width, int height, + int sizeFlags) +{ + wxStaticTextBase::DoSetSize(x, y, width, height, sizeFlags); + UpdateLabel(); +} + + +#endif // wxUSE_STATTEXT diff --git a/src/univ/control.cpp b/src/univ/control.cpp index 8e2a06e9de..fa8ae7b384 100644 --- a/src/univ/control.cpp +++ b/src/univ/control.cpp @@ -78,51 +78,6 @@ bool wxControl::Create(wxWindow *parent, // mnemonics handling // ---------------------------------------------------------------------------- -/* static */ -int wxControl::FindAccelIndex(const wxString& label, wxString *labelOnly) -{ - // the character following MNEMONIC_PREFIX is the accelerator for this - // control unless it is MNEMONIC_PREFIX too - this allows to insert - // literal MNEMONIC_PREFIX chars into the label - static const wxChar MNEMONIC_PREFIX = _T('&'); - - if ( labelOnly ) - { - labelOnly->Empty(); - labelOnly->Alloc(label.length()); - } - - int indexAccel = -1; - for ( wxString::const_iterator pc = label.begin(); pc != label.end(); ++pc ) - { - if ( *pc == MNEMONIC_PREFIX ) - { - ++pc; // skip it - if ( pc == label.end() ) - break; - else if ( *pc != MNEMONIC_PREFIX ) - { - if ( indexAccel == -1 ) - { - // remember it (-1 is for MNEMONIC_PREFIX itself - indexAccel = pc - label.begin() - 1; - } - else - { - wxFAIL_MSG(_T("duplicate accel char in control label")); - } - } - } - - if ( labelOnly ) - { - *labelOnly += *pc; - } - } - - return indexAccel; -} - void wxControl::SetLabel(const wxString& label) { // save original label diff --git a/src/univ/stattext.cpp b/src/univ/stattext.cpp index f854398a17..3fccad2764 100644 --- a/src/univ/stattext.cpp +++ b/src/univ/stattext.cpp @@ -39,7 +39,7 @@ // implementation // ============================================================================ -IMPLEMENT_ABSTRACT_CLASS(wxStaticText, wxControl) +IMPLEMENT_ABSTRACT_CLASS(wxStaticText, wxGenericStaticText) // ---------------------------------------------------------------------------- // creation @@ -62,21 +62,6 @@ bool wxStaticText::Create(wxWindow *parent, return true; } -// ---------------------------------------------------------------------------- -// size management -// ---------------------------------------------------------------------------- - -wxSize wxStaticText::DoGetBestClientSize() const -{ - wxStaticText *self = wxConstCast(this, wxStaticText); - wxClientDC dc(self); - dc.SetFont(GetFont()); - wxCoord width, height; - dc.GetMultiLineTextExtent(GetLabel(), &width, &height); - - return wxSize(width, height); -} - // ---------------------------------------------------------------------------- // drawing // ---------------------------------------------------------------------------- -- 2.47.2