]> git.saurik.com Git - wxWidgets.git/blob - wxPython/contrib/activex/activex.py
put wx-dev as (temporary?) maintainer
[wxWidgets.git] / wxPython / contrib / activex / activex.py
1 # This file was created automatically by SWIG 1.3.29.
2 # Don't modify this file, modify the SWIG interface instead.
3
4 import _activex
5 import new
6 new_instancemethod = new.instancemethod
7 def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
8 if (name == "thisown"): return self.this.own(value)
9 if (name == "this"):
10 if type(value).__name__ == 'PySwigObject':
11 self.__dict__[name] = value
12 return
13 method = class_type.__swig_setmethods__.get(name,None)
14 if method: return method(self,value)
15 if (not static) or hasattr(self,name):
16 self.__dict__[name] = value
17 else:
18 raise AttributeError("You cannot add attributes to %s" % self)
19
20 def _swig_setattr(self,class_type,name,value):
21 return _swig_setattr_nondynamic(self,class_type,name,value,0)
22
23 def _swig_getattr(self,class_type,name):
24 if (name == "thisown"): return self.this.own()
25 method = class_type.__swig_getmethods__.get(name,None)
26 if method: return method(self)
27 raise AttributeError,name
28
29 def _swig_repr(self):
30 try: strthis = "proxy of " + self.this.__repr__()
31 except: strthis = ""
32 return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
33
34 import types
35 try:
36 _object = types.ObjectType
37 _newclass = 1
38 except AttributeError:
39 class _object : pass
40 _newclass = 0
41 del types
42
43
44 def _swig_setattr_nondynamic_method(set):
45 def set_attr(self,name,value):
46 if (name == "thisown"): return self.this.own(value)
47 if hasattr(self,name) or (name == "this"):
48 set(self,name,value)
49 else:
50 raise AttributeError("You cannot add attributes to %s" % self)
51 return set_attr
52
53
54 import _core
55 wx = _core
56 __docfilter__ = wx.__DocFilter(globals())
57 #---------------------------------------------------------------------------
58
59 class CLSID(object):
60 """
61 This class wraps the Windows CLSID structure and is used to
62 specify the class of the ActiveX object that is to be created. A
63 CLSID can be constructed from either a ProgID string, (such as
64 'WordPad.Document.1') or a classID string, (such as
65 '{CA8A9783-280D-11CF-A24D-444553540000}').
66 """
67 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
68 __repr__ = _swig_repr
69 def __init__(self, *args, **kwargs):
70 """
71 __init__(self, String id) -> CLSID
72
73 This class wraps the Windows CLSID structure and is used to
74 specify the class of the ActiveX object that is to be created. A
75 CLSID can be constructed from either a ProgID string, (such as
76 'WordPad.Document.1') or a classID string, (such as
77 '{CA8A9783-280D-11CF-A24D-444553540000}').
78 """
79 _activex.CLSID_swiginit(self,_activex.new_CLSID(*args, **kwargs))
80 __swig_destroy__ = _activex.delete_CLSID
81 __del__ = lambda self : None;
82 def GetCLSIDString(*args, **kwargs):
83 """GetCLSIDString(self) -> String"""
84 return _activex.CLSID_GetCLSIDString(*args, **kwargs)
85
86 def GetProgIDString(*args, **kwargs):
87 """GetProgIDString(self) -> String"""
88 return _activex.CLSID_GetProgIDString(*args, **kwargs)
89
90 def __str__(self): return self.GetCLSIDString()
91 _activex.CLSID_swigregister(CLSID)
92
93 #---------------------------------------------------------------------------
94
95 class ParamX(object):
96 """Proxy of C++ ParamX class"""
97 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
98 def __init__(self): raise AttributeError, "No constructor defined"
99 __repr__ = _swig_repr
100 flags = property(_activex.ParamX_flags_get)
101 isPtr = property(_activex.ParamX_isPtr_get)
102 isSafeArray = property(_activex.ParamX_isSafeArray_get)
103 isOptional = property(_activex.ParamX_isOptional_get)
104 vt = property(_activex.ParamX_vt_get)
105 name = property(_activex.ParamX_name_get)
106 vt_type = property(_activex.ParamX_vt_type_get)
107
108 isIn = property(_activex.ParamX_IsIn)
109
110 isOut = property(_activex.ParamX_IsOut)
111
112 isRetVal = property(_activex.ParamX_IsRetVal)
113
114 _activex.ParamX_swigregister(ParamX)
115
116 class FuncX(object):
117 """Proxy of C++ FuncX class"""
118 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
119 def __init__(self): raise AttributeError, "No constructor defined"
120 __repr__ = _swig_repr
121 name = property(_activex.FuncX_name_get)
122 memid = property(_activex.FuncX_memid_get)
123 hasOut = property(_activex.FuncX_hasOut_get)
124 retType = property(_activex.FuncX_retType_get)
125 params = property(_activex.FuncX_params_get)
126 _activex.FuncX_swigregister(FuncX)
127
128 class PropX(object):
129 """Proxy of C++ PropX class"""
130 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
131 def __init__(self): raise AttributeError, "No constructor defined"
132 __repr__ = _swig_repr
133 name = property(_activex.PropX_name_get)
134 memid = property(_activex.PropX_memid_get)
135 type = property(_activex.PropX_type_get)
136 arg = property(_activex.PropX_arg_get)
137 putByRef = property(_activex.PropX_putByRef_get)
138 canGet = property(_activex.PropX_CanGet)
139
140 canSet = property(_activex.PropX_CanSet)
141
142 _activex.PropX_swigregister(PropX)
143
144 class ParamXArray(object):
145 """Proxy of C++ ParamXArray class"""
146 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
147 def __init__(self): raise AttributeError, "No constructor defined"
148 __repr__ = _swig_repr
149 def __nonzero__(*args, **kwargs):
150 """__nonzero__(self) -> bool"""
151 return _activex.ParamXArray___nonzero__(*args, **kwargs)
152
153 def __len__(*args, **kwargs):
154 """__len__(self) -> int"""
155 return _activex.ParamXArray___len__(*args, **kwargs)
156
157 def __getitem__(*args, **kwargs):
158 """__getitem__(self, int idx) -> ParamX"""
159 return _activex.ParamXArray___getitem__(*args, **kwargs)
160
161 _activex.ParamXArray_swigregister(ParamXArray)
162
163 class FuncXArray(object):
164 """Proxy of C++ FuncXArray class"""
165 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
166 def __init__(self): raise AttributeError, "No constructor defined"
167 __repr__ = _swig_repr
168 def __nonzero__(*args, **kwargs):
169 """__nonzero__(self) -> bool"""
170 return _activex.FuncXArray___nonzero__(*args, **kwargs)
171
172 def __len__(*args, **kwargs):
173 """__len__(self) -> int"""
174 return _activex.FuncXArray___len__(*args, **kwargs)
175
176 def __getitem__(*args, **kwargs):
177 """__getitem__(self, int idx) -> FuncX"""
178 return _activex.FuncXArray___getitem__(*args, **kwargs)
179
180 _activex.FuncXArray_swigregister(FuncXArray)
181
182 class PropXArray(object):
183 """Proxy of C++ PropXArray class"""
184 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
185 def __init__(self): raise AttributeError, "No constructor defined"
186 __repr__ = _swig_repr
187 def __nonzero__(*args, **kwargs):
188 """__nonzero__(self) -> bool"""
189 return _activex.PropXArray___nonzero__(*args, **kwargs)
190
191 def __len__(*args, **kwargs):
192 """__len__(self) -> int"""
193 return _activex.PropXArray___len__(*args, **kwargs)
194
195 def __getitem__(*args, **kwargs):
196 """__getitem__(self, int idx) -> PropX"""
197 return _activex.PropXArray___getitem__(*args, **kwargs)
198
199 _activex.PropXArray_swigregister(PropXArray)
200
201 #---------------------------------------------------------------------------
202
203 class ActiveXWindow(_core.Window):
204 """
205 ActiveXWindow derives from wxWindow and the constructor accepts a
206 CLSID for the ActiveX Control that should be created. The
207 ActiveXWindow class simply adds methods that allow you to query
208 some of the TypeInfo exposed by the ActiveX object, and also to
209 get/set properties or call methods by name. The Python
210 implementation automatically handles converting parameters and
211 return values to/from the types expected by the ActiveX code as
212 specified by the TypeInfo.
213
214 """
215 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
216 __repr__ = _swig_repr
217 def __init__(self, *args, **kwargs):
218 """
219 __init__(self, Window parent, CLSID clsId, int id=-1, Point pos=DefaultPosition,
220 Size size=DefaultSize, long style=0,
221 String name=PanelNameStr) -> ActiveXWindow
222
223 Creates an ActiveX control from the clsID given and makes it act
224 as much like a regular wx.Window as possible.
225 """
226 _activex.ActiveXWindow_swiginit(self,_activex.new_ActiveXWindow(*args, **kwargs))
227 self._setOORInfo(self)
228
229 def GetCLSID(*args, **kwargs):
230 """
231 GetCLSID(self) -> CLSID
232
233 Return the CLSID used to construct this ActiveX window
234 """
235 return _activex.ActiveXWindow_GetCLSID(*args, **kwargs)
236
237 def GetAXEventCount(*args, **kwargs):
238 """
239 GetAXEventCount(self) -> int
240
241 Number of events defined for this control
242 """
243 return _activex.ActiveXWindow_GetAXEventCount(*args, **kwargs)
244
245 def GetAXEventDesc(*args, **kwargs):
246 """
247 GetAXEventDesc(self, int idx) -> FuncX
248
249 Returns event description by index
250 """
251 return _activex.ActiveXWindow_GetAXEventDesc(*args, **kwargs)
252
253 def GetAXPropCount(*args, **kwargs):
254 """
255 GetAXPropCount(self) -> int
256
257 Number of properties defined for this control
258 """
259 return _activex.ActiveXWindow_GetAXPropCount(*args, **kwargs)
260
261 def GetAXPropDesc(*args):
262 """
263 GetAXPropDesc(self, int idx) -> PropX
264 GetAXPropDesc(self, String name) -> PropX
265 """
266 return _activex.ActiveXWindow_GetAXPropDesc(*args)
267
268 def GetAXMethodCount(*args, **kwargs):
269 """
270 GetAXMethodCount(self) -> int
271
272 Number of methods defined for this control
273 """
274 return _activex.ActiveXWindow_GetAXMethodCount(*args, **kwargs)
275
276 def GetAXMethodDesc(*args):
277 """
278 GetAXMethodDesc(self, int idx) -> FuncX
279 GetAXMethodDesc(self, String name) -> FuncX
280 """
281 return _activex.ActiveXWindow_GetAXMethodDesc(*args)
282
283 def GetAXEvents(*args, **kwargs):
284 """
285 GetAXEvents(self) -> FuncXArray
286
287 Returns a sequence of FuncX objects describing the events
288 available for this ActiveX object.
289 """
290 return _activex.ActiveXWindow_GetAXEvents(*args, **kwargs)
291
292 def GetAXMethods(*args, **kwargs):
293 """
294 GetAXMethods(self) -> FuncXArray
295
296 Returns a sequence of FuncX objects describing the methods
297 available for this ActiveX object.
298 """
299 return _activex.ActiveXWindow_GetAXMethods(*args, **kwargs)
300
301 def GetAXProperties(*args, **kwargs):
302 """
303 GetAXProperties(self) -> PropXArray
304
305 Returns a sequence of PropX objects describing the properties
306 available for this ActiveX object.
307 """
308 return _activex.ActiveXWindow_GetAXProperties(*args, **kwargs)
309
310 def SetAXProp(*args, **kwargs):
311 """
312 SetAXProp(self, String name, PyObject value)
313
314 Set a property of the ActiveX object by name.
315 """
316 return _activex.ActiveXWindow_SetAXProp(*args, **kwargs)
317
318 def GetAXProp(*args, **kwargs):
319 """
320 GetAXProp(self, String name) -> PyObject
321
322 Get the value of an ActiveX property by name.
323 """
324 return _activex.ActiveXWindow_GetAXProp(*args, **kwargs)
325
326 def _CallAXMethod(*args):
327 """
328 _CallAXMethod(self, String name, PyObject args) -> PyObject
329
330 The implementation for CallMethod. Calls an ActiveX method, by
331 name passing the parameters given in args.
332 """
333 return _activex.ActiveXWindow__CallAXMethod(*args)
334
335 def CallAXMethod(self, name, *args):
336 """
337 Front-end for _CallMethod. Simply passes all positional args
338 after the name as a single tuple to _CallMethod.
339 """
340 return self._CallAXMethod(name, args)
341
342 _activex.ActiveXWindow_swigregister(ActiveXWindow)
343
344 #---------------------------------------------------------------------------
345
346
347 def RegisterActiveXEvent(*args, **kwargs):
348 """
349 RegisterActiveXEvent(String eventName) -> EventType
350
351 Creates a standard wx event ID for the given eventName.
352 """
353 return _activex.RegisterActiveXEvent(*args, **kwargs)
354 class ActiveXEvent(_core.CommandEvent):
355 """
356 An instance of ActiveXEvent is sent to the handler for all bound
357 ActiveX events. Any event parameters from the ActiveX cntrol are
358 turned into attributes of the Python proxy for this event object.
359 Additionally, there is a property called eventName that will
360 return (surprisingly <wink>) the name of the ActiveX event.
361 """
362 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
363 def __init__(self): raise AttributeError, "No constructor defined"
364 __repr__ = _swig_repr
365 eventName = property(_activex.ActiveXEvent_EventName)
366
367 def _preCallInit(*args, **kwargs):
368 """_preCallInit(self, PyObject pyself)"""
369 return _activex.ActiveXEvent__preCallInit(*args, **kwargs)
370
371 def _postCallCleanup(*args, **kwargs):
372 """_postCallCleanup(self, PyObject pyself)"""
373 return _activex.ActiveXEvent__postCallCleanup(*args, **kwargs)
374
375 _activex.ActiveXEvent_swigregister(ActiveXEvent)
376
377 #---------------------------------------------------------------------------
378
379 class IEHtmlWindowBase(ActiveXWindow):
380 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
381 __repr__ = _swig_repr
382 def __init__(self, *args, **kwargs):
383 _activex.IEHtmlWindowBase_swiginit(self,_activex.new_IEHtmlWindowBase(*args, **kwargs))
384 self._setOORInfo(self)
385
386 def SetCharset(*args, **kwargs): return _activex.IEHtmlWindowBase_SetCharset(*args, **kwargs)
387 def LoadString(*args, **kwargs): return _activex.IEHtmlWindowBase_LoadString(*args, **kwargs)
388 def LoadStream(*args, **kwargs): return _activex.IEHtmlWindowBase_LoadStream(*args, **kwargs)
389 def GetStringSelection(*args, **kwargs): return _activex.IEHtmlWindowBase_GetStringSelection(*args, **kwargs)
390 def GetText(*args, **kwargs): return _activex.IEHtmlWindowBase_GetText(*args, **kwargs)
391 _activex.IEHtmlWindowBase_swigregister(IEHtmlWindowBase)
392
393 #---------------------------------------------------------------------------
394 # Some helper and utility functions for ActiveX
395
396
397 t4 = " " * 4
398 t8 = " " * 8
399
400 def GetAXInfo(ax):
401 """
402 Returns a printable summary of the TypeInfo from the ActiveX instance
403 passed in.
404 """
405
406 def ProcessFuncX(f, out, name):
407 out.append(name)
408 out.append(t4 + "retType: %s" % f.retType.vt_type)
409 if f.params:
410 out.append(t4 + "params:")
411 for p in f.params:
412 out.append(t8 + p.name)
413 out.append(t8+t4+ "in:%s out:%s optional:%s type:%s" % (p.isIn, p.isOut, p.isOptional, p.vt_type))
414 out.append('')
415
416 def ProcessPropX(p, out):
417 out.append(GernerateAXModule.trimPropName(p.name))
418 out.append(t4+ "type:%s arg:%s canGet:%s canSet:%s" % (p.type.vt_type, p.arg.vt_type, p.canGet, p.canSet))
419 out.append('')
420
421 out = []
422
423 out.append("PROPERTIES")
424 out.append("-"*20)
425 for p in ax.GetAXProperties():
426 ProcessPropX(p, out)
427 out.append('\n\n')
428
429 out.append("METHODS")
430 out.append("-"*20)
431 for m in ax.GetAXMethods():
432 ProcessFuncX(m, out, GernerateAXModule.trimMethodName(m.name))
433 out.append('\n\n')
434
435 out.append("EVENTS")
436 out.append("-"*20)
437 for e in ax.GetAXEvents():
438 ProcessFuncX(e, out, GernerateAXModule.trimEventName(e.name))
439 out.append('\n\n')
440
441 return "\n".join(out)
442
443
444
445 class GernerateAXModule:
446 def __init__(self, ax, className, modulePath, moduleName=None, verbose=False):
447 """
448 Make a Python module file with a class that has been specialized
449 for the AcitveX object.
450
451 ax An instance of the ActiveXWindow class
452 className The name to use for the new class
453 modulePath The path where the new module should be written to
454 moduleName The name of the .py file to create. If not given
455 then the className will be used.
456 """
457 import os
458 if moduleName is None:
459 moduleName = className + '.py'
460 filename = os.path.join(modulePath, moduleName)
461 if verbose:
462 print "Creating module in:", filename
463 print " ProgID: ", ax.GetCLSID().GetProgIDString()
464 print " CLSID: ", ax.GetCLSID().GetCLSIDString()
465 print
466 self.mf = file(filename, "w")
467 self.WriteFileHeader(ax)
468 self.WriteEvents(ax)
469 self.WriteClassHeader(ax, className)
470 self.WriteMethods(ax)
471 self.WriteProperties(ax)
472 self.WriteDocs(ax)
473 self.mf.close()
474 del self.mf
475
476
477 def WriteFileHeader(self, ax):
478 self.write("# This module was generated by the wx.activex.GernerateAXModule class\n"
479 "# (See also the genaxmodule script.)\n")
480 self.write("import wx")
481 self.write("import wx.activex\n")
482 self.write("clsID = '%s'\nprogID = '%s'\n"
483 % (ax.GetCLSID().GetCLSIDString(), ax.GetCLSID().GetProgIDString()))
484 self.write("\n")
485
486
487 def WriteEvents(self, ax):
488 events = ax.GetAXEvents()
489 if events:
490 self.write("# Create eventTypes and event binders")
491 for e in events:
492 self.write("wxEVT_%s = wx.activex.RegisterActiveXEvent('%s')"
493 % (self.trimEventName(e.name), e.name))
494 self.write()
495 for e in events:
496 n = self.trimEventName(e.name)
497 self.write("EVT_%s = wx.PyEventBinder(wxEVT_%s, 1)" % (n,n))
498 self.write("\n")
499
500
501 def WriteClassHeader(self, ax, className):
502 self.write("# Derive a new class from ActiveXWindow")
503 self.write("""\
504 class %s(wx.activex.ActiveXWindow):
505 def __init__(self, parent, ID=-1, pos=wx.DefaultPosition,
506 size=wx.DefaultSize, style=0, name='%s'):
507 wx.activex.ActiveXWindow.__init__(self, parent,
508 wx.activex.CLSID('%s'),
509 ID, pos, size, style, name)
510 """ % (className, className, ax.GetCLSID().GetCLSIDString()) )
511
512
513 def WriteMethods(self, ax):
514 methods = ax.GetAXMethods()
515 if methods:
516 self.write(t4, "# Methods exported by the ActiveX object")
517 for m in methods:
518 name = self.trimMethodName(m.name)
519 self.write(t4, "def %s(self%s):" % (name, self.getParameters(m, True)))
520 self.write(t8, "return self.CallAXMethod('%s'%s)" % (m.name, self.getParameters(m, False)))
521 self.write()
522
523
524 def WriteProperties(self, ax):
525 props = ax.GetAXProperties()
526 if props:
527 self.write(t4, "# Getters, Setters and properties")
528 for p in props:
529 getterName = setterName = "None"
530 if p.canGet:
531 getterName = "_get_" + p.name
532 self.write(t4, "def %s(self):" % getterName)
533 self.write(t8, "return self.GetAXProp('%s')" % p.name)
534 if p.canSet:
535 setterName = "_set_" + p.name
536 self.write(t4, "def %s(self, %s):" % (setterName, p.arg.name))
537 self.write(t8, "self.SetAXProp('%s', %s)" % (p.name, p.arg.name))
538
539 self.write(t4, "%s = property(%s, %s)" %
540 (self.trimPropName(p.name), getterName, setterName))
541 self.write()
542
543
544 def WriteDocs(self, ax):
545 self.write()
546 doc = GetAXInfo(ax)
547 for line in doc.split('\n'):
548 self.write("# ", line)
549
550
551
552 def write(self, *args):
553 for a in args:
554 self.mf.write(a)
555 self.mf.write("\n")
556
557
558 def trimEventName(name):
559 if name.startswith("On"):
560 name = name[2:]
561 return name
562 trimEventName = staticmethod(trimEventName)
563
564
565 def trimPropName(name):
566 #name = name[0].lower() + name[1:]
567 name = name.lower()
568 import keyword
569 if name in keyword.kwlist: name += '_'
570 return name
571 trimPropName = staticmethod(trimPropName)
572
573
574 def trimMethodName(name):
575 import keyword
576 if name in keyword.kwlist: name += '_'
577 return name
578 trimMethodName = staticmethod(trimMethodName)
579
580
581 def getParameters(self, m, withDefaults):
582 import keyword
583 st = ""
584 # collect the input parameters, if both isIn and isOut are
585 # False then assume it is an input paramater
586 params = []
587 for p in m.params:
588 if p.isIn or (not p.isIn and not p.isOut):
589 params.append(p)
590 # did we get any?
591 for p in params:
592 name = p.name
593 if name in keyword.kwlist: name += '_'
594 st += ", "
595 st += name
596 if withDefaults and p.isOptional:
597 st += '=None'
598 return st
599
600
601 #---------------------------------------------------------------------------
602
603
604