printf("e20 dump log file under /tmp dir.\n");
}
+static void
+_e_info_client_magnifier(int argc, char **argv)
+{
+ uint32_t op;
+
+ if (argc < 3)
+ {
+ printf("Error Check Args: enlightenment_info -magnifier [1: on, 0: off]\n");
+ return;
+ }
+
+ if (!strncmp(argv[2], "off", sizeof("off"))) op = 0;
+ else if (!strncmp(argv[2], "on", sizeof("on"))) op = 1;
+ else if (!strncmp(argv[2], "new", sizeof("new"))) op = 2;
+ else if (!strncmp(argv[2], "del", sizeof("del"))) op = 3;
+ else if (!strncmp(argv[2], "set_stand_alone", sizeof("set_stand_alone"))) op = 4;
+ else if (!strncmp(argv[2], "unset_stand_alone", sizeof("unset_stand_alone"))) op = 5;
+ else if (!strncmp(argv[2], "show", sizeof("show"))) op = 6;
+ else if (!strncmp(argv[2], "hide", sizeof("hide"))) op = 7;
+ else
+ {
+ printf("Error Check Args: enlightenment_info -magnifier [on/off]\n");
+ return;
+ }
+
+ if (!_e_info_client_eldbus_message_with_args("magnifier", NULL, "i", op))
+ printf("_e_info_client_eldbus_message_with_args error");
+}
+
static void
_cb_input_region_get(const Eldbus_Message *msg)
{
"Dump stack information by allocations",
_e_info_client_memchecker
},
+ {
+ "magnifier",
+ NULL,
+ "On/Off magnifier window",
+ _e_info_client_magnifier
+ },
};
static Eina_List *list_tracelogs = NULL;
return reply;
}
+static Eldbus_Message *
+e_info_server_cb_magnifier(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+{
+ Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+ uint32_t opcode;
+
+ if (!eldbus_message_arguments_get(msg, "i", &opcode))
+ {
+ ERR("Error getting arguments.");
+ return reply;
+ }
+
+ switch (opcode)
+ {
+ case 0: // magnifier off test
+ e_magnifier_stand_alone_mode_set(EINA_FALSE);
+ e_magnifier_hide(NULL);
+ e_magnifier_del();
+ break;
+
+ case 1: // magnifier on test
+ e_magnifier_new();
+ e_magnifier_stand_alone_mode_set(EINA_TRUE);
+ e_magnifier_show(NULL);
+ break;
+
+ case 2: // magnifier new
+ e_magnifier_new();
+ break;
+
+ case 3: // magnifier del
+ e_magnifier_del();
+ break;
+
+ case 4: // set stand_alone
+ e_magnifier_stand_alone_mode_set(EINA_TRUE);
+ break;
+
+ case 5: // unset stand_alone
+ e_magnifier_stand_alone_mode_set(EINA_FALSE);
+ break;
+
+ case 6: // magnifier show
+ e_magnifier_show(NULL);
+ break;
+
+ case 7: // magnifier hide
+ e_magnifier_hide(NULL);
+ break;
+
+ default:
+ break;
+ }
+
+ return reply;
+}
+
static Eldbus_Message *
e_info_server_cb_aux_message(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
{ "deiconify_approve", ELDBUS_ARGS({"it", "option"}), ELDBUS_ARGS({"s", "deiconify_approve status"}), _e_info_server_cb_deiconify_approve, 0},
{ "key_repeat", ELDBUS_ARGS({"sii", "option"}), NULL, _e_info_server_cb_key_repeat, 0},
{ "dump_memchecker", NULL, NULL, _e_info_server_cb_memchecker, 0},
+ { "magnifier", ELDBUS_ARGS({"i", "magnifier"}), NULL, e_info_server_cb_magnifier, 0},
{ "input_region", ELDBUS_ARGS({"siiii", "options"}), ELDBUS_ARGS({"a(iiii)", "path"}), _e_info_server_cb_input_region, 0},
{ "hwc_wins", ELDBUS_ARGS({"i", "option"}), ELDBUS_ARGS({"as", "hwc wins info"}), _e_info_server_cb_hwc_wins_info_get, 0 },
{ NULL, NULL, NULL, NULL, 0 }
E_API Eina_Bool
e_magnifier_show(E_Client *ec)
{
- Evas_Object *target_obj;
-
ELOGF("MAGNIFIER", "SHOW Magnifier", NULL);
if (!_e_magnifier_mgr) return EINA_FALSE;
_e_magnifier_apply_zoom(_e_magnifier_mgr);
- if (sd->stand_alone_mode)
- {
- target_obj = _e_magnifier_mgr;
-
- evas_object_event_callback_add(target_obj, EVAS_CALLBACK_MOUSE_DOWN, _e_magnifier_cb_mouse_down_proxy, NULL);
- evas_object_event_callback_add(target_obj, EVAS_CALLBACK_MOUSE_UP, _e_magnifier_cb_mouse_up_proxy, NULL);
- }
-
return EINA_TRUE;
}
E_API void
e_magnifier_hide(E_Client *ec)
{
- Evas_Object *target_obj;
-
ELOGF("MAGNIFIER", "HIDE Magnifier", NULL);
if (!_e_magnifier_mgr) return;
}
evas_object_hide(_e_magnifier_mgr);
-
- if (sd->stand_alone_mode)
- {
- target_obj = _e_magnifier_mgr;
-
- evas_object_event_callback_del(target_obj, EVAS_CALLBACK_MOUSE_DOWN, _e_magnifier_cb_mouse_down_proxy);
- evas_object_event_callback_del(target_obj, EVAS_CALLBACK_MOUSE_UP, _e_magnifier_cb_mouse_up_proxy);
- }
-
}
E_API Eina_Bool
evas_object_event_callback_del(ec->frame, EVAS_CALLBACK_RESIZE, _e_magnifier_cb_owner_move_resize);
}
+static Eina_Bool
+_e_magnifier_stand_alone_mode_set(Evas_Object *magnifier_mgr, Eina_Bool set)
+{
+ if (!magnifier_mgr) return EINA_FALSE;
+ E_MAGNIFIER_SMART_DATA_GET_OR_RETURN(magnifier_mgr, sd) EINA_FALSE;
+
+ if (sd->stand_alone_mode == set)
+ return EINA_TRUE;
+
+ sd->stand_alone_mode = set;
+ if (sd->stand_alone_mode)
+ {
+ evas_object_event_callback_add(magnifier_mgr, EVAS_CALLBACK_MOUSE_DOWN, _e_magnifier_cb_mouse_down_proxy, NULL);
+ evas_object_event_callback_add(magnifier_mgr, EVAS_CALLBACK_MOUSE_UP, _e_magnifier_cb_mouse_up_proxy, NULL);
+ }
+ else
+ {
+ evas_object_event_callback_del(magnifier_mgr, EVAS_CALLBACK_MOUSE_DOWN, _e_magnifier_cb_mouse_down_proxy);
+ evas_object_event_callback_del(magnifier_mgr, EVAS_CALLBACK_MOUSE_UP, _e_magnifier_cb_mouse_up_proxy);
+ }
+
+ return EINA_TRUE;
+}
+
E_API Eina_Bool
e_magnifier_owner_set(E_Client *ec)
{
sd->owner = ec;
_e_magnifier_owner_set(ec);
+ if (ec && sd->stand_alone_mode)
+ {
+ _e_magnifier_stand_alone_mode_set(_e_magnifier_mgr, EINA_FALSE);
+ }
+
return EINA_TRUE;
}
return ec;
}
+
+EINTERN Eina_Bool
+e_magnifier_stand_alone_mode_set(Eina_Bool stand_alone)
+{
+ Eina_Bool ret = EINA_FALSE;
+
+ ELOGF("MAGNIFIER", "Stand Alone mode set:%d", NULL, stand_alone);
+ if (!_e_magnifier_mgr)
+ {
+ if (stand_alone)
+ {
+ e_magnifier_new();
+ ret = _e_magnifier_stand_alone_mode_set(_e_magnifier_mgr, stand_alone);
+ }
+ }
+ else
+ {
+ E_MAGNIFIER_SMART_DATA_GET_OR_RETURN(_e_magnifier_mgr, sd) EINA_FALSE;
+
+ if (sd->owner)
+ {
+ ELOGF("MAGNIFIER", "Failed to Stand_Alone mode. Magnifier window exists...", sd->owner);
+ return EINA_FALSE;
+ }
+
+ ret = _e_magnifier_stand_alone_mode_set(_e_magnifier_mgr, stand_alone);
+ }
+
+ return ret;
+}
E_API Eina_Bool e_magnifier_owner_set(E_Client *ec);
E_API void e_magnifier_owner_unset(E_Client *ec);
E_API E_Client *e_magnifier_owner_get(void);
+
+EINTERN Eina_Bool e_magnifier_stand_alone_mode_set(Eina_Bool stand_alone);
#endif
#endif