added wxAnimationCtrl (patch 1570325)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-10-09 17:51:07 +00:00
parent be6520af4e
commit 72045d5768
49 changed files with 3657 additions and 504 deletions

View File

@@ -2574,11 +2574,15 @@ COND_TOOLKIT_WINCE_GUI_HDR = \
wx/msw/wince/textctrlce.h \
wx/msw/wince/resources.h
@COND_TOOLKIT_WINCE@GUI_HDR = $(COND_TOOLKIT_WINCE_GUI_HDR)
@COND_TOOLKIT_COCOA@ADVANCED_PLATFORM_HDR = \
@COND_TOOLKIT_COCOA@ wx/cocoa/taskbar.h wx/mac/corefoundation/joystick.h
COND_TOOLKIT_COCOA_ADVANCED_PLATFORM_HDR = \
wx/generic/animate.h \
wx/cocoa/taskbar.h \
wx/mac/corefoundation/joystick.h
@COND_TOOLKIT_COCOA@ADVANCED_PLATFORM_HDR = $(COND_TOOLKIT_COCOA_ADVANCED_PLATFORM_HDR)
@COND_TOOLKIT_GTK@ADVANCED_PLATFORM_HDR = \
@COND_TOOLKIT_GTK@ wx/unix/joystick.h wx/unix/sound.h wx/unix/taskbarx11.h
COND_TOOLKIT_MAC_ADVANCED_PLATFORM_HDR = \
wx/generic/animate.h \
wx/mac/carbon/drawer.h \
wx/mac/carbon/sound.h \
wx/mac/carbon/taskbarosx.h \
@@ -2587,17 +2591,22 @@ COND_TOOLKIT_MAC_ADVANCED_PLATFORM_HDR = \
@COND_TOOLKIT_MOTIF@ADVANCED_PLATFORM_HDR = \
@COND_TOOLKIT_MOTIF@ wx/unix/joystick.h wx/unix/sound.h \
@COND_TOOLKIT_MOTIF@ wx/unix/taskbarx11.h
@COND_TOOLKIT_MSW@ADVANCED_PLATFORM_HDR = wx/msw/sound.h \
@COND_TOOLKIT_MSW@ wx/msw/taskbar.h wx/msw/joystick.h
@COND_TOOLKIT_PM@ADVANCED_PLATFORM_HDR = wx/os2/joystick.h \
@COND_TOOLKIT_PM@ wx/os2/sound.h
COND_TOOLKIT_MSW_ADVANCED_PLATFORM_HDR = \
wx/generic/animate.h \
wx/msw/sound.h \
wx/msw/taskbar.h \
wx/msw/joystick.h
@COND_TOOLKIT_MSW@ADVANCED_PLATFORM_HDR = $(COND_TOOLKIT_MSW_ADVANCED_PLATFORM_HDR)
@COND_TOOLKIT_PM@ADVANCED_PLATFORM_HDR = \
@COND_TOOLKIT_PM@ wx/generic/animate.h wx/os2/joystick.h wx/os2/sound.h
@COND_TOOLKIT_WINCE@ADVANCED_PLATFORM_HDR = \
@COND_TOOLKIT_WINCE@ wx/msw/sound.h wx/msw/taskbar.h
@COND_TOOLKIT_WINCE@ wx/generic/animate.h wx/msw/sound.h wx/msw/taskbar.h
@COND_TOOLKIT_X11@ADVANCED_PLATFORM_HDR = \
@COND_TOOLKIT_X11@ wx/unix/joystick.h wx/unix/sound.h wx/unix/taskbarx11.h
@COND_TOOLKIT_MSW@ADVANCED_PLATFORM_NATIVE_HDR = wx/msw/datectrl.h
@COND_TOOLKIT_WINCE@ADVANCED_PLATFORM_NATIVE_HDR = wx/msw/datectrl.h
COND_WXUNIV_0_ADVANCED_HDR = \
wx/animate.h \
wx/bmpcbox.h \
wx/calctrl.h \
wx/dataview.h \
@@ -2637,6 +2646,7 @@ COND_WXUNIV_0_ADVANCED_HDR = \
$(ADVANCED_PLATFORM_NATIVE_HDR)
@COND_WXUNIV_0@ADVANCED_HDR = $(COND_WXUNIV_0_ADVANCED_HDR)
COND_WXUNIV_1_ADVANCED_HDR = \
wx/animate.h \
wx/bmpcbox.h \
wx/calctrl.h \
wx/dataview.h \
@@ -2820,6 +2830,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/wupdlock.h \
wx/accel.h \
wx/access.h \
wx/anidecod.h \
wx/artprov.h \
wx/bitmap.h \
wx/bookctrl.h \
@@ -3312,6 +3323,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS = \
$(__LOWLEVEL_SRC_OBJECTS) \
$(__GUI_SRC_OBJECTS) \
monodll_accesscmn.o \
monodll_anidecod.o \
monodll_appcmn.o \
monodll_artprov.o \
monodll_artstd.o \
@@ -3480,6 +3492,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \
monodll_mono.o \
monodll_win32.o \
monodll_accesscmn.o \
monodll_anidecod.o \
monodll_appcmn.o \
monodll_artprov.o \
monodll_artstd.o \
@@ -4713,6 +4726,7 @@ COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_window.o
@COND_TOOLKIT_X11@__LOWLEVEL_SRC_OBJECTS_1 = $(COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_1)
COND_WXUNIV_0___ADVANCED_SRC_OBJECTS = \
monodll_animatecmn.o \
monodll_datavcmn.o \
monodll_aboutdlgg.o \
monodll_bmpcboxg.o \
@@ -4735,6 +4749,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS = \
$(__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS)
@COND_WXUNIV_0@__ADVANCED_SRC_OBJECTS = $(COND_WXUNIV_0___ADVANCED_SRC_OBJECTS)
COND_WXUNIV_1___ADVANCED_SRC_OBJECTS = \
monodll_animatecmn.o \
monodll_datavcmn.o \
monodll_aboutdlgg.o \
monodll_bmpcboxg.o \
@@ -5047,6 +5062,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_1 = \
$(__LOWLEVEL_SRC_OBJECTS_2) \
$(__GUI_SRC_OBJECTS_1) \
monolib_accesscmn.o \
monolib_anidecod.o \
monolib_appcmn.o \
monolib_artprov.o \
monolib_artstd.o \
@@ -5215,6 +5231,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \
monolib_mono.o \
monolib_win32.o \
monolib_accesscmn.o \
monolib_anidecod.o \
monolib_appcmn.o \
monolib_artprov.o \
monolib_artstd.o \
@@ -6450,6 +6467,7 @@ COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_window.o
@COND_TOOLKIT_X11@__LOWLEVEL_SRC_OBJECTS_3 = $(COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_3)
COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 = \
monolib_animatecmn.o \
monolib_datavcmn.o \
monolib_aboutdlgg.o \
monolib_bmpcboxg.o \
@@ -6472,6 +6490,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 = \
$(__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1)
@COND_WXUNIV_0@__ADVANCED_SRC_OBJECTS_1 = $(COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1)
COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 = \
monolib_animatecmn.o \
monolib_datavcmn.o \
monolib_aboutdlgg.o \
monolib_bmpcboxg.o \
@@ -6998,6 +7017,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
$(__LOWLEVEL_SRC_OBJECTS_4) \
$(__GUI_SRC_OBJECTS_2) \
coredll_accesscmn.o \
coredll_anidecod.o \
coredll_appcmn.o \
coredll_artprov.o \
coredll_artstd.o \
@@ -7166,6 +7186,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \
coredll_mono.o \
coredll_win32.o \
coredll_accesscmn.o \
coredll_anidecod.o \
coredll_appcmn.o \
coredll_artprov.o \
coredll_artstd.o \
@@ -8423,6 +8444,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
$(__LOWLEVEL_SRC_OBJECTS_6) \
$(__GUI_SRC_OBJECTS_3) \
corelib_accesscmn.o \
corelib_anidecod.o \
corelib_appcmn.o \
corelib_artprov.o \
corelib_artstd.o \
@@ -8591,6 +8613,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \
corelib_mono.o \
corelib_win32.o \
corelib_accesscmn.o \
corelib_anidecod.o \
corelib_appcmn.o \
corelib_artprov.o \
corelib_artstd.o \
@@ -9872,6 +9895,7 @@ COND_USE_SOSYMLINKS_1___advdll___so_symlinks_inst_cmd = rm -f \
@COND_USE_SOSYMLINKS_1@__advdll___so_symlinks_inst_cmd = $(COND_USE_SOSYMLINKS_1___advdll___so_symlinks_inst_cmd)
@COND_PLATFORM_WIN32_1@__advdll___win32rc = advdll_version_rc.o
COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 = \
advdll_animatecmn.o \
advdll_datavcmn.o \
advdll_aboutdlgg.o \
advdll_bmpcboxg.o \
@@ -9894,6 +9918,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 = \
$(__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2)
@COND_WXUNIV_0@__ADVANCED_SRC_OBJECTS_2 = $(COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2)
COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_2 = \
advdll_animatecmn.o \
advdll_datavcmn.o \
advdll_aboutdlgg.o \
advdll_bmpcboxg.o \
@@ -9931,6 +9956,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___advlib___depname = \
@COND_USE_PCH_1@___pch_wxprec_advlib_wx_wxprec_h_gch___depname \
@COND_USE_PCH_1@ = .pch/wxprec_advlib/wx/wxprec.h.gch
COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 = \
advlib_animatecmn.o \
advlib_datavcmn.o \
advlib_aboutdlgg.o \
advlib_bmpcboxg.o \
@@ -9953,6 +9979,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 = \
$(__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3)
@COND_WXUNIV_0@__ADVANCED_SRC_OBJECTS_3 = $(COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3)
COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_3 = \
advlib_animatecmn.o \
advlib_datavcmn.o \
advlib_aboutdlgg.o \
advlib_bmpcboxg.o \
@@ -10612,9 +10639,12 @@ COND_WITH_PLUGIN_SDL_1___sound_sdl___depname = \
@COND_PLATFORM_MACOSX_1@__MAC_LOWLEVEL_SRC_OBJECTS \
@COND_PLATFORM_MACOSX_1@ = monodll_gsockosx.o monodll_hid.o \
@COND_PLATFORM_MACOSX_1@ monodll_utilsexc_cf.o
@COND_TOOLKIT_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS = \
@COND_TOOLKIT_COCOA@ monodll_taskbar.o monodll_taskbarcmn.o \
@COND_TOOLKIT_COCOA@ monodll_hidjoystick.o
COND_TOOLKIT_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_animateg.o \
monodll_taskbar.o \
monodll_taskbarcmn.o \
monodll_hidjoystick.o
@COND_TOOLKIT_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS)
COND_TOOLKIT_GTK_TOOLKIT_VERSION____ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_taskbarcmn.o \
monodll_joystick.o \
@@ -10627,11 +10657,13 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_sound.o \
monodll_taskbarx11.o \
monodll_aboutdlg.o \
monodll_animate.o \
monodll_taskbar.o \
monodll_dataview.o \
monodll_eggtrayicon.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS)
COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_animateg.o \
monodll_taskbarcmn.o \
monodll_aboutdlg.o \
monodll_drawer.o \
@@ -10646,6 +10678,7 @@ COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_taskbarx11.o
@COND_TOOLKIT_MOTIF@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS)
COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_animateg.o \
monodll_taskbarcmn.o \
monodll_aboutdlg.o \
monodll_sound.o \
@@ -10653,10 +10686,14 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_joystick.o
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS)
@COND_TOOLKIT_PM@__ADVANCED_PLATFORM_SRC_OBJECTS = \
@COND_TOOLKIT_PM@ monodll_joystick.o monodll_sound.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS = \
@COND_TOOLKIT_WINCE@ monodll_taskbarcmn.o monodll_aboutdlg.o \
@COND_TOOLKIT_WINCE@ monodll_sound.o monodll_taskbar.o
@COND_TOOLKIT_PM@ monodll_animateg.o monodll_joystick.o monodll_sound.o
COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_animateg.o \
monodll_taskbarcmn.o \
monodll_aboutdlg.o \
monodll_sound.o \
monodll_taskbar.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS)
COND_TOOLKIT_X11___ADVANCED_PLATFORM_SRC_OBJECTS = \
monodll_taskbarcmn.o \
monodll_joystick.o \
@@ -10666,9 +10703,12 @@ COND_TOOLKIT_X11___ADVANCED_PLATFORM_SRC_OBJECTS = \
@COND_PLATFORM_MACOSX_1@__MAC_LOWLEVEL_SRC_OBJECTS_0 \
@COND_PLATFORM_MACOSX_1@ = monolib_gsockosx.o monolib_hid.o \
@COND_PLATFORM_MACOSX_1@ monolib_utilsexc_cf.o
@COND_TOOLKIT_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
@COND_TOOLKIT_COCOA@ monolib_taskbar.o monolib_taskbarcmn.o \
@COND_TOOLKIT_COCOA@ monolib_hidjoystick.o
COND_TOOLKIT_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_animateg.o \
monolib_taskbar.o \
monolib_taskbarcmn.o \
monolib_hidjoystick.o
@COND_TOOLKIT_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_0)
COND_TOOLKIT_GTK_TOOLKIT_VERSION____ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_taskbarcmn.o \
monolib_joystick.o \
@@ -10681,11 +10721,13 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_sound.o \
monolib_taskbarx11.o \
monolib_aboutdlg.o \
monolib_animate.o \
monolib_taskbar.o \
monolib_dataview.o \
monolib_eggtrayicon.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_0)
COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_animateg.o \
monolib_taskbarcmn.o \
monolib_aboutdlg.o \
monolib_drawer.o \
@@ -10700,6 +10742,7 @@ COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_taskbarx11.o
@COND_TOOLKIT_MOTIF@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_MOTIF___ADVANCED_PLATFORM_SRC_OBJECTS_0)
COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_animateg.o \
monolib_taskbarcmn.o \
monolib_aboutdlg.o \
monolib_sound.o \
@@ -10707,10 +10750,14 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_joystick.o
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_0)
@COND_TOOLKIT_PM@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
@COND_TOOLKIT_PM@ monolib_joystick.o monolib_sound.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
@COND_TOOLKIT_WINCE@ monolib_taskbarcmn.o monolib_aboutdlg.o \
@COND_TOOLKIT_WINCE@ monolib_sound.o monolib_taskbar.o
@COND_TOOLKIT_PM@ monolib_animateg.o monolib_joystick.o monolib_sound.o
COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_animateg.o \
monolib_taskbarcmn.o \
monolib_aboutdlg.o \
monolib_sound.o \
monolib_taskbar.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_0)
COND_TOOLKIT_X11___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
monolib_taskbarcmn.o \
monolib_joystick.o \
@@ -10723,9 +10770,12 @@ COND_TOOLKIT_X11___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \
@COND_PLATFORM_MACOSX_1@__MAC_LOWLEVEL_SRC_OBJECTS_9 \
@COND_PLATFORM_MACOSX_1@ = corelib_gsockosx.o corelib_hid.o \
@COND_PLATFORM_MACOSX_1@ corelib_utilsexc_cf.o
@COND_TOOLKIT_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
@COND_TOOLKIT_COCOA@ advdll_taskbar.o advdll_taskbarcmn.o \
@COND_TOOLKIT_COCOA@ advdll_hidjoystick.o
COND_TOOLKIT_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
advdll_animateg.o \
advdll_taskbar.o \
advdll_taskbarcmn.o \
advdll_hidjoystick.o
@COND_TOOLKIT_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_8)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_@__ADVANCED_PLATFORM_SRC_OBJECTS_8 \
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ = advdll_taskbarcmn.o advdll_joystick.o \
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ advdll_sound.o advdll_taskbarx11.o
@@ -10735,11 +10785,13 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
advdll_sound.o \
advdll_taskbarx11.o \
advdll_aboutdlg.o \
advdll_animate.o \
advdll_taskbar.o \
advdll_dataview.o \
advdll_eggtrayicon.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_8)
COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
advdll_animateg.o \
advdll_taskbarcmn.o \
advdll_aboutdlg.o \
advdll_drawer.o \
@@ -10751,6 +10803,7 @@ COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
@COND_TOOLKIT_MOTIF@ advdll_taskbarcmn.o advdll_joystick.o advdll_sound.o \
@COND_TOOLKIT_MOTIF@ advdll_taskbarx11.o
COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
advdll_animateg.o \
advdll_taskbarcmn.o \
advdll_aboutdlg.o \
advdll_sound.o \
@@ -10758,16 +10811,23 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
advdll_joystick.o
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_8)
@COND_TOOLKIT_PM@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
@COND_TOOLKIT_PM@ advdll_joystick.o advdll_sound.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
@COND_TOOLKIT_WINCE@ advdll_taskbarcmn.o advdll_aboutdlg.o advdll_sound.o \
@COND_TOOLKIT_WINCE@ advdll_taskbar.o
@COND_TOOLKIT_PM@ advdll_animateg.o advdll_joystick.o advdll_sound.o
COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
advdll_animateg.o \
advdll_taskbarcmn.o \
advdll_aboutdlg.o \
advdll_sound.o \
advdll_taskbar.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_8)
@COND_TOOLKIT_X11@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = \
@COND_TOOLKIT_X11@ advdll_taskbarcmn.o advdll_joystick.o advdll_sound.o \
@COND_TOOLKIT_X11@ advdll_taskbarx11.o
@COND_TOOLKIT_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
@COND_TOOLKIT_COCOA@ advlib_taskbar.o advlib_taskbarcmn.o \
@COND_TOOLKIT_COCOA@ advlib_hidjoystick.o
COND_TOOLKIT_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
advlib_animateg.o \
advlib_taskbar.o \
advlib_taskbarcmn.o \
advlib_hidjoystick.o
@COND_TOOLKIT_COCOA@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_9)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_@__ADVANCED_PLATFORM_SRC_OBJECTS_9 \
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ = advlib_taskbarcmn.o advlib_joystick.o \
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ advlib_sound.o advlib_taskbarx11.o
@@ -10777,11 +10837,13 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
advlib_sound.o \
advlib_taskbarx11.o \
advlib_aboutdlg.o \
advlib_animate.o \
advlib_taskbar.o \
advlib_dataview.o \
advlib_eggtrayicon.o
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_9)
COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
advlib_animateg.o \
advlib_taskbarcmn.o \
advlib_aboutdlg.o \
advlib_drawer.o \
@@ -10793,6 +10855,7 @@ COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
@COND_TOOLKIT_MOTIF@ advlib_taskbarcmn.o advlib_joystick.o advlib_sound.o \
@COND_TOOLKIT_MOTIF@ advlib_taskbarx11.o
COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
advlib_animateg.o \
advlib_taskbarcmn.o \
advlib_aboutdlg.o \
advlib_sound.o \
@@ -10800,10 +10863,14 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
advlib_joystick.o
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_9)
@COND_TOOLKIT_PM@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
@COND_TOOLKIT_PM@ advlib_joystick.o advlib_sound.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
@COND_TOOLKIT_WINCE@ advlib_taskbarcmn.o advlib_aboutdlg.o advlib_sound.o \
@COND_TOOLKIT_WINCE@ advlib_taskbar.o
@COND_TOOLKIT_PM@ advlib_animateg.o advlib_joystick.o advlib_sound.o
COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
advlib_animateg.o \
advlib_taskbarcmn.o \
advlib_aboutdlg.o \
advlib_sound.o \
advlib_taskbar.o
@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_9)
@COND_TOOLKIT_X11@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = \
@COND_TOOLKIT_X11@ advlib_taskbarcmn.o advlib_joystick.o advlib_sound.o \
@COND_TOOLKIT_X11@ advlib_taskbarx11.o
@@ -15377,6 +15444,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_accesscmn.o: $(srcdir)/src/common/accesscmn.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/accesscmn.cpp
@COND_USE_GUI_1@monodll_anidecod.o: $(srcdir)/src/common/anidecod.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/anidecod.cpp
@COND_USE_GUI_1@monodll_appcmn.o: $(srcdir)/src/common/appcmn.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/appcmn.cpp
@@ -15716,6 +15786,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_vscroll.o: $(srcdir)/src/generic/vscroll.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/vscroll.cpp
@COND_USE_GUI_1@monodll_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp
@COND_USE_GUI_1@monodll_datavcmn.o: $(srcdir)/src/common/datavcmn.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/datavcmn.cpp
@@ -15770,6 +15843,21 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/wizard.cpp
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_MAC_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MAC_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_COCOA_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_PM_USE_GUI_1@monodll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_PM_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_taskbarcmn.o: $(srcdir)/src/common/taskbarcmn.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/taskbarcmn.cpp
@@ -15857,6 +15945,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@monodll_taskbarx11.o: $(srcdir)/src/unix/taskbarx11.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/taskbarx11.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@monodll_animate.o: $(srcdir)/src/gtk/animate.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@monodll_dataview.o: $(srcdir)/src/gtk/dataview.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/dataview.cpp
@@ -19376,6 +19467,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_accesscmn.o: $(srcdir)/src/common/accesscmn.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/accesscmn.cpp
@COND_USE_GUI_1@monolib_anidecod.o: $(srcdir)/src/common/anidecod.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/anidecod.cpp
@COND_USE_GUI_1@monolib_appcmn.o: $(srcdir)/src/common/appcmn.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/appcmn.cpp
@@ -19715,6 +19809,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_vscroll.o: $(srcdir)/src/generic/vscroll.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/vscroll.cpp
@COND_USE_GUI_1@monolib_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp
@COND_USE_GUI_1@monolib_datavcmn.o: $(srcdir)/src/common/datavcmn.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/datavcmn.cpp
@@ -19769,6 +19866,21 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/wizard.cpp
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_MAC_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MAC_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_COCOA_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_COCOA_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_PM_USE_GUI_1@monolib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_PM_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_taskbarcmn.o: $(srcdir)/src/common/taskbarcmn.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/taskbarcmn.cpp
@@ -19856,6 +19968,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@monolib_taskbarx11.o: $(srcdir)/src/unix/taskbarx11.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/taskbarx11.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@monolib_animate.o: $(srcdir)/src/gtk/animate.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@monolib_dataview.o: $(srcdir)/src/gtk/dataview.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/dataview.cpp
@@ -23714,6 +23829,9 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@coredll_accesscmn.o: $(srcdir)/src/common/accesscmn.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/accesscmn.cpp
@COND_USE_GUI_1@coredll_anidecod.o: $(srcdir)/src/common/anidecod.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/anidecod.cpp
@COND_USE_GUI_1@coredll_appcmn.o: $(srcdir)/src/common/appcmn.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/appcmn.cpp
@@ -26621,6 +26739,9 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@corelib_accesscmn.o: $(srcdir)/src/common/accesscmn.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/accesscmn.cpp
@COND_USE_GUI_1@corelib_anidecod.o: $(srcdir)/src/common/anidecod.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/anidecod.cpp
@COND_USE_GUI_1@corelib_appcmn.o: $(srcdir)/src/common/appcmn.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/appcmn.cpp
@@ -26966,6 +27087,9 @@ advdll_version_rc.o: $(srcdir)/src/msw/version.rc $(ADVDLL_ODEP)
advdll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(ADVDLL_ODEP)
$(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/unix/sound_sdl.cpp
advdll_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(ADVDLL_ODEP)
$(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp
advdll_datavcmn.o: $(srcdir)/src/common/datavcmn.cpp $(ADVDLL_ODEP)
$(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/common/datavcmn.cpp
@@ -27020,6 +27144,21 @@ advdll_tipdlg.o: $(srcdir)/src/generic/tipdlg.cpp $(ADVDLL_ODEP)
advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP)
$(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/wizard.cpp
@COND_TOOLKIT_MSW@advdll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_WINCE@advdll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_WINCE@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_MAC@advdll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_MAC@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_COCOA@advdll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_PM@advdll_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_PM@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_MSW@advdll_taskbarcmn.o: $(srcdir)/src/common/taskbarcmn.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/common/taskbarcmn.cpp
@@ -27134,6 +27273,9 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_X11@advdll_taskbarx11.o: $(srcdir)/src/unix/taskbarx11.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_X11@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/unix/taskbarx11.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@advdll_animate.o: $(srcdir)/src/gtk/animate.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@advdll_dataview.o: $(srcdir)/src/gtk/dataview.cpp $(ADVDLL_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/gtk/dataview.cpp
@@ -27149,6 +27291,9 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP)
advlib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(ADVLIB_ODEP)
$(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/unix/sound_sdl.cpp
advlib_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(ADVLIB_ODEP)
$(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp
advlib_datavcmn.o: $(srcdir)/src/common/datavcmn.cpp $(ADVLIB_ODEP)
$(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/common/datavcmn.cpp
@@ -27203,6 +27348,21 @@ advlib_tipdlg.o: $(srcdir)/src/generic/tipdlg.cpp $(ADVLIB_ODEP)
advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP)
$(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/wizard.cpp
@COND_TOOLKIT_MSW@advlib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_WINCE@advlib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_WINCE@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_MAC@advlib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_MAC@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_COCOA@advlib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_COCOA@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_PM@advlib_animateg.o: $(srcdir)/src/generic/animateg.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_PM@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/animateg.cpp
@COND_TOOLKIT_MSW@advlib_taskbarcmn.o: $(srcdir)/src/common/taskbarcmn.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/common/taskbarcmn.cpp
@@ -27317,6 +27477,9 @@ advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_X11@advlib_taskbarx11.o: $(srcdir)/src/unix/taskbarx11.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_X11@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/unix/taskbarx11.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@advlib_animate.o: $(srcdir)/src/gtk/animate.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/gtk/animate.cpp
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@advlib_dataview.o: $(srcdir)/src/gtk/dataview.cpp $(ADVLIB_ODEP)
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/gtk/dataview.cpp

View File

@@ -551,6 +551,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<set var="GUI_CMN_SRC" hints="files">
src/common/accesscmn.cpp
src/common/anidecod.cpp
src/common/appcmn.cpp
src/common/artprov.cpp
src/common/artstd.cpp
@@ -756,6 +757,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/accel.h
wx/access.h
wx/anidecod.h
wx/artprov.h
wx/bitmap.h
wx/bookctrl.h
@@ -2611,6 +2613,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<!-- ====================================================================== -->
<set var="ADVANCED_CMN_SRC" hints="files">
src/common/animatecmn.cpp
src/common/datavcmn.cpp
src/generic/aboutdlgg.cpp
src/generic/bmpcboxg.cpp
@@ -2632,6 +2635,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
</set>
<set var="ADVANCED_CMN_HDR" hints="files">
wx/animate.h
wx/bmpcbox.h
wx/calctrl.h
wx/dataview.h
@@ -2673,12 +2677,14 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
</set>
<set var="ADVANCED_MSW_SRC" hints="files">
src/generic/animateg.cpp
src/common/taskbarcmn.cpp
src/msw/aboutdlg.cpp
src/msw/sound.cpp
src/msw/taskbar.cpp
</set>
<set var="ADVANCED_MSW_HDR" hints="files">
wx/generic/animate.h
wx/msw/sound.h
wx/msw/taskbar.h
</set>
@@ -2700,6 +2706,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
</set>
<set var="ADVANCED_MAC_SRC" hints="files">
src/generic/animateg.cpp
src/common/taskbarcmn.cpp
src/mac/carbon/aboutdlg.cpp
src/mac/carbon/drawer.cpp
@@ -2708,6 +2715,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/mac/corefoundation/hidjoystick.cpp
</set>
<set var="ADVANCED_MAC_HDR" hints="files">
wx/generic/animate.h
wx/mac/carbon/drawer.h
wx/mac/carbon/sound.h
wx/mac/carbon/taskbarosx.h
@@ -2715,20 +2723,24 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
</set>
<set var="ADVANCED_COCOA_SRC" hints="files">
src/generic/animateg.cpp
src/cocoa/taskbar.mm
src/common/taskbarcmn.cpp
src/mac/corefoundation/hidjoystick.cpp
</set>
<set var="ADVANCED_COCOA_HDR" hints="files">
wx/generic/animate.h
wx/cocoa/taskbar.h
wx/mac/corefoundation/joystick.h
</set>
<set var="ADVANCED_OS2_SRC" hints="files">
src/generic/animateg.cpp
src/os2/joystick.cpp
src/os2/sound.cpp
</set>
<set var="ADVANCED_OS2_HDR" hints="files">
wx/generic/animate.h
wx/os2/joystick.h
wx/os2/sound.h
</set>
@@ -2747,10 +2759,15 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<set var="ADVANCED_GTK_SRC" hints="files">
src/gtk/aboutdlg.cpp
src/gtk/animate.cpp
src/gtk/taskbar.cpp
src/gtk/dataview.cpp
src/gtk/eggtrayicon.c
</set>
<set var="ADVANCED_GTK_HDR" hints="files">
wx/gtk/animate.h
</set>
<set var="ADVANCED_GTK1_SRC" hints="files">
</set>

View File

@@ -1369,6 +1369,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_fdrepdlg.obj \
$(OBJS)\monodll_fontdlg.obj \
$(OBJS)\monodll_accesscmn.obj \
$(OBJS)\monodll_anidecod.obj \
$(OBJS)\monodll_appcmn.obj \
$(OBJS)\monodll_artprov.obj \
$(OBJS)\monodll_artstd.obj \
@@ -1587,6 +1588,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_mono.obj \
$(OBJS)\monodll_win32.obj \
$(OBJS)\monodll_accesscmn.obj \
$(OBJS)\monodll_anidecod.obj \
$(OBJS)\monodll_appcmn.obj \
$(OBJS)\monodll_artprov.obj \
$(OBJS)\monodll_artstd.obj \
@@ -1703,6 +1705,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
!endif
!if "$(WXUNIV)" == "0"
____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_animatecmn.obj \
$(OBJS)\monodll_datavcmn.obj \
$(OBJS)\monodll_aboutdlgg.obj \
$(OBJS)\monodll_bmpcboxg.obj \
@@ -1721,6 +1724,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_splash.obj \
$(OBJS)\monodll_tipdlg.obj \
$(OBJS)\monodll_wizard.obj \
$(OBJS)\monodll_animateg.obj \
$(OBJS)\monodll_taskbarcmn.obj \
$(OBJS)\monodll_aboutdlg.obj \
$(OBJS)\monodll_sound.obj \
@@ -1730,6 +1734,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
!endif
!if "$(WXUNIV)" == "1"
____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_animatecmn.obj \
$(OBJS)\monodll_datavcmn.obj \
$(OBJS)\monodll_aboutdlgg.obj \
$(OBJS)\monodll_bmpcboxg.obj \
@@ -1748,6 +1753,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_splash.obj \
$(OBJS)\monodll_tipdlg.obj \
$(OBJS)\monodll_wizard.obj \
$(OBJS)\monodll_animateg.obj \
$(OBJS)\monodll_taskbarcmn.obj \
$(OBJS)\monodll_aboutdlg.obj \
$(OBJS)\monodll_sound.obj \
@@ -1961,6 +1967,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_fdrepdlg.obj \
$(OBJS)\monolib_fontdlg.obj \
$(OBJS)\monolib_accesscmn.obj \
$(OBJS)\monolib_anidecod.obj \
$(OBJS)\monolib_appcmn.obj \
$(OBJS)\monolib_artprov.obj \
$(OBJS)\monolib_artstd.obj \
@@ -2179,6 +2186,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_mono.obj \
$(OBJS)\monolib_win32.obj \
$(OBJS)\monolib_accesscmn.obj \
$(OBJS)\monolib_anidecod.obj \
$(OBJS)\monolib_appcmn.obj \
$(OBJS)\monolib_artprov.obj \
$(OBJS)\monolib_artstd.obj \
@@ -2295,6 +2303,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
!endif
!if "$(WXUNIV)" == "0"
____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_animatecmn.obj \
$(OBJS)\monolib_datavcmn.obj \
$(OBJS)\monolib_aboutdlgg.obj \
$(OBJS)\monolib_bmpcboxg.obj \
@@ -2313,6 +2322,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_splash.obj \
$(OBJS)\monolib_tipdlg.obj \
$(OBJS)\monolib_wizard.obj \
$(OBJS)\monolib_animateg.obj \
$(OBJS)\monolib_taskbarcmn.obj \
$(OBJS)\monolib_aboutdlg.obj \
$(OBJS)\monolib_sound.obj \
@@ -2322,6 +2332,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
!endif
!if "$(WXUNIV)" == "1"
____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_animatecmn.obj \
$(OBJS)\monolib_datavcmn.obj \
$(OBJS)\monolib_aboutdlgg.obj \
$(OBJS)\monolib_bmpcboxg.obj \
@@ -2340,6 +2351,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_splash.obj \
$(OBJS)\monolib_tipdlg.obj \
$(OBJS)\monolib_wizard.obj \
$(OBJS)\monolib_animateg.obj \
$(OBJS)\monolib_taskbarcmn.obj \
$(OBJS)\monolib_aboutdlg.obj \
$(OBJS)\monolib_sound.obj \
@@ -2467,6 +2479,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_fdrepdlg.obj \
$(OBJS)\coredll_fontdlg.obj \
$(OBJS)\coredll_accesscmn.obj \
$(OBJS)\coredll_anidecod.obj \
$(OBJS)\coredll_appcmn.obj \
$(OBJS)\coredll_artprov.obj \
$(OBJS)\coredll_artstd.obj \
@@ -2685,6 +2698,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_mono.obj \
$(OBJS)\coredll_win32.obj \
$(OBJS)\coredll_accesscmn.obj \
$(OBJS)\coredll_anidecod.obj \
$(OBJS)\coredll_appcmn.obj \
$(OBJS)\coredll_artprov.obj \
$(OBJS)\coredll_artstd.obj \
@@ -2904,6 +2918,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_fdrepdlg.obj \
$(OBJS)\corelib_fontdlg.obj \
$(OBJS)\corelib_accesscmn.obj \
$(OBJS)\corelib_anidecod.obj \
$(OBJS)\corelib_appcmn.obj \
$(OBJS)\corelib_artprov.obj \
$(OBJS)\corelib_artstd.obj \
@@ -3122,6 +3137,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_mono.obj \
$(OBJS)\corelib_win32.obj \
$(OBJS)\corelib_accesscmn.obj \
$(OBJS)\corelib_anidecod.obj \
$(OBJS)\corelib_appcmn.obj \
$(OBJS)\corelib_artprov.obj \
$(OBJS)\corelib_artstd.obj \
@@ -3242,6 +3258,7 @@ __advdll___depname = \
!endif
!if "$(WXUNIV)" == "0"
____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_animatecmn.obj \
$(OBJS)\advdll_datavcmn.obj \
$(OBJS)\advdll_aboutdlgg.obj \
$(OBJS)\advdll_bmpcboxg.obj \
@@ -3260,6 +3277,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_splash.obj \
$(OBJS)\advdll_tipdlg.obj \
$(OBJS)\advdll_wizard.obj \
$(OBJS)\advdll_animateg.obj \
$(OBJS)\advdll_taskbarcmn.obj \
$(OBJS)\advdll_aboutdlg.obj \
$(OBJS)\advdll_sound.obj \
@@ -3269,6 +3287,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
!endif
!if "$(WXUNIV)" == "1"
____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_animatecmn.obj \
$(OBJS)\advdll_datavcmn.obj \
$(OBJS)\advdll_aboutdlgg.obj \
$(OBJS)\advdll_bmpcboxg.obj \
@@ -3287,6 +3306,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_splash.obj \
$(OBJS)\advdll_tipdlg.obj \
$(OBJS)\advdll_wizard.obj \
$(OBJS)\advdll_animateg.obj \
$(OBJS)\advdll_taskbarcmn.obj \
$(OBJS)\advdll_aboutdlg.obj \
$(OBJS)\advdll_sound.obj \
@@ -3299,6 +3319,7 @@ __advlib___depname = \
!endif
!if "$(WXUNIV)" == "0"
____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_animatecmn.obj \
$(OBJS)\advlib_datavcmn.obj \
$(OBJS)\advlib_aboutdlgg.obj \
$(OBJS)\advlib_bmpcboxg.obj \
@@ -3317,6 +3338,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_splash.obj \
$(OBJS)\advlib_tipdlg.obj \
$(OBJS)\advlib_wizard.obj \
$(OBJS)\advlib_animateg.obj \
$(OBJS)\advlib_taskbarcmn.obj \
$(OBJS)\advlib_aboutdlg.obj \
$(OBJS)\advlib_sound.obj \
@@ -3326,6 +3348,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
!endif
!if "$(WXUNIV)" == "1"
____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_animatecmn.obj \
$(OBJS)\advlib_datavcmn.obj \
$(OBJS)\advlib_aboutdlgg.obj \
$(OBJS)\advlib_bmpcboxg.obj \
@@ -3344,6 +3367,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_splash.obj \
$(OBJS)\advlib_tipdlg.obj \
$(OBJS)\advlib_wizard.obj \
$(OBJS)\advlib_animateg.obj \
$(OBJS)\advlib_taskbarcmn.obj \
$(OBJS)\advlib_aboutdlg.obj \
$(OBJS)\advlib_sound.obj \
@@ -5635,6 +5659,11 @@ $(OBJS)\monodll_accesscmn.obj: ..\..\src\common\accesscmn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_anidecod.obj: ..\..\src\common\anidecod.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_appcmn.obj: ..\..\src\common\appcmn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -6200,6 +6229,11 @@ $(OBJS)\monodll_vscroll.obj: ..\..\src\generic\vscroll.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_animatecmn.obj: ..\..\src\common\animatecmn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_datavcmn.obj: ..\..\src\common\datavcmn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -6290,6 +6324,11 @@ $(OBJS)\monodll_wizard.obj: ..\..\src\generic\wizard.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_animateg.obj: ..\..\src\generic\animateg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_taskbarcmn.obj: ..\..\src\common\taskbarcmn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -7548,6 +7587,11 @@ $(OBJS)\monolib_accesscmn.obj: ..\..\src\common\accesscmn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_anidecod.obj: ..\..\src\common\anidecod.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_appcmn.obj: ..\..\src\common\appcmn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -8113,6 +8157,11 @@ $(OBJS)\monolib_vscroll.obj: ..\..\src\generic\vscroll.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_animatecmn.obj: ..\..\src\common\animatecmn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_datavcmn.obj: ..\..\src\common\datavcmn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -8203,6 +8252,11 @@ $(OBJS)\monolib_wizard.obj: ..\..\src\generic\wizard.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_animateg.obj: ..\..\src\generic\animateg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_taskbarcmn.obj: ..\..\src\common\taskbarcmn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -9482,6 +9536,11 @@ $(OBJS)\coredll_accesscmn.obj: ..\..\src\common\accesscmn.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_anidecod.obj: ..\..\src\common\anidecod.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_appcmn.obj: ..\..\src\common\appcmn.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
@@ -10722,6 +10781,11 @@ $(OBJS)\corelib_accesscmn.obj: ..\..\src\common\accesscmn.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_anidecod.obj: ..\..\src\common\anidecod.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_appcmn.obj: ..\..\src\common\appcmn.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
@@ -11296,6 +11360,9 @@ $(OBJS)\advdll_version.res: ..\..\src\msw\version.rc
$(OBJS)\advdll_datectrl.obj: ..\..\src\msw\datectrl.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_animatecmn.obj: ..\..\src\common\animatecmn.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_datavcmn.obj: ..\..\src\common\datavcmn.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
@@ -11350,6 +11417,9 @@ $(OBJS)\advdll_tipdlg.obj: ..\..\src\generic\tipdlg.cpp
$(OBJS)\advdll_wizard.obj: ..\..\src\generic\wizard.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_animateg.obj: ..\..\src\generic\animateg.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_taskbarcmn.obj: ..\..\src\common\taskbarcmn.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
@@ -11371,6 +11441,9 @@ $(OBJS)\advlib_dummy.obj: ..\..\src\common\dummy.cpp
$(OBJS)\advlib_datectrl.obj: ..\..\src\msw\datectrl.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_animatecmn.obj: ..\..\src\common\animatecmn.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_datavcmn.obj: ..\..\src\common\datavcmn.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**
@@ -11425,6 +11498,9 @@ $(OBJS)\advlib_tipdlg.obj: ..\..\src\generic\tipdlg.cpp
$(OBJS)\advlib_wizard.obj: ..\..\src\generic\wizard.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_animateg.obj: ..\..\src\generic\animateg.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_taskbarcmn.obj: ..\..\src\common\taskbarcmn.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**

View File

@@ -1379,6 +1379,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_fdrepdlg.o \
$(OBJS)\monodll_fontdlg.o \
$(OBJS)\monodll_accesscmn.o \
$(OBJS)\monodll_anidecod.o \
$(OBJS)\monodll_appcmn.o \
$(OBJS)\monodll_artprov.o \
$(OBJS)\monodll_artstd.o \
@@ -1599,6 +1600,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_mono.o \
$(OBJS)\monodll_win32.o \
$(OBJS)\monodll_accesscmn.o \
$(OBJS)\monodll_anidecod.o \
$(OBJS)\monodll_appcmn.o \
$(OBJS)\monodll_artprov.o \
$(OBJS)\monodll_artstd.o \
@@ -1716,6 +1718,7 @@ endif
endif
ifeq ($(WXUNIV),0)
____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_animatecmn.o \
$(OBJS)\monodll_datavcmn.o \
$(OBJS)\monodll_aboutdlgg.o \
$(OBJS)\monodll_bmpcboxg.o \
@@ -1734,6 +1737,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_splash.o \
$(OBJS)\monodll_tipdlg.o \
$(OBJS)\monodll_wizard.o \
$(OBJS)\monodll_animateg.o \
$(OBJS)\monodll_taskbarcmn.o \
$(OBJS)\monodll_aboutdlg.o \
$(OBJS)\monodll_sound.o \
@@ -1743,6 +1747,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
endif
ifeq ($(WXUNIV),1)
____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_animatecmn.o \
$(OBJS)\monodll_datavcmn.o \
$(OBJS)\monodll_aboutdlgg.o \
$(OBJS)\monodll_bmpcboxg.o \
@@ -1761,6 +1766,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_splash.o \
$(OBJS)\monodll_tipdlg.o \
$(OBJS)\monodll_wizard.o \
$(OBJS)\monodll_animateg.o \
$(OBJS)\monodll_taskbarcmn.o \
$(OBJS)\monodll_aboutdlg.o \
$(OBJS)\monodll_sound.o \
@@ -1977,6 +1983,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_fdrepdlg.o \
$(OBJS)\monolib_fontdlg.o \
$(OBJS)\monolib_accesscmn.o \
$(OBJS)\monolib_anidecod.o \
$(OBJS)\monolib_appcmn.o \
$(OBJS)\monolib_artprov.o \
$(OBJS)\monolib_artstd.o \
@@ -2197,6 +2204,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_mono.o \
$(OBJS)\monolib_win32.o \
$(OBJS)\monolib_accesscmn.o \
$(OBJS)\monolib_anidecod.o \
$(OBJS)\monolib_appcmn.o \
$(OBJS)\monolib_artprov.o \
$(OBJS)\monolib_artstd.o \
@@ -2314,6 +2322,7 @@ endif
endif
ifeq ($(WXUNIV),0)
____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_animatecmn.o \
$(OBJS)\monolib_datavcmn.o \
$(OBJS)\monolib_aboutdlgg.o \
$(OBJS)\monolib_bmpcboxg.o \
@@ -2332,6 +2341,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_splash.o \
$(OBJS)\monolib_tipdlg.o \
$(OBJS)\monolib_wizard.o \
$(OBJS)\monolib_animateg.o \
$(OBJS)\monolib_taskbarcmn.o \
$(OBJS)\monolib_aboutdlg.o \
$(OBJS)\monolib_sound.o \
@@ -2341,6 +2351,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
endif
ifeq ($(WXUNIV),1)
____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_animatecmn.o \
$(OBJS)\monolib_datavcmn.o \
$(OBJS)\monolib_aboutdlgg.o \
$(OBJS)\monolib_bmpcboxg.o \
@@ -2359,6 +2370,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_splash.o \
$(OBJS)\monolib_tipdlg.o \
$(OBJS)\monolib_wizard.o \
$(OBJS)\monolib_animateg.o \
$(OBJS)\monolib_taskbarcmn.o \
$(OBJS)\monolib_aboutdlg.o \
$(OBJS)\monolib_sound.o \
@@ -2499,6 +2511,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_fdrepdlg.o \
$(OBJS)\coredll_fontdlg.o \
$(OBJS)\coredll_accesscmn.o \
$(OBJS)\coredll_anidecod.o \
$(OBJS)\coredll_appcmn.o \
$(OBJS)\coredll_artprov.o \
$(OBJS)\coredll_artstd.o \
@@ -2719,6 +2732,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_mono.o \
$(OBJS)\coredll_win32.o \
$(OBJS)\coredll_accesscmn.o \
$(OBJS)\coredll_anidecod.o \
$(OBJS)\coredll_appcmn.o \
$(OBJS)\coredll_artprov.o \
$(OBJS)\coredll_artstd.o \
@@ -2944,6 +2958,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_fdrepdlg.o \
$(OBJS)\corelib_fontdlg.o \
$(OBJS)\corelib_accesscmn.o \
$(OBJS)\corelib_anidecod.o \
$(OBJS)\corelib_appcmn.o \
$(OBJS)\corelib_artprov.o \
$(OBJS)\corelib_artstd.o \
@@ -3164,6 +3179,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_mono.o \
$(OBJS)\corelib_win32.o \
$(OBJS)\corelib_accesscmn.o \
$(OBJS)\corelib_anidecod.o \
$(OBJS)\corelib_appcmn.o \
$(OBJS)\corelib_artprov.o \
$(OBJS)\corelib_artstd.o \
@@ -3289,6 +3305,7 @@ endif
endif
ifeq ($(WXUNIV),0)
____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_animatecmn.o \
$(OBJS)\advdll_datavcmn.o \
$(OBJS)\advdll_aboutdlgg.o \
$(OBJS)\advdll_bmpcboxg.o \
@@ -3307,6 +3324,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_splash.o \
$(OBJS)\advdll_tipdlg.o \
$(OBJS)\advdll_wizard.o \
$(OBJS)\advdll_animateg.o \
$(OBJS)\advdll_taskbarcmn.o \
$(OBJS)\advdll_aboutdlg.o \
$(OBJS)\advdll_sound.o \
@@ -3316,6 +3334,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
endif
ifeq ($(WXUNIV),1)
____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_animatecmn.o \
$(OBJS)\advdll_datavcmn.o \
$(OBJS)\advdll_aboutdlgg.o \
$(OBJS)\advdll_bmpcboxg.o \
@@ -3334,6 +3353,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_splash.o \
$(OBJS)\advdll_tipdlg.o \
$(OBJS)\advdll_wizard.o \
$(OBJS)\advdll_animateg.o \
$(OBJS)\advdll_taskbarcmn.o \
$(OBJS)\advdll_aboutdlg.o \
$(OBJS)\advdll_sound.o \
@@ -3350,6 +3370,7 @@ endif
endif
ifeq ($(WXUNIV),0)
____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_animatecmn.o \
$(OBJS)\advlib_datavcmn.o \
$(OBJS)\advlib_aboutdlgg.o \
$(OBJS)\advlib_bmpcboxg.o \
@@ -3368,6 +3389,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_splash.o \
$(OBJS)\advlib_tipdlg.o \
$(OBJS)\advlib_wizard.o \
$(OBJS)\advlib_animateg.o \
$(OBJS)\advlib_taskbarcmn.o \
$(OBJS)\advlib_aboutdlg.o \
$(OBJS)\advlib_sound.o \
@@ -3377,6 +3399,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
endif
ifeq ($(WXUNIV),1)
____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_animatecmn.o \
$(OBJS)\advlib_datavcmn.o \
$(OBJS)\advlib_aboutdlgg.o \
$(OBJS)\advlib_bmpcboxg.o \
@@ -3395,6 +3418,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_splash.o \
$(OBJS)\advlib_tipdlg.o \
$(OBJS)\advlib_wizard.o \
$(OBJS)\advlib_animateg.o \
$(OBJS)\advlib_taskbarcmn.o \
$(OBJS)\advlib_aboutdlg.o \
$(OBJS)\advlib_sound.o \
@@ -5852,6 +5876,11 @@ $(OBJS)\monodll_accesscmn.o: ../../src/common/accesscmn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_anidecod.o: ../../src/common/anidecod.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_appcmn.o: ../../src/common/appcmn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -6417,6 +6446,11 @@ $(OBJS)\monodll_vscroll.o: ../../src/generic/vscroll.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_animatecmn.o: ../../src/common/animatecmn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_datavcmn.o: ../../src/common/datavcmn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -6507,6 +6541,11 @@ $(OBJS)\monodll_wizard.o: ../../src/generic/wizard.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_animateg.o: ../../src/generic/animateg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_taskbarcmn.o: ../../src/common/taskbarcmn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -7865,6 +7904,11 @@ $(OBJS)\monolib_accesscmn.o: ../../src/common/accesscmn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_anidecod.o: ../../src/common/anidecod.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_appcmn.o: ../../src/common/appcmn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -8430,6 +8474,11 @@ $(OBJS)\monolib_vscroll.o: ../../src/generic/vscroll.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_animatecmn.o: ../../src/common/animatecmn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_datavcmn.o: ../../src/common/datavcmn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -8520,6 +8569,11 @@ $(OBJS)\monolib_wizard.o: ../../src/generic/wizard.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_animateg.o: ../../src/generic/animateg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_taskbarcmn.o: ../../src/common/taskbarcmn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -9899,6 +9953,11 @@ $(OBJS)\coredll_accesscmn.o: ../../src/common/accesscmn.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_anidecod.o: ../../src/common/anidecod.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_appcmn.o: ../../src/common/appcmn.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -11239,6 +11298,11 @@ $(OBJS)\corelib_accesscmn.o: ../../src/common/accesscmn.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_anidecod.o: ../../src/common/anidecod.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_appcmn.o: ../../src/common/appcmn.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
@@ -11813,6 +11877,9 @@ $(OBJS)\advdll_version_rc.o: ../../src/msw/version.rc
$(OBJS)\advdll_datectrl.o: ../../src/msw/datectrl.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advdll_animatecmn.o: ../../src/common/animatecmn.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advdll_datavcmn.o: ../../src/common/datavcmn.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -11867,6 +11934,9 @@ $(OBJS)\advdll_tipdlg.o: ../../src/generic/tipdlg.cpp
$(OBJS)\advdll_wizard.o: ../../src/generic/wizard.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advdll_animateg.o: ../../src/generic/animateg.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advdll_taskbarcmn.o: ../../src/common/taskbarcmn.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -11888,6 +11958,9 @@ $(OBJS)\advlib_dummy.o: ../../src/common/dummy.cpp
$(OBJS)\advlib_datectrl.o: ../../src/msw/datectrl.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advlib_animatecmn.o: ../../src/common/animatecmn.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advlib_datavcmn.o: ../../src/common/datavcmn.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -11942,6 +12015,9 @@ $(OBJS)\advlib_tipdlg.o: ../../src/generic/tipdlg.cpp
$(OBJS)\advlib_wizard.o: ../../src/generic/wizard.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advlib_animateg.o: ../../src/generic/animateg.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advlib_taskbarcmn.o: ../../src/common/taskbarcmn.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<

View File

@@ -1536,6 +1536,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_fdrepdlg.obj \
$(OBJS)\monodll_fontdlg.obj \
$(OBJS)\monodll_accesscmn.obj \
$(OBJS)\monodll_anidecod.obj \
$(OBJS)\monodll_appcmn.obj \
$(OBJS)\monodll_artprov.obj \
$(OBJS)\monodll_artstd.obj \
@@ -1754,6 +1755,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_mono.obj \
$(OBJS)\monodll_win32.obj \
$(OBJS)\monodll_accesscmn.obj \
$(OBJS)\monodll_anidecod.obj \
$(OBJS)\monodll_appcmn.obj \
$(OBJS)\monodll_artprov.obj \
$(OBJS)\monodll_artstd.obj \
@@ -1870,6 +1872,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
!endif
!if "$(WXUNIV)" == "0"
____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_animatecmn.obj \
$(OBJS)\monodll_datavcmn.obj \
$(OBJS)\monodll_aboutdlgg.obj \
$(OBJS)\monodll_bmpcboxg.obj \
@@ -1888,6 +1891,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_splash.obj \
$(OBJS)\monodll_tipdlg.obj \
$(OBJS)\monodll_wizard.obj \
$(OBJS)\monodll_animateg.obj \
$(OBJS)\monodll_taskbarcmn.obj \
$(OBJS)\monodll_aboutdlg.obj \
$(OBJS)\monodll_sound.obj \
@@ -1897,6 +1901,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
!endif
!if "$(WXUNIV)" == "1"
____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_animatecmn.obj \
$(OBJS)\monodll_datavcmn.obj \
$(OBJS)\monodll_aboutdlgg.obj \
$(OBJS)\monodll_bmpcboxg.obj \
@@ -1915,6 +1920,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_splash.obj \
$(OBJS)\monodll_tipdlg.obj \
$(OBJS)\monodll_wizard.obj \
$(OBJS)\monodll_animateg.obj \
$(OBJS)\monodll_taskbarcmn.obj \
$(OBJS)\monodll_aboutdlg.obj \
$(OBJS)\monodll_sound.obj \
@@ -2134,6 +2140,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_fdrepdlg.obj \
$(OBJS)\monolib_fontdlg.obj \
$(OBJS)\monolib_accesscmn.obj \
$(OBJS)\monolib_anidecod.obj \
$(OBJS)\monolib_appcmn.obj \
$(OBJS)\monolib_artprov.obj \
$(OBJS)\monolib_artstd.obj \
@@ -2352,6 +2359,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_mono.obj \
$(OBJS)\monolib_win32.obj \
$(OBJS)\monolib_accesscmn.obj \
$(OBJS)\monolib_anidecod.obj \
$(OBJS)\monolib_appcmn.obj \
$(OBJS)\monolib_artprov.obj \
$(OBJS)\monolib_artstd.obj \
@@ -2468,6 +2476,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
!endif
!if "$(WXUNIV)" == "0"
____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_animatecmn.obj \
$(OBJS)\monolib_datavcmn.obj \
$(OBJS)\monolib_aboutdlgg.obj \
$(OBJS)\monolib_bmpcboxg.obj \
@@ -2486,6 +2495,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_splash.obj \
$(OBJS)\monolib_tipdlg.obj \
$(OBJS)\monolib_wizard.obj \
$(OBJS)\monolib_animateg.obj \
$(OBJS)\monolib_taskbarcmn.obj \
$(OBJS)\monolib_aboutdlg.obj \
$(OBJS)\monolib_sound.obj \
@@ -2495,6 +2505,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
!endif
!if "$(WXUNIV)" == "1"
____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_animatecmn.obj \
$(OBJS)\monolib_datavcmn.obj \
$(OBJS)\monolib_aboutdlgg.obj \
$(OBJS)\monolib_bmpcboxg.obj \
@@ -2513,6 +2524,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_splash.obj \
$(OBJS)\monolib_tipdlg.obj \
$(OBJS)\monolib_wizard.obj \
$(OBJS)\monolib_animateg.obj \
$(OBJS)\monolib_taskbarcmn.obj \
$(OBJS)\monolib_aboutdlg.obj \
$(OBJS)\monolib_sound.obj \
@@ -2670,6 +2682,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_fdrepdlg.obj \
$(OBJS)\coredll_fontdlg.obj \
$(OBJS)\coredll_accesscmn.obj \
$(OBJS)\coredll_anidecod.obj \
$(OBJS)\coredll_appcmn.obj \
$(OBJS)\coredll_artprov.obj \
$(OBJS)\coredll_artstd.obj \
@@ -2888,6 +2901,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_mono.obj \
$(OBJS)\coredll_win32.obj \
$(OBJS)\coredll_accesscmn.obj \
$(OBJS)\coredll_anidecod.obj \
$(OBJS)\coredll_appcmn.obj \
$(OBJS)\coredll_artprov.obj \
$(OBJS)\coredll_artstd.obj \
@@ -3113,6 +3127,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_fdrepdlg.obj \
$(OBJS)\corelib_fontdlg.obj \
$(OBJS)\corelib_accesscmn.obj \
$(OBJS)\corelib_anidecod.obj \
$(OBJS)\corelib_appcmn.obj \
$(OBJS)\corelib_artprov.obj \
$(OBJS)\corelib_artstd.obj \
@@ -3331,6 +3346,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_mono.obj \
$(OBJS)\corelib_win32.obj \
$(OBJS)\corelib_accesscmn.obj \
$(OBJS)\corelib_anidecod.obj \
$(OBJS)\corelib_appcmn.obj \
$(OBJS)\corelib_artprov.obj \
$(OBJS)\corelib_artstd.obj \
@@ -3457,6 +3473,7 @@ __RUNTIME_LIBS_195 = $(__THREADSFLAG)
!endif
!if "$(WXUNIV)" == "0"
____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_animatecmn.obj \
$(OBJS)\advdll_datavcmn.obj \
$(OBJS)\advdll_aboutdlgg.obj \
$(OBJS)\advdll_bmpcboxg.obj \
@@ -3475,6 +3492,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_splash.obj \
$(OBJS)\advdll_tipdlg.obj \
$(OBJS)\advdll_wizard.obj \
$(OBJS)\advdll_animateg.obj \
$(OBJS)\advdll_taskbarcmn.obj \
$(OBJS)\advdll_aboutdlg.obj \
$(OBJS)\advdll_sound.obj \
@@ -3484,6 +3502,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
!endif
!if "$(WXUNIV)" == "1"
____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_animatecmn.obj \
$(OBJS)\advdll_datavcmn.obj \
$(OBJS)\advdll_aboutdlgg.obj \
$(OBJS)\advdll_bmpcboxg.obj \
@@ -3502,6 +3521,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_splash.obj \
$(OBJS)\advdll_tipdlg.obj \
$(OBJS)\advdll_wizard.obj \
$(OBJS)\advdll_animateg.obj \
$(OBJS)\advdll_taskbarcmn.obj \
$(OBJS)\advdll_aboutdlg.obj \
$(OBJS)\advdll_sound.obj \
@@ -3520,6 +3540,7 @@ __RUNTIME_LIBS_208 = $(__THREADSFLAG)
!endif
!if "$(WXUNIV)" == "0"
____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_animatecmn.obj \
$(OBJS)\advlib_datavcmn.obj \
$(OBJS)\advlib_aboutdlgg.obj \
$(OBJS)\advlib_bmpcboxg.obj \
@@ -3538,6 +3559,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_splash.obj \
$(OBJS)\advlib_tipdlg.obj \
$(OBJS)\advlib_wizard.obj \
$(OBJS)\advlib_animateg.obj \
$(OBJS)\advlib_taskbarcmn.obj \
$(OBJS)\advlib_aboutdlg.obj \
$(OBJS)\advlib_sound.obj \
@@ -3547,6 +3569,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
!endif
!if "$(WXUNIV)" == "1"
____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_animatecmn.obj \
$(OBJS)\advlib_datavcmn.obj \
$(OBJS)\advlib_aboutdlgg.obj \
$(OBJS)\advlib_bmpcboxg.obj \
@@ -3565,6 +3588,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_splash.obj \
$(OBJS)\advlib_tipdlg.obj \
$(OBJS)\advlib_wizard.obj \
$(OBJS)\advlib_animateg.obj \
$(OBJS)\advlib_taskbarcmn.obj \
$(OBJS)\advlib_aboutdlg.obj \
$(OBJS)\advlib_sound.obj \
@@ -5968,6 +5992,11 @@ $(OBJS)\monodll_accesscmn.obj: ..\..\src\common\accesscmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_anidecod.obj: ..\..\src\common\anidecod.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_appcmn.obj: ..\..\src\common\appcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -6533,6 +6562,11 @@ $(OBJS)\monodll_vscroll.obj: ..\..\src\generic\vscroll.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_animatecmn.obj: ..\..\src\common\animatecmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_datavcmn.obj: ..\..\src\common\datavcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -6623,6 +6657,11 @@ $(OBJS)\monodll_wizard.obj: ..\..\src\generic\wizard.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_animateg.obj: ..\..\src\generic\animateg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_taskbarcmn.obj: ..\..\src\common\taskbarcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -7881,6 +7920,11 @@ $(OBJS)\monolib_accesscmn.obj: ..\..\src\common\accesscmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_anidecod.obj: ..\..\src\common\anidecod.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_appcmn.obj: ..\..\src\common\appcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -8446,6 +8490,11 @@ $(OBJS)\monolib_vscroll.obj: ..\..\src\generic\vscroll.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_animatecmn.obj: ..\..\src\common\animatecmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_datavcmn.obj: ..\..\src\common\datavcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -8536,6 +8585,11 @@ $(OBJS)\monolib_wizard.obj: ..\..\src\generic\wizard.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_animateg.obj: ..\..\src\generic\animateg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_taskbarcmn.obj: ..\..\src\common\taskbarcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -9815,6 +9869,11 @@ $(OBJS)\coredll_accesscmn.obj: ..\..\src\common\accesscmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_anidecod.obj: ..\..\src\common\anidecod.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_appcmn.obj: ..\..\src\common\appcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
@@ -11055,6 +11114,11 @@ $(OBJS)\corelib_accesscmn.obj: ..\..\src\common\accesscmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_anidecod.obj: ..\..\src\common\anidecod.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_appcmn.obj: ..\..\src\common\appcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
@@ -11629,6 +11693,9 @@ $(OBJS)\advdll_version.res: ..\..\src\msw\version.rc
$(OBJS)\advdll_datectrl.obj: ..\..\src\msw\datectrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_animatecmn.obj: ..\..\src\common\animatecmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_datavcmn.obj: ..\..\src\common\datavcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
@@ -11683,6 +11750,9 @@ $(OBJS)\advdll_tipdlg.obj: ..\..\src\generic\tipdlg.cpp
$(OBJS)\advdll_wizard.obj: ..\..\src\generic\wizard.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_animateg.obj: ..\..\src\generic\animateg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_taskbarcmn.obj: ..\..\src\common\taskbarcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
@@ -11704,6 +11774,9 @@ $(OBJS)\advlib_dummy.obj: ..\..\src\common\dummy.cpp
$(OBJS)\advlib_datectrl.obj: ..\..\src\msw\datectrl.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_animatecmn.obj: ..\..\src\common\animatecmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_datavcmn.obj: ..\..\src\common\datavcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**
@@ -11758,6 +11831,9 @@ $(OBJS)\advlib_tipdlg.obj: ..\..\src\generic\tipdlg.cpp
$(OBJS)\advlib_wizard.obj: ..\..\src\generic\wizard.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_animateg.obj: ..\..\src\generic\animateg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_taskbarcmn.obj: ..\..\src\common\taskbarcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**

View File

@@ -301,6 +301,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_fdrepdlg.obj &
$(OBJS)\monodll_fontdlg.obj &
$(OBJS)\monodll_accesscmn.obj &
$(OBJS)\monodll_anidecod.obj &
$(OBJS)\monodll_appcmn.obj &
$(OBJS)\monodll_artprov.obj &
$(OBJS)\monodll_artstd.obj &
@@ -521,6 +522,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_mono.obj &
$(OBJS)\monodll_win32.obj &
$(OBJS)\monodll_accesscmn.obj &
$(OBJS)\monodll_anidecod.obj &
$(OBJS)\monodll_appcmn.obj &
$(OBJS)\monodll_artprov.obj &
$(OBJS)\monodll_artstd.obj &
@@ -639,6 +641,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
____ADVANCED_SRC_FILENAMES_OBJECTS =
!ifeq WXUNIV 0
____ADVANCED_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_animatecmn.obj &
$(OBJS)\monodll_datavcmn.obj &
$(OBJS)\monodll_aboutdlgg.obj &
$(OBJS)\monodll_bmpcboxg.obj &
@@ -657,6 +660,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_splash.obj &
$(OBJS)\monodll_tipdlg.obj &
$(OBJS)\monodll_wizard.obj &
$(OBJS)\monodll_animateg.obj &
$(OBJS)\monodll_taskbarcmn.obj &
$(OBJS)\monodll_aboutdlg.obj &
$(OBJS)\monodll_sound.obj &
@@ -666,6 +670,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = &
!endif
!ifeq WXUNIV 1
____ADVANCED_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_animatecmn.obj &
$(OBJS)\monodll_datavcmn.obj &
$(OBJS)\monodll_aboutdlgg.obj &
$(OBJS)\monodll_bmpcboxg.obj &
@@ -684,6 +689,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_splash.obj &
$(OBJS)\monodll_tipdlg.obj &
$(OBJS)\monodll_wizard.obj &
$(OBJS)\monodll_animateg.obj &
$(OBJS)\monodll_taskbarcmn.obj &
$(OBJS)\monodll_aboutdlg.obj &
$(OBJS)\monodll_sound.obj &
@@ -903,6 +909,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_fdrepdlg.obj &
$(OBJS)\monolib_fontdlg.obj &
$(OBJS)\monolib_accesscmn.obj &
$(OBJS)\monolib_anidecod.obj &
$(OBJS)\monolib_appcmn.obj &
$(OBJS)\monolib_artprov.obj &
$(OBJS)\monolib_artstd.obj &
@@ -1123,6 +1130,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_mono.obj &
$(OBJS)\monolib_win32.obj &
$(OBJS)\monolib_accesscmn.obj &
$(OBJS)\monolib_anidecod.obj &
$(OBJS)\monolib_appcmn.obj &
$(OBJS)\monolib_artprov.obj &
$(OBJS)\monolib_artstd.obj &
@@ -1241,6 +1249,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
____ADVANCED_SRC_FILENAMES_1_OBJECTS =
!ifeq WXUNIV 0
____ADVANCED_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_animatecmn.obj &
$(OBJS)\monolib_datavcmn.obj &
$(OBJS)\monolib_aboutdlgg.obj &
$(OBJS)\monolib_bmpcboxg.obj &
@@ -1259,6 +1268,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_splash.obj &
$(OBJS)\monolib_tipdlg.obj &
$(OBJS)\monolib_wizard.obj &
$(OBJS)\monolib_animateg.obj &
$(OBJS)\monolib_taskbarcmn.obj &
$(OBJS)\monolib_aboutdlg.obj &
$(OBJS)\monolib_sound.obj &
@@ -1268,6 +1278,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = &
!endif
!ifeq WXUNIV 1
____ADVANCED_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_animatecmn.obj &
$(OBJS)\monolib_datavcmn.obj &
$(OBJS)\monolib_aboutdlgg.obj &
$(OBJS)\monolib_bmpcboxg.obj &
@@ -1286,6 +1297,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_splash.obj &
$(OBJS)\monolib_tipdlg.obj &
$(OBJS)\monolib_wizard.obj &
$(OBJS)\monolib_animateg.obj &
$(OBJS)\monolib_taskbarcmn.obj &
$(OBJS)\monolib_aboutdlg.obj &
$(OBJS)\monolib_sound.obj &
@@ -1432,6 +1444,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_fdrepdlg.obj &
$(OBJS)\coredll_fontdlg.obj &
$(OBJS)\coredll_accesscmn.obj &
$(OBJS)\coredll_anidecod.obj &
$(OBJS)\coredll_appcmn.obj &
$(OBJS)\coredll_artprov.obj &
$(OBJS)\coredll_artstd.obj &
@@ -1652,6 +1665,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_mono.obj &
$(OBJS)\coredll_win32.obj &
$(OBJS)\coredll_accesscmn.obj &
$(OBJS)\coredll_anidecod.obj &
$(OBJS)\coredll_appcmn.obj &
$(OBJS)\coredll_artprov.obj &
$(OBJS)\coredll_artstd.obj &
@@ -1879,6 +1893,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_fdrepdlg.obj &
$(OBJS)\corelib_fontdlg.obj &
$(OBJS)\corelib_accesscmn.obj &
$(OBJS)\corelib_anidecod.obj &
$(OBJS)\corelib_appcmn.obj &
$(OBJS)\corelib_artprov.obj &
$(OBJS)\corelib_artstd.obj &
@@ -2099,6 +2114,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_mono.obj &
$(OBJS)\corelib_win32.obj &
$(OBJS)\corelib_accesscmn.obj &
$(OBJS)\corelib_anidecod.obj &
$(OBJS)\corelib_appcmn.obj &
$(OBJS)\corelib_artprov.obj &
$(OBJS)\corelib_artstd.obj &
@@ -2226,6 +2242,7 @@ __advdll___depname = &
____ADVANCED_SRC_FILENAMES_2_OBJECTS =
!ifeq WXUNIV 0
____ADVANCED_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\advdll_animatecmn.obj &
$(OBJS)\advdll_datavcmn.obj &
$(OBJS)\advdll_aboutdlgg.obj &
$(OBJS)\advdll_bmpcboxg.obj &
@@ -2244,6 +2261,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\advdll_splash.obj &
$(OBJS)\advdll_tipdlg.obj &
$(OBJS)\advdll_wizard.obj &
$(OBJS)\advdll_animateg.obj &
$(OBJS)\advdll_taskbarcmn.obj &
$(OBJS)\advdll_aboutdlg.obj &
$(OBJS)\advdll_sound.obj &
@@ -2253,6 +2271,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = &
!endif
!ifeq WXUNIV 1
____ADVANCED_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\advdll_animatecmn.obj &
$(OBJS)\advdll_datavcmn.obj &
$(OBJS)\advdll_aboutdlgg.obj &
$(OBJS)\advdll_bmpcboxg.obj &
@@ -2271,6 +2290,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\advdll_splash.obj &
$(OBJS)\advdll_tipdlg.obj &
$(OBJS)\advdll_wizard.obj &
$(OBJS)\advdll_animateg.obj &
$(OBJS)\advdll_taskbarcmn.obj &
$(OBJS)\advdll_aboutdlg.obj &
$(OBJS)\advdll_sound.obj &
@@ -2289,6 +2309,7 @@ __advlib___depname = &
____ADVANCED_SRC_FILENAMES_3_OBJECTS =
!ifeq WXUNIV 0
____ADVANCED_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\advlib_animatecmn.obj &
$(OBJS)\advlib_datavcmn.obj &
$(OBJS)\advlib_aboutdlgg.obj &
$(OBJS)\advlib_bmpcboxg.obj &
@@ -2307,6 +2328,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\advlib_splash.obj &
$(OBJS)\advlib_tipdlg.obj &
$(OBJS)\advlib_wizard.obj &
$(OBJS)\advlib_animateg.obj &
$(OBJS)\advlib_taskbarcmn.obj &
$(OBJS)\advlib_aboutdlg.obj &
$(OBJS)\advlib_sound.obj &
@@ -2316,6 +2338,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = &
!endif
!ifeq WXUNIV 1
____ADVANCED_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\advlib_animatecmn.obj &
$(OBJS)\advlib_datavcmn.obj &
$(OBJS)\advlib_aboutdlgg.obj &
$(OBJS)\advlib_bmpcboxg.obj &
@@ -2334,6 +2357,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\advlib_splash.obj &
$(OBJS)\advlib_tipdlg.obj &
$(OBJS)\advlib_wizard.obj &
$(OBJS)\advlib_animateg.obj &
$(OBJS)\advlib_taskbarcmn.obj &
$(OBJS)\advlib_aboutdlg.obj &
$(OBJS)\advlib_sound.obj &
@@ -6080,6 +6104,11 @@ $(OBJS)\monodll_accesscmn.obj : .AUTODEPEND ..\..\src\common\accesscmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_anidecod.obj : .AUTODEPEND ..\..\src\common\anidecod.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_appcmn.obj : .AUTODEPEND ..\..\src\common\appcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -6645,6 +6674,11 @@ $(OBJS)\monodll_vscroll.obj : .AUTODEPEND ..\..\src\generic\vscroll.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_animatecmn.obj : .AUTODEPEND ..\..\src\common\animatecmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_datavcmn.obj : .AUTODEPEND ..\..\src\common\datavcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -6735,6 +6769,11 @@ $(OBJS)\monodll_wizard.obj : .AUTODEPEND ..\..\src\generic\wizard.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_animateg.obj : .AUTODEPEND ..\..\src\generic\animateg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_taskbarcmn.obj : .AUTODEPEND ..\..\src\common\taskbarcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -8093,6 +8132,11 @@ $(OBJS)\monolib_accesscmn.obj : .AUTODEPEND ..\..\src\common\accesscmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_anidecod.obj : .AUTODEPEND ..\..\src\common\anidecod.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_appcmn.obj : .AUTODEPEND ..\..\src\common\appcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -8658,6 +8702,11 @@ $(OBJS)\monolib_vscroll.obj : .AUTODEPEND ..\..\src\generic\vscroll.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_animatecmn.obj : .AUTODEPEND ..\..\src\common\animatecmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_datavcmn.obj : .AUTODEPEND ..\..\src\common\datavcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -8748,6 +8797,11 @@ $(OBJS)\monolib_wizard.obj : .AUTODEPEND ..\..\src\generic\wizard.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_animateg.obj : .AUTODEPEND ..\..\src\generic\animateg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_taskbarcmn.obj : .AUTODEPEND ..\..\src\common\taskbarcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -10127,6 +10181,11 @@ $(OBJS)\coredll_accesscmn.obj : .AUTODEPEND ..\..\src\common\accesscmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\coredll_anidecod.obj : .AUTODEPEND ..\..\src\common\anidecod.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\coredll_appcmn.obj : .AUTODEPEND ..\..\src\common\appcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
@@ -11467,6 +11526,11 @@ $(OBJS)\corelib_accesscmn.obj : .AUTODEPEND ..\..\src\common\accesscmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\corelib_anidecod.obj : .AUTODEPEND ..\..\src\common\anidecod.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\corelib_appcmn.obj : .AUTODEPEND ..\..\src\common\appcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
@@ -12041,6 +12105,9 @@ $(OBJS)\advdll_version.res : .AUTODEPEND ..\..\src\msw\version.rc
$(OBJS)\advdll_datectrl.obj : .AUTODEPEND ..\..\src\msw\datectrl.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
$(OBJS)\advdll_animatecmn.obj : .AUTODEPEND ..\..\src\common\animatecmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
$(OBJS)\advdll_datavcmn.obj : .AUTODEPEND ..\..\src\common\datavcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
@@ -12095,6 +12162,9 @@ $(OBJS)\advdll_tipdlg.obj : .AUTODEPEND ..\..\src\generic\tipdlg.cpp
$(OBJS)\advdll_wizard.obj : .AUTODEPEND ..\..\src\generic\wizard.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
$(OBJS)\advdll_animateg.obj : .AUTODEPEND ..\..\src\generic\animateg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
$(OBJS)\advdll_taskbarcmn.obj : .AUTODEPEND ..\..\src\common\taskbarcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
@@ -12116,6 +12186,9 @@ $(OBJS)\advlib_dummy.obj : .AUTODEPEND ..\..\src\common\dummy.cpp
$(OBJS)\advlib_datectrl.obj : .AUTODEPEND ..\..\src\msw\datectrl.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
$(OBJS)\advlib_animatecmn.obj : .AUTODEPEND ..\..\src\common\animatecmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
$(OBJS)\advlib_datavcmn.obj : .AUTODEPEND ..\..\src\common\datavcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
@@ -12170,6 +12243,9 @@ $(OBJS)\advlib_tipdlg.obj : .AUTODEPEND ..\..\src\generic\tipdlg.cpp
$(OBJS)\advlib_wizard.obj : .AUTODEPEND ..\..\src\generic\wizard.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
$(OBJS)\advlib_animateg.obj : .AUTODEPEND ..\..\src\generic\animateg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
$(OBJS)\advlib_taskbarcmn.obj : .AUTODEPEND ..\..\src\common\taskbarcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<

View File

@@ -452,6 +452,10 @@ LIB32=link.exe -lib
# PROP Default_Filter ""
# Begin Source File
SOURCE=..\..\src\common\animatecmn.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\common\datavcmn.cpp
# End Source File
# Begin Source File
@@ -620,6 +624,10 @@ SOURCE=..\..\src\generic\aboutdlgg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\generic\animateg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\generic\bmpcboxg.cpp
# End Source File
# Begin Source File
@@ -1137,6 +1145,10 @@ SOURCE=..\..\include\wx\generic\aboutdlgg.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\animate.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\bmpcbox.h
# End Source File
# Begin Source File
@@ -1197,6 +1209,10 @@ SOURCE=..\..\include\wx\aboutdlg.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\animate.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\bmpcbox.h
# End Source File
# Begin Source File

View File

@@ -456,6 +456,10 @@ SOURCE=..\..\src\common\accesscmn.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\common\anidecod.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\common\appcmn.cpp
# End Source File
# Begin Source File
@@ -8165,6 +8169,10 @@ SOURCE=..\..\include\wx\generic\accel.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\animate.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\bmpcbox.h
# End Source File
# Begin Source File
@@ -8589,6 +8597,14 @@ SOURCE=..\..\include\wx\access.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\anidecod.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\animate.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\artprov.h
# End Source File
# Begin Source File

View File

@@ -510,6 +510,7 @@ if test $DEBUG_CONFIGURE = 1; then
DEFAULT_wxUSE_VALIDATORS=no
DEFAULT_wxUSE_ACCEL=no
DEFAULT_wxUSE_ANIMATIONCTRL=no
DEFAULT_wxUSE_BUTTON=no
DEFAULT_wxUSE_BMPBUTTON=no
DEFAULT_wxUSE_BITMAPCOMBOBOX=no
@@ -726,6 +727,7 @@ else
DEFAULT_wxUSE_VALIDATORS=yes
DEFAULT_wxUSE_ACCEL=yes
DEFAULT_wxUSE_ANIMATIONCTRL=yes
DEFAULT_wxUSE_BUTTON=yes
DEFAULT_wxUSE_BMPBUTTON=yes
DEFAULT_wxUSE_BITMAPCOMBOBOX=yes
@@ -1054,6 +1056,7 @@ dnl --disable-<control> later on the command line - but by default all will be
dnl used (and vice versa)
if test "$wxUSE_CONTROLS" = "yes"; then
DEFAULT_wxUSE_ACCEL=yes
DEFAULT_wxUSE_ANIMATIONCTRL=yes
DEFAULT_wxUSE_BMPBUTTON=yes
DEFAULT_wxUSE_BUTTON=yes
DEFAULT_wxUSE_CALCTRL=yes
@@ -1103,6 +1106,7 @@ if test "$wxUSE_CONTROLS" = "yes"; then
DEFAULT_wxUSE_TIPWINDOW=yes
elif test "$wxUSE_CONTROLS" = "no"; then
DEFAULT_wxUSE_ACCEL=no
DEFAULT_wxUSE_ANIMATIONCTRL=no
DEFAULT_wxUSE_BMPBUTTON=no
DEFAULT_wxUSE_BUTTON=no
DEFAULT_wxUSE_CALCTRL=no
@@ -1153,6 +1157,7 @@ elif test "$wxUSE_CONTROLS" = "no"; then
fi
WX_ARG_ENABLE(accel, [ --enable-accel use accelerators], wxUSE_ACCEL)
WX_ARG_ENABLE(animatectrl, [ --enable-animatectrl use wxAnimationCtrl class], wxUSE_ANIMATIONCTRL)
WX_ARG_ENABLE(button, [ --enable-button use wxButton class], wxUSE_BUTTON)
WX_ARG_ENABLE(bmpbutton, [ --enable-bmpbutton use wxBitmapButton class], wxUSE_BMPBUTTON)
WX_ARG_ENABLE(bmpcombobox, [ --enable-bmpcombobox use wxBitmapComboBox class], wxUSE_BITMAPCOMBOBOX)
@@ -6462,6 +6467,12 @@ if test "$wxUSE_ACCEL" = "yes"; then
USES_CONTROLS=1
fi
if test "$wxUSE_ACCEL" = "yes"; then
AC_DEFINE(wxUSE_ANIMATIONCTRL)
USES_CONTROLS=1
SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS animate"
fi
if test "$wxUSE_BUTTON" = "yes"; then
AC_DEFINE(wxUSE_BUTTON)
USES_CONTROLS=1

View File

@@ -68,6 +68,7 @@ All (GUI):
- Support for right-to-left text layout (started by Diaa Sami during Google Summer of
Code, with a lot of help from Tim Kosse and others).
- wxAnimationCtrl added (Francesco Montorsi)
- Added wxAboutBox() function for displaying the standard about dialog
- Added wxID_PAGE_SETUP standard id.
- Added wxSize::IncBy() and DecBy() methods.

View File

@@ -0,0 +1,159 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name: animatctrl.tex
%% Purpose: wxAnimationCtrl documentation
%% Author: Francesco Montorsi
%% Created: 24-9-2006
%% RCS-ID: $Id$
%% Copyright: (c) 2006 Francesco Montorsi
%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxAnimationCtrl}}\label{wxanimationctrl}
This is a static control which displays an animation.
wxAnimationCtrl API is simple as possible and won't give you full control on the
animation; if you need it then use \helpref{wxMediaCtrl}{wxmediactrl}.
This control is useful to display a (small) animation while doing a long task
(e.g. a "throbber").
It is only available if \texttt{wxUSE\_ANIMATIONCTRL} is set to $1$ (the default).
\wxheading{Derived from}
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/animate.h>
\wxheading{Window styles}
\twocolwidtha{5cm}%
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxAC\_DEFAULT\_STYLE}}{The default style: wxNO_BORDER.}
\twocolitem{\windowstyle{wxAC\_NO_AUTORESIZE}}{By default, the control will adjust
its size to exactly fit to the size of the animation when \helpref{SetAnimation}{wxanimationctrlsetanimation}
is called. If this style flag is given, the control will not change its size}
\end{twocollist}
%\wxheading{Event handling}
%
%\twocolwidtha{7cm}%
%\begin{twocollist}\itemsep=0pt
%\twocolitem{{\bf EVT\_ANIMATION\_END(id, func)}}{}
%\end{twocollist}
\wxheading{See also}
\helpref{wxAnimation}{wxanimation}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxAnimationCtrl::wxAnimationCtrl}\label{wxanimationctrl}
\func{}{wxAnimationCtrl}{\param{wxWindow *}{parent},\rtfsp
\param{wxWindowID}{ id},\rtfsp
\param{const wxAnimation\& }{anim},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
\param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long}{ style = wxAC\_DEFAULT\_STYLE},\rtfsp
\param{const wxString\& }{name = ``animationctrl"}}
Initializes the object and calls \helpref{Create}{wxanimationctrlcreate} with
all the parameters.
\membersection{wxAnimationCtrl::Create}\label{wxanimationctrlcreate}
\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp
\param{wxWindowID}{ id},\rtfsp
\param{const wxAnimation\& }{anim},\rtfsp
\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
\param{const wxSize\& }{size = wxDefaultSize},\rtfsp
\param{long}{ style = wxAC\_DEFAULT\_STYLE},\rtfsp
\param{const wxString\& }{name = ``animationctrl"}}
\wxheading{Parameters}
\docparam{parent}{Parent window, must not be non-\texttt{NULL}.}
\docparam{id}{The identifier for the control.}
\docparam{anim}{The initial animation shown in the control.}
\docparam{pos}{Initial position.}
\docparam{size}{Initial size.}
\docparam{style}{The window style, see {\tt wxAC\_*} flags.}
\docparam{name}{Control name.}
After control creation you must explicitely call \helpref{Play}{wxanimationctrlplay}
to start to play the animation. Until that function won't be called, the first frame
of the animation is displayed.
\wxheading{Return value}
\true if the control was successfully created or \false if creation failed.
\membersection{wxAnimationCtrl::GetAnimation}\label{wxanimationctrlgetanimation}
\constfunc{wxAnimation}{GetAnimation}{\void}
Returns the animation associated with this control.
\membersection{wxAnimationCtrl::IsPlaying}\label{wxanimationctrlisplaying}
\constfunc{bool}{IsPlaying}{\void}
Returns \true if the animation is being played.
\membersection{wxAnimationCtrl::LoadFile}\label{wxanimationctrlloadfile}
\func{bool}{LoadFile}{\param{const wxString \&}{ file}, \param{wxAnimationType }{ animType = wxANIMATION\_TYPE\_ANY}}
Loads the animation from the given file and calls \helpref{SetAnimation}{wxanimationctrlsetanimation}.
See \helpref{wxAnimation::LoadFile}{wxanimationloadfile} for more info.
\membersection{wxAnimationCtrl::Play}\label{wxanimationctrlplay}
\func{bool}{Play}{\void}
Starts playing the animation.
The animation is always played in loop mode (unless the last frame of the animation
has an infinite delay time) and always start from the first frame
(even if you \helpref{atopped}{wxanimationctrlstop} it while some other frame was
displayed).
\membersection{wxAnimationCtrl::SetAnimation}\label{wxanimationctrlsetanimation}
\func{void}{SetAnimation}{\param{const wxAnimation \&}{ anim}}
Sets the animation to play in this control.
If the previous animation is being played, it's \helpref{Stopped}{wxanimationctrlstop}.
Until \helpref{Play}{wxanimationctrlplay} isn't called, the first frame
of the animation is displayed.
If {\tt wxNullAnimation} is given as animation, the control will be cleared to display
the background colour (see \helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour}).
\membersection{wxAnimationCtrl::Stop}\label{wxanimationctrlstop}
\func{void}{Stop}{\void}
Stops playing the animation.
The control will show the last frame rendered of the current animation until
\helpref{Play}{wxanimationctrlplay} is called.

153
docs/latex/wx/animation.tex Normal file
View File

@@ -0,0 +1,153 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Name: animation.tex
%% Purpose: wxAnimation documentation
%% Author: Francesco Montorsi
%% Created: 24-9-2006
%% RCS-ID: $Id$
%% Copyright: (c) 2006 Francesco Montorsi
%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxAnimation}}\label{wxanimation}
This class encapsulates the concept of a platform-dependent animation.
An animation is a sequence of frames of the same size.
Sound is not supported by wxAnimation.
\wxheading{Derived from}
\helpref{wxGDIObject}{wxgdiobject}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/animate.h>
\wxheading{Predefined objects}
Objects:
{\bf wxNullAnimation}
\wxheading{See also}
\helpref{wxAnimationCtrl}{wxanimationctrl}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxAnimation::wxAnimation}\label{wxanimationctor}
\func{}{wxAnimation}{\void}
Default constructor.
\func{}{wxAnimation}{\param{const wxAnimation\& }{anim}}
Copy constructor.
wxAnimation objects are reference counted so that this operation is very fast.
\func{}{wxAnimation}{\param{const wxString\& }{name}, \param{wxAnimationType}{ type = wxANIMATION\_TYPE\_ANY}}
Loads an animation from a file.
\docparam{name}{The name of the file to load.}
\docparam{type}{See \helpref{LoadFile}{wxanimationloadfile} for more info.}
\membersection{wxAnimation::\destruct{wxAnimation}}\label{wxanimationdtor}
\func{}{\destruct{wxAnimation}}{\void}
Destroys the wxAnimation object and possibly the underlying animation data.
Because reference counting is used, the animation may not actually be
destroyed at this point - only when the reference count is zero will the
data be deleted.
\membersection{wxAnimation::GetDelay}\label{wxanimationgetdelay}
\constfunc{int}{GetDelay}{\param{size_t }{i}}
Returns the delay for the i-th frame in milliseconds.
If {\tt -1} is returned the frame is to be displayed forever.
\membersection{wxAnimation::GetFrameCount}\label{wxanimationgetframecount}
\constfunc{size_t}{GetFrameCount}{\void}
Returns the number of frames for this animation.
\membersection{wxAnimation::GetFrame}\label{wxanimationgetframe}
\constfunc{wxImage}{GetFrame}{\param{size_t }{i}}
Returns the i-th frame as a \helpref{wxImage}{wximage}.
\membersection{wxAnimation::GetSize}\label{wxanimationgetsize}
\constfunc{wxSize}{GetSize}{\void}
Returns the size of the animation.
\membersection{wxAnimation::IsOk}\label{wxanimationisok}
\constfunc{bool}{IsOk}{\void}
Returns \true if animation data is present.
\membersection{wxAnimation::Load}\label{wxanimationload}
\func{bool}{Load}{\param{wxInputStream&}{ stream}, \param{wxAnimationType}{ type = wxANIMATION\_TYPE\_ANY}}
Loads an animation from the given stream.
\wxheading{Parameters}
\docparam{stream}{The stream to use to load the animation.}
\docparam{type}{One of the following values:
\twocolwidtha{5cm}
\begin{twocollist}
\twocolitem{\indexit{wxANIM\_TYPE\_GIF}}{Load an animated GIF file.}
\twocolitem{\indexit{wxANIM\_TYPE\_ANI}}{Load an ANI file.}
\twocolitem{\indexit{wxANIM\_TYPE\_ANY}}{Try to autodetect the filetype.}
\end{twocollist}
}
\wxheading{Return value}
\true if the operation succeeded, \false otherwise.
\membersection{wxAnimation::LoadFile}\label{wxanimationloadfile}
\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{wxAnimationType}{ type = wxANIMATION\_TYPE\_ANY}}
Loads an animation from a file.
\wxheading{Parameters}
\docparam{name}{A filename.}
\docparam{type}{One of the following values:
\twocolwidtha{5cm}
\begin{twocollist}
\twocolitem{\indexit{wxANIM\_TYPE\_GIF}}{Load an animated GIF file.}
\twocolitem{\indexit{wxANIM\_TYPE\_ANI}}{Load an ANI file.}
\twocolitem{\indexit{wxANIM\_TYPE\_ANY}}{Try to autodetect the filetype.}
\end{twocollist}
}
\wxheading{Return value}
\true if the operation succeeded, \false otherwise.

View File

@@ -85,6 +85,7 @@ that are not static can have \helpref{validators}{wxvalidator} associated with t
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxAnimationCtrl}{wxanimationctrl}}{A control to display an animation}
\twocolitem{\helpref{wxControl}{wxcontrol}}{The base class for controls}
\twocolitem{\helpref{wxButton}{wxbutton}}{Push button control, displaying text}
\twocolitem{\helpref{wxBitmapButton}{wxbitmapbutton}}{Push button control, displaying a bitmap}

View File

@@ -11,6 +11,8 @@
\input activevt.tex
\input activexcontainer.tex
\input activexevt.tex
\input animation.tex
\input animatctrl.tex
\input app.tex
\input apptraits.tex
\input archive.tex

77
include/wx/anidecod.h Normal file
View File

@@ -0,0 +1,77 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/anidecod.h
// Purpose: wxANIDecoder, ANI reader for wxImage and wxAnimation
// Author: Francesco Montorsi
// CVS-ID: $Id$
// Copyright: (c) 2006 Francesco Montorsi
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_ANIDECOD_H
#define _WX_ANIDECOD_H
#include "wx/defs.h"
#if wxUSE_STREAMS && wxUSE_GIF
#include "wx/stream.h"
#include "wx/image.h"
#include "wx/animdecod.h"
class /*WXDLLEXPORT*/ wxANIFrameInfo;
WX_DECLARE_OBJARRAY(wxANIFrameInfo, wxANIFrameInfoArray);
WX_DECLARE_OBJARRAY(wxImage, wxImageArray);
// --------------------------------------------------------------------------
// wxANIDecoder class
// --------------------------------------------------------------------------
class WXDLLEXPORT wxANIDecoder : public wxAnimationDecoder
{
private:
// frames stored as wxImage(s): ANI files are meant to be used mostly for animated
// cursors and thus they do not use any optimization to encode differences between
// two frames: they are just a list of images to display sequentially.
wxImageArray m_images;
// the info about each image stored in m_images.
// NB: m_info.GetCount() may differ from m_images.GetCount()!
wxANIFrameInfoArray m_info;
// this is the wxCURHandler used to load the ICON chunk of the ANI files
static wxCURHandler sm_handler;
public:
virtual wxSize GetFrameSize(size_t frame) const;
virtual wxPoint GetFramePosition(size_t frame) const;
virtual wxAnimationDisposal GetDisposalMethod(size_t frame) const;
virtual long GetDelay(size_t frame) const;
public:
// constructor, destructor, etc.
wxANIDecoder();
~wxANIDecoder();
public: // implementation of wxAnimationDecoder's pure virtuals
virtual bool CanRead( wxInputStream& stream ) const;
virtual bool Load( wxInputStream& stream );
bool ConvertToImage(size_t frame, wxImage *image) const;
wxAnimationDecoder *Clone() const
{ return new wxANIDecoder; }
wxAnimationType GetType() const
{ return wxANIMATION_TYPE_ANI; }
private:
DECLARE_NO_COPY_CLASS(wxANIDecoder)
};
#endif // wxUSE_STREAM && wxUSE_GIF
#endif // _WX_ANIDECOD_H

108
include/wx/animate.h Normal file
View File

@@ -0,0 +1,108 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/animate.h
// Purpose: wxAnimation and wxAnimationCtrl
// Author: Julian Smart and Guillermo Rodriguez Garcia
// Modified by: Francesco Montorsi
// Created: 13/8/99
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_ANIMATEH__
#define _WX_ANIMATEH__
#include "wx/defs.h"
#if wxUSE_ANIMATIONCTRL
#include <wx/defs.h>
#include <wx/string.h>
#include <wx/gdicmn.h>
#include <wx/list.h>
#include <wx/timer.h>
#include <wx/bitmap.h>
#include <wx/colour.h>
#include <wx/control.h>
#include <wx/animdecod.h>
class WXDLLIMPEXP_ADV wxAnimation;
extern WXDLLEXPORT_DATA(wxAnimation) wxNullAnimation;
extern WXDLLEXPORT_DATA(const wxChar) wxAnimationCtrlNameStr[];
// ----------------------------------------------------------------------------
// wxAnimationBase
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxAnimationBase : public wxGDIObject
{
public:
wxAnimationBase() {}
virtual bool IsOk() const = 0;
// can be -1
virtual int GetDelay(size_t i) const = 0;
virtual size_t GetFrameCount() const = 0;
virtual wxImage GetFrame(size_t i) const = 0;
virtual wxSize GetSize() const = 0;
virtual bool LoadFile(const wxString &name, wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
virtual bool Load(wxInputStream &stream, wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
protected:
DECLARE_ABSTRACT_CLASS(wxAnimationBase)
};
// ----------------------------------------------------------------------------
// wxAnimationCtrlBase
// ----------------------------------------------------------------------------
// do not autoresize to the animation's size when SetAnimation() is called
#define wxAC_NO_AUTORESIZE (0x0010)
// default style does not include wxAC_NO_AUTORESIZE, that is, the control
// auto-resizes by default to fit the new animation when SetAnimation() is called
#define wxAC_DEFAULT_STYLE (wxNO_BORDER)
class WXDLLIMPEXP_ADV wxAnimationCtrlBase : public wxControl
{
public:
wxAnimationCtrlBase() {}
public: // public API
virtual bool LoadFile(const wxString& filename, wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
virtual void SetAnimation(const wxAnimation &anim) = 0;
virtual wxAnimation GetAnimation() const = 0;
virtual bool Play() = 0;
virtual void Stop() = 0;
virtual bool IsPlaying() const = 0;
private:
DECLARE_ABSTRACT_CLASS(wxAnimationCtrlBase)
};
// ----------------------------------------------------------------------------
// include the platform-specific version of the wxAnimationCtrl class
// ----------------------------------------------------------------------------
#if defined(__WXGTK__)
#include "wx/gtk/animate.h"
#else
#include "wx/generic/animate.h"
#endif
#endif // wxUSE_ANIMATIONCTRL
#endif // _WX_ANIMATEH__

139
include/wx/animdecod.h Normal file
View File

@@ -0,0 +1,139 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/animdecod.h
// Purpose: wxAnimationDecoder
// Author: Francesco Montorsi
// CVS-ID: $Id$
// Copyright: (c) 2006 Francesco Montorsi
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_ANIMDECOD_H
#define _WX_ANIMDECOD_H
#include "wx/defs.h"
#if wxUSE_STREAMS && wxUSE_GIF
#include "wx/stream.h"
#include "wx/image.h"
/*
Differences between a wxAnimationDecoder and a wxImageHandler:
1) wxImageHandlers always load an input stream directly into a given wxImage
object converting from the format-specific data representation to the
wxImage native format (RGB24).
wxAnimationDecoders always load an input stream using some optimized format
to store it which is format-depedent. This allows to store a (possibly big)
animation using a format which is a good compromise between required memory
and time required to blit in on the screen.
2) wxAnimationDecoders contain the animation data in some internal var.
That's why they derive from wxObjectRefData: they are data which can be shared.
3) wxAnimationDecoders can be used by a wxImageHandler to retrieve a frame
in wxImage format; the viceversa cannot be done.
4) wxAnimationDecoders are decoders only, thus do not support save features.
5) wxAnimationDecoders are directly used by wxAnimation (generic implementation)
as wxObjectRefData while they need to be 'wrapped' by a wxImageHandler for
wxImage uses.
*/
// --------------------------------------------------------------------------
// Constants
// --------------------------------------------------------------------------
// NB: the values of these enum items are not casual but coincide with the
// GIF disposal codes. Do not change them !!
enum wxAnimationDisposal
{
// No disposal specified. The decoder is not required to take any action.
wxANIM_UNSPECIFIED = -1,
// Do not dispose. The graphic is to be left in place.
wxANIM_DONOTREMOVE = 0,
// Restore to background color. The area used by the graphic must be
// restored to the background color.
wxANIM_TOBACKGROUND = 1,
// Restore to previous. The decoder is required to restore the area
// overwritten by the graphic with what was there prior to rendering the graphic.
wxANIM_TOPREVIOUS = 2
};
enum wxAnimationType
{
wxANIMATION_TYPE_INVALID,
wxANIMATION_TYPE_GIF,
wxANIMATION_TYPE_ANI,
wxANIMATION_TYPE_ANY
};
// --------------------------------------------------------------------------
// wxAnimationDecoder class
// --------------------------------------------------------------------------
class WXDLLEXPORT wxAnimationDecoder : public wxObjectRefData
{
protected:
wxSize m_szAnimation;
size_t m_nFrames;
// this is the colour to use for the wxANIM_TOBACKGROUND disposal.
// if not specified by the animation, it's set to wxNullColour
wxColour m_background;
public: // frame specific data getters
// not all frames may be of the same size; e.g. GIF allows to
// specify that between two frames only a smaller portion of the
// entire animation has changed.
virtual wxSize GetFrameSize(size_t frame) const = 0;
// the position of this frame in case it's not as big as m_szAnimation
// or wxPoint(0,0) otherwise.
virtual wxPoint GetFramePosition(size_t frame) const = 0;
// what should be done after displaying this frame.
virtual wxAnimationDisposal GetDisposalMethod(size_t frame) const = 0;
// the number of milliseconds this frame should be displayed.
// if returns -1 then the frame must be displayed forever.
virtual long GetDelay(size_t frame) const = 0;
// get global data
wxSize GetAnimationSize() const { return m_szAnimation; }
wxColour GetBackgroundColour() const { return m_background; }
size_t GetFrameCount() const { return m_nFrames; }
public:
wxAnimationDecoder()
{
m_background = wxNullColour;
m_nFrames = 0;
}
~wxAnimationDecoder() {}
virtual bool Load( wxInputStream& stream ) = 0;
virtual bool CanRead( wxInputStream& stream ) const = 0;
virtual wxAnimationDecoder *Clone() const = 0;
virtual wxAnimationType GetType() const = 0;
// convert given frame to wxImage
virtual bool ConvertToImage(size_t frame, wxImage *image) const = 0;
};
#endif // wxUSE_STREAM && wxUSE_GIF
#endif // _WX_ANIMDECOD_H

View File

@@ -328,6 +328,14 @@
# endif
#endif /* !defined(wxUSE_ACCEL) */
#ifndef wxUSE_ANIMATIONCTRL
# ifdef wxABORT_ON_CONFIG_ERROR
# error "wxUSE_ANIMATIONCTRL must be defined."
# else
# define wxUSE_ANIMATIONCTRL 0
# endif
#endif /* !defined(wxUSE_ANIMATIONCTRL) */
#ifndef wxUSE_BITMAPCOMBOBOX
# ifdef wxABORT_ON_CONFIG_ERROR
# error "wxUSE_BITMAPCOMBOBOX must be defined."

View File

@@ -0,0 +1,189 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/generic/animate.h
// Purpose: wxAnimation and wxAnimationCtrl
// Author: Julian Smart and Guillermo Rodriguez Garcia
// Modified by: Francesco Montorsi
// Created: 13/8/99
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_GENERIC_ANIMATEH__
#define _WX_GENERIC_ANIMATEH__
#include <wx/defs.h>
#include <wx/string.h>
#include <wx/gdicmn.h>
#include <wx/list.h>
#include <wx/timer.h>
#include <wx/bitmap.h>
#include <wx/colour.h>
#include <wx/control.h>
#include <wx/animdecod.h>
class WXDLLIMPEXP_ADV wxAnimationBase;
class WXDLLIMPEXP_ADV wxAnimationPlayer;
class WXDLLEXPORT wxImage;
class WXDLLEXPORT wxGIFDecoder;
class WXDLLEXPORT wxAnimation;
// ----------------------------------------------------------------------------
// wxAnimation
// ----------------------------------------------------------------------------
WX_DECLARE_LIST(wxAnimationDecoder, wxAnimationDecoderList);
class WXDLLIMPEXP_ADV wxAnimation : public wxAnimationBase
{
public:
wxAnimation(const wxAnimation &tocopy)
{ Ref(tocopy); }
wxAnimation() {}
~wxAnimation() { UnRef(); }
wxAnimation &operator= (const wxAnimation &tocopy)
{
Ref(tocopy);
return *this;
}
bool operator == (const wxAnimation& anim) const
{ return m_refData == anim.m_refData; }
bool operator != (const wxAnimation& anim) const
{ return m_refData != anim.m_refData; }
bool IsOk() const
{ return m_refData != NULL; }
size_t GetFrameCount() const;
int GetDelay(size_t i) const;
wxImage GetFrame(size_t i) const;
wxSize GetSize() const;
bool LoadFile(const wxString& filename, wxAnimationType type = wxANIMATION_TYPE_ANY);
bool Load(wxInputStream &stream, wxAnimationType type = wxANIMATION_TYPE_ANY);
public: // extended interface used by the generic implementation of wxAnimationCtrl
wxPoint GetFramePosition(size_t frame) const;
wxAnimationDisposal GetDisposalMethod(size_t frame) const;
wxColour GetBackgroundColour() const;
protected:
static wxAnimationDecoderList sm_handlers;
public:
static inline wxAnimationDecoderList& GetHandlers() { return sm_handlers; }
static void AddHandler(wxAnimationDecoder *handler);
static void InsertHandler(wxAnimationDecoder *handler);
static const wxAnimationDecoder *FindHandler( wxAnimationType animType );
static void CleanUpHandlers();
static void InitStandardHandlers();
protected:
DECLARE_DYNAMIC_CLASS(wxAnimation)
};
// ----------------------------------------------------------------------------
// wxAnimationCtrl
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_ADV wxAnimationCtrl: public wxAnimationCtrlBase
{
public:
wxAnimationCtrl() {}
wxAnimationCtrl(wxWindow *parent,
wxWindowID id,
const wxAnimation& anim = wxNullAnimation,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxAC_DEFAULT_STYLE,
const wxString& name = wxAnimationCtrlNameStr)
{
Create(parent, id, anim, pos, size, style, name);
}
bool Create(wxWindow *parent, wxWindowID id,
const wxAnimation& anim = wxNullAnimation,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxAC_DEFAULT_STYLE,
const wxString& name = wxAnimationCtrlNameStr);
~wxAnimationCtrl();
public:
virtual bool LoadFile(const wxString& filename, wxAnimationType type = wxANIMATION_TYPE_ANY);
virtual void Stop();
virtual bool Play()
{ return Play(true /* looped */); }
virtual bool IsPlaying() const
{ return m_isPlaying; }
void SetAnimation(const wxAnimation &animation);
wxAnimation GetAnimation() const
{ return m_animation; }
public: // event handlers
void OnPaint(wxPaintEvent& event);
void OnTimer(wxTimerEvent& event);
void OnSize(wxSizeEvent& event);
public: // extended API specific to this implementation of wxAnimateCtrl
// Specify whether the animation's background colour is to be shown (the default),
// or whether the window background should show through
void SetUseWindowBackgroundColour(bool useWinBackground = true)
{ m_useWinBackgroundColour = useWinBackground; }
bool IsUsingWindowBackgroundColour() const
{ return m_useWinBackgroundColour; }
// This overload of Play() lets you specify if the animation must loop or not
bool Play(bool looped);
// Draw the current frame of the animation into given DC.
// This is fast as current frame is always cached.
void DrawCurrentFrame(wxDC& dc);
// Returns a wxBitmap with the current frame drawn in it
wxBitmap& GetBackingStore()
{ return m_backingStore; }
protected: // internal utilities
// resize this control to fit m_animation
void FitToAnimation();
// Draw the background; use this when e.g. previous frame had wxANIM_TOBACKGROUND disposal.
void DisposeToBackground(wxDC& dc);
void IncrementalUpdateBackingStore();
void RebuildBackingStoreUpToFrame(size_t);
void DrawFrame(wxDC &dc, size_t);
virtual wxSize DoGetBestSize() const;
protected:
size_t m_currentFrame; // Current frame
bool m_looped; // Looped, or not
wxTimer m_timer; // The timer
wxAnimation m_animation; // The animation
bool m_isPlaying; // Is the animation playing?
bool m_useWinBackgroundColour; // Use animation bg colour or window bg colour?
wxBitmap m_backingStore; // The frames are drawn here and then blitted
// on the screen
private:
DECLARE_DYNAMIC_CLASS(wxAnimationCtrl)
DECLARE_EVENT_TABLE()
};
#endif // _WX_GENERIC_ANIMATEH__

View File

@@ -17,6 +17,10 @@
#include "wx/stream.h"
#include "wx/image.h"
#include "wx/animdecod.h"
// internal utility used to store a frame in 8bit-per-pixel format
class /*WXDLLEXPORT*/ GIFImage;
// --------------------------------------------------------------------------
@@ -29,7 +33,7 @@
// stream; this means that if it was not reading directly from file,
// the stream will not be correctly positioned. the
//
enum
enum wxGIFErrorCode
{
wxGIF_OK = 0, /* everything was OK */
wxGIF_INVFORMAT, /* error in gif header */
@@ -37,18 +41,6 @@ enum
wxGIF_TRUNCATED /* file appears to be truncated */
};
// Disposal method
// Experimental; subject to change.
//
enum
{
wxGIF_D_UNSPECIFIED = -1, /* not specified */
wxGIF_D_DONOTDISPOSE = 0, /* do not dispose */
wxGIF_D_TOBACKGROUND = 1, /* restore to background colour */
wxGIF_D_TOPREVIOUS = 2 /* restore to previous image */
};
#define MAX_BLOCK_SIZE 256 /* max. block size */
@@ -56,45 +48,12 @@ enum
// wxGIFDecoder class
// --------------------------------------------------------------------------
// internal class for storing GIF image data
class GIFImage
{
public:
// def ctor
GIFImage();
unsigned int w; /* width */
unsigned int h; /* height */
unsigned int left; /* x coord (in logical screen) */
unsigned int top; /* y coord (in logical screen) */
int transparent; /* transparent color (-1 = none) */
int disposal; /* disposal method (-1 = unspecified) */
long delay; /* delay in ms (-1 = unused) */
unsigned char *p; /* bitmap */
unsigned char *pal; /* palette */
unsigned int ncolours; /* number of colours */
GIFImage *next; /* next image */
GIFImage *prev; /* prev image */
DECLARE_NO_COPY_CLASS(GIFImage)
};
class WXDLLEXPORT wxGIFDecoder
class WXDLLEXPORT wxGIFDecoder : public wxAnimationDecoder
{
private:
// logical screen
unsigned int m_screenw; /* logical screen width */
unsigned int m_screenh; /* logical screen height */
int m_background; /* background color (-1 = none) */
// image data
bool m_anim; /* animated GIF */
int m_nimages; /* number of images */
int m_image; /* current image */
GIFImage *m_pimage; /* pointer to current image */
GIFImage *m_pfirst; /* pointer to first image */
GIFImage *m_plast; /* pointer to last image */
// a wxArray provides a constant access time rather than a linear time
// like for linked lists.
wxArrayPtrVoid m_frames;
// decoder state vars
int m_restbits; /* remaining valid bits */
@@ -103,52 +62,51 @@ private:
unsigned char m_buffer[MAX_BLOCK_SIZE]; /* buffer for reading */
unsigned char *m_bufp; /* pointer to next byte in buffer */
// input stream
wxInputStream *m_f; /* input stream */
private:
int getcode(int bits, int abfin);
int dgif(GIFImage *img, int interl, int bits);
int getcode(wxInputStream& stream, int bits, int abfin);
wxGIFErrorCode dgif(wxInputStream& stream, GIFImage *img, int interl, int bits);
public:
// get data of current frame
int GetFrameIndex() const;
unsigned char* GetData() const;
unsigned char* GetPalette() const;
unsigned int GetNcolours() const;
unsigned int GetWidth() const;
unsigned int GetHeight() const;
unsigned int GetLeft() const;
unsigned int GetTop() const;
int GetDisposalMethod() const;
int GetTransparentColour() const;
long GetDelay() const;
unsigned char* GetData(size_t frame) const;
unsigned char* GetPalette(size_t frame) const;
unsigned int GetNcolours(size_t frame) const;
int GetTransparentColour(size_t frame) const;
// get global data
unsigned int GetLogicalScreenWidth() const;
unsigned int GetLogicalScreenHeight() const;
int GetBackgroundColour() const;
int GetNumberOfFrames() const;
bool IsAnimation() const;
virtual wxSize GetFrameSize(size_t frame) const;
virtual wxPoint GetFramePosition(size_t frame) const;
virtual wxAnimationDisposal GetDisposalMethod(size_t frame) const;
virtual long GetDelay(size_t frame) const;
// move through the animation
bool GoFirstFrame();
bool GoLastFrame();
bool GoNextFrame(bool cyclic = false);
bool GoPrevFrame(bool cyclic = false);
bool GoFrame(int which);
// GIFs can contain both static images and animations
bool IsAnimation() const
{ return m_nFrames > 1; }
public:
// constructor, destructor, etc.
wxGIFDecoder(wxInputStream *s, bool anim = false);
wxGIFDecoder();
~wxGIFDecoder();
bool CanRead();
int ReadGIF();
// load function which returns more info than just Load():
wxGIFErrorCode LoadGIF( wxInputStream& stream );
// free all internal frames
void Destroy();
// convert current frame to wxImage
bool ConvertToImage(wxImage *image) const;
public: // implementation of wxAnimationDecoder's pure virtuals
virtual bool CanRead( wxInputStream& stream ) const;
virtual bool Load( wxInputStream& stream )
{ return LoadGIF(stream) == wxGIF_OK; }
bool ConvertToImage(size_t frame, wxImage *image) const;
wxAnimationDecoder *Clone() const
{ return new wxGIFDecoder; }
wxAnimationType GetType() const
{ return wxANIMATION_TYPE_GIF; }
private:
DECLARE_NO_COPY_CLASS(wxGIFDecoder)
};

181
include/wx/gtk/animate.h Normal file
View File

@@ -0,0 +1,181 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/gtk/animate.h
// Purpose: Animation classes
// Author: Julian Smart and Guillermo Rodriguez Garcia
// Modified by: Francesco Montorsi
// Created: 13/8/99
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Guillermo Rodriguez Garcia
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_GTKANIMATEH__
#define _WX_GTKANIMATEH__
#include "wx/defs.h"
#include <gdk-pixbuf/gdk-pixbuf.h>
// ----------------------------------------------------------------------------
// wxAnimation
// Unlike the generic wxAnimation object (see generic\animate.cpp), we won't
// use directly wxAnimationHandlers as gdk-pixbuf already provides the
// concept of handler and will automatically use the available handlers.
// Like generic wxAnimation object, this implementation of wxAnimation is
// refcounted so that assignment is very fast
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxAnimation : public wxAnimationBase
{
public:
wxAnimation(const wxAnimation &tocopy)
{ m_pixbuf=tocopy.m_pixbuf; if (m_pixbuf) g_object_ref(m_pixbuf); }
wxAnimation(GdkPixbufAnimation *p = NULL)
{ m_pixbuf=p; }
~wxAnimation()
{ UnRef(); }
wxAnimation &operator= (const wxAnimation &tocopy)
{
m_pixbuf=tocopy.m_pixbuf;
if (m_pixbuf) g_object_ref(m_pixbuf);
return *this;
}
bool operator == (const wxAnimation& anim) const
{ return m_pixbuf == anim.m_pixbuf; }
bool operator != (const wxAnimation& anim) const
{ return m_pixbuf != anim.m_pixbuf; }
virtual bool IsOk() const
{ return m_pixbuf != NULL; }
// unfortunately GdkPixbufAnimation does not expose these info:
virtual size_t GetFrameCount() const
{ return 0; }
virtual wxImage GetFrame(size_t i) const
{ return wxNullImage; }
// we can retrieve the delay for a frame only after building
// a GdkPixbufAnimationIter...
virtual int GetDelay(size_t i) const
{ return 0; }
virtual wxSize GetSize() const
{ return wxSize(gdk_pixbuf_animation_get_width(m_pixbuf),
gdk_pixbuf_animation_get_height(m_pixbuf)); }
virtual bool LoadFile(const wxString &name, wxAnimationType type = wxANIMATION_TYPE_ANY);
virtual bool Load(wxInputStream &stream, wxAnimationType type = wxANIMATION_TYPE_ANY);
void UnRef()
{
if (m_pixbuf)
g_object_unref(m_pixbuf);
m_pixbuf = NULL;
}
public: // used by GTK callbacks
GdkPixbufAnimation *GetPixbuf() const
{ return m_pixbuf; }
void SetPixbuf(GdkPixbufAnimation *p)
{ m_pixbuf=p; if (m_pixbuf) g_object_ref(m_pixbuf); }
protected:
GdkPixbufAnimation *m_pixbuf;
// used temporary by Load()
//bool m_bLoadComplete;
protected:
DECLARE_DYNAMIC_CLASS(wxAnimation)
};
// ----------------------------------------------------------------------------
// wxAnimationCtrl
// ----------------------------------------------------------------------------
// Resize to animation size if this is set
#define wxAN_FIT_ANIMATION 0x0010
class WXDLLIMPEXP_ADV wxAnimationCtrl: public wxAnimationCtrlBase
{
public:
wxAnimationCtrl() {}
wxAnimationCtrl(wxWindow *parent,
wxWindowID id,
const wxAnimation& anim = wxNullAnimation,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxAC_DEFAULT_STYLE,
const wxString& name = wxAnimationCtrlNameStr)
{
Create(parent, id, anim, pos, size, style, name);
}
bool Create(wxWindow *parent, wxWindowID id,
const wxAnimation& anim = wxNullAnimation,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxAC_DEFAULT_STYLE,
const wxString& name = wxAnimationCtrlNameStr);
~wxAnimationCtrl();
public: // event handler
void OnTimer(wxTimerEvent &);
public: // public API
virtual bool LoadFile(const wxString& filename, wxAnimationType type = wxANIMATION_TYPE_ANY);
virtual void SetAnimation(const wxAnimation &anim);
virtual wxAnimation GetAnimation() const
{ return wxAnimation(m_anim); }
virtual bool Play();
virtual void Stop();
virtual bool IsPlaying() const;
bool SetBackgroundColour( const wxColour &colour );
protected:
virtual wxSize DoGetBestSize() const;
void FitToAnimation();
void ClearToBackgroundColour();
void ResetAnim()
{
if (m_anim)
g_object_unref(m_anim);
m_anim = NULL;
}
void ResetIter()
{
if (m_iter)
g_object_unref(m_iter);
m_iter = NULL;
}
protected: // internal vars
GdkPixbufAnimation *m_anim;
GdkPixbufAnimationIter *m_iter;
wxTimer m_timer;
bool m_bPlaying;
private:
DECLARE_DYNAMIC_CLASS(wxAnimationCtrl)
DECLARE_EVENT_TABLE()
};
#endif // _WX_GTKANIMATEH__

View File

@@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Name: imagbmp.h
// Purpose: wxImage BMP, ICO and CUR handlers
// Purpose: wxImage BMP, ICO, CUR and ANI handlers
// Author: Robert Roebling, Chris Elliott
// RCS-ID: $Id$
// Copyright: (c) Robert Roebling, Chris Elliott

View File

@@ -601,6 +601,7 @@
// Default is 1
//
// Recommended setting: 1
#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl
#define wxUSE_BUTTON 1 // wxButton
#define wxUSE_BMPBUTTON 1 // wxBitmapButton
#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl

View File

@@ -600,6 +600,7 @@
// Default is 1
//
// Recommended setting: 1
#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl
#define wxUSE_BUTTON 1 // wxButton
#define wxUSE_BMPBUTTON 1 // wxBitmapButton
#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl

View File

@@ -600,6 +600,7 @@
// Default is 1
//
// Recommended setting: 1
#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl
#define wxUSE_BUTTON 1 // wxButton
#define wxUSE_BMPBUTTON 1 // wxBitmapButton
#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl

View File

@@ -600,6 +600,7 @@
// Default is 1
//
// Recommended setting: 1
#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl
#define wxUSE_BUTTON 1 // wxButton
#define wxUSE_BMPBUTTON 1 // wxBitmapButton
#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl

View File

@@ -600,6 +600,7 @@
// Default is 1
//
// Recommended setting: 1
#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl
#define wxUSE_BUTTON 1 // wxButton
#define wxUSE_BMPBUTTON 1 // wxBitmapButton
#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl

View File

@@ -600,6 +600,7 @@
// Default is 1
//
// Recommended setting: 1
#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl
#define wxUSE_BUTTON 1 // wxButton
#define wxUSE_BMPBUTTON 1 // wxBitmapButton
#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl

View File

@@ -596,6 +596,7 @@
// Default is 1
//
// Recommended setting: 1
#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl
#define wxUSE_BUTTON 1 // wxButton
#define wxUSE_BMPBUTTON 1 // wxBitmapButton
#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl

209
samples/animate/Makefile.in Normal file
View File

@@ -0,0 +1,209 @@
# =========================================================================
# This makefile was generated by
# Bakefile 0.2.0 (http://bakefile.sourceforge.net)
# Do not modify, all changes will be overwritten!
# =========================================================================
@MAKE_SET@
prefix = @prefix@
exec_prefix = @exec_prefix@
INSTALL = @INSTALL@
EXEEXT = @EXEEXT@
WINDRES = @WINDRES@
REZ = @REZ@
SETFILE = @SETFILE@
NM = @NM@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
LIBS = @LIBS@
LDFLAGS_GUI = @LDFLAGS_GUI@
CXX = @CXX@
CXXFLAGS = @CXXFLAGS@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
WX_LIB_FLAVOUR = @WX_LIB_FLAVOUR@
TOOLKIT = @TOOLKIT@
TOOLKIT_LOWERCASE = @TOOLKIT_LOWERCASE@
TOOLKIT_VERSION = @TOOLKIT_VERSION@
TOOLCHAIN_FULLNAME = @TOOLCHAIN_FULLNAME@
EXTRALIBS = @EXTRALIBS@
EXTRALIBS_GUI = @EXTRALIBS_GUI@
EXTRALIBS_SDL = @EXTRALIBS_SDL@
HOST_SUFFIX = @HOST_SUFFIX@
SAMPLES_RPATH_FLAG = @SAMPLES_RPATH_FLAG@
SAMPLES_RPATH_POSTLINK = @SAMPLES_RPATH_POSTLINK@
### Variables: ###
DESTDIR =
WX_RELEASE = 2.7
WX_VERSION = $(WX_RELEASE).0
LIBDIRNAME = $(top_builddir)lib
ANITEST_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \
-I$(srcdir) $(__DLLFLAG_p) -I$(srcdir)/../../samples $(CPPFLAGS) $(CXXFLAGS)
ANITEST_OBJECTS = \
$(__anitest_os2_lib_res) \
anitest_anitest.o \
$(__anitest___win32rc)
### Conditionally set variables: ###
@COND_DEPS_TRACKING_0@CXXC = $(CXX)
@COND_DEPS_TRACKING_1@CXXC = $(top_builddir)./bk-deps $(CXX)
@COND_USE_PLUGINS_0@PLUGIN_ADV_EXTRALIBS = $(EXTRALIBS_SDL)
@COND_USE_GUI_0@PORTNAME = base
@COND_USE_GUI_1@PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION)
@COND_TOOLKIT_MAC@WXBASEPORT = _carbon
@COND_BUILD_DEBUG_DEBUG_FLAG_DEFAULT@WXDEBUGFLAG = d
@COND_DEBUG_FLAG_1@WXDEBUGFLAG = d
@COND_UNICODE_1@WXUNICODEFLAG = u
@COND_WXUNIV_1@WXUNIVNAME = univ
@COND_MONOLITHIC_0@EXTRALIBS_FOR_BASE = $(EXTRALIBS)
@COND_MONOLITHIC_1@EXTRALIBS_FOR_BASE = $(EXTRALIBS) $(EXTRALIBS_GUI)
@COND_MONOLITHIC_0@EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI)
@COND_MONOLITHIC_1@EXTRALIBS_FOR_GUI =
@COND_PLATFORM_MAC_1@__anitest___mac_setfilecmd = \
@COND_PLATFORM_MAC_1@ $(SETFILE) -a C anitest$(EXEEXT)
@COND_PLATFORM_MAC_1@__anitest___mac_rezcmd = $(__MACOSX_RESOURCES_p_1)
@COND_WXUNIV_1@__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__
@COND_WXUNIV_1@__WXUNIV_DEFINE_p_1 = -d __WXUNIVERSAL__
@COND_WXUNIV_1@__WXUNIV_DEFINE_p_2 = --define __WXUNIVERSAL__
@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS
@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p_1 = -d wxNO_EXCEPTIONS
@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p_2 = --define wxNO_EXCEPTIONS
@COND_USE_RTTI_0@__RTTI_DEFINE_p = -DwxNO_RTTI
@COND_USE_RTTI_0@__RTTI_DEFINE_p_1 = -d wxNO_RTTI
@COND_USE_RTTI_0@__RTTI_DEFINE_p_2 = --define wxNO_RTTI
@COND_USE_THREADS_0@__THREAD_DEFINE_p = -DwxNO_THREADS
@COND_USE_THREADS_0@__THREAD_DEFINE_p_1 = -d wxNO_THREADS
@COND_USE_THREADS_0@__THREAD_DEFINE_p_2 = --define wxNO_THREADS
@COND_SHARED_1@__DLLFLAG_p = -DWXUSINGDLL
@COND_SHARED_1@__DLLFLAG_p_1 = -d WXUSINGDLL
@COND_SHARED_1@__DLLFLAG_p_2 = --define WXUSINGDLL
COND_PLATFORM_OS2_1___anitest___os2_emxbindcmd = $(NM) anitest$(EXEEXT) | if \
grep -q pmwin.763 ; then emxbind -ep anitest$(EXEEXT) ; fi
@COND_PLATFORM_OS2_1@__anitest___os2_emxbindcmd = $(COND_PLATFORM_OS2_1___anitest___os2_emxbindcmd)
@COND_TOOLKIT_MSW@__RCDEFDIR_p = -i \
@COND_TOOLKIT_MSW@ $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME)
@COND_TOOLKIT_MSW@__RCDEFDIR_p_1 = --include-dir \
@COND_TOOLKIT_MSW@ $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME)
@COND_PLATFORM_OS2_1@__anitest_os2_lib_res = \
@COND_PLATFORM_OS2_1@ $(top_srcdir)/include/wx/os2/wx.res
@COND_PLATFORM_MACOSX_1@__anitest_bundle___depname = anitest_bundle
@COND_TOOLKIT_COCOA@____anitest_BUNDLE_TGT_REF_DEP = \
@COND_TOOLKIT_COCOA@ anitest.app/Contents/PkgInfo
@COND_TOOLKIT_MAC@____anitest_BUNDLE_TGT_REF_DEP = \
@COND_TOOLKIT_MAC@ anitest.app/Contents/PkgInfo
COND_MONOLITHIC_0___WXLIB_ADV_p = \
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_ADV_p = $(COND_MONOLITHIC_0___WXLIB_ADV_p)
COND_MONOLITHIC_0___WXLIB_CORE_p = \
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p)
COND_MONOLITHIC_0___WXLIB_BASE_p = \
-lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_0@__WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p)
@COND_PLATFORM_WIN32_1@__anitest___win32rc = anitest_sample_rc.o
COND_MONOLITHIC_1___WXLIB_MONO_p = \
-lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_MONOLITHIC_1@__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p)
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@__LIB_TIFF_p \
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@ = \
@COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN@ -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_USE_GUI_1_WXUSE_LIBJPEG_BUILTIN@__LIB_JPEG_p \
@COND_USE_GUI_1_WXUSE_LIBJPEG_BUILTIN@ = \
@COND_USE_GUI_1_WXUSE_LIBJPEG_BUILTIN@ -lwxjpeg$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@__LIB_PNG_p \
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@ = \
@COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN@ -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_WXUSE_ZLIB_BUILTIN@__LIB_ZLIB_p = \
@COND_WXUSE_ZLIB_BUILTIN@ -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_WXUSE_ODBC_BUILTIN@__LIB_ODBC_p = \
@COND_WXUSE_ODBC_BUILTIN@ -lwxodbc$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = \
-lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@COND_WXUSE_REGEX_BUILTIN@__LIB_REGEX_p = $(COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p)
@COND_WXUSE_EXPAT_BUILTIN@__LIB_EXPAT_p = \
@COND_WXUSE_EXPAT_BUILTIN@ -lwxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1 = $(REZ) -d __DARWIN__ -t APPL -d \
__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) \
$(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) -i $(srcdir) $(__DLLFLAG_p_1) -i \
$(srcdir)/../../samples $(__RCDEFDIR_p) -i $(top_srcdir)/include -o \
anitest$(EXEEXT) Carbon.r sample.r
@COND_TOOLKIT_MAC@__MACOSX_RESOURCES_p_1 = $(COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1)
### Targets: ###
all: anitest$(EXEEXT) $(__anitest_bundle___depname) catalog
install: all
uninstall:
install-strip: install
clean:
rm -rf ./.deps ./.pch
rm -f ./*.o
rm -f anitest$(EXEEXT)
rm -rf anitest.app
distclean: clean
rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile
anitest$(EXEEXT): $(ANITEST_OBJECTS) $(__anitest___win32rc)
$(CXX) -o $@ $(ANITEST_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_ADV_p) $(PLUGIN_ADV_EXTRALIBS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE)
$(__anitest___mac_rezcmd)
$(__anitest___mac_setfilecmd)
$(__anitest___os2_emxbindcmd)
$(SAMPLES_RPATH_POSTLINK)
anitest.app/Contents/PkgInfo: anitest$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.plist.in $(top_srcdir)/src/mac/carbon/wxmac.icns
mkdir -p anitest.app/Contents
mkdir -p anitest.app/Contents/MacOS
mkdir -p anitest.app/Contents/Resources
sed -e "s/IDENTIFIER/`echo $(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`/" \
-e "s/EXECUTABLE/anitest/" \
-e "s/VERSION/$(WX_VERSION)/" \
$(top_srcdir)/src/mac/carbon/Info.plist.in >anitest.app/Contents/Info.plist
echo -n "APPL????" >anitest.app/Contents/PkgInfo
ln -f anitest$(EXEEXT) anitest.app/Contents/MacOS/anitest
cp -f $(top_srcdir)/src/mac/carbon/wxmac.icns anitest.app/Contents/Resources/wxmac.icns
@COND_PLATFORM_MACOSX_1@anitest_bundle: $(____anitest_BUNDLE_TGT_REF_DEP)
catalog:
@mkdir -p .
@for f in throbber.gif hourglass.ani; do \
if test ! -f ./$$f -a ! -d ./$$f ; \
then x=yep ; \
else x=`find $(srcdir)/$$f -newer ./$$f -print` ; \
fi; \
case "$$x" in ?*) \
cp -pRf $(srcdir)/$$f . ;; \
esac; \
done
anitest_anitest.o: $(srcdir)/anitest.cpp
$(CXXC) -c -o $@ $(ANITEST_CXXFLAGS) $(srcdir)/anitest.cpp
anitest_sample_rc.o: $(srcdir)/../sample.rc
$(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2) $(__EXCEPTIONS_DEFINE_p_2) $(__RTTI_DEFINE_p_2) $(__THREAD_DEFINE_p_2) --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_1) --include-dir $(top_srcdir)/include
# Include dependency info, if present:
@IF_GNU_MAKE@-include .deps/*.d
.PHONY: all install uninstall clean distclean anitest_bundle catalog

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" ?>
<makefile>
<include file="../../../build/bakefiles/common_samples.bkl"/>
<exe id="anitest" template="wx_sample" template_append="wx_append">
<sources>
anitest.cpp
</sources>
<wx-lib>adv</wx-lib>
<wx-lib>core</wx-lib>
<wx-lib>base</wx-lib>
<win32-res>../sample.rc</win32-res>
</exe>
<wx-data id="catalog">
<files>throbber.gif hourglass.ani</files>
</wx-data>
</makefile>

266
samples/animate/anitest.cpp Normal file
View File

@@ -0,0 +1,266 @@
/////////////////////////////////////////////////////////////////////////////
// Name: anitest.cpp
// Purpose: Animation sample
// Author: Julian Smart
// Modified by: Francesco Montorsi
// Created: 02/07/2001
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ===========================================================================
// declarations
// ===========================================================================
// ---------------------------------------------------------------------------
// headers
// ---------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#ifndef __WXMSW__
#include "mondrian.xpm"
#endif
#include "anitest.h"
IMPLEMENT_APP(MyApp)
// ---------------------------------------------------------------------------
// global variables
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
// event tables
// ---------------------------------------------------------------------------
enum
{
wxID_PLAY
};
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(wxID_PLAY, MyFrame::OnPlay)
EVT_MENU(wxID_STOP, MyFrame::OnStop)
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
#if wxUSE_FILEDLG
EVT_MENU(wxID_OPEN, MyFrame::OnOpen)
#endif // wxUSE_FILEDLG
EVT_SIZE(MyFrame::OnSize)
EVT_UPDATE_UI(wxID_ANY, MyFrame::OnUpdateUI)
END_EVENT_TABLE()
// ===========================================================================
// implementation
// ===========================================================================
// ---------------------------------------------------------------------------
// MyApp
// ---------------------------------------------------------------------------
// Initialise this in OnInit, not statically
bool MyApp::OnInit()
{
// Create the main frame window
MyFrame* frame = new MyFrame((wxFrame *)NULL, -1, _T("Animation Demo"),
wxPoint(-1, -1), wxSize(500, 400),
wxDEFAULT_FRAME_STYLE);
// Give it an icon
#ifdef __WXMSW__
frame->SetIcon(wxIcon(_T("mdi_icn")));
#else
frame->SetIcon(wxIcon( mondrian_xpm ));
#endif
// Make a menubar
wxMenu *file_menu = new wxMenu;
#if wxUSE_FILEDLG
file_menu->Append(wxID_OPEN, _T("&Open Animation...\tCtrl+O"), _T("Loads an animation"));
#endif // wxUSE_FILEDLG
file_menu->Append(wxID_EXIT);
wxMenu *play_menu = new wxMenu;
play_menu->Append(wxID_PLAY, _T("Play\tCtrl+P"), _T("Play the animation"));
play_menu->Append(wxID_STOP, _T("Stop\tCtrl+P"), _T("Stop the animation"));
wxMenu *help_menu = new wxMenu;
help_menu->Append(wxID_ABOUT);
wxMenuBar *menu_bar = new wxMenuBar;
menu_bar->Append(file_menu, _T("&File"));
menu_bar->Append(play_menu, _T("&Animation"));
menu_bar->Append(help_menu, _T("&Help"));
// Associate the menu bar with the frame
frame->SetMenuBar(menu_bar);
#if wxUSE_STATUSBAR
frame->CreateStatusBar();
#endif // wxUSE_STATUSBAR
frame->Show(true);
SetTopWindow(frame);
return true;
}
// ---------------------------------------------------------------------------
// MyFrame
// ---------------------------------------------------------------------------
#include "wx/wfstream.h"
// Define my frame constructor
MyFrame::MyFrame(wxWindow *parent,
const wxWindowID id,
const wxString& title,
const wxPoint& pos,
const wxSize& size,
const long style)
: wxFrame(parent, id, title, pos, size,
style | wxNO_FULL_REPAINT_ON_RESIZE)
{
//m_canvas = new MyCanvas(this, wxPoint(0, 0), wxDefaultSize);
//wxSizer *sz = new wxBoxSizer(wxVERTICAL);
m_animationCtrl = new wxAnimationCtrl(this, wxID_ANY, wxNullAnimation,
wxPoint(0,0),wxSize(100,100));
if (m_animationCtrl->LoadFile(wxT("throbber.gif")))
m_animationCtrl->Play();
//sz->Add(m_animationCtrl, 1, wxGROW);
//SetSizer(sz);
}
MyFrame::~MyFrame()
{
}
void MyFrame::OnPlay(wxCommandEvent& WXUNUSED(event))
{
if (!m_animationCtrl->Play())
wxLogError(wxT("Invalid animation"));
}
void MyFrame::OnStop(wxCommandEvent& WXUNUSED(event))
{
m_animationCtrl->Stop();
}
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
Close();
}
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) )
{
/*
FIXME: on wxGTK at least using File->About command it shows
the message dialog but does not focus it
*/
(void)wxMessageBox(_T("wxWidgets 2 Animation Demo\n")
_T("Author: Julian Smart (c) 2001\n"),
_T("About Animation Demo"));
}
#if wxUSE_FILEDLG
void MyFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
{
wxFileDialog dialog(this, _T("Please choose an animation"),
wxEmptyString, wxEmptyString, wxT("*.gif;*.ani"), wxFD_OPEN);
if (dialog.ShowModal() == wxID_OK)
{
wxString filename(dialog.GetPath());
// enable one of the two chunk of codes to test different parts of wxAnimation/wxAnimationCtrl
#if 0
if (m_animationCtrl->LoadFile(filename))
m_animationCtrl->Play();
else
wxMessageBox(_T("Sorry, this animation is not a valid format for wxAnimation."));
#else
#if 0
wxAnimation temp;
if (!temp.LoadFile(filename))
{
wxLogError(wxT("Sorry, this animation is not a valid format for wxAnimation."));
return;
}
m_animationCtrl->SetAnimation(temp);
m_animationCtrl->Play();
#else
wxFileInputStream stream(filename);
if (!stream.Ok())
{
wxLogError(wxT("Sorry, this animation is not a valid format for wxAnimation."));
return;
}
wxAnimation temp;
if (!temp.Load(stream))
{
wxLogError(wxT("Sorry, this animation is not a valid format for wxAnimation."));
return;
}
m_animationCtrl->SetAnimation(temp);
m_animationCtrl->Play();
#endif
#endif
}
}
#endif // wxUSE_FILEDLG
void MyFrame::OnUpdateUI(wxUpdateUIEvent& WXUNUSED(event) )
{
GetMenuBar()->FindItem(wxID_STOP)->Enable(m_animationCtrl->IsPlaying());
GetMenuBar()->FindItem(wxID_PLAY)->Enable(!m_animationCtrl->IsPlaying());
}
// ---------------------------------------------------------------------------
// MyCanvas
// ---------------------------------------------------------------------------
BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
//EVT_PAINT(MyCanvas::OnPaint)
END_EVENT_TABLE()
// Define a constructor for my canvas
MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size)
: wxScrolledWindow(parent, -1, pos, size,
wxSUNKEN_BORDER |
wxNO_FULL_REPAINT_ON_RESIZE |
wxVSCROLL | wxHSCROLL)
{
SetBackgroundColour(wxColour(_T("YELLOW")));
}
void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
{
//wxPaintDC dc(this);
//dc.DrawRotatedText(wxT("Background"),
}

61
samples/animate/anitest.h Normal file
View File

@@ -0,0 +1,61 @@
/////////////////////////////////////////////////////////////////////////////
// Name: anitest.cpp
// Purpose: anitest sample
// Author: Julian Smart
// Modified by:
// Created: 02/07/2001
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/animate.h"
// Define a new application
class MyApp : public wxApp
{
public:
bool OnInit();
};
class MyCanvas : public wxScrolledWindow
{
public:
MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size);
void OnPaint(wxPaintEvent& event);
private:
DECLARE_EVENT_TABLE()
};
// Define a new frame
class MyFrame : public wxFrame
{
public:
MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
const wxPoint& pos, const wxSize& size, const long style);
~MyFrame();
void OnAbout(wxCommandEvent& event);
void OnQuit(wxCommandEvent& event);
void OnPlay(wxCommandEvent& event);
void OnStop(wxCommandEvent& event);
void OnUpdateUI(wxUpdateUIEvent& event);
#if wxUSE_FILEDLG
void OnOpen(wxCommandEvent& event);
#endif // wxUSE_FILEDLG
MyCanvas* GetCanvas() const { return m_canvas; }
wxAnimationCtrl* GetAnimationCtrl() const { return m_animationCtrl; }
protected:
MyCanvas* m_canvas;
wxAnimationCtrl* m_animationCtrl;
private:
DECLARE_EVENT_TABLE()
};

View File

@@ -0,0 +1,3 @@
mondrian ICON "mondrian.ico"
#include "wx/msw/wx.rc"

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

View File

@@ -0,0 +1,44 @@
/* XPM */
static char *mondrian_xpm[] = {
/* columns rows colors chars-per-pixel */
"32 32 6 1",
" c black",
". c blue",
"X c #00BF00",
"o c red",
"O c yellow",
"+ c gray100",
/* pixels */
" ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" oooooo +++++++++++++++++++++++ ",
" ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ .... ",
" ++++++ ++++++++++++++++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++++++++++++++++ ++++ ",
" ++++++ ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
" "
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -10,6 +10,7 @@
<!-- all samples are enumerated here: -->
<subproject id="access" template="sub"/>
<subproject id="animate" template="sub"/>
<subproject id="artprov" template="sub"/>
<subproject id="calendar" template="sub"/>
<subproject id="caret" template="sub"/>

View File

@@ -305,6 +305,7 @@
#define wxUSE_TIPWINDOW 0
#define wxUSE_ANIMATIONCTRL 0
#define wxUSE_BUTTON 0
#define wxUSE_BMPBUTTON 0
#define wxUSE_CALENDARCTRL 0

314
src/common/anidecod.cpp Normal file
View File

@@ -0,0 +1,314 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/common/anidecod.cpp
// Purpose: wxANIDecoder, ANI reader for wxImage and wxAnimation
// Author: Francesco Montorsi
// RCS-ID: $Id$
// Copyright: (c) Francesco Montorsi
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_STREAMS && wxUSE_GIF
#ifndef WX_PRECOMP
#include "wx/palette.h"
#endif
#include <stdlib.h>
#include <string.h>
#include "wx/anidecod.h"
// static
wxCURHandler wxANIDecoder::sm_handler;
//---------------------------------------------------------------------------
// wxANIFrameInfo
//---------------------------------------------------------------------------
class wxANIFrameInfo
{
public:
wxANIFrameInfo(size_t delay = 0, int idx = -1)
{ m_delay=delay; m_imageIndex=idx; }
size_t m_delay;
int m_imageIndex;
};
#include <wx/arrimpl.cpp> // this is a magic incantation which must be done!
WX_DEFINE_OBJARRAY(wxImageArray);
#include <wx/arrimpl.cpp> // this is a magic incantation which must be done!
WX_DEFINE_OBJARRAY(wxANIFrameInfoArray);
//---------------------------------------------------------------------------
// wxANIDecoder
//---------------------------------------------------------------------------
wxANIDecoder::wxANIDecoder()
{
}
wxANIDecoder::~wxANIDecoder()
{
}
bool wxANIDecoder::ConvertToImage(size_t frame, wxImage *image) const
{
size_t idx = m_info[frame].m_imageIndex;
*image = m_images[idx]; // copy
return image->Ok();
}
//---------------------------------------------------------------------------
// Data accessors
//---------------------------------------------------------------------------
wxSize wxANIDecoder::GetFrameSize(size_t WXUNUSED(frame)) const
{
// all frames are of the same size...
return m_szAnimation;
}
wxPoint wxANIDecoder::GetFramePosition(size_t WXUNUSED(frame)) const
{
// all frames are of the same size...
return wxPoint(0,0);
}
wxAnimationDisposal wxANIDecoder::GetDisposalMethod(size_t WXUNUSED(frame)) const
{
// this disposal is implicit for all frames inside an ANI file
return wxANIM_TOBACKGROUND;
}
long wxANIDecoder::GetDelay(size_t frame) const
{
return m_info[frame].m_delay;
}
//---------------------------------------------------------------------------
// ANI reading and decoding
//---------------------------------------------------------------------------
bool wxANIDecoder::CanRead(wxInputStream& stream) const
{
wxInt32 FCC1, FCC2;
wxUint32 datalen ;
wxInt32 riff32;
memcpy( &riff32, "RIFF", 4 );
wxInt32 list32;
memcpy( &list32, "LIST", 4 );
wxInt32 ico32;
memcpy( &ico32, "icon", 4 );
wxInt32 anih32;
memcpy( &anih32, "anih", 4 );
stream.SeekI(0);
if ( !stream.Read(&FCC1, 4) )
return false;
if ( FCC1 != riff32 )
return false;
// we have a riff file:
while ( stream.IsOk() )
{
if ( FCC1 == anih32 )
return true; // found the ANIH chunk - this should be an ANI file
// we always have a data size:
stream.Read(&datalen, 4);
datalen = wxINT32_SWAP_ON_BE(datalen) ;
// data should be padded to make even number of bytes
if (datalen % 2 == 1) datalen ++ ;
// now either data or a FCC:
if ( (FCC1 == riff32) || (FCC1 == list32) )
{
stream.Read(&FCC2, 4);
}
else
{
stream.SeekI(stream.TellI() + datalen);
}
// try to read next data chunk:
if ( !stream.Read(&FCC1, 4) )
{
// reading failed -- either EOF or IO error, bail out anyhow
return false;
}
}
return false;
}
// the "anih" RIFF chunk
struct wxANIHeader
{
wxInt32 cbSizeOf; // Num bytes in AniHeader (36 bytes)
wxInt32 cFrames; // Number of unique Icons in this cursor
wxInt32 cSteps; // Number of Blits before the animation cycles
wxInt32 cx; // width of the frames
wxInt32 cy; // height of the frames
wxInt32 cBitCount; // bit depth
wxInt32 cPlanes; // 1
wxInt32 JifRate; // Default Jiffies (1/60th of a second) if rate chunk not present.
wxInt32 flags; // Animation Flag (see AF_ constants)
};
bool wxANIDecoder::Load( wxInputStream& stream )
{
wxInt32 FCC1, FCC2;
wxUint32 datalen;
size_t globaldelay=0;
wxInt32 riff32;
memcpy( &riff32, "RIFF", 4 );
wxInt32 list32;
memcpy( &list32, "LIST", 4 );
wxInt32 ico32;
memcpy( &ico32, "icon", 4 );
wxInt32 anih32;
memcpy( &anih32, "anih", 4 );
wxInt32 rate32;
memcpy( &rate32, "rate", 4 );
wxInt32 seq32;
memcpy( &seq32, "seq ", 4 );
stream.SeekI(0);
stream.Read(&FCC1, 4);
if ( FCC1 != riff32 )
return false;
m_nFrames = 0;
m_szAnimation = wxDefaultSize;
m_images.Clear();
m_info.Clear();
// we have a riff file:
while ( stream.IsOk() )
{
// we always have a data size:
stream.Read(&datalen, 4);
datalen = wxINT32_SWAP_ON_BE(datalen);
//data should be padded to make even number of bytes
if (datalen % 2 == 1) datalen++;
// now either data or a FCC:
if ( (FCC1 == riff32) || (FCC1 == list32) )
{
stream.Read(&FCC2, 4);
}
else if ( FCC1 == anih32 )
{
if ( datalen != sizeof(wxANIHeader) )
return false;
if (m_nFrames > 0)
return false; // already parsed an ani header?
struct wxANIHeader header;
stream.Read(&header, sizeof(wxANIHeader));
// we should have a global frame size
m_szAnimation = wxSize(header.cx, header.cy);
// save interesting info from the header
m_nFrames = header.cSteps; // NB: not cFrames!!
if (m_nFrames==0)
return false;
globaldelay = wxINT32_SWAP_ON_BE(header.JifRate) * 1000 / 60;
m_images.Alloc(header.cFrames);
m_info.Add(wxANIFrameInfo(), m_nFrames);
}
else if ( FCC1 == rate32 )
{
// did we already process the anih32 chunk?
if (m_nFrames == 0)
return false; // rate chunks should always be placed after anih chunk
wxASSERT(m_info.GetCount() == m_nFrames);
for (size_t i=0; i<m_nFrames; i++)
{
stream.Read(&FCC2, 4);
m_info[i].m_delay = wxINT32_SWAP_ON_BE(FCC2) * 1000 / 60;
}
}
else if ( FCC1 == seq32 )
{
// did we already process the anih32 chunk?
if (m_nFrames == 0)
return false; // seq chunks should always be placed after anih chunk
wxASSERT(m_info.GetCount() == m_nFrames);
for (size_t i=0; i<m_nFrames; i++)
{
stream.Read(&FCC2, 4);
m_info[i].m_imageIndex = wxINT32_SWAP_ON_BE(FCC2);
}
}
else if ( FCC1 == ico32 )
{
// use DoLoadFile() and not LoadFile()!
wxImage image;
if (!sm_handler.DoLoadFile(&image, stream, false /* verbose */, -1))
return false;
m_images.Add(image);
}
else
stream.SeekI(stream.TellI() + datalen);
// try to read next data chunk:
stream.Read(&FCC1, 4);
}
if (m_nFrames==0)
return false;
if (m_nFrames==m_images.GetCount())
{
// if no SEQ chunk is available, display the frames in the order
// they were loaded
for (size_t i=0; i<m_nFrames; i++)
if (m_info[i].m_imageIndex == -1)
m_info[i].m_imageIndex = i;
}
// if some frame has an invalid delay, use the global delay given in the
// ANI header
for (size_t i=0; i<m_nFrames; i++)
if (m_info[i].m_delay == 0)
m_info[i].m_delay = globaldelay;
// if the header did not contain a valid frame size, try to grab
// it from the size of the first frame (all frames are of the same size)
if (m_szAnimation.GetWidth() == 0 ||
m_szAnimation.GetHeight() == 0)
m_szAnimation = wxSize(m_images[0].GetWidth(), m_images[0].GetHeight());
return m_szAnimation!=wxDefaultSize;
}
#endif // wxUSE_STREAMS && wxUSE_GIF

35
src/common/animatecmn.cpp Normal file
View File

@@ -0,0 +1,35 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/common/animatecmn.cpp
// Purpose: wxAnimation and wxAnimationCtrl
// Author: Francesco Montorsi
// Modified By:
// Created: 24/09/2006
// Id: $Id$
// Copyright: (c) Francesco Montorsi
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if wxUSE_ANIMATIONCTRL
#include "wx/animate.h"
const wxChar wxAnimationCtrlNameStr[] = wxT("animationctrl");
// global object
wxAnimation wxNullAnimation;
//wxIMPLEMENT_HANDLER_LIST_MANAGER(wxAnimation,
IMPLEMENT_ABSTRACT_CLASS(wxAnimationBase, wxObject)
IMPLEMENT_ABSTRACT_CLASS(wxAnimationCtrlBase, wxControl)
#endif // wxUSE_ANIMATIONCTRL

View File

@@ -26,6 +26,34 @@
#include "wx/gifdecod.h"
//---------------------------------------------------------------------------
// GIFImage
//---------------------------------------------------------------------------
// internal class for storing GIF image data
class GIFImage
{
public:
// def ctor
GIFImage();
unsigned int w; /* width */
unsigned int h; /* height */
unsigned int left; /* x coord (in logical screen) */
unsigned int top; /* y coord (in logical screen) */
int transparent; /* transparent color index (-1 = none) */
wxAnimationDisposal disposal; /* disposal method */
long delay; /* delay in ms (-1 = unused) */
unsigned char *p; /* bitmap */
unsigned char *pal; /* palette */
unsigned int ncolours; /* number of colours */
DECLARE_NO_COPY_CLASS(GIFImage)
};
//---------------------------------------------------------------------------
// GIFImage constructor
//---------------------------------------------------------------------------
@@ -36,33 +64,19 @@ GIFImage::GIFImage()
left = 0;
top = 0;
transparent = 0;
disposal = 0;
disposal = wxANIM_DONOTREMOVE;
delay = -1;
p = (unsigned char *) NULL;
pal = (unsigned char *) NULL;
ncolours = 0;
next = (GIFImage *) NULL;
prev = (GIFImage *) NULL;
}
//---------------------------------------------------------------------------
// wxGIFDecoder constructor and destructor
//---------------------------------------------------------------------------
wxGIFDecoder::wxGIFDecoder(wxInputStream *s, bool anim)
wxGIFDecoder::wxGIFDecoder()
{
m_f = s;
m_anim = anim;
m_background = -1;
m_screenw = 0;
m_screenh = 0;
m_pimage = NULL;
m_pfirst = NULL;
m_plast = NULL;
m_image = 0;
m_nimages = 0;
}
wxGIFDecoder::~wxGIFDecoder()
@@ -72,24 +86,17 @@ wxGIFDecoder::~wxGIFDecoder()
void wxGIFDecoder::Destroy()
{
GIFImage *pimg, *paux;
pimg = m_pfirst;
while (pimg != NULL)
wxASSERT(m_nFrames==m_frames.GetCount());
for (size_t i=0; i<m_nFrames; i++)
{
paux = pimg->next;
free(pimg->p);
free(pimg->pal);
delete pimg;
pimg = paux;
GIFImage *f = (GIFImage*)m_frames[i];
free(f->p);
free(f->pal);
delete f;
}
m_pimage = NULL;
m_pfirst = NULL;
m_plast = NULL;
m_image = 0;
m_nimages = 0;
m_frames.Clear();
m_nFrames = 0;
}
@@ -99,7 +106,7 @@ void wxGIFDecoder::Destroy()
// This function was designed by Vaclav Slavik
bool wxGIFDecoder::ConvertToImage(wxImage *image) const
bool wxGIFDecoder::ConvertToImage(size_t frame, wxImage *image) const
{
unsigned char *src, *dst, *pal;
unsigned long i;
@@ -109,20 +116,21 @@ bool wxGIFDecoder::ConvertToImage(wxImage *image) const
image->Destroy();
/* create the image */
image->Create(GetWidth(), GetHeight());
wxSize sz = GetFrameSize(frame);
image->Create(sz.GetWidth(), sz.GetHeight());
if (!image->Ok())
return false;
pal = GetPalette();
src = GetData();
pal = GetPalette(frame);
src = GetData(frame);
dst = image->GetData();
transparent = GetTransparentColour();
transparent = GetTransparentColour(frame);
/* set transparent colour mask */
if (transparent != -1)
{
for (i = 0; i < GetNcolours(); i++)
for (i = 0; i < GetNcolours(frame); i++)
{
if ((pal[3 * i + 0] == 255) &&
(pal[3 * i + 1] == 0) &&
@@ -153,11 +161,12 @@ bool wxGIFDecoder::ConvertToImage(wxImage *image) const
b[i] = pal[3*i + 2];
}
image->SetPalette(wxPalette(GetNcolours(), r, g, b));
image->SetPalette(wxPalette(GetNcolours(frame), r, g, b));
#endif // wxUSE_PALETTE
/* copy image data */
for (i = 0; i < (GetWidth() * GetHeight()); i++, src++)
unsigned long npixel = sz.GetWidth() * sz.GetHeight();
for (i = 0; i < npixel; i++, src++)
{
*(dst++) = pal[3 * (*src) + 0];
*(dst++) = pal[3 * (*src) + 1];
@@ -172,118 +181,36 @@ bool wxGIFDecoder::ConvertToImage(wxImage *image) const
// Data accessors
//---------------------------------------------------------------------------
#define GetFrame(n) ((GIFImage*)m_frames[n])
// Get data for current frame
int wxGIFDecoder::GetFrameIndex() const { return m_image; }
unsigned char* wxGIFDecoder::GetData() const { return (m_pimage->p); }
unsigned char* wxGIFDecoder::GetPalette() const { return (m_pimage->pal); }
unsigned int wxGIFDecoder::GetNcolours() const { return (m_pimage->ncolours); }
unsigned int wxGIFDecoder::GetWidth() const { return (m_pimage->w); }
unsigned int wxGIFDecoder::GetHeight() const { return (m_pimage->h); }
unsigned int wxGIFDecoder::GetTop() const { return (m_pimage->top); }
unsigned int wxGIFDecoder::GetLeft() const { return (m_pimage->left); }
int wxGIFDecoder::GetTransparentColour() const { return (m_pimage->transparent); }
int wxGIFDecoder::GetDisposalMethod() const { return (m_pimage->disposal); }
long wxGIFDecoder::GetDelay() const { return (m_pimage->delay); }
// Get global data
unsigned int wxGIFDecoder::GetLogicalScreenWidth() const { return m_screenw; }
unsigned int wxGIFDecoder::GetLogicalScreenHeight() const { return m_screenh; }
int wxGIFDecoder::GetBackgroundColour() const { return m_background; }
int wxGIFDecoder::GetNumberOfFrames() const { return m_nimages; }
bool wxGIFDecoder::IsAnimation() const { return (m_nimages > 1); }
//---------------------------------------------------------------------------
// Functions to move through the animation
//---------------------------------------------------------------------------
bool wxGIFDecoder::GoFirstFrame()
wxSize wxGIFDecoder::GetFrameSize(size_t frame) const
{
if (!IsAnimation())
return false;
m_image = 1;
m_pimage = m_pfirst;
return true;
return wxSize(GetFrame(frame)->w, GetFrame(frame)->h);
}
bool wxGIFDecoder::GoLastFrame()
wxPoint wxGIFDecoder::GetFramePosition(size_t frame) const
{
if (!IsAnimation())
return false;
m_image = m_nimages;
m_pimage = m_plast;
return true;
return wxPoint(GetFrame(frame)->left, GetFrame(frame)->top);
}
bool wxGIFDecoder::GoNextFrame(bool cyclic)
wxAnimationDisposal wxGIFDecoder::GetDisposalMethod(size_t frame) const
{
if (!IsAnimation())
return false;
if ((m_image < m_nimages) || (cyclic))
{
m_pimage = m_pimage->next;
m_image++;
if (!m_pimage)
{
m_image = 1;
m_pimage = m_pfirst;
}
return true;
}
else
return false;
return GetFrame(frame)->disposal;
}
bool wxGIFDecoder::GoPrevFrame(bool cyclic)
long wxGIFDecoder::GetDelay(size_t frame) const
{
if (!IsAnimation())
return false;
if ((m_image > 1) || (cyclic))
{
m_pimage = m_pimage->prev;
m_image--;
if (!m_pimage)
{
m_image = m_nimages;
m_pimage = m_plast;
}
return true;
}
else
return false;
return GetFrame(frame)->delay;
}
bool wxGIFDecoder::GoFrame(int which)
{
if (!IsAnimation())
return false;
unsigned char* wxGIFDecoder::GetData(size_t frame) const { return (GetFrame(frame)->p); }
unsigned char* wxGIFDecoder::GetPalette(size_t frame) const { return (GetFrame(frame)->pal); }
unsigned int wxGIFDecoder::GetNcolours(size_t frame) const { return (GetFrame(frame)->ncolours); }
int wxGIFDecoder::GetTransparentColour(size_t frame) const { return (GetFrame(frame)->transparent); }
if ((which >= 1) && (which <= m_nimages))
{
m_image = 1;
m_pimage = m_pfirst;
while (m_image < which)
{
m_image++;
m_pimage = m_pimage->next;
}
return true;
}
else
return false;
}
//---------------------------------------------------------------------------
@@ -293,12 +220,11 @@ bool wxGIFDecoder::GoFrame(int which)
// getcode:
// Reads the next code from the file stream, with size 'bits'
//
int wxGIFDecoder::getcode(int bits, int ab_fin)
int wxGIFDecoder::getcode(wxInputStream& stream, int bits, int ab_fin)
{
unsigned int mask; /* bit mask */
unsigned int code; /* code (result) */
/* get remaining bits from last byte read */
mask = (1 << bits) - 1;
code = (m_lastbyte >> (8 - m_restbits)) & mask;
@@ -309,7 +235,7 @@ int wxGIFDecoder::getcode(int bits, int ab_fin)
/* if no bytes left in this block, read the next block */
if (m_restbyte == 0)
{
m_restbyte = (unsigned char)m_f->GetC();
m_restbyte = (unsigned char)stream.GetC();
/* Some encoders are a bit broken: instead of issuing
* an end-of-image symbol (ab_fin) they come up with
@@ -323,8 +249,8 @@ int wxGIFDecoder::getcode(int bits, int ab_fin)
}
/* prefetch data */
m_f->Read((void *) m_buffer, m_restbyte);
if (m_f->LastRead() != m_restbyte)
stream.Read((void *) m_buffer, m_restbyte);
if (stream.LastRead() != m_restbyte)
{
code = ab_fin;
return code;
@@ -354,7 +280,7 @@ int wxGIFDecoder::getcode(int bits, int ab_fin)
// is 'bits'. Supports interlaced images (interl == 1).
// Returns wxGIF_OK (== 0) on success, or an error code if something
// fails (see header file for details)
int wxGIFDecoder::dgif(GIFImage *img, int interl, int bits)
wxGIFErrorCode wxGIFDecoder::dgif(wxInputStream& stream, GIFImage *img, int interl, int bits)
{
static const int allocSize = 4096 + 1;
int *ab_prefix = new int[allocSize]; /* alphabet (prefixes) */
@@ -410,7 +336,7 @@ int wxGIFDecoder::dgif(GIFImage *img, int interl, int bits)
do
{
/* get next code */
readcode = code = getcode(ab_bits, ab_fin);
readcode = code = getcode(stream, ab_bits, ab_fin);
/* end of image? */
if (code == ab_fin) break;
@@ -629,20 +555,20 @@ as an End of Information itself)
// CanRead:
// Returns true if the file looks like a valid GIF, false otherwise.
//
bool wxGIFDecoder::CanRead()
bool wxGIFDecoder::CanRead(wxInputStream &stream) const
{
unsigned char buf[3];
if ( !m_f->Read(buf, WXSIZEOF(buf)) )
if ( !stream.Read(buf, WXSIZEOF(buf)) )
return false;
m_f->SeekI(-(wxFileOffset)WXSIZEOF(buf), wxFromCurrent);
stream.SeekI(-(wxFileOffset)WXSIZEOF(buf), wxFromCurrent);
return memcmp(buf, "GIF", WXSIZEOF(buf)) == 0;
}
// ReadGIF:
// LoadGIF:
// Reads and decodes one or more GIF images, depending on whether
// animated GIF support is enabled. Can read GIFs with any bit
// size (color depth), but the output images are always expanded
@@ -651,48 +577,48 @@ bool wxGIFDecoder::CanRead()
// (== 0) on success, or an error code if something fails (see
// header file for details)
//
int wxGIFDecoder::ReadGIF()
wxGIFErrorCode wxGIFDecoder::LoadGIF(wxInputStream& stream)
{
unsigned int global_ncolors = 0;
int bits, interl, transparent, disposal, i;
int bits, interl, transparent, i;
wxAnimationDisposal disposal;
long size;
long delay;
unsigned char type = 0;
unsigned char pal[768];
unsigned char buf[16];
GIFImage **ppimg;
GIFImage *pimg, *pprev;
bool anim = true;
/* check GIF signature */
if (!CanRead())
if (!CanRead(stream))
return wxGIF_INVFORMAT;
/* check for animated GIF support (ver. >= 89a) */
static const size_t headerSize = (3 + 3);
m_f->Read(buf, headerSize);
if (m_f->LastRead() != headerSize)
stream.Read(buf, headerSize);
if (stream.LastRead() != headerSize)
{
return wxGIF_INVFORMAT;
}
if (memcmp(buf + 3, "89a", 3) < 0)
{
m_anim = false;
anim = false;
}
/* read logical screen descriptor block (LSDB) */
static const size_t lsdbSize = (2 + 2 + 1 + 1 + 1);
m_f->Read(buf, lsdbSize);
if (m_f->LastRead() != lsdbSize)
stream.Read(buf, lsdbSize);
if (stream.LastRead() != lsdbSize)
{
return wxGIF_INVFORMAT;
}
m_screenw = buf[0] + 256 * buf[1];
m_screenh = buf[2] + 256 * buf[3];
m_szAnimation.SetWidth( buf[0] + 256 * buf[1] );
m_szAnimation.SetHeight( buf[2] + 256 * buf[3] );
if ((m_screenw == 0) || (m_screenh == 0))
if ((m_szAnimation.GetWidth() == 0) || (m_szAnimation.GetHeight() == 0))
{
return wxGIF_INVFORMAT;
}
@@ -700,32 +626,30 @@ int wxGIFDecoder::ReadGIF()
/* load global color map if available */
if ((buf[4] & 0x80) == 0x80)
{
m_background = buf[5];
int backgroundColIndex = buf[5];
global_ncolors = 2 << (buf[4] & 0x07);
size_t numBytes = 3 * global_ncolors;
m_f->Read(pal, numBytes);
if (m_f->LastRead() != numBytes)
stream.Read(pal, numBytes);
if (stream.LastRead() != numBytes)
{
return wxGIF_INVFORMAT;
}
m_background.Set(pal[backgroundColIndex*3 + 0],
pal[backgroundColIndex*3 + 1],
pal[backgroundColIndex*3 + 2]);
}
/* transparent colour, disposal method and delay default to unused */
transparent = -1;
disposal = -1;
disposal = wxANIM_UNSPECIFIED;
delay = -1;
/* read images */
ppimg = &m_pfirst;
pprev = NULL;
pimg = NULL;
bool done = false;
while (!done)
{
type = (unsigned char)m_f->GetC();
type = (unsigned char)stream.GetC();
/*
If the end of file has been reached (or an error) and a ";"
@@ -735,7 +659,7 @@ int wxGIFDecoder::ReadGIF()
be decoded as far as possible). returning wxGIF_TRUNCATED is not
possible here since some init code is done after this loop.
*/
if (m_f->Eof())// || !m_f->IsOk())
if (stream.Eof())// || !stream.IsOk())
{
/*
type is set to some bogus value, so there's no
@@ -753,12 +677,12 @@ int wxGIFDecoder::ReadGIF()
/* extension block? */
if (type == 0x21)
{
if (((unsigned char)m_f->GetC()) == 0xF9)
if (((unsigned char)stream.GetC()) == 0xF9)
/* graphics control extension, parse it */
{
static const size_t gceSize = 6;
m_f->Read(buf, gceSize);
if (m_f->LastRead() != gceSize)
stream.Read(buf, gceSize);
if (stream.LastRead() != gceSize)
{
Destroy();
return wxGIF_INVFORMAT;
@@ -772,15 +696,15 @@ int wxGIFDecoder::ReadGIF()
transparent = buf[4];
/* read disposal method */
disposal = ((buf[1] & 0x1C) >> 2) - 1;
disposal = (wxAnimationDisposal)(((buf[1] & 0x1C) >> 2) - 1);
}
else
/* other extension, skip */
{
while ((i = (unsigned char)m_f->GetC()) != 0)
while ((i = (unsigned char)stream.GetC()) != 0)
{
m_f->SeekI(i, wxFromCurrent);
if (m_f->Eof())
stream.SeekI(i, wxFromCurrent);
if (stream.Eof())
{
done = true;
break;
@@ -793,7 +717,7 @@ int wxGIFDecoder::ReadGIF()
if (type == 0x2C)
{
/* allocate memory for IMAGEN struct */
pimg = (*ppimg) = new GIFImage();
GIFImage *pimg = new GIFImage();
if (pimg == NULL)
{
@@ -803,8 +727,8 @@ int wxGIFDecoder::ReadGIF()
/* fill in the data */
static const size_t idbSize = (2 + 2 + 2 + 2 + 1);
m_f->Read(buf, idbSize);
if (m_f->LastRead() != idbSize)
stream.Read(buf, idbSize);
if (stream.LastRead() != idbSize)
{
Destroy();
return wxGIF_INVFORMAT;
@@ -819,7 +743,8 @@ int wxGIFDecoder::ReadGIF()
pimg->w = buf[4] + 256 * buf[5];
pimg->h = buf[6] + 256 * buf[7];
if ((pimg->w == 0) || (pimg->w > m_screenw) || (pimg->h == 0) || (pimg->h > m_screenh))
if ((pimg->w == 0) || (pimg->w > (unsigned int)m_szAnimation.GetWidth()) ||
(pimg->h == 0) || (pimg->h > (unsigned int)m_szAnimation.GetHeight()))
{
Destroy();
return wxGIF_INVFORMAT;
@@ -831,10 +756,6 @@ int wxGIFDecoder::ReadGIF()
pimg->transparent = transparent;
pimg->disposal = disposal;
pimg->delay = delay;
pimg->next = NULL;
pimg->prev = pprev;
pprev = pimg;
ppimg = &pimg->next;
/* allocate memory for image and palette */
pimg->p = (unsigned char *) malloc((size_t)size);
@@ -851,9 +772,9 @@ int wxGIFDecoder::ReadGIF()
{
unsigned int local_ncolors = 2 << (buf[8] & 0x07);
size_t numBytes = 3 * local_ncolors;
m_f->Read(pimg->pal, numBytes);
stream.Read(pimg->pal, numBytes);
pimg->ncolours = local_ncolors;
if (m_f->LastRead() != numBytes)
if (stream.LastRead() != numBytes)
{
Destroy();
return wxGIF_INVFORMAT;
@@ -866,7 +787,7 @@ int wxGIFDecoder::ReadGIF()
}
/* get initial code size from first byte in raster data */
bits = (unsigned char)m_f->GetC();
bits = (unsigned char)stream.GetC();
if (bits == 0)
{
Destroy();
@@ -874,56 +795,54 @@ int wxGIFDecoder::ReadGIF()
}
/* decode image */
int result = dgif(pimg, interl, bits);
wxGIFErrorCode result = dgif(stream, pimg, interl, bits);
if (result != wxGIF_OK)
{
Destroy();
return result;
}
m_nimages++;
/* add the image to our frame array */
m_frames.Add((void*)pimg);
m_nFrames++;
/* if this is not an animated GIF, exit after first image */
if (!m_anim)
if (!anim)
done = true;
}
}
if (m_nimages <= 0)
if (m_nFrames <= 0)
{
Destroy();
return wxGIF_INVFORMAT;
}
/* setup image pointers */
m_image = 1;
m_plast = pimg;
m_pimage = m_pfirst;
/* try to read to the end of the stream */
while (type != 0x3B)
{
if (!m_f->IsOk())
if (!stream.IsOk())
return wxGIF_TRUNCATED;
type = (unsigned char)m_f->GetC();
type = (unsigned char)stream.GetC();
if (type == 0x21)
{
/* extension type */
(void) m_f->GetC();
(void) stream.GetC();
/* skip all data */
while ((i = (unsigned char)m_f->GetC()) != 0)
while ((i = (unsigned char)stream.GetC()) != 0)
{
m_f->SeekI(i, wxFromCurrent);
stream.SeekI(i, wxFromCurrent);
}
}
else if (type == 0x2C)
{
/* image descriptor block */
static const size_t idbSize = (2 + 2 + 2 + 2 + 1);
m_f->Read(buf, idbSize);
if (m_f->LastRead() != idbSize)
stream.Read(buf, idbSize);
if (stream.LastRead() != idbSize)
{
Destroy();
return wxGIF_INVFORMAT;
@@ -933,10 +852,10 @@ int wxGIFDecoder::ReadGIF()
if ((buf[8] & 0x80) == 0x80)
{
unsigned int local_ncolors = 2 << (buf[8] & 0x07);
wxFileOffset pos = m_f->TellI();
wxFileOffset pos = stream.TellI();
wxFileOffset numBytes = 3 * local_ncolors;
m_f->SeekI(numBytes, wxFromCurrent);
if (m_f->TellI() != (pos + numBytes))
stream.SeekI(numBytes, wxFromCurrent);
if (stream.TellI() != (pos + numBytes))
{
Destroy();
return wxGIF_INVFORMAT;
@@ -944,12 +863,12 @@ int wxGIFDecoder::ReadGIF()
}
/* initial code size */
(void) m_f->GetC();
(void) stream.GetC();
/* skip all data */
while ((i = (unsigned char)m_f->GetC()) != 0)
while ((i = (unsigned char)stream.GetC()) != 0)
{
m_f->SeekI(i, wxFromCurrent);
stream.SeekI(i, wxFromCurrent);
}
}
else if ((type != 0x3B) && (type != 00)) /* testing */

View File

@@ -32,6 +32,7 @@
#include "wx/filefn.h"
#include "wx/wfstream.h"
#include "wx/quantize.h"
#include "wx/anidecod.h"
// For memcpy
#include <string.h>
@@ -1324,160 +1325,28 @@ IMPLEMENT_DYNAMIC_CLASS(wxANIHandler, wxCURHandler)
#if wxUSE_STREAMS
bool wxANIHandler::LoadFile(wxImage *image, wxInputStream& stream,
bool verbose, int index)
bool WXUNUSED(verbose), int index)
{
wxInt32 FCC1, FCC2;
wxUint32 datalen;
wxInt32 riff32;
memcpy( &riff32, "RIFF", 4 );
wxInt32 list32;
memcpy( &list32, "LIST", 4 );
wxInt32 ico32;
memcpy( &ico32, "icon", 4 );
int iIcon = 0;
stream.SeekI(0);
stream.Read(&FCC1, 4);
if ( FCC1 != riff32 )
wxANIDecoder decoder;
if (!decoder.Load(stream))
return false;
// we have a riff file:
while (stream.IsOk())
{
// we always have a data size
stream.Read(&datalen, 4);
datalen = wxINT32_SWAP_ON_BE(datalen) ;
//data should be padded to make even number of bytes
if (datalen % 2 == 1) datalen ++ ;
//now either data or a FCC
if ( (FCC1 == riff32) || (FCC1 == list32) )
{
stream.Read(&FCC2, 4);
}
else
{
if (FCC1 == ico32 && iIcon >= index)
{
return DoLoadFile(image, stream, verbose, -1);
}
else
{
stream.SeekI(stream.TellI() + datalen);
if ( FCC1 == ico32 )
iIcon ++;
}
}
// try to read next data chunk:
stream.Read(&FCC1, 4);
}
return false;
return decoder.ConvertToImage(index != -1 ? (size_t)index : 0, image);
}
bool wxANIHandler::DoCanRead(wxInputStream& stream)
{
wxInt32 FCC1, FCC2;
wxUint32 datalen ;
wxInt32 riff32;
memcpy( &riff32, "RIFF", 4 );
wxInt32 list32;
memcpy( &list32, "LIST", 4 );
wxInt32 ico32;
memcpy( &ico32, "icon", 4 );
wxInt32 anih32;
memcpy( &anih32, "anih", 4 );
stream.SeekI(0);
if ( !stream.Read(&FCC1, 4) )
return false;
if ( FCC1 != riff32 )
return false;
// we have a riff file:
while ( stream.IsOk() )
{
if ( FCC1 == anih32 )
return true;
// we always have a data size:
stream.Read(&datalen, 4);
datalen = wxINT32_SWAP_ON_BE(datalen) ;
//data should be padded to make even number of bytes
if (datalen % 2 == 1) datalen ++ ;
// now either data or a FCC:
if ( (FCC1 == riff32) || (FCC1 == list32) )
{
stream.Read(&FCC2, 4);
}
else
{
stream.SeekI(stream.TellI() + datalen);
}
// try to read next data chunk:
if ( !stream.Read(&FCC1, 4) )
{
// reading failed -- either EOF or IO error, bail out anyhow
return false;
}
}
return false;
wxANIDecoder decod;
return decod.CanRead(stream);
}
int wxANIHandler::GetImageCount(wxInputStream& stream)
{
wxInt32 FCC1, FCC2;
wxUint32 datalen ;
wxInt32 riff32;
memcpy( &riff32, "RIFF", 4 );
wxInt32 list32;
memcpy( &list32, "LIST", 4 );
wxInt32 ico32;
memcpy( &ico32, "icon", 4 );
wxInt32 anih32;
memcpy( &anih32, "anih", 4 );
stream.SeekI(0);
stream.Read(&FCC1, 4);
if ( FCC1 != riff32 )
wxANIDecoder decoder;
if (!decoder.Load(stream))
return wxNOT_FOUND;
// we have a riff file:
while ( stream.IsOk() )
{
// we always have a data size:
stream.Read(&datalen, 4);
datalen = wxINT32_SWAP_ON_BE(datalen) ;
//data should be padded to make even number of bytes
if (datalen % 2 == 1) datalen ++ ;
// now either data or a FCC:
if ( (FCC1 == riff32) || (FCC1 == list32) )
{
stream.Read(&FCC2, 4);
}
else
{
if ( FCC1 == anih32 )
{
wxUint32 *pData = new wxUint32[datalen/4];
stream.Read(pData, datalen);
int nIcons = wxINT32_SWAP_ON_BE(*(pData + 1));
delete[] pData;
return nIcons;
}
else
stream.SeekI(stream.TellI() + datalen);
}
// try to read next data chunk:
stream.Read(&FCC1, 4);
}
return wxNOT_FOUND;
return decoder.GetFrameCount();
}
#endif // wxUSE_STREAMS

View File

@@ -37,12 +37,12 @@ bool wxGIFHandler::LoadFile(wxImage *image, wxInputStream& stream,
bool verbose, int index)
{
wxGIFDecoder *decod;
int error;
wxGIFErrorCode error;
bool ok = true;
// image->Destroy();
decod = new wxGIFDecoder(&stream, true);
error = decod->ReadGIF();
decod = new wxGIFDecoder();
error = decod->LoadGIF(stream);
if ((error != wxGIF_OK) && (error != wxGIF_TRUNCATED))
{
@@ -71,24 +71,9 @@ bool wxGIFHandler::LoadFile(wxImage *image, wxInputStream& stream,
/* go on; image data is OK */
}
if (index != -1)
{
// We're already on index = 0 by default. So no need
// to call GoFrame(0) then. On top of that GoFrame doesn't
// accept an index of 0. (Instead GoFirstFrame() should be used)
// Also if the gif image has only one frame, calling GoFrame(0)
// fails because GoFrame() only works with gif animations.
// (It fails if IsAnimation() returns false)
// All valid reasons to NOT call GoFrame when index equals 0.
if (index != 0)
{
ok = decod->GoFrame(index);
}
}
if (ok)
{
ok = decod->ConvertToImage(image);
ok = decod->ConvertToImage(index != -1 ? (size_t)index : 0, image);
}
else
{
@@ -111,8 +96,8 @@ bool wxGIFHandler::SaveFile( wxImage * WXUNUSED(image),
bool wxGIFHandler::DoCanRead( wxInputStream& stream )
{
wxGIFDecoder decod(&stream);
return decod.CanRead();
wxGIFDecoder decod;
return decod.CanRead(stream);
}
#endif // wxUSE_STREAMS

549
src/generic/animateg.cpp Normal file
View File

@@ -0,0 +1,549 @@
///////////////////////////////////////////////////////////////////////////////
// Name: animateg.cpp
// Purpose: wxAnimation and wxAnimationCtrl
// Author: Julian Smart and Guillermo Rodriguez Garcia
// Modified by: Francesco Montorsi
// Created: 13/8/99
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Guillermo Rodriguez Garcia
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif //__BORLANDC__
#if wxUSE_ANIMATIONCTRL
#include "wx/log.h"
#include "wx/wfstream.h"
#include "wx/image.h"
#include "wx/gifdecod.h"
#include "wx/anidecod.h"
#include "wx/dcmemory.h"
#include "wx/dc.h"
#include "wx/dcclient.h"
#include "wx/animate.h"
#include "wx/animdecod.h"
#include <wx/listimpl.cpp>
WX_DEFINE_LIST(wxAnimationDecoderList);
wxAnimationDecoderList wxAnimation::sm_handlers;
// ----------------------------------------------------------------------------
// wxAnimation
// ----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxAnimation, wxAnimationBase)
#define M_ANIMDATA wx_static_cast(wxAnimationDecoder*, m_refData)
wxSize wxAnimation::GetSize() const
{
wxCHECK_MSG( IsOk(), wxDefaultSize, wxT("invalid animation") );
return M_ANIMDATA->GetAnimationSize();
}
size_t wxAnimation::GetFrameCount() const
{
wxCHECK_MSG( IsOk(), 0, wxT("invalid animation") );
return M_ANIMDATA->GetFrameCount();
}
wxImage wxAnimation::GetFrame(size_t i) const
{
wxCHECK_MSG( IsOk(), wxNullImage, wxT("invalid animation") );
wxImage ret;
if (!M_ANIMDATA->ConvertToImage(i, &ret))
return wxNullImage;
return ret;
}
int wxAnimation::GetDelay(size_t i) const
{
wxCHECK_MSG( IsOk(), 0, wxT("invalid animation") );
return M_ANIMDATA->GetDelay(i);
}
wxPoint wxAnimation::GetFramePosition(size_t frame) const
{
wxCHECK_MSG( IsOk(), wxDefaultPosition, wxT("invalid animation") );
return M_ANIMDATA->GetFramePosition(frame);
}
wxAnimationDisposal wxAnimation::GetDisposalMethod(size_t frame) const
{
wxCHECK_MSG( IsOk(), wxANIM_UNSPECIFIED, wxT("invalid animation") );
return M_ANIMDATA->GetDisposalMethod(frame);
}
wxColour wxAnimation::GetBackgroundColour() const
{
wxCHECK_MSG( IsOk(), wxNullColour, wxT("invalid animation") );
return M_ANIMDATA->GetBackgroundColour();
}
bool wxAnimation::LoadFile(const wxString& filename, wxAnimationType type)
{
wxFileInputStream stream(filename);
if (!stream.Ok())
return false;
return Load(stream, type);
}
bool wxAnimation::Load(wxInputStream &stream, wxAnimationType type)
{
UnRef();
const wxAnimationDecoder *handler;
if ( type == wxANIMATION_TYPE_ANY )
{
for ( wxAnimationDecoderList::compatibility_iterator node = sm_handlers.GetFirst();
node; node = node->GetNext() )
{
handler=(const wxAnimationDecoder*)node->GetData();
if ( handler->CanRead(stream) )
{
// do a copy of the handler from the static list which we will own
// as our reference data
m_refData = handler->Clone();
return M_ANIMDATA->Load(stream);
}
}
wxLogWarning( _("No handler found for animation type.") );
return false;
}
handler = FindHandler(type);
// do a copy of the handler from the static list which we will own
// as our reference data
m_refData = handler->Clone();
if (handler == NULL)
{
wxLogWarning( _("No animation handler for type %ld defined."), type );
return false;
}
if (stream.IsSeekable() && !M_ANIMDATA->CanRead(stream))
{
wxLogError(_("Animation file is not of type %ld."), type);
return false;
}
else
return M_ANIMDATA->Load(stream);
}
// ----------------------------------------------------------------------------
// animation decoders
// ----------------------------------------------------------------------------
void wxAnimation::AddHandler( wxAnimationDecoder *handler )
{
// Check for an existing handler of the type being added.
if (FindHandler( handler->GetType() ) == 0)
{
sm_handlers.Append( handler );
}
else
{
// This is not documented behaviour, merely the simplest 'fix'
// for preventing duplicate additions. If someone ever has
// a good reason to add and remove duplicate handlers (and they
// may) we should probably refcount the duplicates.
// also an issue in InsertHandler below.
wxLogDebug( _T("Adding duplicate animation handler for '%d' type"),
handler->GetType() );
delete handler;
}
}
void wxAnimation::InsertHandler( wxAnimationDecoder *handler )
{
// Check for an existing handler of the type being added.
if (FindHandler( handler->GetType() ) == 0)
{
sm_handlers.Insert( handler );
}
else
{
// see AddHandler for additional comments.
wxLogDebug( _T("Inserting duplicate animation handler for '%d' type"),
handler->GetType() );
delete handler;
}
}
const wxAnimationDecoder *wxAnimation::FindHandler( wxAnimationType animType )
{
wxAnimationDecoderList::compatibility_iterator node = sm_handlers.GetFirst();
while (node)
{
const wxAnimationDecoder *handler = (const wxAnimationDecoder *)node->GetData();
if (handler->GetType() == animType) return handler;
node = node->GetNext();
}
return 0;
}
void wxAnimation::InitStandardHandlers()
{
AddHandler(new wxGIFDecoder);
AddHandler(new wxANIDecoder);
}
void wxAnimation::CleanUpHandlers()
{
wxAnimationDecoderList::compatibility_iterator node = sm_handlers.GetFirst();
while (node)
{
wxAnimationDecoder *handler = (wxAnimationDecoder *)node->GetData();
wxAnimationDecoderList::compatibility_iterator next = node->GetNext();
delete handler;
node = next;
}
sm_handlers.Clear();
}
// A module to allow wxAnimation initialization/cleanup
// without calling these functions from app.cpp or from
// the user's application.
class wxAnimationModule: public wxModule
{
DECLARE_DYNAMIC_CLASS(wxAnimationModule)
public:
wxAnimationModule() {}
bool OnInit() { wxAnimation::InitStandardHandlers(); return true; };
void OnExit() { wxAnimation::CleanUpHandlers(); };
};
IMPLEMENT_DYNAMIC_CLASS(wxAnimationModule, wxModule)
// ----------------------------------------------------------------------------
// wxAnimationCtrl
// ----------------------------------------------------------------------------
IMPLEMENT_CLASS(wxAnimationCtrl, wxAnimationCtrlBase)
BEGIN_EVENT_TABLE(wxAnimationCtrl, wxAnimationCtrlBase)
EVT_PAINT(wxAnimationCtrl::OnPaint)
EVT_SIZE(wxAnimationCtrl::OnSize)
EVT_TIMER(wxID_ANY, wxAnimationCtrl::OnTimer)
END_EVENT_TABLE()
bool wxAnimationCtrl::Create(wxWindow *parent, wxWindowID id,
const wxAnimation& animation, const wxPoint& pos,
const wxSize& size, long style, const wxString& name)
{
m_animation = animation;
m_currentFrame = 0;
m_looped = true;
m_isPlaying = false;
m_useWinBackgroundColour = false;
m_timer.SetOwner(this);
if (!wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name))
return false;
// by default we get the same background colour of our parent
SetBackgroundColour(parent->GetBackgroundColour());
return true;
}
wxAnimationCtrl::~wxAnimationCtrl()
{
Stop();
}
bool wxAnimationCtrl::LoadFile(const wxString& filename, wxAnimationType type)
{
wxAnimation anim;
if (!anim.LoadFile(filename, type) ||
!anim.IsOk())
return false;
SetAnimation(anim);
return true;
}
wxSize wxAnimationCtrl::DoGetBestSize() const
{
if (m_animation.IsOk() && !this->HasFlag(wxAC_NO_AUTORESIZE))
return m_animation.GetSize();
return wxSize(100, 100);
}
void wxAnimationCtrl::SetAnimation(const wxAnimation& animation)
{
if (IsPlaying())
Stop();
m_animation = animation;
if (m_animation.GetBackgroundColour() == wxNullColour)
SetUseWindowBackgroundColour();
if (!this->HasFlag(wxAC_NO_AUTORESIZE))
FitToAnimation();
// display first frame
m_currentFrame = 0;
if (m_animation.IsOk())
RebuildBackingStoreUpToFrame(0);
else
{
// clear to
wxMemoryDC dc;
dc.SelectObject(m_backingStore);
// Draw the background
DisposeToBackground(dc);
}
Refresh();
}
void wxAnimationCtrl::FitToAnimation()
{
SetSize(m_animation.GetSize());
}
// ----------------------------------------------------------------------------
// wxAnimationCtrl - stop/play methods
// ----------------------------------------------------------------------------
void wxAnimationCtrl::Stop()
{
// leave current frame displayed until Play() is called again
m_timer.Stop();
m_isPlaying = false;
}
bool wxAnimationCtrl::Play(bool looped)
{
if (!m_animation.IsOk())
return false;
int oldframe = m_currentFrame;
m_looped = looped;
m_currentFrame = 0;
m_isPlaying = true;
// small optimization: if the back store was already updated to the
// first frame, don't rebuild it
if (oldframe != 0)
RebuildBackingStoreUpToFrame(0);
// DrawCurrentFrame() will use our updated backing store
wxClientDC clientDC(this);
DrawCurrentFrame(clientDC);
// start the timer
int delay = m_animation.GetDelay(0);
if (delay == 0)
delay = 1; // 0 is invalid timeout for wxTimer.
m_timer.Start(delay);
return true;
}
// ----------------------------------------------------------------------------
// wxAnimationCtrl - rendering methods
// ----------------------------------------------------------------------------
void wxAnimationCtrl::RebuildBackingStoreUpToFrame(size_t frame)
{
// if we've not created the backing store yet or it's too
// small, then recreate it
wxSize sz = m_animation.GetSize(),
winsz = GetClientSize();
int w = wxMin(sz.GetWidth(), winsz.GetWidth());
int h = wxMin(sz.GetHeight(), winsz.GetHeight());
if (m_backingStore.GetWidth() < w ||
m_backingStore.GetHeight() < h)
m_backingStore.Create(w, h);
wxMemoryDC dc;
dc.SelectObject(m_backingStore);
// Draw the background
DisposeToBackground(dc);
// Draw all intermediate frames that haven't been removed from the animation
for (size_t i = 0; i < frame; i++)
{
if (m_animation.GetDisposalMethod(i) == wxANIM_DONOTREMOVE ||
m_animation.GetDisposalMethod(i) == wxANIM_UNSPECIFIED)
{
DrawFrame(dc, i);
}
}
// finally draw this frame
DrawFrame(dc, frame);
dc.SelectObject(wxNullBitmap);
}
void wxAnimationCtrl::IncrementalUpdateBackingStore()
{
wxMemoryDC dc;
dc.SelectObject(m_backingStore);
// OPTIMIZATION:
// since wxAnimationCtrl can only play animations forward, without skipping
// frames, we can be sure that m_backingStore contains the m_currentFrame-1
// frame and thus we just need to dispose the m_currentFrame-1 frame and
// render the m_currentFrame-th one.
if (m_currentFrame == 0)
{
// before drawing the first frame always dispose to bg colour
DisposeToBackground(dc);
}
else
{
switch (m_animation.GetDisposalMethod(m_currentFrame-1))
{
case wxANIM_TOBACKGROUND:
DisposeToBackground(dc);
break;
case wxANIM_TOPREVIOUS:
// this disposal should never be used too often.
// E.g. GIF specification explicitely say to keep the usage of this
// disposal limited to the minimum.
// In fact it may require a lot of time to restore
if (m_currentFrame == 1)
{
// if 0-th frame disposal is to restore to previous frame,
// the best we can do is to restore to background
DisposeToBackground(dc);
}
else
RebuildBackingStoreUpToFrame(m_currentFrame-2);
break;
case wxANIM_DONOTREMOVE:
case wxANIM_UNSPECIFIED:
break;
}
}
// now just draw the current frame on the top of the backing store
DrawFrame(dc, m_currentFrame);
dc.SelectObject(wxNullBitmap);
}
void wxAnimationCtrl::DrawFrame(wxDC &dc, size_t frame)
{
// PERFORMANCE NOTE:
// this draw stuff is not as fast as possible: the wxAnimationDecoder
// needs first to convert from its internal format to wxImage RGB24;
// the wxImage is then converted as a wxBitmap and finally blitted.
// If wxAnimationDecoder had a function to convert directly from its
// internal format to a port-specific wxBitmap, it would be somewhat faster.
wxBitmap bmp(m_animation.GetFrame(frame));
dc.DrawBitmap(bmp, m_animation.GetFramePosition(frame),
true /* use mask */);
}
void wxAnimationCtrl::DrawCurrentFrame(wxDC& dc)
{
wxASSERT(m_backingStore.Ok());
// m_backingStore always contains the current frame
dc.DrawBitmap(m_backingStore, 0, 0);
}
void wxAnimationCtrl::DisposeToBackground(wxDC& dc)
{
wxBrush brush(IsUsingWindowBackgroundColour() ?
this->GetBackgroundColour() : m_animation.GetBackgroundColour(), wxSOLID);
dc.SetBackground(brush);
dc.Clear();
}
// ----------------------------------------------------------------------------
// wxAnimationCtrl - event handlers
// ----------------------------------------------------------------------------
void wxAnimationCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
{
// VERY IMPORTANT: the wxPaintDC *must* be created in any case
wxPaintDC dc(this);
// both if we are playing or not, we need to refresh the current frame
if (m_backingStore.Ok())
DrawCurrentFrame(dc);
//else: m_animation is not valid and thus we don't have a valid backing store...
}
void wxAnimationCtrl::OnTimer(wxTimerEvent &WXUNUSED(event))
{
m_currentFrame++;
if (m_currentFrame == m_animation.GetFrameCount())
{
// Should a non-looped animation display the last frame?
if (!m_looped)
{
m_timer.Stop();
m_isPlaying = false;
return;
}
else
m_currentFrame = 0; // let's restart
}
IncrementalUpdateBackingStore();
wxClientDC dc(this);
DrawCurrentFrame(dc);
// Set the timer for the next frame
int delay = m_animation.GetDelay(m_currentFrame);
if (delay == 0)
delay = 1; // 0 is invalid timeout for wxTimer.
m_timer.Start(delay);
}
void wxAnimationCtrl::OnSize(wxSizeEvent &WXUNUSED(event))
{
// NB: resizing an animation control may take a lot of time
// for big animations as the backing store must be
// extended and rebuilt. Try to avoid it!!
if (m_animation.IsOk())
RebuildBackingStoreUpToFrame(m_currentFrame);
}
#endif // wxUSE_ANIMATIONCTRL

339
src/gtk/animate.cpp Normal file
View File

@@ -0,0 +1,339 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/gtk/animate.cpp
// Purpose: wxAnimation and wxAnimationCtrl
// Author: Francesco Montorsi
// Modified By:
// Created: 24/09/2006
// Id: $Id$
// Copyright: (c) Francesco Montorsi
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if wxUSE_ANIMATIONCTRL
#include "wx/animate.h"
#include <gtk/gtk.h>
#include <gtk/gtkimage.h>
// ============================================================================
// implementation
// ============================================================================
void gdk_pixbuf_area_updated(GdkPixbufLoader *loader,
gint x,
gint y,
gint width,
gint height,
wxAnimation *anim)
{
if (anim && anim->GetPixbuf() == NULL)
{
// we need to set the pixbuf only if this is the first time this signal
// has been called!
anim->SetPixbuf(gdk_pixbuf_loader_get_animation(loader));
}
}
//-----------------------------------------------------------------------------
// wxAnimation
//-----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxAnimation, wxAnimationBase)
bool wxAnimation::LoadFile(const wxString &name, wxAnimationType WXUNUSED(type))
{
UnRef();
m_pixbuf = gdk_pixbuf_animation_new_from_file(name.c_str(), NULL);
return IsOk();
}
bool wxAnimation::Load(wxInputStream &stream, wxAnimationType type)
{
UnRef();
char anim_type[12];
switch (type)
{
case wxANIMATION_TYPE_GIF:
strcpy(anim_type, "gif");
break;
case wxANIMATION_TYPE_ANI:
strcpy(anim_type, "ani");
break;
default:
break;
}
// create a GdkPixbufLoader
GError *error = NULL;
GdkPixbufLoader *loader;
if (type != wxANIMATION_TYPE_INVALID && type != wxANIMATION_TYPE_ANY)
loader = gdk_pixbuf_loader_new_with_type(anim_type, &error);
else
loader = gdk_pixbuf_loader_new();
if (!loader)
{
wxLogDebug(wxT("Could not create the loader for '%s' animation type"), anim_type);
return false;
}
// connect to loader signals
g_signal_connect(loader, "area-updated", G_CALLBACK(gdk_pixbuf_area_updated), this);
//m_bLoadComplete = false;
guchar buf[2048];
while (stream.IsOk())
{
// read a chunk of data
stream.Read(buf, 2048);
// fetch all data into the loader
if (!gdk_pixbuf_loader_write(loader, buf, stream.LastRead(), &error))
{
gdk_pixbuf_loader_close(loader, &error);
wxLogDebug(wxT("Could not write to the loader"));
return false;
}
}
// load complete
if (!gdk_pixbuf_loader_close(loader, &error))
{
wxLogDebug(wxT("Could not close the loader"));
return false;
}
//m_bLoadComplete = true;
// wait until we get the last area_updated signal
return true;
}
//-----------------------------------------------------------------------------
// wxAnimationCtrl
//-----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxAnimationCtrl, wxAnimationCtrlBase)
BEGIN_EVENT_TABLE(wxAnimationCtrl, wxAnimationCtrlBase)
EVT_TIMER(wxID_ANY, wxAnimationCtrl::OnTimer)
END_EVENT_TABLE()
bool wxAnimationCtrl::Create( wxWindow *parent, wxWindowID id,
const wxAnimation& anim,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name)
{
m_needParent = true;
m_acceptsFocus = true;
if (!PreCreation( parent, pos, size ) ||
!wxControl::CreateBase(parent, id, pos, size, style & wxWINDOW_STYLE_MASK,
wxDefaultValidator, name))
{
wxFAIL_MSG( wxT("wxAnimationCtrl creation failed") );
return false;
}
SetWindowStyle(style);
m_widget = gtk_image_new();
gtk_widget_show( GTK_WIDGET(m_widget) );
m_parent->DoAddChild( this );
PostCreation(size);
SetBestSize(size);
m_anim = NULL;
m_iter = NULL;
m_bPlaying = false;
if (anim != wxNullAnimation)
SetAnimation(anim);
// init the timer used for animation
m_timer.SetOwner(this);
return true;
}
wxAnimationCtrl::~wxAnimationCtrl()
{
ResetAnim();
ResetIter();
}
bool wxAnimationCtrl::LoadFile(const wxString &filename, wxAnimationType type)
{
wxAnimation anim;
if (!anim.LoadFile(filename, type))
return false;
SetAnimation(anim);
return true;
}
void wxAnimationCtrl::SetAnimation(const wxAnimation &anim)
{
if (IsPlaying())
Stop();
ResetAnim();
ResetIter();
// copy underlying GdkPixbuf object
m_anim = anim.GetPixbuf();
// m_anim may be null in case wxNullAnimation has been passed
if (m_anim)
{
// add a reference to the GdkPixbufAnimation
g_object_ref(m_anim);
if (!this->HasFlag(wxAC_NO_AUTORESIZE))
FitToAnimation();
// display first frame
gtk_image_set_from_pixbuf(GTK_IMAGE(m_widget),
gdk_pixbuf_animation_get_static_image(m_anim));
}
else
{
// we need to clear the control to the background colour
ClearToBackgroundColour();
}
}
void wxAnimationCtrl::FitToAnimation()
{
if (!m_anim)
return;
int w = gdk_pixbuf_animation_get_width(m_anim),
h = gdk_pixbuf_animation_get_height(m_anim);
// update our size to fit animation
//if (w > 0 && h > 0)
// gtk_widget_set_size_request(m_widget, w, h);
SetSize(w, h);
}
bool wxAnimationCtrl::Play()
{
if (m_anim == NULL)
return false;
// init the iterator and start a one-shot timer
ResetIter();
m_iter = gdk_pixbuf_animation_get_iter (m_anim, NULL);
m_bPlaying = true;
// gdk_pixbuf_animation_iter_get_delay_time() may return -1 which means
// that the timer should not start
int n = gdk_pixbuf_animation_iter_get_delay_time(m_iter);
if (n >= 0)
m_timer.Start(n, true);
return true;
}
void wxAnimationCtrl::Stop()
{
// leave current frame displayed until Play() is called again
if (IsPlaying())
m_timer.Stop();
m_bPlaying = false;
}
bool wxAnimationCtrl::IsPlaying() const
{
// NB: we cannot just return m_timer.IsRunning() as this would not
// be safe as e.g. if we are displaying a frame forever,
// then we are "officially" still playing the animation, but
// the timer is not running anymore...
return m_bPlaying;
}
wxSize wxAnimationCtrl::DoGetBestSize() const
{
if (m_anim && !this->HasFlag(wxAC_NO_AUTORESIZE))
{
return wxSize(gdk_pixbuf_animation_get_width(m_anim),
gdk_pixbuf_animation_get_height(m_anim));
}
return wxSize(100,100);
}
void wxAnimationCtrl::ClearToBackgroundColour()
{
wxSize sz = GetClientSize();
GdkPixbuf *newpix = gdk_pixbuf_new(GDK_COLORSPACE_RGB, false, 8,
sz.GetWidth(), sz.GetHeight());
if (!newpix)
return;
wxColour clr = GetBackgroundColour();
guint32 col = (clr.Red() << 24) | (clr.Green() << 16) | (clr.Blue() << 8);
gdk_pixbuf_fill(newpix, col);
wxLogDebug(wxT("Clearing to background %s"), clr.GetAsString().c_str());
gtk_image_set_from_pixbuf(GTK_IMAGE(m_widget), newpix);
g_object_unref(newpix);
}
bool wxAnimationCtrl::SetBackgroundColour( const wxColour &colour )
{
// wxWindowGTK::SetBackgroundColour works but since our m_widget is a GtkImage
// it won't show the background colour unlike the user would expect.
// Thus we clear the GtkImage contents to the background colour...
if (!wxControl::SetBackgroundColour(colour))
return false;
ClearToBackgroundColour();
return true;
}
//-----------------------------------------------------------------------------
// wxAnimationCtrl - event handlers
//-----------------------------------------------------------------------------
void wxAnimationCtrl::OnTimer(wxTimerEvent &ev)
{
wxASSERT(m_iter != NULL);
// gdk_pixbuf_animation_iter_advance() will automatically restart
// the animation, if necessary and we have no way to know !!
if (gdk_pixbuf_animation_iter_advance(m_iter, NULL))
{
// start a new one-shot timer
int n = gdk_pixbuf_animation_iter_get_delay_time(m_iter);
if (n >= 0)
m_timer.Start(n, true);
gtk_image_set_from_pixbuf(GTK_IMAGE(m_widget),
gdk_pixbuf_animation_iter_get_pixbuf(m_iter));
}
else
{
// no need to update the m_widget yet
m_timer.Start(10, true);
}
}
#endif // wxUSE_ANIMATIONCTRL

View File

@@ -309,6 +309,7 @@ private:
wxGIFDecoder *m_gifDecoder;
wxTimer *m_gifTimer;
int m_physX, m_physY;
size_t m_nCurrFrame;
#endif
double m_scale;
wxHtmlImageMapCell *m_imageMap;
@@ -358,6 +359,7 @@ wxHtmlImageCell::wxHtmlImageCell(wxHtmlWindowInterface *windowIface,
m_gifDecoder = NULL;
m_gifTimer = NULL;
m_physX = m_physY = wxDefaultCoord;
m_nCurrFrame = 0;
#endif
if ( m_bmpW && m_bmpH )
@@ -374,11 +376,11 @@ wxHtmlImageCell::wxHtmlImageCell(wxHtmlWindowInterface *windowIface,
(input->GetLocation().Matches(wxT("*.gif")) ||
input->GetLocation().Matches(wxT("*.GIF"))) )
{
m_gifDecoder = new wxGIFDecoder(s, true);
if ( m_gifDecoder->ReadGIF() == wxGIF_OK )
m_gifDecoder = new wxGIFDecoder();
if ( m_gifDecoder->LoadGIF(*s) == wxGIF_OK )
{
wxImage img;
if ( m_gifDecoder->ConvertToImage(&img) )
if ( m_gifDecoder->ConvertToImage(0, &img) )
SetImage(img);
readImg = false;
@@ -386,7 +388,7 @@ wxHtmlImageCell::wxHtmlImageCell(wxHtmlWindowInterface *windowIface,
if ( m_gifDecoder->IsAnimation() )
{
m_gifTimer = new wxGIFTimer(this);
m_gifTimer->Start(m_gifDecoder->GetDelay(), true);
m_gifTimer->Start(m_gifDecoder->GetDelay(0), true);
}
else
{
@@ -481,7 +483,10 @@ void wxHtmlImageCell::AdvanceAnimation(wxTimer *timer)
{
wxImage img;
m_gifDecoder->GoNextFrame(true);
// advance current frame
m_nCurrFrame++;
if (m_nCurrFrame == m_gifDecoder->GetFrameCount())
m_nCurrFrame = 0;
if ( m_physX == wxDefaultCoord )
{
@@ -499,17 +504,16 @@ void wxHtmlImageCell::AdvanceAnimation(wxTimer *timer)
wxRect rect(pos, wxSize(m_Width, m_Height));
if ( win->GetClientRect().Intersects(rect) &&
m_gifDecoder->ConvertToImage(&img) )
m_gifDecoder->ConvertToImage(m_nCurrFrame, &img) )
{
#if !defined(__WXMSW__) || wxUSE_WXDIB
if ( (int)m_gifDecoder->GetWidth() != m_Width ||
(int)m_gifDecoder->GetHeight() != m_Height ||
m_gifDecoder->GetLeft() != 0 || m_gifDecoder->GetTop() != 0 )
if ( m_gifDecoder->GetFrameSize(m_nCurrFrame) != wxSize(m_Width, m_Height) ||
m_gifDecoder->GetFramePosition(m_nCurrFrame) != wxPoint(0, 0) )
{
wxBitmap bmp(img);
wxMemoryDC dc;
dc.SelectObject(*m_bitmap);
dc.DrawBitmap(bmp, m_gifDecoder->GetLeft(), m_gifDecoder->GetTop(),
dc.DrawBitmap(bmp, m_gifDecoder->GetFramePosition(m_nCurrFrame),
true /* use mask */);
}
else
@@ -518,7 +522,7 @@ void wxHtmlImageCell::AdvanceAnimation(wxTimer *timer)
win->Refresh(img.HasMask(), &rect);
}
timer->Start(m_gifDecoder->GetDelay(), true);
timer->Start(m_gifDecoder->GetDelay(m_nCurrFrame), true);
}
void wxHtmlImageCell::Layout(int w)

View File

@@ -301,6 +301,14 @@ SOURCE=.\common\accesscmn.cpp
# End Source File
# Begin Source File
SOURCE=.\common\anidecod.cpp
# End Source File
# Begin Source File
SOURCE=.\common\animatecmn.cpp
# End Source File
# Begin Source File
SOURCE=.\common\appbase.cpp
# End Source File
# Begin Source File
@@ -971,6 +979,10 @@ SOURCE=.\generic\aboutdlgg.cpp
# End Source File
# Begin Source File
SOURCE=.\generic\animateg.cpp
# End Source File
# Begin Source File
SOURCE=.\generic\bmpcboxg.cpp
# End Source File
# Begin Source File
@@ -2159,6 +2171,14 @@ SOURCE=..\include\wx\afterstd.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\anidecod.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\animate.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\app.h
# End Source File
# Begin Source File
@@ -4103,6 +4123,10 @@ SOURCE=..\include\wx\generic\accel.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\generic\animate.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\generic\bmpcbox.h
# End Source File
# Begin Source File