]> git.saurik.com Git - wxWidgets.git/commitdiff
Add new wxBannerWindow class.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 22 Aug 2011 12:18:43 +0000 (12:18 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 22 Aug 2011 12:18:43 +0000 (12:18 +0000)
A simple banner showing either a bitmap or some text on gradient background.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

36 files changed:
Makefile.in
build/bakefiles/files.bkl
build/msw/makefile.bcc
build/msw/makefile.gcc
build/msw/makefile.vc
build/msw/makefile.wat
build/msw/wx_adv.dsp
build/msw/wx_core.dsp
build/msw/wx_vc7_adv.vcproj
build/msw/wx_vc7_core.vcproj
build/msw/wx_vc8_adv.vcproj
build/msw/wx_vc8_core.vcproj
build/msw/wx_vc9_adv.vcproj
build/msw/wx_vc9_core.vcproj
configure
configure.in
docs/changes.txt
docs/doxygen/images/generic/bannerwindow.png [new file with mode: 0644]
include/wx/bannerwindow.h [new file with mode: 0644]
include/wx/motif/setup0.h
include/wx/msw/setup0.h
include/wx/msw/wince/setup.h
include/wx/os2/setup0.h
include/wx/osx/setup0.h
include/wx/palmos/setup0.h
include/wx/setup_inc.h
include/wx/univ/setup0.h
interface/wx/bannerwindow.h [new file with mode: 0644]
samples/xrc/Makefile.in
samples/xrc/makefile.bcc
samples/xrc/makefile.gcc
samples/xrc/makefile.vc
samples/xrc/makefile.wat
samples/xrc/xrcdemo.bkl
setup.h.in
src/generic/bannerwindow.cpp [new file with mode: 0644]

index 4a339baefe7d188657cfe4387bf70502cee2b60d..7f8608caa8db7ff69911201d1c09d74813c8f8c9 100644 (file)
@@ -3676,6 +3676,7 @@ COND_TOOLKIT_WINCE_ADVANCED_PLATFORM_NATIVE_HDR =  \
 COND_WXUNIV_0_ADVANCED_HDR =  \
        wx/aboutdlg.h \
        wx/animate.h \
+       wx/bannerwindow.h \
        wx/bmpcbox.h \
        wx/calctrl.h \
        wx/commandlinkbutton.h \
@@ -3723,6 +3724,7 @@ COND_WXUNIV_0_ADVANCED_HDR =  \
 COND_WXUNIV_1_ADVANCED_HDR =  \
        wx/aboutdlg.h \
        wx/animate.h \
+       wx/bannerwindow.h \
        wx/bmpcbox.h \
        wx/calctrl.h \
        wx/commandlinkbutton.h \
@@ -6073,6 +6075,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS =  \
        monodll_hyperlnkcmn.o \
        monodll_odcombocmn.o \
        monodll_aboutdlgg.o \
+       monodll_bannerwindow.o \
        monodll_bmpcboxg.o \
        monodll_calctrlg.o \
        monodll_commandlinkbuttong.o \
@@ -6105,6 +6108,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS =  \
        monodll_hyperlnkcmn.o \
        monodll_odcombocmn.o \
        monodll_aboutdlgg.o \
+       monodll_bannerwindow.o \
        monodll_bmpcboxg.o \
        monodll_calctrlg.o \
        monodll_commandlinkbuttong.o \
@@ -8003,6 +8007,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 =  \
        monolib_hyperlnkcmn.o \
        monolib_odcombocmn.o \
        monolib_aboutdlgg.o \
+       monolib_bannerwindow.o \
        monolib_bmpcboxg.o \
        monolib_calctrlg.o \
        monolib_commandlinkbuttong.o \
@@ -8035,6 +8040,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 =  \
        monolib_hyperlnkcmn.o \
        monolib_odcombocmn.o \
        monolib_aboutdlgg.o \
+       monolib_bannerwindow.o \
        monolib_bmpcboxg.o \
        monolib_calctrlg.o \
        monolib_commandlinkbuttong.o \
@@ -11776,6 +11782,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 =  \
        advdll_hyperlnkcmn.o \
        advdll_odcombocmn.o \
        advdll_aboutdlgg.o \
+       advdll_bannerwindow.o \
        advdll_bmpcboxg.o \
        advdll_calctrlg.o \
        advdll_commandlinkbuttong.o \
@@ -11808,6 +11815,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_2 =  \
        advdll_hyperlnkcmn.o \
        advdll_odcombocmn.o \
        advdll_aboutdlgg.o \
+       advdll_bannerwindow.o \
        advdll_bmpcboxg.o \
        advdll_calctrlg.o \
        advdll_commandlinkbuttong.o \
@@ -11880,6 +11888,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 =  \
        advlib_hyperlnkcmn.o \
        advlib_odcombocmn.o \
        advlib_aboutdlgg.o \
+       advlib_bannerwindow.o \
        advlib_bmpcboxg.o \
        advlib_calctrlg.o \
        advlib_commandlinkbuttong.o \
@@ -11912,6 +11921,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_3 =  \
        advlib_hyperlnkcmn.o \
        advlib_odcombocmn.o \
        advlib_aboutdlgg.o \
+       advlib_bannerwindow.o \
        advlib_bmpcboxg.o \
        advlib_calctrlg.o \
        advlib_commandlinkbuttong.o \
@@ -20342,6 +20352,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@monodll_aboutdlgg.o: $(srcdir)/src/generic/aboutdlgg.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/aboutdlgg.cpp
 
+@COND_USE_GUI_1@monodll_bannerwindow.o: $(srcdir)/src/generic/bannerwindow.cpp $(MONODLL_ODEP)
+@COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/bannerwindow.cpp
+
 @COND_USE_GUI_1@monodll_bmpcboxg.o: $(srcdir)/src/generic/bmpcboxg.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/bmpcboxg.cpp
 
@@ -25667,6 +25680,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@monolib_aboutdlgg.o: $(srcdir)/src/generic/aboutdlgg.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/aboutdlgg.cpp
 
+@COND_USE_GUI_1@monolib_bannerwindow.o: $(srcdir)/src/generic/bannerwindow.cpp $(MONOLIB_ODEP)
+@COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/bannerwindow.cpp
+
 @COND_USE_GUI_1@monolib_bmpcboxg.o: $(srcdir)/src/generic/bmpcboxg.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/bmpcboxg.cpp
 
@@ -35204,6 +35220,9 @@ advdll_odcombocmn.o: $(srcdir)/src/common/odcombocmn.cpp $(ADVDLL_ODEP)
 advdll_aboutdlgg.o: $(srcdir)/src/generic/aboutdlgg.cpp $(ADVDLL_ODEP)
        $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/aboutdlgg.cpp
 
+advdll_bannerwindow.o: $(srcdir)/src/generic/bannerwindow.cpp $(ADVDLL_ODEP)
+       $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/bannerwindow.cpp
+
 advdll_bmpcboxg.o: $(srcdir)/src/generic/bmpcboxg.cpp $(ADVDLL_ODEP)
        $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/bmpcboxg.cpp
 
@@ -35558,6 +35577,9 @@ advlib_odcombocmn.o: $(srcdir)/src/common/odcombocmn.cpp $(ADVLIB_ODEP)
 advlib_aboutdlgg.o: $(srcdir)/src/generic/aboutdlgg.cpp $(ADVLIB_ODEP)
        $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/aboutdlgg.cpp
 
+advlib_bannerwindow.o: $(srcdir)/src/generic/bannerwindow.cpp $(ADVLIB_ODEP)
+       $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/bannerwindow.cpp
+
 advlib_bmpcboxg.o: $(srcdir)/src/generic/bmpcboxg.cpp $(ADVLIB_ODEP)
        $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/bmpcboxg.cpp
 
index 0f59a801da07fe47ea1f983b0b6170a36069e0d9..38fbc2d7e55b007a49da417f480e29378c2b4d79 100644 (file)
@@ -2953,6 +2953,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
     src/common/hyperlnkcmn.cpp
     src/common/odcombocmn.cpp
     src/generic/aboutdlgg.cpp
+    src/generic/bannerwindow.cpp
     src/generic/bmpcboxg.cpp
     src/generic/calctrlg.cpp
     src/generic/commandlinkbuttong.cpp
@@ -2978,6 +2979,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
 <set var="ADVANCED_CMN_HDR" hints="files">
     wx/aboutdlg.h
     wx/animate.h
+    wx/bannerwindow.h
     wx/bmpcbox.h
     wx/calctrl.h
     wx/commandlinkbutton.h
index 5dd84848d0b074903f4bd79265c14b4c4f813763..1d39fdb2a253797b9dffcae08c3329e81a58a820 100644 (file)
@@ -2226,6 +2226,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_hyperlnkcmn.obj \\r
        $(OBJS)\monodll_odcombocmn.obj \\r
        $(OBJS)\monodll_aboutdlgg.obj \\r
+       $(OBJS)\monodll_bannerwindow.obj \
        $(OBJS)\monodll_bmpcboxg.obj \\r
        $(OBJS)\monodll_calctrlg.obj \\r
        $(OBJS)\monodll_commandlinkbuttong.obj \\r
@@ -2270,6 +2271,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_hyperlnkcmn.obj \\r
        $(OBJS)\monodll_odcombocmn.obj \\r
        $(OBJS)\monodll_aboutdlgg.obj \\r
+       $(OBJS)\monodll_bannerwindow.obj \
        $(OBJS)\monodll_bmpcboxg.obj \\r
        $(OBJS)\monodll_calctrlg.obj \\r
        $(OBJS)\monodll_commandlinkbuttong.obj \\r
@@ -2990,6 +2992,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_hyperlnkcmn.obj \\r
        $(OBJS)\monolib_odcombocmn.obj \\r
        $(OBJS)\monolib_aboutdlgg.obj \\r
+       $(OBJS)\monolib_bannerwindow.obj \
        $(OBJS)\monolib_bmpcboxg.obj \\r
        $(OBJS)\monolib_calctrlg.obj \\r
        $(OBJS)\monolib_commandlinkbuttong.obj \\r
@@ -3034,6 +3037,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_hyperlnkcmn.obj \\r
        $(OBJS)\monolib_odcombocmn.obj \\r
        $(OBJS)\monolib_aboutdlgg.obj \\r
+       $(OBJS)\monolib_bannerwindow.obj \
        $(OBJS)\monolib_bmpcboxg.obj \\r
        $(OBJS)\monolib_calctrlg.obj \\r
        $(OBJS)\monolib_commandlinkbuttong.obj \\r
@@ -4194,6 +4198,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_hyperlnkcmn.obj \\r
        $(OBJS)\advdll_odcombocmn.obj \\r
        $(OBJS)\advdll_aboutdlgg.obj \\r
+       $(OBJS)\advdll_bannerwindow.obj \
        $(OBJS)\advdll_bmpcboxg.obj \\r
        $(OBJS)\advdll_calctrlg.obj \\r
        $(OBJS)\advdll_commandlinkbuttong.obj \\r
@@ -4238,6 +4243,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_hyperlnkcmn.obj \\r
        $(OBJS)\advdll_odcombocmn.obj \\r
        $(OBJS)\advdll_aboutdlgg.obj \\r
+       $(OBJS)\advdll_bannerwindow.obj \
        $(OBJS)\advdll_bmpcboxg.obj \\r
        $(OBJS)\advdll_calctrlg.obj \\r
        $(OBJS)\advdll_commandlinkbuttong.obj \\r
@@ -4280,6 +4286,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_hyperlnkcmn.obj \\r
        $(OBJS)\advlib_odcombocmn.obj \\r
        $(OBJS)\advlib_aboutdlgg.obj \\r
+       $(OBJS)\advlib_bannerwindow.obj \
        $(OBJS)\advlib_bmpcboxg.obj \\r
        $(OBJS)\advlib_calctrlg.obj \\r
        $(OBJS)\advlib_commandlinkbuttong.obj \\r
@@ -4324,6 +4331,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_hyperlnkcmn.obj \\r
        $(OBJS)\advlib_odcombocmn.obj \\r
        $(OBJS)\advlib_aboutdlgg.obj \\r
+       $(OBJS)\advlib_bannerwindow.obj \
        $(OBJS)\advlib_bmpcboxg.obj \\r
        $(OBJS)\advlib_calctrlg.obj \\r
        $(OBJS)\advlib_commandlinkbuttong.obj \\r
@@ -8117,6 +8125,11 @@ $(OBJS)\monodll_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(OBJS)\monodll_bannerwindow.obj: ..\..\src\generic\bannerwindow.cpp
+       $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\bannerwindow.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
 $(OBJS)\monodll_bmpcboxg.obj: ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\bmpcboxg.cpp\r
 !endif\r
@@ -10468,6 +10481,11 @@ $(OBJS)\monolib_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(OBJS)\monolib_bannerwindow.obj: ..\..\src\generic\bannerwindow.cpp
+       $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\bannerwindow.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
 $(OBJS)\monolib_bmpcboxg.obj: ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\bmpcboxg.cpp\r
 !endif\r
@@ -14225,6 +14243,9 @@ $(OBJS)\advdll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp
 $(OBJS)\advdll_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 \r
+$(OBJS)\advdll_bannerwindow.obj: ..\..\src\generic\bannerwindow.cpp
+       $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\bannerwindow.cpp
+
 $(OBJS)\advdll_bmpcboxg.obj: ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\bmpcboxg.cpp\r
 \r
@@ -14351,6 +14372,9 @@ $(OBJS)\advlib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp
 $(OBJS)\advlib_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 \r
+$(OBJS)\advlib_bannerwindow.obj: ..\..\src\generic\bannerwindow.cpp
+       $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\bannerwindow.cpp
+
 $(OBJS)\advlib_bmpcboxg.obj: ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\bmpcboxg.cpp\r
 \r
index 7b65f91e4362425f32858c838e29dc1f3fa4c3c5..656b0327dedb8fab5f53e85b14e429402545281d 100644 (file)
@@ -2240,6 +2240,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_hyperlnkcmn.o \\r
        $(OBJS)\monodll_odcombocmn.o \\r
        $(OBJS)\monodll_aboutdlgg.o \\r
+       $(OBJS)\monodll_bannerwindow.o \
        $(OBJS)\monodll_bmpcboxg.o \\r
        $(OBJS)\monodll_calctrlg.o \\r
        $(OBJS)\monodll_commandlinkbuttong.o \\r
@@ -2284,6 +2285,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_hyperlnkcmn.o \\r
        $(OBJS)\monodll_odcombocmn.o \\r
        $(OBJS)\monodll_aboutdlgg.o \\r
+       $(OBJS)\monodll_bannerwindow.o \
        $(OBJS)\monodll_bmpcboxg.o \\r
        $(OBJS)\monodll_calctrlg.o \\r
        $(OBJS)\monodll_commandlinkbuttong.o \\r
@@ -3010,6 +3012,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_hyperlnkcmn.o \\r
        $(OBJS)\monolib_odcombocmn.o \\r
        $(OBJS)\monolib_aboutdlgg.o \\r
+       $(OBJS)\monolib_bannerwindow.o \
        $(OBJS)\monolib_bmpcboxg.o \\r
        $(OBJS)\monolib_calctrlg.o \\r
        $(OBJS)\monolib_commandlinkbuttong.o \\r
@@ -3054,6 +3057,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_hyperlnkcmn.o \\r
        $(OBJS)\monolib_odcombocmn.o \\r
        $(OBJS)\monolib_aboutdlgg.o \\r
+       $(OBJS)\monolib_bannerwindow.o \
        $(OBJS)\monolib_bmpcboxg.o \\r
        $(OBJS)\monolib_calctrlg.o \\r
        $(OBJS)\monolib_commandlinkbuttong.o \\r
@@ -4242,6 +4246,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_hyperlnkcmn.o \\r
        $(OBJS)\advdll_odcombocmn.o \\r
        $(OBJS)\advdll_aboutdlgg.o \\r
+       $(OBJS)\advdll_bannerwindow.o \
        $(OBJS)\advdll_bmpcboxg.o \\r
        $(OBJS)\advdll_calctrlg.o \\r
        $(OBJS)\advdll_commandlinkbuttong.o \\r
@@ -4286,6 +4291,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_hyperlnkcmn.o \\r
        $(OBJS)\advdll_odcombocmn.o \\r
        $(OBJS)\advdll_aboutdlgg.o \\r
+       $(OBJS)\advdll_bannerwindow.o \
        $(OBJS)\advdll_bmpcboxg.o \\r
        $(OBJS)\advdll_calctrlg.o \\r
        $(OBJS)\advdll_commandlinkbuttong.o \\r
@@ -4332,6 +4338,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_hyperlnkcmn.o \\r
        $(OBJS)\advlib_odcombocmn.o \\r
        $(OBJS)\advlib_aboutdlgg.o \\r
+       $(OBJS)\advlib_bannerwindow.o \
        $(OBJS)\advlib_bmpcboxg.o \\r
        $(OBJS)\advlib_calctrlg.o \\r
        $(OBJS)\advlib_commandlinkbuttong.o \\r
@@ -4376,6 +4383,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_hyperlnkcmn.o \\r
        $(OBJS)\advlib_odcombocmn.o \\r
        $(OBJS)\advlib_aboutdlgg.o \\r
+       $(OBJS)\advlib_bannerwindow.o \
        $(OBJS)\advlib_bmpcboxg.o \\r
        $(OBJS)\advlib_calctrlg.o \\r
        $(OBJS)\advlib_commandlinkbuttong.o \\r
@@ -8267,6 +8275,11 @@ $(OBJS)\monodll_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp
 endif\r
 \r
 ifeq ($(USE_GUI),1)\r
+$(OBJS)\monodll_bannerwindow.o: ../../src/generic/bannerwindow.cpp
+       $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
 $(OBJS)\monodll_bmpcboxg.o: ../../src/generic/bmpcboxg.cpp\r
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<\r
 endif\r
@@ -10618,6 +10631,11 @@ $(OBJS)\monolib_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp
 endif\r
 \r
 ifeq ($(USE_GUI),1)\r
+$(OBJS)\monolib_bannerwindow.o: ../../src/generic/bannerwindow.cpp
+       $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
+ifeq ($(USE_GUI),1)
 $(OBJS)\monolib_bmpcboxg.o: ../../src/generic/bmpcboxg.cpp\r
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<\r
 endif\r
@@ -14375,6 +14393,9 @@ $(OBJS)\advdll_odcombocmn.o: ../../src/common/odcombocmn.cpp
 $(OBJS)\advdll_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp\r
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\advdll_bannerwindow.o: ../../src/generic/bannerwindow.cpp
+       $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advdll_bmpcboxg.o: ../../src/generic/bmpcboxg.cpp\r
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<\r
 \r
@@ -14501,6 +14522,9 @@ $(OBJS)\advlib_odcombocmn.o: ../../src/common/odcombocmn.cpp
 $(OBJS)\advlib_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp\r
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\advlib_bannerwindow.o: ../../src/generic/bannerwindow.cpp
+       $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advlib_bmpcboxg.o: ../../src/generic/bmpcboxg.cpp\r
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<\r
 \r
index fea35eea3481356205634196a475a61a718ff48e..7948df179b7f17babcf86555074fe7a35498b71e 100644 (file)
@@ -2434,6 +2434,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_hyperlnkcmn.obj \\r
        $(OBJS)\monodll_odcombocmn.obj \\r
        $(OBJS)\monodll_aboutdlgg.obj \\r
+       $(OBJS)\monodll_bannerwindow.obj \
        $(OBJS)\monodll_bmpcboxg.obj \\r
        $(OBJS)\monodll_calctrlg.obj \\r
        $(OBJS)\monodll_commandlinkbuttong.obj \\r
@@ -2478,6 +2479,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_hyperlnkcmn.obj \\r
        $(OBJS)\monodll_odcombocmn.obj \\r
        $(OBJS)\monodll_aboutdlgg.obj \\r
+       $(OBJS)\monodll_bannerwindow.obj \
        $(OBJS)\monodll_bmpcboxg.obj \\r
        $(OBJS)\monodll_calctrlg.obj \\r
        $(OBJS)\monodll_commandlinkbuttong.obj \\r
@@ -3204,6 +3206,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_hyperlnkcmn.obj \\r
        $(OBJS)\monolib_odcombocmn.obj \\r
        $(OBJS)\monolib_aboutdlgg.obj \\r
+       $(OBJS)\monolib_bannerwindow.obj \
        $(OBJS)\monolib_bmpcboxg.obj \\r
        $(OBJS)\monolib_calctrlg.obj \\r
        $(OBJS)\monolib_commandlinkbuttong.obj \\r
@@ -3248,6 +3251,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_hyperlnkcmn.obj \\r
        $(OBJS)\monolib_odcombocmn.obj \\r
        $(OBJS)\monolib_aboutdlgg.obj \\r
+       $(OBJS)\monolib_bannerwindow.obj \
        $(OBJS)\monolib_bmpcboxg.obj \\r
        $(OBJS)\monolib_calctrlg.obj \\r
        $(OBJS)\monolib_commandlinkbuttong.obj \\r
@@ -4498,6 +4502,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_hyperlnkcmn.obj \\r
        $(OBJS)\advdll_odcombocmn.obj \\r
        $(OBJS)\advdll_aboutdlgg.obj \\r
+       $(OBJS)\advdll_bannerwindow.obj \
        $(OBJS)\advdll_bmpcboxg.obj \\r
        $(OBJS)\advdll_calctrlg.obj \\r
        $(OBJS)\advdll_commandlinkbuttong.obj \\r
@@ -4542,6 +4547,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_hyperlnkcmn.obj \\r
        $(OBJS)\advdll_odcombocmn.obj \\r
        $(OBJS)\advdll_aboutdlgg.obj \\r
+       $(OBJS)\advdll_bannerwindow.obj \
        $(OBJS)\advdll_bmpcboxg.obj \\r
        $(OBJS)\advdll_calctrlg.obj \\r
        $(OBJS)\advdll_commandlinkbuttong.obj \\r
@@ -4590,6 +4596,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_hyperlnkcmn.obj \\r
        $(OBJS)\advlib_odcombocmn.obj \\r
        $(OBJS)\advlib_aboutdlgg.obj \\r
+       $(OBJS)\advlib_bannerwindow.obj \
        $(OBJS)\advlib_bmpcboxg.obj \\r
        $(OBJS)\advlib_calctrlg.obj \\r
        $(OBJS)\advlib_commandlinkbuttong.obj \\r
@@ -4634,6 +4641,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_hyperlnkcmn.obj \\r
        $(OBJS)\advlib_odcombocmn.obj \\r
        $(OBJS)\advlib_aboutdlgg.obj \\r
+       $(OBJS)\advlib_bannerwindow.obj \
        $(OBJS)\advlib_bmpcboxg.obj \\r
        $(OBJS)\advlib_calctrlg.obj \\r
        $(OBJS)\advlib_commandlinkbuttong.obj \\r
@@ -8697,6 +8705,11 @@ $(OBJS)\monodll_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(OBJS)\monodll_bannerwindow.obj: ..\..\src\generic\bannerwindow.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\bannerwindow.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
 $(OBJS)\monodll_bmpcboxg.obj: ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\bmpcboxg.cpp\r
 !endif\r
@@ -11048,6 +11061,11 @@ $(OBJS)\monolib_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(OBJS)\monolib_bannerwindow.obj: ..\..\src\generic\bannerwindow.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\bannerwindow.cpp
+!endif
+
+!if "$(USE_GUI)" == "1"
 $(OBJS)\monolib_bmpcboxg.obj: ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\bmpcboxg.cpp\r
 !endif\r
@@ -14805,6 +14823,9 @@ $(OBJS)\advdll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp
 $(OBJS)\advdll_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 \r
+$(OBJS)\advdll_bannerwindow.obj: ..\..\src\generic\bannerwindow.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\bannerwindow.cpp
+
 $(OBJS)\advdll_bmpcboxg.obj: ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\bmpcboxg.cpp\r
 \r
@@ -14931,6 +14952,9 @@ $(OBJS)\advlib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp
 $(OBJS)\advlib_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 \r
+$(OBJS)\advlib_bannerwindow.obj: ..\..\src\generic\bannerwindow.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\bannerwindow.cpp
+
 $(OBJS)\advlib_bmpcboxg.obj: ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\bmpcboxg.cpp\r
 \r
index bdaeb130e26f8515771b2d97f9d919ee99de10e0..9f2d8525e1c8ffa429bf4ecd02aabe6694b3f3c1 100644 (file)
@@ -792,6 +792,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_hyperlnkcmn.obj &\r
        $(OBJS)\monodll_odcombocmn.obj &\r
        $(OBJS)\monodll_aboutdlgg.obj &\r
+       $(OBJS)\monodll_bannerwindow.obj &
        $(OBJS)\monodll_bmpcboxg.obj &\r
        $(OBJS)\monodll_calctrlg.obj &\r
        $(OBJS)\monodll_commandlinkbuttong.obj &\r
@@ -836,6 +837,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_hyperlnkcmn.obj &\r
        $(OBJS)\monodll_odcombocmn.obj &\r
        $(OBJS)\monodll_aboutdlgg.obj &\r
+       $(OBJS)\monodll_bannerwindow.obj &
        $(OBJS)\monodll_bmpcboxg.obj &\r
        $(OBJS)\monodll_calctrlg.obj &\r
        $(OBJS)\monodll_commandlinkbuttong.obj &\r
@@ -1567,6 +1569,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_hyperlnkcmn.obj &\r
        $(OBJS)\monolib_odcombocmn.obj &\r
        $(OBJS)\monolib_aboutdlgg.obj &\r
+       $(OBJS)\monolib_bannerwindow.obj &
        $(OBJS)\monolib_bmpcboxg.obj &\r
        $(OBJS)\monolib_calctrlg.obj &\r
        $(OBJS)\monolib_commandlinkbuttong.obj &\r
@@ -1611,6 +1614,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_hyperlnkcmn.obj &\r
        $(OBJS)\monolib_odcombocmn.obj &\r
        $(OBJS)\monolib_aboutdlgg.obj &\r
+       $(OBJS)\monolib_bannerwindow.obj &
        $(OBJS)\monolib_bmpcboxg.obj &\r
        $(OBJS)\monolib_calctrlg.obj &\r
        $(OBJS)\monolib_commandlinkbuttong.obj &\r
@@ -2815,6 +2819,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_hyperlnkcmn.obj &\r
        $(OBJS)\advdll_odcombocmn.obj &\r
        $(OBJS)\advdll_aboutdlgg.obj &\r
+       $(OBJS)\advdll_bannerwindow.obj &
        $(OBJS)\advdll_bmpcboxg.obj &\r
        $(OBJS)\advdll_calctrlg.obj &\r
        $(OBJS)\advdll_commandlinkbuttong.obj &\r
@@ -2859,6 +2864,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_hyperlnkcmn.obj &\r
        $(OBJS)\advdll_odcombocmn.obj &\r
        $(OBJS)\advdll_aboutdlgg.obj &\r
+       $(OBJS)\advdll_bannerwindow.obj &
        $(OBJS)\advdll_bmpcboxg.obj &\r
        $(OBJS)\advdll_calctrlg.obj &\r
        $(OBJS)\advdll_commandlinkbuttong.obj &\r
@@ -2907,6 +2913,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_hyperlnkcmn.obj &\r
        $(OBJS)\advlib_odcombocmn.obj &\r
        $(OBJS)\advlib_aboutdlgg.obj &\r
+       $(OBJS)\advlib_bannerwindow.obj &
        $(OBJS)\advlib_bmpcboxg.obj &\r
        $(OBJS)\advlib_calctrlg.obj &\r
        $(OBJS)\advlib_commandlinkbuttong.obj &\r
@@ -2951,6 +2958,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_hyperlnkcmn.obj &\r
        $(OBJS)\advlib_odcombocmn.obj &\r
        $(OBJS)\advlib_aboutdlgg.obj &\r
+       $(OBJS)\advlib_bannerwindow.obj &
        $(OBJS)\advlib_bmpcboxg.obj &\r
        $(OBJS)\advlib_calctrlg.obj &\r
        $(OBJS)\advlib_commandlinkbuttong.obj &\r
@@ -8526,6 +8534,11 @@ $(OBJS)\monodll_aboutdlgg.obj :  .AUTODEPEND ..\..\src\generic\aboutdlgg.cpp
 !endif\r
 \r
 !ifeq USE_GUI 1\r
+$(OBJS)\monodll_bannerwindow.obj :  .AUTODEPEND ..\..\src\generic\bannerwindow.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
 $(OBJS)\monodll_bmpcboxg.obj :  .AUTODEPEND ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<\r
 !endif\r
@@ -10877,6 +10890,11 @@ $(OBJS)\monolib_aboutdlgg.obj :  .AUTODEPEND ..\..\src\generic\aboutdlgg.cpp
 !endif\r
 \r
 !ifeq USE_GUI 1\r
+$(OBJS)\monolib_bannerwindow.obj :  .AUTODEPEND ..\..\src\generic\bannerwindow.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+!endif
+
+!ifeq USE_GUI 1
 $(OBJS)\monolib_bmpcboxg.obj :  .AUTODEPEND ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<\r
 !endif\r
@@ -14634,6 +14652,9 @@ $(OBJS)\advdll_odcombocmn.obj :  .AUTODEPEND ..\..\src\common\odcombocmn.cpp
 $(OBJS)\advdll_aboutdlgg.obj :  .AUTODEPEND ..\..\src\generic\aboutdlgg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<\r
 \r
+$(OBJS)\advdll_bannerwindow.obj :  .AUTODEPEND ..\..\src\generic\bannerwindow.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
+
 $(OBJS)\advdll_bmpcboxg.obj :  .AUTODEPEND ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<\r
 \r
@@ -14760,6 +14781,9 @@ $(OBJS)\advlib_odcombocmn.obj :  .AUTODEPEND ..\..\src\common\odcombocmn.cpp
 $(OBJS)\advlib_aboutdlgg.obj :  .AUTODEPEND ..\..\src\generic\aboutdlgg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<\r
 \r
+$(OBJS)\advlib_bannerwindow.obj :  .AUTODEPEND ..\..\src\generic\bannerwindow.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
+
 $(OBJS)\advlib_bmpcboxg.obj :  .AUTODEPEND ..\..\src\generic\bmpcboxg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<\r
 \r
index 142a143e0444564f6ff75d506b6fc2a9911e9457..a780126fa206ec207d42689354e3389242589fce 100644 (file)
@@ -563,6 +563,10 @@ SOURCE=..\..\src\generic\animateg.cpp
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\src\generic\bannerwindow.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\src\generic\bmpcboxg.cpp\r
 # End Source File\r
 # Begin Source File\r
@@ -1012,6 +1016,10 @@ SOURCE=..\..\include\wx\animate.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\bannerwindow.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\bmpcbox.h\r
 # End Source File\r
 # Begin Source File\r
index 8f33605177759082c827f8d98d6c95f26b6a9332..995d25ffa7e320035b4c225d5a720540499fe6c0 100644 (file)
@@ -5984,6 +5984,10 @@ SOURCE=..\..\include\wx\aui\auibook.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\bannerwindow.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\ribbon\bar.h\r
 # End Source File\r
 # Begin Source File\r
index fd8c6ffbfe525a3d60716810178e5c98364d87c7..8aae4bbc49381a5f79a8051a7eda0db9cb27a17b 100644 (file)
                                RelativePath="..\..\src\generic\animateg.cpp">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\bannerwindow.cpp">
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\bmpcboxg.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\include\wx\animate.h">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\bannerwindow.h">
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\bmpcbox.h">\r
                        </File>\r
                        <File\r
index 892a7991707caee6373e3a3331ee88cb6ed7647a..d25e53cc907dcb71c034f9229662fbc0fe2c62a9 100644 (file)
                                RelativePath="..\..\include\wx\aui\auibook.h">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\bannerwindow.h">
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\ribbon\bar.h">\r
                        </File>\r
                        <File\r
index 21b9aa3cb2149435f99a870cc9ae6853c4c9340a..39fd8fe33e424c1525c6a9d9ccce7c59b697e205 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\bannerwindow.cpp"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\bmpcboxg.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\bannerwindow.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\bmpcbox.h"\r
                                >\r
                        </File>\r
index d3d8da208a0ce19e7b111355151d447841e4f857..3be4420e15e603c56cd6472d349fdf3784f5fea9 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\bannerwindow.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\ribbon\bar.h"\r
                                >\r
                        </File>\r
index 174463f822e38bec9fcc7a2951b0c88e9f808393..fe4b1d162f41b35a7822ffc2b04ae037c0df3f45 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\bannerwindow.cpp"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\bmpcboxg.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\bannerwindow.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\bmpcbox.h"\r
                                >\r
                        </File>\r
index d8110a956bca4957abb1d8921d04bb47e2b49cc4..6b1255c1d2b9241656f49ada8be87d4df9efb521 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\bannerwindow.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\ribbon\bar.h"\r
                                >\r
                        </File>\r
index f602dbf16b00865cb7844a1f1f0955cb5938fb27..41ff05c2e614acb4a5f9e204d110207d1f436fe6 100755 (executable)
--- a/configure
+++ b/configure
@@ -1809,6 +1809,7 @@ Optional Features:
   --enable-markup         support wxControl::SetLabelMarkup
   --enable-accel          use accelerators
   --enable-animatectrl    use wxAnimationCtrl class
+  --enable-bannerwindow   use wxBannerWindow class
   --enable-artstd         use standard XPM icons in wxArtProvider
   --enable-arttango       use Tango icons in wxArtProvider
   --enable-bmpbutton      use wxBitmapButton class
@@ -9853,6 +9854,7 @@ echo "${ECHO_T}$result" >&6; }
 if test "$wxUSE_CONTROLS" = "no"; then
     DEFAULT_wxUSE_ACCEL=no
     DEFAULT_wxUSE_ANIMATIONCTRL=no
+    DEFAULT_wxUSE_BANNERWINDOW=no
     DEFAULT_wxUSE_BMPBUTTON=no
     DEFAULT_wxUSE_BUTTON=no
     DEFAULT_wxUSE_CALCTRL=no
 echo "${ECHO_T}$result" >&6; }
 
 
+          enablestring=
+          defaultval=$wxUSE_ALL_FEATURES
+          if test -z "$defaultval"; then
+              if test x"$enablestring" = xdisable; then
+                  defaultval=yes
+              else
+                  defaultval=no
+              fi
+          fi
+
+          { echo "$as_me:$LINENO: checking for --${enablestring:-enable}-bannerwindow" >&5
+echo $ECHO_N "checking for --${enablestring:-enable}-bannerwindow... $ECHO_C" >&6; }
+          # Check whether --enable-bannerwindow was given.
+if test "${enable_bannerwindow+set}" = set; then
+  enableval=$enable_bannerwindow;
+                          if test "$enableval" = yes; then
+                            wx_cv_use_bannerwindow='wxUSE_BANNERWINDOW=yes'
+                          else
+                            wx_cv_use_bannerwindow='wxUSE_BANNERWINDOW=no'
+                          fi
+
+else
+
+                          wx_cv_use_bannerwindow='wxUSE_BANNERWINDOW=${'DEFAULT_wxUSE_BANNERWINDOW":-$defaultval}"
+
+fi
+
+
+          eval "$wx_cv_use_bannerwindow"
+
+          if test x"$enablestring" = xdisable; then
+            if test $wxUSE_BANNERWINDOW = no; then
+              result=yes
+            else
+              result=no
+            fi
+          else
+            result=$wxUSE_BANNERWINDOW
+          fi
+
+          { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+
+
           enablestring=
           defaultval=$wxUSE_ALL_FEATURES
           if test -z "$defaultval"; then
@@ -47255,6 +47301,13 @@ _ACEOF
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS animate"
 fi
 
+if test "$wxUSE_BANNERWINDOW" = "yes"; then
+  cat >>confdefs.h <<\_ACEOF
+#define wxUSE_BANNERWINDOW 1
+_ACEOF
+
+fi
+
 if test "$wxUSE_BUTTON" = "yes"; then
   cat >>confdefs.h <<\_ACEOF
 #define wxUSE_BUTTON 1
index f2a5156351455c0763d3010d5bb81e6aebdaa0e3..69a7babfea60276b61c7a1196729bb4655974091 100644 (file)
@@ -877,6 +877,7 @@ dnl disabled
 if test "$wxUSE_CONTROLS" = "no"; then
     DEFAULT_wxUSE_ACCEL=no
     DEFAULT_wxUSE_ANIMATIONCTRL=no
+    DEFAULT_wxUSE_BANNERWINDOW=no
     DEFAULT_wxUSE_BMPBUTTON=no
     DEFAULT_wxUSE_BUTTON=no
     DEFAULT_wxUSE_CALCTRL=no
@@ -940,6 +941,7 @@ WX_ARG_FEATURE(markup,      [  --enable-markup         support wxControl::SetLab
 dnl please keep the settings below in alphabetical order
 WX_ARG_FEATURE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
 WX_ARG_FEATURE(animatectrl, [  --enable-animatectrl    use wxAnimationCtrl class], wxUSE_ANIMATIONCTRL)
+WX_ARG_FEATURE(bannerwindow,[  --enable-bannerwindow   use wxBannerWindow class], wxUSE_BANNERWINDOW)
 WX_ARG_FEATURE(artstd,      [  --enable-artstd         use standard XPM icons in wxArtProvider], wxUSE_ARTPROVIDER_STD)
 WX_ARG_FEATURE(arttango,    [  --enable-arttango       use Tango icons in wxArtProvider], wxUSE_ARTPROVIDER_TANGO)
 WX_ARG_FEATURE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
@@ -6795,6 +6797,10 @@ if test "$wxUSE_ANIMATIONCTRL" = "yes"; then
   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS animate"
 fi
 
+if test "$wxUSE_BANNERWINDOW" = "yes"; then
+  AC_DEFINE(wxUSE_BANNERWINDOW)
+fi
+
 if test "$wxUSE_BUTTON" = "yes"; then
   AC_DEFINE(wxUSE_BUTTON)
   USES_CONTROLS=1
index c25a86af535f61017ca0aa80dd5cfe9e2a48dfdf..fd5ba917f5dbfb918a4c19221ed95699833cf54d 100644 (file)
@@ -450,6 +450,7 @@ All (GUI):
 - Added documented, public wxNavigationEnabled<> class.
 - Added wxTextCtrl::PositionToCoords() (Navaneeth).
 - Added support for wxHELP button to wxMessageDialog.
+- Added wxBannerWindow class.
 - Support float, double and file name values in wxGenericValidator (troelsk).
 - Fix keyboard navigation in wxGrid with hidden columns (ivan_14_32).
 - Add wxDataViewEvent::IsEditCancelled() (Allonii).
diff --git a/docs/doxygen/images/generic/bannerwindow.png b/docs/doxygen/images/generic/bannerwindow.png
new file mode 100644 (file)
index 0000000..e8a9a48
Binary files /dev/null and b/docs/doxygen/images/generic/bannerwindow.png differ
diff --git a/include/wx/bannerwindow.h b/include/wx/bannerwindow.h
new file mode 100644 (file)
index 0000000..eca396c
--- /dev/null
@@ -0,0 +1,137 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        wx/bannerwindow.h
+// Purpose:     wxBannerWindow class declaration
+// Author:      Vadim Zeitlin
+// Created:     2011-08-16
+// RCS-ID:      $Id$
+// Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_BANNERWINDOW_H_
+#define _WX_BANNERWINDOW_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_BANNERWINDOW
+
+#include "wx/bitmap.h"
+#include "wx/event.h"
+#include "wx/window.h"
+
+class WXDLLIMPEXP_FWD_CORE wxBitmap;
+class WXDLLIMPEXP_FWD_CORE wxColour;
+class WXDLLIMPEXP_FWD_CORE wxDC;
+
+extern WXDLLIMPEXP_DATA_CORE(const char) wxBannerWindowNameStr[];
+
+// ----------------------------------------------------------------------------
+// A simple banner window showing either a bitmap or text.
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_ADV wxBannerWindow : public wxWindow
+{
+public:
+    // Default constructor, use Create() later.
+    wxBannerWindow() { Init(); }
+
+    // Convenient constructor that should be used in the majority of cases.
+    //
+    // The banner orientation changes how the text in it is displayed and also
+    // defines where is the bitmap truncated if it's too big to fit but doesn't
+    // do anything for the banner position, this is supposed to be taken care
+    // of in the usual way, e.g. using sizers.
+    wxBannerWindow(wxWindow* parent, wxDirection dir = wxLEFT)
+    {
+        Init();
+
+        Create(parent, wxID_ANY, dir);
+    }
+
+    // Full constructor provided for consistency with the other classes only.
+    wxBannerWindow(wxWindow* parent,
+                   wxWindowID winid,
+                   wxDirection dir = wxLEFT,
+                   const wxPoint& pos = wxDefaultPosition,
+                   const wxSize& size = wxDefaultSize,
+                   long style = 0,
+                   const wxString& name = wxBannerWindowNameStr)
+    {
+        Init();
+
+        Create(parent, winid, dir, pos, size, style, name);
+    }
+
+    // Can be only called on objects created with the default constructor.
+    bool Create(wxWindow* parent,
+                wxWindowID winid,
+                wxDirection dir = wxLEFT,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxString& name = wxBannerWindowNameStr);
+
+
+    // Provide an existing bitmap to show. For wxLEFT orientation the bitmap is
+    // truncated from the top, for wxTOP and wxBOTTOM -- from the right and for
+    // wxRIGHT -- from the bottom, so put the most important part of the bitmap
+    // information in the opposite direction.
+    void SetBitmap(const wxBitmap& bmp);
+
+    // Set the text to display. This is mutually exclusive with SetBitmap().
+    // Title is rendered in bold and should be single line, message can have
+    // multiple lines but is not wrapped automatically.
+    void SetText(const wxString& title, const wxString& message);
+
+    // Set the colours between which the gradient runs. This can be combined
+    // with SetText() but not SetBitmap().
+    void SetGradient(const wxColour& start, const wxColour& end);
+
+protected:
+    virtual wxSize DoGetBestClientSize() const;
+
+private:
+    // Common part of all constructors.
+    void Init();
+
+    // Fully invalidates the window.
+    void OnSize(wxSizeEvent& event);
+
+    // Redraws the window using either m_bitmap or m_title/m_message.
+    void OnPaint(wxPaintEvent& event);
+
+    // Helper of OnPaint(): draw the bitmap at the correct position depending
+    // on our orientation.
+    void DrawBitmapBackground(wxDC& dc);
+
+    // Helper of OnPaint(): draw the text in the appropriate direction.
+    void DrawBannerTextLine(wxDC& dc, const wxString& str, const wxPoint& pos);
+
+    // Return the font to use for the title. Currently this is hardcoded as a
+    // larger bold version of the standard window font but could be made
+    // configurable in the future.
+    wxFont GetTitleFont() const;
+
+
+    // The window side along which the banner is laid out.
+    wxDirection m_direction;
+
+    // If valid, this bitmap is drawn as is.
+    wxBitmap m_bitmap;
+
+    // The title and main message to draw, used if m_bitmap is invalid.
+    wxString m_title,
+             m_message;
+
+    // Start and stop gradient colours, only used when drawing text.
+    wxColour m_colStart,
+             m_colEnd;
+
+    wxDECLARE_EVENT_TABLE();
+
+    wxDECLARE_NO_COPY_CLASS(wxBannerWindow);
+};
+
+#endif // wxUSE_BANNERWINDOW
+
+#endif // _WX_BANNERWINDOW_H_
index 4e1a8361155dbbd7132cac8e0a3a0d4124a0c825..a111fd3e32d87167a4a2ae3aeb34a7c9738f2ac3 100644 (file)
 //
 // Recommended setting: 1
 #define wxUSE_ANIMATIONCTRL 1   // wxAnimationCtrl
+#define wxUSE_BANNERWINDOW  1   // wxBannerWindow
 #define wxUSE_BUTTON        1   // wxButton
 #define wxUSE_BMPBUTTON     1   // wxBitmapButton
 #define wxUSE_CALENDARCTRL  1   // wxCalendarCtrl
index 04a5c132b798d4be6952b3de7eb287de1e333127..75770ea0e94fa043b30db01c03a459441fb8a30a 100644 (file)
 //
 // Recommended setting: 1
 #define wxUSE_ANIMATIONCTRL 1   // wxAnimationCtrl
+#define wxUSE_BANNERWINDOW  1   // wxBannerWindow
 #define wxUSE_BUTTON        1   // wxButton
 #define wxUSE_BMPBUTTON     1   // wxBitmapButton
 #define wxUSE_CALENDARCTRL  1   // wxCalendarCtrl
index ce854d68cd1fdf68246399cb106d2583428245ef..f0c50f6861feaaf5a58e6cc6ceecd20587d29e2a 100644 (file)
 //
 // Recommended setting: 1
 #define wxUSE_ANIMATIONCTRL 1   // wxAnimationCtrl
+#define wxUSE_BANNERWINDOW  1   // wxBannerWindow
 #define wxUSE_BUTTON        1   // wxButton
 #define wxUSE_BMPBUTTON     1   // wxBitmapButton
 #define wxUSE_CALENDARCTRL  1   // wxCalendarCtrl
index 267647d251992a86e291ece2df6e34fc147e9de9..dae9cb5c3cc4cc7a45e0eeac69a5e754bb0598f9 100644 (file)
 //
 // Recommended setting: 1
 #define wxUSE_ANIMATIONCTRL 1   // wxAnimationCtrl
+#define wxUSE_BANNERWINDOW  1   // wxBannerWindow
 #define wxUSE_BUTTON        1   // wxButton
 #define wxUSE_BMPBUTTON     1   // wxBitmapButton
 #define wxUSE_CALENDARCTRL  1   // wxCalendarCtrl
index 57192429e2db8ad2d67541d61edbe951f158db9b..ab17bb42f0947ebd326aeed82aae66f979358afd 100644 (file)
 //
 // Recommended setting: 1
 #define wxUSE_ANIMATIONCTRL 1   // wxAnimationCtrl
+#define wxUSE_BANNERWINDOW  1   // wxBannerWindow
 #define wxUSE_BUTTON        1   // wxButton
 #define wxUSE_BMPBUTTON     1   // wxBitmapButton
 #define wxUSE_CALENDARCTRL  1   // wxCalendarCtrl
index 96b03fa46dc3461c4abd434f5174f41c5e95c797..aad15675d23eff858d61782ba9030d3eb26a66f8 100644 (file)
 //
 // Recommended setting: 1
 #define wxUSE_ANIMATIONCTRL 1   // wxAnimationCtrl
+#define wxUSE_BANNERWINDOW  1   // wxBannerWindow
 #define wxUSE_BUTTON        1   // wxButton
 #define wxUSE_BMPBUTTON     1   // wxBitmapButton
 #define wxUSE_CALENDARCTRL  1   // wxCalendarCtrl
index e85a56bf4c6037efcb8384c258ce6d3f329afabd..48a5a85155e4d4c1f3716b740a53235140100942 100644 (file)
 //
 // Recommended setting: 1
 #define wxUSE_ANIMATIONCTRL 1   // wxAnimationCtrl
+#define wxUSE_BANNERWINDOW  1   // wxBannerWindow
 #define wxUSE_BUTTON        1   // wxButton
 #define wxUSE_BMPBUTTON     1   // wxBitmapButton
 #define wxUSE_CALENDARCTRL  1   // wxCalendarCtrl
index ee5870c5c98de58d391f019de3f33eee32640a80..4407173b17149924218b99d481b72096e4b7a786 100644 (file)
 //
 // Recommended setting: 1
 #define wxUSE_ANIMATIONCTRL 1   // wxAnimationCtrl
+#define wxUSE_BANNERWINDOW  1   // wxBannerWindow
 #define wxUSE_BUTTON        1   // wxButton
 #define wxUSE_BMPBUTTON     1   // wxBitmapButton
 #define wxUSE_CALENDARCTRL  1   // wxCalendarCtrl
diff --git a/interface/wx/bannerwindow.h b/interface/wx/bannerwindow.h
new file mode 100644 (file)
index 0000000..50f70bb
--- /dev/null
@@ -0,0 +1,151 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        interface.wx/bannerwindow.h
+// Purpose:     wxBannerWindow class documentation
+// Author:      Vadim Zeitlin
+// Created:     2011-08-16
+// RCS-ID:      $Id$
+// Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+    A simple banner window showing either a bitmap or text.
+
+    Banner windows can be used to present some overview of the current window
+    contents to the user in an aesthetically pleasant way. They are typically
+    positioned along the left or top edge of the window (although this class
+    also supports right- and bottom-aligned banners) and show either a bitmap
+    with a logo or a few lines of text on a gradient-filled background.
+
+    Using this class is very simple, e.g.:
+    @code
+    MyFrame::MyFrame(...)
+    {
+        ... create the frame itself ...
+
+        // Create and initialize the banner.
+        wxBannerWindow* banner = new wxBannerWindow(this, wxTOP);
+        banner->SetText("Welcome to my wonderful program",
+                        "  Before doing anything else, you need to connect to "
+                        "the online server.\n"
+                        "  Please enter your credentials in the controls below.");
+
+        // And position it along the left edge of the window.
+        wxSizer* sizer = new wxBoxSizer(wxVERTICAL);
+        sizer->Add(banner, wxSizerFlags().Expand());
+
+        ... add the rest of the window contents to the same sizer ...
+
+        SetSizerAndFit(sizer);
+    }
+    @endcode
+
+    This class is currently implemented generically and so looks the same under
+    all platforms.
+
+    @library{wxadv}
+    @category{miscwnd}
+    @genericAppearance{bannerwindow.png}
+
+    @since 2.9.3
+ */
+class wxBannerWindow : public wxWindow
+{
+public:
+    /**
+        Default constructor, use Create() later.
+
+        This constructor is only used for two-step creation, if possible,
+        prefer using the constructor below directly instead of using this one
+        and calling Create() later.
+     */
+    wxBannerWindow();
+
+    /**
+        Convenient constructor that should be used in the majority of cases.
+
+        The only really important arguments of the full constructor below are
+        @a parent and @a dir so this class provides a convenient constructor
+        taking only them.
+
+        The banner orientation changes how the text in it is displayed and also
+        defines where is the bitmap truncated if it's too big to fit but doesn't
+        do anything for the banner position, this is supposed to be taken care
+        of in the usual way, e.g. using sizers.
+    */
+    wxBannerWindow(wxWindow* parent, wxDirection dir = wxLEFT);
+
+    /**
+        Full constructor provided for consistency with the other classes only.
+
+        Prefer to use the shorter constructor documented above. You should
+        rarely, if ever, need to use non-default values for any other
+        parameters: as the banner window doesn't generate any events, its
+        identifier is not particularly useful; its position and size will be
+        almost always managed by the containing sizer and it doesn't have any
+        specific styles. So only the parent and the banner direction need to be
+        specified.
+     */
+    wxBannerWindow(wxWindow* parent,
+                   wxWindowID winid,
+                   wxDirection dir = wxLEFT,
+                   const wxPoint& pos = wxDefaultPosition,
+                   const wxSize& size = wxDefaultSize,
+                   long style = 0,
+                   const wxString& name = wxBannerWindowNameStr);
+
+    /**
+        Really create the banner window for the objects created using the
+        default constructor.
+
+        It's an error to call Create() for the objects created using
+        non-default constructor.
+     */
+    bool Create(wxWindow* parent,
+                wxWindowID winid,
+                wxDirection dir = wxLEFT,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxString& name = wxBannerWindowNameStr);
+
+
+    /**
+        Provide the bitmap to use as background.
+
+        Notice that the bitmap should be big enough to always cover the entire
+        banner, e.g. for a horizontal banner with wxTOP style its width should
+        be bigger than any reasonable window size.
+
+        For wxLEFT orientation the bitmap is truncated from the top, for wxTOP
+        and wxBOTTOM -- from the right and for wxRIGHT -- from the bottom, so
+        put the most important part of the bitmap information in the opposite
+        direction.
+
+        If no valid background bitmap is specified, the banner draws gradient
+        background but if a valid bitmap is given here, the gradient is not
+        draw and the start and end colours specified for it are ignored.
+
+        @param bmp Bitmap to use as background. May be invalid to indicate
+            that no background bitmap should be used.
+     */
+    void SetBitmap(const wxBitmap& bmp);
+
+    /**
+        Set the text to display.
+
+        This is mutually exclusive with SetBitmap().
+
+        Title is rendered in bold and should be single line, message can have
+        multiple lines but is not wrapped automatically, include explicit line
+        breaks in the string if you want to have multiple lines.
+     */
+    void SetText(const wxString& title, const wxString& message);
+
+    /**
+        Set the colours between which the gradient runs.
+
+        The gradient colours are ignored if SetBitmap() is used.
+     */
+    void SetGradient(const wxColour& start, const wxColour& end);
+};
index b0f9c9e6e650127f1e21861b396f9b71463d5d4f..9855f6aa9b428957bc0742d8818db5f377aef551 100644 (file)
@@ -43,7 +43,7 @@ wx_top_builddir = @wx_top_builddir@
 
 DESTDIR = 
 WX_RELEASE = 2.9
-WX_VERSION = $(WX_RELEASE).2
+WX_VERSION = $(WX_RELEASE).3
 LIBDIRNAME = $(wx_top_builddir)/lib
 XRCDEMO_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \
        $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \
@@ -196,7 +196,7 @@ xrcdemo$(EXEEXT): $(XRCDEMO_OBJECTS) $(__xrcdemo___win32rc)
 
 data: 
        @mkdir -p ./rc
-       @for f in artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm; do \
+       @for f in artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm wxbanner.gif; do \
        if test ! -f ./rc/$$f -a ! -d ./rc/$$f ; \
        then x=yep ; \
        else x=`find $(srcdir)/rc/$$f -newer ./rc/$$f -print` ; \
index 640ceb508d65ce1d76fdf87406a61cc79b26822c..fce255c64cee3bd3cb1859b45b8fb161cb2ad179 100644 (file)
@@ -256,7 +256,7 @@ $(OBJS)\xrcdemo.exe: $(XRCDEMO_OBJECTS)  $(OBJS)\xrcdemo_sample.res
 \r
 data: \r
        if not exist $(OBJS)\rc mkdir $(OBJS)\rc\r
-       for %f in (artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm) do if not exist $(OBJS)\rc\%f copy .\rc\%f $(OBJS)\rc\r
+       for %f in (artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm wxbanner.gif) do if not exist $(OBJS)\rc\%f copy .\rc\%f $(OBJS)\rc
 \r
 $(OBJS)\xrcdemo_sample.res: .\..\..\samples\sample.rc\r
        brcc32 -32 -r -fo$@ -i$(BCCDIR)\include    -d__WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__NDEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) -i$(SETUPHDIR) -i.\..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES_1_p) -i. $(__DLLFLAG_p_1) -i.\..\..\samples -dNOPCH .\..\..\samples\sample.rc\r
index c0fd8fd972436e2dbbbab281cf555c33fba9b69b..5da3226c0a03b42a6a52e5120a7b817bb7e547e8 100644 (file)
@@ -243,7 +243,7 @@ $(OBJS)\xrcdemo.exe: $(XRCDEMO_OBJECTS) $(OBJS)\xrcdemo_sample_rc.o
 \r
 data: \r
        if not exist $(OBJS)\rc mkdir $(OBJS)\rc\r
-       for %%f in (artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm) do if not exist $(OBJS)\rc\%%f copy .\rc\%%f $(OBJS)\rc\r
+       for %%f in (artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm wxbanner.gif) do if not exist $(OBJS)\rc\%%f copy .\rc\%%f $(OBJS)\rc
 \r
 $(OBJS)\xrcdemo_sample_rc.o: ./../../samples/sample.rc\r
        windres --use-temp-file -i$< -o$@    --define __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__NDEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) --include-dir $(SETUPHDIR) --include-dir ./../../include $(__CAIRO_INCLUDEDIR_p) --include-dir . $(__DLLFLAG_p_1) --include-dir ./../../samples --define NOPCH\r
index 8cf1f97d864ded94dea8fd59ee554d8c0b0029c5..3ca05cfbeb2cdae599c132bfe750875cb1888d4c 100644 (file)
@@ -366,7 +366,7 @@ $(OBJS)\xrcdemo.exe: $(XRCDEMO_OBJECTS) $(OBJS)\xrcdemo_sample.res
 \r
 data: \r
        if not exist $(OBJS)\rc mkdir $(OBJS)\rc\r
-       for %f in (artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm) do if not exist $(OBJS)\rc\%f copy .\rc\%f $(OBJS)\rc\r
+       for %f in (artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm wxbanner.gif) do if not exist $(OBJS)\rc\%f copy .\rc\%f $(OBJS)\rc
 \r
 $(OBJS)\xrcdemo_sample.res: .\..\..\samples\sample.rc\r
        rc /fo$@  /d WIN32 $(____DEBUGRUNTIME_3_p_1) $(__NO_VC_CRTDBG_p_1)  /d __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__NDEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) /i $(SETUPHDIR) /i .\..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES_1_p) /i . $(__DLLFLAG_p_1) /d _WINDOWS /i .\..\..\samples /d NOPCH .\..\..\samples\sample.rc\r
index 6baceeba05bdcd3e64f034a4de040fe2d29ec200..9bcee4fd9fb09c8ddf110a422060103400c99953 100644 (file)
@@ -286,7 +286,7 @@ $(OBJS)\xrcdemo.exe :  $(XRCDEMO_OBJECTS) $(OBJS)\xrcdemo_sample.res
 \r
 data : .SYMBOLIC \r
        if not exist $(OBJS)\rc mkdir $(OBJS)\rc\r
-       for %f in (artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm) do if not exist $(OBJS)\rc\%f copy .\rc\%f $(OBJS)\rc\r
+       for %f in (artprov.xpm artprov.xrc basicdlg.xpm basicdlg.xrc controls.xpm controls.xrc custclas.xpm custclas.xrc derivdlg.xpm derivdlg.xrc fileopen.gif filesave.gif frame.xrc fuzzy.gif menu.xrc platform.xpm platform.xrc quotes.gif resource.xrc toolbar.xrc uncenter.xpm objref.xrc objrefdlg.xpm uncenter.xrc update.gif variable.xpm variable.xrc throbber.gif stop.xpm wxbanner.gif) do if not exist $(OBJS)\rc\%f copy .\rc\%f $(OBJS)\rc
 \r
 $(OBJS)\xrcdemo_sample.res :  .AUTODEPEND .\..\..\samples\sample.rc\r
        wrc -q -ad -bt=nt -r -fo=$^@    -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p)  -i=$(SETUPHDIR) -i=.\..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES) -i=. $(__DLLFLAG_p) -i=.\..\..\samples -dNOPCH $<\r
index 0d949591dcb416a90b81a8f9c1d2a2b5ae29b6c7..747f8dba7a20485c4a600e550d7094b9db5121c9 100644 (file)
@@ -38,6 +38,7 @@
             objref.xrc objrefdlg.xpm
             uncenter.xrc update.gif variable.xpm variable.xrc
             throbber.gif stop.xpm
+            wxbanner.gif
         </files>
     </wx-data>
 
index 39a678f315b75312b7a038331f554caaed6c7572..3db9177dbeb0d2a216aa0bbe19cd8139081f8c28 100644 (file)
 #define wxUSE_TIPWINDOW    0
 
 #define wxUSE_ANIMATIONCTRL 0
+#define wxUSE_BANNERWINDOW  0
 #define wxUSE_BUTTON        0
 #define wxUSE_BMPBUTTON     0
 #define wxUSE_CALENDARCTRL  0
diff --git a/src/generic/bannerwindow.cpp b/src/generic/bannerwindow.cpp
new file mode 100644 (file)
index 0000000..8aa9335
--- /dev/null
@@ -0,0 +1,262 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        wx/bannerwindow.h
+// Purpose:     wxBannerWindow class implementation
+// Author:      Vadim Zeitlin
+// Created:     2011-08-16
+// RCS-ID:      $Id$
+// Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_BANNERWINDOW
+
+#include "wx/bannerwindow.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/bitmap.h"
+    #include "wx/colour.h"
+#endif
+
+#include "wx/dcbuffer.h"
+
+namespace
+{
+
+// Some constants for banner layout, currently they're hard coded but we could
+// easily make them configurable if needed later.
+const int MARGIN_X = 5;
+const int MARGIN_Y = 5;
+
+} // anonymous namespace
+
+extern WXDLLEXPORT_DATA(const char) wxBannerWindowNameStr[] = "bannerwindow";
+
+BEGIN_EVENT_TABLE(wxBannerWindow, wxWindow)
+    EVT_SIZE(wxBannerWindow::OnSize)
+    EVT_PAINT(wxBannerWindow::OnPaint)
+END_EVENT_TABLE()
+
+void wxBannerWindow::Init()
+{
+    m_direction = wxLEFT;
+
+    m_colStart = *wxWHITE;
+    m_colEnd = *wxBLUE;
+}
+
+bool
+wxBannerWindow::Create(wxWindow* parent,
+                       wxWindowID winid,
+                       wxDirection dir,
+                       const wxPoint& pos,
+                       const wxSize& size,
+                       long style,
+                       const wxString& name)
+{
+    if ( !wxWindow::Create(parent, winid, pos, size, style, name) )
+        return false;
+
+    wxASSERT_MSG
+    (
+        dir == wxLEFT || dir == wxRIGHT || dir == wxTOP || dir == wxBOTTOM,
+        wxS("Invalid banner direction")
+    );
+
+    m_direction = dir;
+
+    SetBackgroundStyle(wxBG_STYLE_PAINT);
+
+    return true;
+}
+
+void wxBannerWindow::SetBitmap(const wxBitmap& bmp)
+{
+    m_bitmap = bmp;
+
+    InvalidateBestSize();
+
+    Refresh();
+}
+
+void wxBannerWindow::SetText(const wxString& title, const wxString& message)
+{
+    m_title = title;
+    m_message = message;
+
+    InvalidateBestSize();
+
+    Refresh();
+}
+
+void wxBannerWindow::SetGradient(const wxColour& start, const wxColour& end)
+{
+    m_colStart = start;
+    m_colEnd = end;
+
+    Refresh();
+}
+
+wxFont wxBannerWindow::GetTitleFont() const
+{
+    wxFont font = GetFont();
+    font.MakeBold().MakeLarger();
+    return font;
+}
+
+wxSize wxBannerWindow::DoGetBestClientSize() const
+{
+    if ( m_bitmap.IsOk() )
+    {
+        return m_bitmap.GetSize();
+    }
+    else
+    {
+        wxClientDC dc(const_cast<wxBannerWindow *>(this));
+        const wxSize sizeText = dc.GetMultiLineTextExtent(m_message);
+
+        dc.SetFont(GetTitleFont());
+
+        const wxSize sizeTitle = dc.GetTextExtent(m_title);
+
+        wxSize sizeWin(wxMax(sizeTitle.x, sizeText.x), sizeTitle.y + sizeText.y);
+
+        // If we draw the text vertically width and height are swapped.
+        if ( m_direction == wxLEFT || m_direction == wxRIGHT )
+            wxSwap(sizeWin.x, sizeWin.y);
+
+        sizeWin += 2*wxSize(MARGIN_X, MARGIN_Y);
+
+        return sizeWin;
+    }
+}
+
+void wxBannerWindow::OnSize(wxSizeEvent& event)
+{
+    Refresh();
+
+    event.Skip();
+}
+
+void wxBannerWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
+{
+    if ( m_bitmap.IsOk() && m_title.empty() && m_message.empty() )
+    {
+        // No need for buffering in this case.
+        wxPaintDC dc(this);
+
+        DrawBitmapBackground(dc);
+    }
+    else // We need to compose our contents ourselves.
+    {
+        wxAutoBufferedPaintDC dc(this);
+
+        // Deal with the background first.
+        if ( m_bitmap.IsOk() )
+        {
+            DrawBitmapBackground(dc);
+        }
+        else // Draw gradient background.
+        {
+            wxDirection gradientDir;
+            if ( m_direction == wxLEFT )
+            {
+                gradientDir = wxTOP;
+            }
+            else if ( m_direction == wxRIGHT )
+            {
+                gradientDir = wxBOTTOM;
+            }
+            else // For both wxTOP and wxBOTTOM.
+            {
+                gradientDir = wxRIGHT;
+            }
+
+            dc.GradientFillLinear(GetClientRect(), m_colStart, m_colEnd,
+                                  gradientDir);
+        }
+
+        // Now draw the text on top of it.
+        dc.SetFont(GetTitleFont());
+
+        wxPoint pos(MARGIN_X, MARGIN_Y);
+        DrawBannerTextLine(dc, m_title, pos);
+        pos.y += dc.GetTextExtent(m_title).y;
+
+        dc.SetFont(GetFont());
+
+        wxArrayString lines = wxSplit(m_message, '\n', '\0');
+        const unsigned numLines = lines.size();
+        for ( unsigned n = 0; n < numLines; n++ )
+        {
+            const wxString& line = lines[n];
+
+            DrawBannerTextLine(dc, line, pos);
+            pos.y += dc.GetTextExtent(line).y;
+        }
+    }
+}
+
+void wxBannerWindow::DrawBitmapBackground(wxDC& dc)
+{
+    switch ( m_direction )
+    {
+        case wxTOP:
+        case wxBOTTOM:
+        case wxRIGHT:
+            // Draw the bitmap normally, its rightmost or bottom part could be
+            // truncated, as it's meant to be.
+            dc.DrawBitmap(m_bitmap, 0, 0);
+            break;
+
+        case wxLEFT:
+            // The top most part of the bitmap may be truncated but its bottom
+            // must be always visible so intentionally draw it possibly partly
+            // outside of the window.
+            dc.DrawBitmap(m_bitmap,
+                          0, GetClientSize().y - m_bitmap.GetHeight());
+            break;
+
+        // This case is there only to prevent g++ warnings about not handling
+        // some enum elements in the switch, it can't really happen.
+        case wxALL:
+            wxFAIL_MSG( wxS("Unreachable") );
+    }
+}
+
+void
+wxBannerWindow::DrawBannerTextLine(wxDC& dc,
+                                   const wxString& str,
+                                   const wxPoint& pos)
+{
+    switch ( m_direction )
+    {
+        case wxTOP:
+        case wxBOTTOM:
+            // The simple case: we just draw the text normally.
+            dc.DrawText(str, pos);
+            break;
+
+        case wxLEFT:
+            // We draw the text vertically and start from the lower left
+            // corner and not the upper left one as usual.
+            dc.DrawRotatedText(str, pos.y, GetClientSize().y - pos.x, 90);
+            break;
+
+        case wxRIGHT:
+            // We also draw the text vertically but now we start from the upper
+            // right corner and draw it from top to bottom.
+            dc.DrawRotatedText(str, GetClientSize().x - pos.y, pos.x, -90);
+            break;
+
+        case wxALL:
+            wxFAIL_MSG( wxS("Unreachable") );
+    }
+}
+
+#endif // wxUSE_BANNERWINDOW