Terminal emulator with all the bells and whistles https://www.enlightenment.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

159 lines
3.9 KiB

#ifndef TERMINOLOGY_TERMIOINTERNALS_H_
#define TERMINOLOGY_TERMIOINTERNALS_H_ 1
#if defined(BINARY_TYFUZZ) || defined(BINARY_TYTEST)
typedef void Term;
#endif
typedef struct _Termio Termio;
struct _Termio
{
Evas_Object_Smart_Clipped_Data __clipped_data;
struct {
const char *name;
int size;
int chw, chh;
} font;
struct {
int w, h;
Evas_Object *obj;
} grid;
struct {
Evas_Object *top, *bottom, *theme;
} sel;
struct {
Evas_Object *obj;
int x, y;
Cursor_Shape shape;
} cursor;
struct {
int cx, cy;
int button;
} mouse;
struct {
const char *string;
int x1, y1, x2, y2;
Eina_Bool is_color;
int suspend;
uint16_t id;
Eina_List *objs;
struct {
uint8_t r;
uint8_t g;
uint8_t b;
uint8_t a;
} color;
struct {
Evas_Object *dndobj;
Evas_Coord x, y;
unsigned char down : 1;
unsigned char dnd : 1;
unsigned char dndobjdel : 1;
} down;
} link;
struct {
const char *file;
FILE *f;
double progress;
unsigned long long total, size;
Eina_Bool active : 1;
} sendfile;
struct {
int r;
int g;
int b;
int a;
} saved_bg, saved_fg, saved_cursor;
Evas_Object *ctxpopup;
int zoom_fontsize_start;
int scroll;
int font_size_scale;
Evas_Object *self;
Evas_Object *event;
Term *term;
Termpty *pty;
Ecore_Animator *anim;
Ecore_Timer *delayed_size_timer;
Ecore_Timer *link_do_timer;
Ecore_Timer *mouse_selection_scroll_timer;
Ecore_Job *mouse_move_job;
Ecore_Timer *mouseover_delay;
Evas_Object *win, *theme, *glayer;
Config *config;
const char *sel_str;
Eina_List *cur_chids;
Ecore_Job *sel_reset_job;
double set_sel_at;
Elm_Sel_Type sel_type;
unsigned char jump_on_change : 1;
unsigned char jump_on_keypress : 1;
unsigned char have_sel : 1;
unsigned char noreqsize : 1;
unsigned char didclick : 1;
unsigned char moved : 1;
unsigned char bottom_right : 1;
unsigned char top_left : 1;
unsigned char reset_sel : 1;
unsigned char cb_added : 1;
double gesture_zoom_start_size;
};
typedef struct _Termio_Modifiers Termio_Modifiers;
struct _Termio_Modifiers
{
unsigned char alt : 1;
unsigned char shift : 1;
unsigned char ctrl : 1;
unsigned char super : 1;
unsigned char meta : 1;
unsigned char hyper : 1;
unsigned char iso_level3_shift : 1;
unsigned char altgr : 1;
};
#define INT_SWAP(_a, _b) do { \
int _swap = _a; _a = _b; _b = _swap; \
} while (0)
void
termio_internal_mouse_down(Termio *sd,
Evas_Event_Mouse_Down *ev,
Termio_Modifiers modifiers);
void
termio_internal_mouse_up(Termio *sd,
Evas_Event_Mouse_Up *ev,
Termio_Modifiers modifiers);
void
termio_internal_mouse_move(Termio *sd,
Evas_Event_Mouse_Move *ev,
Termio_Modifiers modifiers);
void
termio_internal_mouse_wheel(Termio *sd,
Evas_Event_Mouse_Wheel *ev,
Termio_Modifiers modifiers);
void
termio_selection_dbl_fix(Termio *sd);
void
termio_selection_get(Termio *sd,
int c1x, int c1y, int c2x, int c2y,
struct ty_sb *sb,
Eina_Bool rtrim);
void
termio_scroll(Evas_Object *obj, int direction, int start_y, int end_y);
void
termio_cursor_to_xy(Termio *sd, Evas_Coord x, Evas_Coord y,
int *cx, int *cy);
void
termio_internal_render(Termio *sd,
Evas_Coord ox, Evas_Coord oy,
int *preedit_xp, int *preedit_yp);
const char *
termio_internal_get_selection(Termio *sd, size_t *lenp);
#endif