/usr/lib/python2.7/dist-packages/wxglade/widgets/calendar_ctrl/codegen.py is in python-wxglade 0.6.8-2.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | # codegen.py: code generator functions for wxCalendarCtrl objects
#
# Copyright (c) 2002-2007 Alberto Griggio <agriggio@users.sourceforge.net>
#
# License: MIT (see license.txt)
# THIS PROGRAM COMES WITH NO WARRANTY
import common
class PythonCodeGenerator(object):
def __init__(self):
self.pygen = common.code_writers['python']
self.real_class_name = 'CalendarCtrl'
def __get_import_modules(self):
if self.pygen.use_new_namespace:
return ['import wx.calendar\n']
else:
return ['from wxPython.calendar import *\n']
import_modules = property(__get_import_modules)
def cn(self, c):
""" Create names according to if the new namescace (wx) was selected
@type c: string
@param c: the name which should be altered
@rtype: string
@return: the orignial name with a prefix according to which namespace
the user selected
"""
if self.pygen.use_new_namespace:
if c[:2] == 'wx':
c = c[2:]
return 'wx.calendar.' + c
else:
return c
def cn_f(self, flags):
""" Same as cn(c) but for flags
@rtype: string
"""
if self.pygen.use_new_namespace:
return "|".join([self.cn(f) for f in str(flags).split('|')])
else:
return str(flags)
def get_code(self, obj):
pygen = common.code_writers['python']
prop = obj.properties
id_name, id = pygen.generate_code_id(obj)
#label = pygen.quote_str(prop.get('label', ''))
if not obj.parent.is_toplevel: parent = 'self.%s' % obj.parent.name
else: parent = 'self'
style = prop.get("style")
if style: style = ", style=%s" % self.cn_f(style)
else: style = ''
init = []
if id_name: init.append(id_name)
klass = obj.klass
if klass == obj.base or klass == self.real_class_name: klass = self.cn(klass)
init.append('self.%s = %s(%s, %s%s)\n' %
# (obj.name, klass, parent, id, label, style))
(obj.name, klass,parent, id, style))
props_buf = pygen.generate_common_properties(obj)
if prop.get('default', False):
props_buf.append('self.%s.SetDefault()\n' % obj.name)
return init, props_buf, []
# end of class PythonCodeGenerator
def xrc_code_generator(obj):
xrcgen = common.code_writers['XRC']
class CalendarCtrlXrcObject(xrcgen.DefaultXrcObject):
def write_property(self, name, val, outfile, tabs):
if name == 'label':
# translate & into _ as accelerator marker
val2 = val.replace('&', '_')
if val.count('&&') > 0:
while True:
index = val.find('&&')
if index < 0: break
val = val2[:index] + '&&' + val2[index+2:]
else: val = val2
xrcgen.DefaultXrcObject.write_property(self, name, val,
outfile, tabs)
# end of class CalendarCtrlXrcObject
return CalendarCtrlXrcObject(obj)
class CppCodeGenerator:
extra_headers = ['<wx/calctrl.h>']
def get_code(self, obj):
"""\
fuction that generates python code for wxCalendarCtrl objects.
"""
cppgen = common.code_writers['C++']
prop = obj.properties
id_name, id = cppgen.generate_code_id(obj)
if id_name:
ids = [ id_name ]
else:
ids = []
if not obj.parent.is_toplevel:
parent = '%s' % obj.parent.name
else:
parent = 'this'
extra = ''
style = prop.get("style")
if style:
extra = ', wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, %s'\
% style
#label = cppgen.quote_str(prop.get('label', ''))
init = [ '%s = new %s(%s, %s%s);\n' %
# (obj.name, obj.klass, parent, id, label, extra) ]
(obj.name, obj.klass, parent, id, extra) ]
props_buf = cppgen.generate_common_properties(obj)
if prop.get('default', False):
props_buf.append('%s->SetDefault();\n' % obj.name)
return init, ids, props_buf, []
def get_events(self, obj):
"""\
wxCalendarCtrl uses wxCalendarEvent for event handling
"""
cppgen = common.code_writers['C++']
return cppgen.get_events_with_type(obj, 'wxCalendarEvent')
# end of class CppCodeGenerator
def initialize():
common.class_names['EditCalendarCtrl'] = 'wxCalendarCtrl'
pygen = common.code_writers.get('python')
if pygen:
pygen.add_widget_handler('wxCalendarCtrl', PythonCodeGenerator())
xrcgen = common.code_writers.get("XRC")
if xrcgen:
xrcgen.add_widget_handler('wxCalendarCtrl', xrc_code_generator)
cppgen = common.code_writers.get('C++')
if cppgen:
cppgen.add_widget_handler('wxCalendarCtrl', CppCodeGenerator())
|