diff options
author | JCTutorius <charlie@tutorius-dev.(none)> | 2009-09-28 14:41:54 (GMT) |
---|---|---|
committer | JCTutorius <charlie@tutorius-dev.(none)> | 2009-09-28 14:41:54 (GMT) |
commit | f507615fe1646e0416b316972c4d05cf2fc5528d (patch) | |
tree | 353598e2b2e7f86d93b74a1033f6d7114456daf6 | |
parent | 09b2ea3369df967309f030f9196c2f9861bc1b2c (diff) | |
parent | eccbfc3bb4bfb584b72cfa594c432c5e70aa0a85 (diff) |
Merge branch 'master' of git://git.sugarlabs.org/tutorius/Charlies-clone
-rw-r--r-- | TutoriusActivity.activity/MANIFEST | 5 | ||||
-rwxr-xr-x | TutoriusActivity.activity/TutoriusActivity.py | 43 | ||||
-rw-r--r-- | TutoriusActivity.activity/activity/activity.info | 8 | ||||
-rw-r--r-- | TutoriusActivity.activity/activity/someicon.svg | 21 | ||||
-rw-r--r-- | TutoriusActivity.activity/dialogs.py | 139 | ||||
-rwxr-xr-x | TutoriusActivity.activity/setup.py | 3 |
6 files changed, 219 insertions, 0 deletions
diff --git a/TutoriusActivity.activity/MANIFEST b/TutoriusActivity.activity/MANIFEST new file mode 100644 index 0000000..c5c6d42 --- /dev/null +++ b/TutoriusActivity.activity/MANIFEST @@ -0,0 +1,5 @@ +TutoriusActivity.py +activity/someicon.svg +activity/activity.info +setup.py +MANIFEST diff --git a/TutoriusActivity.activity/TutoriusActivity.py b/TutoriusActivity.activity/TutoriusActivity.py new file mode 100755 index 0000000..23f5d16 --- /dev/null +++ b/TutoriusActivity.activity/TutoriusActivity.py @@ -0,0 +1,43 @@ +from sugar.activity import activity +import logging + +import sys, os +import gtk +from dialogs import LoginDialog + +class TutoriusActivity(activity.Activity): + def hello(self,widget,data=None): + logging.info('Hello world') + + def __init__(self,handle): + print "running activity init", handle + activity.Activity.__init__(self,handle) + print "actiity running" + + toolbox = activity.ActivityToolbox(self) + self.set_toolbox(toolbox) + toolbox.show() + + self.dialog = LoginDialog() + self.dialog.show() + + self.table = gtk.HPaned() + self.table.set_position(250) + self.left_container = gtk.VBox() + btn1 = gtk.Button("My tutorials") + btn2 = gtk.Button("Tutorial Store") + btn3 = gtk.Button("test button") + + self.left_container.pack_start(btn1,expand=False) + self.left_container.pack_start(btn2,expand=False) + + self.table.add1(self.left_container) + self.table.add2(btn3) + self.set_canvas(self.table) + btn3.show() + btn1.show() + btn2.show() + self.left_container.show() + self.table.show() + + print "AT THE END OF THE CLASS" diff --git a/TutoriusActivity.activity/activity/activity.info b/TutoriusActivity.activity/activity/activity.info new file mode 100644 index 0000000..02dbee1 --- /dev/null +++ b/TutoriusActivity.activity/activity/activity.info @@ -0,0 +1,8 @@ +[Activity] +name = Tutorius +bundle_id = org.laptop.TutoriusActivity +class = TutoriusActivity.TutoriusActivity +icon = someicon +activity_version = 1 +host_version = 1 +show_launcher = yes diff --git a/TutoriusActivity.activity/activity/someicon.svg b/TutoriusActivity.activity/activity/someicon.svg new file mode 100644 index 0000000..bb28f04 --- /dev/null +++ b/TutoriusActivity.activity/activity/someicon.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" ?><!-- Created with Inkscape (http://www.inkscape.org/) --><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#000000"> + <!ENTITY fill_color "#ffffff"> +]><svg height="55px" id="svg2393" inkscape:output_extension="org.inkscape.output.svg.inkscape" inkscape:version="0.47pre1 r21720" sodipodi:docname="tutortool.svg" sodipodi:version="0.32" version="1.1" width="55px" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"> + <defs id="defs2395"> + <inkscape:perspective id="perspective2401" inkscape:persp3d-origin="16 : 10.666667 : 1" inkscape:vp_x="0 : 16 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="32 : 16 : 1" sodipodi:type="inkscape:persp3d"/> + </defs> + <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="3.7661233" inkscape:cy="33.132055" inkscape:document-units="px" inkscape:grid-bbox="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="675" inkscape:window-maximized="0" inkscape:window-width="1057" inkscape:window-x="108" inkscape:window-y="45" inkscape:zoom="3.9590209" pagecolor="#ffffff" showgrid="true"/> + <metadata id="metadata2398"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + </cc:Work> + </rdf:RDF> + </metadata> + <g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" transform="translate(0,23)"> + <path d="m 38.01548,1.5478747 c 0,7.1837999 -7.3667,13.0141283 -16.443525,13.0141283 -2.269208,0 -8.124729,3.152936 -13.9608513,4.252763 C 13.382177,14.110994 11.434521,11.926642 9.9463815,10.748864 6.9701032,8.3933076 5.1284282,5.1397735 5.1284282,1.5478747 c 0,-7.1837994 7.3666998,-13.0141297 16.4435268,-13.0141297 9.076825,0 16.443525,5.8303303 16.443525,13.0141297 z" id="path2403" sodipodi:nodetypes="cscsssc" style="fill:&fill_color;;fill-opacity:1;fill-rule:nonzero;stroke:&stroke_color;;stroke-width:1.96931934;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"/> + <path d="m 50.150276,6.4721386 c 0,2.621116 -1.428036,4.9953144 -3.735846,6.7142344 -1.153905,0.85946 -1.824287,2.434433 1.398853,6.784273 -6.258422,-3.991066 -8.65379,-4.001712 -10.413335,-4.001712 -7.03818,0 -12.750327,-4.254565 -12.750327,-9.4967954 0,-5.2422321 5.712147,-9.4967971 12.750327,-9.4967971 7.038182,0 12.750328,4.254565 12.750328,9.4967971 z" id="path3175" sodipodi:nodetypes="cccsssc" style="fill:&fill_color;;fill-opacity:1;fill-rule:nonzero;stroke:&stroke_color;;stroke-width:1.96931934;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"/> + </g> +</svg>
\ No newline at end of file diff --git a/TutoriusActivity.activity/dialogs.py b/TutoriusActivity.activity/dialogs.py new file mode 100644 index 0000000..1cf135d --- /dev/null +++ b/TutoriusActivity.activity/dialogs.py @@ -0,0 +1,139 @@ +import gtk + +class LoginDialog(gtk.Dialog): + def __init__(self): + gtk.Dialog.__init__(self,"Login",None,gtk.DIALOG_MODAL) + ok_button = gtk.Button("Login") + ok_button.connect("clicked",self.ok_clicked,None) + ok_button.show() + self.action_area.pack_start(ok_button) + self.add_button("Cancel",gtk.RESPONSE_REJECT) + self.set_resizable(False) + self.prepare_dialog() + + + def prepare_dialog(self): + self.user_line = gtk.HBox(False,10) + self.pass_line = gtk.HBox(False,10) + self.register_line = gtk.HBox(False) + self.remember_line = gtk.HBox(False) + + self.username_lbl = gtk.Label("Username:") + self.username_entry = gtk.Entry() + self.username_entry.set_width_chars(40) + + self.password_lbl = gtk.Label("Password:") + self.password_entry = gtk.Entry() + self.password_entry.set_visibility(False) + self.password_entry.set_width_chars(40) + + self.register_me = gtk.LinkButton("","Register Now!") + self.not_registered = gtk.Label("Not Registered? ") + + self.remember_user = gtk.CheckButton("Remember my username",False) + + self.register_me.connect("clicked",self.click_link,None) + + self.user_line.pack_start(self.username_lbl,False) + self.user_line.pack_end(self.username_entry,False) + + self.pass_line.pack_start(self.password_lbl,False) + self.pass_line.pack_end(self.password_entry,False) + + self.register_line.pack_end(self.register_me,False) + self.register_line.pack_end(self.not_registered,False) + + self.remember_line.pack_start(self.remember_user,False,padding=80) + + self.vbox.pack_start(self.register_line,False) + self.vbox.pack_start(self.user_line,False,padding=10) + self.vbox.pack_start(self.pass_line,False,padding=10) + self.vbox.pack_start(self.remember_line,False) + + self.vbox.show() + self.user_line.show() + self.pass_line.show() + self.register_line.show() + self.remember_line.show() + + self.username_lbl.show() + self.username_entry.show() + + self.password_lbl.show() + self.password_entry.show() + + self.register_me.show() + self.not_registered.show() + + self.remember_user.show() + + def ok_clicked(self,widget,data=None): + self.response(gtk.RESPONSE_ACCEPT) + + def click_link(self,widget,data=None): + self.register_dialog = RegisterDialog() + self.register_dialog.run() + self.register_dialog.destroy() + +class RegisterDialog(gtk.Dialog): + def __init__(self): + gtk.Dialog.__init__(self,"Register",None,gtk.DIALOG_MODAL) + ok_button = gtk.Button("Register") + ok_button.connect("clicked",self.ok_clicked,None) + ok_button.show() + self.action_area.pack_start(ok_button) + self.add_button("Cancel",gtk.RESPONSE_REJECT) + self.set_resizable(False) + self.create_content() + + def ok_clicked(self,widget,data=None): + self.response(gtk.RESPONSE_ACCEPT) + + def create_content(self): + entry_length = 40 + table = gtk.Table(10,4,False) + labels = ["Email address","Name","Username","Password","Confirmation","Location","Web Site"] + required=[True,True,True,True,True,False,False] + hidden=[False,False,False,True,True,False,False] + for x in range(6): + lbl = gtk.Label(labels[x]+":") + entry = gtk.Entry() + entry.set_width_chars(entry_length) + table.attach(lbl,0,1,x,x+1,xpadding=10) + table.attach(entry,1,2,x,x+1,ypadding=10) + if hidden[x]: + entry.set_visibility(False) + if required[x]: + required_lbl = gtk.Label("*") + table.attach(required_lbl,2,3,x,x+1) + required_lbl.show() + lbl.set_alignment(0.0,0.5) + lbl.show() + entry.show() + + + if_required = gtk.Label(" * Required Field") + table.attach(if_required,3,4,0,1) + + under_13 = gtk.CheckButton("I am 13 years old or younger",False) + legal = gtk.CheckButton("I have read the",False) + legal_notices=gtk.LinkButton('',"legal notices") + and_lbl = gtk.Label("and") + privacy = gtk.LinkButton('',"privacy statement") + hbox = gtk.HBox(False,0) + hbox.pack_start(legal) + hbox.pack_start(legal_notices) + hbox.pack_start(and_lbl) + hbox.pack_start(privacy) + + table.attach(under_13,1,2,7,8) + table.attach(hbox,1,2,8,9) + under_13.show() + legal.show() + legal_notices.show() + and_lbl.show() + privacy.show() + hbox.show() + if_required.show() + table.show() + self.vbox.pack_start(table) diff --git a/TutoriusActivity.activity/setup.py b/TutoriusActivity.activity/setup.py new file mode 100755 index 0000000..f95b630 --- /dev/null +++ b/TutoriusActivity.activity/setup.py @@ -0,0 +1,3 @@ +#! /usr/bin/env python +from sugar.activity import bundlebuilder +bundlebuilder.start() |