fixed bug with active task
git-svn-id: http://tint2.googlecode.com/svn/trunk@24 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
@@ -1,26 +1,28 @@
|
||||
/**************************************************************************
|
||||
* Copyright (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr)
|
||||
*
|
||||
*
|
||||
* base class for all graphical objects (panel, taskbar, task, systray, clock, ...).
|
||||
* Area is at the begining of each graphical object so &object == &area.
|
||||
*
|
||||
* Area is at the begining of each object (&object == &area).
|
||||
*
|
||||
* Area manage the background and border drawing, size and padding.
|
||||
* Area also manage the tree of visible objects
|
||||
* Each Area have 2 Pixmap (pix and pix_active).
|
||||
*
|
||||
* Area also manage the tree of visible objects. Parent object drawn before child object.
|
||||
* panel -> taskbars -> tasks
|
||||
* -> systray -> icons
|
||||
* -> clock
|
||||
*
|
||||
* draw_foreground(obj) and draw(obj) are virtual function.
|
||||
*
|
||||
*
|
||||
* draw_foreground(obj) is virtual function.
|
||||
*
|
||||
* TODO :
|
||||
* resize_width(obj, width) = 0 : fonction virtuelle à redéfinir
|
||||
* recalcule la largeur de l'objet (car la hauteur est fixe)
|
||||
* - taille systray calculée à partir de la liste des icones
|
||||
* - taille clock calculée à partir de l'heure
|
||||
* - taille d'une tache calculée à partir de la taskbar (ajout, suppression, taille)
|
||||
* - taille d'une taskbar calculée à partir de la taille du panel et des autres objets
|
||||
*
|
||||
*
|
||||
* voir resize_taskbar(), resize_clock() et resize_tasks()
|
||||
* variable widthChanged ou bien emission d'un signal ???
|
||||
* voir config(obj) configure un objet (définie les positions verticales)
|
||||
*
|
||||
**************************************************************************/
|
||||
@@ -34,7 +36,6 @@
|
||||
#include "common.h"
|
||||
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
double color[3];
|
||||
@@ -51,31 +52,37 @@ typedef struct
|
||||
} Color;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Pixmap pmap;
|
||||
Color back;
|
||||
Border border;
|
||||
} Pmap;
|
||||
|
||||
|
||||
// TODO: isoler 'draw' de 'refresh'
|
||||
// TODO: isoler les données locales des données communes aux freres
|
||||
typedef struct {
|
||||
// TODO: isoler 'draw' de 'refresh'
|
||||
// TODO: isoler les données locales des données communes aux freres
|
||||
// absolute coordinate in panel
|
||||
int posx, posy;
|
||||
int width, height;
|
||||
Pixmap pmap;
|
||||
Pmap pix;
|
||||
Pmap pix_active;
|
||||
|
||||
// list of child : Area object
|
||||
GSList *list;
|
||||
|
||||
|
||||
// need redraw Pixmap
|
||||
int redraw;
|
||||
int paddingx, paddingy;
|
||||
int redraw;
|
||||
int use_active, is_active;
|
||||
int paddingx, paddingy;
|
||||
// parent Area
|
||||
void *parent;
|
||||
|
||||
Color back;
|
||||
Border border;
|
||||
|
||||
|
||||
// each object can overwrite following function
|
||||
void (*draw)(void *obj);
|
||||
void (*draw_foreground)(void *obj, cairo_t *c);
|
||||
void (*draw_foreground)(void *obj, cairo_t *c, int active);
|
||||
void (*add_child)(void *obj);
|
||||
int (*remove_child)(void *obj);
|
||||
int (*remove_child)(void *obj);
|
||||
} Area;
|
||||
|
||||
|
||||
@@ -85,8 +92,10 @@ void refresh (Area *a);
|
||||
|
||||
// set 'redraw' on an area and childs
|
||||
void set_redraw (Area *a);
|
||||
void draw (Area *a);
|
||||
void draw_background (Area *a, cairo_t *c);
|
||||
|
||||
// draw pixmap and pixmap_active
|
||||
void draw (Area *a, int active);
|
||||
void draw_background (Area *a, cairo_t *c, int active);
|
||||
|
||||
void remove_area (Area *a);
|
||||
void add_area (Area *a);
|
||||
|
||||
Reference in New Issue
Block a user