move some code to termiointernals to be able to test it

This commit is contained in:
Boris Faure 2019-02-02 15:36:58 +01:00
parent b05e20333d
commit e6886bcaee
5 changed files with 2578 additions and 2492 deletions

View File

@ -23,6 +23,7 @@ terminology_sources = ['private.h', 'coverity.h',
'termio.c', 'termio.h', 'termio.c', 'termio.h',
'termcmd.c', 'termcmd.h', 'termcmd.c', 'termcmd.h',
'term_container.h', 'term_container.h',
'termiointernals.c', 'termiointernals.h',
'termiolink.c', 'termiolink.h', 'termiolink.c', 'termiolink.h',
'termpty.c', 'termpty.h', 'termpty.c', 'termpty.h',
'termptydbl.c', 'termptydbl.h', 'termptydbl.c', 'termptydbl.h',
@ -54,9 +55,13 @@ tyfuzz_sources = ['termptyesc.c', 'termptyesc.h',
'termptyext.c', 'termptyext.h', 'termptyext.c', 'termptyext.h',
'termptygfx.c', 'termptygfx.h', 'termptygfx.c', 'termptygfx.h',
'termpty.c', 'termpty.h', 'termpty.c', 'termpty.h',
'termiointernals.c', 'termiointernals.h',
'termiolink.c', 'termiolink.h',
'config.c', 'config.h', 'config.c', 'config.h',
'col.c', 'col.h', 'col.c', 'col.h',
'sb.c', 'sb.h', 'sb.c', 'sb.h',
'utf8.c', 'utf8.h',
'utils.c', 'utils.h',
'tyfuzz.c'] 'tyfuzz.c']
tytest_sources = ['termptyesc.c', 'termptyesc.h', tytest_sources = ['termptyesc.c', 'termptyesc.h',
'termptysave.c', 'termptysave.h', 'termptysave.c', 'termptysave.h',
@ -65,9 +70,13 @@ tytest_sources = ['termptyesc.c', 'termptyesc.h',
'termptyext.c', 'termptyext.h', 'termptyext.c', 'termptyext.h',
'termptygfx.c', 'termptygfx.h', 'termptygfx.c', 'termptygfx.h',
'termpty.c', 'termpty.h', 'termpty.c', 'termpty.h',
'termiointernals.c', 'termiointernals.h',
'termiolink.c', 'termiolink.h',
'config.c', 'config.h', 'config.c', 'config.h',
'col.c', 'col.h', 'col.c', 'col.h',
'sb.c', 'sb.h', 'sb.c', 'sb.h',
'utf8.c', 'utf8.h',
'utils.c', 'utils.h',
'md5/md5.c', 'md5/md5.h', 'md5/md5.c', 'md5/md5.h',
'tytest.c', 'tytest.h'] 'tytest.c', 'tytest.h']

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,7 @@
#include "col.h" #include "col.h"
#include "termpty.h" #include "termpty.h"
#include "win.h" #include "win.h"
#include "termiointernals.h"
Evas_Object *termio_add(Evas_Object *parent, Config *config, const char *cmd, Evas_Object *termio_add(Evas_Object *parent, Config *config, const char *cmd,
Eina_Bool login_shell, const char *cd, int w, int h, Eina_Bool login_shell, const char *cd, int w, int h,
@ -13,12 +14,15 @@ Evas_Object *termio_add(Evas_Object *parent, Config *config, const char *cmd,
void termio_win_set(Evas_Object *obj, Evas_Object *win); void termio_win_set(Evas_Object *obj, Evas_Object *win);
void termio_theme_set(Evas_Object *obj, Evas_Object *theme); void termio_theme_set(Evas_Object *obj, Evas_Object *theme);
Eina_Bool termio_selection_exists(const Evas_Object *obj); Eina_Bool termio_selection_exists(const Evas_Object *obj);
void termio_take_selection_text(Termio *sd, Elm_Sel_Type type, const char *text);
void termio_scroll_top_backlog(Evas_Object *obj); void termio_scroll_top_backlog(Evas_Object *obj);
void termio_scroll_delta(Evas_Object *obj, int delta, int by_page); void termio_scroll_delta(Evas_Object *obj, int delta, int by_page);
void termio_scroll_set(Evas_Object *obj, int scroll); void termio_scroll_set(Evas_Object *obj, int scroll);
void termio_scroll(Evas_Object *obj, int direction, int start_y, int end_y);
void termio_content_change(Evas_Object *obj, Evas_Coord x, Evas_Coord y, int n); void termio_content_change(Evas_Object *obj, Evas_Coord x, Evas_Coord y, int n);
void
termio_handle_right_click(Evas_Event_Mouse_Down *ev, Termio *sd,
int cx, int cy);
void termio_config_update(Evas_Object *obj); void termio_config_update(Evas_Object *obj);
void termio_font_update(Evas_Object *obj); void termio_font_update(Evas_Object *obj);
Config *termio_config_get(const Evas_Object *obj); Config *termio_config_get(const Evas_Object *obj);
@ -60,5 +64,12 @@ void termio_key_down(Evas_Object *termio, const Evas_Event_Key_Down *ev,
Eina_Bool action_handled); Eina_Bool action_handled);
void termio_focus_in(Evas_Object *termio); void termio_focus_in(Evas_Object *termio);
void termio_focus_out(Evas_Object *termio); void termio_focus_out(Evas_Object *termio);
void termio_smart_update_queue(Termio *sd);
void termio_object_geometry_get(Termio *sd,
Evas_Coord *x, Evas_Coord *y,
Evas_Coord *w, Evas_Coord *h);
void
termio_sel_set(Termio *sd, Eina_Bool enable);
void
termio_smart_cb_mouse_move_job(void *data);
#endif #endif

2192
src/bin/termiointernals.c Normal file

File diff suppressed because it is too large Load Diff

109
src/bin/termiointernals.h Normal file
View File

@ -0,0 +1,109 @@
#ifndef _TERMIOINTERNALS_H__
#define _TERMIOINTERNALS_H__ 1
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;
int suspend;
uint16_t id;
Eina_List *objs;
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;
Evas_Object *ctxpopup;
int zoom_fontsize_start;
int scroll;
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;
};
#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);
void
termio_internal_mouse_up(Termio *sd, Evas_Event_Mouse_Up *ev);
void
termio_internal_mouse_move(Termio *sd, Evas_Event_Mouse_Move *ev);
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);
#endif