2013-07-20 01:51:56 -07:00
|
|
|
#include "common.h"
|
|
|
|
|
2016-02-09 00:19:23 -08:00
|
|
|
#define VIEW_RESIZE_TYPE_W "W"
|
|
|
|
#define VIEW_RESIZE_TYPE_H "H"
|
|
|
|
|
2014-02-04 05:45:41 -08:00
|
|
|
typedef struct statusbar_s
|
2013-07-20 01:51:56 -07:00
|
|
|
{
|
|
|
|
Evas_Object *layout;
|
2016-01-22 00:34:32 -08:00
|
|
|
Evas_Object *ctxpopup;
|
2013-09-18 09:43:10 -07:00
|
|
|
Eina_Stringshare *group_name;
|
2013-09-23 10:29:46 -07:00
|
|
|
int cur_line;
|
|
|
|
int max_line;
|
2014-02-04 05:45:41 -08:00
|
|
|
} stats_data;
|
|
|
|
|
2016-02-05 01:14:16 -08:00
|
|
|
typedef struct invert_transit_data_s
|
|
|
|
{
|
|
|
|
Evas_Coord orig_w;
|
|
|
|
Evas_Coord orig_h;
|
|
|
|
Evas_Coord diff_w;
|
|
|
|
Evas_Coord diff_h;
|
|
|
|
} invert_data;
|
|
|
|
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_data *g_sd = NULL;
|
2013-07-20 01:51:56 -07:00
|
|
|
|
2016-02-09 00:19:23 -08:00
|
|
|
/*****************************************************************************/
|
|
|
|
/* Internal method implementation */
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
2016-01-22 00:34:32 -08:00
|
|
|
static void
|
2016-03-04 18:27:24 -08:00
|
|
|
view_scale_slider_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
2016-02-09 00:19:23 -08:00
|
|
|
void *event_info EINA_UNUSED)
|
2016-01-22 00:34:32 -08:00
|
|
|
{
|
|
|
|
double scale = elm_slider_value_get(obj);
|
|
|
|
double rounded = ROUNDING(scale, 1);
|
|
|
|
|
|
|
|
if ((rounded - scale) > 0) rounded -= 0.05;
|
|
|
|
|
2016-02-04 22:57:00 -08:00
|
|
|
/* Here logic is mostly duplicated with main_mouse_wheel_cb() in main.c */
|
|
|
|
|
2016-01-22 00:34:32 -08:00
|
|
|
config_view_scale_set(rounded);
|
|
|
|
scale = config_view_scale_get();
|
|
|
|
enventor_object_live_view_scale_set(base_enventor_get(), scale);
|
2016-01-22 04:00:48 -08:00
|
|
|
|
2016-02-05 03:11:24 -08:00
|
|
|
Evas_Coord w, h;
|
|
|
|
config_view_size_get(&w, &h);
|
|
|
|
enventor_object_live_view_size_set(base_enventor_get(), w, h);
|
2016-02-04 22:57:00 -08:00
|
|
|
|
|
|
|
//Just in live edit mode case.
|
|
|
|
live_edit_update();
|
|
|
|
|
|
|
|
stats_view_scale_update(scale);
|
2016-01-22 00:34:32 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
ctxpopup_dismissed_cb(void *data, Evas_Object *obj,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
stats_data *sd = data;
|
2016-02-02 21:04:41 -08:00
|
|
|
enventor_object_focus_set(base_enventor_get(), EINA_TRUE);
|
2016-01-22 00:34:32 -08:00
|
|
|
evas_object_del(obj);
|
|
|
|
sd->ctxpopup = NULL;
|
|
|
|
}
|
|
|
|
|
2016-02-05 01:14:16 -08:00
|
|
|
static void
|
2016-02-09 00:19:23 -08:00
|
|
|
view_invert_transit_op(void *data, Elm_Transit *transit EINA_UNUSED,
|
|
|
|
double progress)
|
2016-02-05 01:14:16 -08:00
|
|
|
{
|
|
|
|
invert_data *id = data;
|
|
|
|
Evas_Coord w, h;
|
|
|
|
w = id->orig_w + ((double)(id->diff_w)) * progress;
|
|
|
|
h = id->orig_h + ((double)(id->diff_h)) * progress;
|
|
|
|
|
|
|
|
enventor_object_live_view_size_set(base_enventor_get(), w, h);
|
|
|
|
|
|
|
|
//Just in live edit mode case.
|
|
|
|
live_edit_update();
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2016-02-09 00:19:23 -08:00
|
|
|
view_invert_transit_end(void *data, Elm_Transit *transit EINA_UNUSED)
|
2016-02-05 01:14:16 -08:00
|
|
|
{
|
|
|
|
invert_data *id = data;
|
|
|
|
config_view_size_set((id->orig_w + id->diff_w), (id->orig_h + id->diff_h));
|
|
|
|
free(id);
|
|
|
|
}
|
|
|
|
|
2016-01-22 00:34:32 -08:00
|
|
|
static void
|
2016-03-04 18:27:24 -08:00
|
|
|
view_invert_btn_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
2016-02-05 00:42:26 -08:00
|
|
|
{
|
2016-02-05 01:14:16 -08:00
|
|
|
invert_data *id = malloc(sizeof(invert_data));
|
2016-02-05 00:42:26 -08:00
|
|
|
|
|
|
|
Evas_Coord w, h;
|
|
|
|
config_view_size_get(&w, &h);
|
2016-02-05 01:14:16 -08:00
|
|
|
id->orig_w = w;
|
|
|
|
id->orig_h = h;
|
|
|
|
id->diff_w = h - w;
|
|
|
|
id->diff_h = w - h;
|
|
|
|
|
|
|
|
Elm_Transit *transit = elm_transit_add();
|
2016-02-09 00:19:23 -08:00
|
|
|
elm_transit_effect_add(transit, view_invert_transit_op, id,
|
|
|
|
view_invert_transit_end);
|
2016-02-05 01:14:16 -08:00
|
|
|
elm_transit_tween_mode_set(transit, ELM_TRANSIT_TWEEN_MODE_DECELERATE);
|
|
|
|
elm_transit_duration_set(transit, TRANSIT_TIME);
|
|
|
|
elm_transit_go(transit);
|
2016-02-05 00:42:26 -08:00
|
|
|
}
|
|
|
|
|
2016-02-09 00:19:23 -08:00
|
|
|
static void
|
2016-03-04 18:27:24 -08:00
|
|
|
view_resize_slider_changed_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
2016-02-09 00:19:23 -08:00
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Evas_Object *layout = data;
|
|
|
|
Eina_Bool horizontal;
|
|
|
|
const char *type = elm_object_part_text_get(layout, "elm.text.type");
|
|
|
|
if (type && !strcmp(type, VIEW_RESIZE_TYPE_W))
|
|
|
|
horizontal = EINA_TRUE;
|
|
|
|
else
|
|
|
|
horizontal = EINA_FALSE;
|
|
|
|
|
|
|
|
Evas_Object *slider = elm_object_part_content_get(layout,
|
|
|
|
"elm.swallow.slider");
|
|
|
|
int val = elm_slider_value_get(slider);
|
|
|
|
int w, h;
|
|
|
|
config_view_size_get(&w, &h);
|
|
|
|
if (horizontal)
|
|
|
|
{
|
|
|
|
config_view_size_set(val, h);
|
|
|
|
enventor_object_live_view_size_set(base_enventor_get(), val, h);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
config_view_size_set(w, val);
|
|
|
|
enventor_object_live_view_size_set(base_enventor_get(), w, val);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static Evas_Object *
|
|
|
|
view_resize_slider_layout_create(Evas_Object *parent, const char *type,
|
|
|
|
int slider_val)
|
|
|
|
{
|
|
|
|
//Layout
|
|
|
|
Evas_Object *layout = elm_layout_add(parent);
|
|
|
|
elm_layout_file_set(layout, EDJE_PATH, "slider_layout");
|
|
|
|
evas_object_show(layout);
|
|
|
|
|
|
|
|
//Type
|
|
|
|
elm_object_part_text_set(layout, "elm.text.type", type);
|
|
|
|
|
|
|
|
//Slider
|
|
|
|
Evas_Object *slider = elm_slider_add(layout);
|
|
|
|
elm_slider_span_size_set(slider, 120);
|
|
|
|
elm_slider_indicator_show_set(slider, EINA_FALSE);
|
|
|
|
double step = 1 / (double) (3840 - 1);
|
|
|
|
elm_slider_step_set(slider, step);
|
|
|
|
elm_slider_min_max_set(slider, 1, 3840);
|
|
|
|
elm_slider_value_set(slider, slider_val);
|
|
|
|
evas_object_smart_callback_add(slider, "changed",
|
|
|
|
view_resize_slider_changed_cb, layout);
|
|
|
|
elm_object_part_text_set(layout, "elm.text.slider_min", "1");
|
|
|
|
elm_object_part_text_set(layout, "elm.text.slider_max", "3840");
|
|
|
|
elm_object_part_content_set(layout, "elm.swallow.slider", slider);
|
|
|
|
|
|
|
|
return layout;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
view_resize_btn_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
stats_data *sd = data;
|
|
|
|
evas_object_del(sd->ctxpopup);
|
|
|
|
|
|
|
|
//Ctxpopup
|
|
|
|
Evas_Object *ctxpopup = elm_ctxpopup_add(base_layout_get());
|
|
|
|
if (!ctxpopup) return;
|
|
|
|
|
|
|
|
elm_object_style_set(ctxpopup, elm_app_name_get());
|
|
|
|
elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP,
|
|
|
|
ELM_CTXPOPUP_DIRECTION_RIGHT,
|
|
|
|
ELM_CTXPOPUP_DIRECTION_LEFT,
|
|
|
|
ELM_CTXPOPUP_DIRECTION_DOWN);
|
|
|
|
//Slider Layout
|
|
|
|
Evas_Object *box = elm_box_add(ctxpopup);
|
|
|
|
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
|
|
elm_object_content_set(ctxpopup, box);
|
|
|
|
|
|
|
|
Evas_Object *slider;
|
|
|
|
Evas_Coord w, h;
|
|
|
|
config_view_size_get(&w, &h);
|
|
|
|
|
|
|
|
//Slider 1
|
|
|
|
slider = view_resize_slider_layout_create(box, VIEW_RESIZE_TYPE_W, w);
|
|
|
|
elm_box_pack_end(box, slider);
|
|
|
|
|
|
|
|
//Slider 2
|
|
|
|
slider = view_resize_slider_layout_create(box, VIEW_RESIZE_TYPE_H, h);
|
|
|
|
elm_object_signal_emit(slider, "odd,item,set", "");
|
|
|
|
elm_box_pack_end(box, slider);
|
|
|
|
|
|
|
|
//Ctxpopup Position
|
|
|
|
Evas_Coord x, y;
|
|
|
|
evas_object_geometry_get(obj, &x, &y, &w, &h);
|
|
|
|
evas_object_move(ctxpopup, x + (w/2), y);
|
|
|
|
evas_object_show(ctxpopup);
|
|
|
|
|
|
|
|
sd->ctxpopup = ctxpopup;
|
|
|
|
}
|
|
|
|
|
2016-02-05 00:42:26 -08:00
|
|
|
static void
|
|
|
|
view_scale_btn_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
2016-01-22 00:34:32 -08:00
|
|
|
{
|
|
|
|
stats_data *sd = data;
|
2016-02-09 00:19:23 -08:00
|
|
|
evas_object_del(sd->ctxpopup);
|
2016-01-22 00:34:32 -08:00
|
|
|
|
|
|
|
//Ctxpopup
|
|
|
|
Evas_Object *ctxpopup = elm_ctxpopup_add(base_layout_get());
|
|
|
|
elm_object_style_set(ctxpopup, elm_app_name_get());
|
|
|
|
|
|
|
|
//Slider
|
|
|
|
Evas_Object *slider = elm_slider_add(ctxpopup);
|
|
|
|
elm_slider_span_size_set(slider, 150);
|
|
|
|
elm_slider_indicator_show_set(slider, EINA_FALSE);
|
|
|
|
double step = 0.05 / (double) (MAX_VIEW_SCALE - MIN_VIEW_SCALE);
|
|
|
|
elm_slider_step_set(slider, step);
|
|
|
|
elm_slider_horizontal_set(slider, EINA_FALSE);
|
|
|
|
elm_slider_inverted_set(slider, EINA_TRUE);
|
|
|
|
elm_slider_min_max_set(slider, MIN_VIEW_SCALE, MAX_VIEW_SCALE);
|
|
|
|
elm_slider_value_set(slider, (double) config_view_scale_get());
|
2016-02-09 00:19:23 -08:00
|
|
|
evas_object_smart_callback_add(slider, "changed",
|
|
|
|
view_scale_slider_changed_cb, sd);
|
2016-01-22 00:34:32 -08:00
|
|
|
|
|
|
|
evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismissed_cb,
|
|
|
|
sd);
|
|
|
|
elm_object_content_set(ctxpopup, slider);
|
|
|
|
|
2016-02-09 00:19:23 -08:00
|
|
|
//Ctxpopup Position
|
2016-01-22 00:34:32 -08:00
|
|
|
Evas_Coord x, y, w, h;
|
|
|
|
evas_object_geometry_get(obj, &x, &y, &w, &h);
|
|
|
|
evas_object_move(ctxpopup, x, y);
|
|
|
|
evas_object_show(ctxpopup);
|
|
|
|
|
|
|
|
sd->ctxpopup = ctxpopup;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Evas_Object *
|
2016-02-05 00:42:26 -08:00
|
|
|
create_statusbar_btn(Evas_Object *layout, const char *image,
|
|
|
|
const char *part_name, const char *tooltip_msg,
|
2016-01-22 00:34:32 -08:00
|
|
|
Evas_Smart_Cb func, void *data)
|
|
|
|
{
|
|
|
|
Evas_Object *box = elm_box_add(layout);
|
|
|
|
|
|
|
|
Evas_Object *btn = elm_button_add(box);
|
2016-02-05 10:04:22 -08:00
|
|
|
elm_object_style_set(btn, elm_app_name_get());
|
2016-02-05 00:58:01 -08:00
|
|
|
elm_object_focus_allow_set(btn, EINA_FALSE);
|
2016-01-22 00:34:32 -08:00
|
|
|
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
2016-02-05 10:04:22 -08:00
|
|
|
elm_object_scale_set(btn, 0.8);
|
2016-01-22 00:34:32 -08:00
|
|
|
evas_object_smart_callback_add(btn, "clicked", func, data);
|
|
|
|
evas_object_show(btn);
|
|
|
|
|
|
|
|
Evas_Object *img = elm_image_add(btn);
|
2016-02-05 00:42:26 -08:00
|
|
|
elm_image_file_set(img, EDJE_PATH, image);
|
2016-01-22 00:34:32 -08:00
|
|
|
elm_object_content_set(btn, img);
|
|
|
|
|
|
|
|
elm_object_tooltip_text_set(box, tooltip_msg);
|
|
|
|
elm_object_tooltip_orient_set(box, ELM_TOOLTIP_ORIENT_TOP_RIGHT);
|
|
|
|
|
|
|
|
elm_box_pack_end(box, btn);
|
2016-02-05 00:42:26 -08:00
|
|
|
elm_object_part_content_set(layout, part_name, box);
|
2016-01-22 00:34:32 -08:00
|
|
|
|
|
|
|
return btn;
|
|
|
|
}
|
|
|
|
|
2016-02-09 00:19:23 -08:00
|
|
|
/*****************************************************************************/
|
|
|
|
/* Externally accessible calls */
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
2013-07-20 01:51:56 -07:00
|
|
|
void
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_line_num_update(int cur_line, int max_line)
|
2013-07-20 01:51:56 -07:00
|
|
|
{
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_data *sd = g_sd;
|
|
|
|
|
2014-08-08 01:32:46 -07:00
|
|
|
char buf[20];
|
|
|
|
snprintf(buf, sizeof(buf), "%d", cur_line);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.line_cur", buf);
|
|
|
|
snprintf(buf, sizeof(buf), "%d", max_line);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.line_max", buf);
|
|
|
|
|
2013-09-23 10:29:46 -07:00
|
|
|
sd->cur_line = cur_line;
|
|
|
|
sd->max_line = max_line;
|
2013-07-20 01:51:56 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2014-02-17 21:42:30 -08:00
|
|
|
stats_edc_group_update(Eina_Stringshare *group_name)
|
2013-07-20 01:51:56 -07:00
|
|
|
{
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_data *sd = g_sd;
|
2014-08-08 01:32:46 -07:00
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.group_name", group_name);
|
2013-09-18 09:43:10 -07:00
|
|
|
sd->group_name = eina_stringshare_add(group_name);
|
2013-07-20 01:51:56 -07:00
|
|
|
}
|
|
|
|
|
2014-02-04 05:45:41 -08:00
|
|
|
Evas_Object *
|
2014-01-29 09:45:10 -08:00
|
|
|
stats_init(Evas_Object *parent)
|
2013-07-20 01:51:56 -07:00
|
|
|
{
|
|
|
|
stats_data *sd = calloc(1, sizeof(stats_data));
|
2014-07-27 21:40:58 -07:00
|
|
|
if (!sd)
|
|
|
|
{
|
2015-11-17 09:39:22 -08:00
|
|
|
EINA_LOG_ERR(_("Failed to allocate Memory!"));
|
2014-07-27 21:40:58 -07:00
|
|
|
return NULL;
|
|
|
|
}
|
2014-02-04 05:45:41 -08:00
|
|
|
g_sd = sd;
|
2013-07-20 01:51:56 -07:00
|
|
|
|
|
|
|
Evas_Object *layout = elm_layout_add(parent);
|
|
|
|
elm_layout_file_set(layout, EDJE_PATH, "statusbar_layout");
|
|
|
|
|
2016-02-05 00:42:26 -08:00
|
|
|
//View Scale button
|
|
|
|
create_statusbar_btn(layout, "expand", "scale_btn",
|
|
|
|
"View Scale (Ctrl + Mouse Wheel)",
|
|
|
|
view_scale_btn_cb, sd);
|
2016-02-09 00:19:23 -08:00
|
|
|
//View Resize Button
|
|
|
|
create_statusbar_btn(layout, "expand", "resize_btn",
|
|
|
|
"Resize View Size",
|
|
|
|
view_resize_btn_cb, sd);
|
|
|
|
//View Invert Button
|
2016-02-05 00:42:26 -08:00
|
|
|
create_statusbar_btn(layout, "invert", "invert_btn",
|
|
|
|
"Invert View Size",
|
|
|
|
view_invert_btn_cb, sd);
|
|
|
|
|
2013-07-20 01:51:56 -07:00
|
|
|
sd->layout = layout;
|
|
|
|
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_cursor_pos_update(0, 0, 0, 0);
|
2014-02-17 21:42:30 -08:00
|
|
|
stats_edc_group_update(NULL);
|
2013-07-20 01:51:56 -07:00
|
|
|
|
2014-02-04 05:45:41 -08:00
|
|
|
return layout;
|
2013-07-20 01:51:56 -07:00
|
|
|
}
|
|
|
|
|
2014-08-04 23:32:12 -07:00
|
|
|
Eina_Stringshare *stats_group_name_get(void)
|
2013-09-18 09:43:10 -07:00
|
|
|
{
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_data *sd = g_sd;
|
2013-09-18 09:43:10 -07:00
|
|
|
return sd->group_name;
|
|
|
|
}
|
|
|
|
|
2013-07-20 01:51:56 -07:00
|
|
|
void
|
2014-08-04 23:32:12 -07:00
|
|
|
stats_term(void)
|
2013-07-20 01:51:56 -07:00
|
|
|
{
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_data *sd = g_sd;
|
2013-09-18 09:43:10 -07:00
|
|
|
eina_stringshare_del(sd->group_name);
|
2013-07-20 01:51:56 -07:00
|
|
|
free(sd);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_info_msg_update(const char *msg)
|
2013-07-20 01:51:56 -07:00
|
|
|
{
|
2014-01-29 09:45:10 -08:00
|
|
|
if (!config_stats_bar_get()) return;
|
2013-07-20 13:30:49 -07:00
|
|
|
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_data *sd = g_sd;
|
2013-07-20 01:51:56 -07:00
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.info_msg", msg);
|
|
|
|
elm_object_signal_emit(sd->layout, "elm,action,info_msg,show", "");
|
|
|
|
}
|
|
|
|
|
2016-01-22 00:34:32 -08:00
|
|
|
void
|
|
|
|
stats_view_scale_update(double scale)
|
|
|
|
{
|
|
|
|
stats_data *sd = g_sd;
|
|
|
|
|
|
|
|
char buf[10];
|
|
|
|
snprintf(buf, sizeof(buf), "%0.2fx", scale);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.scale", buf);
|
|
|
|
}
|
|
|
|
|
2013-07-20 01:51:56 -07:00
|
|
|
void
|
2014-09-30 07:56:16 -07:00
|
|
|
stats_view_size_update(Evas_Coord w, Evas_Coord h)
|
2013-07-20 01:51:56 -07:00
|
|
|
{
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_data *sd = g_sd;
|
|
|
|
|
2014-08-08 01:32:46 -07:00
|
|
|
char buf[10];
|
|
|
|
snprintf(buf, sizeof(buf), "%d", w);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.size_w", buf);
|
|
|
|
snprintf(buf, sizeof(buf), "%d", h);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.size_h", buf);
|
2013-07-20 01:51:56 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_cursor_pos_update(Evas_Coord x, Evas_Coord y, float rel_x, float rel_y)
|
2013-07-20 01:51:56 -07:00
|
|
|
{
|
2014-02-04 05:45:41 -08:00
|
|
|
stats_data *sd = g_sd;
|
2013-09-20 04:20:26 -07:00
|
|
|
|
2014-08-08 01:32:46 -07:00
|
|
|
char buf[10];
|
|
|
|
snprintf(buf, sizeof(buf), "%d", x);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.cursor_pxx", buf);
|
|
|
|
snprintf(buf, sizeof(buf), "%d", y);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.cursor_pxy", buf);
|
|
|
|
|
|
|
|
snprintf(buf, sizeof(buf), "%0.2f", rel_x);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.cursor_relx", buf);
|
|
|
|
snprintf(buf, sizeof(buf), "%0.2f", rel_y);
|
|
|
|
elm_object_part_text_set(sd->layout, "elm.text.cursor_rely", buf);
|
2013-07-20 01:51:56 -07:00
|
|
|
}
|
2016-01-22 00:34:32 -08:00
|
|
|
|
|
|
|
Eina_Bool
|
|
|
|
stats_ctxpopup_dismiss(void)
|
|
|
|
{
|
|
|
|
stats_data *sd = g_sd;
|
|
|
|
if (sd->ctxpopup)
|
|
|
|
{
|
|
|
|
elm_ctxpopup_dismiss(sd->ctxpopup);
|
|
|
|
return EINA_TRUE;
|
|
|
|
}
|
|
|
|
return EINA_FALSE;
|
|
|
|
}
|