diff options
author | Aneesh Dogra <lionaneesh@gmail.com> | 2012-12-08 16:06:52 (GMT) |
---|---|---|
committer | Aneesh Dogra <lionaneesh@gmail.com> | 2012-12-08 16:06:52 (GMT) |
commit | dc1a3c8eaf5a2ab935dc862f8aaf4045ea4c1426 (patch) | |
tree | 17f1ff4f44b2dc2e82a55493ac144772704c92a6 | |
parent | 627406e972c50e62fe627c4f4186fc05ec536acf (diff) |
Initial Gkt3 port.
-rw-r--r-- | ircactivity.py | 21 | ||||
-rw-r--r-- | purk/widgets.py | 150 | ||||
-rw-r--r-- | purk/windows.py | 37 | ||||
-rwxr-xr-x | setup.py | 2 |
4 files changed, 106 insertions, 104 deletions
diff --git a/ircactivity.py b/ircactivity.py index 58ddd04..47e5510 100644 --- a/ircactivity.py +++ b/ircactivity.py @@ -18,11 +18,12 @@ import logging from gettext import gettext as _ -import gtk +from gi.repository import Gtk +from gi.repository import Gdk import simplejson -from sugar.activity import activity -from sugar import env +from sugar3.activity import activity +from sugar3 import env import purk import purk.conf import purk.windows @@ -36,7 +37,7 @@ class IRCActivity(activity.Activity): logging.debug('Starting the IRC Activity') self.set_title(_('IRC Activity')) - self.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK) + self.add_events(Gdk.VISIBILITY_NOTIFY_MASK) self.connect('visibility-notify-event', self.__visibility_notify_event_cb) @@ -55,16 +56,16 @@ class IRCActivity(activity.Activity): OLD_TOOLBAR = False try: - from sugar.graphics.toolbarbox import ToolbarBox, ToolbarButton - from sugar.activity.widgets import ActivityToolbarButton, StopButton, \ + from sugar3.graphics.toolbarbox import ToolbarBox, ToolbarButton + from sugar3.activity.widgets import ActivityToolbarButton, StopButton, \ ShareButton, KeepButton, TitleEntry, ActivityButton except ImportError: OLD_TOOLBAR = True if OLD_TOOLBAR: - from sugar.activity.activity import Activity, ActivityToolbox - toolbox = activity.ActivityToolbox(self) + from sugar3.activity import widgets + toolbox = widgets.ActivityToolbox(self) # Remove the Share button, since this activity isn't shareable toolbar = toolbox.get_activity_toolbar() @@ -86,7 +87,7 @@ class IRCActivity(activity.Activity): toolbar_box.toolbar.insert(keep_button, -1) keep_button.show() - separator = gtk.SeparatorToolItem() + separator = Gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) toolbar_box.toolbar.insert(separator, -1) @@ -100,7 +101,7 @@ class IRCActivity(activity.Activity): toolbar_box.show() def __visibility_notify_event_cb(self, window, event): - self.is_visible = event.state != gtk.gdk.VISIBILITY_FULLY_OBSCURED + self.is_visible = event.state != Gdk.VISIBILITY_FULLY_OBSCURED #Configuracion por defecto diff --git a/purk/widgets.py b/purk/widgets.py index 559bd07..abbaddc 100644 --- a/purk/widgets.py +++ b/purk/widgets.py @@ -1,9 +1,9 @@ import codecs import gobject -import gtk -import gtk.gdk -import pango +from gi.repository import Gtk +from gi.repository import Gdk +from gi.repository import Pango from conf import conf import parse_mirc @@ -23,12 +23,12 @@ ACTIVITY_MARKUP = { } # This holds all tags for all windows ever -tag_table = gtk.TextTagTable() +tag_table = Gtk.TextTagTable() -link_tag = gtk.TextTag('link') +link_tag = Gtk.TextTag('link') link_tag.set_property('underline', pango.UNDERLINE_SINGLE) -indent_tag = gtk.TextTag('indent') +indent_tag = Gtk.TextTag('indent') indent_tag.set_property('indent', -20) tag_table.add(link_tag) @@ -43,14 +43,14 @@ def style_me(widget, style): def set_style(widget_name, style): if style: # FIXME: find a better way... - dummy = gtk.Label() + dummy = Gtk.Label() dummy.set_style(None) def apply_style_fg(value): - dummy.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse(value)) + dummy.modify_text(Gtk.StateType.NORMAL, Gdk.color.parse(value)) def apply_style_bg(value): - dummy.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(value)) + dummy.modify_base(Gtk.StateType.NORMAL, Gdk.color.parse(value)) def apply_style_font(value): dummy.modify_font(pango.FontDescription(value)) @@ -82,19 +82,19 @@ def menu_from_list(alist): if len(item) == 2: name, function = item - menuitem = gtk.ImageMenuItem(name) + menuitem = Gtk.ImageMenuItem(name) elif len(item) == 3: name, stock_id, function = item if isinstance(stock_id, bool): - menuitem = gtk.CheckMenuItem(name) + menuitem = Gtk.CheckMenuItem(name) menuitem.set_active(stock_id) else: - menuitem = gtk.ImageMenuItem(stock_id) + menuitem = Gtk.ImageMenuItem(stock_id) if isinstance(function, list): - submenu = gtk.Menu() + submenu = Gtk.Menu() for subitem in menu_from_list(function): submenu.append(subitem) menuitem.set_submenu(submenu) @@ -105,11 +105,11 @@ def menu_from_list(alist): yield menuitem else: - yield gtk.SeparatorMenuItem() + yield Gtk.SeparatorMenuItem() last = item -class Nicklist(gtk.TreeView): +class Nicklist(Gtk.TreeView): def click(self, event): if event.button == 3: x, y = event.get_coords() @@ -121,13 +121,13 @@ class Nicklist(gtk.TreeView): self.events.trigger("ListRightClick", c_data) if c_data.menu: - menu = gtk.Menu() + menu = Gtk.Menu() for item in menu_from_list(c_data.menu): menu.append(item) menu.show_all() menu.popup(None, None, None, event.button, event.time) - elif event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS: + elif event.button == 1 and event.type == Gdk.EventType._2BUTTON_PRESS: x, y = event.get_coords() (data,), path, x, y = self.get_path_at_pos(int(x), int(y)) @@ -159,16 +159,16 @@ class Nicklist(gtk.TreeView): self.get_model().insert(pos, (realname, markedupname, sortkey)) def replace(self, names): - self.set_model(gtk.ListStore(str, str, str)) + self.set_model(Gtk.ListStore(str, str, str)) self.insert_column_with_attributes( - 0, '', gtk.CellRendererText(), markup=1 - ).set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) + 0, '', Gtk.CellRendererText(), markup=1 + ).set_sizing(Gtk.TreeViewColumnSizing.FIXED) for name in names: self.append(*name) - self.get_model().set_sort_column_id(2, gtk.SORT_ASCENDING) + self.get_model().set_sort_column_id(2, Gtk.GTK_SORT_ASCENDING) def remove(self, realname): index = self.index(realname) @@ -189,7 +189,7 @@ class Nicklist(gtk.TreeView): self.core = core self.events = core.events - gtk.TreeView.__init__(self) + Gtk.TreeView.__init__(self) self.replace(()) @@ -201,7 +201,7 @@ class Nicklist(gtk.TreeView): style_me(self, "nicklist") # Label used to display/edit your current nick on a network -class NickEditor(gtk.EventBox): +class NickEditor(Gtk.EventBox): def nick_change(self, entry): oldnick, newnick = self.label.get_text(), entry.get_text() @@ -222,14 +222,14 @@ class NickEditor(gtk.EventBox): self.events.trigger("NickEditMenu", c_data) if c_data.menu: - menu = gtk.Menu() + menu = Gtk.Menu() for item in menu_from_list(c_data.menu): menu.append(item) menu.show_all() menu.popup(None, None, None, event.button, event.time) else: - entry = gtk.Entry() + entry = Gtk.Entry() entry.set_text(self.label.get_text()) entry.connect('activate', self.nick_change) entry.connect('focus-out-event', self.to_show_mode) @@ -245,14 +245,14 @@ class NickEditor(gtk.EventBox): self.remove(widget) self.add(self.label) self.win.input.grab_focus() - self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.XTERM)) + self.window.set_cursor(Gdk.Cursor(Gdk.XTERM)) def __init__(self, window, core): - gtk.EventBox.__init__(self) + Gtk.EventBox.__init__(self) self.events = core.events self.win = window - self.label = gtk.Label() + self.label = Gtk.Label() self.label.set_padding(5, 0) self.add(self.label) @@ -262,11 +262,11 @@ class NickEditor(gtk.EventBox): self.connect( "realize", - lambda *a: self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.XTERM)) + lambda *a: self.window.set_cursor(Gtk.gdk.Cursor(Gdk.XTERM)) ) # The entry which you type in to send messages -class TextInput(gtk.Entry): +class TextInput(Gtk.Entry): # Generates an input event def entered_text(self, ctrl): for line in self.text.splitlines(): @@ -288,9 +288,9 @@ class TextInput(gtk.Entry): self.select_region(self.cursor, self.cursor) #some nice toys for the scriptors - text = property(gtk.Entry.get_text, gtk.Entry.set_text) - cursor = property(gtk.Entry.get_position, gtk.Entry.set_position) - selection = property(gtk.Entry.get_selection_bounds, _set_selection) + text = property(Gtk.Entry.get_text, Gtk.Entry.set_text) + cursor = property(Gtk.Entry.get_position, Gtk.Entry.set_position) + selection = property(Gtk.Entry.get_selection_bounds, _set_selection) def insert(self, text): self.do_insert_at_cursor(self, text) @@ -299,14 +299,14 @@ class TextInput(gtk.Entry): def do_grab_focus(self): temp = self.text, (self.selection or (self.cursor,)*2) self.text = '' - gtk.Entry.do_grab_focus(self) + Gtk.Entry.do_grab_focus(self) self.text, self.selection = temp def keypress(self, event): keychar = ( - (gtk.gdk.CONTROL_MASK, '^'), - (gtk.gdk.SHIFT_MASK, '+'), - (gtk.gdk.MOD1_MASK, '!') + (Gdk.CONTROL_MASK, '^'), + (Gdk.SHIFT_MASK, '+'), + (Gdk.MOD1_MASK, '!') ) key = '' @@ -314,21 +314,21 @@ class TextInput(gtk.Entry): # we make this an int, because otherwise it leaks if int(event.state) & keymod: key += char - key += gtk.gdk.keyval_name(event.keyval) + key += Gdk.keyval_name(event.keyval) self.events.trigger('KeyPress', key=key, string=event.string, window=self.win) if key == "^Return": self.entered_text(True) - up = gtk.gdk.keyval_from_name("Up") - down = gtk.gdk.keyval_from_name("Down") - tab = gtk.gdk.keyval_from_name("Tab") + up = Gdk.keyval_from_name("Up") + down = Gdk.keyval_from_name("Down") + tab = Gdk.keyval_from_name("Tab") return event.keyval in (up, down, tab) def __init__(self, window, core): - gtk.Entry.__init__(self) + Gtk.Entry.__init__(self) self.events = core.events self.core = core self.win = window @@ -362,7 +362,7 @@ def word_from_pos(text, pos): def get_iter_at_coords(view, x, y): return view.get_iter_at_location( - *view.window_to_buffer_coords(gtk.TEXT_WINDOW_TEXT, int(x), int(y)) + *view.window_to_buffer_coords(Gtk.TEXT_WINDOW_TEXT, int(x), int(y)) ) def get_event_at_iter(view, iter, core): @@ -376,7 +376,7 @@ def get_event_at_iter(view, iter, core): #Caveat: text must be a unicode string, not utf-8 encoded; otherwise our # offsets will be off when we use anything outside 7-bit ascii - #gtk.TextIter.get_text returns unicode but gtk.TextBuffer.get_text does not + #Gtk.TextIter.get_text returns unicode but Gtk.TextBuffer.get_text does not text = line_strt.get_text(line_end).rstrip("\n") word, fr, to = word_from_pos(text, pos) @@ -386,7 +386,7 @@ def get_event_at_iter(view, iter, core): target=word, target_fr=fr, target_to=to, ) -class TextOutput(gtk.TextView): +class TextOutput(Gtk.TextView): def copy(self): startend = self.get_buffer().get_selection_bounds() @@ -408,8 +408,8 @@ class TextOutput(gtk.TextView): text = parse_mirc.unparse_mirc(tagsandtext) - gtk.clipboard_get(gtk.gdk.SELECTION_CLIPBOARD).set_text(text) - gtk.clipboard_get(gtk.gdk.SELECTION_PRIMARY).set_text(text) + Gtk.clipboard_get(Gdk.SELECTION_CLIPBOARD).set_text(text) + Gtk.clipboard_get(Gdk.SELECTION_PRIMARY).set_text(text) return text @@ -528,7 +528,7 @@ class TextOutput(gtk.TextView): ) self.linking = set() - self.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(None) + self.get_window(Gtk.TEXT_WINDOW_TEXT).set_cursor(None) def hover(self, event): if self.linking: @@ -561,8 +561,8 @@ class TextOutput(gtk.TextView): ) self.get_window( - gtk.TEXT_WINDOW_TEXT - ).set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND2)) + Gtk.TEXT_WINDOW_TEXT + ).set_cursor(Gdk.Cursor(Gdk.HAND2)) self.get_pointer() @@ -583,16 +583,16 @@ class TextOutput(gtk.TextView): def __init__(self, core, window, buffer=None): if not buffer: - buffer = gtk.TextBuffer(tag_table) + buffer = Gtk.TextBuffer(tag_table) - gtk.TextView.__init__(self, buffer) + Gtk.TextView.__init__(self, buffer) self.core = core self.events = core.events self.win = window self.set_size_request(0, -1) - self.set_wrap_mode(gtk.WRAP_WORD_CHAR) + self.set_wrap_mode(Gtk.WRAP_WORD_CHAR) self.set_editable(False) self.set_cursor_visible(False) @@ -601,8 +601,8 @@ class TextOutput(gtk.TextView): self.linking = set() - self.add_events(gtk.gdk.POINTER_MOTION_HINT_MASK) - self.add_events(gtk.gdk.LEAVE_NOTIFY_MASK) + self.add_events(Gdk.POINTER_MOTION_HINT_MASK) + self.add_events(Gdk.LEAVE_NOTIFY_MASK) self.connect('populate-popup', TextOutput.popup) self.connect('motion-notify-event', TextOutput.hover) @@ -615,7 +615,7 @@ class TextOutput(gtk.TextView): self.autoscroll = True self._scrolling = False - self.scroller = gtk.Adjustment() + self.scroller = Gtk.Adjustment() def setup_scroll(self, _adj, vadj): self.scroller = vadj @@ -630,13 +630,13 @@ class TextOutput(gtk.TextView): self.connect("size-allocate", TextOutput.scroll) def set_cursor(widget): - self.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(None) + self.get_window(Gtk.TEXT_WINDOW_TEXT).set_cursor(None) self.connect("realize", set_cursor) style_me(self, "view") -class WindowLabel(gtk.EventBox): +class WindowLabel(Gtk.EventBox): def update(self): title = self.win.get_title() @@ -657,24 +657,24 @@ class WindowLabel(gtk.EventBox): c_data.menu += [ None, - ("Close", gtk.STOCK_CLOSE, self.win.close), + ("Close", Gtk.STOCK_CLOSE, self.win.close), ] - menu = gtk.Menu() + menu = Gtk.Menu() for item in menu_from_list(c_data.menu): menu.append(item) menu.show_all() menu.popup(None, None, None, event.button, event.time) def __init__(self, window, core): - gtk.EventBox.__init__(self) + Gtk.EventBox.__init__(self) self.core = core self.events = core.events self.win = window self.connect("button-press-event", WindowLabel.tab_popup) - self.label = gtk.Label() + self.label = Gtk.Label() self.add(self.label) self.update() @@ -703,11 +703,11 @@ class FindBox(gtk.HBox): if search_down: cursor = cursor_iter.forward_search( - text, gtk.TEXT_SEARCH_VISIBLE_ONLY + text, Gtk.TEXT_SEARCH_VISIBLE_ONLY ) else: cursor = cursor_iter.backward_search( - text, gtk.TEXT_SEARCH_VISIBLE_ONLY + text, Gtk.TEXT_SEARCH_VISIBLE_ONLY ) if not cursor: @@ -727,12 +727,12 @@ class FindBox(gtk.HBox): cursor_iter = buffer.get_iter_at_mark(buffer.get_insert()) def __init__(self, window): - gtk.HBox.__init__(self) + Gtk.HBox.__init__(self) self.win = window - self.up = gtk.Button(stock='gtk-go-up') - self.down = gtk.Button(stock='gtk-go-down') + self.up = Gtk.Button(stock='gtk-go-up') + self.down = Gtk.Button(stock='gtk-go-down') self.up.connect('clicked', self.clicked) self.down.connect('clicked', self.clicked, True) @@ -740,12 +740,12 @@ class FindBox(gtk.HBox): self.up.set_property('can_focus', False) self.down.set_property('can_focus', False) - self.textbox = gtk.Entry() + self.textbox = Gtk.Entry() self.textbox.connect('focus-out-event', self.remove) self.textbox.connect('activate', self.clicked) - self.pack_start(gtk.Label('Find:'), expand=False) + self.pack_start(Gtk.Label('Find:'), expand=False) self.pack_start(self.textbox) self.pack_start(self.up, expand=False) @@ -753,18 +753,18 @@ class FindBox(gtk.HBox): self.show_all() -class UrkUITabs(gtk.VBox): +class UrkUITabs(Gtk.VBox): def __init__(self, core): - gtk.VBox.__init__(self) + Gtk.VBox.__init__(self) # threading stuff - gtk.gdk.threads_init() + Gdk.threads_init() self.core = core self.events = core.events self.tabs = Notebook() self.tabs.set_property( "tab-pos", - conf.get("ui-gtk/tab-pos", gtk.POS_BOTTOM) + conf.get("ui-gtk/tab-pos", Gtk.POS_BOTTOM) ) self.tabs.set_scrollable(True) @@ -801,9 +801,9 @@ class UrkUITabs(gtk.VBox): def update(self, window): self.tabs.get_tab_label(window).update() -class Notebook(gtk.Notebook): +class Notebook(Gtk.Notebook): def __init__(self): - gtk.Notebook.__init__(self) + Gtk.Notebook.__init__(self) self.connect("switch-page", Notebook.switch_page, self) def switch_page(self, page, pnum, data): diff --git a/purk/windows.py b/purk/windows.py index 28965ed..6ec45e6 100644 --- a/purk/windows.py +++ b/purk/windows.py @@ -1,4 +1,5 @@ -import gtk +from gi.repository import Gtk +from gi.repository import Gdk import irc from conf import conf @@ -60,7 +61,7 @@ def get_default(network, manager): for window in get_with(manager, None, network): return window -class Window(gtk.VBox): +class Window(Gtk.VBox): need_vbox_init = True def transfer_text(self, _widget, event): @@ -126,7 +127,7 @@ class Window(gtk.VBox): if self.need_vbox_init: #make sure we don't call this an extra time when mutating - gtk.VBox.__init__(self, False) + Gtk.VBox.__init__(self, False) self.need_vbox_init = False if hasattr(self, "buffer"): @@ -161,7 +162,7 @@ class SimpleWindow(Window): self.pack_end(self.input, expand=False) - topbox = gtk.ScrolledWindow() + topbox = Gtk.ScrolledWindow() topbox.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) topbox.add(self.output) @@ -188,14 +189,14 @@ class StatusWindow(Window): self.focus = self.input.grab_focus self.connect("key-press-event", self.transfer_text) self.manager = core.manager - botbox = gtk.HBox() - botbox.pack_start(self.input) + botbox = Gtk.HBox() + botbox.add(self.input) botbox.pack_end(self.nick_label, expand=False) self.pack_end(botbox, expand=False) - topbox = gtk.ScrolledWindow() - topbox.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + topbox = Gtk.ScrolledWindow() + topbox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) topbox.add(self.output) self.pack_end(topbox) @@ -211,14 +212,14 @@ class QueryWindow(Window): self.focus = self.input.grab_focus self.connect("key-press-event", self.transfer_text) - botbox = gtk.HBox() + botbox = Gtk.HBox() botbox.pack_start(self.input) botbox.pack_end(self.nick_label, expand=False) self.pack_end(botbox, expand=False) - topbox = gtk.ScrolledWindow() - topbox.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + topbox = Gtk.ScrolledWindow() + topbox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) topbox.add(self.output) self.pack_end(topbox) @@ -230,7 +231,7 @@ class QueryWindow(Window): def move_nicklist(paned, event): paned._moving = ( - event.type == gtk.gdk._2BUTTON_PRESS, + event.type == Gdk.EventType._2BUTTON_PRESS, paned.get_position() ) @@ -271,23 +272,23 @@ class ChannelWindow(Window): self.focus = self.input.grab_focus self.connect("key-press-event", self.transfer_text) - topbox = gtk.ScrolledWindow() - topbox.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + topbox = Gtk.ScrolledWindow() + topbox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) topbox.add(self.output) - nlbox = gtk.ScrolledWindow() - nlbox.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) + nlbox = Gtk.ScrolledWindow() + nlbox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) nlbox.add(self.nicklist) nlbox.set_size_request(conf.get("ui-gtk/nicklist-width", 112), -1) - botbox = gtk.HBox() + botbox = Gtk.HBox() botbox.pack_start(self.input) botbox.pack_end(self.nick_label, expand=False) self.pack_end(botbox, expand=False) - pane = gtk.HPaned() + pane = Gtk.HPaned() pane.pack1(topbox, resize=True, shrink=False) pane.pack2(nlbox, resize=False, shrink=True) @@ -17,7 +17,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -from sugar.activity import bundlebuilder +from sugar3.activity import bundlebuilder bundlebuilder.start() |