added support for ellipsization and markup in wxStaticText (modified patch 1629946)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45199 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
20
Makefile.in
20
Makefile.in
@@ -3549,6 +3549,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS = \
|
|||||||
monodll_sizer.o \
|
monodll_sizer.o \
|
||||||
monodll_srchcmn.o \
|
monodll_srchcmn.o \
|
||||||
monodll_statbar.o \
|
monodll_statbar.o \
|
||||||
|
monodll_stattextcmn.o \
|
||||||
monodll_stockitem.o \
|
monodll_stockitem.o \
|
||||||
monodll_tbarbase.o \
|
monodll_tbarbase.o \
|
||||||
monodll_textcmn.o \
|
monodll_textcmn.o \
|
||||||
@@ -3725,6 +3726,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \
|
|||||||
monodll_sizer.o \
|
monodll_sizer.o \
|
||||||
monodll_srchcmn.o \
|
monodll_srchcmn.o \
|
||||||
monodll_statbar.o \
|
monodll_statbar.o \
|
||||||
|
monodll_stattextcmn.o \
|
||||||
monodll_stockitem.o \
|
monodll_stockitem.o \
|
||||||
monodll_tbarbase.o \
|
monodll_tbarbase.o \
|
||||||
monodll_textcmn.o \
|
monodll_textcmn.o \
|
||||||
@@ -5342,6 +5344,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_1 = \
|
|||||||
monolib_sizer.o \
|
monolib_sizer.o \
|
||||||
monolib_srchcmn.o \
|
monolib_srchcmn.o \
|
||||||
monolib_statbar.o \
|
monolib_statbar.o \
|
||||||
|
monolib_stattextcmn.o \
|
||||||
monolib_stockitem.o \
|
monolib_stockitem.o \
|
||||||
monolib_tbarbase.o \
|
monolib_tbarbase.o \
|
||||||
monolib_textcmn.o \
|
monolib_textcmn.o \
|
||||||
@@ -5518,6 +5521,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \
|
|||||||
monolib_sizer.o \
|
monolib_sizer.o \
|
||||||
monolib_srchcmn.o \
|
monolib_srchcmn.o \
|
||||||
monolib_statbar.o \
|
monolib_statbar.o \
|
||||||
|
monolib_stattextcmn.o \
|
||||||
monolib_stockitem.o \
|
monolib_stockitem.o \
|
||||||
monolib_tbarbase.o \
|
monolib_tbarbase.o \
|
||||||
monolib_textcmn.o \
|
monolib_textcmn.o \
|
||||||
@@ -7369,6 +7373,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
|
|||||||
coredll_sizer.o \
|
coredll_sizer.o \
|
||||||
coredll_srchcmn.o \
|
coredll_srchcmn.o \
|
||||||
coredll_statbar.o \
|
coredll_statbar.o \
|
||||||
|
coredll_stattextcmn.o \
|
||||||
coredll_stockitem.o \
|
coredll_stockitem.o \
|
||||||
coredll_tbarbase.o \
|
coredll_tbarbase.o \
|
||||||
coredll_textcmn.o \
|
coredll_textcmn.o \
|
||||||
@@ -7545,6 +7550,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \
|
|||||||
coredll_sizer.o \
|
coredll_sizer.o \
|
||||||
coredll_srchcmn.o \
|
coredll_srchcmn.o \
|
||||||
coredll_statbar.o \
|
coredll_statbar.o \
|
||||||
|
coredll_stattextcmn.o \
|
||||||
coredll_stockitem.o \
|
coredll_stockitem.o \
|
||||||
coredll_tbarbase.o \
|
coredll_tbarbase.o \
|
||||||
coredll_textcmn.o \
|
coredll_textcmn.o \
|
||||||
@@ -8834,6 +8840,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
|
|||||||
corelib_sizer.o \
|
corelib_sizer.o \
|
||||||
corelib_srchcmn.o \
|
corelib_srchcmn.o \
|
||||||
corelib_statbar.o \
|
corelib_statbar.o \
|
||||||
|
corelib_stattextcmn.o \
|
||||||
corelib_stockitem.o \
|
corelib_stockitem.o \
|
||||||
corelib_tbarbase.o \
|
corelib_tbarbase.o \
|
||||||
corelib_textcmn.o \
|
corelib_textcmn.o \
|
||||||
@@ -9010,6 +9017,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \
|
|||||||
corelib_sizer.o \
|
corelib_sizer.o \
|
||||||
corelib_srchcmn.o \
|
corelib_srchcmn.o \
|
||||||
corelib_statbar.o \
|
corelib_statbar.o \
|
||||||
|
corelib_stattextcmn.o \
|
||||||
corelib_stockitem.o \
|
corelib_stockitem.o \
|
||||||
corelib_tbarbase.o \
|
corelib_tbarbase.o \
|
||||||
corelib_textcmn.o \
|
corelib_textcmn.o \
|
||||||
@@ -16465,6 +16473,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
|
|||||||
@COND_USE_GUI_1@monodll_statbar.o: $(srcdir)/src/common/statbar.cpp $(MONODLL_ODEP)
|
@COND_USE_GUI_1@monodll_statbar.o: $(srcdir)/src/common/statbar.cpp $(MONODLL_ODEP)
|
||||||
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/statbar.cpp
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/statbar.cpp
|
||||||
|
|
||||||
|
@COND_USE_GUI_1@monodll_stattextcmn.o: $(srcdir)/src/common/stattextcmn.cpp $(MONODLL_ODEP)
|
||||||
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/stattextcmn.cpp
|
||||||
|
|
||||||
@COND_USE_GUI_1@monodll_stockitem.o: $(srcdir)/src/common/stockitem.cpp $(MONODLL_ODEP)
|
@COND_USE_GUI_1@monodll_stockitem.o: $(srcdir)/src/common/stockitem.cpp $(MONODLL_ODEP)
|
||||||
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/stockitem.cpp
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/stockitem.cpp
|
||||||
|
|
||||||
@@ -20620,6 +20631,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
|
|||||||
@COND_USE_GUI_1@monolib_statbar.o: $(srcdir)/src/common/statbar.cpp $(MONOLIB_ODEP)
|
@COND_USE_GUI_1@monolib_statbar.o: $(srcdir)/src/common/statbar.cpp $(MONOLIB_ODEP)
|
||||||
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/statbar.cpp
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/statbar.cpp
|
||||||
|
|
||||||
|
@COND_USE_GUI_1@monolib_stattextcmn.o: $(srcdir)/src/common/stattextcmn.cpp $(MONOLIB_ODEP)
|
||||||
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/stattextcmn.cpp
|
||||||
|
|
||||||
@COND_USE_GUI_1@monolib_stockitem.o: $(srcdir)/src/common/stockitem.cpp $(MONOLIB_ODEP)
|
@COND_USE_GUI_1@monolib_stockitem.o: $(srcdir)/src/common/stockitem.cpp $(MONOLIB_ODEP)
|
||||||
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/stockitem.cpp
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/stockitem.cpp
|
||||||
|
|
||||||
@@ -25135,6 +25149,9 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
|
|||||||
@COND_USE_GUI_1@coredll_statbar.o: $(srcdir)/src/common/statbar.cpp $(COREDLL_ODEP)
|
@COND_USE_GUI_1@coredll_statbar.o: $(srcdir)/src/common/statbar.cpp $(COREDLL_ODEP)
|
||||||
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/statbar.cpp
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/statbar.cpp
|
||||||
|
|
||||||
|
@COND_USE_GUI_1@coredll_stattextcmn.o: $(srcdir)/src/common/stattextcmn.cpp $(COREDLL_ODEP)
|
||||||
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/stattextcmn.cpp
|
||||||
|
|
||||||
@COND_USE_GUI_1@coredll_stockitem.o: $(srcdir)/src/common/stockitem.cpp $(COREDLL_ODEP)
|
@COND_USE_GUI_1@coredll_stockitem.o: $(srcdir)/src/common/stockitem.cpp $(COREDLL_ODEP)
|
||||||
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/stockitem.cpp
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/stockitem.cpp
|
||||||
|
|
||||||
@@ -28105,6 +28122,9 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
|
|||||||
@COND_USE_GUI_1@corelib_statbar.o: $(srcdir)/src/common/statbar.cpp $(CORELIB_ODEP)
|
@COND_USE_GUI_1@corelib_statbar.o: $(srcdir)/src/common/statbar.cpp $(CORELIB_ODEP)
|
||||||
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/statbar.cpp
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/statbar.cpp
|
||||||
|
|
||||||
|
@COND_USE_GUI_1@corelib_stattextcmn.o: $(srcdir)/src/common/stattextcmn.cpp $(CORELIB_ODEP)
|
||||||
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/stattextcmn.cpp
|
||||||
|
|
||||||
@COND_USE_GUI_1@corelib_stockitem.o: $(srcdir)/src/common/stockitem.cpp $(CORELIB_ODEP)
|
@COND_USE_GUI_1@corelib_stockitem.o: $(srcdir)/src/common/stockitem.cpp $(CORELIB_ODEP)
|
||||||
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/stockitem.cpp
|
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/stockitem.cpp
|
||||||
|
|
||||||
|
@@ -651,6 +651,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
src/common/sizer.cpp
|
src/common/sizer.cpp
|
||||||
src/common/srchcmn.cpp
|
src/common/srchcmn.cpp
|
||||||
src/common/statbar.cpp
|
src/common/statbar.cpp
|
||||||
|
src/common/stattextcmn.cpp
|
||||||
src/common/stockitem.cpp
|
src/common/stockitem.cpp
|
||||||
src/common/tbarbase.cpp
|
src/common/tbarbase.cpp
|
||||||
src/common/textcmn.cpp
|
src/common/textcmn.cpp
|
||||||
|
@@ -1515,6 +1515,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_sizer.obj \
|
$(OBJS)\monodll_sizer.obj \
|
||||||
$(OBJS)\monodll_srchcmn.obj \
|
$(OBJS)\monodll_srchcmn.obj \
|
||||||
$(OBJS)\monodll_statbar.obj \
|
$(OBJS)\monodll_statbar.obj \
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj \
|
||||||
$(OBJS)\monodll_stockitem.obj \
|
$(OBJS)\monodll_stockitem.obj \
|
||||||
$(OBJS)\monodll_tbarbase.obj \
|
$(OBJS)\monodll_tbarbase.obj \
|
||||||
$(OBJS)\monodll_textcmn.obj \
|
$(OBJS)\monodll_textcmn.obj \
|
||||||
@@ -1742,6 +1743,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_sizer.obj \
|
$(OBJS)\monodll_sizer.obj \
|
||||||
$(OBJS)\monodll_srchcmn.obj \
|
$(OBJS)\monodll_srchcmn.obj \
|
||||||
$(OBJS)\monodll_statbar.obj \
|
$(OBJS)\monodll_statbar.obj \
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj \
|
||||||
$(OBJS)\monodll_stockitem.obj \
|
$(OBJS)\monodll_stockitem.obj \
|
||||||
$(OBJS)\monodll_tbarbase.obj \
|
$(OBJS)\monodll_tbarbase.obj \
|
||||||
$(OBJS)\monodll_textcmn.obj \
|
$(OBJS)\monodll_textcmn.obj \
|
||||||
@@ -2137,6 +2139,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_sizer.obj \
|
$(OBJS)\monolib_sizer.obj \
|
||||||
$(OBJS)\monolib_srchcmn.obj \
|
$(OBJS)\monolib_srchcmn.obj \
|
||||||
$(OBJS)\monolib_statbar.obj \
|
$(OBJS)\monolib_statbar.obj \
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj \
|
||||||
$(OBJS)\monolib_stockitem.obj \
|
$(OBJS)\monolib_stockitem.obj \
|
||||||
$(OBJS)\monolib_tbarbase.obj \
|
$(OBJS)\monolib_tbarbase.obj \
|
||||||
$(OBJS)\monolib_textcmn.obj \
|
$(OBJS)\monolib_textcmn.obj \
|
||||||
@@ -2364,6 +2367,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_sizer.obj \
|
$(OBJS)\monolib_sizer.obj \
|
||||||
$(OBJS)\monolib_srchcmn.obj \
|
$(OBJS)\monolib_srchcmn.obj \
|
||||||
$(OBJS)\monolib_statbar.obj \
|
$(OBJS)\monolib_statbar.obj \
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj \
|
||||||
$(OBJS)\monolib_stockitem.obj \
|
$(OBJS)\monolib_stockitem.obj \
|
||||||
$(OBJS)\monolib_tbarbase.obj \
|
$(OBJS)\monolib_tbarbase.obj \
|
||||||
$(OBJS)\monolib_textcmn.obj \
|
$(OBJS)\monolib_textcmn.obj \
|
||||||
@@ -2679,6 +2683,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\coredll_sizer.obj \
|
$(OBJS)\coredll_sizer.obj \
|
||||||
$(OBJS)\coredll_srchcmn.obj \
|
$(OBJS)\coredll_srchcmn.obj \
|
||||||
$(OBJS)\coredll_statbar.obj \
|
$(OBJS)\coredll_statbar.obj \
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj \
|
||||||
$(OBJS)\coredll_stockitem.obj \
|
$(OBJS)\coredll_stockitem.obj \
|
||||||
$(OBJS)\coredll_tbarbase.obj \
|
$(OBJS)\coredll_tbarbase.obj \
|
||||||
$(OBJS)\coredll_textcmn.obj \
|
$(OBJS)\coredll_textcmn.obj \
|
||||||
@@ -2906,6 +2911,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\coredll_sizer.obj \
|
$(OBJS)\coredll_sizer.obj \
|
||||||
$(OBJS)\coredll_srchcmn.obj \
|
$(OBJS)\coredll_srchcmn.obj \
|
||||||
$(OBJS)\coredll_statbar.obj \
|
$(OBJS)\coredll_statbar.obj \
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj \
|
||||||
$(OBJS)\coredll_stockitem.obj \
|
$(OBJS)\coredll_stockitem.obj \
|
||||||
$(OBJS)\coredll_tbarbase.obj \
|
$(OBJS)\coredll_tbarbase.obj \
|
||||||
$(OBJS)\coredll_textcmn.obj \
|
$(OBJS)\coredll_textcmn.obj \
|
||||||
@@ -3134,6 +3140,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\corelib_sizer.obj \
|
$(OBJS)\corelib_sizer.obj \
|
||||||
$(OBJS)\corelib_srchcmn.obj \
|
$(OBJS)\corelib_srchcmn.obj \
|
||||||
$(OBJS)\corelib_statbar.obj \
|
$(OBJS)\corelib_statbar.obj \
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj \
|
||||||
$(OBJS)\corelib_stockitem.obj \
|
$(OBJS)\corelib_stockitem.obj \
|
||||||
$(OBJS)\corelib_tbarbase.obj \
|
$(OBJS)\corelib_tbarbase.obj \
|
||||||
$(OBJS)\corelib_textcmn.obj \
|
$(OBJS)\corelib_textcmn.obj \
|
||||||
@@ -3361,6 +3368,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\corelib_sizer.obj \
|
$(OBJS)\corelib_sizer.obj \
|
||||||
$(OBJS)\corelib_srchcmn.obj \
|
$(OBJS)\corelib_srchcmn.obj \
|
||||||
$(OBJS)\corelib_statbar.obj \
|
$(OBJS)\corelib_statbar.obj \
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj \
|
||||||
$(OBJS)\corelib_stockitem.obj \
|
$(OBJS)\corelib_stockitem.obj \
|
||||||
$(OBJS)\corelib_tbarbase.obj \
|
$(OBJS)\corelib_tbarbase.obj \
|
||||||
$(OBJS)\corelib_textcmn.obj \
|
$(OBJS)\corelib_textcmn.obj \
|
||||||
@@ -6384,6 +6392,11 @@ $(OBJS)\monodll_statbar.obj: ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj: ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\monodll_stockitem.obj: ..\..\src\common\stockitem.cpp
|
$(OBJS)\monodll_stockitem.obj: ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
||||||
@@ -8411,6 +8424,11 @@ $(OBJS)\monolib_statbar.obj: ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj: ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\monolib_stockitem.obj: ..\..\src\common\stockitem.cpp
|
$(OBJS)\monolib_stockitem.obj: ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
@@ -10477,6 +10495,11 @@ $(OBJS)\coredll_statbar.obj: ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj: ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\coredll_stockitem.obj: ..\..\src\common\stockitem.cpp
|
$(OBJS)\coredll_stockitem.obj: ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
|
||||||
@@ -11762,6 +11785,11 @@ $(OBJS)\corelib_statbar.obj: ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj: ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\corelib_stockitem.obj: ..\..\src\common\stockitem.cpp
|
$(OBJS)\corelib_stockitem.obj: ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
|
||||||
|
@@ -1525,6 +1525,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_sizer.o \
|
$(OBJS)\monodll_sizer.o \
|
||||||
$(OBJS)\monodll_srchcmn.o \
|
$(OBJS)\monodll_srchcmn.o \
|
||||||
$(OBJS)\monodll_statbar.o \
|
$(OBJS)\monodll_statbar.o \
|
||||||
|
$(OBJS)\monodll_stattextcmn.o \
|
||||||
$(OBJS)\monodll_stockitem.o \
|
$(OBJS)\monodll_stockitem.o \
|
||||||
$(OBJS)\monodll_tbarbase.o \
|
$(OBJS)\monodll_tbarbase.o \
|
||||||
$(OBJS)\monodll_textcmn.o \
|
$(OBJS)\monodll_textcmn.o \
|
||||||
@@ -1754,6 +1755,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_sizer.o \
|
$(OBJS)\monodll_sizer.o \
|
||||||
$(OBJS)\monodll_srchcmn.o \
|
$(OBJS)\monodll_srchcmn.o \
|
||||||
$(OBJS)\monodll_statbar.o \
|
$(OBJS)\monodll_statbar.o \
|
||||||
|
$(OBJS)\monodll_stattextcmn.o \
|
||||||
$(OBJS)\monodll_stockitem.o \
|
$(OBJS)\monodll_stockitem.o \
|
||||||
$(OBJS)\monodll_tbarbase.o \
|
$(OBJS)\monodll_tbarbase.o \
|
||||||
$(OBJS)\monodll_textcmn.o \
|
$(OBJS)\monodll_textcmn.o \
|
||||||
@@ -2153,6 +2155,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_sizer.o \
|
$(OBJS)\monolib_sizer.o \
|
||||||
$(OBJS)\monolib_srchcmn.o \
|
$(OBJS)\monolib_srchcmn.o \
|
||||||
$(OBJS)\monolib_statbar.o \
|
$(OBJS)\monolib_statbar.o \
|
||||||
|
$(OBJS)\monolib_stattextcmn.o \
|
||||||
$(OBJS)\monolib_stockitem.o \
|
$(OBJS)\monolib_stockitem.o \
|
||||||
$(OBJS)\monolib_tbarbase.o \
|
$(OBJS)\monolib_tbarbase.o \
|
||||||
$(OBJS)\monolib_textcmn.o \
|
$(OBJS)\monolib_textcmn.o \
|
||||||
@@ -2382,6 +2385,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_sizer.o \
|
$(OBJS)\monolib_sizer.o \
|
||||||
$(OBJS)\monolib_srchcmn.o \
|
$(OBJS)\monolib_srchcmn.o \
|
||||||
$(OBJS)\monolib_statbar.o \
|
$(OBJS)\monolib_statbar.o \
|
||||||
|
$(OBJS)\monolib_stattextcmn.o \
|
||||||
$(OBJS)\monolib_stockitem.o \
|
$(OBJS)\monolib_stockitem.o \
|
||||||
$(OBJS)\monolib_tbarbase.o \
|
$(OBJS)\monolib_tbarbase.o \
|
||||||
$(OBJS)\monolib_textcmn.o \
|
$(OBJS)\monolib_textcmn.o \
|
||||||
@@ -2711,6 +2715,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\coredll_sizer.o \
|
$(OBJS)\coredll_sizer.o \
|
||||||
$(OBJS)\coredll_srchcmn.o \
|
$(OBJS)\coredll_srchcmn.o \
|
||||||
$(OBJS)\coredll_statbar.o \
|
$(OBJS)\coredll_statbar.o \
|
||||||
|
$(OBJS)\coredll_stattextcmn.o \
|
||||||
$(OBJS)\coredll_stockitem.o \
|
$(OBJS)\coredll_stockitem.o \
|
||||||
$(OBJS)\coredll_tbarbase.o \
|
$(OBJS)\coredll_tbarbase.o \
|
||||||
$(OBJS)\coredll_textcmn.o \
|
$(OBJS)\coredll_textcmn.o \
|
||||||
@@ -2940,6 +2945,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\coredll_sizer.o \
|
$(OBJS)\coredll_sizer.o \
|
||||||
$(OBJS)\coredll_srchcmn.o \
|
$(OBJS)\coredll_srchcmn.o \
|
||||||
$(OBJS)\coredll_statbar.o \
|
$(OBJS)\coredll_statbar.o \
|
||||||
|
$(OBJS)\coredll_stattextcmn.o \
|
||||||
$(OBJS)\coredll_stockitem.o \
|
$(OBJS)\coredll_stockitem.o \
|
||||||
$(OBJS)\coredll_tbarbase.o \
|
$(OBJS)\coredll_tbarbase.o \
|
||||||
$(OBJS)\coredll_textcmn.o \
|
$(OBJS)\coredll_textcmn.o \
|
||||||
@@ -3174,6 +3180,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\corelib_sizer.o \
|
$(OBJS)\corelib_sizer.o \
|
||||||
$(OBJS)\corelib_srchcmn.o \
|
$(OBJS)\corelib_srchcmn.o \
|
||||||
$(OBJS)\corelib_statbar.o \
|
$(OBJS)\corelib_statbar.o \
|
||||||
|
$(OBJS)\corelib_stattextcmn.o \
|
||||||
$(OBJS)\corelib_stockitem.o \
|
$(OBJS)\corelib_stockitem.o \
|
||||||
$(OBJS)\corelib_tbarbase.o \
|
$(OBJS)\corelib_tbarbase.o \
|
||||||
$(OBJS)\corelib_textcmn.o \
|
$(OBJS)\corelib_textcmn.o \
|
||||||
@@ -3403,6 +3410,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\corelib_sizer.o \
|
$(OBJS)\corelib_sizer.o \
|
||||||
$(OBJS)\corelib_srchcmn.o \
|
$(OBJS)\corelib_srchcmn.o \
|
||||||
$(OBJS)\corelib_statbar.o \
|
$(OBJS)\corelib_statbar.o \
|
||||||
|
$(OBJS)\corelib_stattextcmn.o \
|
||||||
$(OBJS)\corelib_stockitem.o \
|
$(OBJS)\corelib_stockitem.o \
|
||||||
$(OBJS)\corelib_tbarbase.o \
|
$(OBJS)\corelib_tbarbase.o \
|
||||||
$(OBJS)\corelib_textcmn.o \
|
$(OBJS)\corelib_textcmn.o \
|
||||||
@@ -6635,6 +6643,11 @@ $(OBJS)\monodll_statbar.o: ../../src/common/statbar.cpp
|
|||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_GUI),1)
|
||||||
|
$(OBJS)\monodll_stattextcmn.o: ../../src/common/stattextcmn.cpp
|
||||||
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_GUI),1)
|
ifeq ($(USE_GUI),1)
|
||||||
$(OBJS)\monodll_stockitem.o: ../../src/common/stockitem.cpp
|
$(OBJS)\monodll_stockitem.o: ../../src/common/stockitem.cpp
|
||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
@@ -8762,6 +8775,11 @@ $(OBJS)\monolib_statbar.o: ../../src/common/statbar.cpp
|
|||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_GUI),1)
|
||||||
|
$(OBJS)\monolib_stattextcmn.o: ../../src/common/stattextcmn.cpp
|
||||||
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_GUI),1)
|
ifeq ($(USE_GUI),1)
|
||||||
$(OBJS)\monolib_stockitem.o: ../../src/common/stockitem.cpp
|
$(OBJS)\monolib_stockitem.o: ../../src/common/stockitem.cpp
|
||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
@@ -10928,6 +10946,11 @@ $(OBJS)\coredll_statbar.o: ../../src/common/statbar.cpp
|
|||||||
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_GUI),1)
|
||||||
|
$(OBJS)\coredll_stattextcmn.o: ../../src/common/stattextcmn.cpp
|
||||||
|
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_GUI),1)
|
ifeq ($(USE_GUI),1)
|
||||||
$(OBJS)\coredll_stockitem.o: ../../src/common/stockitem.cpp
|
$(OBJS)\coredll_stockitem.o: ../../src/common/stockitem.cpp
|
||||||
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
@@ -12313,6 +12336,11 @@ $(OBJS)\corelib_statbar.o: ../../src/common/statbar.cpp
|
|||||||
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_GUI),1)
|
||||||
|
$(OBJS)\corelib_stattextcmn.o: ../../src/common/stattextcmn.cpp
|
||||||
|
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_GUI),1)
|
ifeq ($(USE_GUI),1)
|
||||||
$(OBJS)\corelib_stockitem.o: ../../src/common/stockitem.cpp
|
$(OBJS)\corelib_stockitem.o: ../../src/common/stockitem.cpp
|
||||||
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
@@ -1682,6 +1682,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_sizer.obj \
|
$(OBJS)\monodll_sizer.obj \
|
||||||
$(OBJS)\monodll_srchcmn.obj \
|
$(OBJS)\monodll_srchcmn.obj \
|
||||||
$(OBJS)\monodll_statbar.obj \
|
$(OBJS)\monodll_statbar.obj \
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj \
|
||||||
$(OBJS)\monodll_stockitem.obj \
|
$(OBJS)\monodll_stockitem.obj \
|
||||||
$(OBJS)\monodll_tbarbase.obj \
|
$(OBJS)\monodll_tbarbase.obj \
|
||||||
$(OBJS)\monodll_textcmn.obj \
|
$(OBJS)\monodll_textcmn.obj \
|
||||||
@@ -1909,6 +1910,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_sizer.obj \
|
$(OBJS)\monodll_sizer.obj \
|
||||||
$(OBJS)\monodll_srchcmn.obj \
|
$(OBJS)\monodll_srchcmn.obj \
|
||||||
$(OBJS)\monodll_statbar.obj \
|
$(OBJS)\monodll_statbar.obj \
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj \
|
||||||
$(OBJS)\monodll_stockitem.obj \
|
$(OBJS)\monodll_stockitem.obj \
|
||||||
$(OBJS)\monodll_tbarbase.obj \
|
$(OBJS)\monodll_tbarbase.obj \
|
||||||
$(OBJS)\monodll_textcmn.obj \
|
$(OBJS)\monodll_textcmn.obj \
|
||||||
@@ -2310,6 +2312,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_sizer.obj \
|
$(OBJS)\monolib_sizer.obj \
|
||||||
$(OBJS)\monolib_srchcmn.obj \
|
$(OBJS)\monolib_srchcmn.obj \
|
||||||
$(OBJS)\monolib_statbar.obj \
|
$(OBJS)\monolib_statbar.obj \
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj \
|
||||||
$(OBJS)\monolib_stockitem.obj \
|
$(OBJS)\monolib_stockitem.obj \
|
||||||
$(OBJS)\monolib_tbarbase.obj \
|
$(OBJS)\monolib_tbarbase.obj \
|
||||||
$(OBJS)\monolib_textcmn.obj \
|
$(OBJS)\monolib_textcmn.obj \
|
||||||
@@ -2537,6 +2540,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_sizer.obj \
|
$(OBJS)\monolib_sizer.obj \
|
||||||
$(OBJS)\monolib_srchcmn.obj \
|
$(OBJS)\monolib_srchcmn.obj \
|
||||||
$(OBJS)\monolib_statbar.obj \
|
$(OBJS)\monolib_statbar.obj \
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj \
|
||||||
$(OBJS)\monolib_stockitem.obj \
|
$(OBJS)\monolib_stockitem.obj \
|
||||||
$(OBJS)\monolib_tbarbase.obj \
|
$(OBJS)\monolib_tbarbase.obj \
|
||||||
$(OBJS)\monolib_textcmn.obj \
|
$(OBJS)\monolib_textcmn.obj \
|
||||||
@@ -2882,6 +2886,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\coredll_sizer.obj \
|
$(OBJS)\coredll_sizer.obj \
|
||||||
$(OBJS)\coredll_srchcmn.obj \
|
$(OBJS)\coredll_srchcmn.obj \
|
||||||
$(OBJS)\coredll_statbar.obj \
|
$(OBJS)\coredll_statbar.obj \
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj \
|
||||||
$(OBJS)\coredll_stockitem.obj \
|
$(OBJS)\coredll_stockitem.obj \
|
||||||
$(OBJS)\coredll_tbarbase.obj \
|
$(OBJS)\coredll_tbarbase.obj \
|
||||||
$(OBJS)\coredll_textcmn.obj \
|
$(OBJS)\coredll_textcmn.obj \
|
||||||
@@ -3109,6 +3114,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\coredll_sizer.obj \
|
$(OBJS)\coredll_sizer.obj \
|
||||||
$(OBJS)\coredll_srchcmn.obj \
|
$(OBJS)\coredll_srchcmn.obj \
|
||||||
$(OBJS)\coredll_statbar.obj \
|
$(OBJS)\coredll_statbar.obj \
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj \
|
||||||
$(OBJS)\coredll_stockitem.obj \
|
$(OBJS)\coredll_stockitem.obj \
|
||||||
$(OBJS)\coredll_tbarbase.obj \
|
$(OBJS)\coredll_tbarbase.obj \
|
||||||
$(OBJS)\coredll_textcmn.obj \
|
$(OBJS)\coredll_textcmn.obj \
|
||||||
@@ -3343,6 +3349,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\corelib_sizer.obj \
|
$(OBJS)\corelib_sizer.obj \
|
||||||
$(OBJS)\corelib_srchcmn.obj \
|
$(OBJS)\corelib_srchcmn.obj \
|
||||||
$(OBJS)\corelib_statbar.obj \
|
$(OBJS)\corelib_statbar.obj \
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj \
|
||||||
$(OBJS)\corelib_stockitem.obj \
|
$(OBJS)\corelib_stockitem.obj \
|
||||||
$(OBJS)\corelib_tbarbase.obj \
|
$(OBJS)\corelib_tbarbase.obj \
|
||||||
$(OBJS)\corelib_textcmn.obj \
|
$(OBJS)\corelib_textcmn.obj \
|
||||||
@@ -3570,6 +3577,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\corelib_sizer.obj \
|
$(OBJS)\corelib_sizer.obj \
|
||||||
$(OBJS)\corelib_srchcmn.obj \
|
$(OBJS)\corelib_srchcmn.obj \
|
||||||
$(OBJS)\corelib_statbar.obj \
|
$(OBJS)\corelib_statbar.obj \
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj \
|
||||||
$(OBJS)\corelib_stockitem.obj \
|
$(OBJS)\corelib_stockitem.obj \
|
||||||
$(OBJS)\corelib_tbarbase.obj \
|
$(OBJS)\corelib_tbarbase.obj \
|
||||||
$(OBJS)\corelib_textcmn.obj \
|
$(OBJS)\corelib_textcmn.obj \
|
||||||
@@ -6717,6 +6725,11 @@ $(OBJS)\monodll_statbar.obj: ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj: ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\monodll_stockitem.obj: ..\..\src\common\stockitem.cpp
|
$(OBJS)\monodll_stockitem.obj: ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
||||||
@@ -8744,6 +8757,11 @@ $(OBJS)\monolib_statbar.obj: ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj: ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\monolib_stockitem.obj: ..\..\src\common\stockitem.cpp
|
$(OBJS)\monolib_stockitem.obj: ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
@@ -10810,6 +10828,11 @@ $(OBJS)\coredll_statbar.obj: ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj: ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\coredll_stockitem.obj: ..\..\src\common\stockitem.cpp
|
$(OBJS)\coredll_stockitem.obj: ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
|
||||||
@@ -12095,6 +12118,11 @@ $(OBJS)\corelib_statbar.obj: ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj: ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\corelib_stockitem.obj: ..\..\src\common\stockitem.cpp
|
$(OBJS)\corelib_stockitem.obj: ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
|
||||||
|
@@ -387,6 +387,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
|
|||||||
$(OBJS)\monodll_sizer.obj &
|
$(OBJS)\monodll_sizer.obj &
|
||||||
$(OBJS)\monodll_srchcmn.obj &
|
$(OBJS)\monodll_srchcmn.obj &
|
||||||
$(OBJS)\monodll_statbar.obj &
|
$(OBJS)\monodll_statbar.obj &
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj &
|
||||||
$(OBJS)\monodll_stockitem.obj &
|
$(OBJS)\monodll_stockitem.obj &
|
||||||
$(OBJS)\monodll_tbarbase.obj &
|
$(OBJS)\monodll_tbarbase.obj &
|
||||||
$(OBJS)\monodll_textcmn.obj &
|
$(OBJS)\monodll_textcmn.obj &
|
||||||
@@ -616,6 +617,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
|
|||||||
$(OBJS)\monodll_sizer.obj &
|
$(OBJS)\monodll_sizer.obj &
|
||||||
$(OBJS)\monodll_srchcmn.obj &
|
$(OBJS)\monodll_srchcmn.obj &
|
||||||
$(OBJS)\monodll_statbar.obj &
|
$(OBJS)\monodll_statbar.obj &
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj &
|
||||||
$(OBJS)\monodll_stockitem.obj &
|
$(OBJS)\monodll_stockitem.obj &
|
||||||
$(OBJS)\monodll_tbarbase.obj &
|
$(OBJS)\monodll_tbarbase.obj &
|
||||||
$(OBJS)\monodll_textcmn.obj &
|
$(OBJS)\monodll_textcmn.obj &
|
||||||
@@ -1019,6 +1021,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
|
|||||||
$(OBJS)\monolib_sizer.obj &
|
$(OBJS)\monolib_sizer.obj &
|
||||||
$(OBJS)\monolib_srchcmn.obj &
|
$(OBJS)\monolib_srchcmn.obj &
|
||||||
$(OBJS)\monolib_statbar.obj &
|
$(OBJS)\monolib_statbar.obj &
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj &
|
||||||
$(OBJS)\monolib_stockitem.obj &
|
$(OBJS)\monolib_stockitem.obj &
|
||||||
$(OBJS)\monolib_tbarbase.obj &
|
$(OBJS)\monolib_tbarbase.obj &
|
||||||
$(OBJS)\monolib_textcmn.obj &
|
$(OBJS)\monolib_textcmn.obj &
|
||||||
@@ -1248,6 +1251,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
|
|||||||
$(OBJS)\monolib_sizer.obj &
|
$(OBJS)\monolib_sizer.obj &
|
||||||
$(OBJS)\monolib_srchcmn.obj &
|
$(OBJS)\monolib_srchcmn.obj &
|
||||||
$(OBJS)\monolib_statbar.obj &
|
$(OBJS)\monolib_statbar.obj &
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj &
|
||||||
$(OBJS)\monolib_stockitem.obj &
|
$(OBJS)\monolib_stockitem.obj &
|
||||||
$(OBJS)\monolib_tbarbase.obj &
|
$(OBJS)\monolib_tbarbase.obj &
|
||||||
$(OBJS)\monolib_textcmn.obj &
|
$(OBJS)\monolib_textcmn.obj &
|
||||||
@@ -1588,6 +1592,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
|
|||||||
$(OBJS)\coredll_sizer.obj &
|
$(OBJS)\coredll_sizer.obj &
|
||||||
$(OBJS)\coredll_srchcmn.obj &
|
$(OBJS)\coredll_srchcmn.obj &
|
||||||
$(OBJS)\coredll_statbar.obj &
|
$(OBJS)\coredll_statbar.obj &
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj &
|
||||||
$(OBJS)\coredll_stockitem.obj &
|
$(OBJS)\coredll_stockitem.obj &
|
||||||
$(OBJS)\coredll_tbarbase.obj &
|
$(OBJS)\coredll_tbarbase.obj &
|
||||||
$(OBJS)\coredll_textcmn.obj &
|
$(OBJS)\coredll_textcmn.obj &
|
||||||
@@ -1817,6 +1822,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
|
|||||||
$(OBJS)\coredll_sizer.obj &
|
$(OBJS)\coredll_sizer.obj &
|
||||||
$(OBJS)\coredll_srchcmn.obj &
|
$(OBJS)\coredll_srchcmn.obj &
|
||||||
$(OBJS)\coredll_statbar.obj &
|
$(OBJS)\coredll_statbar.obj &
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj &
|
||||||
$(OBJS)\coredll_stockitem.obj &
|
$(OBJS)\coredll_stockitem.obj &
|
||||||
$(OBJS)\coredll_tbarbase.obj &
|
$(OBJS)\coredll_tbarbase.obj &
|
||||||
$(OBJS)\coredll_textcmn.obj &
|
$(OBJS)\coredll_textcmn.obj &
|
||||||
@@ -2053,6 +2059,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
|
|||||||
$(OBJS)\corelib_sizer.obj &
|
$(OBJS)\corelib_sizer.obj &
|
||||||
$(OBJS)\corelib_srchcmn.obj &
|
$(OBJS)\corelib_srchcmn.obj &
|
||||||
$(OBJS)\corelib_statbar.obj &
|
$(OBJS)\corelib_statbar.obj &
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj &
|
||||||
$(OBJS)\corelib_stockitem.obj &
|
$(OBJS)\corelib_stockitem.obj &
|
||||||
$(OBJS)\corelib_tbarbase.obj &
|
$(OBJS)\corelib_tbarbase.obj &
|
||||||
$(OBJS)\corelib_textcmn.obj &
|
$(OBJS)\corelib_textcmn.obj &
|
||||||
@@ -2282,6 +2289,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
|
|||||||
$(OBJS)\corelib_sizer.obj &
|
$(OBJS)\corelib_sizer.obj &
|
||||||
$(OBJS)\corelib_srchcmn.obj &
|
$(OBJS)\corelib_srchcmn.obj &
|
||||||
$(OBJS)\corelib_statbar.obj &
|
$(OBJS)\corelib_statbar.obj &
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj &
|
||||||
$(OBJS)\corelib_stockitem.obj &
|
$(OBJS)\corelib_stockitem.obj &
|
||||||
$(OBJS)\corelib_tbarbase.obj &
|
$(OBJS)\corelib_tbarbase.obj &
|
||||||
$(OBJS)\corelib_textcmn.obj &
|
$(OBJS)\corelib_textcmn.obj &
|
||||||
@@ -6889,6 +6897,11 @@ $(OBJS)\monodll_statbar.obj : .AUTODEPEND ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!ifeq USE_GUI 1
|
||||||
|
$(OBJS)\monodll_stattextcmn.obj : .AUTODEPEND ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
||||||
|
!endif
|
||||||
|
|
||||||
!ifeq USE_GUI 1
|
!ifeq USE_GUI 1
|
||||||
$(OBJS)\monodll_stockitem.obj : .AUTODEPEND ..\..\src\common\stockitem.cpp
|
$(OBJS)\monodll_stockitem.obj : .AUTODEPEND ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
||||||
@@ -9016,6 +9029,11 @@ $(OBJS)\monolib_statbar.obj : .AUTODEPEND ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!ifeq USE_GUI 1
|
||||||
|
$(OBJS)\monolib_stattextcmn.obj : .AUTODEPEND ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
||||||
|
!endif
|
||||||
|
|
||||||
!ifeq USE_GUI 1
|
!ifeq USE_GUI 1
|
||||||
$(OBJS)\monolib_stockitem.obj : .AUTODEPEND ..\..\src\common\stockitem.cpp
|
$(OBJS)\monolib_stockitem.obj : .AUTODEPEND ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
||||||
@@ -11182,6 +11200,11 @@ $(OBJS)\coredll_statbar.obj : .AUTODEPEND ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
|
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!ifeq USE_GUI 1
|
||||||
|
$(OBJS)\coredll_stattextcmn.obj : .AUTODEPEND ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
|
||||||
|
!endif
|
||||||
|
|
||||||
!ifeq USE_GUI 1
|
!ifeq USE_GUI 1
|
||||||
$(OBJS)\coredll_stockitem.obj : .AUTODEPEND ..\..\src\common\stockitem.cpp
|
$(OBJS)\coredll_stockitem.obj : .AUTODEPEND ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
|
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
|
||||||
@@ -12567,6 +12590,11 @@ $(OBJS)\corelib_statbar.obj : .AUTODEPEND ..\..\src\common\statbar.cpp
|
|||||||
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
|
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!ifeq USE_GUI 1
|
||||||
|
$(OBJS)\corelib_stattextcmn.obj : .AUTODEPEND ..\..\src\common\stattextcmn.cpp
|
||||||
|
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
|
||||||
|
!endif
|
||||||
|
|
||||||
!ifeq USE_GUI 1
|
!ifeq USE_GUI 1
|
||||||
$(OBJS)\corelib_stockitem.obj : .AUTODEPEND ..\..\src\common\stockitem.cpp
|
$(OBJS)\corelib_stockitem.obj : .AUTODEPEND ..\..\src\common\stockitem.cpp
|
||||||
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
|
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
|
||||||
|
@@ -790,6 +790,10 @@ SOURCE=..\..\src\common\statbar.cpp
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\src\common\stattextcmn.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\src\common\stockitem.cpp
|
SOURCE=..\..\src\common\stockitem.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@@ -100,6 +100,7 @@ All (GUI):
|
|||||||
|
|
||||||
wxGTK:
|
wxGTK:
|
||||||
|
|
||||||
|
- Support for markup and ellipsization in wxStaticText (Francesco Montorsi)
|
||||||
- Native implementation for wxHyperlinkCtrl (Francesco Montorsi)
|
- Native implementation for wxHyperlinkCtrl (Francesco Montorsi)
|
||||||
- Native keyboard navigation implementation
|
- Native keyboard navigation implementation
|
||||||
- Don't overwrite primary selection with clipboard and vice versa
|
- Don't overwrite primary selection with clipboard and vice versa
|
||||||
|
@@ -26,6 +26,14 @@ adjust its size to exactly fit to the size of the text when
|
|||||||
given, the control will not change its size (this style is especially useful
|
given, the control will not change its size (this style is especially useful
|
||||||
with controls which also have wxALIGN\_RIGHT or CENTER style because otherwise
|
with controls which also have wxALIGN\_RIGHT or CENTER style because otherwise
|
||||||
they won't make sense any longer after a call to SetLabel)}
|
they won't make sense any longer after a call to SetLabel)}
|
||||||
|
\twocolitem{\windowstyle{wxST\_ELLIPSIZE\_START}}{If the text width exceeds the
|
||||||
|
control width, replace the beginning of the text with an ellipsis}
|
||||||
|
\twocolitem{\windowstyle{wxST\_ELLIPSIZE\_MIDDLE}}{Same as above, but replace
|
||||||
|
the text in the middle of the control with an ellipsis}
|
||||||
|
\twocolitem{\windowstyle{wxST\_ELLIPSIZE\_END}}{Same as above, but replace the
|
||||||
|
end of the text with an ellipsis}
|
||||||
|
\twocolitem{\windowstyle{wxST_MARKUP}}{Support markup in the label; see
|
||||||
|
\helpref{SetLabel}{wxstatictextsetlabel} for more information}
|
||||||
\end{twocollist}
|
\end{twocollist}
|
||||||
|
|
||||||
See also \helpref{window styles overview}{windowstyles}.
|
See also \helpref{window styles overview}{windowstyles}.
|
||||||
@@ -85,6 +93,22 @@ Creation function, for two-step construction. For details see \helpref{wxStaticT
|
|||||||
|
|
||||||
Returns the contents of the control.
|
Returns the contents of the control.
|
||||||
|
|
||||||
|
Note that the returned string contains both the mnemonics (\texttt{\&} characters),
|
||||||
|
if any, and markup tags, if any.
|
||||||
|
|
||||||
|
Use \helpref{wxStaticText::GetLabelText}{wxstatictextgetlabeltext} if only the
|
||||||
|
label text is needed.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxStaticText::GetLabelText}\label{wxstatictextgetlabeltext}
|
||||||
|
|
||||||
|
\constfunc{const wxString\&}{GetLabelText}{\void}
|
||||||
|
|
||||||
|
Returns the control's label or the given \arg{label} string for the static
|
||||||
|
version without the mnemonics characters (if any) and without the markup
|
||||||
|
(if the control has \texttt{wxST_MARKUP} style).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\membersection{wxStaticText::SetLabel}\label{wxstatictextsetlabel}
|
\membersection{wxStaticText::SetLabel}\label{wxstatictextsetlabel}
|
||||||
|
|
||||||
@@ -93,12 +117,70 @@ Returns the contents of the control.
|
|||||||
Sets the static text label and updates the controls size to exactly fit the
|
Sets the static text label and updates the controls size to exactly fit the
|
||||||
label unless the control has wxST\_NO\_AUTORESIZE flag.
|
label unless the control has wxST\_NO\_AUTORESIZE flag.
|
||||||
|
|
||||||
|
This function allows to set decorated static label text on platforms which
|
||||||
|
support it (currently only GTK+ 2). For the other platforms, the markup is
|
||||||
|
ignored.
|
||||||
|
|
||||||
|
The supported tags are:
|
||||||
|
|
||||||
|
\twocolwidtha{5cm}
|
||||||
|
\begin{twocollist}\itemsep=0pt
|
||||||
|
\twocolitem{<b>}{bold text}
|
||||||
|
\twocolitem{<big>}{bigger text}
|
||||||
|
\twocolitem{<i>}{italic text}
|
||||||
|
\twocolitem{<s>}{strike-through text}
|
||||||
|
\twocolitem{<sub>}{subscript text}
|
||||||
|
\twocolitem{<sup>}{superscript text}
|
||||||
|
\twocolitem{<small>}{smaller text}
|
||||||
|
\twocolitem{<tt>}{monospaced text}
|
||||||
|
\twocolitem{<u>}{underlined text}
|
||||||
|
\twocolitem{<span>}{generic formatter tag; see \urlref{Pango Markup}{http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html} for more information.}
|
||||||
|
\end{twocollist}
|
||||||
|
|
||||||
|
Note that the string must be well-formed (e.g. all tags must be correctly closed)
|
||||||
|
otherwise it can be not shown correctly or at all.
|
||||||
|
|
||||||
|
Also note that you need to escape the following special characters:
|
||||||
|
|
||||||
|
\twocolwidtha{5cm}
|
||||||
|
\begin{twocollist}\itemsep=0pt
|
||||||
|
\twocolitem{\textbf{Special character}}{\textbf{Escape as}}
|
||||||
|
\twocolitem{\texttt{&}}{\texttt{&} or as \texttt{&&}}
|
||||||
|
\twocolitem{\texttt{'}}{\texttt{'}}
|
||||||
|
\twocolitem{\texttt{"}}{\texttt{"}}
|
||||||
|
\twocolitem{\texttt{<}}{\texttt{<}}
|
||||||
|
\twocolitem{\texttt{>}}{\texttt{>}}
|
||||||
|
\end{twocollist}
|
||||||
|
|
||||||
|
The non-escaped ampersand \texttt{&} characters are interpreted as
|
||||||
|
mnemonics; see \helpref{wxControl::SetLabel}{wxcontrolsetlabel}.
|
||||||
|
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
%% TEX NOTE: in the following block we need to write the (ugly) &&amp;
|
||||||
|
%% string in order to force Tex2rtf to show the && string
|
||||||
|
\begin{verbatim}
|
||||||
|
// this will set the wxStaticText to show the "Hello world!" string
|
||||||
|
// with the "Hello" world in bold on platforms which support markup
|
||||||
|
pStaticText->SetLabelWithMarkup(wxT("<b>Hello</b> world!"));
|
||||||
|
|
||||||
|
// this will make wxStaticText show the string:
|
||||||
|
//
|
||||||
|
// Specials: & ' " < >"
|
||||||
|
//
|
||||||
|
// with "Specials" in smaller size font if markup is supported
|
||||||
|
pStaticText->SetLabelWithMarkup(
|
||||||
|
wxT("<small>Specials</small>: &amp; &apos; &quot;; &lt; &gt;"));
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
\wxheading{Parameters}
|
\wxheading{Parameters}
|
||||||
|
|
||||||
\docparam{label}{The new label to set. It may contain newline characters.}
|
\docparam{label}{The new label to set. It may contain newline characters and the markup tags described above.}
|
||||||
|
|
||||||
|
|
||||||
\membersection{wxStaticText::Wrap}\label{wxstatictextwrpa}
|
|
||||||
|
\membersection{wxStaticText::Wrap}\label{wxstatictextwrap}
|
||||||
|
|
||||||
\func{void}{Wrap}{\param{int }{width}}
|
\func{void}{Wrap}{\param{int }{width}}
|
||||||
|
|
||||||
|
@@ -46,11 +46,36 @@ public:
|
|||||||
// get the control alignment (left/right/centre, top/bottom/centre)
|
// get the control alignment (left/right/centre, top/bottom/centre)
|
||||||
int GetAlignment() const { return m_windowStyle & wxALIGN_MASK; }
|
int GetAlignment() const { return m_windowStyle & wxALIGN_MASK; }
|
||||||
|
|
||||||
|
// get just the text of the label, without mnemonic characters ('&')
|
||||||
|
wxString GetLabelText() const { return GetLabelText(GetLabel()); }
|
||||||
|
|
||||||
|
virtual void SetLabel(const wxString& label)
|
||||||
|
{
|
||||||
|
m_labelOrig = label;
|
||||||
|
|
||||||
|
InvalidateBestSize();
|
||||||
|
|
||||||
|
wxWindow::SetLabel(label);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual wxString GetLabel() const
|
||||||
|
{
|
||||||
|
// return the original string, as it was passed to SetLabel()
|
||||||
|
// (i.e. with wx-style mnemonics)
|
||||||
|
return m_labelOrig;
|
||||||
|
}
|
||||||
|
|
||||||
|
// static utilities:
|
||||||
|
|
||||||
// get the string without mnemonic characters ('&')
|
// get the string without mnemonic characters ('&')
|
||||||
static wxString GetLabelText(const wxString& label);
|
static wxString GetLabelText(const wxString& label);
|
||||||
|
|
||||||
// get just the text of the label, without mnemonic characters ('&')
|
// removes the mnemonics characters
|
||||||
wxString GetLabelText() const { return GetLabelText(GetLabel()); }
|
static wxString RemoveMnemonics(const wxString& str);
|
||||||
|
|
||||||
|
// escapes the mnemonics characters ('&') by doubling them
|
||||||
|
static wxString EscapeMnemonics(const wxString& str);
|
||||||
|
|
||||||
|
|
||||||
// controls by default inherit the colours of their parents, if a
|
// controls by default inherit the colours of their parents, if a
|
||||||
// particular control class doesn't want to do it, it can override
|
// particular control class doesn't want to do it, it can override
|
||||||
@@ -64,7 +89,6 @@ public:
|
|||||||
// if the button was clicked)
|
// if the button was clicked)
|
||||||
virtual void Command(wxCommandEvent &event);
|
virtual void Command(wxCommandEvent &event);
|
||||||
|
|
||||||
virtual void SetLabel( const wxString &label );
|
|
||||||
virtual bool SetFont(const wxFont& font);
|
virtual bool SetFont(const wxFont& font);
|
||||||
|
|
||||||
// wxControl-specific processing after processing the update event
|
// wxControl-specific processing after processing the update event
|
||||||
@@ -84,6 +108,9 @@ protected:
|
|||||||
// initialize the common fields of wxCommandEvent
|
// initialize the common fields of wxCommandEvent
|
||||||
void InitCommandEvent(wxCommandEvent& event) const;
|
void InitCommandEvent(wxCommandEvent& event) const;
|
||||||
|
|
||||||
|
// this field contains the label in wx format, i.e. with '&' mnemonics
|
||||||
|
wxString m_labelOrig;
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(wxControlBase)
|
DECLARE_NO_COPY_CLASS(wxControlBase)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -1603,13 +1603,6 @@ enum wxBorder
|
|||||||
*/
|
*/
|
||||||
#define wxST_SIZEGRIP 0x0010
|
#define wxST_SIZEGRIP 0x0010
|
||||||
|
|
||||||
/*
|
|
||||||
* wxStaticText flags
|
|
||||||
*/
|
|
||||||
#define wxST_NO_AUTORESIZE 0x0001
|
|
||||||
#define wxST_DOTS_MIDDLE 0x0002
|
|
||||||
#define wxST_DOTS_END 0x0004
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* wxStaticBitmap flags
|
* wxStaticBitmap flags
|
||||||
*/
|
*/
|
||||||
|
@@ -43,8 +43,6 @@ public:
|
|||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
const wxString& name = wxControlNameStr);
|
const wxString& name = wxControlNameStr);
|
||||||
|
|
||||||
virtual void SetLabel( const wxString &label );
|
|
||||||
virtual wxString GetLabel() const;
|
|
||||||
|
|
||||||
virtual wxVisualAttributes GetDefaultAttributes() const;
|
virtual wxVisualAttributes GetDefaultAttributes() const;
|
||||||
|
|
||||||
@@ -56,6 +54,7 @@ protected:
|
|||||||
|
|
||||||
// sets the label to the given string and also sets it for the given widget
|
// sets the label to the given string and also sets it for the given widget
|
||||||
void GTKSetLabelForLabel(GtkLabel *w, const wxString& label);
|
void GTKSetLabelForLabel(GtkLabel *w, const wxString& label);
|
||||||
|
void GTKSetLabelWithMarkupForLabel(GtkLabel *w, const wxString& label);
|
||||||
|
|
||||||
// GtkFrame helpers
|
// GtkFrame helpers
|
||||||
GtkWidget* GTKCreateFrame(const wxString& label);
|
GtkWidget* GTKCreateFrame(const wxString& label);
|
||||||
@@ -67,11 +66,11 @@ protected:
|
|||||||
static wxString GTKRemoveMnemonics(const wxString& label);
|
static wxString GTKRemoveMnemonics(const wxString& label);
|
||||||
|
|
||||||
// converts wx label to GTK+ label, i.e. basically replace "&"s with "_"s
|
// converts wx label to GTK+ label, i.e. basically replace "&"s with "_"s
|
||||||
//
|
|
||||||
// for GTK+ 1 (which doesn't support mnemonics) this is the same as
|
|
||||||
// GTKRemoveMnemonics()
|
|
||||||
static wxString GTKConvertMnemonics(const wxString &label);
|
static wxString GTKConvertMnemonics(const wxString &label);
|
||||||
|
|
||||||
|
// converts wx label to GTK+ labels preserving Pango markup
|
||||||
|
static wxString GTKConvertMnemonicsWithMarkup(const wxString& label);
|
||||||
|
|
||||||
// These are used by GetDefaultAttributes
|
// These are used by GetDefaultAttributes
|
||||||
static wxVisualAttributes
|
static wxVisualAttributes
|
||||||
GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
|
GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
|
||||||
@@ -95,9 +94,6 @@ protected:
|
|||||||
// override this and return true.
|
// override this and return true.
|
||||||
virtual bool UseGTKStyleBase() const { return false; }
|
virtual bool UseGTKStyleBase() const { return false; }
|
||||||
|
|
||||||
// this field contains the label in wx format, i.e. with "&" mnemonics
|
|
||||||
wxString m_label;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxControl)
|
DECLARE_DYNAMIC_CLASS(wxControl)
|
||||||
};
|
};
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
// wxStaticText
|
// wxStaticText
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxStaticText : public wxControl
|
class WXDLLIMPEXP_CORE wxStaticText : public wxStaticTextBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxStaticText();
|
wxStaticText();
|
||||||
@@ -43,8 +43,7 @@ public:
|
|||||||
static wxVisualAttributes
|
static wxVisualAttributes
|
||||||
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
||||||
|
|
||||||
// see wx/stattext.h
|
|
||||||
void Wrap(int width);
|
|
||||||
|
|
||||||
// implementation
|
// implementation
|
||||||
// --------------
|
// --------------
|
||||||
@@ -59,6 +58,9 @@ protected:
|
|||||||
|
|
||||||
virtual wxSize DoGetBestSize() const;
|
virtual wxSize DoGetBestSize() const;
|
||||||
|
|
||||||
|
virtual wxString DoGetLabel() const;
|
||||||
|
virtual void DoSetLabel(const wxString& str);
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxStaticText)
|
DECLARE_DYNAMIC_CLASS(wxStaticText)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -42,6 +42,9 @@ public:
|
|||||||
|
|
||||||
protected :
|
protected :
|
||||||
|
|
||||||
|
virtual wxString DoGetLabel() const;
|
||||||
|
virtual void DoSetLabel(const wxString& str);
|
||||||
|
|
||||||
virtual wxSize DoGetBestSize() const ;
|
virtual wxSize DoGetBestSize() const ;
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText)
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText)
|
||||||
|
@@ -52,6 +52,9 @@ public:
|
|||||||
virtual WXWidget GetLabelWidget() const
|
virtual WXWidget GetLabelWidget() const
|
||||||
{ return m_labelWidget; }
|
{ return m_labelWidget; }
|
||||||
|
|
||||||
|
virtual void DoSetLabel(const wxString& str);
|
||||||
|
virtual wxString DoGetLabel() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
WXWidget m_labelWidget;
|
WXWidget m_labelWidget;
|
||||||
};
|
};
|
||||||
|
@@ -49,6 +49,9 @@ protected:
|
|||||||
int sizeFlags = wxSIZE_AUTO);
|
int sizeFlags = wxSIZE_AUTO);
|
||||||
virtual wxSize DoGetBestSize() const;
|
virtual wxSize DoGetBestSize() const;
|
||||||
|
|
||||||
|
virtual wxString DoGetLabel() const;
|
||||||
|
virtual void DoSetLabel(const wxString& str);
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText)
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -67,6 +67,9 @@ protected:
|
|||||||
);
|
);
|
||||||
virtual wxSize DoGetBestSize(void) const;
|
virtual wxSize DoGetBestSize(void) const;
|
||||||
|
|
||||||
|
virtual void DoSetLabel(const wxString& str);
|
||||||
|
virtual wxString DoGetLabel() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxStaticText)
|
DECLARE_DYNAMIC_CLASS(wxStaticText)
|
||||||
}; // end of CLASS wxStaticText
|
}; // end of CLASS wxStaticText
|
||||||
|
95
include/wx/private/stattext.h
Normal file
95
include/wx/private/stattext.h
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: include/wx/private/stattext.h
|
||||||
|
// Purpose: Internal declarations for dlgcmn.cpp and stattextcmn.cpp
|
||||||
|
// Author: Francesco Montorsi
|
||||||
|
// Created: 2007-01-07 (extracted from dlgcmn.cpp)
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) 1999 Vadim Zeitlin
|
||||||
|
// (c) 2007 wxWidgets team
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_PRIVATE_STATTEXT_H_
|
||||||
|
#define _WX_PRIVATE_STATTEXT_H_
|
||||||
|
|
||||||
|
#if wxUSE_STATTEXT
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxTextWrapper
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// this class is used to wrap the text on word boundary: wrapping is done by
|
||||||
|
// calling OnStartLine() and OnOutputLine() functions
|
||||||
|
class wxTextWrapper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxTextWrapper() { m_eol = false; }
|
||||||
|
|
||||||
|
// win is used for getting the font, text is the text to wrap, width is the
|
||||||
|
// max line width or -1 to disable wrapping
|
||||||
|
void Wrap(wxWindow *win, const wxString& text, int widthMax);
|
||||||
|
|
||||||
|
// we don't need it, but just to avoid compiler warnings
|
||||||
|
virtual ~wxTextWrapper() { }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// line may be empty
|
||||||
|
virtual void OnOutputLine(const wxString& line) = 0;
|
||||||
|
|
||||||
|
// called at the start of every new line (except the very first one)
|
||||||
|
virtual void OnNewLine() { }
|
||||||
|
|
||||||
|
private:
|
||||||
|
// call OnOutputLine() and set m_eol to true
|
||||||
|
void DoOutputLine(const wxString& line)
|
||||||
|
{
|
||||||
|
OnOutputLine(line);
|
||||||
|
|
||||||
|
m_eol = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// this function is a destructive inspector: when it returns true it also
|
||||||
|
// resets the flag to false so calling it again woulnd't return true any
|
||||||
|
// more
|
||||||
|
bool IsStartOfNewLine()
|
||||||
|
{
|
||||||
|
if ( !m_eol )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
m_eol = false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool m_eol;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
wxMARKUP_ENTITY_AMP,
|
||||||
|
wxMARKUP_ENTITY_LT,
|
||||||
|
wxMARKUP_ENTITY_GT,
|
||||||
|
wxMARKUP_ENTITY_APOS,
|
||||||
|
wxMARKUP_ENTITY_QUOT,
|
||||||
|
wxMARKUP_ENTITY_MAX
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
wxMARKUP_ELEMENT_NAME,
|
||||||
|
wxMARKUP_ELEMENT_VALUE,
|
||||||
|
wxMARKUP_ELEMENT_MAX
|
||||||
|
};
|
||||||
|
|
||||||
|
// these are the only entities treated in a special way by wxStaticText::SetLabel()
|
||||||
|
// when the wxST_MARKUP style is used; use as:
|
||||||
|
//
|
||||||
|
// wxMarkupEntities[wxMARKUP_ELEMENT_NAME][wxMARKUP_ENTITY_GT] == ">"
|
||||||
|
// wxMarkupEntities[wxMARKUP_ELEMENT_VALUE][wxMARKUP_ENTITY_GT] == ">"
|
||||||
|
//
|
||||||
|
extern const wxChar *wxMarkupEntities[wxMARKUP_ELEMENT_MAX][wxMARKUP_ENTITY_MAX];
|
||||||
|
|
||||||
|
#endif // wxUSE_STATTEXT
|
||||||
|
|
||||||
|
#endif // _WX_PRIVATE_STATTEXT_H_
|
@@ -18,6 +18,17 @@
|
|||||||
|
|
||||||
#include "wx/control.h"
|
#include "wx/control.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* wxStaticText flags
|
||||||
|
*/
|
||||||
|
#define wxST_NO_AUTORESIZE 0x0001
|
||||||
|
#define wxST_MARKUP 0x0002
|
||||||
|
|
||||||
|
#define wxST_ELLIPSIZE_START 0x0004
|
||||||
|
#define wxST_ELLIPSIZE_MIDDLE 0x0008
|
||||||
|
#define wxST_ELLIPSIZE_END 0x0010
|
||||||
|
|
||||||
|
|
||||||
extern WXDLLEXPORT_DATA(const wxChar) wxStaticTextNameStr[];
|
extern WXDLLEXPORT_DATA(const wxChar) wxStaticTextNameStr[];
|
||||||
|
|
||||||
class WXDLLEXPORT wxStaticTextBase : public wxControl
|
class WXDLLEXPORT wxStaticTextBase : public wxControl
|
||||||
@@ -25,20 +36,60 @@ class WXDLLEXPORT wxStaticTextBase : public wxControl
|
|||||||
public:
|
public:
|
||||||
wxStaticTextBase() { }
|
wxStaticTextBase() { }
|
||||||
|
|
||||||
// in wxGTK wxStaticText doesn't derive from wxStaticTextBase so we have to
|
|
||||||
// declare this function directly in gtk header
|
|
||||||
#if !defined(__WXGTK__) || defined(__WXUNIVERSAL__)
|
|
||||||
// wrap the text of the control so that no line is longer than the given
|
// wrap the text of the control so that no line is longer than the given
|
||||||
// width (if possible: this function won't break words)
|
// width (if possible: this function won't break words)
|
||||||
//
|
// This function will modify the value returned by GetLabel()!
|
||||||
// NB: implemented in dlgcmn.cpp for now
|
|
||||||
void Wrap(int width);
|
void Wrap(int width);
|
||||||
#endif // ! native __WXGTK__
|
|
||||||
|
|
||||||
// overriden base virtuals
|
// overriden base virtuals
|
||||||
virtual bool AcceptsFocus() const { return false; }
|
virtual bool AcceptsFocus() const { return false; }
|
||||||
virtual bool HasTransparentBackground() { return true; }
|
virtual bool HasTransparentBackground() { return true; }
|
||||||
|
|
||||||
|
bool IsEllipsized() const
|
||||||
|
{
|
||||||
|
return HasFlag(wxST_ELLIPSIZE_START) ||
|
||||||
|
HasFlag(wxST_ELLIPSIZE_MIDDLE) ||
|
||||||
|
HasFlag(wxST_ELLIPSIZE_END);
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the string without mnemonic characters ('&') and without markup
|
||||||
|
// (if wxST_MARKUP is being used)
|
||||||
|
virtual wxString GetLabelText() const;
|
||||||
|
|
||||||
|
// public utilities (symmetric to those in wxControl about mnemonics):
|
||||||
|
|
||||||
|
// removes the markup accepted by wxStaticText when wxST_MARKUP is used,
|
||||||
|
// and then returns the cleaned string
|
||||||
|
static wxString RemoveMarkup(const wxString& str);
|
||||||
|
|
||||||
|
// escapes the alls special symbols (<>"'&) present inside the given string
|
||||||
|
// using the corresponding entities (< > " ' &)
|
||||||
|
static wxString EscapeMarkup(const wxString& str);
|
||||||
|
|
||||||
|
|
||||||
|
protected: // functions required for wxST_ELLIPSIZE_* support
|
||||||
|
|
||||||
|
// just calls RemoveMarkup & Ellipsize on the original label.
|
||||||
|
virtual wxString GetEllipsizedLabelWithoutMarkup() const;
|
||||||
|
|
||||||
|
// replaces parts of the string with ellipsis if needed
|
||||||
|
wxString Ellipsize(const wxString& label) const;
|
||||||
|
|
||||||
|
// to be called when updating the size of the static text:
|
||||||
|
// updates the label redoing ellipsization calculations
|
||||||
|
void UpdateLabel();
|
||||||
|
|
||||||
|
// These functions are platform-specific and must be overridden in ports
|
||||||
|
// which do not natively support ellipsization and they must be implemented
|
||||||
|
// in a way so that the m_label member of wxControl is not touched:
|
||||||
|
|
||||||
|
// returns the real label currently displayed inside the control.
|
||||||
|
virtual wxString DoGetLabel() const { return wxEmptyString; }
|
||||||
|
|
||||||
|
// sets the real label currently displayed inside the control,
|
||||||
|
// _without_ invalidating the size. The text passed is always markup-free.
|
||||||
|
virtual void DoSetLabel(const wxString& WXUNUSED(str)) { }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_NO_COPY_CLASS(wxStaticTextBase)
|
DECLARE_NO_COPY_CLASS(wxStaticTextBase)
|
||||||
};
|
};
|
||||||
|
@@ -64,13 +64,15 @@ public:
|
|||||||
|
|
||||||
// this function will filter out '&' characters and will put the
|
// this function will filter out '&' characters and will put the
|
||||||
// accelerator char (the one immediately after '&') into m_chAccel
|
// accelerator char (the one immediately after '&') into m_chAccel
|
||||||
virtual void SetLabel(const wxString &label);
|
virtual void SetLabel(const wxString& label);
|
||||||
virtual wxString GetLabel() const;
|
|
||||||
|
// return the current label
|
||||||
|
virtual wxString GetLabel() const { return m_label; }
|
||||||
|
|
||||||
// wxUniversal-specific methods
|
// wxUniversal-specific methods
|
||||||
|
|
||||||
// return the accel index in the string or -1 if none and puts the modified
|
// return the accel index in the string or -1 if none and puts the modified
|
||||||
// string intosecond parameter if non NULL
|
// string into second parameter if non NULL
|
||||||
static int FindAccelIndex(const wxString& label,
|
static int FindAccelIndex(const wxString& label,
|
||||||
wxString *labelOnly = NULL);
|
wxString *labelOnly = NULL);
|
||||||
|
|
||||||
@@ -89,6 +91,11 @@ protected:
|
|||||||
// common part of all ctors
|
// common part of all ctors
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
|
// set m_label and m_indexAccel and refresh the control to show the new
|
||||||
|
// label (but, unlike SetLabel(), don't call the base class SetLabel() thus
|
||||||
|
// avoiding to change wxControlBase::m_labelOrig)
|
||||||
|
void UnivDoSetLabel(const wxString& label);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// label and accel info
|
// label and accel info
|
||||||
wxString m_label;
|
wxString m_label;
|
||||||
|
@@ -60,6 +60,9 @@ protected:
|
|||||||
// draw the control
|
// draw the control
|
||||||
virtual void DoDraw(wxControlRenderer *renderer);
|
virtual void DoDraw(wxControlRenderer *renderer);
|
||||||
|
|
||||||
|
virtual void DoSetLabel(const wxString& str);
|
||||||
|
virtual wxString DoGetLabel() const;
|
||||||
|
|
||||||
DECLARE_ABSTRACT_CLASS(wxStaticText)
|
DECLARE_ABSTRACT_CLASS(wxStaticText)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -53,7 +53,8 @@ enum
|
|||||||
{
|
{
|
||||||
StaticPage_Reset = wxID_HIGHEST,
|
StaticPage_Reset = wxID_HIGHEST,
|
||||||
StaticPage_BoxText,
|
StaticPage_BoxText,
|
||||||
StaticPage_LabelText
|
StaticPage_LabelText,
|
||||||
|
StaticPage_LabelTextWithMarkup
|
||||||
};
|
};
|
||||||
|
|
||||||
// alignment radiobox values
|
// alignment radiobox values
|
||||||
@@ -73,6 +74,13 @@ enum
|
|||||||
StaticVAlign_Max
|
StaticVAlign_Max
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
StaticEllipsize_Start,
|
||||||
|
StaticEllipsize_Middle,
|
||||||
|
StaticEllipsize_End
|
||||||
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// MyStaticText and MyStaticBox
|
// MyStaticText and MyStaticBox
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -155,6 +163,7 @@ protected:
|
|||||||
void OnButtonReset(wxCommandEvent& event);
|
void OnButtonReset(wxCommandEvent& event);
|
||||||
void OnButtonBoxText(wxCommandEvent& event);
|
void OnButtonBoxText(wxCommandEvent& event);
|
||||||
void OnButtonLabelText(wxCommandEvent& event);
|
void OnButtonLabelText(wxCommandEvent& event);
|
||||||
|
void OnButtonLabelWithMarkupText(wxCommandEvent& event);
|
||||||
|
|
||||||
// reset all parameters
|
// reset all parameters
|
||||||
void Reset();
|
void Reset();
|
||||||
@@ -167,15 +176,19 @@ protected:
|
|||||||
|
|
||||||
// the check/radio boxes for styles
|
// the check/radio boxes for styles
|
||||||
wxCheckBox *m_chkVert,
|
wxCheckBox *m_chkVert,
|
||||||
*m_chkAutoResize;
|
*m_chkAutoResize,
|
||||||
|
*m_chkEllipsize,
|
||||||
|
*m_chkMarkup;
|
||||||
|
|
||||||
wxRadioBox *m_radioHAlign,
|
wxRadioBox *m_radioHAlign,
|
||||||
*m_radioVAlign;
|
*m_radioVAlign,
|
||||||
|
*m_radioEllipsize;
|
||||||
|
|
||||||
// the controls and the sizer containing them
|
// the controls and the sizer containing them
|
||||||
wxStaticBox *m_staticBox;
|
wxStaticBox *m_staticBox;
|
||||||
wxStaticBoxSizer *m_sizerStatBox;
|
wxStaticBoxSizer *m_sizerStatBox;
|
||||||
wxStaticText *m_statText;
|
wxStaticText *m_statText,
|
||||||
|
*m_statTextWithMarkup;
|
||||||
#if wxUSE_STATLINE
|
#if wxUSE_STATLINE
|
||||||
wxStaticLine *m_statLine;
|
wxStaticLine *m_statLine;
|
||||||
#endif // wxUSE_STATLINE
|
#endif // wxUSE_STATLINE
|
||||||
@@ -183,7 +196,8 @@ protected:
|
|||||||
|
|
||||||
// the text entries for command parameters
|
// the text entries for command parameters
|
||||||
wxTextCtrl *m_textBox,
|
wxTextCtrl *m_textBox,
|
||||||
*m_textLabel;
|
*m_textLabel,
|
||||||
|
*m_textLabelWithMarkup;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
@@ -197,6 +211,7 @@ private:
|
|||||||
BEGIN_EVENT_TABLE(StaticWidgetsPage, WidgetsPage)
|
BEGIN_EVENT_TABLE(StaticWidgetsPage, WidgetsPage)
|
||||||
EVT_BUTTON(StaticPage_Reset, StaticWidgetsPage::OnButtonReset)
|
EVT_BUTTON(StaticPage_Reset, StaticWidgetsPage::OnButtonReset)
|
||||||
EVT_BUTTON(StaticPage_LabelText, StaticWidgetsPage::OnButtonLabelText)
|
EVT_BUTTON(StaticPage_LabelText, StaticWidgetsPage::OnButtonLabelText)
|
||||||
|
EVT_BUTTON(StaticPage_LabelTextWithMarkup, StaticWidgetsPage::OnButtonLabelWithMarkupText)
|
||||||
EVT_BUTTON(StaticPage_BoxText, StaticWidgetsPage::OnButtonBoxText)
|
EVT_BUTTON(StaticPage_BoxText, StaticWidgetsPage::OnButtonBoxText)
|
||||||
|
|
||||||
EVT_CHECKBOX(wxID_ANY, StaticWidgetsPage::OnCheckOrRadioBox)
|
EVT_CHECKBOX(wxID_ANY, StaticWidgetsPage::OnCheckOrRadioBox)
|
||||||
@@ -225,11 +240,13 @@ StaticWidgetsPage::StaticWidgetsPage(WidgetsBookCtrl *book,
|
|||||||
#if wxUSE_STATLINE
|
#if wxUSE_STATLINE
|
||||||
m_statLine = (wxStaticLine *)NULL;
|
m_statLine = (wxStaticLine *)NULL;
|
||||||
#endif // wxUSE_STATLINE
|
#endif // wxUSE_STATLINE
|
||||||
m_statText = (wxStaticText *)NULL;
|
m_statText = m_statTextWithMarkup = (wxStaticText *)NULL;
|
||||||
|
|
||||||
m_staticBox = (wxStaticBox *)NULL;
|
m_staticBox = (wxStaticBox *)NULL;
|
||||||
m_sizerStatBox = (wxStaticBoxSizer *)NULL;
|
m_sizerStatBox = (wxStaticBoxSizer *)NULL;
|
||||||
m_sizerStatic = (wxSizer *)NULL;
|
m_sizerStatic = (wxSizer *)NULL;
|
||||||
|
|
||||||
|
m_textBox = m_textLabel = m_textLabelWithMarkup = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StaticWidgetsPage::CreateContent()
|
void StaticWidgetsPage::CreateContent()
|
||||||
@@ -241,6 +258,7 @@ void StaticWidgetsPage::CreateContent()
|
|||||||
|
|
||||||
wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
|
wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
|
||||||
|
|
||||||
|
m_chkMarkup = CreateCheckBoxAndAddToSizer(sizerLeft, _T("Support &markup"));
|
||||||
m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical line"));
|
m_chkVert = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Vertical line"));
|
||||||
m_chkAutoResize = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Fit to text"));
|
m_chkAutoResize = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Fit to text"));
|
||||||
sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
|
sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
|
||||||
@@ -269,6 +287,24 @@ void StaticWidgetsPage::CreateContent()
|
|||||||
sizerLeft->Add(m_radioHAlign, 0, wxGROW | wxALL, 5);
|
sizerLeft->Add(m_radioHAlign, 0, wxGROW | wxALL, 5);
|
||||||
sizerLeft->Add(m_radioVAlign, 0, wxGROW | wxALL, 5);
|
sizerLeft->Add(m_radioVAlign, 0, wxGROW | wxALL, 5);
|
||||||
|
|
||||||
|
|
||||||
|
sizerLeft->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
|
||||||
|
|
||||||
|
m_chkEllipsize = CreateCheckBoxAndAddToSizer(sizerLeft, _T("&Ellipsize"));
|
||||||
|
|
||||||
|
static const wxString ellipsizeMode[] =
|
||||||
|
{
|
||||||
|
_T("&start"),
|
||||||
|
_T("&middle"),
|
||||||
|
_T("&end"),
|
||||||
|
};
|
||||||
|
|
||||||
|
m_radioEllipsize = new wxRadioBox(this, wxID_ANY, _T("&Ellipsize mode"),
|
||||||
|
wxDefaultPosition, wxDefaultSize,
|
||||||
|
WXSIZEOF(ellipsizeMode), ellipsizeMode);
|
||||||
|
|
||||||
|
sizerLeft->Add(m_radioEllipsize, 0, wxGROW | wxALL, 5);
|
||||||
|
|
||||||
wxButton *btn = new wxButton(this, StaticPage_Reset, _T("&Reset"));
|
wxButton *btn = new wxButton(this, StaticPage_Reset, _T("&Reset"));
|
||||||
sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15);
|
sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15);
|
||||||
|
|
||||||
@@ -288,8 +324,23 @@ void StaticWidgetsPage::CreateContent()
|
|||||||
wxID_ANY, &m_textLabel);
|
wxID_ANY, &m_textLabel);
|
||||||
sizerMiddle->Add(sizerRow, 0, wxGROW | wxALL, 5);
|
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);
|
||||||
|
|
||||||
|
|
||||||
|
// final initializations
|
||||||
|
// NB: must be done _before_ calling CreateStatic()
|
||||||
|
Reset();
|
||||||
|
|
||||||
m_textBox->SetValue(_T("This is a box"));
|
m_textBox->SetValue(_T("This is a box"));
|
||||||
m_textLabel->SetValue(_T("And this is a label\ninside the box"));
|
m_textLabel->SetValue(_T("And this is a\n\tlabel inside the box with a &mnemonic.\n")
|
||||||
|
_T("Only this text is affected by the ellipsize settings."));
|
||||||
|
m_textLabelWithMarkup->SetValue(_T("Another label, this time <b>decorated</b> ")
|
||||||
|
_T("with <u>markup</u>; here you need entities ")
|
||||||
|
_T("for the symbols: < > & ' " ")
|
||||||
|
_T(" but you can still place &mnemonics..."));
|
||||||
|
|
||||||
// right pane
|
// right pane
|
||||||
wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL);
|
wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL);
|
||||||
@@ -303,9 +354,6 @@ void StaticWidgetsPage::CreateContent()
|
|||||||
sizerTop->Add(sizerMiddle, 0, wxGROW | wxALL, 10);
|
sizerTop->Add(sizerMiddle, 0, wxGROW | wxALL, 10);
|
||||||
sizerTop->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10);
|
sizerTop->Add(sizerRight, 1, wxGROW | (wxALL & ~wxRIGHT), 10);
|
||||||
|
|
||||||
// final initializations
|
|
||||||
Reset();
|
|
||||||
|
|
||||||
SetSizer(sizerTop);
|
SetSizer(sizerTop);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,6 +365,8 @@ void StaticWidgetsPage::Reset()
|
|||||||
{
|
{
|
||||||
m_chkVert->SetValue(false);
|
m_chkVert->SetValue(false);
|
||||||
m_chkAutoResize->SetValue(true);
|
m_chkAutoResize->SetValue(true);
|
||||||
|
m_chkEllipsize->SetValue(true);
|
||||||
|
m_chkMarkup->SetValue(true);
|
||||||
|
|
||||||
m_radioHAlign->SetSelection(StaticHAlign_Left);
|
m_radioHAlign->SetSelection(StaticHAlign_Left);
|
||||||
m_radioVAlign->SetSelection(StaticVAlign_Top);
|
m_radioVAlign->SetSelection(StaticVAlign_Top);
|
||||||
@@ -332,17 +382,26 @@ void StaticWidgetsPage::CreateStatic()
|
|||||||
// delete m_sizerStatBox; -- deleted by Remove()
|
// delete m_sizerStatBox; -- deleted by Remove()
|
||||||
m_sizerStatic->Remove(m_sizerStatBox);
|
m_sizerStatic->Remove(m_sizerStatBox);
|
||||||
delete m_statText;
|
delete m_statText;
|
||||||
|
delete m_statTextWithMarkup;
|
||||||
#if wxUSE_STATLINE
|
#if wxUSE_STATLINE
|
||||||
delete m_statLine;
|
delete m_statLine;
|
||||||
#endif // wxUSE_STATLINE
|
#endif // wxUSE_STATLINE
|
||||||
}
|
}
|
||||||
|
|
||||||
int flagsBox = 0,
|
int flagsBox = 0,
|
||||||
flagsText = ms_defaultFlags;
|
flagsText = ms_defaultFlags,
|
||||||
|
flagsDummyText = ms_defaultFlags;
|
||||||
|
|
||||||
if ( !m_chkAutoResize->GetValue() )
|
if ( !m_chkAutoResize->GetValue() )
|
||||||
{
|
{
|
||||||
flagsText |= wxST_NO_AUTORESIZE;
|
flagsText |= wxST_NO_AUTORESIZE;
|
||||||
|
flagsDummyText |= wxST_NO_AUTORESIZE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( m_chkMarkup->GetValue() )
|
||||||
|
{
|
||||||
|
flagsText |= wxST_MARKUP;
|
||||||
|
flagsDummyText |= wxST_MARKUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
int align = 0;
|
int align = 0;
|
||||||
@@ -384,6 +443,29 @@ void StaticWidgetsPage::CreateStatic()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( m_chkEllipsize->GetValue() )
|
||||||
|
{
|
||||||
|
switch ( m_radioEllipsize->GetSelection() )
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
wxFAIL_MSG(_T("unexpected radiobox selection"));
|
||||||
|
// fall through
|
||||||
|
|
||||||
|
case StaticEllipsize_Start:
|
||||||
|
flagsDummyText |= wxST_ELLIPSIZE_START;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case StaticEllipsize_Middle:
|
||||||
|
flagsDummyText |= wxST_ELLIPSIZE_MIDDLE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case StaticEllipsize_End:
|
||||||
|
flagsDummyText |= wxST_ELLIPSIZE_END;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
flagsDummyText |= align;
|
||||||
flagsText |= align;
|
flagsText |= align;
|
||||||
flagsBox |= align;
|
flagsBox |= align;
|
||||||
|
|
||||||
@@ -395,7 +477,11 @@ void StaticWidgetsPage::CreateStatic()
|
|||||||
|
|
||||||
m_statText = new MyStaticText(this, wxID_ANY, m_textLabel->GetValue(),
|
m_statText = new MyStaticText(this, wxID_ANY, m_textLabel->GetValue(),
|
||||||
wxDefaultPosition, wxDefaultSize,
|
wxDefaultPosition, wxDefaultSize,
|
||||||
flagsText);
|
flagsDummyText);
|
||||||
|
m_statTextWithMarkup = new wxStaticText(this, wxID_ANY,
|
||||||
|
m_textLabelWithMarkup->GetValue(),
|
||||||
|
wxDefaultPosition, wxDefaultSize,
|
||||||
|
flagsText);
|
||||||
|
|
||||||
#if wxUSE_STATLINE
|
#if wxUSE_STATLINE
|
||||||
m_statLine = new wxStaticLine(this, wxID_ANY,
|
m_statLine = new wxStaticLine(this, wxID_ANY,
|
||||||
@@ -407,7 +493,7 @@ void StaticWidgetsPage::CreateStatic()
|
|||||||
#if wxUSE_STATLINE
|
#if wxUSE_STATLINE
|
||||||
m_sizerStatBox->Add(m_statLine, 0, wxGROW | wxALL, 5);
|
m_sizerStatBox->Add(m_statLine, 0, wxGROW | wxALL, 5);
|
||||||
#endif // wxUSE_STATLINE
|
#endif // wxUSE_STATLINE
|
||||||
m_sizerStatBox->Add(0, 0, 1);
|
m_sizerStatBox->Add(m_statTextWithMarkup, 1, wxGROW | wxALL, 5);
|
||||||
|
|
||||||
m_sizerStatic->Add(m_sizerStatBox, 1, wxGROW);
|
m_sizerStatic->Add(m_sizerStatBox, 1, wxGROW);
|
||||||
|
|
||||||
@@ -425,8 +511,13 @@ void StaticWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event))
|
|||||||
CreateStatic();
|
CreateStatic();
|
||||||
}
|
}
|
||||||
|
|
||||||
void StaticWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))
|
void StaticWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
|
if (event.GetEventObject() == wx_static_cast(wxObject*, m_chkEllipsize))
|
||||||
|
{
|
||||||
|
m_radioEllipsize->Enable(event.IsChecked());
|
||||||
|
}
|
||||||
|
|
||||||
CreateStatic();
|
CreateStatic();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -435,8 +526,29 @@ void StaticWidgetsPage::OnButtonBoxText(wxCommandEvent& WXUNUSED(event))
|
|||||||
m_sizerStatBox->GetStaticBox()->SetLabel(m_textBox->GetValue());
|
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))
|
void StaticWidgetsPage::OnButtonLabelText(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
m_statText->SetLabel(m_textLabel->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_statText->GetLabel().c_str());
|
||||||
|
wxLogMessage(wxT("The label text is '%s'"),
|
||||||
|
m_statText->GetLabelText().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -120,13 +120,6 @@ void wxControlBase::InitCommandEvent(wxCommandEvent& event) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wxControlBase::SetLabel( const wxString &label )
|
|
||||||
{
|
|
||||||
InvalidateBestSize();
|
|
||||||
wxWindow::SetLabel(label);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxControlBase::SetFont(const wxFont& font)
|
bool wxControlBase::SetFont(const wxFont& font)
|
||||||
{
|
{
|
||||||
InvalidateBestSize();
|
InvalidateBestSize();
|
||||||
@@ -159,6 +152,12 @@ void wxControlBase::DoUpdateWindowUI(wxUpdateUIEvent& event)
|
|||||||
#endif // wxUSE_RADIOBTN
|
#endif // wxUSE_RADIOBTN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
wxString wxControlBase::RemoveMnemonics(const wxString& str)
|
||||||
|
{
|
||||||
|
return wxStripMenuCodes(str, wxStrip_Mnemonics);
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxStaticBitmap
|
// wxStaticBitmap
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -38,61 +38,8 @@
|
|||||||
|
|
||||||
#include "wx/statline.h"
|
#include "wx/statline.h"
|
||||||
#include "wx/sysopt.h"
|
#include "wx/sysopt.h"
|
||||||
|
#include "wx/private/stattext.h"
|
||||||
|
|
||||||
#if wxUSE_STATTEXT
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxTextWrapper
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// this class is used to wrap the text on word boundary: wrapping is done by
|
|
||||||
// calling OnStartLine() and OnOutputLine() functions
|
|
||||||
class wxTextWrapper
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxTextWrapper() { m_eol = false; }
|
|
||||||
|
|
||||||
// win is used for getting the font, text is the text to wrap, width is the
|
|
||||||
// max line width or -1 to disable wrapping
|
|
||||||
void Wrap(wxWindow *win, const wxString& text, int widthMax);
|
|
||||||
|
|
||||||
// we don't need it, but just to avoid compiler warnings
|
|
||||||
virtual ~wxTextWrapper() { }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// line may be empty
|
|
||||||
virtual void OnOutputLine(const wxString& line) = 0;
|
|
||||||
|
|
||||||
// called at the start of every new line (except the very first one)
|
|
||||||
virtual void OnNewLine() { }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// call OnOutputLine() and set m_eol to true
|
|
||||||
void DoOutputLine(const wxString& line)
|
|
||||||
{
|
|
||||||
OnOutputLine(line);
|
|
||||||
|
|
||||||
m_eol = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// this function is a destructive inspector: when it returns true it also
|
|
||||||
// resets the flag to false so calling it again woulnd't return true any
|
|
||||||
// more
|
|
||||||
bool IsStartOfNewLine()
|
|
||||||
{
|
|
||||||
if ( !m_eol )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
m_eol = false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool m_eol;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_STATTEXT
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxDialogBase
|
// wxDialogBase
|
||||||
@@ -126,58 +73,6 @@ void wxDialogBase::Init()
|
|||||||
|
|
||||||
#if wxUSE_STATTEXT
|
#if wxUSE_STATTEXT
|
||||||
|
|
||||||
void wxTextWrapper::Wrap(wxWindow *win, const wxString& text, int widthMax)
|
|
||||||
{
|
|
||||||
const wxChar *lastSpace = NULL;
|
|
||||||
wxString line;
|
|
||||||
|
|
||||||
const wxChar *lineStart = text.c_str();
|
|
||||||
for ( const wxChar *p = lineStart; ; p++ )
|
|
||||||
{
|
|
||||||
if ( IsStartOfNewLine() )
|
|
||||||
{
|
|
||||||
OnNewLine();
|
|
||||||
|
|
||||||
lastSpace = NULL;
|
|
||||||
line.clear();
|
|
||||||
lineStart = p;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( *p == _T('\n') || *p == _T('\0') )
|
|
||||||
{
|
|
||||||
DoOutputLine(line);
|
|
||||||
|
|
||||||
if ( *p == _T('\0') )
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else // not EOL
|
|
||||||
{
|
|
||||||
if ( *p == _T(' ') )
|
|
||||||
lastSpace = p;
|
|
||||||
|
|
||||||
line += *p;
|
|
||||||
|
|
||||||
if ( widthMax >= 0 && lastSpace )
|
|
||||||
{
|
|
||||||
int width;
|
|
||||||
win->GetTextExtent(line, &width, NULL);
|
|
||||||
|
|
||||||
if ( width > widthMax )
|
|
||||||
{
|
|
||||||
// remove the last word from this line
|
|
||||||
line.erase(lastSpace - lineStart, p + 1 - lineStart);
|
|
||||||
DoOutputLine(line);
|
|
||||||
|
|
||||||
// go back to the last word of this line which we didn't
|
|
||||||
// output yet
|
|
||||||
p = lastSpace;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//else: no wrapping at all or impossible to wrap
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class wxTextSizerWrapper : public wxTextWrapper
|
class wxTextSizerWrapper : public wxTextWrapper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -238,45 +133,6 @@ wxSizer *wxDialogBase::CreateTextSizer(const wxString& message)
|
|||||||
return wrapper.CreateSizer(text, widthMax);
|
return wrapper.CreateSizer(text, widthMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
class wxLabelWrapper : public wxTextWrapper
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
void WrapLabel(wxWindow *text, int widthMax)
|
|
||||||
{
|
|
||||||
m_text.clear();
|
|
||||||
Wrap(text, text->GetLabel(), widthMax);
|
|
||||||
text->SetLabel(m_text);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual void OnOutputLine(const wxString& line)
|
|
||||||
{
|
|
||||||
m_text += line;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void OnNewLine()
|
|
||||||
{
|
|
||||||
m_text += _T('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxString m_text;
|
|
||||||
};
|
|
||||||
|
|
||||||
// NB: don't "factor out" the scope operator, SGI MIPSpro 7.3 (but not 7.4)
|
|
||||||
// gets confused if it doesn't immediately follow the class name
|
|
||||||
void
|
|
||||||
#if defined(__WXGTK__) && !defined(__WXUNIVERSAL__)
|
|
||||||
wxStaticText::
|
|
||||||
#else
|
|
||||||
wxStaticTextBase::
|
|
||||||
#endif
|
|
||||||
Wrap(int width)
|
|
||||||
{
|
|
||||||
wxLabelWrapper wrapper;
|
|
||||||
wrapper.WrapLabel(this, width);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_STATTEXT
|
#endif // wxUSE_STATTEXT
|
||||||
|
|
||||||
wxSizer *wxDialogBase::CreateButtonSizer(long flags)
|
wxSizer *wxDialogBase::CreateButtonSizer(long flags)
|
||||||
|
480
src/common/stattextcmn.cpp
Normal file
480
src/common/stattextcmn.cpp
Normal file
@@ -0,0 +1,480 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: src/common/stattextcmn.cpp
|
||||||
|
// Purpose: common (to all ports) wxStaticText functions
|
||||||
|
// Author: Vadim Zeitlin, Francesco Montorsi
|
||||||
|
// Created: 2007-01-07 (extracted from dlgcmn.cpp)
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) 1999-2006 Vadim Zeitlin
|
||||||
|
// (c) 2007 Francesco Montorsi
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// declarations
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// For compilers that support precompilation, includes "wx.h".
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "wx/private/stattext.h"
|
||||||
|
|
||||||
|
#ifndef WX_PRECOMP
|
||||||
|
#include "wx/button.h"
|
||||||
|
#include "wx/dcclient.h"
|
||||||
|
#include "wx/intl.h"
|
||||||
|
#include "wx/settings.h"
|
||||||
|
#include "wx/stattext.h"
|
||||||
|
#include "wx/sizer.h"
|
||||||
|
#include "wx/containr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_STATTEXT
|
||||||
|
|
||||||
|
const wxChar *wxMarkupEntities[][wxMARKUP_ENTITY_MAX] =
|
||||||
|
{
|
||||||
|
// the entities handled by SetLabel() when wxST_MARKUP is used and their referenced string
|
||||||
|
|
||||||
|
{ wxT("&"), wxT("<"), wxT(">"), wxT("'"), wxT(""") },
|
||||||
|
{ wxT("&"), wxT("<"), wxT(">"), wxT("'"), wxT("\"") }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxTextWrapper
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxTextWrapper::Wrap(wxWindow *win, const wxString& text, int widthMax)
|
||||||
|
{
|
||||||
|
const wxChar *lastSpace = NULL;
|
||||||
|
wxString line;
|
||||||
|
|
||||||
|
const wxChar *lineStart = text.c_str();
|
||||||
|
for ( const wxChar *p = lineStart; ; p++ )
|
||||||
|
{
|
||||||
|
if ( IsStartOfNewLine() )
|
||||||
|
{
|
||||||
|
OnNewLine();
|
||||||
|
|
||||||
|
lastSpace = NULL;
|
||||||
|
line.clear();
|
||||||
|
lineStart = p;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( *p == _T('\n') || *p == _T('\0') )
|
||||||
|
{
|
||||||
|
DoOutputLine(line);
|
||||||
|
|
||||||
|
if ( *p == _T('\0') )
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else // not EOL
|
||||||
|
{
|
||||||
|
if ( *p == _T(' ') )
|
||||||
|
lastSpace = p;
|
||||||
|
|
||||||
|
line += *p;
|
||||||
|
|
||||||
|
if ( widthMax >= 0 && lastSpace )
|
||||||
|
{
|
||||||
|
int width;
|
||||||
|
win->GetTextExtent(line, &width, NULL);
|
||||||
|
|
||||||
|
if ( width > widthMax )
|
||||||
|
{
|
||||||
|
// remove the last word from this line
|
||||||
|
line.erase(lastSpace - lineStart, p + 1 - lineStart);
|
||||||
|
DoOutputLine(line);
|
||||||
|
|
||||||
|
// go back to the last word of this line which we didn't
|
||||||
|
// output yet
|
||||||
|
p = lastSpace;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//else: no wrapping at all or impossible to wrap
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxLabelWrapper: helper class for wxStaticTextBase::Wrap()
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class wxLabelWrapper : public wxTextWrapper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void WrapLabel(wxWindow *text, int widthMax)
|
||||||
|
{
|
||||||
|
m_text.clear();
|
||||||
|
Wrap(text, text->GetLabel(), widthMax);
|
||||||
|
text->SetLabel(m_text);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void OnOutputLine(const wxString& line)
|
||||||
|
{
|
||||||
|
m_text += line;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void OnNewLine()
|
||||||
|
{
|
||||||
|
m_text += _T('\n');
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxString m_text;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxStaticTextBase
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxStaticTextBase::Wrap(int width)
|
||||||
|
{
|
||||||
|
wxLabelWrapper wrapper;
|
||||||
|
wrapper.WrapLabel(this, width);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString wxStaticTextBase::GetLabelText() const
|
||||||
|
{
|
||||||
|
wxString ret(GetLabel());
|
||||||
|
|
||||||
|
if (HasFlag(wxST_MARKUP))
|
||||||
|
ret = RemoveMarkup(ret);
|
||||||
|
return RemoveMnemonics(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*static*/
|
||||||
|
wxString wxStaticTextBase::RemoveMarkup(const wxString& text)
|
||||||
|
{
|
||||||
|
// strip out of "text" the markup for platforms which don't support it natively
|
||||||
|
bool inside_tag = false;
|
||||||
|
|
||||||
|
wxString label;
|
||||||
|
const wxChar *source = text;
|
||||||
|
for (size_t i=0, max=text.length(); i<max; i++)
|
||||||
|
{
|
||||||
|
switch (source[i])
|
||||||
|
{
|
||||||
|
case wxT('<'):
|
||||||
|
if (inside_tag)
|
||||||
|
{
|
||||||
|
wxLogDebug(wxT("Invalid markup !"));
|
||||||
|
return wxEmptyString;
|
||||||
|
}
|
||||||
|
inside_tag = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case wxT('>'):
|
||||||
|
if (!inside_tag)
|
||||||
|
{
|
||||||
|
wxLogDebug(wxT("Invalid markup !"));
|
||||||
|
return wxEmptyString;
|
||||||
|
}
|
||||||
|
inside_tag = false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case wxT('&'):
|
||||||
|
{
|
||||||
|
if (i == max-1)
|
||||||
|
{
|
||||||
|
wxLogDebug(wxT("Cannot use & as last character of the string '%s'"),
|
||||||
|
text.c_str());
|
||||||
|
return wxEmptyString;
|
||||||
|
}
|
||||||
|
|
||||||
|
// is this ampersand introducing a mnemonic or rather an entity?
|
||||||
|
bool isMnemonic = true;
|
||||||
|
for (size_t j=0; j < wxMARKUP_ENTITY_MAX; j++)
|
||||||
|
{
|
||||||
|
const wxChar *entity = wxMarkupEntities[wxMARKUP_ELEMENT_NAME][j];
|
||||||
|
size_t entityLen = wxStrlen(entity);
|
||||||
|
|
||||||
|
if (max - i >= entityLen &&
|
||||||
|
wxStrncmp(entity, &source[i], entityLen) == 0)
|
||||||
|
{
|
||||||
|
// replace the &entity; string with the entity reference
|
||||||
|
label << wxMarkupEntities[wxMARKUP_ELEMENT_VALUE][j];
|
||||||
|
|
||||||
|
// little exception: when the entity reference is "&"
|
||||||
|
// (i.e. when entity is "&"), substitute it with &&
|
||||||
|
// instead of a single ampersand:
|
||||||
|
if (*wxMarkupEntities[wxMARKUP_ELEMENT_VALUE][j] == wxT('&'))
|
||||||
|
label << wxT('&');
|
||||||
|
i += entityLen - 1; // the -1 is because main for()
|
||||||
|
// loop already increments i
|
||||||
|
isMnemonic = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isMnemonic)
|
||||||
|
label << text[i];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (!inside_tag)
|
||||||
|
label << text[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
wxString wxStaticTextBase::EscapeMarkup(const wxString& text)
|
||||||
|
{
|
||||||
|
wxString ret;
|
||||||
|
|
||||||
|
for (const wxChar *source = text; *source != wxT('\0'); source++)
|
||||||
|
{
|
||||||
|
bool isEntity = false;
|
||||||
|
|
||||||
|
// search in the list of the entities and eventually escape this character
|
||||||
|
for (size_t j=0; j < wxMARKUP_ENTITY_MAX; j++)
|
||||||
|
{
|
||||||
|
if (*source == *wxMarkupEntities[wxMARKUP_ELEMENT_VALUE][j])
|
||||||
|
{
|
||||||
|
ret << wxMarkupEntities[wxMARKUP_ELEMENT_NAME][j];
|
||||||
|
isEntity = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isEntity)
|
||||||
|
ret << *source; // this character does not need to be escaped
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxStaticTextBase - generic implementation for wxST_ELLIPSIZE_* support
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxStaticTextBase::UpdateLabel()
|
||||||
|
{
|
||||||
|
if (!IsEllipsized())
|
||||||
|
return;
|
||||||
|
|
||||||
|
wxString newlabel = GetEllipsizedLabelWithoutMarkup();
|
||||||
|
|
||||||
|
// we need to touch the "real" label (i.e. the text set inside the control,
|
||||||
|
// using port-specific functions) instead of the string returned by GetLabel().
|
||||||
|
//
|
||||||
|
// In fact, we must be careful not to touch the original label passed to
|
||||||
|
// SetLabel() otherwise GetLabel() will behave in a strange way to the user
|
||||||
|
// (e.g. returning a "Ver...ing" instead of "Very long string") !
|
||||||
|
if (newlabel == DoGetLabel())
|
||||||
|
return;
|
||||||
|
DoSetLabel(newlabel);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString wxStaticTextBase::GetEllipsizedLabelWithoutMarkup() const
|
||||||
|
{
|
||||||
|
// this function should be used only by ports which do not support
|
||||||
|
// ellipsis in static texts: we first remove markup (which cannot
|
||||||
|
// be handled safely by Ellipsize()) and then ellipsize the result.
|
||||||
|
|
||||||
|
wxString ret(m_labelOrig);
|
||||||
|
|
||||||
|
// the order of the following two blocks is important!
|
||||||
|
|
||||||
|
if (HasFlag(wxST_MARKUP))
|
||||||
|
ret = RemoveMarkup(ret);
|
||||||
|
|
||||||
|
if (IsEllipsized())
|
||||||
|
ret = Ellipsize(ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxELLIPSE_REPLACEMENT wxT("...")
|
||||||
|
|
||||||
|
wxString wxStaticTextBase::Ellipsize(const wxString& label) const
|
||||||
|
{
|
||||||
|
wxSize sz(GetSize());
|
||||||
|
if (sz.GetWidth() < 2 || sz.GetHeight() < 2)
|
||||||
|
{
|
||||||
|
// the size of this window is not valid (yet)
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxClientDC dc(wx_const_cast(wxStaticTextBase*, this));
|
||||||
|
dc.SetFont(GetFont());
|
||||||
|
|
||||||
|
wxArrayInt charOffsets;
|
||||||
|
wxString ret;
|
||||||
|
|
||||||
|
// these cannot be cached as they can change because of e.g. a font change
|
||||||
|
int replacementWidth = dc.GetTextExtent(wxELLIPSE_REPLACEMENT).GetWidth();
|
||||||
|
int marginWidth = dc.GetCharWidth()*2;
|
||||||
|
|
||||||
|
// handle correctly labels with newlines
|
||||||
|
wxString curLine;
|
||||||
|
wxSize reqsize;
|
||||||
|
size_t len;
|
||||||
|
for ( const wxChar *pc = label; ; pc++ )
|
||||||
|
{
|
||||||
|
switch ( *pc )
|
||||||
|
{
|
||||||
|
case _T('\n'):
|
||||||
|
case _T('\0'):
|
||||||
|
len = curLine.length();
|
||||||
|
if (len > 0 &&
|
||||||
|
dc.GetPartialTextExtents(curLine, charOffsets))
|
||||||
|
{
|
||||||
|
wxASSERT(charOffsets.GetCount() == len);
|
||||||
|
|
||||||
|
size_t totalWidth = charOffsets.Last();
|
||||||
|
if ( totalWidth > (size_t)sz.GetWidth() )
|
||||||
|
{
|
||||||
|
// we need to ellipsize this row
|
||||||
|
int excessPixels = totalWidth - sz.GetWidth() +
|
||||||
|
replacementWidth +
|
||||||
|
marginWidth; // security margin (NEEDED!)
|
||||||
|
|
||||||
|
// remove characters in excess
|
||||||
|
size_t initialChar, // index of first char to erase
|
||||||
|
nChars; // how many chars do we need to erase?
|
||||||
|
if (HasFlag(wxST_ELLIPSIZE_START))
|
||||||
|
{
|
||||||
|
initialChar = 0;
|
||||||
|
for (nChars=0;
|
||||||
|
nChars < len && charOffsets[nChars] < excessPixels;
|
||||||
|
nChars++)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
else if (HasFlag(wxST_ELLIPSIZE_MIDDLE))
|
||||||
|
{
|
||||||
|
// the start & end of the removed span of chars
|
||||||
|
initialChar = len/2;
|
||||||
|
size_t endChar = len/2;
|
||||||
|
|
||||||
|
int removed = 0;
|
||||||
|
for ( ; removed < excessPixels; )
|
||||||
|
{
|
||||||
|
if (initialChar > 0)
|
||||||
|
{
|
||||||
|
// width of the initialChar-th character
|
||||||
|
int width = charOffsets[initialChar] -
|
||||||
|
charOffsets[initialChar-1];
|
||||||
|
|
||||||
|
// remove the initialChar-th character
|
||||||
|
removed += width;
|
||||||
|
initialChar--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endChar < len - 1 &&
|
||||||
|
removed < excessPixels)
|
||||||
|
{
|
||||||
|
// width of the (endChar+1)-th character
|
||||||
|
int width = charOffsets[endChar+1] -
|
||||||
|
charOffsets[endChar];
|
||||||
|
|
||||||
|
// remove the endChar-th character
|
||||||
|
removed += width;
|
||||||
|
endChar++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (initialChar == 0 && endChar == len-1)
|
||||||
|
{
|
||||||
|
nChars = len+1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
initialChar++;
|
||||||
|
nChars = endChar - initialChar + 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxASSERT(HasFlag(wxST_ELLIPSIZE_END));
|
||||||
|
wxASSERT(len > 0);
|
||||||
|
|
||||||
|
int maxWidth = totalWidth - excessPixels;
|
||||||
|
for (initialChar=0;
|
||||||
|
initialChar < len &&
|
||||||
|
charOffsets[initialChar] < maxWidth;
|
||||||
|
initialChar++)
|
||||||
|
;
|
||||||
|
|
||||||
|
if (initialChar == 0)
|
||||||
|
{
|
||||||
|
nChars = len;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
initialChar--; // go back one character
|
||||||
|
nChars = len - initialChar;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nChars > len)
|
||||||
|
{
|
||||||
|
// need to remove the entire row!
|
||||||
|
curLine.clear();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// erase nChars characters after initialChar (included):
|
||||||
|
curLine.erase(initialChar, nChars+1);
|
||||||
|
|
||||||
|
// if there is space for the replacement dots, add them
|
||||||
|
if (sz.GetWidth() > replacementWidth)
|
||||||
|
curLine.insert(initialChar, wxELLIPSE_REPLACEMENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
// if everything was ok, we should have shortened this line
|
||||||
|
// enough to make it fit in sz.GetWidth():
|
||||||
|
wxASSERT(dc.GetTextExtent(curLine).GetWidth() < sz.GetWidth());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// add this (ellipsized) row to the rest of the label
|
||||||
|
ret << curLine << *pc;
|
||||||
|
curLine.clear();
|
||||||
|
|
||||||
|
if ( *pc == _T('\0') )
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
// we need to remove mnemonics from the label for
|
||||||
|
// correct calculations
|
||||||
|
case _T('&'):
|
||||||
|
// pc+1 is safe: at worst we'll hit the \0
|
||||||
|
if (*(pc+1) == _T('&'))
|
||||||
|
curLine += _T('&'); // && becomes &
|
||||||
|
//else: remove this ampersand
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
// we need also to expand tabs to properly calc their size
|
||||||
|
case _T('\t'):
|
||||||
|
// Windows natively expands the TABs to 6 spaces. Do the same:
|
||||||
|
curLine += wxT(" ");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
curLine += *pc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_STATTEXT
|
@@ -203,6 +203,9 @@ void wxCheckBox::SetLabel( const wxString& label )
|
|||||||
{
|
{
|
||||||
wxCHECK_RET( m_widgetLabel != NULL, wxT("invalid checkbox") );
|
wxCHECK_RET( m_widgetLabel != NULL, wxT("invalid checkbox") );
|
||||||
|
|
||||||
|
// save the label inside m_label in case user calls GetLabel() later
|
||||||
|
wxControl::SetLabel(label);
|
||||||
|
|
||||||
GTKSetLabelForLabel(GTK_LABEL(m_widgetLabel), label);
|
GTKSetLabelForLabel(GTK_LABEL(m_widgetLabel), label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -22,6 +22,9 @@
|
|||||||
#include "wx/fontutil.h"
|
#include "wx/fontutil.h"
|
||||||
#include "wx/gtk/private.h"
|
#include "wx/gtk/private.h"
|
||||||
|
|
||||||
|
#include "wx/private/stattext.h"
|
||||||
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// wxControl implementation
|
// wxControl implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -89,30 +92,22 @@ void wxControl::PostCreation(const wxSize& size)
|
|||||||
// wxControl dealing with labels
|
// wxControl dealing with labels
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
void wxControl::SetLabel( const wxString &label )
|
|
||||||
{
|
|
||||||
// keep the original string internally to be able to return it later (for
|
|
||||||
// consistency with the other ports)
|
|
||||||
m_label = label;
|
|
||||||
|
|
||||||
InvalidateBestSize();
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString wxControl::GetLabel() const
|
|
||||||
{
|
|
||||||
return m_label;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxControl::GTKSetLabelForLabel(GtkLabel *w, const wxString& label)
|
void wxControl::GTKSetLabelForLabel(GtkLabel *w, const wxString& label)
|
||||||
{
|
{
|
||||||
// don't call the virtual function which might call this one back again
|
// save the original label
|
||||||
wxControl::SetLabel(label);
|
wxControlBase::SetLabel(label);
|
||||||
|
|
||||||
const wxString labelGTK = GTKConvertMnemonics(label);
|
const wxString labelGTK = GTKConvertMnemonics(label);
|
||||||
|
|
||||||
gtk_label_set_text_with_mnemonic(w, wxGTK_CONV(labelGTK));
|
gtk_label_set_text_with_mnemonic(w, wxGTK_CONV(labelGTK));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxControl::GTKSetLabelWithMarkupForLabel(GtkLabel *w, const wxString& label)
|
||||||
|
{
|
||||||
|
const wxString labelGTK = GTKConvertMnemonicsWithMarkup(label);
|
||||||
|
gtk_label_set_markup_with_mnemonic(w, wxGTK_CONV(labelGTK));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// GtkFrame helpers
|
// GtkFrame helpers
|
||||||
//
|
//
|
||||||
@@ -130,8 +125,8 @@ GtkWidget* wxControl::GTKCreateFrame(const wxString& label)
|
|||||||
GtkWidget* framewidget = gtk_frame_new(NULL);
|
GtkWidget* framewidget = gtk_frame_new(NULL);
|
||||||
gtk_frame_set_label_widget(GTK_FRAME(framewidget), labelwidget);
|
gtk_frame_set_label_widget(GTK_FRAME(framewidget), labelwidget);
|
||||||
|
|
||||||
return framewidget; //note that the label is already set so you'll
|
return framewidget; // note that the label is already set so you'll
|
||||||
//only need to call wxControl::SetLabel afterwards
|
// only need to call wxControl::SetLabel afterwards
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxControl::GTKSetLabelForFrame(GtkFrame *w, const wxString& label)
|
void wxControl::GTKSetLabelForFrame(GtkFrame *w, const wxString& label)
|
||||||
@@ -154,22 +149,19 @@ void wxControl::GTKFrameSetMnemonicWidget(GtkFrame* w, GtkWidget* widget)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// worker function implementing both GTKConvert/RemoveMnemonics()
|
// worker function implementing GTK*Mnemonics() functions
|
||||||
//
|
|
||||||
// notice that under GTK+ 1 we only really need to support MNEMONICS_REMOVE as
|
|
||||||
// it doesn't support mnemonics anyhow but this would make the code so ugly
|
|
||||||
// that we do the same thing for GKT+ 1 and 2
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
enum MnemonicsFlag
|
enum MnemonicsFlag
|
||||||
{
|
{
|
||||||
MNEMONICS_REMOVE,
|
MNEMONICS_REMOVE,
|
||||||
MNEMONICS_CONVERT
|
MNEMONICS_CONVERT,
|
||||||
|
MNEMONICS_CONVERT_MARKUP
|
||||||
};
|
};
|
||||||
|
|
||||||
static wxString GTKProcessMnemonics(const wxString& label, MnemonicsFlag flag)
|
static wxString GTKProcessMnemonics(const wxChar* label, MnemonicsFlag flag)
|
||||||
{
|
{
|
||||||
const size_t len = label.length();
|
const size_t len = wxStrlen(label);
|
||||||
wxString labelGTK;
|
wxString labelGTK;
|
||||||
labelGTK.reserve(len);
|
labelGTK.reserve(len);
|
||||||
for ( size_t i = 0; i < len; i++ )
|
for ( size_t i = 0; i < len; i++ )
|
||||||
@@ -182,21 +174,50 @@ static wxString GTKProcessMnemonics(const wxString& label, MnemonicsFlag flag)
|
|||||||
if ( i == len - 1 )
|
if ( i == len - 1 )
|
||||||
{
|
{
|
||||||
// "&" at the end of string is an error
|
// "&" at the end of string is an error
|
||||||
wxLogDebug(wxT("Invalid label \"%s\"."), label.c_str());
|
wxLogDebug(wxT("Invalid label \"%s\"."), label);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( flag == MNEMONICS_CONVERT_MARKUP )
|
||||||
|
{
|
||||||
|
bool isMnemonic = true;
|
||||||
|
|
||||||
|
// is this ampersand introducing a mnemonic or rather an entity?
|
||||||
|
for (size_t j=0; j < wxMARKUP_ENTITY_MAX; j++)
|
||||||
|
{
|
||||||
|
const wxChar *entity = wxMarkupEntities[wxMARKUP_ELEMENT_NAME][j];
|
||||||
|
size_t entityLen = wxStrlen(entity);
|
||||||
|
|
||||||
|
if (len - i >= entityLen &&
|
||||||
|
wxStrncmp(entity, &label[i], entityLen) == 0)
|
||||||
|
{
|
||||||
|
labelGTK << entity;
|
||||||
|
i += entityLen - 1; // the -1 is because main for()
|
||||||
|
// loop already increments i
|
||||||
|
isMnemonic = false;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isMnemonic)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
ch = label[++i]; // skip '&' itself
|
ch = label[++i]; // skip '&' itself
|
||||||
switch ( ch )
|
switch ( ch )
|
||||||
{
|
{
|
||||||
case wxT('&'):
|
case wxT('&'):
|
||||||
// special case: "&&" is not a mnemonic at all but just
|
// special case: "&&" is not a mnemonic at all but just
|
||||||
// an escaped "&"
|
// an escaped "&"
|
||||||
labelGTK += wxT('&');
|
if ( flag == MNEMONICS_CONVERT_MARKUP )
|
||||||
|
labelGTK += wxT("&");
|
||||||
|
else
|
||||||
|
labelGTK += wxT('&');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case wxT('_'):
|
case wxT('_'):
|
||||||
if ( flag == MNEMONICS_CONVERT )
|
if ( flag != MNEMONICS_REMOVE )
|
||||||
{
|
{
|
||||||
// '_' can't be a GTK mnemonic apparently so
|
// '_' can't be a GTK mnemonic apparently so
|
||||||
// replace it with something similar
|
// replace it with something similar
|
||||||
@@ -206,14 +227,14 @@ static wxString GTKProcessMnemonics(const wxString& label, MnemonicsFlag flag)
|
|||||||
//else: fall through
|
//else: fall through
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if ( flag == MNEMONICS_CONVERT )
|
if ( flag != MNEMONICS_REMOVE )
|
||||||
labelGTK += wxT('_');
|
labelGTK += wxT('_');
|
||||||
labelGTK += ch;
|
labelGTK += ch;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case wxT('_'):
|
case wxT('_'):
|
||||||
if ( flag == MNEMONICS_CONVERT )
|
if ( flag != MNEMONICS_REMOVE )
|
||||||
{
|
{
|
||||||
// escape any existing underlines in the string so that
|
// escape any existing underlines in the string so that
|
||||||
// they don't become mnemonics accidentally
|
// they don't become mnemonics accidentally
|
||||||
@@ -242,6 +263,12 @@ wxString wxControl::GTKConvertMnemonics(const wxString& label)
|
|||||||
return GTKProcessMnemonics(label, MNEMONICS_CONVERT);
|
return GTKProcessMnemonics(label, MNEMONICS_CONVERT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
wxString wxControl::GTKConvertMnemonicsWithMarkup(const wxString& label)
|
||||||
|
{
|
||||||
|
return GTKProcessMnemonics(label, MNEMONICS_CONVERT_MARKUP);
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxControl styles (a.k.a. attributes)
|
// wxControl styles (a.k.a. attributes)
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -41,7 +41,7 @@ wxStaticText::wxStaticText(wxWindow *parent,
|
|||||||
long style,
|
long style,
|
||||||
const wxString &name)
|
const wxString &name)
|
||||||
{
|
{
|
||||||
Create( parent, id, label, pos, size, style, name );
|
Create( parent, id, label, pos, size, style, name );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxStaticText::Create(wxWindow *parent,
|
bool wxStaticText::Create(wxWindow *parent,
|
||||||
@@ -61,9 +61,7 @@ bool wxStaticText::Create(wxWindow *parent,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxString labelGTK = GTKConvertMnemonics(label);
|
m_widget = gtk_label_new(NULL);
|
||||||
m_label = label;
|
|
||||||
m_widget = gtk_label_new_with_mnemonic(wxGTK_CONV(labelGTK));
|
|
||||||
|
|
||||||
GtkJustification justify;
|
GtkJustification justify;
|
||||||
if ( style & wxALIGN_CENTER )
|
if ( style & wxALIGN_CENTER )
|
||||||
@@ -89,6 +87,24 @@ bool wxStaticText::Create(wxWindow *parent,
|
|||||||
|
|
||||||
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
|
gtk_label_set_line_wrap( GTK_LABEL(m_widget), TRUE );
|
||||||
|
|
||||||
|
#ifdef __WXGTK26__
|
||||||
|
if (!gtk_check_version(2,6,0))
|
||||||
|
{
|
||||||
|
// set ellipsize mode
|
||||||
|
PangoEllipsizeMode ellipsizeMode = PANGO_ELLIPSIZE_NONE;
|
||||||
|
if ( style & wxST_ELLIPSIZE_START )
|
||||||
|
ellipsizeMode = PANGO_ELLIPSIZE_START;
|
||||||
|
else if ( style & wxST_ELLIPSIZE_MIDDLE )
|
||||||
|
ellipsizeMode = PANGO_ELLIPSIZE_MIDDLE;
|
||||||
|
else if ( style & wxST_ELLIPSIZE_END )
|
||||||
|
ellipsizeMode = PANGO_ELLIPSIZE_END;
|
||||||
|
|
||||||
|
gtk_label_set_ellipsize( GTK_LABEL(m_widget), ellipsizeMode );
|
||||||
|
}
|
||||||
|
#endif // __WXGTK26__
|
||||||
|
|
||||||
|
SetLabel(label);
|
||||||
|
|
||||||
m_parent->DoAddChild( this );
|
m_parent->DoAddChild( this );
|
||||||
|
|
||||||
PostCreation(size);
|
PostCreation(size);
|
||||||
@@ -110,20 +126,39 @@ bool wxStaticText::Create(wxWindow *parent,
|
|||||||
|
|
||||||
wxString wxStaticText::GetLabel() const
|
wxString wxStaticText::GetLabel() const
|
||||||
{
|
{
|
||||||
GtkLabel *label = GTK_LABEL(m_widget);
|
// we need to return the label just like it was passed to the last call
|
||||||
wxString str = wxGTK_CONV_BACK( gtk_label_get_text( label ) );
|
// to SetLabel(): i.e. with wx-style mnemonics and with markup
|
||||||
|
return wxControl::GetLabel();
|
||||||
return wxString(str);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxStaticText::SetLabel( const wxString &label )
|
void wxStaticText::SetLabel( const wxString& str )
|
||||||
{
|
{
|
||||||
wxCHECK_RET( m_widget != NULL, wxT("invalid static text") );
|
wxCHECK_RET( m_widget != NULL, wxT("invalid static text") );
|
||||||
|
|
||||||
GTKSetLabelForLabel(GTK_LABEL(m_widget), label);
|
// save the label inside m_labelOrig in case user calls GetLabel() later
|
||||||
|
m_labelOrig = str;
|
||||||
|
|
||||||
|
wxString label(str);
|
||||||
|
if (gtk_check_version(2,6,0) &&
|
||||||
|
IsEllipsized())
|
||||||
|
{
|
||||||
|
// GTK+ < 2.6 does not support ellipsization:
|
||||||
|
// since we need to use our generic code for ellipsization (which does not
|
||||||
|
// behaves well in conjunction with markup; i.e. it may break the markup
|
||||||
|
// validity erasing portions of the string), we also need to strip out
|
||||||
|
// the markup (if present) from the label.
|
||||||
|
|
||||||
|
label = GetEllipsizedLabelWithoutMarkup();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( HasFlag(wxST_MARKUP) )
|
||||||
|
GTKSetLabelWithMarkupForLabel(GTK_LABEL(m_widget), label);
|
||||||
|
else
|
||||||
|
GTKSetLabelForLabel(GTK_LABEL(m_widget), label);
|
||||||
|
|
||||||
// adjust the label size to the new label unless disabled
|
// adjust the label size to the new label unless disabled
|
||||||
if ( !HasFlag(wxST_NO_AUTORESIZE) )
|
if ( !HasFlag(wxST_NO_AUTORESIZE) &&
|
||||||
|
!IsEllipsized() ) // if ellipsize is ON, then we don't want to get resized!
|
||||||
SetSize( GetBestSize() );
|
SetSize( GetBestSize() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,6 +206,13 @@ void wxStaticText::DoSetSize(int x, int y,
|
|||||||
int sizeFlags )
|
int sizeFlags )
|
||||||
{
|
{
|
||||||
wxControl::DoSetSize( x, y, width, height, sizeFlags );
|
wxControl::DoSetSize( x, y, width, height, sizeFlags );
|
||||||
|
|
||||||
|
if (gtk_check_version(2,6,0))
|
||||||
|
{
|
||||||
|
// GTK+ < 2.6 does not support ellipsization - we need to run our
|
||||||
|
// generic code (actually it will be run only if IsEllipsized() == true)
|
||||||
|
UpdateLabel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxSize wxStaticText::DoGetBestSize() const
|
wxSize wxStaticText::DoGetBestSize() const
|
||||||
@@ -215,6 +257,20 @@ void wxStaticText::GTKWidgetDoSetMnemonic(GtkWidget* w)
|
|||||||
gtk_label_set_mnemonic_widget(GTK_LABEL(m_widget), w);
|
gtk_label_set_mnemonic_widget(GTK_LABEL(m_widget), w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// These functions should be used only when GTK+ < 2.6 by wxStaticTextBase::UpdateLabel()
|
||||||
|
|
||||||
|
wxString wxStaticText::DoGetLabel() const
|
||||||
|
{
|
||||||
|
GtkLabel *label = GTK_LABEL(m_widget);
|
||||||
|
return wxGTK_CONV_BACK( gtk_label_get_text( label ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxStaticText::DoSetLabel(const wxString& str)
|
||||||
|
{
|
||||||
|
GTKSetLabelForLabel(GTK_LABEL(m_widget), str);
|
||||||
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
wxVisualAttributes
|
wxVisualAttributes
|
||||||
wxStaticText::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
|
wxStaticText::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
|
||||||
|
@@ -43,24 +43,21 @@ bool wxStaticText::Create( wxWindow *parent,
|
|||||||
{
|
{
|
||||||
m_macIsUserPane = false;
|
m_macIsUserPane = false;
|
||||||
|
|
||||||
m_label = GetLabelText( label );
|
|
||||||
|
|
||||||
if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) )
|
if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Rect bounds = wxMacGetBoundsForControl( this, pos, size );
|
Rect bounds = wxMacGetBoundsForControl( this, pos, size );
|
||||||
wxMacCFStringHolder str( m_label, m_font.GetEncoding() );
|
|
||||||
|
|
||||||
m_peer = new wxMacControl( this );
|
m_peer = new wxMacControl( this );
|
||||||
OSStatus err = CreateStaticTextControl(
|
OSStatus err = CreateStaticTextControl(
|
||||||
MAC_WXHWND(parent->MacGetTopLevelWindowRef()),
|
MAC_WXHWND(parent->MacGetTopLevelWindowRef()),
|
||||||
&bounds, str, NULL, m_peer->GetControlRefAddr() );
|
&bounds, NULL, NULL, m_peer->GetControlRefAddr() );
|
||||||
verify_noerr( err );
|
verify_noerr( err );
|
||||||
|
|
||||||
if ( ( style & wxST_DOTS_END ) || ( style & wxST_DOTS_MIDDLE ) )
|
if ( ( style & wxST_ELLIPSIZE_END ) || ( style & wxST_ELLIPSIZE_MIDDLE ) )
|
||||||
{
|
{
|
||||||
TruncCode tCode = truncEnd;
|
TruncCode tCode = truncEnd;
|
||||||
if ( style & wxST_DOTS_MIDDLE )
|
if ( style & wxST_ELLIPSIZE_MIDDLE )
|
||||||
tCode = truncMiddle;
|
tCode = truncMiddle;
|
||||||
|
|
||||||
err = m_peer->SetData( kControlStaticTextTruncTag, tCode );
|
err = m_peer->SetData( kControlStaticTextTruncTag, tCode );
|
||||||
@@ -69,6 +66,8 @@ bool wxStaticText::Create( wxWindow *parent,
|
|||||||
|
|
||||||
MacPostControlCreate( pos, size );
|
MacPostControlCreate( pos, size );
|
||||||
|
|
||||||
|
SetLabel(label);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,16 +132,28 @@ wxSize wxStaticText::DoGetBestSize() const
|
|||||||
return wxSize( bounds.h, bounds.v );
|
return wxSize( bounds.h, bounds.v );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxStaticText::SetLabel( const wxString& st )
|
void wxStaticText::SetLabel(const wxString& label)
|
||||||
{
|
{
|
||||||
m_label = GetLabelText( st );
|
m_labelOrig = label;
|
||||||
|
|
||||||
wxMacCFStringHolder str( m_label, m_font.GetEncoding() );
|
// middle/end ellipsization is handled by the OS:
|
||||||
CFStringRef ref = str;
|
if ( HasFlag(wxST_ELLIPSIZE_END) || HasFlag(wxST_ELLIPSIZE_MIDDLE) )
|
||||||
OSStatus err = m_peer->SetData<CFStringRef>(kControlEntireControl, kControlStaticTextCFStringTag, ref );
|
{
|
||||||
verify_noerr( err );
|
// remove markup
|
||||||
|
wxString str(label);
|
||||||
|
if (HasFlag(wxST_MARKUP))
|
||||||
|
str = RemoveMarkup(label);
|
||||||
|
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
// and leave ellipsization to the OS
|
||||||
|
DoSetLabel(str);
|
||||||
|
}
|
||||||
|
else // not supported natively
|
||||||
|
{
|
||||||
|
DoSetLabel(GetEllipsizedLabelWithoutMarkup());
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) &&
|
||||||
|
!IsEllipsized() ) // don't resize if we adjust to current size
|
||||||
{
|
{
|
||||||
InvalidateBestSize();
|
InvalidateBestSize();
|
||||||
SetSize( GetBestSize() );
|
SetSize( GetBestSize() );
|
||||||
@@ -170,4 +181,26 @@ bool wxStaticText::SetFont(const wxFont& font)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// for wxST_ELLIPSIZE_* support:
|
||||||
|
|
||||||
|
void wxStaticText::DoSetLabel(const wxString& label)
|
||||||
|
{
|
||||||
|
m_label = RemoveMnemonics(label);
|
||||||
|
|
||||||
|
wxMacCFStringHolder str( m_label, m_font.GetEncoding() );
|
||||||
|
OSStatus err = m_peer->SetData<CFStringRef>(kControlEntireControl, kControlStaticTextCFStringTag, str);
|
||||||
|
verify_noerr( err );
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString wxStaticText::DoGetLabel() const
|
||||||
|
{
|
||||||
|
return m_label;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
FIXME: UpdateLabel() should be called on size events when wxST_ELLIPSIZE_START is set
|
||||||
|
to allow correct dynamic ellipsizing of the label
|
||||||
|
*/
|
||||||
|
|
||||||
#endif //if wxUSE_STATTEXT
|
#endif //if wxUSE_STATTEXT
|
||||||
|
@@ -47,14 +47,12 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
|
|||||||
|
|
||||||
Widget borderWidget =
|
Widget borderWidget =
|
||||||
(Widget) wxCreateBorderWidget( (WXWidget)parentWidget, style );
|
(Widget) wxCreateBorderWidget( (WXWidget)parentWidget, style );
|
||||||
wxXmString text( GetLabelText( label ) );
|
|
||||||
|
|
||||||
m_labelWidget =
|
m_labelWidget =
|
||||||
XtVaCreateManagedWidget (wxConstCast(name.mb_str(), char),
|
XtVaCreateManagedWidget (wxConstCast(name.mb_str(), char),
|
||||||
xmLabelWidgetClass,
|
xmLabelWidgetClass,
|
||||||
borderWidget ? borderWidget : parentWidget,
|
borderWidget ? borderWidget : parentWidget,
|
||||||
wxFont::GetFontTag(), m_font.GetFontTypeC(XtDisplay(parentWidget)),
|
wxFont::GetFontTag(), m_font.GetFontTypeC(XtDisplay(parentWidget)),
|
||||||
XmNlabelString, text(),
|
|
||||||
XmNalignment, ((style & wxALIGN_RIGHT) ? XmALIGNMENT_END :
|
XmNalignment, ((style & wxALIGN_RIGHT) ? XmALIGNMENT_END :
|
||||||
((style & wxALIGN_CENTRE) ? XmALIGNMENT_CENTER :
|
((style & wxALIGN_CENTRE) ? XmALIGNMENT_CENTER :
|
||||||
XmALIGNMENT_BEGINNING)),
|
XmALIGNMENT_BEGINNING)),
|
||||||
@@ -68,12 +66,33 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id,
|
|||||||
|
|
||||||
ChangeBackgroundColour ();
|
ChangeBackgroundColour ();
|
||||||
|
|
||||||
|
SetLabel(label);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxStaticText::SetLabel(const wxString& label)
|
void wxStaticText::SetLabel(const wxString& label)
|
||||||
{
|
{
|
||||||
wxXmString label_str(GetLabelText(label));
|
m_labelOrig = label; // save original label
|
||||||
|
|
||||||
|
// Motif does not support neither ellipsize nor markup in static text:
|
||||||
|
DoSetLabel(GetEllipsizedLabelWithoutMarkup());
|
||||||
|
}
|
||||||
|
|
||||||
|
// for wxST_ELLIPSIZE_* support:
|
||||||
|
|
||||||
|
wxString wxStaticText::DoGetLabel() const
|
||||||
|
{
|
||||||
|
XmString label = NULL;
|
||||||
|
XtVaGetValues((Widget)m_labelWidget, XmNlabelString, &label, NULL);
|
||||||
|
|
||||||
|
return wxXmStringToString(label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxStaticText::DoSetLabel(const wxString& str)
|
||||||
|
{
|
||||||
|
// build our own cleaned label
|
||||||
|
wxXmString label_str(RemoveMnemonics(str));
|
||||||
|
|
||||||
// This variable means we don't need so many casts later.
|
// This variable means we don't need so many casts later.
|
||||||
Widget widget = (Widget) m_labelWidget;
|
Widget widget = (Widget) m_labelWidget;
|
||||||
@@ -84,4 +103,9 @@ void wxStaticText::SetLabel(const wxString& label)
|
|||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
FIXME: UpdateLabel() should be called on size events to allow correct
|
||||||
|
dynamic ellipsizing of the label
|
||||||
|
*/
|
||||||
|
|
||||||
#endif // wxUSE_STATTEXT
|
#endif // wxUSE_STATTEXT
|
||||||
|
@@ -162,6 +162,10 @@ bool wxControl::MSWCreateControl(const wxChar *classname,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// saving the label in m_labelOrig to return it verbatim
|
||||||
|
// later in GetLabel()
|
||||||
|
m_labelOrig = label;
|
||||||
|
|
||||||
// install wxWidgets window proc for this window
|
// install wxWidgets window proc for this window
|
||||||
SubclassWin(m_hWnd);
|
SubclassWin(m_hWnd);
|
||||||
|
|
||||||
|
@@ -121,6 +121,16 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
|
|||||||
msStyle |= SS_LEFT;
|
msStyle |= SS_LEFT;
|
||||||
|
|
||||||
// this style is necessary to receive mouse events
|
// this style is necessary to receive mouse events
|
||||||
|
// Win NT and later have the SS_ENDELLIPSIS style which is useful to us:
|
||||||
|
if (wxGetOsVersion() == wxOS_WINDOWS_NT)
|
||||||
|
{
|
||||||
|
// for now, add the SS_ENDELLIPSIS style if wxST_ELLIPSIZE_END is given;
|
||||||
|
// we may need to remove it later in ::SetLabel() if the given label
|
||||||
|
// has newlines
|
||||||
|
if ( style & wxST_ELLIPSIZE_END )
|
||||||
|
msStyle |= SS_ENDELLIPSIS;
|
||||||
|
}
|
||||||
|
|
||||||
msStyle |= SS_NOTIFY;
|
msStyle |= SS_NOTIFY;
|
||||||
|
|
||||||
return msStyle;
|
return msStyle;
|
||||||
@@ -181,20 +191,60 @@ wxSize wxStaticText::DoGetBestSize() const
|
|||||||
|
|
||||||
void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)
|
void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)
|
||||||
{
|
{
|
||||||
// we need to refresh the window after changing its size as the standard
|
// note: we first need to set the size and _then_ call UpdateLabel
|
||||||
// control doesn't always update itself properly
|
|
||||||
wxStaticTextBase::DoSetSize(x, y, w, h, sizeFlags);
|
wxStaticTextBase::DoSetSize(x, y, w, h, sizeFlags);
|
||||||
|
|
||||||
|
// do we need to ellipsize the contents?
|
||||||
|
long styleReal = ::GetWindowLong(GetHwnd(), GWL_STYLE);
|
||||||
|
if ( !(styleReal & SS_ENDELLIPSIS) )
|
||||||
|
{
|
||||||
|
// we don't have SS_ENDELLIPSIS style:
|
||||||
|
// we need to (eventually) do ellipsization ourselves
|
||||||
|
UpdateLabel();
|
||||||
|
}
|
||||||
|
//else: we don't or the OS will do it for us
|
||||||
|
|
||||||
|
// we need to refresh the window after changing its size as the standard
|
||||||
|
// control doesn't always update itself properly
|
||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxStaticText::SetLabel(const wxString& label)
|
void wxStaticText::SetLabel(const wxString& label)
|
||||||
{
|
{
|
||||||
wxStaticTextBase::SetLabel(label);
|
long styleReal = ::GetWindowLong(GetHwnd(), GWL_STYLE);
|
||||||
|
if ( HasFlag(wxST_ELLIPSIZE_END) &&
|
||||||
|
wxGetOsVersion() == wxOS_WINDOWS_NT )
|
||||||
|
{
|
||||||
|
// adding SS_ENDELLIPSIS or SS_ENDELLIPSIS "disables" the correct
|
||||||
|
// newline handling in static texts: the newlines in the labels are
|
||||||
|
// shown as square. Thus we don't use it even on newer OS when
|
||||||
|
// the static label contains a newline.
|
||||||
|
if ( label.Contains(wxT('\n')) )
|
||||||
|
styleReal &= ~SS_ENDELLIPSIS;
|
||||||
|
else
|
||||||
|
styleReal |= SS_ENDELLIPSIS;
|
||||||
|
|
||||||
|
::SetWindowLong(GetHwnd(), GWL_STYLE, styleReal);
|
||||||
|
}
|
||||||
|
else // style not supported natively
|
||||||
|
{
|
||||||
|
styleReal &= ~SS_ENDELLIPSIS;
|
||||||
|
::SetWindowLong(GetHwnd(), GWL_STYLE, styleReal);
|
||||||
|
}
|
||||||
|
|
||||||
|
// this call will save the label in m_labelOrig and set it into this window
|
||||||
|
// (through wxWindow::SetLabel)
|
||||||
|
m_labelOrig = label;
|
||||||
|
|
||||||
|
if ((styleReal & SS_ENDELLIPSIS) == 0)
|
||||||
|
DoSetLabel(GetEllipsizedLabelWithoutMarkup());
|
||||||
|
else
|
||||||
|
DoSetLabel(RemoveMarkup(label));
|
||||||
|
|
||||||
// adjust the size of the window to fit to the label unless autoresizing is
|
// adjust the size of the window to fit to the label unless autoresizing is
|
||||||
// disabled
|
// disabled
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
if ( !HasFlag(wxST_NO_AUTORESIZE) &&
|
||||||
|
!IsEllipsized() ) // if ellipsize is ON, then we don't want to get resized!
|
||||||
{
|
{
|
||||||
InvalidateBestSize();
|
InvalidateBestSize();
|
||||||
DoSetSize(wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, wxDefaultCoord,
|
DoSetSize(wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, wxDefaultCoord,
|
||||||
@@ -202,14 +252,13 @@ void wxStaticText::SetLabel(const wxString& label)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool wxStaticText::SetFont(const wxFont& font)
|
bool wxStaticText::SetFont(const wxFont& font)
|
||||||
{
|
{
|
||||||
bool ret = wxControl::SetFont(font);
|
bool ret = wxControl::SetFont(font);
|
||||||
|
|
||||||
// adjust the size of the window to fit to the label unless autoresizing is
|
// adjust the size of the window to fit to the label unless autoresizing is
|
||||||
// disabled
|
// disabled
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
if ( !HasFlag(wxST_NO_AUTORESIZE) )
|
||||||
{
|
{
|
||||||
InvalidateBestSize();
|
InvalidateBestSize();
|
||||||
DoSetSize(wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, wxDefaultCoord,
|
DoSetSize(wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, wxDefaultCoord,
|
||||||
@@ -219,4 +268,17 @@ bool wxStaticText::SetFont(const wxFont& font)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for wxST_ELLIPSIZE_* support:
|
||||||
|
|
||||||
|
wxString wxStaticText::DoGetLabel() const
|
||||||
|
{
|
||||||
|
return wxGetWindowText(GetHwnd());
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxStaticText::DoSetLabel(const wxString& str)
|
||||||
|
{
|
||||||
|
SetWindowText(GetHwnd(), str.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // wxUSE_STATTEXT
|
#endif // wxUSE_STATTEXT
|
||||||
|
@@ -66,11 +66,9 @@ bool wxStaticText::Create( wxWindow* pParent,
|
|||||||
else
|
else
|
||||||
lSstyle |= DT_LEFT;
|
lSstyle |= DT_LEFT;
|
||||||
|
|
||||||
wxString sLabel = ::wxPMTextToLabel(rsLabel);
|
|
||||||
|
|
||||||
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
|
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
|
||||||
,WC_STATIC // Window class
|
,WC_STATIC // Window class
|
||||||
,(PSZ)sLabel.c_str() // Initial Text
|
,NULL // Initial Text
|
||||||
,(ULONG)lSstyle // Style flags
|
,(ULONG)lSstyle // Style flags
|
||||||
,0L, 0L, 0L, 0L // Origin -- 0 size
|
,0L, 0L, 0L, 0L // Origin -- 0 size
|
||||||
,(HWND)GetHwndOf(pParent) // owner window handle (same as parent
|
,(HWND)GetHwndOf(pParent) // owner window handle (same as parent
|
||||||
@@ -103,12 +101,14 @@ bool wxStaticText::Create( wxWindow* pParent,
|
|||||||
SetYComp(0);
|
SetYComp(0);
|
||||||
SetSize( nX, nY, nWidth, nHeight );
|
SetSize( nX, nY, nWidth, nHeight );
|
||||||
|
|
||||||
|
SetLabel(rsLabel);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} // end of wxStaticText::Create
|
} // end of wxStaticText::Create
|
||||||
|
|
||||||
wxSize wxStaticText::DoGetBestSize() const
|
wxSize wxStaticText::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
wxString sText(wxGetWindowText(GetHWND()));
|
wxString sText(GetLabel());
|
||||||
int nWidthTextMax = 0;
|
int nWidthTextMax = 0;
|
||||||
int nWidthLine = 0;
|
int nWidthLine = 0;
|
||||||
int nHeightTextTotal = 0;
|
int nHeightTextTotal = 0;
|
||||||
@@ -205,6 +205,10 @@ void wxStaticText::DoSetSize(
|
|||||||
,nHeight
|
,nHeight
|
||||||
,nSizeFlags
|
,nSizeFlags
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// eventually update label (if ellipsizing is on):
|
||||||
|
UpdateLabel();
|
||||||
|
|
||||||
Refresh();
|
Refresh();
|
||||||
} // end of wxStaticText::DoSetSize
|
} // end of wxStaticText::DoSetSize
|
||||||
|
|
||||||
@@ -229,14 +233,17 @@ void wxStaticText::SetLabel(
|
|||||||
const wxString& rsLabel
|
const wxString& rsLabel
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
wxString sLabel = ::wxPMTextToLabel(rsLabel);
|
m_labelOrig = rsLabel; // save original label
|
||||||
::WinSetWindowText(GetHwnd(), (PSZ)sLabel.c_str());
|
|
||||||
|
// OS/2 does not support neither ellipsize nor markup in static text:
|
||||||
|
DoSetLabel(GetEllipsizedLabelWithoutMarkup(label));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Adjust the size of the window to fit to the label unless autoresizing is
|
// Adjust the size of the window to fit to the label unless autoresizing is
|
||||||
// disabled
|
// disabled
|
||||||
//
|
//
|
||||||
if (!(GetWindowStyle() & wxST_NO_AUTORESIZE))
|
if (!(GetWindowStyle() & wxST_NO_AUTORESIZE) &&
|
||||||
|
!IsEllipsized())
|
||||||
{
|
{
|
||||||
wxCoord vX;
|
wxCoord vX;
|
||||||
wxCoord vY;
|
wxCoord vY;
|
||||||
@@ -263,3 +270,19 @@ MRESULT wxStaticText::OS2WindowProc(
|
|||||||
,lParam
|
,lParam
|
||||||
);
|
);
|
||||||
} // end of wxStaticText::OS2WindowProc
|
} // end of wxStaticText::OS2WindowProc
|
||||||
|
|
||||||
|
|
||||||
|
// for wxST_ELLIPSIZE_* support:
|
||||||
|
|
||||||
|
void wxStaticText::DoSetLabel(const wxString& str)
|
||||||
|
{
|
||||||
|
wxString sLabel = ::wxPMTextToLabel(str);
|
||||||
|
::WinSetWindowText(GetHwnd(), (PSZ)sLabel.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString wxStaticText::DoGetLabel() const
|
||||||
|
{
|
||||||
|
// FIXME: how to retrieve the text?
|
||||||
|
//return wxGetWindowText(GetHWND());
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -122,6 +122,14 @@ int wxControl::FindAccelIndex(const wxString& label, wxString *labelOnly)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void wxControl::SetLabel(const wxString& label)
|
void wxControl::SetLabel(const wxString& label)
|
||||||
|
{
|
||||||
|
// save original label
|
||||||
|
wxControlBase::SetLabel(label);
|
||||||
|
|
||||||
|
UnivDoSetLabel(label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxControl::UnivDoSetLabel(const wxString& label)
|
||||||
{
|
{
|
||||||
wxString labelOld = m_label;
|
wxString labelOld = m_label;
|
||||||
m_indexAccel = FindAccelIndex(label, &m_label);
|
m_indexAccel = FindAccelIndex(label, &m_label);
|
||||||
@@ -132,9 +140,4 @@ void wxControl::SetLabel(const wxString& label)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxControl::GetLabel() const
|
|
||||||
{
|
|
||||||
return m_label;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_CONTROLS
|
#endif // wxUSE_CONTROLS
|
||||||
|
@@ -66,11 +66,6 @@ bool wxStaticText::Create(wxWindow *parent,
|
|||||||
// size management
|
// size management
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
void wxStaticText::SetLabel(const wxString& label)
|
|
||||||
{
|
|
||||||
wxControl::SetLabel(label);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxSize wxStaticText::DoGetBestClientSize() const
|
wxSize wxStaticText::DoGetBestClientSize() const
|
||||||
{
|
{
|
||||||
wxStaticText *self = wxConstCast(this, wxStaticText);
|
wxStaticText *self = wxConstCast(this, wxStaticText);
|
||||||
@@ -99,4 +94,28 @@ void wxStaticText::DoDraw(wxControlRenderer *renderer)
|
|||||||
renderer->DrawLabel();
|
renderer->DrawLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxStaticText::SetLabel(const wxString& str)
|
||||||
|
{
|
||||||
|
// save original label
|
||||||
|
m_labelOrig = str;
|
||||||
|
|
||||||
|
// draw as real label the result of GetEllipsizedLabelWithoutMarkup:
|
||||||
|
DoSetLabel(GetEllipsizedLabelWithoutMarkup());
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxStaticText::DoSetLabel(const wxString& str)
|
||||||
|
{
|
||||||
|
UnivDoSetLabel(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString wxStaticText::DoGetLabel() const
|
||||||
|
{
|
||||||
|
return wxControl::GetLabel();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
FIXME: UpdateLabel() should be called on size events to allow correct
|
||||||
|
dynamic ellipsizing of the label
|
||||||
|
*/
|
||||||
|
|
||||||
#endif // wxUSE_STATTEXT
|
#endif // wxUSE_STATTEXT
|
||||||
|
Reference in New Issue
Block a user