--- /dev/null
+"""
+UI factory
+"""
+
+def app_factory(basedir, interface=None):
+ if not interface or interface == 'hildon':
+ from meabook.ui.hildon_ui import HildonMeabook
+ return HildonMeabook(basedir)
+ elif interface == 'text':
+ from meabook.ui.text_ui import TextMeabook
+ return TextMeabook(basedir)
+ else:
+ raise ValueError('%s: unsupported UI type' % interface)
--- /dev/null
+#!/usr/bin/python
+
+import os
+import sys
+from optparse import OptionParser
+
+# add meabook directory to Python path in debug mode
+if os.path.basename(sys.argv[0]).endswith("debug"):
+ sys.path.insert(0, "../../")
+ sys.path.insert(0, "../")
+
+from meabook.factory import app_factory
+
+try:
+ import osso
+except ImportError:
+ pass
+else:
+ #SERV = osso.Context("org.maemo.meabook", version, False)
+ pass
+
+
+def parse_command_line(argv):
+ """Parse command line options."""
+
+ parser = OptionParser(usage='%prog [options]')
+ parser.add_option('-u', '--ui', action='store', \
+ help='set user interface type', default='hildon')
+ return parser.parse_args(argv)
+
+
+def main(argv):
+ opts, argv = parse_command_line(argv)
+
+ if 'MYDOCSDIR' in os.environ and os.path.exists(os.path.join(\
+ os.environ['MYDOCSDIR'], '.documents')):
+ basedir = os.path.join(os.environ['MYDOCSDIR'], '.documents/meabook')
+ elif os.path.exists(os.path.join(os.getcwdu(), '.meabook')):
+ basedir = os.path.abspath(os.path.join(os.getcwdu(), '.meabook'))
+ else:
+ basedir = os.path.join(os.environ['HOME'], '.meabook')
+
+ app = app_factory(basedir, opts.ui)
+ app.start()
+
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv))
--- /dev/null
+meabook
\ No newline at end of file
--- /dev/null
+"""
+Hildon UI for Meabook
+"""
+
+import gtk
+import hildon
+import gettext
+
+_ = gettext.gettext
+
+class HildonMeabook(Meabook):
+ def __init__(self, basedir):
+ self.window = hildon.StackableWindow()
+ self.window.set_title(_('Meabook'))
+ self.window.connect('destroy', self.exit)
+ # creating menu
+ menu = hildon.AppMenu()
+ self.window.set_app_menu(menu)
+ settings_button = hildon.Button(gtk.HILDON_SIZE_AUTO, \
+ hildon.BUTTON_ARRANGEMENT_HORIZONTAL, _('Settings'))
+ settings_button.connect('clicked', self.show_settings_dialog)
+ about_button = hildon.Button(gtk.HILDON_SIZE_AUTO, \
+ hildon.BUTTON_ARRANGEMENT_HORIZONTAL, _('About'))
+ about_button.connect('clicked', self.show_about_dialog)
+ menu.append(settings_button)
+ menu.append(about_button)
+ menu.show_all()
+ self.parea = hildon.PannableArea()
+ self.window.add(self.parea)
+ self.window.show_all()
+
+ def start(self):
+ gtk.main()
+
+ def exit(self, event):
+ # add here DB disconnect
+ gtk.main_quit()
+
+ def show_settings_dialog(self, widget):
+ print 'settings'
+
+ def show_about_dialog(self, widget):
+ print 'about'
--- /dev/null
+class TextMeabook:
+ def __init__(self, basedir):
+ print 'I am text Meabook'