Initial wxInfoBar implementation.

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
This commit is contained in:
Vadim Zeitlin 2009-10-05 22:54:13 +00:00
parent ffa50e7361
commit a92b5dfe8c
34 changed files with 1001 additions and 4 deletions

View 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

View 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

View 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

View 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) $<

View 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

View 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) $<

View File

@ -529,6 +529,10 @@ SOURCE=..\..\src\generic\hyperlinkg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\generic\infobar.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\generic\laywin.cpp
# End Source File
# Begin Source File
@ -878,6 +882,10 @@ SOURCE=..\..\include\wx\generic\hyperlink.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\infobar.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\laywin.h
# End Source File
# Begin Source File
@ -950,6 +958,10 @@ SOURCE=..\..\include\wx\hyperlink.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\infobar.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\joystick.h
# End Source File
# Begin Source File

View File

@ -5327,6 +5327,10 @@ SOURCE=..\..\include\wx\generic\hyperlink.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\infobar.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\laywin.h
# End Source File
# Begin Source File
@ -6119,6 +6123,10 @@ SOURCE=..\..\include\wx\imagxpm.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\infobar.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\joystick.h
# End Source File
# Begin Source File

View File

@ -731,6 +731,9 @@
RelativePath="..\..\src\generic\hyperlinkg.cpp">
</File>
<File
RelativePath="..\..\src\generic\infobar.cpp">
</File>
<File
RelativePath="..\..\src\generic\laywin.cpp">
</File>
<File
@ -993,6 +996,9 @@
RelativePath="..\..\include\wx\generic\hyperlink.h">
</File>
<File
RelativePath="..\..\include\wx\generic\infobar.h">
</File>
<File
RelativePath="..\..\include\wx\generic\laywin.h">
</File>
<File
@ -1048,6 +1054,9 @@
RelativePath="..\..\include\wx\hyperlink.h">
</File>
<File
RelativePath="..\..\include\wx\infobar.h">
</File>
<File
RelativePath="..\..\include\wx\joystick.h">
</File>
<File

View File

@ -4606,6 +4606,9 @@
RelativePath="..\..\include\wx\generic\hyperlink.h">
</File>
<File
RelativePath="..\..\include\wx\generic\infobar.h">
</File>
<File
RelativePath="..\..\include\wx\generic\laywin.h">
</File>
<File
@ -5203,6 +5206,9 @@
RelativePath="..\..\include\wx\imagxpm.h">
</File>
<File
RelativePath="..\..\include\wx\infobar.h">
</File>
<File
RelativePath="..\..\include\wx\joystick.h">
</File>
<File

View File

@ -1009,6 +1009,10 @@
>
</File>
<File
RelativePath="..\..\src\generic\infobar.cpp"
>
</File>
<File
RelativePath="..\..\src\generic\laywin.cpp"
>
</File>
@ -1344,6 +1348,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\generic\infobar.h"
>
</File>
<File
RelativePath="..\..\include\wx\generic\laywin.h"
>
</File>
@ -1417,6 +1425,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\infobar.h"
>
</File>
<File
RelativePath="..\..\include\wx\joystick.h"
>
</File>

View File

@ -6161,6 +6161,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\generic\infobar.h"
>
</File>
<File
RelativePath="..\..\include\wx\generic\laywin.h"
>
</File>
@ -6956,6 +6960,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\infobar.h"
>
</File>
<File
RelativePath="..\..\include\wx\joystick.h"
>
</File>

View File

@ -1005,6 +1005,10 @@
>
</File>
<File
RelativePath="..\..\src\generic\infobar.cpp"
>
</File>
<File
RelativePath="..\..\src\generic\laywin.cpp"
>
</File>
@ -1340,6 +1344,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\generic\infobar.h"
>
</File>
<File
RelativePath="..\..\include\wx\generic\laywin.h"
>
</File>
@ -1413,6 +1421,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\infobar.h"
>
</File>
<File
RelativePath="..\..\include\wx\joystick.h"
>
</File>

View File

@ -6157,6 +6157,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\generic\infobar.h"
>
</File>
<File
RelativePath="..\..\include\wx\generic\laywin.h"
>
</File>
@ -6952,6 +6956,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\infobar.h"
>
</File>
<File
RelativePath="..\..\include\wx\joystick.h"
>
</File>

54
configure vendored
View File

@ -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
@ -10886,6 +10887,50 @@ fi
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

View 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

View 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é).

View 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

View File

@ -696,6 +696,14 @@
# 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."

View File

@ -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_

49
include/wx/infobar.h Normal file
View File

@ -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_

View File

@ -570,6 +570,14 @@
// 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.
@ -891,6 +899,14 @@
// 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.

View File

@ -899,6 +899,14 @@
// 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.

View File

@ -899,6 +899,14 @@
// 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.

View File

@ -899,6 +899,14 @@
// 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.

View File

@ -900,6 +900,14 @@
// 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.

View File

@ -899,6 +899,14 @@
// 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.

View File

@ -895,6 +895,14 @@
// 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.

View File

@ -898,6 +898,14 @@
// 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.

213
interface/wx/infobar.h Normal file
View File

@ -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);
//@}
};

View File

@ -87,6 +87,10 @@
#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))
{

View 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,

View File

@ -409,6 +409,8 @@
#define wxUSE_IMAGLIST 0
#define wxUSE_INFOBAR 0
#define wxUSE_MENUS 0
#define wxUSE_NOTIFICATION_MESSAGE 0

235
src/generic/infobar.cpp Normal file
View File

@ -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