This file is indexed.

/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())