forked from enlightenment/enlightenment
277 lines
6.5 KiB
C
277 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 l, r, t, b;
|
|
Window input;
|
|
Window container;
|
|
Window client;
|
|
}
|
|
win;
|
|
struct
|
|
{
|
|
Evas l, r, t, b;
|
|
}
|
|
evas;
|
|
struct
|
|
{
|
|
struct
|
|
{
|
|
E_Text *l, *r, *t, *b;
|
|
}
|
|
title;
|
|
struct
|
|
{
|
|
Evas_Object l, r, t, b;
|
|
}
|
|
title_clip;
|
|
}
|
|
obj;
|
|
struct
|
|
{
|
|
Pixmap l, r, t, b;
|
|
}
|
|
pixmap;
|
|
struct
|
|
{
|
|
int new;
|
|
Ebits_Object l, r, t, 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;
|
|
|
|
Evas_List grabs;
|
|
E_Grab *click_grab;
|
|
E_Desktop *desk;
|
|
|
|
char *border_style;
|
|
char *border_file;
|
|
|
|
int first_expose;
|
|
|
|
int hold_changes;
|
|
|
|
Evas_List menus;
|
|
|
|
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_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_raise_next(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();
|
|
#endif
|