Riferimenti per il file main.c

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
#include <libxfcegui4/libxfcegui4.h>
#include <brain_applet_manager.h>
#include <brain_applets_generic.h>
#include <brain_db.h>
#include <config.h>

Funzioni

void free_applets_list (gpointer iter, gpointer nullo)
gboolean do_applet_do (BrainApplet *applet, BrainAppletRequest request, BrainAppletRequestOptions subreq)
void lookup_and_update_list (gpointer iter, gpointer nullo)
gboolean is_running (BAMAppletDescriptor *desc)
BAMResponseType check_for_applet ()
BAMResponseType type_of_applet ()
gboolean applet_already_loaded (BrainApplet *this)
BAMResponseType exec_applet ()
 Lancia una nuova applet.
BAMResponseType do_applet ()
 Evoca una applet al verificarsi di un dato evento.
void run_desk_session ()
 Apre l'applet destinata alla gestione del desktop.
int init_installation (gchar *path)
void free_memory_reading_file (gchar *name, gchar *desc, gchar *executable, gchar *tables_name, gchar *command_for_db)
gchar * read_config_file (gchar *path)
int install_files (char *path, gchar *command)
int install_new_applet (char *path)
int main (int argc, char **argv)

Variabili

static BrainAppletManager manager
static int pos


Documentazione delle funzioni

void free_applets_list gpointer  iter,
gpointer  nullo
 

gboolean do_applet_do BrainApplet applet,
BrainAppletRequest  request,
BrainAppletRequestOptions  subreq
 

void lookup_and_update_list gpointer  iter,
gpointer  nullo
 

gboolean is_running BAMAppletDescriptor desc  ) 
 

Da fare:
Questo metodo non e' sicuro: il fatto che il pid esista non garantisce che l'applet stia girando correttamente (potrebbe essere uno zombie...)

BAMResponseType check_for_applet  ) 
 

BAMResponseType type_of_applet  ) 
 

gboolean applet_already_loaded BrainApplet this  ) 
 

BAMResponseType exec_applet  ) 
 

Lancia una nuova applet.

Lancia l'eseguibile di una applet la cui sommaria descrizione viene caricata direttamente dal componente richiedente (solitamente il BrainDesktop) nell'area di exchange

BAMResponseType do_applet  ) 
 

Evoca una applet al verificarsi di un dato evento.

Richiama una applet (nello specifico: quella che e' stata rilevata precedentemente cercando una applet che avesse richiesto un determinato tipo di eventi) nel momento in cui si verifica un evento da essa richiesto

Avvertimento:
Non invocare *mai* questa funzione prima di aver invocato check_for_applet() ed aver ricevuto esito positivo per ogni singolo evento che si vuole eventualmente assegnare ad una applet

void run_desk_session  ) 
 

Apre l'applet destinata alla gestione del desktop.

Per rendere il sistema piu' famigliare all'utenza (nonche' piu' facilmente configurabile) e' possibile far girare diverse applet per la gestione delle attivita' sul desktop, dalla classica taskbar alla FileList BrainTop: qui viene lanciata quella che e' stata predefinita

< La path di installazione

Avvertimento:
Le applets speciali per la gestione della sessione, come del resto tutte le applets, devono avere definiti, all'interno del database (nella tabella APPLETS_SETTINGS) i parametri "side" e "height"

int init_installation gchar *  path  ) 
 

Da fare:
Parametrizzare il path del comando tar, e magari settarlo nel codice in fase di installazione cercandolo prima con un which

void free_memory_reading_file gchar *  name,
gchar *  desc,
gchar *  executable,
gchar *  tables_name,
gchar *  command_for_db
 

gchar* read_config_file gchar *  path  ) 
 

int install_files char *  path,
gchar *  command
 

< La path di installazione

Da fare:
Fare controllo sull'effettiva riuscita dell'installazione dei files

int install_new_applet char *  path  ) 
 

int main int  argc,
char **  argv
 

Questa funzione alloca lo spazio di memoria condivisa cui gli altri componenti fanno riferimento quando vogliono interagire con le applets, ed entra in un ciclo infinito di ascolto delle richieste avanzate. All'avvio, inoltre, si occupa si eseguire il "brain_desk_session", ovvero la applet speciale che definisce il tipo di comportamento preferito dall'utente per BrainTop: tale eseguibile e' in realta' un link a braintaskbar (nel caso in cui si voglia usare BrainTop come un classico window manager) o a brainactivityselector (se si vuole sfruttare la prospettiva delle "attivita'")

Da fare:
Sarebbe opportuno inventarsi un modo migliore per far stare in attesa l'applets manager, invece di fare un check del flag notify_to_manager ogni N millisecondi...


Documentazione delle variabili

BrainAppletManager manager [static]
 

int pos [static]
 


Generato il Sun Apr 16 01:36:44 2006 per BrainTop da  doxygen 1.4.6