Revert "Revert "win: Add a API, elm_win_type_get.""
authorChunEon Park <hermet@hermet.pe.kr>
Sat, 22 Mar 2014 06:17:00 +0000 (15:17 +0900)
committerChunEon Park <hermet@hermet.pe.kr>
Sat, 22 Mar 2014 06:17:00 +0000 (15:17 +0900)
This reverts commit 1fae5b440457948a048007fbb24171f90e6aab30.

sorry i didn't intend reverting this commit.

src/lib/elm_win.c
src/lib/elm_win_common.h
src/lib/elm_win_eo.h
src/lib/elm_win_legacy.h

index 2447699..ff4d8df 100644 (file)
@@ -3303,6 +3303,23 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
    ERR("only custom constructor can be used with '%s' class", MY_CLASS_NAME);
 }
 
+EAPI Elm_Win_Type
+elm_win_type_get(const Evas_Object *obj)
+{
+   ELM_WIN_CHECK(obj) ELM_WIN_UNKNOWN;
+   Elm_Win_Type ret = ELM_WIN_UNKNOWN;
+   eo_do((Eo *) obj, elm_obj_win_type_get(&ret));
+   return ret;
+}
+
+static void
+_type_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Elm_Win_Type *ret = va_arg(*list, Elm_Win_Type *);
+   Elm_Win_Smart_Data *sd = _pd;
+   *ret = sd->type;
+}
+
 EAPI Evas_Object *
 elm_win_util_standard_add(const char *name,
                           const char *title)
@@ -5898,6 +5915,7 @@ _class_constructor(Eo_Class *klass)
         EO_OP_FUNC(ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_WIN_CONSTRUCTOR), _win_constructor),
         EO_OP_FUNC(ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_RESIZE_OBJECT_ADD), _resize_object_add),
         EO_OP_FUNC(ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_RESIZE_OBJECT_DEL), _resize_object_del),
+        EO_OP_FUNC(ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_TYPE_GET), _type_get),
         EO_OP_FUNC(ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_TITLE_SET), _title_set),
         EO_OP_FUNC(ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_TITLE_GET), _title_get),
         EO_OP_FUNC(ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_ICON_NAME_SET), _icon_name_set),
@@ -6009,6 +6027,7 @@ static const Eo_Op_Description op_desc[] = {
      EO_OP_DESCRIPTION(ELM_OBJ_WIN_SUB_ID_WIN_CONSTRUCTOR, "Adds a window object."),
      EO_OP_DESCRIPTION(ELM_OBJ_WIN_SUB_ID_RESIZE_OBJECT_ADD, "Add subobj as a resize object of window obj."),
      EO_OP_DESCRIPTION(ELM_OBJ_WIN_SUB_ID_RESIZE_OBJECT_DEL, "Delete subobj as a resize object of window obj."),
+     EO_OP_DESCRIPTION(ELM_OBJ_WIN_SUB_ID_TYPE_GET, "Get the type of the window."),
      EO_OP_DESCRIPTION(ELM_OBJ_WIN_SUB_ID_TITLE_SET, "Set the title of the window."),
      EO_OP_DESCRIPTION(ELM_OBJ_WIN_SUB_ID_TITLE_GET, "Get the title of the window."),
      EO_OP_DESCRIPTION(ELM_OBJ_WIN_SUB_ID_ICON_NAME_SET, "Set the icon name of the window."),
index 664b29b..b5eb567 100644 (file)
@@ -9,6 +9,7 @@
  */
 typedef enum
 {
+   ELM_WIN_UNKNOWN, /**< Unknown window type. */
    ELM_WIN_BASIC, /**< A normal window. Indicates a normal, top-level
                      window. Almost every window will be created with this
                      type. */
index 8d9468c..8ade15a 100644 (file)
@@ -14,6 +14,7 @@ enum
      ELM_OBJ_WIN_SUB_ID_WIN_CONSTRUCTOR,
      ELM_OBJ_WIN_SUB_ID_RESIZE_OBJECT_ADD,
      ELM_OBJ_WIN_SUB_ID_RESIZE_OBJECT_DEL,
+     ELM_OBJ_WIN_SUB_ID_TYPE_GET,
      ELM_OBJ_WIN_SUB_ID_TITLE_SET,
      ELM_OBJ_WIN_SUB_ID_TITLE_GET,
      ELM_OBJ_WIN_SUB_ID_ICON_NAME_SET,
@@ -156,6 +157,18 @@ enum
 #define elm_obj_win_resize_object_del(subobj) ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_RESIZE_OBJECT_DEL), EO_TYPECHECK(Evas_Object *, subobj)
 
 /**
+ * @def elm_obj_win_type_get
+ * @since 1.9
+ *
+ * Get the type of the window
+ *
+ * @param[out] ret
+ *
+ * @see elm_win_type_get
+ */
+#define elm_obj_win_type_get(ret) ELM_OBJ_WIN_ID(ELM_OBJ_WIN_SUB_ID_TYPE_GET), EO_TYPECHECK(Elm_Win_Type *, ret)
+
+/**
  * @def elm_obj_win_title_set
  * @since 1.8
  *
index 85968a3..2513357 100644 (file)
 EAPI Evas_Object          *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
 
 /**
+ * Get the type of a window.
+ *
+ * @param obj The window object for which it gets the type.
+ *
+ * @return The type of a window object. If the object is not window object, return ELM_WIN_UNKNOWN.
+ *
+ * @ingroup Win
+ */
+EAPI Elm_Win_Type          elm_win_type_get(const Evas_Object *obj);
+
+/**
  * Adds a window object with standard setup
  *
  * @param name The name of the window