]> Dogcows Code - chaz/tint2/blob - src/panel.h
cleanup code
[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 #include "launcher.h"
23
24 #ifdef ENABLE_BATTERY
25 #include "battery.h"
26 #endif
27
28
29 extern int signal_pending;
30 // --------------------------------------------------
31 // mouse events
32 extern int mouse_middle;
33 extern int mouse_right;
34 extern int mouse_scroll_up;
35 extern int mouse_scroll_down;
36 extern int mouse_tilt_left;
37 extern int mouse_tilt_right;
38
39 //panel mode
40 enum { SINGLE_DESKTOP=0, MULTI_DESKTOP };
41 enum { BOTTOM_LAYER, NORMAL_LAYER, TOP_LAYER };
42 extern int panel_mode;
43 extern int wm_menu;
44 extern int panel_dock;
45 extern int panel_layer;
46
47 //panel position
48 enum { LEFT=0x01, RIGHT=0x02, CENTER=0X04, TOP=0X08, BOTTOM=0x10 };
49 extern int panel_position;
50 extern int panel_horizontal;
51
52 extern int panel_refresh;
53 extern int task_dragged;
54
55 //panel autohide
56 enum { STRUT_MINIMUM, STRUT_FOLLOW_SIZE, STRUT_NONE };
57 extern int panel_autohide;
58 extern int panel_autohide_show_timeout;
59 extern int panel_autohide_hide_timeout;
60 extern int panel_autohide_height; // for vertical panels this is of course the width
61 extern int panel_strut_policy;
62 extern char *panel_items_order;
63
64 extern int max_tick_urgent;
65
66 extern GArray* backgrounds;
67
68 extern Imlib_Image default_icon;
69
70
71 // tint2 use one panel per monitor and one taskbar per desktop.
72 typedef struct {
73 // always start with area
74 // area.list own all objects of the panel according to config file
75 Area area;
76
77 // --------------------------------------------------
78 // panel
79 Window main_win;
80 Pixmap temp_pmap;
81
82 // position relative to root window
83 int posx, posy;
84 int marginx, marginy;
85 int pourcentx, pourcenty;
86 // location of the panel (monitor number)
87 int monitor;
88
89 // --------------------------------------------------
90 // task and taskbar parameter per panel
91 Global_taskbar g_taskbar;
92 Global_task g_task;
93
94 // --------------------------------------------------
95 // taskbar point to the first taskbar in panel.area.list.
96 // number of tasbar == nb_desktop. taskbar[i] is for desktop(i).
97 // taskbar[i] is used to loop over taskbar,
98 // while panel->area.list is used to loop over all panel's objects
99 Taskbar *taskbar;
100 int nb_desktop;
101
102 // --------------------------------------------------
103 // clock
104 Clock clock;
105
106 // --------------------------------------------------
107 // battery
108 #ifdef ENABLE_BATTERY
109 Battery battery;
110 #endif
111
112 Launcher launcher;
113
114 // autohide
115 int is_hidden;
116 int hidden_width, hidden_height;
117 Pixmap hidden_pixmap;
118 timeout* autohide_timeout;
119 } Panel;
120
121
122 extern Panel panel_config;
123 extern Panel *panel1;
124 extern int nb_panel;
125
126
127 // default global data
128 void default_panel();
129
130 // freed memory
131 void cleanup_panel();
132
133 // realloc panels according to number of monitor
134 // use panel_config as default value
135 void init_panel();
136
137 void init_panel_size_and_position(Panel *panel);
138
139 void set_panel_items_order(Panel *p);
140 void set_panel_properties(Panel *p);
141
142 // draw background panel
143 void set_panel_background(Panel *p);
144
145 // detect witch panel
146 Panel *get_panel(Window win);
147
148 Taskbar *click_taskbar (Panel *panel, int x, int y);
149 Task *click_task (Panel *panel, int x, int y);
150 Launcher *click_launcher (Panel *panel, int x, int y);
151 LauncherIcon *click_launcher_icon (Panel *panel, int x, int y);
152 int click_padding(Panel *panel, int x, int y);
153 int click_clock(Panel *panel, int x, int y);
154 Area* click_area(Panel *panel, int x, int y);
155
156 void autohide_show(void* p);
157 void autohide_hide(void* p);
158 void autohide_trigger_show(Panel* p);
159 void autohide_trigger_hide(Panel* p);
160
161 #endif
This page took 0.038261 seconds and 4 git commands to generate.