]> Dogcows Code - chaz/tint2/blob - src/panel.h
fixed WM menu management
[chaz/tint2] / src / panel.h
1 /**************************************************************************
2 * Copyright (C) 2008 Pål Staurland (staura@gmail.com)
3 * Modified (C) 2008/2009 thierry lorthiois (lorthiois@bbsoft.fr)
4 *
5 * panel :
6 * - draw panel and all objects according to panel_layout
7 *
8 *
9 **************************************************************************/
10
11 #ifndef PANEL_H
12 #define PANEL_H
13
14 #include <pango/pangocairo.h>
15 #include <sys/time.h>
16
17 #include "common.h"
18 #include "clock.h"
19 #include "task.h"
20 #include "taskbar.h"
21 #include "systraybar.h"
22
23 #ifdef ENABLE_BATTERY
24 #include "battery.h"
25 #endif
26
27
28 extern int signal_pending;
29 // --------------------------------------------------
30 // mouse events
31 extern int mouse_middle;
32 extern int mouse_right;
33 extern int mouse_scroll_up;
34 extern int mouse_scroll_down;
35 extern int mouse_tilt_left;
36 extern int mouse_tilt_right;
37
38 //panel mode
39 enum { SINGLE_DESKTOP=0, MULTI_DESKTOP };
40 extern int panel_mode;
41 extern int wm_menu;
42 extern int panel_dock;
43
44 //panel position
45 enum { LEFT=0x01, RIGHT=0x02, CENTER=0X04, TOP=0X08, BOTTOM=0x10 };
46 extern int panel_position;
47 extern int panel_horizontal;
48
49 extern int panel_refresh;
50
51 extern Task *task_active;
52 extern Task *task_drag;
53 extern Task *task_urgent;
54 extern int tick_urgent;
55 extern int max_tick_urgent;
56
57 extern Imlib_Image default_icon;
58
59
60 // tint2 use one panel per monitor and one taskbar per desktop.
61 typedef struct {
62 // always start with area
63 // area.list own all objects of the panel according to config file
64 Area area;
65
66 // --------------------------------------------------
67 // panel
68 Window main_win;
69 Pixmap temp_pmap;
70
71 // position relative to root window
72 int posx, posy;
73 int marginx, marginy;
74 float initial_width, initial_height;
75 int pourcentx, pourcenty;
76 // location of the panel (monitor number)
77 int monitor;
78
79 // --------------------------------------------------
80 // task and taskbar parameter per panel
81 Area g_taskbar;
82 Global_task g_task;
83
84 // --------------------------------------------------
85 // taskbar point to the first taskbar in panel.area.list.
86 // number of tasbar == nb_desktop. taskbar[i] is for desktop(i).
87 // taskbar[i] is used to loop over taskbar,
88 // while panel->area.list is used to loop over all panel's objects
89 Taskbar *taskbar;
90 int nb_desktop;
91
92 // --------------------------------------------------
93 // clock
94 Clock clock;
95
96 // --------------------------------------------------
97 // battery
98 #ifdef ENABLE_BATTERY
99 Battery battery;
100 #endif
101 } Panel;
102
103
104 extern Panel *panel1;
105 extern int nb_panel;
106
107
108 void init_panel();
109 void init_panel_size_and_position(Panel *panel);
110 void cleanup_panel();
111 void resize_panel(void *obj);
112
113 void set_panel_properties(Panel *p);
114 void visible_object();
115
116 // draw background panel
117 void set_panel_background(Panel *p);
118
119 // detect witch panel
120 Panel *get_panel(Window win);
121
122 #endif
123
This page took 0.040667 seconds and 5 git commands to generate.