Gambler Doc: Módulos

0 views
Skip to first unread message

buli

unread,
Feb 27, 2008, 5:48:08 PM2/27/08
to Equipe Clica-Aí
Os módulos do Gambler existentes são projetos do Gambas completos e
independentes, com a particularidade de serem clones exatos de algumas
das abas do painel original.

O pacote gambler-modules fornece alguns módulos binários como assim
também seu o código fonte.

Os módulos binários são instalados na pasta /usr/share/gambler/
modules/ no entanto que os fontes na pasta /usr/share/gambler/source/
sempre, em archives gzipados, como tudo o que for fonte.

Além disso, existe a possibilidade de extrair os fontes dos módulos
também
automaticamente durante a instalação do pacote deb, para facilitar a
vida dos desenvolvedores ;-)

Para isso, antes de instalar o pacote gambler-source, edite o arquivo
~/.gambler/global.conf e ajuste o valor das seguintes variáveis:

SOURCE_EXTRACT=1

SOURCE_DIRECTORY=/pathname/completo/da/pasta/onde/extrair/

SOURCE_MKDIR=1

SOURCE_EXTRACT_MODULES=<nomes dos módulos>

O pacote tenta por todos os médios possíveis não sobrescrever nada que
já exista, mas algum imprevisto pode acontecer, por isso recomendo
tomar cuidado.

Para conhecer o nome dos módulos contidos no deb você pode usar o
seguinte comando:

gambler -L gambler-modules_1.0.58_i386.deb



buli

unread,
Feb 27, 2008, 5:56:54 PM2/27/08
to Equipe Clica-Aí
Usando os módulos (ponto de vista do usuário):
==================================

Uma vez instalado o pacote gambler-modules, você pode conhecer quais
os módulos disponíveis através do comando:

gambler -l

Para rodar um módulo:

gambler <nome do módulo>

onde o nome do módulo é aquele que consta na lista retornada pelo
comando gambler com a opção -l (de lista) como acima.

Qualquer parecido com os KCMShell e o KControl tal vez não seja mera
coincidência ;-)


buli

unread,
Feb 27, 2008, 6:45:18 PM2/27/08
to Equipe Clica-Aí
Usando os módulos (ponto de vista do desenvolvedor):
=======================================

O pacote gambler-modules tem como dependência o pacote gambler-source,
portanto você deveria ter os 2 instalados. O segundo pacote fornece o
script /usr/bin/mkgambler que serve para mexer com os fontes dos
módulos.

Segue um exemplo de como editar um módulo. Vou supor que o módulo
chama-se "terminal" e que a pasta usada para descompactar os archives
contendo os fontes é aquela usada por default, a saber: ~/Desktop/
gamblerspace/

Se você não habilitou a extração automática, então descompacte o fonte
do módulo na sua pasta de trabalho:

tar -C ~/Desktop/gamblerspace -xzvf /usr/share/gambler/source/
terminal-1.0.58.tar.gz

Atente para o fato que isso vai sobrescrever qualquer projeto nomeado
"terminal" que por ventura exista na pasta de trabalho.

O segundo passo consiste em gerar o projeto do gambas propriamente
dito:

cd ~/Desktop/gamblerspace

mkgambler -w terminal form

mkgambler -w terminal class

O primeiro comando vai gerar o arquivo FormMain.form dentro da pasta
terminal, no entanto que o segundo vai gerar o arquivo FormMain.class
na mesma pasta. Esses nomes não devem ser alterados.

Com isso você vai ter um projeto do gambas como qualquer outro. Ai
você pode abrir com o gambas e mexer a vontade. O único que NÃO pode
ser feito consiste em alterar o tamanho da janela principal, pois caso
contrário o módulo modificado dessa maneira não vai poder ser
"encaixado" outra vez no painel original, caso deseje fazer tal coisa
depois.

Depois de feitas as modificações você pode gerar o binário como
acostumado e usar o módulo modificado stand-alone, como descrito no
post anterior. Para gerar um binário de menor tamanho, antes da
compilação pode ser usado o comando:

mkgambler -w terminal trim-icons

Ele vasculha o FormMain.form verificando quais ícones estão sendo
usados de fato e apaga os ícones e imagens ociosas nas pastas icons/ e
pictures/ respectivamente.



Como compilar um módulo dentro do painel principal
======================================

Antes disso, a parte "aproveitável" do módulo modificado deve ser
extraida dos arquivos FormMain.class e FormMain.form e ser
"depositada" outra vez nas pastas FormMain.class.d e FormMain.form.d.
Para isso, use os comandos:

cd ~/Desktop/gamblerspace

mkgambler -w terminal extract-module-class

mkgambler -w terminal extract-module-form

mkgambler -w terminal module-info

Os dois primeiros comandos apenas extraem dois aquivos nomeados
module.class e module.form respectivamente na pasta terminal. O resto
deve ser feito manualmente. Isso é um assunto que precissa ser
elaborado em futuras versões.

O último comando serve para gerar um arquivo nomeado terminal.list na
pasta terminal/info contendo informações sobre as modificações que
foram feitas no módulo. É importante não esquecer disso, pois caso
contrário novos forms ou novos ícones acrescidos no projeto do módulo
serão omitidos.

Tudo isso acima aplica-se a qualquer módulo, tanto já existente como
novo. Para incluir o módulo modificado ou novo no painel principal
você precisa ter descompactado os fontes do projeto principal na mesma
pasta de trabalho e depois usar o comando:

cd ~/Desktop

mkgambler -w gamblerspace include -f terminal -t <projeto principal>

Você pode incluir qualquer quantidade de módulos no projeto principal.
Depois disso, precisa gerar os arquivos FormMain.class e FormMain.form
do projeto principal da mesma maneira que explicado acima para um
módulo. Com isso, o projeto principal vai ficar pronto para editar com
o gambas.










buli

unread,
Feb 27, 2008, 7:12:10 PM2/27/08
to Equipe Clica-Aí
A minha idéia seria que a partir de agora o painel seja desenvolvido
a partir de módulos. Parece complicado mas é apenas uma questão de
prática.

As pessoas poderiam também escrever plugins para o painel. Basta
apenas editar o módulo como se fosse qualquer projeto do gambas, pois
ele é autônomo nesse sentido. O único que deve ser preservado são
alguns nomes de arquivos e pastas padrões do gambler como assim também
o tamanho da janela principal. Fora isso, pode ser feita qualquer
modificação.

Se a pessoa tiver vontade pode compilar o módulo dentro do painel
principal, ou então isso ficaria pela nossa conta.

A partir do 1.0.55 eu já adotei esse esquema de desenvolvimento e
venho testando e aperfeiçoando e pelo menos até agora parece ter dado
resultado.
Reply all
Reply to author
Forward
0 new messages