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(wxVERTICAL, this, "&Set style");
- wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
-
- 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 *sizerMiddle = new wxStaticBoxSizer(wxVERTICAL, this,
+ "&Change labels");
- wxSizer *sizerRow;
+ 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);
- sizerRow = CreateSizerWithTextAndButton(StaticPage_BoxText,
- _T("Change &box label"),
- wxID_ANY, &m_textBox);
- sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 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);
- sizerRow = CreateSizerWithTextAndButton(StaticPage_LabelText,
- _T("Change &text label"),
- wxID_ANY, &m_textLabel);
- sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5);
+ m_textLabelWithMarkup = new wxTextCtrl(this, wxID_ANY, wxEmptyString,
+ wxDefaultPosition, wxDefaultSize,
+ wxTE_MULTILINE|wxHSCROLL);
- sizerRow = CreateSizerWithTextAndButton(StaticPage_LabelTextWithMarkup,
- _T("Change decorated text label"),
- wxID_ANY, &m_textLabelWithMarkup);
- sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5);
+ 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,19 +512,6 @@ void StaticWidgetsPage::OnButtonBoxText(wxCommandEvent& WXUNUSED(event))
m_sizerStatBox->GetStaticBox()->SetLabel(m_textBox->GetValue());
}
-void StaticWidgetsPage::OnButtonLabelWithMarkupText(wxCommandEvent& WXUNUSED(event))
-{
- m_statTextWithMarkup->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_statTextWithMarkup->GetLabel().c_str());
- wxLogMessage(wxT("The label text is '%s'"),
- m_statTextWithMarkup->GetLabelText().c_str());
-}
-
void StaticWidgetsPage::OnButtonLabelText(wxCommandEvent& WXUNUSED(event))
{
m_statText->SetLabel(m_textLabel->GetValue());
@@ -547,8 +520,29 @@ void StaticWidgetsPage::OnButtonLabelText(wxCommandEvent& WXUNUSED(event))
// 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_statText->GetLabel());
wxLogMessage(wxT("The label text is '%s'"),
- m_statText->GetLabelText().c_str());
+ m_statText->GetLabelText());
+}
+
+void StaticWidgetsPage::OnButtonLabelWithMarkupText(wxCommandEvent& WXUNUSED(event))
+{
+ 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_statMarkup->GetLabel());
+ wxLogMessage(wxT("The label text is '%s'"),
+ 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
// ----------------------------------------------------------------------------