enlightenment/src/border.h

262 lines
6.5 KiB
C

#ifndef E_BORDER_H
#define E_BORDER_H
#include "e.h"
#include "observer.h"
#include "debug.h"
#include "text.h"
#ifndef E_DESKTOPS_TYPEDEF
#define E_DESKTOPS_TYPEDEF
typedef struct _E_Desktop E_Desktop;
#endif
typedef struct _E_Grab E_Grab;
typedef struct _E_Border E_Border;
struct _E_Grab
{
int button;
Ecore_Event_Key_Modifiers mods;
int any_mod;
int remove_after;
int allow;
};
struct _E_Border
{
E_Observee obs;
struct
{
Window main;
Window b;
Window input;
Window container;
Window client;
}
win;
Evas *evas;
struct
{
E_Text *title;
Evas_Object *title_clip;
}
obj;
Evas_List *windows;
struct
{
int new;
Ebits_Object b;
}
bits;
struct
{
struct
{
int x, y, w, h;
int visible;
int dx, dy;
}
requested;
int x, y, w, h;
int visible;
int selected;
int select_lost_from_grab;
int shaded;
int has_shape;
int shape_changes;
int shaped_client;
}
current , previous;
struct
{
struct
{
int w, h;
double aspect;
}
base , min, max, step;
int layer;
char *title;
char *name;
char *class;
char *command;
char *machine;
char *icon_name;
int pid;
Window group;
int takes_focus;
int sticky;
Colormap colormap;
int fixed;
int arrange_ignore;
int hidden;
int iconified;
int titlebar;
int border;
int handles;
int initial_state;
int is_desktop;
int w, h;
int no_place;
struct
{
int launch_id;
pid_t pid;
pid_t ppid;
uid_t user;
}
e;
struct
{
int requested;
int x, y;
int gravity;
}
pos;
int desk;
struct
{
int x, y;
}
area;
int internal;
struct
{
int matched;
struct
{
int matched;
int ignore;
}
prog_location;
struct
{
int matched;
char *style;
}
border;
struct
{
int matched;
int x, y;
}
location;
struct
{
int matched;
int x, y;
}
desk_area;
struct
{
int matched;
int w, h;
}
size;
struct
{
int matched;
int desk;
}
desktop;
struct
{
int matched;
int sticky;
}
sticky;
struct
{
int matched;
int layer;
}
layer;
}
matched;
}
client;
struct
{
int move, resize;
}
mode;
struct
{
int x, y, w, h;
int is;
}
max;
int ignore_unmap;
int shape_changed;
int placed;
E_Grab *click_grab;
E_Desktop *desk;
char *border_style;
char *border_file;
int first_expose;
int hold_changes;
int changed;
};
/**
* e_border_init - Border handling initialization.
*
* This function registers the border event handlers
* against ecore.
*/
void e_border_init(void);
E_Border *e_border_new(void);
void e_border_update_borders(void);
void e_border_redraw_region(E_Border *b, int x, int y,
int w, int h);
void e_border_update_render(E_Border * b);
void e_border_apply_border(E_Border * b);
void e_border_reshape(E_Border * b);
void e_border_release(E_Border * b);
E_Border *e_border_adopt(Window win, int use_client_pos);
void e_border_adopt_children(Window win);
void e_border_remove_mouse_grabs(E_Border * b);
void e_border_remove_click_grab(E_Border * b);
void e_border_attach_mouse_grabs(E_Border * b);
void e_border_remove_all_mouse_grabs(void);
void e_border_attach_all_mouse_grabs(void);
void e_border_redo_grabs(void);
E_Border *e_border_find_by_window(Window win);
void e_border_set_bits(E_Border * b, char *file);
void e_border_set_color_class(E_Border * b, char *class, int rr,
int gg, int bb, int aa);
void e_border_adjust_limits(E_Border * b);
void e_border_update(E_Border * b);
void e_border_set_layer(E_Border * b, int layer);
void e_border_raise(E_Border * b);
void e_border_lower(E_Border * b);
void e_border_iconify(E_Border * b);
void e_border_uniconify(E_Border * b);
void e_border_raise_above(E_Border * b, E_Border * above);
void e_border_lower_below(E_Border * b, E_Border * below);
E_Border *e_border_current_focused(void);
void e_border_focus_grab_ended(void);
void e_border_send_pointer(E_Border * b);
int e_border_viewable(E_Border * b);
void e_border_print_pos(char *buf, E_Border * b);
void e_border_print_size(char *buf, E_Border * b);
void e_border_set_gravity(E_Border * b, int gravity);
Evas_List *e_border_get_borders_list();
void e_borders_scroll_list(Evas_List *borders,
int dx, int dy);
#endif