/* ------------------------------- * vim:tabstop=4:shiftwidth=4 * settings.h * Sun, 12 Sep 2004 18:06:08 +0700 * ------------------------------- * settings parser\container * -------------------------------*/ #ifndef _SETTINGS_H_ #define _SETTINGS_H_ #include #include #include "systray.h" #include "layout.h" /* Default name of configuration file */ #define STALONETRAY_RC ".stalonetrayrc" struct Settings { /* Flags */ int parent_bg; /* Enable pseudo-transparency using parents' background*/ int deco_flags; /* Decoration flags */ int transparent; /* Enable root-transparency */ int skip_taskbar; /* Remove tray from wm`s taskbar */ int sticky; /* Make tray sticky across desktops/pages */ int xsync; /* Operate on X server syncronously */ int pixmap_bg; /* Is pixmap used for background */ int min_space_policy; /* Use placement that cause minimal grow */ int full_pmt_search; /* Use non-first-match search algorithm */ int vertical; /* Use vertical icon layout */ int shrink_back_mode; /* Keep tray's window size minimal */ int dockapp_mode; /* Activate dockapp mode */ int kludge_flags; /* What kludges to activate */ int need_help; /* Print usage and exit */ /* Strings */ char *display_str; /* Name of the display */ char *bg_color_str; /* Background color name */ char *scrollbars_highlight_color_str; /* Name of color to highlight scrollbars with. NULL means highlighting is disabled */ char *geometry_str; /* Geometry spec */ char *max_geometry_str; /* Geometry spec */ char *config_fname; /* Path to the configuration file */ char *wnd_type; /* Window type */ char *wnd_layer; /* Window layer */ char *wnd_name; /* Window name (WM_NAME) */ char *bg_pmap_path; /* Background pixmap path */ char *tint_color_str; /* Color used for tinting */ char *remote_click_name; /* Icon name to execute remote click on */ /* Values */ int icon_size; /* Icon size */ int slot_size; /* Grid slot size */ int grow_gravity; /* Icon gravity (interpretation of icon_gravity_str) */ int icon_gravity; /* Grow gravity (interpretation of grow_gravity_str) */ int win_gravity; /* Tray window gravity (computed using grow gravity) */ int bit_gravity; /* Tray window bit gravity (computed using icon_gravity) */ int geom_gravity; /* Tray window gravity when mapping the window (computed using geometry_str) */ int fuzzy_edges; /* Level of edges fuzziness (0 = disabled) */ int tint_level; /* Tinting level (0 = disabled) */ int scrollbars_mode; /* SB_MODE_NONE | SB_MODE_VERT | SB_MODE_HORZ */ int scrollbars_size; /* Size of scrollbar windows in pixels */ int scrollbars_inc; /* Step of scrollbar */ int wm_strut_mode; /* WM strut mode */ struct Point max_tray_dims;/* Maximal tray dimensions */ struct Point max_layout_dims; /* Maximal layout dimensions */ struct Point orig_tray_dims; /* Original tray dimensions */ struct Point remote_click_pos; /* Remote click position */ int remote_click_btn; /* Remote click button */ int remote_click_cnt; /* Remote click count */ XColor tint_color; /* Color used for tinting */ #ifdef DELAY_EMBEDDING_CONFIRMATION int confirmation_delay; #endif XColor bg_color; /* Tray background color */ XColor scrollbars_highlight_color; /* Color to highlight scrollbars with */ int log_level; /* Debug level */ }; extern struct Settings settings; /* Read settings from cmd line and configuration file */ int read_settings(int argc, char **argv); /* Interpret all settings that either need an * open display or are interpreted from other * settings */ void interpret_settings(); #endif