Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services/console/lib/purk/windows.py
diff options
context:
space:
mode:
Diffstat (limited to 'services/console/lib/purk/windows.py')
-rw-r--r--services/console/lib/purk/windows.py298
1 files changed, 0 insertions, 298 deletions
diff --git a/services/console/lib/purk/windows.py b/services/console/lib/purk/windows.py
deleted file mode 100644
index 22c783a..0000000
--- a/services/console/lib/purk/windows.py
+++ /dev/null
@@ -1,298 +0,0 @@
-import gtk
-
-import irc
-from conf import conf
-import widgets
-
-#manager = widgets.UrkUITabs()
-
-def append(window, manager):
- manager.add(window)
-
-def remove(window, manager):
- manager.remove(window)
-
- # i don't want to have to call this
- window.destroy()
-
-def new(wclass, network, id, core):
- if network is None:
- network = irc.dummy_network
-
- w = get(wclass, network, id, core)
- if not w:
- w = wclass(network, id, core)
- append(w, core.manager)
-
- return w
-
-def get(windowclass, network, id, core):
- if network:
- id = network.norm_case(id)
-
- for w in core.manager:
- if (type(w), w.network, w.id) == (windowclass, network, id):
- return w
-
-def get_with(manager, wclass=None, network=None, id=None):
- if network and id:
- id = network.norm_case(id)
-
- for w in list(manager):
- for to_find, found in ((wclass, type(w)), (network, w.network), (id, w.id)):
- # to_find might be False but not None (if it's a DummyNetwork)
- if to_find is not None and to_find != found:
- break
- else:
- yield w
-
-def get_default(network, manager):
-
- window = manager.get_active()
- if window.network == network:
- return window
-
- # There can be only one...
- for window in get_with(network=network):
- return window
-
-class Window(gtk.VBox):
- need_vbox_init = True
-
- def mutate(self, newclass, network, id):
- isactive = self == manager.get_active()
- self.hide()
-
- for child in self.get_children():
- self.remove(child)
-
- self.__class__ = newclass
- self.__init__(network, id)
- self.update()
- if isactive:
- self.activate()
-
- def transfer_text(self, _widget, event):
- if event.string and not self.input.is_focus():
- self.input.grab_focus()
- self.input.set_position(-1)
- self.input.event(event)
-
- def write(self, text, activity_type=widgets.EVENT, line_ending='\n', fg=None):
- if self.manager.get_active() != self:
- self.activity = activity_type
- self.output.write(text, line_ending, fg)
-
- def get_id(self):
- if self.network:
- return self.network.norm_case(self.rawid)
- else:
- return self.rawid
-
- def set_id(self, id):
- self.rawid = id
- self.update()
-
- id = property(get_id, set_id)
-
- def get_toplevel_title(self):
- return self.rawid
-
- def get_title(self):
- return self.rawid
-
- def get_activity(self):
- return self.__activity
-
- def set_activity(self, value):
- if value:
- self.__activity.add(value)
- else:
- self.__activity = set()
- self.update()
-
- activity = property(get_activity, set_activity)
-
- def focus(self):
- pass
-
- def activate(self):
- self.manager.set_active(self)
- self.focus()
-
- def close(self):
- self.events.trigger("Close", window=self)
- remove(self, self.manager)
-
- def update(self):
- self.manager.update(self)
-
- def __init__(self, network, id, core):
- self.manager = core.manager
- self.events = core.events
-
- if self.need_vbox_init:
- #make sure we don't call this an extra time when mutating
- gtk.VBox.__init__(self, False)
- self.need_vbox_init = False
-
- if hasattr(self, "buffer"):
- self.output = widgets.TextOutput(core, self, self.buffer)
- else:
- self.output = widgets.TextOutput(core, self)
- self.buffer = self.output.get_buffer()
-
- if hasattr(self, "input"):
- if self.input.parent:
- self.input.parent.remove(self.input)
- else:
- self.input = widgets.TextInput(self, core)
-
- self.network = network
- self.rawid = id
-
- self.__activity = set()
-
-class SimpleWindow(Window):
- def __init__(self, network, id, core):
- Window.__init__(self, network, id)
-
- self.focus = self.input.grab_focus
- self.connect("key-press-event", self.transfer_text)
-
- self.pack_end(self.input, expand=False)
-
- topbox = gtk.ScrolledWindow()
- topbox.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- topbox.add(self.output)
-
- self.pack_end(topbox)
-
- self.show_all()
-
-class StatusWindow(Window):
- def get_toplevel_title(self):
- return '%s - %s' % (self.network.me, self.get_title())
-
- def get_title(self):
- # Something about self.network.isupport
- if self.network.status:
- return "%s" % self.network.server
- else:
- return "[%s]" % self.network.server
-
- def __init__(self, network, id, core):
- Window.__init__(self, network, id, core)
-
- self.nick_label = widgets.NickEditor(self, core)
-
- 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.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.add(self.output)
-
- self.pack_end(topbox)
-
- self.show_all()
-
-class QueryWindow(Window):
- def __init__(self, network, id, core):
- Window.__init__(self, network, id, core)
-
- self.nick_label = widgets.NickEditor(self, core)
-
- self.focus = self.input.grab_focus
- self.connect("key-press-event", self.transfer_text)
-
- 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.add(self.output)
-
- self.pack_end(topbox)
-
- self.show_all()
-
-def move_nicklist(paned, event):
- paned._moving = (
- event.type == gtk.gdk._2BUTTON_PRESS,
- paned.get_position()
- )
-
-def drop_nicklist(paned, event):
- width = paned.allocation.width
- pos = paned.get_position()
-
- double_click, nicklist_pos = paned._moving
-
- if double_click:
- # if we're "hidden", then we want to unhide
- if width - pos <= 10:
- # get the normal nicklist width
- conf_nicklist = conf.get("ui-gtk/nicklist-width", 200)
-
- # if the normal nicklist width is "hidden", then ignore it
- if conf_nicklist <= 10:
- paned.set_position(width - 200)
- else:
- paned.set_position(width - conf_nicklist)
-
- # else we hide
- else:
- paned.set_position(width)
-
- else:
- if pos != nicklist_pos:
- conf["ui-gtk/nicklist-width"] = width - pos - 6
-
-class ChannelWindow(Window):
- def __init__(self, network, id, core):
- Window.__init__(self, network, id, core)
-
- self.nicklist = widgets.Nicklist(self, core)
- self.nick_label = widgets.NickEditor(self, core)
-
- 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.add(self.output)
-
- nlbox = gtk.ScrolledWindow()
- nlbox.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- nlbox.add(self.nicklist)
-
- nlbox.set_size_request(conf.get("ui-gtk/nicklist-width", 112), -1)
-
- 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.pack1(topbox, resize=True, shrink=False)
- pane.pack2(nlbox, resize=False, shrink=True)
-
- self.nicklist.pos = None
-
- pane.connect("button-press-event", move_nicklist)
- pane.connect("button-release-event", drop_nicklist)
-
- self.pack_end(pane)
-
- self.show_all()