Below is the file 'kairosis.py' from this revision. You can also download the file.

#!/usr/bin/env python2.4

"""An Epiphany extension which implements Devhelp like functionality."""

import traceback
import string
import sys

import gtk
import gobject
import gtk.keysyms
import pango
#import epiphany

_ui_str = """
<ui>
  <menubar name="menubar">
    <menu name="ToolsMenu" action="Tools">
      <separator/>
      <menuitem name="ShowKairosis" action="ShowKairosis"/>
      <separator/>
    </menu>
  </menubar>
</ui>
"""

def debug(s):
    sys.stdout.write(s+'\n')

def kairosis_cb(action, window):
    print "Kairosis!!"
    pass

_actions = [('ShowKairosis', None, '_Kairosis DevHelp', None, None, kairosis_cb)]

def attach_window(window):
    debug("attach_window ran")
    # just a mite evil; let's stick a bar down the side of the notebook
    hbox = gtk.HBox()
    label = gtk.Label("Test")
    hbox.add(label)

    notebook = window.get_notebook()
    notebook_p = notebook.parent
    notebook.reparent(hbox)
    notebook_p.add(hbox)
    hbox.show_all()

    ui_manager = window.get_ui_manager()
    group = gtk.ActionGroup("Kairosis")
    group.add_actions(_actions, window)
    ui_manager.insert_action_group(group, 0)
    ui_id = ui_manager.add_ui_from_string(_ui_str)
    window._kairosis_window_data = (group, ui_id)

def detach_window(window):
    debug("detach_window ran")
    group, ui_id = window._kairosis_window_data
    del window._kairosis_window_data
    ui_manager = window.get_ui_manager()
    ui_manager.remove_ui(ui_id)
    ui_manager.remove_action_group(group)
    ui_manager.ensure_update()