}
}
+static void
+_e_info_client_proc_desk_set(int argc, char **argv)
+{
+ int zone_id = 0;
+ int desk_id = 0;
+
+ if (argc < 5)
+ {
+ printf("Error Check Args: enlightenment_info -desk_set [windowID] [zone id] [desk id]\n");
+ return;
+ }
+
+ zone_id = atoi(argv[3]);
+ desk_id = atoi(argv[4]);
+
+ if (!_e_info_client_eldbus_message_with_args("desk_set", NULL, "sii",
+ argv[2], zone_id, desk_id))
+ {
+ printf("_e_info_client_eldbus_message_with_args error");
+ return;
+ }
+}
+
+static void
+_e_info_client_proc_desk_area_set(int argc, char **argv)
+{
+ int zone_id = 0;
+ int desk_id = 0;
+ int desk_area_id = 0;
+
+ if (argc < 6)
+ {
+ printf("Error Check Args: enlightenment_info -desk_area_set [windowID] [zone id] [desk id] [desk area id]\n");
+ return;
+ }
+
+ zone_id = atoi(argv[3]);
+ desk_id = atoi(argv[4]);
+ desk_area_id = atoi(argv[5]);
+
+ if (!_e_info_client_eldbus_message_with_args("desk_area_set", NULL, "siii",
+ argv[2], zone_id, desk_id, desk_area_id))
+ {
+ printf("_e_info_client_eldbus_message_with_args error");
+ return;
+ }
+}
+
static void
_e_info_client_proc_input_output_set(int argc, char **argv)
{
"Set zone",
_e_info_client_proc_zone_set
},
+ {
+ "desk_set",
+ "[windowID zoneID deskID]",
+ "Set desk",
+ _e_info_client_proc_desk_set
+ },
+ {
+ "desk_area_set",
+ "[windowID zoneID deskID, deskareaID]",
+ "Set desk area",
+ _e_info_client_proc_desk_area_set
+ },
{
"input_output_set",
"[input(ex./dev/input/eventX) output(ex.HDMIA-1)]",
return reply;
}
+static Eldbus_Message *
+_e_info_server_cb_desk_set(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+{
+ Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+ unsigned long tmp = 0;
+ const char *win_id_str = NULL;
+ int zone_id = 0, desk_id = 0;
+ uint64_t win_id = 0;
+ Evas_Object *o = NULL;
+ E_Client *ec = NULL;
+ E_Zone *zone = NULL;
+ E_Desk *desk = NULL;
+ Eina_Bool res = EINA_FALSE;
+
+ if (!eldbus_message_arguments_get(msg, "sii", &win_id_str, &zone_id, &desk_id))
+ {
+ ERR("Error getting arguments.");
+ return reply;
+ }
+
+ if (strlen(win_id_str) >= 2 && win_id_str[0] == '0' && win_id_str[1] == 'x')
+ res = e_util_string_to_ulong(win_id_str, &tmp, 16);
+ else
+ res = e_util_string_to_ulong(win_id_str, &tmp, 10);
+
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, reply);
+
+ win_id = (uint64_t)tmp;
+
+ for (o = evas_object_top_get(e_comp_evas_get()); o; o = evas_object_below_get(o))
+ {
+ ec = evas_object_data_get(o, "E_Client");
+ Ecore_Window win;
+
+ if (!ec) continue;
+
+ win = e_client_util_win_get(ec);
+ if (win != win_id) continue;
+
+ zone = e_zone_get_by_id(zone_id);
+ if (zone)
+ {
+ for (desk = e_zone_desk_top_get(zone);
+ desk;
+ desk = e_zone_desk_below_get(zone, desk))
+ {
+ if (desk->id == desk_id)
+ {
+ e_desk_client_add(desk, ec);
+ }
+ }
+ }
+
+ break;
+ }
+
+ return reply;
+}
+
+static Eldbus_Message *
+_e_info_server_cb_desk_area_set(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+{
+ Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+ unsigned long tmp = 0;
+ const char *win_id_str = NULL;
+ int zone_id = 0, desk_id = 0, desk_area_id;
+ uint64_t win_id = 0;
+ Evas_Object *o = NULL;
+ E_Client *ec = NULL;
+ E_Zone *zone = NULL;
+ E_Desk *desk = NULL;
+ E_Desk_Area *eda = NULL;
+ Eina_Bool res = EINA_FALSE;
+ Eina_List *l;
+
+ if (!eldbus_message_arguments_get(msg, "siii", &win_id_str, &zone_id, &desk_id, &desk_area_id))
+ {
+ ERR("Error getting arguments.");
+ return reply;
+ }
+
+ if (strlen(win_id_str) >= 2 && win_id_str[0] == '0' && win_id_str[1] == 'x')
+ res = e_util_string_to_ulong(win_id_str, &tmp, 16);
+ else
+ res = e_util_string_to_ulong(win_id_str, &tmp, 10);
+
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(res, reply);
+
+ win_id = (uint64_t)tmp;
+
+ for (o = evas_object_top_get(e_comp_evas_get()); o; o = evas_object_below_get(o))
+ {
+ ec = evas_object_data_get(o, "E_Client");
+ Ecore_Window win;
+
+ if (!ec) continue;
+
+ win = e_client_util_win_get(ec);
+ if (win != win_id) continue;
+
+ zone = e_zone_get_by_id(zone_id);
+ if (zone)
+ {
+ for (desk = e_zone_desk_top_get(zone);
+ desk;
+ desk = e_zone_desk_below_get(zone, desk))
+ {
+ if (desk->id == desk_id)
+ {
+ EINA_LIST_FOREACH(desk->desk_area.list, l, eda)
+ {
+ if (eda->id == desk_area_id)
+ {
+ e_desk_area_ec_add(eda, ec);
+ }
+ }
+ }
+ }
+ }
+
+ break;
+ }
+
+ return reply;
+}
+
static Eldbus_Message *
_e_info_server_cb_input_output_set(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
{ "basic_op_gen", ELDBUS_ARGS({"s","window id" }, {"s", "operation"}), NULL, _e_info_server_cb_basic_operation_generate, 0},
{ "process_info", NULL, ELDBUS_ARGS({"s", "process information"}), _e_info_server_cb_process_info, 0 },
{ "zone_set", ELDBUS_ARGS({"si", "zone set"}), NULL, _e_info_server_cb_zone_set, 0 },
+ { "desk_set", ELDBUS_ARGS({"sii", "desk set"}), NULL, _e_info_server_cb_desk_set, 0 },
+ { "desk_area_set", ELDBUS_ARGS({"siii", "desk area set"}), NULL, _e_info_server_cb_desk_area_set, 0 },
{ "input_output_set", ELDBUS_ARGS({"ss", "set input device's output name"}), NULL, _e_info_server_cb_input_output_set, 0 },
{ "input_seat_set", ELDBUS_ARGS({"ss", "set input device's seat"}), NULL, _e_info_server_cb_input_seat_set, 0 },
{ "resize_ppu_set", ELDBUS_ARGS({"si", "set resize ppu"}), NULL, e_info_server_cb_resize_ppu_set, 0},