]> git.saurik.com Git - wxWidgets.git/commitdiff
Initial wxInfoBar implementation.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 5 Oct 2009 22:54:13 +0000 (22:54 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 5 Oct 2009 22:54:13 +0000 (22:54 +0000)
Add generic implementation, documentation and examples showing the use of the
new class in the samples.

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

34 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/mainpages/cat_classes.h
include/wx/chkconf.h
include/wx/generic/infobar.h [new file with mode: 0644]
include/wx/infobar.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/infobar.h [new file with mode: 0644]
samples/dialogs/dialogs.cpp
samples/dialogs/dialogs.h
setup.h.in
src/generic/infobar.cpp [new file with mode: 0644]

index aab321119f880eeec2b36b7e970c672ce876740f..37ae7210ffc547ad605bf38c015e5eff007498cb 100644 (file)
@@ -3400,6 +3400,7 @@ COND_WXUNIV_0_ADVANCED_HDR =  \
        wx/generic/gridsel.h \
        wx/generic/helpext.h \
        wx/generic/hyperlink.h \
+       wx/generic/infobar.h \
        wx/generic/laywin.h \
        wx/generic/notifmsg.h \
        wx/generic/propdlg.h \
@@ -3408,6 +3409,7 @@ COND_WXUNIV_0_ADVANCED_HDR =  \
        wx/generic/wizard.h \
        wx/grid.h \
        wx/hyperlink.h \
+       wx/infobar.h \
        wx/joystick.h \
        wx/laywin.h \
        wx/notifmsg.h \
@@ -3443,6 +3445,7 @@ COND_WXUNIV_1_ADVANCED_HDR =  \
        wx/generic/gridsel.h \
        wx/generic/helpext.h \
        wx/generic/hyperlink.h \
+       wx/generic/infobar.h \
        wx/generic/laywin.h \
        wx/generic/notifmsg.h \
        wx/generic/propdlg.h \
@@ -3451,6 +3454,7 @@ COND_WXUNIV_1_ADVANCED_HDR =  \
        wx/generic/wizard.h \
        wx/grid.h \
        wx/hyperlink.h \
+       wx/infobar.h \
        wx/joystick.h \
        wx/laywin.h \
        wx/notifmsg.h \
@@ -5611,6 +5615,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS =  \
        monodll_gridsel.o \
        monodll_helpext.o \
        monodll_hyperlinkg.o \
+       monodll_infobar.o \
        monodll_laywin.o \
        monodll_notifmsgg.o \
        monodll_odcombo.o \
@@ -5640,6 +5645,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS =  \
        monodll_gridsel.o \
        monodll_helpext.o \
        monodll_hyperlinkg.o \
+       monodll_infobar.o \
        monodll_laywin.o \
        monodll_notifmsgg.o \
        monodll_odcombo.o \
@@ -7421,6 +7427,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 =  \
        monolib_gridsel.o \
        monolib_helpext.o \
        monolib_hyperlinkg.o \
+       monolib_infobar.o \
        monolib_laywin.o \
        monolib_notifmsgg.o \
        monolib_odcombo.o \
@@ -7450,6 +7457,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 =  \
        monolib_gridsel.o \
        monolib_helpext.o \
        monolib_hyperlinkg.o \
+       monolib_infobar.o \
        monolib_laywin.o \
        monolib_notifmsgg.o \
        monolib_odcombo.o \
@@ -10913,6 +10921,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 =  \
        advdll_gridsel.o \
        advdll_helpext.o \
        advdll_hyperlinkg.o \
+       advdll_infobar.o \
        advdll_laywin.o \
        advdll_notifmsgg.o \
        advdll_odcombo.o \
@@ -10942,6 +10951,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_2 =  \
        advdll_gridsel.o \
        advdll_helpext.o \
        advdll_hyperlinkg.o \
+       advdll_infobar.o \
        advdll_laywin.o \
        advdll_notifmsgg.o \
        advdll_odcombo.o \
@@ -11007,6 +11017,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 =  \
        advlib_gridsel.o \
        advlib_helpext.o \
        advlib_hyperlinkg.o \
+       advlib_infobar.o \
        advlib_laywin.o \
        advlib_notifmsgg.o \
        advlib_odcombo.o \
@@ -11036,6 +11047,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_3 =  \
        advlib_gridsel.o \
        advlib_helpext.o \
        advlib_hyperlinkg.o \
+       advlib_infobar.o \
        advlib_laywin.o \
        advlib_notifmsgg.o \
        advlib_odcombo.o \
@@ -18712,6 +18724,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@monodll_hyperlinkg.o: $(srcdir)/src/generic/hyperlinkg.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/hyperlinkg.cpp
 
+@COND_USE_GUI_1@monodll_infobar.o: $(srcdir)/src/generic/infobar.cpp $(MONODLL_ODEP)
+@COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/infobar.cpp
+
 @COND_USE_GUI_1@monodll_laywin.o: $(srcdir)/src/generic/laywin.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp
 
@@ -23482,6 +23497,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@monolib_hyperlinkg.o: $(srcdir)/src/generic/hyperlinkg.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/hyperlinkg.cpp
 
+@COND_USE_GUI_1@monolib_infobar.o: $(srcdir)/src/generic/infobar.cpp $(MONOLIB_ODEP)
+@COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/infobar.cpp
+
 @COND_USE_GUI_1@monolib_laywin.o: $(srcdir)/src/generic/laywin.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp
 
@@ -31969,6 +31987,9 @@ advdll_helpext.o: $(srcdir)/src/generic/helpext.cpp $(ADVDLL_ODEP)
 advdll_hyperlinkg.o: $(srcdir)/src/generic/hyperlinkg.cpp $(ADVDLL_ODEP)
        $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/hyperlinkg.cpp
 
+advdll_infobar.o: $(srcdir)/src/generic/infobar.cpp $(ADVDLL_ODEP)
+       $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/infobar.cpp
+
 advdll_laywin.o: $(srcdir)/src/generic/laywin.cpp $(ADVDLL_ODEP)
        $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp
 
@@ -32293,6 +32314,9 @@ advlib_helpext.o: $(srcdir)/src/generic/helpext.cpp $(ADVLIB_ODEP)
 advlib_hyperlinkg.o: $(srcdir)/src/generic/hyperlinkg.cpp $(ADVLIB_ODEP)
        $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/hyperlinkg.cpp
 
+advlib_infobar.o: $(srcdir)/src/generic/infobar.cpp $(ADVLIB_ODEP)
+       $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/infobar.cpp
+
 advlib_laywin.o: $(srcdir)/src/generic/laywin.cpp $(ADVLIB_ODEP)
        $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp
 
index 5b045f8b8d1367ade9e85f4e1e15bba570f77f3e..894d4679729b3f0c122baa6a5c2c7ca3094a3ff7 100644 (file)
@@ -2829,6 +2829,7 @@ src/osx/iphone/window.mm
     src/generic/gridsel.cpp
     src/generic/helpext.cpp
     src/generic/hyperlinkg.cpp
+    src/generic/infobar.cpp
     src/generic/laywin.cpp
     src/generic/notifmsgg.cpp
     src/generic/odcombo.cpp
@@ -2860,6 +2861,7 @@ src/osx/iphone/window.mm
     wx/generic/gridsel.h
     wx/generic/helpext.h
     wx/generic/hyperlink.h
+    wx/generic/infobar.h
     wx/generic/laywin.h
     wx/generic/notifmsg.h
     wx/generic/propdlg.h
@@ -2868,6 +2870,7 @@ src/osx/iphone/window.mm
     wx/generic/wizard.h
     wx/grid.h
     wx/hyperlink.h
+    wx/infobar.h
     wx/joystick.h
     wx/laywin.h
     wx/notifmsg.h
index 0a09b92557dc1b8faf0fe7846318686489bc77c5..04a86a036e1aab7b8015331b8203802d2925207b 100644 (file)
@@ -2091,6 +2091,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridsel.obj \
        $(OBJS)\monodll_helpext.obj \
        $(OBJS)\monodll_hyperlinkg.obj \
+       $(OBJS)\monodll_infobar.obj \
        $(OBJS)\monodll_laywin.obj \
        $(OBJS)\monodll_notifmsgg.obj \
        $(OBJS)\monodll_odcombo.obj \
@@ -2130,6 +2131,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridsel.obj \
        $(OBJS)\monodll_helpext.obj \
        $(OBJS)\monodll_hyperlinkg.obj \
+       $(OBJS)\monodll_infobar.obj \
        $(OBJS)\monodll_laywin.obj \
        $(OBJS)\monodll_notifmsgg.obj \
        $(OBJS)\monodll_odcombo.obj \
@@ -2787,6 +2789,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridsel.obj \
        $(OBJS)\monolib_helpext.obj \
        $(OBJS)\monolib_hyperlinkg.obj \
+       $(OBJS)\monolib_infobar.obj \
        $(OBJS)\monolib_laywin.obj \
        $(OBJS)\monolib_notifmsgg.obj \
        $(OBJS)\monolib_odcombo.obj \
@@ -2826,6 +2829,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridsel.obj \
        $(OBJS)\monolib_helpext.obj \
        $(OBJS)\monolib_hyperlinkg.obj \
+       $(OBJS)\monolib_infobar.obj \
        $(OBJS)\monolib_laywin.obj \
        $(OBJS)\monolib_notifmsgg.obj \
        $(OBJS)\monolib_odcombo.obj \
@@ -3873,6 +3877,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridsel.obj \
        $(OBJS)\advdll_helpext.obj \
        $(OBJS)\advdll_hyperlinkg.obj \
+       $(OBJS)\advdll_infobar.obj \
        $(OBJS)\advdll_laywin.obj \
        $(OBJS)\advdll_notifmsgg.obj \
        $(OBJS)\advdll_odcombo.obj \
@@ -3912,6 +3917,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridsel.obj \
        $(OBJS)\advdll_helpext.obj \
        $(OBJS)\advdll_hyperlinkg.obj \
+       $(OBJS)\advdll_infobar.obj \
        $(OBJS)\advdll_laywin.obj \
        $(OBJS)\advdll_notifmsgg.obj \
        $(OBJS)\advdll_odcombo.obj \
@@ -3951,6 +3957,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridsel.obj \
        $(OBJS)\advlib_helpext.obj \
        $(OBJS)\advlib_hyperlinkg.obj \
+       $(OBJS)\advlib_infobar.obj \
        $(OBJS)\advlib_laywin.obj \
        $(OBJS)\advlib_notifmsgg.obj \
        $(OBJS)\advlib_odcombo.obj \
@@ -3990,6 +3997,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridsel.obj \
        $(OBJS)\advlib_helpext.obj \
        $(OBJS)\advlib_hyperlinkg.obj \
+       $(OBJS)\advlib_infobar.obj \
        $(OBJS)\advlib_laywin.obj \
        $(OBJS)\advlib_notifmsgg.obj \
        $(OBJS)\advlib_odcombo.obj \
@@ -7714,6 +7722,11 @@ $(OBJS)\monodll_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\hyperlinkg.cpp
 !endif
 
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_infobar.obj: ..\..\src\generic\infobar.cpp
+       $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\infobar.cpp
+!endif
+
 !if "$(USE_GUI)" == "1"
 $(OBJS)\monodll_laywin.obj: ..\..\src\generic\laywin.cpp
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\laywin.cpp
@@ -9990,6 +10003,11 @@ $(OBJS)\monolib_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\hyperlinkg.cpp
 !endif
 
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_infobar.obj: ..\..\src\generic\infobar.cpp
+       $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\infobar.cpp
+!endif
+
 !if "$(USE_GUI)" == "1"
 $(OBJS)\monolib_laywin.obj: ..\..\src\generic\laywin.cpp
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\laywin.cpp
@@ -13619,6 +13637,9 @@ $(OBJS)\advdll_helpext.obj: ..\..\src\generic\helpext.cpp
 $(OBJS)\advdll_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\hyperlinkg.cpp
 
+$(OBJS)\advdll_infobar.obj: ..\..\src\generic\infobar.cpp
+       $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\infobar.cpp
+
 $(OBJS)\advdll_laywin.obj: ..\..\src\generic\laywin.cpp
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\laywin.cpp
 
@@ -13730,6 +13751,9 @@ $(OBJS)\advlib_helpext.obj: ..\..\src\generic\helpext.cpp
 $(OBJS)\advlib_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\hyperlinkg.cpp
 
+$(OBJS)\advlib_infobar.obj: ..\..\src\generic\infobar.cpp
+       $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\infobar.cpp
+
 $(OBJS)\advlib_laywin.obj: ..\..\src\generic\laywin.cpp
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\laywin.cpp
 
index 4275624845a3aff848efd794de982534354f8eaa..1c303f3b92e276469ef147c3d5b7f8ef0c1c75dc 100644 (file)
@@ -2113,6 +2113,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridsel.o \
        $(OBJS)\monodll_helpext.o \
        $(OBJS)\monodll_hyperlinkg.o \
+       $(OBJS)\monodll_infobar.o \
        $(OBJS)\monodll_laywin.o \
        $(OBJS)\monodll_notifmsgg.o \
        $(OBJS)\monodll_odcombo.o \
@@ -2152,6 +2153,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridsel.o \
        $(OBJS)\monodll_helpext.o \
        $(OBJS)\monodll_hyperlinkg.o \
+       $(OBJS)\monodll_infobar.o \
        $(OBJS)\monodll_laywin.o \
        $(OBJS)\monodll_notifmsgg.o \
        $(OBJS)\monodll_odcombo.o \
@@ -2815,6 +2817,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridsel.o \
        $(OBJS)\monolib_helpext.o \
        $(OBJS)\monolib_hyperlinkg.o \
+       $(OBJS)\monolib_infobar.o \
        $(OBJS)\monolib_laywin.o \
        $(OBJS)\monolib_notifmsgg.o \
        $(OBJS)\monolib_odcombo.o \
@@ -2854,6 +2857,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridsel.o \
        $(OBJS)\monolib_helpext.o \
        $(OBJS)\monolib_hyperlinkg.o \
+       $(OBJS)\monolib_infobar.o \
        $(OBJS)\monolib_laywin.o \
        $(OBJS)\monolib_notifmsgg.o \
        $(OBJS)\monolib_odcombo.o \
@@ -3929,6 +3933,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridsel.o \
        $(OBJS)\advdll_helpext.o \
        $(OBJS)\advdll_hyperlinkg.o \
+       $(OBJS)\advdll_infobar.o \
        $(OBJS)\advdll_laywin.o \
        $(OBJS)\advdll_notifmsgg.o \
        $(OBJS)\advdll_odcombo.o \
@@ -3968,6 +3973,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridsel.o \
        $(OBJS)\advdll_helpext.o \
        $(OBJS)\advdll_hyperlinkg.o \
+       $(OBJS)\advdll_infobar.o \
        $(OBJS)\advdll_laywin.o \
        $(OBJS)\advdll_notifmsgg.o \
        $(OBJS)\advdll_odcombo.o \
@@ -4011,6 +4017,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridsel.o \
        $(OBJS)\advlib_helpext.o \
        $(OBJS)\advlib_hyperlinkg.o \
+       $(OBJS)\advlib_infobar.o \
        $(OBJS)\advlib_laywin.o \
        $(OBJS)\advlib_notifmsgg.o \
        $(OBJS)\advlib_odcombo.o \
@@ -4050,6 +4057,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridsel.o \
        $(OBJS)\advlib_helpext.o \
        $(OBJS)\advlib_hyperlinkg.o \
+       $(OBJS)\advlib_infobar.o \
        $(OBJS)\advlib_laywin.o \
        $(OBJS)\advlib_notifmsgg.o \
        $(OBJS)\advlib_odcombo.o \
@@ -7984,6 +7992,11 @@ $(OBJS)\monodll_hyperlinkg.o: ../../src/generic/hyperlinkg.cpp
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
 endif
 
+ifeq ($(USE_GUI),1)
+$(OBJS)\monodll_infobar.o: ../../src/generic/infobar.cpp
+       $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
 ifeq ($(USE_GUI),1)
 $(OBJS)\monodll_laywin.o: ../../src/generic/laywin.cpp
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -10372,6 +10385,11 @@ $(OBJS)\monolib_hyperlinkg.o: ../../src/generic/hyperlinkg.cpp
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
 endif
 
+ifeq ($(USE_GUI),1)
+$(OBJS)\monolib_infobar.o: ../../src/generic/infobar.cpp
+       $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
 ifeq ($(USE_GUI),1)
 $(OBJS)\monolib_laywin.o: ../../src/generic/laywin.cpp
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -14225,6 +14243,9 @@ $(OBJS)\advdll_helpext.o: ../../src/generic/helpext.cpp
 $(OBJS)\advdll_hyperlinkg.o: ../../src/generic/hyperlinkg.cpp
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
 
+$(OBJS)\advdll_infobar.o: ../../src/generic/infobar.cpp
+       $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advdll_laywin.o: ../../src/generic/laywin.cpp
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
 
@@ -14336,6 +14357,9 @@ $(OBJS)\advlib_helpext.o: ../../src/generic/helpext.cpp
 $(OBJS)\advlib_hyperlinkg.o: ../../src/generic/hyperlinkg.cpp
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
 
+$(OBJS)\advlib_infobar.o: ../../src/generic/infobar.cpp
+       $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advlib_laywin.o: ../../src/generic/laywin.cpp
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
 
index 39c20e8f0fb77d7d0b2a35195d34d574920086cd..e714cf81faa65666be344e45f2056701b24929c7 100644 (file)
@@ -2283,6 +2283,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridsel.obj \
        $(OBJS)\monodll_helpext.obj \
        $(OBJS)\monodll_hyperlinkg.obj \
+       $(OBJS)\monodll_infobar.obj \
        $(OBJS)\monodll_laywin.obj \
        $(OBJS)\monodll_notifmsgg.obj \
        $(OBJS)\monodll_odcombo.obj \
@@ -2322,6 +2323,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridsel.obj \
        $(OBJS)\monodll_helpext.obj \
        $(OBJS)\monodll_hyperlinkg.obj \
+       $(OBJS)\monodll_infobar.obj \
        $(OBJS)\monodll_laywin.obj \
        $(OBJS)\monodll_notifmsgg.obj \
        $(OBJS)\monodll_odcombo.obj \
@@ -2985,6 +2987,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridsel.obj \
        $(OBJS)\monolib_helpext.obj \
        $(OBJS)\monolib_hyperlinkg.obj \
+       $(OBJS)\monolib_infobar.obj \
        $(OBJS)\monolib_laywin.obj \
        $(OBJS)\monolib_notifmsgg.obj \
        $(OBJS)\monolib_odcombo.obj \
@@ -3024,6 +3027,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridsel.obj \
        $(OBJS)\monolib_helpext.obj \
        $(OBJS)\monolib_hyperlinkg.obj \
+       $(OBJS)\monolib_infobar.obj \
        $(OBJS)\monolib_laywin.obj \
        $(OBJS)\monolib_notifmsgg.obj \
        $(OBJS)\monolib_odcombo.obj \
@@ -4113,6 +4117,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridsel.obj \
        $(OBJS)\advdll_helpext.obj \
        $(OBJS)\advdll_hyperlinkg.obj \
+       $(OBJS)\advdll_infobar.obj \
        $(OBJS)\advdll_laywin.obj \
        $(OBJS)\advdll_notifmsgg.obj \
        $(OBJS)\advdll_odcombo.obj \
@@ -4152,6 +4157,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridsel.obj \
        $(OBJS)\advdll_helpext.obj \
        $(OBJS)\advdll_hyperlinkg.obj \
+       $(OBJS)\advdll_infobar.obj \
        $(OBJS)\advdll_laywin.obj \
        $(OBJS)\advdll_notifmsgg.obj \
        $(OBJS)\advdll_odcombo.obj \
@@ -4197,6 +4203,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridsel.obj \
        $(OBJS)\advlib_helpext.obj \
        $(OBJS)\advlib_hyperlinkg.obj \
+       $(OBJS)\advlib_infobar.obj \
        $(OBJS)\advlib_laywin.obj \
        $(OBJS)\advlib_notifmsgg.obj \
        $(OBJS)\advlib_odcombo.obj \
@@ -4236,6 +4243,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridsel.obj \
        $(OBJS)\advlib_helpext.obj \
        $(OBJS)\advlib_hyperlinkg.obj \
+       $(OBJS)\advlib_infobar.obj \
        $(OBJS)\advlib_laywin.obj \
        $(OBJS)\advlib_notifmsgg.obj \
        $(OBJS)\advlib_odcombo.obj \
@@ -8080,6 +8088,11 @@ $(OBJS)\monodll_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\hyperlinkg.cpp
 !endif
 
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_infobar.obj: ..\..\src\generic\infobar.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\infobar.cpp
+!endif
+
 !if "$(USE_GUI)" == "1"
 $(OBJS)\monodll_laywin.obj: ..\..\src\generic\laywin.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\laywin.cpp
@@ -10356,6 +10369,11 @@ $(OBJS)\monolib_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\hyperlinkg.cpp
 !endif
 
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_infobar.obj: ..\..\src\generic\infobar.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\infobar.cpp
+!endif
+
 !if "$(USE_GUI)" == "1"
 $(OBJS)\monolib_laywin.obj: ..\..\src\generic\laywin.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\laywin.cpp
@@ -13985,6 +14003,9 @@ $(OBJS)\advdll_helpext.obj: ..\..\src\generic\helpext.cpp
 $(OBJS)\advdll_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\hyperlinkg.cpp
 
+$(OBJS)\advdll_infobar.obj: ..\..\src\generic\infobar.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\infobar.cpp
+
 $(OBJS)\advdll_laywin.obj: ..\..\src\generic\laywin.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\laywin.cpp
 
@@ -14096,6 +14117,9 @@ $(OBJS)\advlib_helpext.obj: ..\..\src\generic\helpext.cpp
 $(OBJS)\advlib_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\hyperlinkg.cpp
 
+$(OBJS)\advlib_infobar.obj: ..\..\src\generic\infobar.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\infobar.cpp
+
 $(OBJS)\advlib_laywin.obj: ..\..\src\generic\laywin.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\laywin.cpp
 
index df0e1f67df738363f54330458a038816fe66ab69..87cb6dc4eb5e747f526dc3ea12c8fc1627f0d1b7 100644 (file)
@@ -735,6 +735,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_gridsel.obj &
        $(OBJS)\monodll_helpext.obj &
        $(OBJS)\monodll_hyperlinkg.obj &
+       $(OBJS)\monodll_infobar.obj &
        $(OBJS)\monodll_laywin.obj &
        $(OBJS)\monodll_notifmsgg.obj &
        $(OBJS)\monodll_odcombo.obj &
@@ -774,6 +775,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_gridsel.obj &
        $(OBJS)\monodll_helpext.obj &
        $(OBJS)\monodll_hyperlinkg.obj &
+       $(OBJS)\monodll_infobar.obj &
        $(OBJS)\monodll_laywin.obj &
        $(OBJS)\monodll_notifmsgg.obj &
        $(OBJS)\monodll_odcombo.obj &
@@ -1442,6 +1444,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_gridsel.obj &
        $(OBJS)\monolib_helpext.obj &
        $(OBJS)\monolib_hyperlinkg.obj &
+       $(OBJS)\monolib_infobar.obj &
        $(OBJS)\monolib_laywin.obj &
        $(OBJS)\monolib_notifmsgg.obj &
        $(OBJS)\monolib_odcombo.obj &
@@ -1481,6 +1484,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_gridsel.obj &
        $(OBJS)\monolib_helpext.obj &
        $(OBJS)\monolib_hyperlinkg.obj &
+       $(OBJS)\monolib_infobar.obj &
        $(OBJS)\monolib_laywin.obj &
        $(OBJS)\monolib_notifmsgg.obj &
        $(OBJS)\monolib_odcombo.obj &
@@ -2572,6 +2576,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_gridsel.obj &
        $(OBJS)\advdll_helpext.obj &
        $(OBJS)\advdll_hyperlinkg.obj &
+       $(OBJS)\advdll_infobar.obj &
        $(OBJS)\advdll_laywin.obj &
        $(OBJS)\advdll_notifmsgg.obj &
        $(OBJS)\advdll_odcombo.obj &
@@ -2611,6 +2616,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_gridsel.obj &
        $(OBJS)\advdll_helpext.obj &
        $(OBJS)\advdll_hyperlinkg.obj &
+       $(OBJS)\advdll_infobar.obj &
        $(OBJS)\advdll_laywin.obj &
        $(OBJS)\advdll_notifmsgg.obj &
        $(OBJS)\advdll_odcombo.obj &
@@ -2656,6 +2662,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_gridsel.obj &
        $(OBJS)\advlib_helpext.obj &
        $(OBJS)\advlib_hyperlinkg.obj &
+       $(OBJS)\advlib_infobar.obj &
        $(OBJS)\advlib_laywin.obj &
        $(OBJS)\advlib_notifmsgg.obj &
        $(OBJS)\advlib_odcombo.obj &
@@ -2695,6 +2702,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_gridsel.obj &
        $(OBJS)\advlib_helpext.obj &
        $(OBJS)\advlib_hyperlinkg.obj &
+       $(OBJS)\advlib_infobar.obj &
        $(OBJS)\advlib_laywin.obj &
        $(OBJS)\advlib_notifmsgg.obj &
        $(OBJS)\advlib_odcombo.obj &
@@ -8251,6 +8259,11 @@ $(OBJS)\monodll_hyperlinkg.obj :  .AUTODEPEND ..\..\src\generic\hyperlinkg.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
 !endif
 
+!ifeq USE_GUI 1
+$(OBJS)\monodll_infobar.obj :  .AUTODEPEND ..\..\src\generic\infobar.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+!endif
+
 !ifeq USE_GUI 1
 $(OBJS)\monodll_laywin.obj :  .AUTODEPEND ..\..\src\generic\laywin.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -10639,6 +10652,11 @@ $(OBJS)\monolib_hyperlinkg.obj :  .AUTODEPEND ..\..\src\generic\hyperlinkg.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
 !endif
 
+!ifeq USE_GUI 1
+$(OBJS)\monolib_infobar.obj :  .AUTODEPEND ..\..\src\generic\infobar.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+!endif
+
 !ifeq USE_GUI 1
 $(OBJS)\monolib_laywin.obj :  .AUTODEPEND ..\..\src\generic\laywin.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -14492,6 +14510,9 @@ $(OBJS)\advdll_helpext.obj :  .AUTODEPEND ..\..\src\generic\helpext.cpp
 $(OBJS)\advdll_hyperlinkg.obj :  .AUTODEPEND ..\..\src\generic\hyperlinkg.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
 
+$(OBJS)\advdll_infobar.obj :  .AUTODEPEND ..\..\src\generic\infobar.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
+
 $(OBJS)\advdll_laywin.obj :  .AUTODEPEND ..\..\src\generic\laywin.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
 
@@ -14603,6 +14624,9 @@ $(OBJS)\advlib_helpext.obj :  .AUTODEPEND ..\..\src\generic\helpext.cpp
 $(OBJS)\advlib_hyperlinkg.obj :  .AUTODEPEND ..\..\src\generic\hyperlinkg.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
 
+$(OBJS)\advlib_infobar.obj :  .AUTODEPEND ..\..\src\generic\infobar.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
+
 $(OBJS)\advlib_laywin.obj :  .AUTODEPEND ..\..\src\generic\laywin.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
 
index 93220d846d21a04c8d7d17e432a86fa823834f9a..59a4f71ca99d90f71e309be753d6c3cf2027f231 100644 (file)
@@ -529,6 +529,10 @@ SOURCE=..\..\src\generic\hyperlinkg.cpp
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\src\generic\infobar.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\src\generic\laywin.cpp\r
 # End Source File\r
 # Begin Source File\r
@@ -878,6 +882,10 @@ SOURCE=..\..\include\wx\generic\hyperlink.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\generic\infobar.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\generic\laywin.h\r
 # End Source File\r
 # Begin Source File\r
@@ -950,6 +958,10 @@ SOURCE=..\..\include\wx\hyperlink.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\infobar.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\joystick.h\r
 # End Source File\r
 # Begin Source File\r
index 943c51e42b94017adc32e83bf04dea95066b3a83..99b2a21a4b8faed2a63f30cbc642cbc15531a607 100644 (file)
@@ -5327,6 +5327,10 @@ SOURCE=..\..\include\wx\generic\hyperlink.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\generic\infobar.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\generic\laywin.h\r
 # End Source File\r
 # Begin Source File\r
@@ -6119,6 +6123,10 @@ SOURCE=..\..\include\wx\imagxpm.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\infobar.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\joystick.h\r
 # End Source File\r
 # Begin Source File\r
index aa30ddbe51d19bdb43c0b11c5f61b3702c7c4b9f..60167949f3eae1d9699e674deeeabcc01bf354a1 100644 (file)
                                RelativePath="..\..\src\generic\hyperlinkg.cpp">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\infobar.cpp">
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\laywin.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\include\wx\generic\hyperlink.h">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\generic\infobar.h">
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\generic\laywin.h">\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\include\wx\hyperlink.h">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\infobar.h">
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\joystick.h">\r
                        </File>\r
                        <File\r
index 367b09ac6070102679b27b6a1476a2fddc234cf8..7a8b50bbd44684156585a48a08f40b74b26f10a2 100644 (file)
                                RelativePath="..\..\include\wx\generic\hyperlink.h">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\generic\infobar.h">
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\generic\laywin.h">\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\include\wx\imagxpm.h">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\infobar.h">
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\joystick.h">\r
                        </File>\r
                        <File\r
index ceecfda77d7fb2144fe8748493d1c58188e3fafc..a4d85dc742ddeb04c57d08818671588c7ffc1aa7 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\infobar.cpp"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\laywin.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\generic\infobar.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\generic\laywin.h"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\infobar.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\joystick.h"\r
                                >\r
                        </File>\r
index 5c8a5208157e2c360c89c20b8da80881c9d50a6d..8f288659b453e88bcba5cd1ce01a1503c5f74328 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\generic\infobar.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\generic\laywin.h"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\infobar.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\joystick.h"\r
                                >\r
                        </File>\r
index d08a827378b6948a759d1f4624751ddf2f1cd938..0828623f0317c6bc47dd39402c89d6dccb5fb665 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\infobar.cpp"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\laywin.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\generic\infobar.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\generic\laywin.h"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\infobar.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\joystick.h"\r
                                >\r
                        </File>\r
index 27145847a269585ee754cda70ca46105083e0122..2f038474de97fa4609547d34b1b466c1b0d5fd45 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\generic\infobar.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\generic\laywin.h"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\infobar.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\joystick.h"\r
                                >\r
                        </File>\r
index 19de3a9597594e5733d960b23b9283b03e502138..ec55083a72bd5175cb9b76c875921b6cf3e7353a 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Id: configure.in 62071 2009-09-24 12:36:34Z JS .
+# From configure.in Id.
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.1.
 #
@@ -1818,6 +1818,7 @@ Optional Features:
   --enable-headerctrl     use wxHeaderCtrl class
   --enable-hyperlink      use wxHyperlinkCtrl class
   --enable-imaglist       use wxImageList class
+  --enable-infobar        use wxInfoBar class
   --enable-listbook       use wxListbook class
   --enable-listbox        use wxListBox class
   --enable-listctrl       use wxListCtrl class
 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}-infobar" >&5
+echo $ECHO_N "checking for --${enablestring:-enable}-infobar... $ECHO_C" >&6; }
+          # Check whether --enable-infobar was given.
+if test "${enable_infobar+set}" = set; then
+  enableval=$enable_infobar;
+                          if test "$enableval" = yes; then
+                            wx_cv_use_infobar='wxUSE_INFOBAR=yes'
+                          else
+                            wx_cv_use_infobar='wxUSE_INFOBAR=no'
+                          fi
+
+else
+
+                          wx_cv_use_infobar='wxUSE_INFOBAR=${'DEFAULT_wxUSE_INFOBAR":-$defaultval}"
+
+fi
+
+
+          eval "$wx_cv_use_infobar"
+
+          if test x"$enablestring" = xdisable; then
+            if test $wxUSE_INFOBAR = no; then
+              result=yes
+            else
+              result=no
+            fi
+          else
+            result=$wxUSE_INFOBAR
+          fi
+
+          { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+
+
           enablestring=
           defaultval=$wxUSE_ALL_FEATURES
           if test -z "$defaultval"; then
@@ -45948,6 +45993,13 @@ _ACEOF
 
 fi
 
+if test "$wxUSE_INFOBAR" = "yes"; then
+    cat >>confdefs.h <<\_ACEOF
+#define wxUSE_INFOBAR 1
+_ACEOF
+
+fi
+
 if test "$wxUSE_LISTBOOK" = "yes"; then
     cat >>confdefs.h <<\_ACEOF
 #define wxUSE_LISTBOOK 1
index 5f7b38cfb0a15f7cd2f07b5c3076fae3fb3d2cf6..7d7c54f7549605ba857539de35ec4d914ebc8511 100644 (file)
@@ -917,6 +917,7 @@ WX_ARG_FEATURE(grid,        [  --enable-grid           use wxGrid class], wxUSE_
 WX_ARG_FEATURE(headerctrl,  [  --enable-headerctrl     use wxHeaderCtrl class], wxUSE_HEADERCTRL)
 WX_ARG_FEATURE(hyperlink,   [  --enable-hyperlink      use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL)
 WX_ARG_FEATURE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
+WX_ARG_FEATURE(infobar,     [  --enable-infobar        use wxInfoBar class], wxUSE_INFOBAR)
 WX_ARG_FEATURE(listbook,    [  --enable-listbook       use wxListbook class], wxUSE_LISTBOOK)
 WX_ARG_FEATURE(listbox,     [  --enable-listbox        use wxListBox class], wxUSE_LISTBOX)
 WX_ARG_FEATURE(listctrl,    [  --enable-listctrl       use wxListCtrl class], wxUSE_LISTCTRL)
@@ -6687,6 +6688,10 @@ if test "$wxUSE_IMAGLIST" = "yes"; then
     AC_DEFINE(wxUSE_IMAGLIST)
 fi
 
+if test "$wxUSE_INFOBAR" = "yes"; then
+    AC_DEFINE(wxUSE_INFOBAR)
+fi
+
 if test "$wxUSE_LISTBOOK" = "yes"; then
     AC_DEFINE(wxUSE_LISTBOOK)
     USES_CONTROLS=1
index 355904376a4a45106855e5c8c475115fa6862307..5a34ed263b843569bfcbcd1f189f413ea668d1a6 100644 (file)
@@ -408,6 +408,7 @@ All:
 All (GUI):
 
 - Added support for showing bitmaps in wxButton.
+- Added wxInfoBar.
 - Added support for corner, row and column headers renderers to wxGrid.
 - wxWindow::SetAutoLayout() now works for all windows, not just panels.
 - Support wxListCtrl columns, items and image lists in XRC (Kinaou Hervé).
index 97820dfb6a4e3fcdb50a32524f5e9dbc9f36c2c4..a43e3ba187ca62bac10db5671ad0db2828691772 100644 (file)
@@ -239,6 +239,7 @@ The following are a variety of classes that are derived from wxWindow.
 @li wxHVScrolledWindow: As ::wxScrolledWindow but supports scroll units of
     variable sizes.
 @li wxGrid: A grid (table) window
+@li wxInfoBar: An information bar usually shown on top of the main window.
 @li wxSplitterWindow: Window which can be split vertically or horizontally
 @li wxStatusBar: Implements the status bar on a frame
 @li wxToolBar: Toolbar class
index 0d4f0b008ccb170a03dab832bc87384500661bd3..29868206a88736a0b09573b442fd97dd8cdac496 100644 (file)
 #   endif
 #endif /* !defined(wxUSE_IMAGLIST) */
 
+#ifndef wxUSE_INFOBAR
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_INFOBAR must be defined."
+#   else
+#       define wxUSE_INFOBAR 0
+#   endif
+#endif /* !defined(wxUSE_INFOBAR) */
+
 #ifndef wxUSE_JOYSTICK
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_JOYSTICK must be defined."
diff --git a/include/wx/generic/infobar.h b/include/wx/generic/infobar.h
new file mode 100644 (file)
index 0000000..9b21090
--- /dev/null
@@ -0,0 +1,107 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        wx/generic/infobar.h
+// Purpose:     generic wxInfoBar class declaration
+// Author:      Vadim Zeitlin
+// Created:     2009-07-28
+// RCS-ID:      $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $
+// Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_GENERIC_INFOBAR_H_
+#define _WX_GENERIC_INFOBAR_H_
+
+class WXDLLIMPEXP_FWD_CORE wxBitmapButton;
+class WXDLLIMPEXP_FWD_CORE wxStaticBitmap;
+class WXDLLIMPEXP_FWD_CORE wxStaticText;
+
+// ----------------------------------------------------------------------------
+// wxInfoBar
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_ADV wxInfoBar : public wxInfoBarBase
+{
+public:
+    // the usual ctors and Create() but remember that info bar is created
+    // hidden
+    wxInfoBar() { Init(); }
+
+    wxInfoBar(wxWindow *parent, wxWindowID winid = wxID_ANY)
+    {
+        Init();
+        Create(parent, winid);
+    }
+
+    bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY);
+
+
+    // implement base class methods
+    // ----------------------------
+
+    virtual void ShowMessage(const wxString& msg, int flags = wxICON_NONE);
+
+
+    // methods specific to this version
+    // --------------------------------
+
+    // set the effect(s) to use when showing/hiding the bar, may be
+    // wxSHOW_EFFECT_NONE to disable any effects entirely
+    //
+    // by default, slide to bottom/top is used when it's positioned on the top
+    // of the window for showing/hiding it and top/bottom when it's positioned
+    // at the bottom
+    void SetShowHideEffects(wxShowEffect showEffect, wxShowEffect hideEffect)
+    {
+        m_showEffect = showEffect;
+        m_hideEffect = hideEffect;
+    }
+
+    // get effect used when showing/hiding the window
+    wxShowEffect GetShowEffect() const { return m_showEffect; }
+    wxShowEffect GetHideEffect() const { return m_hideEffect; }
+
+    // set the duration of animation used when showing/hiding the bar, in ms
+    void SetEffectDuration(int duration) { m_effectDuration = duration; }
+
+    // get the currently used effect animation duration
+    int GetEffectDuration() const { return m_effectDuration; }
+
+private:
+    // common part of all ctors
+    void Init();
+
+    // handler for the close button
+    void OnButton(wxCommandEvent& event);
+
+    // update the parent after we're shown or hidden
+    void UpdateParent();
+
+    // change the parent background colour to match that of our sibling
+    void ChangeParentBackground();
+
+    // restore the parent background changed by the above function
+    void RestoreParentBackground();
+
+    // show/hide the bar
+    void DoShow();
+    void DoHide();
+
+
+    // different controls making up the bar
+    wxStaticBitmap *m_icon;
+    wxStaticText *m_text;
+    wxBitmapButton *m_button;
+
+    // the effects to use when showing/hiding and duration for them
+    wxShowEffect m_showEffect,
+                 m_hideEffect;
+    int m_effectDuration;
+
+    // the original parent background colour, before we changed it
+    wxColour m_origParentBgCol;
+
+    wxDECLARE_NO_COPY_CLASS(wxInfoBar);
+};
+
+#endif // _WX_GENERIC_INFOBAR_H_
+
diff --git a/include/wx/infobar.h b/include/wx/infobar.h
new file mode 100644 (file)
index 0000000..ffa7aad
--- /dev/null
@@ -0,0 +1,49 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        wx/infobar.h
+// Purpose:     declaration of wxInfoBarBase defining common API of wxInfoBar
+// Author:      Vadim Zeitlin
+// Created:     2009-07-28
+// RCS-ID:      $Id: wxhead.h,v 1.11 2009-06-29 10:23:04 zeitlin Exp $
+// Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_INFOBAR_H_
+#define _WX_INFOBAR_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_INFOBAR
+
+#include "wx/window.h"
+
+// ----------------------------------------------------------------------------
+// wxInfoBar shows non-critical but important information to the user
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_ADV wxInfoBarBase : public wxWindow
+{
+public:
+    // real ctors are provided by the derived classes, just notice that unlike
+    // most of the other windows, info bar is created hidden and must be
+    // explicitly shown when it is needed (this is done because it is supposed
+    // to be shown only intermittently and hiding it after creating it from the
+    // user code would result in flicker)
+    wxInfoBarBase() { }
+
+
+    // show the info bar with the given message and optionally an icon
+    virtual void ShowMessage(const wxString& msg, int flags = wxICON_NONE) = 0;
+
+private:
+    wxDECLARE_NO_COPY_CLASS(wxInfoBarBase);
+};
+
+// include platform-dependent implementation
+//
+// TODO-GTK: implement a native version using GtkInfoBar (GTK+ 2.18+)
+#include "wx/generic/infobar.h"
+
+#endif // wxUSE_INFOBAR
+
+#endif // _WX_INFOBAR_H_
index 37aa22eb2adec3a248c63bfd188f9183de44a61e..35117a9acc3e05db2528b670eb4966a99d7fc4dc 100644 (file)
 // possible in which case setting this to 0 can gain up to 100KB.
 #define wxUSE_VARIANT 1
 
+// Support for wxAny class, the successor for wxVariant.
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you want to reduce the library size by a small amount,
+// or your compiler cannot for some reason cope with complexity of templates used.
+#define wxUSE_ANY 1
+
 // Support for regular expression matching via wxRegEx class: enable this to
 // use POSIX regular expressions in your code. You need to compile regex
 // library from src/regex to use it under Windows.
 // enumerated above, then this class is mostly useless too)
 #define wxUSE_IMAGLIST      1
 
+// Use wxInfoBar class.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be disabled without problems as nothing
+// depends on it)
+#define wxUSE_INFOBAR       1
+
 // Use wxMenu, wxMenuBar, wxMenuItem.
 //
 // Default is 1.
index 9deacf6e966407ba101994fe7d9a90ddbc97ebc0..a83367c838ccff7e2412d6bb46187398d49383ec 100644 (file)
 // enumerated above, then this class is mostly useless too)
 #define wxUSE_IMAGLIST      1
 
+// Use wxInfoBar class.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be disabled without problems as nothing
+// depends on it)
+#define wxUSE_INFOBAR       1
+
 // Use wxMenu, wxMenuBar, wxMenuItem.
 //
 // Default is 1.
index e9d70cee44283c9e90dd182276bbed2bae05e948..8de143f395611cb2c116578f8396f772facea283 100644 (file)
 // enumerated above, then this class is mostly useless too)
 #define wxUSE_IMAGLIST      1
 
+// Use wxInfoBar class.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be disabled without problems as nothing
+// depends on it)
+#define wxUSE_INFOBAR       1
+
 // Use wxMenu, wxMenuBar, wxMenuItem.
 //
 // Default is 1.
index 5403761a219a79763ec714f0b2c6d8c40e2715cc..68b80cd00bfa9c5e5d048be4b574aabb86eb13c2 100644 (file)
 // enumerated above, then this class is mostly useless too)
 #define wxUSE_IMAGLIST      1
 
+// Use wxInfoBar class.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be disabled without problems as nothing
+// depends on it)
+#define wxUSE_INFOBAR       1
+
 // Use wxMenu, wxMenuBar, wxMenuItem.
 //
 // Default is 1.
index 2af5514a2ff1f75b97b2dd3bee36aec7a9e95867..7b2957c5fb94d8e37e17f96c5dd6339f341c51fb 100644 (file)
 // enumerated above, then this class is mostly useless too)
 #define wxUSE_IMAGLIST      1
 
+// Use wxInfoBar class.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be disabled without problems as nothing
+// depends on it)
+#define wxUSE_INFOBAR       1
+
 // Use wxMenu, wxMenuBar, wxMenuItem.
 //
 // Default is 1.
index 33b7c3fa88cc2ce2af675b9d0a37d583e72591b2..cd01548d646b9bc30e48b4e550df145a362f9dc1 100644 (file)
 // enumerated above, then this class is mostly useless too)
 #define wxUSE_IMAGLIST      1
 
+// Use wxInfoBar class.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be disabled without problems as nothing
+// depends on it)
+#define wxUSE_INFOBAR       1
+
 // Use wxMenu, wxMenuBar, wxMenuItem.
 //
 // Default is 1.
index b014a90b88ba3adfbd6d6872394297f9c6da07f9..7f591cbadc2967eb3693e22e2ab103d5eecffce4 100644 (file)
 // enumerated above, then this class is mostly useless too)
 #define wxUSE_IMAGLIST      1
 
+// Use wxInfoBar class.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be disabled without problems as nothing
+// depends on it)
+#define wxUSE_INFOBAR       1
+
 // Use wxMenu, wxMenuBar, wxMenuItem.
 //
 // Default is 1.
index 7f9cb99638b95b1ddfec12c1023c45f08a0be92c..b57946e6c85dafa44bb20874c2ad1fe687b73634 100644 (file)
 // enumerated above, then this class is mostly useless too)
 #define wxUSE_IMAGLIST      1
 
+// Use wxInfoBar class.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (but can be disabled without problems as nothing
+// depends on it)
+#define wxUSE_INFOBAR       1
+
 // Use wxMenu, wxMenuBar, wxMenuItem.
 //
 // Default is 1.
diff --git a/interface/wx/infobar.h b/interface/wx/infobar.h
new file mode 100644 (file)
index 0000000..70f662b
--- /dev/null
@@ -0,0 +1,213 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/infobar.h
+// Purpose:     interface of wxInfoBar
+// Author:      Vadim Zeitlin
+// RCS-ID:      $Id$
+// Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+    An info bar is a transient window shown at top or bottom of its parent
+    window to display non-critical information to the user.
+
+    This class provides another way to show messages to the user, intermediate
+    between message boxes and status bar messages. The message boxes are modal
+    and thus interrupt the users work flow and should be used sparingly for
+    this reason. However status bar messages are often too easy not to notice
+    at all. An info bar provides a way to present the messages which has a much
+    higher chance to be noticed by the user but without being annoying.
+
+    Info bar may show an icon (on the left), text message and, optionally,
+    buttons allowing the user to react to the information presented. It always
+    has a close button at the right allowing the user to dismiss it so it isn't
+    necessary to provide a button just to close it.
+
+    wxInfoBar calls its parent wxWindow::Layout() method and assumes that it
+    will change the parent layout appropriately depending on whether the info
+    bar itself is shown or hidden. Usually this is achieved by simply using a
+    sizer for the parent window layout and adding wxInfoBar to this sizer as
+    one of the items. Considering the usual placement of the info bars,
+    normally this sizer should be a vertical wxBoxSizer and the bar its first
+    or last element so the simplest possible example of using this class would
+    be:
+    @code
+    class MyFrame : public wxFrame
+    {
+        ...
+
+        wxInfoBar *m_infoBar;
+    };
+
+    MyFrame::MyFrame()
+    {
+        ...
+        m_infoBar = new wxInfoBar(this);
+
+        wxSizer *sizer = new wxBoxSizer(wxVERTICAL);
+        sizer->Add(m_infoBar, wxSizerFlags().Expand());
+        ... add other frame controls to the sizer ...
+        SetSizer(sizer);
+    }
+
+    void MyFrame::SomeMethod()
+    {
+        m_infoBar->ShowMessage("Something happend", wxICON_INFORMATION);
+    }
+    @endcode
+
+    See the dialogs sample for more sophisticated examples.
+
+
+    Only generic implementation of this class exists currently but it is
+    planned to provide a native GTK+-based version in future wxWidgets releases
+    so avoid the use of the methods marked "generic only" for maximal
+    portability.
+
+    @library{wxadv}
+    @category{miscwnd}
+
+    @see wxStatusBar, wxMessageDialog
+
+    @since 2.9.1
+*/
+class wxInfoBar : public wxWindow
+{
+public:
+    /**
+        Default constructor.
+
+        Use Create() for the objects created using this constructor.
+     */
+    wxInfoBar();
+
+    /**
+        Constructor creating the info bar window.
+
+        @see Create()
+     */
+    wxInfoBar(wxWindow *parent, wxWindowID winid = wxID_ANY);
+
+    /**
+        Create the info bar window.
+
+        Notice that unlike most of the other wxWindow-derived classes,
+        wxInfoBar is created hidden and is only shown when ShowMessage() is
+        called. This is more convenient as usually the info bar is created to
+        be shown at some later time and not immediately and so creating it
+        hidden avoids the need to call Hide() explicitly from the code using
+        it.
+
+        This should be only called if the object was created using its default
+        constructor.
+
+        @param parent
+            A valid parent window pointer.
+        @param winid
+            The id of the info bar window, usually unused as currently no
+            events are generated by this class.
+     */
+    wxInfoBar(wxWindow *parent, wxWindowID winid = wxID_ANY);
+
+    /**
+        Add a button to be shown in the info bar.
+
+        The button added by this method will be shown to the right of the text
+        (in LTR layout), with each successive button being added to the right
+        of the previous one.
+
+        Clicking the button will generate a normal event which can be handled
+        as usual. Notice that if you wish the info bar to be hidden when the
+        button is clicked, simply call @c event.Skip() in the button handler to
+        let the base class handler do it.
+
+        @param btnid
+            Id of the button. It will be used in the button message clicking
+            this button will generate.
+        @param label
+            The label of the button. It may only be empty if @a btnid is one of
+            the stock ids in which case the corresponding stock label (see
+            wxGetStockLabel()) will be used.
+     */
+    void AddButton(wxWindowID btnid, const wxString& label = wxString());
+
+    /**
+        Show a message in the bar.
+
+        If the bar is currently hidden, it will be shown. Otherwise its message
+        will be updated in place.
+
+        @param msg
+            The text of the message.
+        @param flags
+            One of wxICON_NONE (default), wxICON_INFORMATION, wxICON_QUESTION,
+            wxICON_WARNING or wxICON_ERROR values. These flags have the same
+            meaning as in wxMessageDialog, i.e. show the corresponding icon in
+            the bar.
+     */
+    void ShowMessage(const wxString& msg, int flags = wxICON_NONE);
+
+    /**
+        @name Generic version customization methods.
+
+        All these methods exist in the generic version of the class only.
+
+        The generic version uses wxWindow::ShowWithEffect() function to
+        progressively show it on the platforms which support it. The methods
+        here allow to change the default effect used (or disable it entirely)
+        and change its duration.
+     */
+    //@{
+
+    /**
+        Set the effects to use when showing and hiding the bar.
+
+        Either or both of the parameters can be set to wxSHOW_EFFECT_NONE to
+        disable using effects entirely.
+
+        Notice that if you place the bar at the bottom of the window you should
+        reverse the effects used for showing and hiding for better appearance.
+
+        @param showEffect
+            The effect to use when showing the bar. By default,
+            wxSHOW_EFFECT_SLIDE_TO_BOTTOM which is appropriate for the bars
+            placed at the top of the window.
+        @param hideEffect
+            The effect to use when hiding the bar. By default,
+            wxSHOW_EFFECT_SLIDE_TO_TOP which is appropriate for the bars placed
+            at the top of the window.
+     */
+    void SetShowHideEffects(wxShowEffect showEffect, wxShowEffect hideEffect);
+
+    /// Return the effect currently used for showing the bar.
+    wxShowEffect GetShowEffect() const;
+
+    /// Return the effect currently used for hiding the bar.
+    wxShowEffect GetHideEffect() const;
+
+    /**
+        Set the duration of the animation used when showing or hiding the bar.
+
+        By default, 500ms duration is used.
+
+        @param duration
+            Duration of the animation, in milliseconds.
+     */
+    void SetEffectDuration(int duration);
+
+    /// Return the effect animation duration currently used.
+    int GetEffectDuration() const;
+
+    /**
+        Overridden base class methods changes the font of the text message.
+
+        wxInfoBar overrides this method to use the font passed to it for its
+        text message part. By default a larger and bold version of the standard
+        font is used.
+
+        This method is generic-only.
+     */
+    virtual bool SetFont(const wxFont& font);
+
+    //@}
+};
index 264246c1dfac1bd3c3533f1196ef972ffeb8558e..a45f416b92e05a50a123594f438a840d90f47d01 100644 (file)
     #include "wx/fdrepdlg.h"
 #endif // wxUSE_FINDREPLDLG
 
+#if wxUSE_INFOBAR
+    #include "wx/infobar.h"
+#endif // wxUSE_INFOBAR
+
 #include "wx/spinctrl.h"
 #include "wx/propdlg.h"
 
@@ -134,6 +138,10 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
 #if wxUSE_LOG_DIALOG
     EVT_MENU(DIALOGS_LOG_DIALOG,                    MyFrame::LogDialog)
 #endif // wxUSE_LOG_DIALOG
+#if wxUSE_INFOBAR
+    EVT_MENU(DIALOGS_INFOBAR_SIMPLE,                MyFrame::InfoBarSimple)
+    EVT_MENU(DIALOGS_INFOBAR_ADVANCED,              MyFrame::InfoBarAdvanced)
+#endif // wxUSE_INFOBAR
 
 #if wxUSE_TEXTDLG
     EVT_MENU(DIALOGS_TEXT_ENTRY,                    MyFrame::TextEntry)
@@ -395,9 +403,14 @@ bool MyApp::OnInit()
        info_menu->Append(DIALOGS_LOG_DIALOG, wxT("&Log dialog\tCtrl-L"));
     #endif // wxUSE_LOG_DIALOG
 
+    #if wxUSE_INFOBAR
+       info_menu->Append(DIALOGS_INFOBAR_SIMPLE, "Simple &info bar\tCtrl-I");
+       info_menu->Append(DIALOGS_INFOBAR_ADVANCED, "&Advanced info bar\tShift-Ctrl-I");
+    #endif // wxUSE_INFOBAR
+
     #if wxUSE_MSGDLG
         info_menu->Append(DIALOGS_MESSAGE_BOX_WXINFO,
-                             wxT("&wxWidgets information\tCtrl-I"));
+                             wxT("&wxWidgets information\tCtrl-W"));
     #endif // wxUSE_MSGDLG
 
     menuDlg->Append(wxID_ANY,wxT("&Informative dialogs"),info_menu);
@@ -414,9 +427,9 @@ bool MyApp::OnInit()
 
     wxMenu *dialogs_menu = new wxMenu;
 #if USE_MODAL_PRESENTATION
-    dialogs_menu->Append(DIALOGS_MODAL, wxT("&Modal dialog\tCtrl-W"));
+    dialogs_menu->Append(DIALOGS_MODAL, wxT("&Modal dialog\tShift-Ctrl-W"));
 #endif // USE_MODAL_PRESENTATION
-    dialogs_menu->AppendCheckItem(DIALOGS_MODELESS, wxT("Mode&less dialog\tCtrl-Z"));
+    dialogs_menu->AppendCheckItem(DIALOGS_MODELESS, wxT("Mode&less dialog\tShift-Ctrl-Z"));
     dialogs_menu->Append(DIALOGS_CENTRE_SCREEN, wxT("Centered on &screen\tShift-Ctrl-1"));
     dialogs_menu->Append(DIALOGS_CENTRE_PARENT, wxT("Centered on &parent\tShift-Ctrl-2"));
 #if wxUSE_MINIFRAME
@@ -510,6 +523,17 @@ MyFrame::MyFrame(const wxString& title)
 #endif // wxUSE_STATUSBAR
 
     m_canvas = new MyCanvas(this);
+
+#if wxUSE_INFOBAR
+    m_infoBarSimple = new wxInfoBar(this);
+    m_infoBarAdvanced = NULL;
+
+    // to use the info bars we need to use sizer for the window layout
+    wxBoxSizer * const sizer = new wxBoxSizer(wxVERTICAL);
+    sizer->Add(m_infoBarSimple, wxSizerFlags().Expand());
+    sizer->Add(m_canvas, wxSizerFlags(1).Expand());
+    SetSizer(sizer);
+#endif // wxUSE_INFOBAR
 }
 
 MyFrame::~MyFrame()
@@ -653,6 +677,24 @@ void MyFrame::LogDialog(wxCommandEvent& WXUNUSED(event))
 }
 #endif // wxUSE_LOG_DIALOG
 
+#if wxUSE_INFOBAR
+
+void MyFrame::InfoBarSimple(wxCommandEvent& WXUNUSED(event))
+{
+    static int s_count = 0;
+    m_infoBarSimple->ShowMessage
+                     (
+                      wxString::Format("Message #%d in the info bar.", ++s_count)
+                     );
+}
+
+void MyFrame::InfoBarAdvanced(wxCommandEvent& WXUNUSED(event))
+{
+}
+
+#endif // wxUSE_INFOBAR
+
+
 #if wxUSE_MSGDLG
 void MyFrame::MessageBox(wxCommandEvent& WXUNUSED(event))
 {
index fe0b0638a958908d734921e70ef8542645351c0c..57a7105b4392cbb5a049f79c5140ec364e472d4d 100644 (file)
@@ -303,6 +303,11 @@ public:
     void LogDialog(wxCommandEvent& event);
 #endif // wxUSE_LOG_DIALOG
 
+#if wxUSE_INFOBAR
+    void InfoBarSimple(wxCommandEvent& event);
+    void InfoBarAdvanced(wxCommandEvent& event);
+#endif // wxUSE_INFOBAR
+
 #if wxUSE_CHOICEDLG
     void SingleChoice(wxCommandEvent& event);
     void MultiChoice(wxCommandEvent& event);
@@ -423,6 +428,11 @@ private:
     // just a window which we use to show the effect of font/colours selection
     wxWindow *m_canvas;
 
+#if wxUSE_INFOBAR
+    wxInfoBar *m_infoBarSimple,
+              *m_infoBarAdvanced;
+#endif // wxUSE_INFOBAR
+
     DECLARE_EVENT_TABLE()
 };
 
@@ -472,6 +482,8 @@ enum
     DIALOGS_TIP,
     DIALOGS_NUM_ENTRY,
     DIALOGS_LOG_DIALOG,
+    DIALOGS_INFOBAR_SIMPLE,
+    DIALOGS_INFOBAR_ADVANCED,
     DIALOGS_MODAL,
     DIALOGS_MODELESS,
     DIALOGS_CENTRE_SCREEN,
index 0fc38e74c7c4b5c7aafb8cc4ae5c27b84b045efd..75f4246ece0123ce9fadf5a3c0c61a49e5546d2a 100644 (file)
 
 #define wxUSE_IMAGLIST      0
 
+#define wxUSE_INFOBAR       0
+
 #define wxUSE_MENUS         0
 
 #define wxUSE_NOTIFICATION_MESSAGE 0
diff --git a/src/generic/infobar.cpp b/src/generic/infobar.cpp
new file mode 100644 (file)
index 0000000..db8708a
--- /dev/null
@@ -0,0 +1,235 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        src/generic/infobar.cpp
+// Purpose:     generic wxInfoBar implementation
+// Author:      Vadim Zeitlin
+// Created:     2009-07-28
+// RCS-ID:      $Id: wxhead.cpp,v 1.10 2009-06-29 10:23:04 zeitlin Exp $
+// Copyright:   (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_INFOBAR
+
+#ifndef WX_PRECOMP
+    #include "wx/artprov.h"
+    #include "wx/bmpbuttn.h"
+    #include "wx/settings.h"
+    #include "wx/statbmp.h"
+    #include "wx/stattext.h"
+#endif // WX_PRECOMP
+
+#include "wx/infobar.h"
+
+#include "wx/scopeguard.h"
+#include "wx/sizer.h"
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+void wxInfoBar::Init()
+{
+    m_icon = NULL;
+    m_text = NULL;
+    m_button = NULL;
+
+    m_showEffect = wxSHOW_EFFECT_SLIDE_TO_BOTTOM;
+    m_hideEffect = wxSHOW_EFFECT_SLIDE_TO_TOP;
+
+    // use default effect duration
+    m_effectDuration = 0;
+}
+
+bool wxInfoBar::Create(wxWindow *parent, wxWindowID winid)
+{
+    // calling Hide() before Create() ensures that we're created initially
+    // hidden
+    Hide();
+    if ( !wxWindow::Create(parent, winid) )
+        return false;
+
+    // use special, easy to notice, colours
+    SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK));
+    SetOwnForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT));
+
+    // create the controls: icon, text and the button to dismiss the
+    // message.
+
+    // the icon is not shown unless it's assigned a valid bitmap
+    m_icon = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap);
+
+    // by default, the text uses a larger, more noticeable, font
+    m_text = new wxStaticText(this, wxID_ANY, "");
+    m_text->SetFont(m_text->GetFont().Bold().Larger());
+
+    m_button = new wxBitmapButton
+                   (
+                    this,
+                    wxID_ANY,
+                    wxArtProvider::GetBitmap(wxART_CROSS_MARK),
+                    wxDefaultPosition,
+                    wxDefaultSize,
+                    wxBORDER_NONE
+                   );
+    m_button->SetToolTip(_("Hide this notification message."));
+
+    Connect
+    (
+        wxEVT_COMMAND_BUTTON_CLICKED,
+        wxCommandEventHandler(wxInfoBar::OnButton),
+        NULL,
+        this
+    );
+
+    // Center the text inside the sizer.
+    wxSizer * const sizer = new wxBoxSizer(wxHORIZONTAL);
+    sizer->AddStretchSpacer();
+    sizer->Add(m_icon, wxSizerFlags().Centre().DoubleBorder());
+    sizer->Add(m_text, wxSizerFlags().Centre().DoubleBorder());
+    sizer->AddStretchSpacer();
+    sizer->Add(m_button, wxSizerFlags().Centre().DoubleBorder());
+    SetSizer(sizer);
+
+    return true;
+}
+
+void wxInfoBar::UpdateParent()
+{
+    wxWindow * const parent = wxGetTopLevelParent(GetParent());
+    parent->Layout();
+}
+
+void wxInfoBar::ChangeParentBackground()
+{
+    wxWindow * const parent = GetParent();
+    m_origParentBgCol = parent->GetBackgroundColour();
+
+    wxSizer * const sizer = GetContainingSizer();
+    if ( !sizer )
+        return;
+
+    wxWindow *sibling = NULL;
+    for ( wxSizerItemList::compatibility_iterator
+            node = sizer->GetChildren().GetFirst();
+            node;
+            node = node->GetNext() )
+    {
+        if ( node->GetData()->GetWindow() == this )
+        {
+            // find the next window following us
+            for ( node = node->GetNext();
+                  node;
+                  node = node->GetNext() )
+            {
+                wxSizerItem * const item = node->GetData();
+                if ( item->IsWindow() )
+                {
+                    sibling = item->GetWindow();
+                    break;
+                }
+            }
+
+            break;
+        }
+    }
+
+    if ( sibling )
+        parent->SetOwnBackgroundColour(sibling->GetBackgroundColour());
+}
+
+void wxInfoBar::RestoreParentBackground()
+{
+    GetParent()->SetOwnBackgroundColour(m_origParentBgCol);
+}
+
+void wxInfoBar::DoHide()
+{
+    ChangeParentBackground();
+    wxON_BLOCK_EXIT_THIS0( wxInfoBar::RestoreParentBackground );
+
+    HideWithEffect(m_hideEffect, m_effectDuration);
+    UpdateParent();
+}
+
+void wxInfoBar::DoShow()
+{
+    // re-layout the parent first so that the window expands into an already
+    // unoccupied by the other controls area: for this we need to change our
+    // internal visibility flag to force Layout() to take us into account (an
+    // alternative solution to this hack would be to temporarily set
+    // wxRESERVE_SPACE_EVEN_IF_HIDDEN flag but it's not really batter)
+
+    // just change the internal flag indicating that the window is visible,
+    // without really showing it
+    wxWindowBase::Show();
+
+    // an extra hack: we want the temporarily uncovered area in which we're
+    // going to expand to look like part of this sibling for a better effect so
+    // temporarily change the background of our parent to the same colour
+    ChangeParentBackground();
+    wxON_BLOCK_EXIT_THIS0( wxInfoBar::RestoreParentBackground );
+
+    // adjust the parent layout to account for us
+    UpdateParent();
+
+    // reset the flag back before really showing the window or it wouldn't be
+    // shown at all because it would believe itself already visible
+    wxWindowBase::Show(false);
+
+
+    // finally do really show the window.
+    ShowWithEffect(m_showEffect, m_effectDuration);
+}
+
+void wxInfoBar::ShowMessage(const wxString& msg, int flags)
+{
+    // first update the controls
+    const int icon = flags & wxICON_MASK;
+    if ( !icon || (icon == wxICON_NONE) )
+    {
+        m_icon->Hide();
+    }
+    else // do show an icon
+    {
+        m_icon->SetBitmap(wxArtProvider::GetMessageBoxIcon(icon));
+        m_icon->Show();
+    }
+
+    // notice the use of EscapeMnemonics() to ensure that "&" come through
+    // correctly
+    m_text->SetLabel(wxControl::EscapeMnemonics(msg));
+
+
+    // then show this entire window if not done yet
+    if ( !IsShown() )
+    {
+        DoShow();
+    }
+    else // we're already shown
+    {
+        // just update the layout to correspond to the new message
+        Layout();
+    }
+}
+
+void wxInfoBar::OnButton(wxCommandEvent& WXUNUSED(event))
+{
+    DoHide();
+}
+
+#endif // wxUSE_INFOBAR