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 \
wx/generic/wizard.h \
wx/grid.h \
wx/hyperlink.h \
+ wx/infobar.h \
wx/joystick.h \
wx/laywin.h \
wx/notifmsg.h \
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 \
wx/generic/wizard.h \
wx/grid.h \
wx/hyperlink.h \
+ wx/infobar.h \
wx/joystick.h \
wx/laywin.h \
wx/notifmsg.h \
monodll_gridsel.o \
monodll_helpext.o \
monodll_hyperlinkg.o \
+ monodll_infobar.o \
monodll_laywin.o \
monodll_notifmsgg.o \
monodll_odcombo.o \
monodll_gridsel.o \
monodll_helpext.o \
monodll_hyperlinkg.o \
+ monodll_infobar.o \
monodll_laywin.o \
monodll_notifmsgg.o \
monodll_odcombo.o \
monolib_gridsel.o \
monolib_helpext.o \
monolib_hyperlinkg.o \
+ monolib_infobar.o \
monolib_laywin.o \
monolib_notifmsgg.o \
monolib_odcombo.o \
monolib_gridsel.o \
monolib_helpext.o \
monolib_hyperlinkg.o \
+ monolib_infobar.o \
monolib_laywin.o \
monolib_notifmsgg.o \
monolib_odcombo.o \
advdll_gridsel.o \
advdll_helpext.o \
advdll_hyperlinkg.o \
+ advdll_infobar.o \
advdll_laywin.o \
advdll_notifmsgg.o \
advdll_odcombo.o \
advdll_gridsel.o \
advdll_helpext.o \
advdll_hyperlinkg.o \
+ advdll_infobar.o \
advdll_laywin.o \
advdll_notifmsgg.o \
advdll_odcombo.o \
advlib_gridsel.o \
advlib_helpext.o \
advlib_hyperlinkg.o \
+ advlib_infobar.o \
advlib_laywin.o \
advlib_notifmsgg.o \
advlib_odcombo.o \
advlib_gridsel.o \
advlib_helpext.o \
advlib_hyperlinkg.o \
+ advlib_infobar.o \
advlib_laywin.o \
advlib_notifmsgg.o \
advlib_odcombo.o \
@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
@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
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
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
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
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
wx/generic/wizard.h
wx/grid.h
wx/hyperlink.h
+ wx/infobar.h
wx/joystick.h
wx/laywin.h
wx/notifmsg.h
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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
$(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
$(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
$(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
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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) $<
$(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) $<
$(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) $<
$(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) $<
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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 \
$(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
$(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
$(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
$(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
$(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 &
$(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 &
$(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 &
$(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 &
$(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 &
$(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 &
$(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 &
$(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 &
$(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) $<
$(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) $<
$(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) $<
$(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) $<
# 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
# 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
# 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
# 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
# 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
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
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
>\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
>\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
>\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
>\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
#! /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.
#
--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
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
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)
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
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é).
@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
# 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."
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// 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_
+
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// 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_
// 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.
// 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.
// 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.
// 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.
// 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.
// 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.
// 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.
// 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.
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// 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);
+
+ //@}
+};
#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"
#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)
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);
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
#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()
}
#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))
{
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);
// 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()
};
DIALOGS_TIP,
DIALOGS_NUM_ENTRY,
DIALOGS_LOG_DIALOG,
+ DIALOGS_INFOBAR_SIMPLE,
+ DIALOGS_INFOBAR_ADVANCED,
DIALOGS_MODAL,
DIALOGS_MODELESS,
DIALOGS_CENTRE_SCREEN,
#define wxUSE_IMAGLIST 0
+#define wxUSE_INFOBAR 0
+
#define wxUSE_MENUS 0
#define wxUSE_NOTIFICATION_MESSAGE 0
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// 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