Riferimenti per il file brainfilelist.c

#include <memory.h>
#include <string.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <libxfcegui4/libxfcegui4.h>
#include <libxfcegui4/xinerama.h>
#include <libxfce4util/i18n.h>
#include <brain_db.h>
#include <brain_client.h>
#include <brain_mime.h>
#include <brain_applets_generic.h>
#include <config.h>
#include "brainfilelist.h"

Strutture dati

struct  FileList

Definizioni

#define HIDDEN_HEIGHT   5
#define HIDE_TIMEOUT   500
#define UNHIDE_TIMEOUT   100
#define TOP   TRUE
#define BOTTOM   FALSE
#define DEFAULT_HEIGHT   30

Funzioni

static GdkFilterReturn client_event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data)
static void watch_cb (Window window, Bool is_start, long mask, void *cb_data)
static void taskbar_set_workspaces (FileList *taskbar)
static gint taskbar_get_thickness (FileList *taskbar)
static gint taskbar_get_height (FileList *taskbar)
static void taskbar_update_margins (FileList *taskbar)
static void taskbar_position (FileList *taskbar)
static void taskbar_toggle_autohide (FileList *taskbar)
static gboolean register_tray (FileList *taskbar)
static gboolean taskbar_toggle_tray (FileList *taskbar)
static void taskbar_change_size (FileList *taskbar, int height)
static gboolean taskbar_size_allocate (GtkWidget *widget, GtkAllocation *allocation, gpointer data)
static gboolean taskbar_unhide_timeout (FileList *taskbar)
static gboolean taskbar_enter (GtkWidget *widget, GdkEventCrossing *event, gpointer data)
static gboolean taskbar_hide_timeout (FileList *taskbar)
static gboolean taskbar_leave (GtkWidget *widget, GdkEventCrossing *event, gpointer data)
void load_taskbar_options ()
static void notify_cb (const guchar *name, const gchar *channel_name, BrainMcsAction action, void *data)
static void terminate ()
static void icon_docked (XfceSystemTray *tray, GtkWidget *icon, FileList *taskbar)
static void icon_undocked (XfceSystemTray *tray, GtkWidget *icon, GtkBox *iconbox)
static void message_new (XfceSystemTray *tray, GtkWidget *icon, glong id, glong timeout, const gchar *text)
gboolean popup_menu (GtkWidget *menu, GdkEvent *event)
static GtkWidget * create_options_button ()
void activate_workspace (int n)
void match_file (ActElement *element, ActivityButton **this_act, ACTIVITY_ELEMENTS *type)
void exec_element_in_act (ACTIVITY_ELEMENTS type, ActElement *element)
gboolean nascondi_menu_davvero (ActivityButton *act_info)
void open_act (GtkToggleButton *button, int num)
gboolean act_item_selected (GtkMenuItem *item, ActElement *element)
void create_activity_files_buttons (ActivityButton *act)
void posiziona_finestra (GtkMenu *menu, int *x, int *y, gboolean *push, gpointer data)
void chiudi_altri_menu ()
gboolean mostra_menu (GtkToggleButton *button, GdkEventCrossing *ev, ActivityButton *act_info)
gboolean nascondi_menu (GtkToggleButton *button, GdkEventCrossing *ev, ActivityButton *act_info)
void create_activity_buttons (FileList *taskbar)
int main (int argc, char **argv)

Variabili

static int ActiveWorkspace = 0
static BrainClientclient = NULL
static BrainAppletthis_applet
FileListtaskbar


Documentazione delle definizioni

#define HIDDEN_HEIGHT   5
 

#define HIDE_TIMEOUT   500
 

#define UNHIDE_TIMEOUT   100
 

#define TOP   TRUE
 

#define BOTTOM   FALSE
 

#define DEFAULT_HEIGHT   30
 


Documentazione delle funzioni

static GdkFilterReturn client_event_filter GdkXEvent *  xevent,
GdkEvent *  event,
gpointer  data
[static]
 

static void watch_cb Window  window,
Bool  is_start,
long  mask,
void *  cb_data
[static]
 

static void taskbar_set_workspaces FileList taskbar  )  [static]
 

static gint taskbar_get_thickness FileList taskbar  )  [static]
 

static gint taskbar_get_height FileList taskbar  )  [static]
 

static void taskbar_update_margins FileList taskbar  )  [static]
 

static void taskbar_position FileList taskbar  )  [static]
 

static void taskbar_toggle_autohide FileList taskbar  )  [static]
 

static gboolean register_tray FileList taskbar  )  [static]
 

static gboolean taskbar_toggle_tray FileList taskbar  )  [static]
 

static void taskbar_change_size FileList taskbar,
int  height
[static]
 

static gboolean taskbar_size_allocate GtkWidget *  widget,
GtkAllocation *  allocation,
gpointer  data
[static]
 

static gboolean taskbar_unhide_timeout FileList taskbar  )  [static]
 

static gboolean taskbar_enter GtkWidget *  widget,
GdkEventCrossing *  event,
gpointer  data
[static]
 

static gboolean taskbar_hide_timeout FileList taskbar  )  [static]
 

static gboolean taskbar_leave GtkWidget *  widget,
GdkEventCrossing *  event,
gpointer  data
[static]
 

void load_taskbar_options  ) 
 

static void notify_cb const guchar *  name,
const gchar *  channel_name,
BrainMcsAction  action,
void *  data
[static]
 

Da fare:
Bisognerebbe fare in modo di aggiornare il riferimento alle applicazioni nel caso in cui venga cambiato il nome ad una, o addirittura se fosse eliminata. Probabilmente sarebbe piu' comodo inventarsi un modo un po' piu' furbo di salvare l'associazione tra un file e l'applicazione che lo deve aprire...

static void terminate  )  [static]
 

Da fare:
De-registrare l'applet presso l'AppletManager

static void icon_docked XfceSystemTray *  tray,
GtkWidget *  icon,
FileList taskbar
[static]
 

static void icon_undocked XfceSystemTray *  tray,
GtkWidget *  icon,
GtkBox *  iconbox
[static]
 

static void message_new XfceSystemTray *  tray,
GtkWidget *  icon,
glong  id,
glong  timeout,
const gchar *  text
[static]
 

gboolean popup_menu GtkWidget *  menu,
GdkEvent *  event
 

Da fare:
Candidata funzione di libreria (?)

static GtkWidget* create_options_button  )  [static]
 

Da fare:
Candidata funzione di libreria (?)

Da fare:
Assegnare una icona al pulsante delle opzioni (magari uno uguale a tutte le applets?)

void activate_workspace int  n  )  [inline]
 

void match_file ActElement element,
ActivityButton **  this_act,
ACTIVITY_ELEMENTS type
 

void exec_element_in_act ACTIVITY_ELEMENTS  type,
ActElement element
 

Da fare:
Sarebbe carino trovare un modo per parsare la stringa delle opzioni di un file a prescindere dall'ordine di apparizione degli elementi...

Da fare:
Pannello di notifica dell'errore? Comunque non qui: questo e' un processo forkato e non ha visione del mainloop GTK dell' applicazione principale

Probabilmente non e' cosi' facile aprire un contatto... E poi sarebbe bene differenziare tra i diversi tipi (IRC, mail, Jabber, Skype...)

gboolean nascondi_menu_davvero ActivityButton act_info  ) 
 

void open_act GtkToggleButton *  button,
int  num
 

gboolean act_item_selected GtkMenuItem *  item,
ActElement element
 

void create_activity_files_buttons ActivityButton act  ) 
 

void posiziona_finestra GtkMenu *  menu,
int *  x,
int *  y,
gboolean *  push,
gpointer  data
 

void chiudi_altri_menu  ) 
 

gboolean mostra_menu GtkToggleButton *  button,
GdkEventCrossing *  ev,
ActivityButton act_info
 

gboolean nascondi_menu GtkToggleButton *  button,
GdkEventCrossing *  ev,
ActivityButton act_info
 

void create_activity_buttons FileList taskbar  ) 
 

int main int  argc,
char **  argv
 

La finestra viene "stickata" solo in quanto questa e' una applet speciale: non andrebbe fatto in condizioni normali...


Documentazione delle variabili

int ActiveWorkspace = 0 [static]
 

BrainClient* client = NULL [static]
 

BrainApplet* this_applet [static]
 

FileList* taskbar
 


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