enlightenment_info: added visibility, iconic informations 81/54181/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 14 Dec 2015 04:19:25 +0000 (13:19 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Mon, 14 Dec 2015 04:19:25 +0000 (13:19 +0900)
Change-Id: If8818ef36ab4d0e46b535919ff89f2554b781999

src/bin/e_info_client.c
src/bin/e_info_server.c

index 769a8beb1252c35d7856e3f1b412e941a4350d8b..66db3661532c09614bd6d6aa69e61da571a691e0 100644 (file)
@@ -26,16 +26,20 @@ typedef struct _E_Win_Info
    int          layer;      // value of E_Layer
    int          vis;        // visibility
    int          alpha;      // alpha window
+   int          visibility;
+   int          iconic;
    const char  *layer_name; // layer name
 } E_Win_Info;
 
+#define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbibs"
+
 static E_Info_Client e_info_client;
 
 static Eina_Bool _e_info_client_eldbus_message(const char *method, E_Info_Message_Cb cb);
 static Eina_Bool _e_info_client_eldbus_message_with_args(const char *method, E_Info_Message_Cb cb, const char *signature, ...);
 
 static E_Win_Info *
-_e_win_info_new(Ecore_Window id, uint32_t res_id, int pid, Eina_Bool alpha, const char *name, int x, int y, int w, int h, int layer, int visible, const char *layer_name)
+_e_win_info_new(Ecore_Window id, uint32_t res_id, int pid, Eina_Bool alpha, const char *name, int x, int y, int w, int h, int layer, int visible, int visibility, int iconic, const char *layer_name)
 {
    E_Win_Info *win = NULL;
 
@@ -53,6 +57,8 @@ _e_win_info_new(Ecore_Window id, uint32_t res_id, int pid, Eina_Bool alpha, cons
    win->layer = layer;
    win->alpha = alpha;
    win->vis = visible;
+   win->visibility = visibility;
+   win->iconic = iconic;
    win->layer_name = eina_stringshare_add(layer_name);
 
    return win;
@@ -82,21 +88,21 @@ _cb_window_info_get(const Eldbus_Message *msg)
    res = eldbus_message_error_get(msg, &name, &text);
    EINA_SAFETY_ON_TRUE_GOTO(res, finish);
 
-   res = eldbus_message_arguments_get(msg, "a(uuisiiiiibbs)", &array);
+   res = eldbus_message_arguments_get(msg, "a("VALUE_TYPE_FOR_TOPVWINS")", &array);
    EINA_SAFETY_ON_FALSE_GOTO(res, finish);
 
    while (eldbus_message_iter_get_and_next(array, 'r', &ec))
      {
         const char *win_name;
         const char *layer_name;
-        int x, y, w, h, layer;
-        Eina_Bool visible, alpha;
+        int x, y, w, h, layer, visibility;
+        Eina_Bool visible, alpha, iconic;
         Ecore_Window id;
         uint32_t res_id;
         int pid;
         E_Win_Info *win = NULL;
         res = eldbus_message_iter_arguments_get(ec,
-                                                "uuisiiiiibbs",
+                                                VALUE_TYPE_FOR_TOPVWINS,
                                                 &id,
                                                 &res_id,
                                                 &pid,
@@ -108,6 +114,8 @@ _cb_window_info_get(const Eldbus_Message *msg)
                                                 &layer,
                                                 &visible,
                                                 &alpha,
+                                                &visibility,
+                                                &iconic,
                                                 &layer_name);
         if (!res)
           {
@@ -115,7 +123,7 @@ _cb_window_info_get(const Eldbus_Message *msg)
              continue;
           }
 
-        win = _e_win_info_new(id, res_id, pid, alpha, win_name, x, y, w, h, layer, visible, layer_name);
+        win = _e_win_info_new(id, res_id, pid, alpha, win_name, x, y, w, h, layer, visible, visibility, iconic, layer_name);
         e_info_client.win_list = eina_list_append(e_info_client.win_list, win);
      }
 
@@ -139,9 +147,9 @@ _e_info_client_proc_topvwins_info(int argc, char **argv)
      return;
 
    printf("%d Top level windows\n", eina_list_count(e_info_client.win_list));
-   printf("--------------------------------------[ topvwins ]-----------------------------------------------------\n");
-   printf("No   Win_ID   Resource_ID   PID     w     h       x     y   Depth            Title              map_state\n");
-   printf("-------------------------------------------------------------------------------------------------------\n");
+   printf("--------------------------------------[ topvwins ]----------------------------------------------------------\n");
+   printf(" No   Win_ID    RcsID    PID     w     h     x      y     Depth Visi Icon  Map_State    Title              \n");
+   printf("------------------------------------------------------------------------------------------------------------\n");
 
    if (!e_info_client.win_list)
      {
@@ -161,8 +169,8 @@ _e_info_client_proc_topvwins_info(int argc, char **argv)
              prev_layer = win->layer;
              prev_layer_name = win->layer_name;
           }
-        printf("%3d 0x%08x    %5d    %5d   %5d %5d %5d %5d %5d  ", i, win->id, win->res_id, win->pid, win->w, win->h, win->x, win->y, win->alpha? 32:24);
-        printf("%30s %11s\n", win->name?:"No Name", win->vis? "Viewable":"NotViewable");
+        printf("%3d 0x%08x  %5d  %5d  %5d %5d %6d %6d  %5d   ", i, win->id, win->res_id, win->pid, win->w, win->h, win->x, win->y, win->alpha? 32:24);
+        printf("%2d    %d   %-11s  %s\n", win->visibility, win->iconic, win->vis? "Viewable":"NotViewable", win->name?:"No Name");
      }
 
    if (prev_layer_name)
index 759edadb97846f0917fe79a087187f4c0cacdfe6..bf392a40d09be58ef79a7abb2badf6e5ccc4f7e0 100644 (file)
@@ -27,6 +27,8 @@ struct wl_drm_buffer
    void *driver_buffer;
 };
 
+#define VALUE_TYPE_FOR_TOPVWINS "uuisiiiiibbibs"
+
 static void
 _msg_clients_append(Eldbus_Message_Iter *iter)
 {
@@ -34,7 +36,7 @@ _msg_clients_append(Eldbus_Message_Iter *iter)
    E_Client *ec;
    Evas_Object *o;
 
-   eldbus_message_iter_arguments_append(iter, "a(uuisiiiiibbs)", &array_of_ec);
+   eldbus_message_iter_arguments_append(iter, "a("VALUE_TYPE_FOR_TOPVWINS")", &array_of_ec);
 
    // append clients.
    for (o = evas_object_top_get(e_comp->evas); o; o = evas_object_below_get(o))
@@ -62,16 +64,16 @@ _msg_clients_append(Eldbus_Message_Iter *iter)
                wl_client_get_credentials(wl_resource_get_client(cdata->surface), &pid, NULL, NULL);
           }
 #endif
-        eldbus_message_iter_arguments_append(array_of_ec, "(uuisiiiiibbs)", &struct_of_ec);
+        eldbus_message_iter_arguments_append(array_of_ec, "("VALUE_TYPE_FOR_TOPVWINS")", &struct_of_ec);
 
         eldbus_message_iter_arguments_append
-           (struct_of_ec, "uuisiiiiibbs",
+           (struct_of_ec, VALUE_TYPE_FOR_TOPVWINS,
             win,
             res_id,
             pid,
             e_client_util_name_get(ec) ?: "NO NAME",
             ec->x, ec->y, ec->w, ec->h, ec->layer,
-            ec->visible, ec->argb, layer_name);
+            ec->visible, ec->argb, ec->visibility.obscured, ec->iconic, layer_name);
 
         eldbus_message_iter_container_close(array_of_ec, struct_of_ec);
      }
@@ -550,7 +552,7 @@ _e_info_server_cb_eina_log_path(const Eldbus_Service_Interface *iface EINA_UNUSE
 }
 
 static const Eldbus_Method methods[] = {
-   { "get_window_info", NULL, ELDBUS_ARGS({"a(uuisiiiiibbs)", "array of ec"}), _e_info_server_cb_window_info_get, 0 },
+   { "get_window_info", NULL, ELDBUS_ARGS({"a("VALUE_TYPE_FOR_TOPVWINS")", "array of ec"}), _e_info_server_cb_window_info_get, 0 },
    { "dump_topvwins", ELDBUS_ARGS({"s", "directory"}), NULL, _e_info_server_cb_topvwins_dump, 0 },
    { "eina_log_levels", ELDBUS_ARGS({"s", "eina log levels"}), NULL, _e_info_server_cb_eina_log_levels, 0 },
    { "eina_log_path", ELDBUS_ARGS({"s", "eina log path"}), NULL, _e_info_server_cb_eina_log_path, 0 },