Created
March 5, 2010 00:23
-
-
Save pklaus/322309 to your computer and use it in GitHub Desktop.
Advanced example for an PyS60 application that makes use of appuifw.app.set_tabs().
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- encoding: UTF8 -*- | |
# Advanced example for an PyS60 application that makes use of appuifw.Form(). | |
# originally found on <http://www.mobilenin.com/pys60/info_tabs_forms.htm> | |
# changed and adopted for the N95 by Philipp Klaus <philipp.l.klaus AT web-dot-de> | |
# Copyright (c) 2006 Jurgen Scheible | |
# This script creates a form | |
import appuifw | |
import e32 | |
# create an Active Object | |
app_lock = e32.Ao_lock() | |
def forming(): | |
# create a list to be used in 'combo' selection mode | |
model = [u'6600', u'6630', u'7610', u'N90', u'N75'] | |
# define the field list (consists of tuples: (label, type ,value)); label is a unicode string | |
# type is one of the following strings: 'text', 'number', 'date', 'time',or 'combo' | |
data = [(u'Mobile','text', u'Nokia'),(u'Model','combo', (model,0)),(u'Amount','number', 5),(u'Date','date'),(u'Time','time')] | |
# set the view/edit mode of the form | |
flags = appuifw.FFormEditModeOnly | |
# creates the form | |
f = appuifw.Form(data, flags) | |
# make the form visible on the UI | |
f.execute() | |
def exit_key_handler(): | |
app_lock.signal() | |
# set the title of the script | |
appuifw.app.title = u'Form' | |
# call the function that creates the form | |
forming() | |
appuifw.app.exit_key_handler = exit_key_handler | |
app_lock.wait() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- encoding: UTF8 -*- | |
# Advanced example for an PyS60 application that makes use of appuifw.app.set_tabs(). | |
# originally found on <http://www.mobilenin.com/pys60/info_tabs_forms.htm> | |
# changed and adopted for the N95 by Philipp Klaus <philipp.l.klaus AT web-dot-de> | |
import appuifw | |
import e32 | |
from graphics import * | |
# define application 1: listobx app | |
# create your icons for the listbox content | |
icon1 = appuifw.Icon(u"z:\\RESOURCE\\APPS\\avkon2.mbm", 28, 29) | |
icon2 = appuifw.Icon(u"z:\\RESOURCE\\APPS\\avkon2.mbm", 40, 41) | |
icon3 = appuifw.Icon(u"z:\\RESOURCE\\APPS\\avkon2.mbm", 30, 31) | |
icon4 = appuifw.Icon(u"z:\\RESOURCE\\APPS\\avkon2.mbm", 32, 33) | |
icon5 = appuifw.Icon(u"z:\\RESOURCE\\APPS\\avkon2.mbm", 34, 35) | |
icon6 = appuifw.Icon(u"z:\\RESOURCE\\APPS\\avkon2.mbm", 36, 37) | |
icon7 = appuifw.Icon(u"z:\\RESOURCE\\APPS\\avkon2.mbm", 38, 39) | |
# create your content list of your listbox including the icons to be used for each entry | |
entries = [(u"Signal", icon1), | |
(u"Battery", icon2), | |
(u"Sirene", icon3), | |
(u"Waste", icon4), | |
(u"Helicopter", icon5), | |
(u"Train", icon6), | |
(u"Auto", icon7)] | |
# create the listbox callback handler | |
def handler(): | |
print "done" | |
# create an instance of appuifw.Listbox(), include the content list "entries" and the callback function "handler" | |
app1 = appuifw.Listbox(entries,handler) | |
# define application 2: listbox app | |
# define the list of items as pop-up menu content | |
L2 = [u"Stefan", u"Holger", u"Emil", u"Ludger"] | |
# create the listbox callback handler | |
def handler_L2(): | |
print "ola" | |
# create the pop-up menu | |
app2 = appuifw.Listbox(L2, handler_L2) | |
# define application 3: canvas application | |
def app_3(): | |
global canvas | |
img=Image.new((200,230)) | |
img.line((20,20,20,120),0xff00ee) | |
img.rectangle((40,60,50,80),0xff0000) | |
img.point((50.,150.),0xff0000,width=40) | |
img.ellipse((100,150,150,180),0x0000ff) | |
img.text((100,80), u'hello') | |
# define your redraw function (still belonging to app 3) | |
def handle_redraw(rect): | |
#global canvas | |
canvas.blit(img) | |
# define the canvas, include the redraw callback function | |
canvas = appuifw.Canvas(event_callback=None, redraw_callback=handle_redraw) | |
appuifw.app.body = canvas | |
def exit_key_handler(): | |
app_lock.signal() | |
# create a tab handler that switches the application based on what tab is selected | |
def handle_tab(index): | |
global lb | |
if index == 0: | |
appuifw.app.body = app1 # switch to application 1 | |
if index == 1: | |
appuifw.app.body = app2 # switch to application 2 | |
if index == 2: | |
app_3() # switch to application 3 | |
# create an Active Object | |
app_lock = e32.Ao_lock() | |
# create the tabs with its names in unicode as a list, include the tab handler | |
appuifw.app.set_tabs([u"One", u"Two", u"Three"],handle_tab) | |
# set the title of the script | |
appuifw.app.title = u'Tabs advanced' | |
# set app.body to app1 (for start of script) | |
appuifw.app.body = app1 | |
appuifw.app.exit_key_handler = exit_key_handler | |
app_lock.wait() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment