src/panel.h (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
/************************************************************************** * Copyright (C) 2008 Pål Staurland (staura@gmail.com) * Modified (C) 2008/2009 thierry lorthiois (lorthiois@bbsoft.fr) * * panel : * - draw panel and all objects according to panel_layout * * **************************************************************************/ #ifndef PANEL_H #define PANEL_H #include <pango/pangocairo.h> #include <sys/time.h> #include "common.h" #include "clock.h" #include "task.h" #include "taskbar.h" #include "systraybar.h" #include "launcher.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 }; enum { BOTTOM_LAYER, NORMAL_LAYER, TOP_LAYER }; extern int panel_mode; extern int wm_menu; extern int panel_dock; extern int panel_layer; //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 int task_dragged; //panel autohide enum { STRUT_MINIMUM, STRUT_FOLLOW_SIZE, STRUT_NONE }; extern int panel_autohide; extern int panel_autohide_show_timeout; extern int panel_autohide_hide_timeout; extern int panel_autohide_height; // for vertical panels this is of course the width extern int panel_strut_policy; extern int max_tick_urgent; extern GArray* backgrounds; extern Imlib_Image default_icon; // tint2 use one panel per monitor and one taskbar per desktop. typedef struct { // 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 Global_taskbar 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 Launcher launcher; // autohide int is_hidden; int hidden_width, hidden_height; Pixmap hidden_pixmap; timeout* autohide_timeout; } Panel; extern Panel panel_config; extern Panel *panel1; extern int nb_panel; // default global data void default_panel(); // freed memory void cleanup_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 resize_panel(void *obj); void set_panel_properties(Panel *p); void visible_object(); // 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); Launcher *click_launcher (Panel *panel, int x, int y); LauncherIcon *click_launcher_icon (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); void autohide_show(void* p); void autohide_hide(void* p); void autohide_trigger_show(Panel* p); void autohide_trigger_hide(Panel* p); #endif |