Sugar Activity Tutorial/lang-pt

From OLPC
< Sugar Activity Tutorial
Revision as of 19:06, 22 October 2007 by Watanabe (talk | contribs) (New page: {{Translations}} This tutorial is under translation Este tutorial explica passo a passo como criar o [http://divieira.googlepages.com/HelloWorld-1.xo pacote da atividade Hello World ]. Is...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
  Please copy/paste "{{Translationlist | xx | origlang=en | translated={{{translated}}}}}" (where xx is ISO 639 language code for your translation) to Sugar Activity Tutorial/lang-pt/translations HowTo [ID# 72547]  +/-  

This tutorial is under translation Este tutorial explica passo a passo como criar o pacote da atividade Hello World .

Isto assume que você ja tem um ambientel de desenvolvimente Sugar instalado.

  • Crie o diretório do pacote:
mkdir HelloWorldActivity.activity
mkdir HelloWorldActivity.activity/activity
  • Escreva o arquivo activity.info , para descrever seu pacote no sub-diretorio da atividade (e.g. HelloWorldActivity.activity/activity/activity.info). Nas especificações presentes em Activity Bundles esta explicado em detalhes o significado de cada campo.
[Activity]
name = HelloWorld
service_name = org.laptop.HelloWorldActivity
class = HelloWorldActivity.HelloWorldActivity
icon = activity-helloworld
activity_version = 1
show_launcher = yes
  • Faça um icone para sua atividade, de acordo com o formato de icone e coloque-o no sub-diretorio da atividade. O nome do arquivo deve coincidir com o especificado no arquivo de informações(e.g. activity-helloworld.svg).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
  <!ENTITY fill_color "#FFFFFF">
  <!ENTITY stroke_color "#000000">
]>
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50">
  <rect x="1" y="1" width="48" height="48"
  style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2"/>
</svg>
  • Escreva o script setup.py no diretório de nível mais alto (e.g. HelloWorldActivity.activity/setup.py), que na maior parte das vezes irá se parecer com este:
#!/usr/bin/env python
from sugar.activity import bundlebuilder
if __name__ == "__main__":
    bundlebuilder.start("MyActivityName")
  • Programe sua atividade. O nome que você especificou no arquivo .info como "class" é o nome da classe que roda o seu código. Para o arquivo activity.info abaixo, nós específicamos um módulo de alto-nível chamado HelloWorldActivity.HelloWorldActivity (note que o uso de letras maiusculas em nomes de módulos é considerada ruim no estilo Python, sinta-se à vontade para utilizar o nome da atividade com estilo de nomes padrão).
 File: HelloWorldActivity.py
 from sugar.activity import activity
 import logging
 
 import sys, os
 import gtk
 
 class HelloWorldActivity(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 "activity running"
 
         # Creates the Toolbox. It contains the Activity Toolbar, which is the
         # bar that appears on every Sugar window and contains essential
         # functionalities, such as the 'Collaborate' and 'Close' buttons.
         toolbox = activity.ActivityToolbox(self)
         self.set_toolbox(toolbox)
         toolbox.show()
 
         # Creates a new button with the label "Hello World".
         self.button = gtk.Button("Hello World")
     
         # When the button receives the "clicked" signal, it will call the
         # function hello() passing it None as its argument.  The hello()
         # function is defined above.
         self.button.connect("clicked", self.hello, None)
     
         # Set the button to be our canvas. The canvas is the main section of
         # every Sugar Window. It fills all the area below the toolbox.
         self.set_canvas(self.button)
     
         # The final step is to display this newly created widget.
         self.button.show()
     
         print "AT END OF THE CLASS"

O arquivo acima é chamado HelloWorldActivity.py

  • Crie um MANIFESTO (e.g. HelloWorldActivity.activity/MANIFEST), contendo a lista dos arquivos inclusos no pacote. (Nota: tenha certeza que não deixou linhas em branco no final do arquivo.)

Agora a estrutura do seu diretório deve parecer com esta:

HelloWorldActivity.activity/
HelloWorldActivity.activity/setup.py
HelloWorldActivity.activity/activity
HelloWorldActivity.activity/activity/activity.info
HelloWorldActivity.activity/activity/activity-helloworld.svg
HelloWorldActivity.activity/HelloWorldActivity.py
HelloWorldActivity.activity/MANIFEST

Instale seu pacote para o desenvolvimento

./setup.py dev

(Isto aparece somente para criar um symlink em ~/Activities .)


Rodando

Agora se você rodar o sugar o icone da atividade deve esta visivel na tela. ( Você deve reiniciar o sugar para ele reconhecer as alterações caso você tenha acabado de instala-lo. Use ctrl-alt-erase.)

Você também pode editar o código diretamente no diretório do seu pacote. Note que a primeira vez que a atividade é iniciada o processo continua rodando, mesmo que você feche a janela, portanto você tem que matar o sugar-activity-factory para que a atividade seja relida quando você clicar novamente sobre seu icone.

Distribuição

Crie um empacotamento .xo para distribuir seu pacote. (Um arquivo .xo é essencialmente um arquivo zip construido a partir do MANIFEST com alguns metadados extra, como um arquivo JAR. Isto também possibilita algum tipo de localização e no futuro nós esperamos sermos capazes de utilizar isto também.) O nome do pacote é gerado automaticamente a partir dos valores dos campos 'name' e 'activity_version' encontrados no arquivo activity.info , separados por um (-), com a extensão .xo .

 ./setup.py dist

Para instalar o xo em um laptop você pode utilizar o script de instalação.

 sugar-install-bundle HelloWorld-1.xo


Veja mais em