/* * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ #ifdef E_TYPEDEFS #define E_CONFIG_LIMIT(v, min, max) {if (v > max) v = max; else if (v < min) v = min;} typedef struct _E_Config E_Config; typedef struct _E_Config_Module E_Config_Module; typedef struct _E_Config_Theme E_Config_Theme; typedef struct _E_Config_Binding_Mouse E_Config_Binding_Mouse; typedef struct _E_Config_Binding_Key E_Config_Binding_Key; typedef struct _E_Config_Binding_Signal E_Config_Binding_Signal; typedef struct _E_Config_Binding_Wheel E_Config_Binding_Wheel; typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background; typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name; typedef struct _E_Config_Gadcon E_Config_Gadcon; typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client; typedef struct _E_Config_Shelf E_Config_Shelf; typedef struct _E_Config_Shelf_Desk E_Config_Shelf_Desk; typedef struct _E_Config_Mime_Icon E_Config_Mime_Icon; typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme; #else #ifndef E_CONFIG_H #define E_CONFIG_H /* increment this whenever we change config enough that you need new * defaults for e to work. */ #define E_CONFIG_FILE_EPOCH 0x0001 /* increment this whenever a new set of config values are added but the users * config doesn't need to be wiped - simply new values need to be put in */ #define E_CONFIG_FILE_GENERATION 0x0120 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION) #define E_EVAS_ENGINE_DEFAULT 0 #define E_EVAS_ENGINE_SOFTWARE_X11 1 #define E_EVAS_ENGINE_GL_X11 2 #define E_EVAS_ENGINE_XRENDER_X11 3 typedef enum _E_Engine_Context { E_ENGINE_CONTEXT_INIT, E_ENGINE_CONTEXT_CONTAINER, E_ENGINE_CONTEXT_ZONE, E_ENGINE_CONTEXT_BORDER, E_ENGINE_CONTEXT_MENU, E_ENGINE_CONTEXT_ERROR, E_ENGINE_CONTEXT_WIN, E_ENGINE_CONTEXT_POPUP, E_ENGINE_CONTEXT_DRAG } E_Engine_Context; struct _E_Config { int config_version; // INTERNAL int show_splash; // GUI const char *init_default_theme; // GUI const char *desktop_default_background; // GUI Evas_List *desktop_backgrounds; // GUI const char *desktop_default_name; Evas_List *desktop_names; // GUI double menus_scroll_speed; // GUI double menus_fast_mouse_move_threshhold; // GUI double menus_click_drag_timeout; // GUI int border_shade_animate; // GUI int border_shade_transition; // GUI double border_shade_speed; // GUI double framerate; // GUI int image_cache; // GUI int font_cache; // GUI int edje_cache; // GUI int edje_collection_cache; // GUI double cache_flush_interval; // GUI int zone_desks_x_count; // GUI int zone_desks_y_count; // GUI int use_virtual_roots; // NO GUI - maybe remove? int show_desktop_icons; // GUI int edge_flip_dragging; // GUI int edge_flip_moving; // GUI double edge_flip_timeout; // GUI int evas_engine_default; // GUI int evas_engine_container; // NO GUI - maybe remove? int evas_engine_init; // NO GUI - maybe remove? int evas_engine_menus; // NO GUI - maybe remove? int evas_engine_borders; // NO GUI - maybe remove? int evas_engine_errors; // NO GUI - maybe remove? int evas_engine_popups; // NO GUI - maybe remove? int evas_engine_drag; // NO GUI - maybe remove? int evas_engine_win; // NO GUI - maybe remove? int evas_engine_zone; // NO GUI - maybe remove? int use_composite; // GUI const char *language; // GUI Evas_List *modules; // GUI Evas_List *font_fallbacks; // GUI Evas_List *font_defaults; // GUI Evas_List *themes; // GUI Evas_List *mouse_bindings; // GUI Evas_List *key_bindings; // GUI Evas_List *signal_bindings; Evas_List *wheel_bindings; // GUI Evas_List *path_append_data; // GUI Evas_List *path_append_images; // GUI Evas_List *path_append_fonts; // GUI Evas_List *path_append_themes; // GUI Evas_List *path_append_init; // GUI Evas_List *path_append_icons; // GUI Evas_List *path_append_modules; // GUI Evas_List *path_append_backgrounds; // GUI Evas_List *path_append_messages; // GUI int window_placement_policy; // GUI int focus_policy; // GUI int focus_setting; // GUI int pass_click_on; // GUI int always_click_to_raise; // GUI int always_click_to_focus; // GUI int use_auto_raise; // GUI double auto_raise_delay; // GUI int use_resist; // GUI int drag_resist; int desk_resist; // GUI int window_resist; // GUI int gadget_resist; // GUI int winlist_warp_while_selecting; // GUI int winlist_warp_at_end; // GUI double winlist_warp_speed; // GUI int winlist_scroll_animate; // GUI double winlist_scroll_speed; // GUI int winlist_list_show_iconified; // GUI int winlist_list_show_other_desk_iconified; // GUI int winlist_list_show_other_screen_iconified; // GUI int winlist_list_show_other_desk_windows; // GUI int winlist_list_show_other_screen_windows; // GUI int winlist_list_uncover_while_selecting; // GUI int winlist_list_jump_desk_while_selecting; // GUI int winlist_list_focus_while_selecting; // GUI int winlist_list_raise_while_selecting; // GUI double winlist_pos_align_x; // GUI double winlist_pos_align_y; // GUI double winlist_pos_size_w; // GUI double winlist_pos_size_h; // GUI int winlist_pos_min_w; // GUI int winlist_pos_min_h; // GUI int winlist_pos_max_w; // GUI int winlist_pos_max_h; // GUI int maximize_policy; // GUI int allow_manip; // GUI int border_fix_on_shelf_toggle; // GUI int allow_above_fullscreen; // GUI int kill_if_close_not_possible; int kill_process; double kill_timer_wait; int ping_clients; double ping_clients_wait; const char *transition_start; // GUI const char *transition_desk; // GUI const char *transition_change; // GUI Evas_List *remembers; int remember_internal_windows; // GUI int move_info_follows; // GUI int resize_info_follows; // GUI int move_info_visible; // GUI int resize_info_visible; // GUI int focus_last_focused_per_desktop; // GUI int focus_revert_on_hide_or_close; // GUI int use_e_cursor; // GUI int cursor_size; // GUI int menu_autoscroll_margin; // GUI int menu_autoscroll_cursor_margin; // GUI const char *input_method; // GUI struct { int move; int resize; int raise; int lower; int layer; int desktop; int iconify; } transient; int modal_windows; int menu_eap_name_show; // GUI int menu_eap_generic_show; // GUI int menu_eap_comment_show; // GUI int menu_favorites_show; // GUI int menu_apps_show; // GUI int fullscreen_policy; // GUI int exebuf_max_exe_list; // GUI int exebuf_max_eap_list; // GUI int exebuf_max_hist_list; // GUI int exebuf_scroll_animate; // GUI double exebuf_scroll_speed; // GUI double exebuf_pos_align_x; // GUI double exebuf_pos_align_y; // GUI double exebuf_pos_size_w; // GUI double exebuf_pos_size_h; // GUI int exebuf_pos_min_w; // GUI int exebuf_pos_min_h; // GUI int exebuf_pos_max_w; // GUI int exebuf_pos_max_h; // GUI const char *exebuf_term_cmd; // GUI Evas_List *color_classes; // GUI int use_app_icon; // GUI int cnfmdlg_disabled; // GUI int cfgdlg_auto_apply; // GUI int cfgdlg_default_mode; // GUI Evas_List *gadcons; // GUI Evas_List *shelves; // GUI int font_hinting; // GUI const char *desklock_personal_passwd; // GUI const char *desklock_background; // GUI int desklock_auth_method; // GUI int desklock_login_box_zone; // GUI int desklock_autolock_screensaver; // GUI int desklock_autolock_idle; // GUI double desklock_autolock_idle_timeout; // GUI int desklock_use_custom_desklock; // GUI const char *desklock_custom_desklock_cmd; // GUI int screensaver_enable; // GUI int screensaver_timeout; // GUI int screensaver_interval; // GUI int screensaver_blanking; // GUI int screensaver_expose; // GUI int dpms_enable; // GUI int dpms_standby_enable; // GUI int dpms_standby_timeout; // GUI int dpms_suspend_enable; // GUI int dpms_suspend_timeout; // GUI int dpms_off_enable; // GUI int dpms_off_timeout; // GUI int clientlist_group_by; // GUI int clientlist_include_all_zones; // GUI int clientlist_separate_with; // GUI int clientlist_sort_by; // GUI int clientlist_separate_iconified_apps; // GUI int clientlist_warp_to_iconified_desktop; // GUI int clientlist_limit_caption_len; // GUI int clientlist_max_caption_len; // GUI int mouse_accel_numerator; // GUI int mouse_accel_denominator; // GUI int mouse_accel_threshold; // GUI int display_res_restore; // GUI int display_res_width; // GUI int display_res_height; // GUI int display_res_hz; // GUI int display_res_rotation; // GUI int border_raise_on_mouse_action; // GUI int border_raise_on_focus; // GUI int desk_flip_wrap; // GUI const char *icon_theme; // GUI int desk_flip_animate_mode; // GUI int desk_flip_animate_interpolation; // GUI double desk_flip_animate_time; // GUI const char *wallpaper_import_last_dev; // INTERNAL const char *wallpaper_import_last_path; // INTERNAL int wallpaper_grad_c1_r; // INTERNAL int wallpaper_grad_c1_g; // INTERNAL int wallpaper_grad_c1_b; // INTERNAL int wallpaper_grad_c2_r; // INTERNAL int wallpaper_grad_c2_g; // INTERNAL int wallpaper_grad_c2_b; // INTERNAL const char *theme_default_border_style; // GUI Evas_List *mime_icons; // GUI int desk_auto_switch; // GUI; int thumb_nice; }; struct _E_Config_Module { const char *name; unsigned char enabled; unsigned char delayed; }; struct _E_Config_Theme { const char *category; const char *file; }; struct _E_Config_Binding_Mouse { int context; int modifiers; const char *action; const char *params; unsigned char button; unsigned char any_mod; }; struct _E_Config_Binding_Key { int context; int modifiers; const char *key; const char *action; const char *params; unsigned char any_mod; }; struct _E_Config_Binding_Signal { int context; const char *signal; const char *source; int modifiers; unsigned char any_mod; const char *action; const char *params; }; struct _E_Config_Binding_Wheel { int context; int direction; int z; int modifiers; unsigned char any_mod; const char *action; const char *params; }; struct _E_Config_Desktop_Background { int container; int zone; int desk_x; int desk_y; const char *file; }; struct _E_Config_Desktop_Name { int container; int zone; int desk_x; int desk_y; const char *name; }; struct _E_Config_Gadcon { const char *name; const char *id; Evas_List *clients; }; struct _E_Config_Gadcon_Client { const char *name; const char *id; struct { int pos, size, res; } geom; struct { int seq, flags; } state_info; const char *style; unsigned char autoscroll; unsigned char resizable; }; struct _E_Config_Shelf { const char *name; int container, zone; int layer; unsigned char popup; int orient; unsigned char fit_along; unsigned char fit_size; const char *style; int size; int overlap; int autohide; int autohide_show_action; float hide_timeout; float hide_duration; int desk_show_mode; Evas_List *desk_list; }; struct _E_Config_Shelf_Desk { int x, y; }; struct _E_Config_Mime_Icon { const char *mime; const char *icon; }; struct _E_Event_Config_Icon_Theme { const char *icon_theme; }; EAPI int e_config_init(void); EAPI int e_config_shutdown(void); EAPI int e_config_save(void); EAPI void e_config_save_flush(void); EAPI void e_config_save_queue(void); EAPI char *e_config_profile_get(void); EAPI void e_config_profile_set(char *prof); EAPI Evas_List *e_config_profile_list(void); EAPI void e_config_profile_add(char *prof); EAPI void e_config_profile_del(char *prof); EAPI Evas_List *e_config_engine_list(void); EAPI void e_config_save_block_set(int block); EAPI int e_config_save_block_get(void); EAPI void *e_config_domain_load(char *domain, E_Config_DD *edd); EAPI int e_config_profile_save(void); EAPI int e_config_domain_save(char *domain, E_Config_DD *edd, void *data); EAPI E_Config_Binding_Mouse *e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in); EAPI E_Config_Binding_Key *e_config_binding_key_match(E_Config_Binding_Key *eb_in); EAPI E_Config_Binding_Signal *e_config_binding_signal_match(E_Config_Binding_Signal *eb_in); EAPI E_Config_Binding_Wheel *e_config_binding_wheel_match(E_Config_Binding_Wheel *eb_in); extern EAPI E_Config *e_config; extern EAPI int E_EVENT_CONFIG_ICON_THEME; #endif #endif