def __init__(self, entry): TransparentWindow.__init__(self, gtk.WINDOW_POPUP) self._entry = entry self._vbox = gtk.VBox(False, 3) self.set_transient_for(entry.get_toplevel()) self._vw = gtk.ScrolledWindow() self._vw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER) self._vw.show() self._text = gtk.TextView() self._text.modify_font(entry._view.style.font_desc) self._text.modify_text(gtk.STATE_NORMAL, entry._entry.style.text[gtk.STATE_NORMAL]) self._text.connect('expose-event', self.on_text_expose) self._text.set_wrap_mode(gtk.WRAP_WORD_CHAR) buf = self._text.get_buffer() buf.connect_after('insert-text', self.on_text_insert_text) buf.connect_after('delete-range', self.on_text_delete_range) self._text.set_editable(False) self._vw.add(self._text) self._vbox.pack_end(self._vw, expand=False, fill=False) self._vbox.show() self._button_bar = None self.add(self._vbox) self._text.show() self._status_label = None self.props.can_focus = False self.set_border_width(8) self._text.connect('realize', self.on_text_realize) self.attach() self.show() self.connect_after('size-allocate', self.on_size_allocate) self._vw.connect_after('size-allocate', self.on_text_size_allocate) self.max_lines = 10 self._attr_map = { pango.ATTR_STYLE: 'style', pango.ATTR_WEIGHT: 'weight', pango.ATTR_VARIANT: 'variant', pango.ATTR_STRETCH: 'stretch', pango.ATTR_SIZE: 'size', pango.ATTR_FOREGROUND: 'foreground', pango.ATTR_BACKGROUND: 'background', pango.ATTR_UNDERLINE: 'underline', pango.ATTR_STRIKETHROUGH: 'strikethrough', pango.ATTR_RISE: 'rise', pango.ATTR_SCALE: 'scale' }
def __init__(self, title, weather): TransparentWindow.__init__(self) self.set_title(title) self.set_keep_below(True) self.mainbox = Gtk.Box(spacing=10) self.menu = Gtk.Menu() self.set_events(Gdk.EventMask.BUTTON_PRESS_MASK) self.enable_drag = 1 self.weather = weather self.weatherboxs = [] self.initUI() self.connect("destroy", Gtk.main_quit)
def on_expose(self, widget, evnt): ret = TransparentWindow.on_expose(self, widget, evnt) if ret: return True ct = evnt.window.cairo_create() ct.save() area = evnt.area ct.rectangle(area.x, area.y, area.width, area.height) ct.clip() color = self.background_color() self.background_shape(ct) ct.set_source_rgba(1 - color[0], 1 - color[1], 1 - color[2], 0.3) ct.stroke() ct.restore() return False
def on_expose(self, widget, evnt): ret = TransparentWindow.on_expose(self, widget, evnt) if ret: return True ct = evnt.window.cairo_create() ct.save() area = evnt.area ct.rectangle(area.x, area.y, area.width, area.height) ct.clip() color = self.background_color() self.background_shape(ct) ct.set_source_rgba(1 - color[0], 1 - color[1], 1 - color[2], 0.3) ct.stroke() ct.restore() return False
def __init__(self, entry): TransparentWindow.__init__(self, gtk.WINDOW_POPUP) self._entry = entry self._vbox = gtk.VBox(False, 3) self.set_transient_for(entry.get_toplevel()) self._vw = gtk.ScrolledWindow() self._vw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER) self._vw.show() self._text = gtk.TextView() self._text.modify_font(entry._view.style.font_desc) self._text.modify_text(gtk.STATE_NORMAL, entry._entry.style.text[gtk.STATE_NORMAL]) self._text.connect('expose-event', self.on_text_expose) self._text.set_wrap_mode(gtk.WRAP_WORD_CHAR) buf = self._text.get_buffer() buf.connect_after('insert-text', self.on_text_insert_text) buf.connect_after('delete-range', self.on_text_delete_range) self._text.set_editable(False) self._vw.add(self._text) self._vbox.pack_end(self._vw, expand=False, fill=False) self._vbox.show() self._button_bar = None self.add(self._vbox) self._text.show() self._status_label = None self.props.can_focus = False self.set_border_width(8) self._text.connect('realize', self.on_text_realize) self.attach() self.show() self.connect_after('size-allocate', self.on_size_allocate) self._vw.connect_after('size-allocate', self.on_text_size_allocate) self.max_lines = 10 self._attr_map = { pango.ATTR_STYLE: 'style', pango.ATTR_WEIGHT: 'weight', pango.ATTR_VARIANT: 'variant', pango.ATTR_STRETCH: 'stretch', pango.ATTR_SIZE: 'size', pango.ATTR_FOREGROUND: 'foreground', pango.ATTR_BACKGROUND: 'background', pango.ATTR_UNDERLINE: 'underline', pango.ATTR_STRIKETHROUGH: 'strikethrough', pango.ATTR_RISE: 'rise', pango.ATTR_SCALE: 'scale' }