Primitivus first draft

- Sortilège is recoded using urwid, and renamed in Primitivus as it is no more based on curses
- soritlege code moved to sortilege_old, and deprecated
- Primitivus first draft, begining of ProfileManager widget
This commit is contained in:
Goffi 2010-06-30 14:24:24 +08:00
commit b6ef271fd2
9 changed files with 112 additions and 0 deletions

78
frontends/primitivus/primitivus Executable file
View file

@ -0,0 +1,78 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Primitivus: a SAT frontend
Copyright (C) 2009, 2010 Jérôme Poisson (goffi@goffi.org)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
from quick_frontend.quick_app import QuickApp
from quick_frontend.quick_chat_list import QuickChatList
from quick_frontend.quick_contact_list import QuickContactList
from quick_frontend.quick_contact_management import QuickContactManagement
import urwid
from profile_manager import ProfileManager
import pdb
"""from window import Window
from editbox import EditBox
from statusbar import StatusBar
from chat import Chat
from tools.jid import JID"""
import logging
from logging import debug, info, error
#import locale
import sys, os
#from curses import ascii
#import locale
#from signal import signal, SIGWINCH
#import fcntl
#import struct
#import termios
#from boxsizer import BoxSizer
### logging configuration FIXME: put this elsewhere ###
logging.basicConfig(level=logging.CRITICAL, #TODO: configure it to put messages in a log file
format='%(message)s')
###
const_APP_NAME = "Primitivus"
const_PALETTE = [('title', 'black', 'light gray', 'standout,underline'),]
class PrimitivusApp(QuickApp):
def __init__(self):
QuickApp.__init__(self) #XXX: yes it's an unusual place for the constructor of a parent class, but the init order is important
## main loop setup ##
self.main_widget = self.__buildMainWidget()
self.loop = urwid.MainLoop(self.main_widget, const_PALETTE, event_loop=urwid.GLibEventLoop(), unhandled_input=self.key_handler)
def start(self):
self.loop.run()
def key_handler(self, input):
if input in ('q', 'Q') or input == 'ctrl x':
raise urwid.ExitMainLoop()
def __buildMainWidget(self):
main_widget = ProfileManager(self)
return main_widget
sat = PrimitivusApp()
sat.start()

View file

@ -0,0 +1,34 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Primitivus: a SAT frontend
Copyright (C) 2009, 2010 Jérôme Poisson (goffi@goffi.org)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
import urwid
class ProfileManager(urwid.WidgetWrap):
def __init__(self, host):
self.host = host
profiles = self.host.bridge.getProfilesList()
widgets = [urwid.Text(str(profiles))]
content = urwid.SimpleListWalker(widgets)
display_widget = urwid.Frame(urwid.ListBox(content),urwid.AttrMap(urwid.Text("Profile Manager",align='center'),'title'))
urwid.WidgetWrap.__init__(self, display_widget)