示例#1
0
    def __init__(self, window, parent, model, attrs={}, label=None):
        interface.widget_interface.__init__(self, window, parent, model, attrs, label_ebox=label)
        self.ui = openerp_gtk_builder('openerp.ui', ['widget_textbox_tag'])
        self.widget = self.ui.get_object('widget_textbox_tag')
        self.tv = self.ui.get_object('widget_textbox_tag_tv')
        self.tv.set_wrap_mode(gtk.WRAP_WORD)
        self.tv.connect('focus-out-event', lambda x,y: self._focus_out())
        self.widget.show_all()
        self.tags = {}
        self.tags_dic = {}
        self.buf = self.tv.get_buffer()
        self.tagdict = {}
        self.buf.connect_after('insert-text', self.sig_insert_text)
        self.buf.connect('mark-set', self.sig_mark_set)
        self.value=''
#       self.sizeButton = self.ui.get_object('font_size')
#       self.colorButton =self.ui.get_object('font_color')
        self.boldButton = self.ui.get_object('toggle_bold')
        self.italicButton = self.ui.get_object('toggle_italic')
        self.underlineButton = self.ui.get_object('toggle_underline')
        self.strikethroughButton=self.ui.get_object('toggle_strikethrough')


        self.internal_toggle = False
        self.setup_default_tags ()
        self.justify = gtk.JUSTIFY_LEFT
        self.leading = 14+7

        self.ui.connect_signals({
            'on_toggle_bold_toggled': gtk_signal_decorator(self._toggle, [self.bold]),
            'on_toggle_italic_toggled': gtk_signal_decorator(self._toggle, [self.italic]),
            'on_toggle_underline_toggled': gtk_signal_decorator(self._toggle, [self.underline]),
            'on_toggle_strike_toggled': gtk_signal_decorator(self._toggle, [self.strikethrough]),
#           'on_font_size_changed': self._font_changed,
#           'on_color_changed': self._color_changed,
            'on_font_button_clicked': self._font_changed,
            'on_color_button_clicked': self._color_changed,

            'on_radiofill_toggled': gtk_signal_decorator(self._toggle_justify, gtk.JUSTIFY_FILL),
            'on_radiocenter_toggled': gtk_signal_decorator(self._toggle_justify, gtk.JUSTIFY_CENTER),
            'on_radioright_toggled': gtk_signal_decorator(self._toggle_justify, gtk.JUSTIFY_RIGHT),
            'on_radioleft_toggled': gtk_signal_decorator(self._toggle_justify, gtk.JUSTIFY_LEFT),
        })
    def __init__(self, model, axis, fields, attrs):
        self.ui = openerp_gtk_builder("openerp.ui", ["widget_view_calendar"])
        self.widget = self.ui.get_object("widget_view_calendar")

        self._label_current = self.ui.get_object("label_current")
        self._radio_month = self.ui.get_object("radio_month")
        self._radio_week = self.ui.get_object("radio_week")
        self._radio_day = self.ui.get_object("radio_day")
        self._small_calendar = self.ui.get_object("calendar_small")
        self._calendar_treeview = self.ui.get_object("calendar_treeview")

        mode = attrs.get("mode", "month")
        self.log = logging.getLogger("calender")
        self.fields = fields
        self.attrs = attrs
        self.axis = axis
        self.screen = None
        if mode == "day":
            self._radio_day.set_active(True)
        elif mode == "week":
            self._radio_week.set_active(True)
        else:
            self._radio_month.set_active(True)
        self.mode = mode
        self.modex = mode

        self.cal_model = TinyCalModel()
        self.cal_view = Calendar.Calendar(self.cal_model, mode)
        self.cal_view.connect("event-clicked", self._on_event_clicked)
        self.cal_view.connect("do_month_back_forward", self._back_forward)
        self.cal_view.connect("day-selected", self._change_small)

        vbox = self.ui.get_object("cal_vbox")
        vbox.pack_start(self.cal_view)
        vbox.show_all()

        self.process = False
        self.ui.connect_signals(
            {
                "on_but_forward_clicked": gtk_signal_decorator(self._back_forward, 1),
                "on_but_back_clicked": gtk_signal_decorator(self._back_forward, -1),
                "on_but_today_clicked": self._today,
                "on_calendar_small_day_selected_double_click": gtk_signal_decorator(self._change_small, False, False),
                "on_button_day_clicked": gtk_signal_decorator(self._change_view, "day"),
                "on_button_week_clicked": gtk_signal_decorator(self._change_view, "week"),
                "on_button_month_clicked": gtk_signal_decorator(self._change_view, "month"),
            }
        )
        self.date = datetime.today()
        self.string = attrs.get("string", "")
        self.date_start = attrs.get("date_start")
        self.date_delay = attrs.get("date_delay")
        self.date_stop = attrs.get("date_stop")
        self.color_field = attrs.get("color")
        self.color_field_custom = attrs.get("color_custom", "color")
        self.color_model = False
        self.color_filters = {}
        self.colors = {}

        self.day_length = int(attrs.get("day_length", 8))
        self.models = None
        self.models_record_group = None

        if self.color_field:
            self.color_model = gtk.ListStore(str, str, str, gobject.TYPE_BOOLEAN)
            self._calendar_treeview.set_model(self.color_model)
            self._calendar_treeview.get_selection().set_mode(gtk.SELECTION_NONE)

            for c in (self.TV_COL_ID, self.TV_COL_COLOR):
                column = gtk.TreeViewColumn(None, gtk.CellRendererText(), text=c)
                self._calendar_treeview.append_column(column)
                column.set_visible(False)

            # Row toogle
            renderer = gtk.CellRendererToggle()
            renderer.set_property("activatable", True)
            renderer.connect("toggled", self._treeview_toggled, self.color_model, self.color_filters)
            column = gtk.TreeViewColumn(None, renderer)
            column.add_attribute(renderer, "active", self.TV_COL_TOGGLE)
            column.set_cell_data_func(renderer, self._treeview_setter)
            self._calendar_treeview.append_column(column)

            renderer = gtk.CellRendererText()
            column = gtk.TreeViewColumn(None, renderer, text=self.TV_COL_LABEL)
            col_label = gtk.Label("")
            col_label.set_markup("<b>%s</b>" % self.fields[self.color_field]["string"])
            col_label.show()
            column.set_widget(col_label)
            column.set_cell_data_func(renderer, self._treeview_setter)
            self._calendar_treeview.append_column(column)
示例#3
0
    def __init__(self, model, axis, fields, attrs):
        self.ui = openerp_gtk_builder('openerp.ui', ['widget_view_calendar'])
        self.widget = self.ui.get_object('widget_view_calendar')

        self._label_current = self.ui.get_object('label_current')
        self._radio_month = self.ui.get_object('radio_month')
        self._radio_week = self.ui.get_object('radio_week')
        self._radio_day = self.ui.get_object('radio_day')
        self._small_calendar = self.ui.get_object('calendar_small')
        self._calendar_treeview = self.ui.get_object('calendar_treeview')

        mode = attrs.get('mode','month')
        self.log = logging.getLogger('calender')
        self.fields = fields
        self.attrs = attrs
        self.axis = axis
        self.screen = None
        if mode == 'day':
            self._radio_day.set_active(True)
        elif mode == 'week':
            self._radio_week.set_active(True)
        else:
            self._radio_month.set_active(True)
        self.mode = mode
        self.modex = mode

        self.cal_model = TinyCalModel()
        self.cal_view = Calendar.Calendar(self.cal_model, mode)
        self.cal_view.connect('event-clicked', self._on_event_clicked)
        self.cal_view.connect('do_month_back_forward', self._back_forward)
        self.cal_view.connect('day-selected', self._change_small)

        vbox = self.ui.get_object('cal_vbox')
        vbox.pack_start(self.cal_view)
        vbox.show_all()

        self.process = False
        self.ui.connect_signals({
            'on_but_forward_clicked': gtk_signal_decorator(self._back_forward, 1),
            'on_but_back_clicked': gtk_signal_decorator(self._back_forward, -1),
            'on_but_today_clicked': self._today,
            'on_calendar_small_day_selected_double_click': gtk_signal_decorator(self._change_small, False, False),
            'on_button_day_clicked': gtk_signal_decorator(self._change_view, 'day'),
            'on_button_week_clicked': gtk_signal_decorator(self._change_view, 'week'),
            'on_button_month_clicked': gtk_signal_decorator(self._change_view, 'month'),
        })
        self.date = datetime.today()
        self.string = attrs.get('string', '')
        self.date_start = attrs.get('date_start')
        self.date_delay = attrs.get('date_delay')
        self.date_stop = attrs.get('date_stop')
        self.color_field = attrs.get('color')
        self.color_field_custom = attrs.get('color_custom', 'color')
        self.color_model = False
        self.color_filters = {}
        self.colors = {}

        self.day_length = int(attrs.get('day_length', 8))
        self.models = None
        self.models_record_group = None

        if self.color_field:
            self.color_model = gtk.ListStore(str, str, str, gobject.TYPE_BOOLEAN)
            self._calendar_treeview.set_model(self.color_model)
            self._calendar_treeview.get_selection().set_mode(gtk.SELECTION_NONE)

            for c in (self.TV_COL_ID, self.TV_COL_COLOR):
                column = gtk.TreeViewColumn(None, gtk.CellRendererText(), text=c)
                self._calendar_treeview.append_column(column)
                column.set_visible(False)

            # Row toogle
            renderer = gtk.CellRendererToggle()
            renderer.set_property('activatable', True)
            renderer.connect('toggled', self._treeview_toggled, self.color_model, self.color_filters)
            column = gtk.TreeViewColumn(None, renderer)
            column.add_attribute(renderer, "active", self.TV_COL_TOGGLE)
            column.set_cell_data_func(renderer, self._treeview_setter)
            self._calendar_treeview.append_column(column)

            renderer = gtk.CellRendererText()
            column = gtk.TreeViewColumn(None, renderer, text=self.TV_COL_LABEL)
            col_label = gtk.Label('')
            col_label.set_markup('<b>%s</b>' % self.fields[self.color_field]['string'])
            col_label.show()
            column.set_widget(col_label)
            column.set_cell_data_func(renderer, self._treeview_setter)
            self._calendar_treeview.append_column(column)