enlightenment/src/bin/e_border.h

150 lines
3.5 KiB
C

#ifndef E_BORDER_H
#define E_BORDER_H
typedef struct _E_Border E_Border;
struct _E_Border
{
E_Object e_obj_inherit;
struct {
struct {
int x, y, w, h;
int mx, my;
} current, last_down[3], last_up[3];
} mouse;
struct {
struct {
int x, y, w, h;
int mx, my;
int button;
} down;
} moveinfo;
Ecore_X_Window win;
int x, y, w, h;
int ref;
E_Container *container;
Evas_List *handlers;
struct {
int l, r, t, b;
} client_inset;
Ecore_Evas *bg_ecore_evas;
Evas *bg_evas;
Ecore_X_Window bg_win;
Evas_Object *bg_object;
Ecore_X_Window event_win;
struct {
Ecore_X_Window shell_win;
Ecore_X_Window win;
int x, y, w, h;
struct {
unsigned char changed : 1;
char *name;
} border;
struct {
char *title;
char *name;
char *class;
char *icon_name;
char *machine;
int min_w, min_h;
int max_w, max_h;
int base_w, base_h;
int step_w, step_h;
int start_x, start_y;
double min_aspect, max_aspect;
Ecore_X_Window_State_Hint initial_state;
Ecore_X_Pixmap icon_pixmap;
Ecore_X_Pixmap icon_mask;
Ecore_X_Window icon_window;
Ecore_X_Window window_group;
Ecore_X_Gravity gravity;
unsigned char take_focus : 1;
unsigned char accepts_focus : 1;
unsigned char urgent : 1;
unsigned char delete_request : 1;
unsigned char withdrawn : 1;
unsigned char iconic : 1;
unsigned char request_pos : 1;
struct {
unsigned int title : 1;
unsigned int name_class : 1;
unsigned int icon_name : 1;
unsigned int machine : 1;
unsigned int hints : 1;
unsigned int size_pos_hints : 1;
unsigned int protocol : 1;
} fetch;
} icccm;
struct {
unsigned char borderless : 1;
struct {
unsigned int borderless : 1;
} fetch;
} mwm;
struct {
pid_t pid;
int desktop;
struct {
unsigned int pid : 1;
unsigned int desktop : 1;
} fetch;
} netwm;
Ecore_X_Window_Attributes initial_attributes;
} client;
E_Container_Shape *shape;
unsigned char visible : 1;
unsigned char moving : 1;
unsigned char focused : 1;
unsigned char new_client : 1;
unsigned char re_manage : 1;
unsigned char changed : 1;
unsigned char ignore_first_unmap;
unsigned char resize_mode;
struct {
unsigned int visible : 1;
unsigned int pos : 1;
unsigned int size : 1;
unsigned int stack : 1;
unsigned int prop : 1;
unsigned int border : 1;
unsigned int reset_gravity : 1;
} changes;
};
EAPI int e_border_init(void);
EAPI int e_border_shutdown(void);
EAPI E_Border *e_border_new(E_Container *con, Ecore_X_Window win, int first_map);
EAPI void e_border_free(E_Border *bd);
EAPI void e_border_ref(E_Border *bd);
EAPI void e_border_unref(E_Border *bd);
EAPI void e_border_show(E_Border *bd);
EAPI void e_border_hide(E_Border *bd);
EAPI void e_border_move(E_Border *bd, int x, int y);
EAPI void e_border_resize(E_Border *bd, int w, int h);
EAPI void e_border_move_resize(E_Border *bd, int x, int y, int w, int h);
EAPI void e_border_raise(E_Border *bd);
EAPI void e_border_lower(E_Border *bd);
EAPI void e_border_stack_above(E_Border *bd, E_Border *above);
EAPI void e_border_stack_below(E_Border *bd, E_Border *below);
EAPI E_Border *e_border_find_by_client_window(Ecore_X_Window win);
EAPI void e_border_idler_before(void);
#endif