]> Dogcows Code - chaz/tint2/blobdiff - src/panel.h
*fix* better internal urgent task handling
[chaz/tint2] / src / panel.h
index 79fb625e38a5312ee5b44c6ae7995af6877c2e9a..73d7f50adce9838ad15659df4f169b4b9cb36620 100644 (file)
 #include "taskbar.h"
 #include "systraybar.h"
 
+#ifdef ENABLE_BATTERY
+#include "battery.h"
+#endif
+
+
+extern int signal_pending;
+// --------------------------------------------------
+// mouse events
+extern int mouse_middle;
+extern int mouse_right;
+extern int mouse_scroll_up;
+extern int mouse_scroll_down;
+extern int mouse_tilt_left;
+extern int mouse_tilt_right;
 
 //panel mode
-enum { SINGLE_DESKTOP=0, MULTI_DESKTOP, MULTI_MONITOR };
+enum { SINGLE_DESKTOP=0, MULTI_DESKTOP };
+extern int panel_mode;
+extern int wm_menu;
+extern int panel_dock;
 
-//panel alignment
+//panel position
 enum { LEFT=0x01, RIGHT=0x02, CENTER=0X04, TOP=0X08, BOTTOM=0x10 };
+extern int panel_position;
+extern int panel_horizontal;
+
+extern int panel_refresh;
+
+extern Task *task_active;
+extern Task *task_drag;
+extern int  max_tick_urgent;
+
+extern Imlib_Image default_icon;
 
 
+// tint2 use one panel per monitor and one taskbar per desktop.
 typedef struct {
-   // always start with area
-   Area area;
-
-   // --------------------------------------------------
-   // backward compatibility
-   int old_config_file;
-   int old_task_icon;
-   int old_panel_background;
-   int old_task_background;
-   char *old_task_font;
-
-   // --------------------------------------------------
-   // panel
-   int signal_pending;
-   int sleep_mode;
-   int refresh;
-   int monitor;
-   int position;
-   int marginx, marginy;
-
-   // --------------------------------------------------
-   // taskbar point to the first taskbar in panel.area.list. number of tasbar == nb_desktop x nb_monitor.
-   Taskbar *taskbar;
-   int mode;
-   int nb_desktop;
-   int nb_monitor;
-   Task *task_active;
-   Task *task_drag;
-
-   // --------------------------------------------------
-   // clock
-   Clock clock;
-
-   // --------------------------------------------------
-   // systray
-   Systraybar systraybar;
-
-   // --------------------------------------------------
-   // mouse events
-   int mouse_middle;
-   int mouse_right;
-   int mouse_scroll_up;
-   int mouse_scroll_down;
+       // always start with area
+       // area.list own all objects of the panel according to config file
+       Area area;
+
+       // --------------------------------------------------
+       // panel
+       Window main_win;
+       Pixmap temp_pmap;
+
+       // position relative to root window
+       int posx, posy;
+       int marginx, marginy;
+       int pourcentx, pourcenty;
+       // location of the panel (monitor number)
+       int monitor;
+
+       // --------------------------------------------------
+       // task and taskbar parameter per panel
+       Area g_taskbar;
+       Global_task g_task;
+
+       // --------------------------------------------------
+       // taskbar point to the first taskbar in panel.area.list.
+       // number of tasbar == nb_desktop. taskbar[i] is for desktop(i).
+       // taskbar[i] is used to loop over taskbar,
+       // while panel->area.list is used to loop over all panel's objects
+       Taskbar *taskbar;
+       int  nb_desktop;
+
+       // --------------------------------------------------
+       // clock
+       Clock clock;
+
+       // --------------------------------------------------
+       // battery
+#ifdef ENABLE_BATTERY
+       Battery battery;
+#endif
 } Panel;
 
 
-Panel panel;
+extern Panel panel_config;
+extern Panel *panel1;
+extern int  nb_panel;
+
+// realloc panels according to number of monitor
+// use panel_config as default value
+void init_panel();
 
+void init_panel_size_and_position(Panel *panel);
+void cleanup_panel();
+void resize_panel(void *obj);
 
-void visual_refresh ();
-void set_panel_properties (Window win);
-void window_draw_panel ();
+void set_panel_properties(Panel *p);
 void visible_object();
-void set_panel_background();
+
+// draw background panel
+void set_panel_background(Panel *p);
+
+// detect witch panel
+Panel *get_panel(Window win);
+
+Taskbar *click_taskbar (Panel *panel, int x, int y);
+Task *click_task (Panel *panel, int x, int y);
+int click_padding(Panel *panel, int x, int y);
+int click_clock(Panel *panel, int x, int y);
+Area* click_area(Panel *panel, int x, int y);
 
 #endif
This page took 0.027555 seconds and 4 git commands to generate.