Contents

About

The goal of the project is to make it easy to write many kind of applications for openmoko using the python language.

Tichy provides the following things :

Graphics User Interface widgets

Services registering and Requesting (for example an application that wants to send a message will request for an application implementing the message sending service)

Tasklets system (This allow to write callback waiting process as if they were threads)

Abstraction of Item / View

A plug in system that make it easy to add new functionalities / applets to tichy

How to write an applets / plug-ins for tichy ?

Unfortunately There is currently no documentation.

Fortunately it is very easy to do. If you want to write a new applet, you just need to create a new directory in tichy/test/plugins/apps/. You can have a look at the other plug-ins to get an idea of how to do it. A basic app look like this :

import tichy
import tichy.gui as gui
import tichy.item as item
from tichy.application import Application
class MyApp(Application):
name = "My Application"
icon = 'icon.png' # to be found in the app directory
def run(self, parent):
w = gui.Window(parent, modal = True) # We run into a new modal window
# Create a new frame with a "back" button on top
frame = gui.ApplicationFrame(w, self, back_button=True)
# This box is used to store the widgets
box = gui.Box(frame, axis=1)
# Create a text item
text = item.Text('click to edit', editable = True)
# Put a view of the item on the screen
text.view(box)
# Add a button
button = gui.Button(box)
gui.Label(button, "click me")
def on_click(b):
# "yield" means "block until the tasklet returns"
yield gui.Message(w, you just clicked the button)
button.connect('clicked', on_click)
yield Wait(frame, 'back') # Wait until the back button is clicked
w.close() # Don't forget to close the window

Running on the desktop

Thanks to the service system, that allows to provide several version of the same service, Tichy can run as well on a desktop computer as on the neo. When run on a desktop, tichy will simulate phone functionalities, when run on the neo, it will use the Framework.

To run it on the desktop, make sure you have python-pygames installed

sudo apt-get install python-pygame

Then just download the sources, then go into test, and run

./tichy

Running on neo

You will need to compile some files, see the README for more information on how to do it.

Dependencies

You need python 2.5 and some libraries installed :

python-pygame

python-dbus

python-yaml

python-gst

python-gobject

ipkg package

A package is available for it in Openmoko Testing and unstable feed. Unfortunately tichy won't work yet, because of a bug in python-pygame in openmoko feeds.

About

The goal of the project is to make it easy to write many kind of applications for openmoko using the python language.

Tichy provides the following things :

Graphics User Interface widgets

Services registering and Requesting (for example an application that wants to send a message will request for an application implementing the message sending service)

Tasklets system (This allow to write callback waiting process as if they were threads)

Abstraction of Item / View

A plug in system that make it easy to add new functionalities / applets to tichy

How to write an applets / plug-ins for tichy ?

Unfortunately There is currently no documentation.

Fortunately it is very easy to do. If you want to write a new applet, you just need to create a new directory in tichy/test/plugins/apps/. You can have a look at the other plug-ins to get an idea of how to do it. A basic app look like this :

import tichy
import tichy.gui as gui
import tichy.item as item
from tichy.application import Application
class MyApp(Application):
name = "My Application"
icon = 'icon.png' # to be found in the app directory
def run(self, parent):
w = gui.Window(parent, modal = True) # We run into a new modal window
# Create a new frame with a "back" button on top
frame = gui.ApplicationFrame(w, self, back_button=True)
# This box is used to store the widgets
box = gui.Box(frame, axis=1)
# Create a text item
text = item.Text('click to edit', editable = True)
# Put a view of the item on the screen
text.view(box)
# Add a button
button = gui.Button(box)
gui.Label(button, "click me")
def on_click(b):
# "yield" means "block until the tasklet returns"
yield gui.Message(w, you just clicked the button)
button.connect('clicked', on_click)
yield Wait(frame, 'back') # Wait until the back button is clicked
w.close() # Don't forget to close the window

Running on the desktop

Thanks to the service system, that allows to provide several version of the same service, Tichy can run as well on a desktop computer as on the neo. When run on a desktop, tichy will simulate phone functionalities, when run on the neo, it will use the Framework.

To run it on the desktop, make sure you have python-pygames installed

sudo apt-get install python-pygame

Then just download the sources, then go into test, and run

./tichy

Running on neo

You will need to compile some files, see the README for more information on how to do it.

Dependencies

You need python 2.5 and some libraries installed :

python-pygame

python-dbus

python-yaml

python-gst

python-gobject

ipkg package

A package is available for it in Openmoko Testing and unstable feed. Unfortunately tichy won't work yet, because of a bug in python-pygame in openmoko feeds.