elm_win: add enum for elm_win_modal set and elm_win_urgent set
authorJi-Youn Park <jy0703.park@samsung.com>
Wed, 1 Jun 2016 11:47:30 +0000 (20:17 +0830)
committerJi-Youn Park <jy0703.park@samsung.com>
Wed, 1 Jun 2016 12:02:16 +0000 (20:32 +0830)
1. remain iconified, maximized, fullscreen property
2. remain sticky property
3. change return value type of modal from bool to enum for the future.
4. merge urgent_set and demand_attention
5. remain activate method

src/lib/elementary/elm_win.c
src/lib/elementary/elm_win.eo
src/lib/elementary/elm_win_legacy.h

index e40faed..084b2f7 100644 (file)
@@ -4588,22 +4588,6 @@ _elm_win_iconified_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd)
 }
 
 EOLIAN static void
-_elm_win_withdrawn_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, Eina_Bool withdrawn)
-{
-//   sd->withdrawn = withdrawn;
-   TRAP(sd, withdrawn_set, withdrawn);
-#ifdef HAVE_ELEMENTARY_X
-   _elm_win_xwin_update(sd);
-#endif
-}
-
-EOLIAN static Eina_Bool
-_elm_win_withdrawn_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd)
-{
-   return sd->withdrawn;
-}
-
-EOLIAN static void
 _elm_win_available_profiles_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, const char **profiles, unsigned int count)
 {
    Eina_Bool found = EINA_FALSE;
@@ -4710,67 +4694,57 @@ _elm_win_profile_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd)
 }
 
 EOLIAN static void
-_elm_win_urgent_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, Eina_Bool urgent)
+_elm_win_urgent_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, Elm_Win_Urgent_Mode urgent)
 {
-   if (sd->urgent == urgent)
-     return;
-   sd->urgent = urgent;
-   TRAP(sd, urgent_set, urgent);
+   Eina_Bool urgent_tmp = !!urgent;
+
+   if (sd->urgent == urgent_tmp) return;
+   
+   sd->urgent = urgent_tmp;
+   TRAP(sd, urgent_set, urgent_tmp);
 #ifdef HAVE_ELEMENTARY_X
    _elm_win_xwin_update(sd);
 #endif
 }
 
-EOLIAN static Eina_Bool
+EOLIAN static Elm_Win_Urgent_Mode
 _elm_win_urgent_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd)
 {
-   return sd->urgent;
+   if (sd->urgent) return ELM_WIN_URGENT_MODE_URGENT;
+   return ELM_WIN_URGENT_MODE_NONE;
 }
 
 EOLIAN static void
-_elm_win_demand_attention_set(Eo *obj EINA_UNUSED, Elm_Win_Data *sd, Eina_Bool demand_attention)
+_elm_win_modal_set(Eo *obj, Elm_Win_Data *sd, Elm_Win_Modal_Mode modal)
 {
-   sd->demand_attention = demand_attention;
-   TRAP(sd, demand_attention_set, demand_attention);
-#ifdef HAVE_ELEMENTARY_X
-   _elm_win_xwin_update(sd);
-#endif
-}
-
-EOLIAN static Eina_Bool
-_elm_win_demand_attention_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd)
-{
-   return sd->demand_attention;
-}
+   Eina_Bool modal_tmp = !!modal;
 
-EOLIAN static void
-_elm_win_modal_set(Eo *obj, Elm_Win_Data *sd, Eina_Bool modal)
-{
    if (sd->modal_count) return;
 
    const Eina_List *l;
    Evas_Object *current;
 
-   if ((modal) && (!sd->modal) && (evas_object_visible_get(obj)))
+   if ((modal_tmp) && (!sd->modal) && (evas_object_visible_get(obj)))
      {
        INCREMENT_MODALITY()
      }
-   else if ((!modal) && (sd->modal) && (evas_object_visible_get(obj)))
+   else if ((!modal_tmp) && (sd->modal) && (evas_object_visible_get(obj)))
      {
        DECREMENT_MODALITY()
      }
 
-   sd->modal = modal;
-   TRAP(sd, modal_set, modal);
+   sd->modal = modal_tmp;
+   TRAP(sd, modal_set, modal_tmp);
 #ifdef HAVE_ELEMENTARY_X
    _elm_win_xwin_update(sd);
 #endif
 }
 
-EOLIAN static Eina_Bool
+EOLIAN static Elm_Win_Modal_Mode
 _elm_win_modal_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd)
 {
-   return sd->modal;
+   if (sd->modal) return ELM_WIN_MODAL_MODE_MODAL;
+   return ELM_WIN_MODAL_MODE_NONE;
 }
 
 EOLIAN static void
@@ -6242,4 +6216,108 @@ elm_win_icon_name_get(const Evas_Object *obj)
    return sd->icon_name;
 }
 
+EAPI void
+elm_win_withdrawn_set(Evas_Object *obj, Eina_Bool withdrawn)
+{
+   ELM_WIN_CHECK(obj);
+   ELM_WIN_DATA_GET_OR_RETURN(obj, sd);
+
+//   sd->withdrawn = withdrawn;
+   TRAP(sd, withdrawn_set, withdrawn);
+#ifdef HAVE_ELEMENTARY_X
+   _elm_win_xwin_update(sd);
+#endif
+}
+
+EAPI Eina_Bool
+elm_win_withdrawn_get(const Evas_Object *obj)
+{
+   ELM_WIN_CHECK(obj) EINA_FALSE;
+   ELM_WIN_DATA_GET_OR_RETURN(obj, sd, EINA_FALSE);
+
+   return sd->withdrawn;
+}
+
+EAPI void
+elm_win_urgent_set(Evas_Object *obj, Eina_Bool urgent)
+{
+   ELM_WIN_CHECK(obj);
+   ELM_WIN_DATA_GET_OR_RETURN(obj, sd);
+
+   if (sd->urgent == urgent)
+     return;
+   sd->urgent = urgent;
+   TRAP(sd, urgent_set, urgent);
+#ifdef HAVE_ELEMENTARY_X
+   _elm_win_xwin_update(sd);
+#endif
+}
+
+EAPI Eina_Bool
+elm_win_urgent_get(const Evas_Object *obj)
+{
+   ELM_WIN_CHECK(obj) EINA_FALSE;
+   ELM_WIN_DATA_GET_OR_RETURN(obj, sd, EINA_FALSE);
+
+   return sd->urgent;
+}
+
+EAPI void
+elm_win_demand_attention_set(Evas_Object *obj, Eina_Bool demand_attention)
+{
+   ELM_WIN_CHECK(obj);
+   ELM_WIN_DATA_GET_OR_RETURN(obj, sd);
+
+   sd->demand_attention = demand_attention;
+   TRAP(sd, demand_attention_set, demand_attention);
+#ifdef HAVE_ELEMENTARY_X
+   _elm_win_xwin_update(sd);
+#endif
+}
+
+EAPI Eina_Bool
+elm_win_demand_attention_get(const Evas_Object *obj)
+{
+   ELM_WIN_CHECK(obj) EINA_FALSE;
+   ELM_WIN_DATA_GET_OR_RETURN(obj, sd, EINA_FALSE);
+
+   return sd->demand_attention;
+}
+
+EAPI void
+elm_win_modal_set(Evas_Object *obj, Eina_Bool modal)
+{
+   ELM_WIN_CHECK(obj);
+   ELM_WIN_DATA_GET_OR_RETURN(obj, sd);
+
+   if (sd->modal_count) return;
+
+   const Eina_List *l;
+   Evas_Object *current;
+
+   if ((modal) && (!sd->modal) && (evas_object_visible_get(obj)))
+     {
+       INCREMENT_MODALITY()
+     }
+   else if ((!modal) && (sd->modal) && (evas_object_visible_get(obj)))
+     {
+       DECREMENT_MODALITY()
+     }
+
+   sd->modal = modal;
+   TRAP(sd, modal_set, modal);
+#ifdef HAVE_ELEMENTARY_X
+   _elm_win_xwin_update(sd);
+#endif
+}
+
+EAPI Eina_Bool
+elm_win_modal_get(const Evas_Object *obj)
+{
+   ELM_WIN_CHECK(obj) EINA_FALSE;
+   ELM_WIN_DATA_GET_OR_RETURN(obj, sd, EINA_FALSE);
+
+   return sd->modal;
+}
+
 #include "elm_win.eo.c"
index e988feb..9ba7339 100644 (file)
@@ -144,6 +144,22 @@ enum Elm.Illume_Command
    close [[Closes the currently active window]]
 }
 
+enum Elm.Win.Modal_Mode
+{
+   [[Defines the mode of a modal window]]
+
+   none, [[The window is not modal window.]]
+   modal [[The window is modal window.]]
+}
+
+enum Elm.Win.Urgent_Mode
+{
+   [[Defines the mode of a urgent window.]]
+
+   none,  [[The window is not a urgent window.]]
+   urgent [[The window is a urgent window.]]
+}
+
 class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window,
                Elm.Interface.Atspi_Widget_Action, Efl.Pack,
                Efl.Input.State, Efl.Input.Interface, Efl.Screen)
@@ -433,26 +449,58 @@ class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window,
             maximized: bool; [[If true, the window is maximized.]]
          }
       }
-      @property modal {
+      @property fullscreen {
          set {
-            [[Set the modal state of a window.]]
+            [[Set the fullscreen state of a window.]]
          }
          get {
-            [[Get the modal state of a window.]]
+            [[Get the fullscreen state of a window.]]
+         }
+         values {
+            fullscreen: bool; [[If $true, the window is fullscreen.]]
+         }
+      }
+      @property sticky {
+         set {
+            [[Set the sticky state of the window.
+
+              Hints the Window Manager that the window in $obj should be
+              left fixed at its position even when the virtual desktop
+              it's on moves or changes.
+            ]]
+         }
+         get {
+            [[Get the sticky state of the window.]]
          }
          values {
-            modal: bool; [[If true, the window is modal.]]
+            sticky: bool; [[If true, the window's sticky state is enabled.]]
          }
       }
-      @property withdrawn {
+      @property urgent {
          set {
-            [[Set the withdrawn state of a window.]]
+            [[Set the urgent state of a window.]]
+            legacy: null;
+         }
+         get {
+            [[Get the urgent state of a window.]]
+            legacy: null;
+         }
+         values {
+            urgent: Elm.Win.Urgent_Mode;
+                [[The mode of a urgent window, one of #Elm_Win_Urgent_Mode.]]
+         }
+      }
+      @property modal {
+         set {
+            [[Set the modal state of a window.]]
+            legacy: null;
          }
          get {
-            [[Get the withdrawn state of a window.]]
+            [[Get the modal state of a window.]]
+            legacy: null;
          }
          values {
-            withdrawn: bool; [[If true, the window is withdrawn.]]
+            modal: Elm.Win.Modal_Mode; [[The mode of a window, one of #Elm_Win_Modal_Mode.]]
          }
       }
       @property role {
@@ -573,33 +621,6 @@ class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window,
                            $false otherwise.]]
          }
       }
-      @property urgent {
-         set {
-            [[Set the urgent state of a window.]]
-         }
-         get {
-            [[Get the urgent state of a window.]]
-         }
-         values {
-            urgent: bool; [[If true, the window is urgent.]]
-         }
-      }
-      @property sticky {
-         set {
-            [[Set the sticky state of the window.
-
-              Hints the Window Manager that the window in $obj should be
-              left fixed at its position even when the virtual desktop
-              it's on moves or changes.
-            ]]
-         }
-         get {
-            [[Get the sticky state of the window.]]
-         }
-         values {
-            sticky: bool; [[If true, the window's sticky state is enabled.]]
-         }
-      }
       @property aspect {
          set {
             [[Set the aspect ratio of a window.]]
@@ -612,17 +633,6 @@ class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window,
                               otherwise it is width divided by height.]]
          }
       }
-      @property demand_attention {
-         set {
-            [[Set the demand_attention state of a window.]]
-         }
-         get {
-            [[Get the demand_attention state of a window.]]
-         }
-         values {
-            demand_attention: bool; [[If true, the window is demand_attention.]]
-         }
-      }
       @property layer {
          set {
             [[Set the layer of the window.
@@ -681,17 +691,6 @@ class Elm.Win (Elm.Widget, Elm.Interface.Atspi.Window,
             shaped: bool; [[If $true, the window is shaped.]]
          }
       }
-      @property fullscreen {
-         set {
-            [[Set the fullscreen state of a window.]]
-         }
-         get {
-            [[Get the fullscreen state of a window.]]
-         }
-         values {
-            fullscreen: bool; [[If $true, the window is fullscreen.]]
-         }
-      }
       @property size_base {
          set {
             [[Set the base window size used with stepping calculation
index 6a6b51b..d713cfe 100644 (file)
@@ -734,3 +734,75 @@ EAPI void elm_win_icon_name_set(Evas_Object *obj, const char *icon_name);
  */
 EAPI const char *elm_win_icon_name_get(const Evas_Object *obj);
 
+/**
+ * @brief Set the withdrawn state of a window.
+ *
+ * @param[in] withdrawn If true, the window is withdrawn.
+ *
+ * @ingroup Elm_Win
+ */
+EAPI void elm_win_withdrawn_set(Evas_Object *obj, Eina_Bool withdrawn);
+
+/**
+ * @brief Get the withdrawn state of a window.
+ *
+ * @return If true, the window is withdrawn.
+ *
+ * @ingroup Elm_Win
+ */
+EAPI Eina_Bool elm_win_withdrawn_get(const Evas_Object *obj);
+
+/**
+ * @brief Set the urgent state of a window.
+ *
+ * @param[in] urgent If true, the window is urgent.
+ *
+ * @ingroup Elm_Win
+ */
+EAPI void elm_win_urgent_set(Evas_Object *obj, Eina_Bool urgent);
+
+/**
+ * @brief Get the urgent state of a window.
+ *
+ * @return If true, the window is urgent.
+ *
+ * @ingroup Elm_Win
+ */
+EAPI Eina_Bool elm_win_urgent_get(const Evas_Object *obj);
+
+/**
+ * @brief Set the demand_attention state of a window.
+ *
+ * @param[in] demand_attention If true, the window is demand_attention.
+ *
+ * @ingroup Elm_Win
+ */
+EAPI void elm_win_demand_attention_set(Evas_Object *obj, Eina_Bool demand_attention);
+
+/**
+ * @brief Get the demand_attention state of a window.
+ *
+ * @return If true, the window is demand_attention.
+ *
+ * @ingroup Elm_Win
+ */
+EAPI Eina_Bool elm_win_demand_attention_get(const Evas_Object *obj);
+
+/**
+ * @brief Set the modal state of a window.
+ *
+ * @param[in] modal If true, the window is modal.
+ *
+ * @ingroup Elm_Win
+ */
+EAPI void elm_win_modal_set(Evas_Object *obj, Eina_Bool modal);
+
+/**
+ * @brief Get the modal state of a window.
+ *
+ * @return If true, the window is modal.
+ *
+ * @ingroup Elm_Win
+ */
+EAPI Eina_Bool elm_win_modal_get(const Evas_Object *obj);
+