1#----------------------------------------------------------------------
2# Name:        wx.lib.flashwin
3# Purpose:     A class that allows the use of the Shockwave Flash
4#              ActiveX control
5#
6# Author:      Robin Dunn
7#
8# Created:     22-March-2004
9# Copyright:   (c) 2008-2018 by Total Control Software
10# Licence:     wxWindows license
11# Tags:        phoenix-port
12#----------------------------------------------------------------------
13
14import wx
15import wx.lib.activex
16import comtypes.client as cc
17
18import sys
19if not hasattr(sys, 'frozen'):
20    cc.GetModule( ('{D27CDB6B-AE6D-11CF-96B8-444553540000}', 1, 0) )
21from comtypes.gen import ShockwaveFlashObjects
22
23
24clsID = '{D27CDB6E-AE6D-11CF-96B8-444553540000}'
25progID = 'ShockwaveFlash.ShockwaveFlash.1'
26
27
28
29class FlashWindow(wx.lib.activex.ActiveXCtrl):
30    def __init__(self, parent, id=-1, pos=wx.DefaultPosition,
31                 size=wx.DefaultSize, style=0, name='FlashWindow'):
32        wx.lib.activex.ActiveXCtrl.__init__(self, parent, progID,
33                                            id, pos, size, style, name)
34
35    def SetZoomRect(self, left, top, right, bottom):
36        return self.ctrl.SetZoomRect(left, top, right, bottom)
37
38    def Zoom(self, factor):
39        return self.ctrl.Zoom(factor)
40
41    def Pan(self, x, y, mode):
42        return self.ctrl.Pan(x, y, mode)
43
44    def Play(self):
45        return self.ctrl.Play()
46
47    def Stop(self):
48        return self.ctrl.Stop()
49
50    def Back(self):
51        return self.ctrl.Back()
52
53    def Forward(self):
54        return self.ctrl.Forward()
55
56    def Rewind(self):
57        return self.ctrl.Rewind()
58
59    def StopPlay(self):
60        return self.ctrl.StopPlay()
61
62    def GotoFrame(self, FrameNum):
63        return self.ctrl.GotoFrame(FrameNum)
64
65    def CurrentFrame(self):
66        return self.ctrl.CurrentFrame()
67
68    def IsPlaying(self):
69        return self.ctrl.IsPlaying()
70
71    def PercentLoaded(self):
72        return self.ctrl.PercentLoaded()
73
74    def FrameLoaded(self, FrameNum):
75        return self.ctrl.FrameLoaded(FrameNum)
76
77    def FlashVersion(self):
78        return self.ctrl.FlashVersion()
79
80    def LoadMovie(self, layer, url):
81        return self.ctrl.LoadMovie(layer, url)
82
83    def TGotoFrame(self, target, FrameNum):
84        return self.ctrl.TGotoFrame(target, FrameNum)
85
86    def TGotoLabel(self, target, label):
87        return self.ctrl.TGotoLabel(target, label)
88
89    def TCurrentFrame(self, target):
90        return self.ctrl.TCurrentFrame(target)
91
92    def TCurrentLabel(self, target):
93        return self.ctrl.TCurrentLabel(target)
94
95    def TPlay(self, target):
96        return self.ctrl.TPlay(target)
97
98    def TStopPlay(self, target):
99        return self.ctrl.TStopPlay(target)
100
101    def SetVariable(self, name, value):
102        return self.ctrl.SetVariable(name, value)
103
104    def GetVariable(self, name):
105        return self.ctrl.GetVariable(name)
106
107    def TSetProperty(self, target, property, value):
108        return self.ctrl.TSetProperty(target, property, value)
109
110    def TGetProperty(self, target, property):
111        return self.ctrl.TGetProperty(target, property)
112
113    def TCallFrame(self, target, FrameNum):
114        return self.ctrl.TCallFrame(target, FrameNum)
115
116    def TCallLabel(self, target, label):
117        return self.ctrl.TCallLabel(target, label)
118
119    def TSetPropertyNum(self, target, property, value):
120        return self.ctrl.TSetPropertyNum(target, property, value)
121
122    def TGetPropertyNum(self, target, property):
123        return self.ctrl.TGetPropertyNum(target, property)
124
125    def TGetPropertyAsNumber(self, target, property):
126        return self.ctrl.TGetPropertyAsNumber(target, property)
127
128    # Getters, Setters and properties
129    def _get_ReadyState(self):
130        return self.ctrl.ReadyState
131    readystate = property(_get_ReadyState, None)
132
133    def _get_TotalFrames(self):
134        return self.ctrl.TotalFrames
135    totalframes = property(_get_TotalFrames, None)
136
137    def _get_Playing(self):
138        return self.ctrl.Playing
139    def _set_Playing(self, Playing):
140        self.ctrl.Playing = Playing
141    playing = property(_get_Playing, _set_Playing)
142
143    def _get_Quality(self):
144        return self.ctrl.Quality
145    def _set_Quality(self, Quality):
146        self.ctrl.Quality = Quality
147    quality = property(_get_Quality, _set_Quality)
148
149    def _get_ScaleMode(self):
150        return self.ctrl.ScaleMode
151    def _set_ScaleMode(self, ScaleMode):
152        self.ctrl.ScaleMode = ScaleMode
153    scalemode = property(_get_ScaleMode, _set_ScaleMode)
154
155    def _get_AlignMode(self):
156        return self.ctrl.AlignMode
157    def _set_AlignMode(self, AlignMode):
158        self.ctrl.AlignMode = AlignMode
159    alignmode = property(_get_AlignMode, _set_AlignMode)
160
161    def _get_BackgroundColor(self):
162        return self.ctrl.BackgroundColor
163    def _set_BackgroundColor(self, BackgroundColor):
164        self.ctrl.BackgroundColor = BackgroundColor
165    backgroundcolor = property(_get_BackgroundColor, _set_BackgroundColor)
166
167    def _get_Loop(self):
168        return self.ctrl.Loop
169    def _set_Loop(self, Loop):
170        self.ctrl.Loop = Loop
171    loop = property(_get_Loop, _set_Loop)
172
173    def _get_Movie(self):
174        return self.ctrl.Movie
175    def _set_Movie(self, Movie):
176        self.ctrl.Movie = Movie
177    movie = property(_get_Movie, _set_Movie)
178
179    def _get_FrameNum(self):
180        return self.ctrl.FrameNum
181    def _set_FrameNum(self, FrameNum):
182        self.ctrl.FrameNum = FrameNum
183    framenum = property(_get_FrameNum, _set_FrameNum)
184
185    def _get_WMode(self):
186        return self.ctrl.WMode
187    def _set_WMode(self, WMode):
188        self.ctrl.WMode = WMode
189    wmode = property(_get_WMode, _set_WMode)
190
191    def _get_SAlign(self):
192        return self.ctrl.SAlign
193    def _set_SAlign(self, SAlign):
194        self.ctrl.SAlign = SAlign
195    salign = property(_get_SAlign, _set_SAlign)
196
197    def _get_Menu(self):
198        return self.ctrl.Menu
199    def _set_Menu(self, Menu):
200        self.ctrl.Menu = Menu
201    menu = property(_get_Menu, _set_Menu)
202
203    def _get_Base(self):
204        return self.ctrl.Base
205    def _set_Base(self, Base):
206        self.ctrl.Base = Base
207    base = property(_get_Base, _set_Base)
208
209    def _get_Scale(self):
210        return self.ctrl.Scale
211    def _set_Scale(self, Scale):
212        self.ctrl.Scale = Scale
213    scale = property(_get_Scale, _set_Scale)
214
215    def _get_DeviceFont(self):
216        return self.ctrl.DeviceFont
217    def _set_DeviceFont(self, DeviceFont):
218        self.ctrl.DeviceFont = DeviceFont
219    devicefont = property(_get_DeviceFont, _set_DeviceFont)
220
221    def _get_EmbedMovie(self):
222        return self.ctrl.EmbedMovie
223    def _set_EmbedMovie(self, EmbedMovie):
224        self.ctrl.EmbedMovie = EmbedMovie
225    embedmovie = property(_get_EmbedMovie, _set_EmbedMovie)
226
227    def _get_BGColor(self):
228        return self.ctrl.BGColor
229    def _set_BGColor(self, BGColor):
230        self.ctrl.BGColor = BGColor
231    bgcolor = property(_get_BGColor, _set_BGColor)
232
233    def _get_Quality2(self):
234        return self.ctrl.Quality2
235    def _set_Quality2(self, Quality2):
236        self.ctrl.Quality2 = Quality2
237    quality2 = property(_get_Quality2, _set_Quality2)
238
239    def _get_SWRemote(self):
240        return self.ctrl.SWRemote
241    def _set_SWRemote(self, SWRemote):
242        self.ctrl.SWRemote = SWRemote
243    swremote = property(_get_SWRemote, _set_SWRemote)
244
245    def _get_FlashVars(self):
246        return self.ctrl.FlashVars
247    def _set_FlashVars(self, FlashVars):
248        self.ctrl.FlashVars = FlashVars
249    flashvars = property(_get_FlashVars, _set_FlashVars)
250
251    def _get_AllowScriptAccess(self):
252        return self.ctrl.AllowScriptAccess
253    def _set_AllowScriptAccess(self, AllowScriptAccess):
254        self.ctrl.AllowScriptAccess = AllowScriptAccess
255    allowscriptaccess = property(_get_AllowScriptAccess, _set_AllowScriptAccess)
256
257    def _get_MovieData(self):
258        return self.ctrl.MovieData
259    def _set_MovieData(self, MovieData):
260        self.ctrl.MovieData = MovieData
261    moviedata = property(_get_MovieData, _set_MovieData)
262
263