summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIván Briano <sachieru@gmail.com>2011-07-29 19:57:57 +0000
committerIván Briano <sachieru@gmail.com>2011-07-29 19:57:57 +0000
commitefe41a7efe6e5a75bd8bc72b9141df0efb861f4d (patch)
treea50da8200fc9ce5ba57f6409009e35c708e7fb22
parent943c069e2b44cdb0ee59f34ee45830371e2e754c (diff)
Elm_Win for normal human beings
SVN revision: 61907
-rw-r--r--src/lib/Elementary.h.in707
-rw-r--r--src/lib/elm_win.c590
2 files changed, 672 insertions, 625 deletions
diff --git a/src/lib/Elementary.h.in b/src/lib/Elementary.h.in
index 3ede57f75..b3018462e 100644
--- a/src/lib/Elementary.h.in
+++ b/src/lib/Elementary.h.in
@@ -1597,102 +1597,705 @@ extern "C" {
1597 */ 1597 */
1598 1598
1599 /* win */ 1599 /* win */
1600 /** @defgroup Win Win
1601 *
1602 * The window class of Elementary. Contains functions to manipulate
1603 * windows. The Evas engine used to render the window contents is specified
1604 * in the system or user elementary config files (whichever is found last),
1605 * and can be overridden with the ELM_ENGINE environment variable for
1606 * testing. Engines that may be supported (depending on Evas and Ecore-Evas
1607 * compilation setup and modules actually installed at runtime) are (listed
1608 * in order of best supported and most likely to be complete and work to
1609 * lowest quality).
1610 *
1611 * @li "x11", "x", "software-x11", "software_x11" (Software rendering in X11)
1612 * @li "gl", "opengl", "opengl-x11", "opengl_x11" (OpenGL or OpenGL-ES2
1613 * rendering in X11)
1614 * @li "shot:..." (Virtual screenshot renderer - renders to output file and
1615 * exits)
1616 * @li "fb", "software-fb", "software_fb" (Linux framebuffer direct software
1617 * rendering)
1618 * @li "sdl", "software-sdl", "software_sdl" (SDL software rendering to SDL
1619 * buffer)
1620 * @li "gl-sdl", "gl_sdl", "opengl-sdl", "opengl_sdl" (OpenGL or OpenGL-ES2
1621 * rendering using SDL as the buffer)
1622 * @li "gdi", "software-gdi", "software_gdi" (Windows WIN32 rendering via
1623 * GDI with software)
1624 * @li "dfb", "directfb" (Rendering to a DirectFB window)
1625 * @li "x11-8", "x8", "software-8-x11", "software_8_x11" (Rendering in
1626 * grayscale using dedicated 8bit software engine in X11)
1627 * @li "x11-16", "x16", "software-16-x11", "software_16_x11" (Rendering in
1628 * X11 using 16bit software engine)
1629 * @li "wince-gdi", "software-16-wince-gdi", "software_16_wince_gdi"
1630 * (Windows CE rendering via GDI with 16bit software renderer)
1631 * @li "sdl-16", "software-16-sdl", "software_16_sdl" (Rendering to SDL
1632 * buffer with 16bit software renderer)
1633 *
1634 * All engines use a simple string to select the engine to render, EXCEPT
1635 * the "shot" engine. This actually encodes the output of the virtual
1636 * screenshot and how long to delay in the engine string. The engine string
1637 * is encoded in the following way:
1638 *
1639 * "shot:[delay=XX][:][repeat=DDD][:][file=XX]"
1640 *
1641 * Where options are separated by a ":" char if more than one option is
1642 * given, with delay, if provided being the first option and file the last
1643 * (order is important). The delay specifies how long to wait after the
1644 * window is shown before doing the virtual "in memory" rendering and then
1645 * save the output to the file specified by the file option (and then exit).
1646 * If no delay is given, the default is 0.5 seconds. If no file is given the
1647 * default output file is "out.png". Repeat option is for continous
1648 * capturing screenshots. Repeat range is from 1 to 999 and filename is
1649 * fixed to "out001.png" Some examples of using the shot engine:
1650 *
1651 * ELM_ENGINE="shot:delay=1.0:repeat=5:file=elm_test.png" elementary_test
1652 * ELM_ENGINE="shot:delay=1.0:file=elm_test.png" elementary_test
1653 * ELM_ENGINE="shot:file=elm_test2.png" elementary_test
1654 * ELM_ENGINE="shot:delay=2.0" elementary_test
1655 * ELM_ENGINE="shot:" elementary_test
1656 *
1657 * Signals that you can add callbacks for are:
1658 *
1659 * @li "delete,request": the user requested to close the window. See
1660 * elm_win_autodel_set().
1661 * @li "focus,in": window got focus
1662 * @li "focus,out": window lost focus
1663 * @li "moved": window that holds the canvas was moved
1664 *
1665 * @{
1666 */
1667 /**
1668 * Defines the types of window that can be created
1669 *
1670 * These are hints set on the window so that a running Window Manager knows
1671 * how the window should be handled and/or what kind of decorations it
1672 * should have.
1673 *
1674 * Currently, only the X11 backed engines use them.
1675 */
1600 typedef enum _Elm_Win_Type 1676 typedef enum _Elm_Win_Type
1601 { 1677 {
1602 ELM_WIN_BASIC, 1678 ELM_WIN_BASIC, /**< A normal window. Indicates a normal, top-level
1603 ELM_WIN_DIALOG_BASIC, 1679 window. Almost every window will be created with this
1604 ELM_WIN_DESKTOP, 1680 type. */
1605 ELM_WIN_DOCK, 1681 ELM_WIN_DIALOG_BASIC, /**< Used for simple dialog windows/ */
1606 ELM_WIN_TOOLBAR, 1682 ELM_WIN_DESKTOP, /**< For special desktop windows, like a background
1607 ELM_WIN_MENU, 1683 window holding desktop icons. */
1608 ELM_WIN_UTILITY, 1684 ELM_WIN_DOCK, /**< The window is used as a dock or panel. Usually would
1609 ELM_WIN_SPLASH, 1685 be kept on top of any other window by the Window
1610 ELM_WIN_DROPDOWN_MENU, 1686 Manager. */
1611 ELM_WIN_POPUP_MENU, 1687 ELM_WIN_TOOLBAR, /**< The window is used to hold a floating toolbar, or
1612 ELM_WIN_TOOLTIP, 1688 similar. */
1613 ELM_WIN_NOTIFICATION, 1689 ELM_WIN_MENU, /**< Similar to #ELM_WIN_TOOLBAR. */
1614 ELM_WIN_COMBO, 1690 ELM_WIN_UTILITY, /**< A persistent utility window, like a toolbox or
1615 ELM_WIN_DND, 1691 pallete. */
1616 ELM_WIN_INLINED_IMAGE, 1692 ELM_WIN_SPLASH, /**< Splash window for a starting up application. */
1693 ELM_WIN_DROPDOWN_MENU, /**< The window is a dropdown menu, as when an
1694 entry in a menubar is clicked. Typically used
1695 with elm_win_override_set(). This hint exists
1696 for completion only, as the EFL way of
1697 implementing a menu would not normally use a
1698 separate window for its contents. */
1699 ELM_WIN_POPUP_MENU, /**< Like #ELM_WIN_DROPDOWN_MENU, but for the menu
1700 triggered by right-clicking an object. */
1701 ELM_WIN_TOOLTIP, /**< The window is a tooltip. A short piece of
1702 explanatory text that typically appear after the
1703 mouse cursor hovers over an object for a while.
1704 Typically used with elm_win_override_set() and also
1705 not very commonly used in the EFL. */
1706 ELM_WIN_NOTIFICATION, /**< A notification window, like a warning about
1707 battery life or a new E-Mail received. */
1708 ELM_WIN_COMBO, /**< A window holding the contents of a combo box. Not
1709 usually used in the EFL. */
1710 ELM_WIN_DND, /**< Used to indicate the window is a representation of an
1711 object being dragged across different windows, or even
1712 applications. Typically used with
1713 elm_win_override_set(). */
1714 ELM_WIN_INLINED_IMAGE, /**< The window is rendered onto an image
1715 buffer. No actual window is created for this
1716 type, instead the window and all of its
1717 contents will be rendered to an image buffer.
1718 This allows to have children window inside a
1719 parent one just like any other object would
1720 be, and do other things like applying @c
1721 Evas_Map effects to it. This is the only type
1722 of window that requires the @c parent
1723 parameter of elm_win_add() to be a valid @c
1724 Evas_Object. */
1617 } Elm_Win_Type; 1725 } Elm_Win_Type;
1618 1726
1727 /**
1728 * The differents layouts that can be requested for the virtual keyboard.
1729 *
1730 * When the application window is being managed by Illume, it may request
1731 * any of the following layouts for the virtual keyboard.
1732 */
1619 typedef enum _Elm_Win_Keyboard_Mode 1733 typedef enum _Elm_Win_Keyboard_Mode
1620 { 1734 {
1621 ELM_WIN_KEYBOARD_UNKNOWN, 1735 ELM_WIN_KEYBOARD_UNKNOWN, /**< Unknown keyboard state */
1622 ELM_WIN_KEYBOARD_OFF, 1736 ELM_WIN_KEYBOARD_OFF, /**< Request to deactivate the keyboard */
1623 ELM_WIN_KEYBOARD_ON, 1737 ELM_WIN_KEYBOARD_ON, /**< Enable keyboard with default layout */
1624 ELM_WIN_KEYBOARD_ALPHA, 1738 ELM_WIN_KEYBOARD_ALPHA, /**< Alpha (a-z) keyboard layout */
1625 ELM_WIN_KEYBOARD_NUMERIC, 1739 ELM_WIN_KEYBOARD_NUMERIC, /**< Numeric keyboard layout */
1626 ELM_WIN_KEYBOARD_PIN, 1740 ELM_WIN_KEYBOARD_PIN, /**< PIN keyboard layout */
1627 ELM_WIN_KEYBOARD_PHONE_NUMBER, 1741 ELM_WIN_KEYBOARD_PHONE_NUMBER, /**< Phone keyboard layout */
1628 ELM_WIN_KEYBOARD_HEX, 1742 ELM_WIN_KEYBOARD_HEX, /**< Hexadecimal numeric keyboard layout */
1629 ELM_WIN_KEYBOARD_TERMINAL, 1743 ELM_WIN_KEYBOARD_TERMINAL, /**< Full (QUERTY) keyboard layout */
1630 ELM_WIN_KEYBOARD_PASSWORD, 1744 ELM_WIN_KEYBOARD_PASSWORD, /**< Password keyboard layout */
1631 ELM_WIN_KEYBOARD_IP, 1745 ELM_WIN_KEYBOARD_IP, /**< IP keyboard layout */
1632 ELM_WIN_KEYBOARD_HOST, 1746 ELM_WIN_KEYBOARD_HOST, /**< Host keyboard layout */
1633 ELM_WIN_KEYBOARD_FILE, 1747 ELM_WIN_KEYBOARD_FILE, /**< File keyboard layout */
1634 ELM_WIN_KEYBOARD_URL, 1748 ELM_WIN_KEYBOARD_URL, /**< URL keyboard layout */
1635 ELM_WIN_KEYBOARD_KEYPAD, 1749 ELM_WIN_KEYBOARD_KEYPAD, /**< Keypad layout */
1636 ELM_WIN_KEYBOARD_J2ME 1750 ELM_WIN_KEYBOARD_J2ME /**< J2ME keyboard layout */
1637 } Elm_Win_Keyboard_Mode; 1751 } Elm_Win_Keyboard_Mode;
1638 1752
1753 /**
1754 * Available commands that can be sent to the Illume manager.
1755 *
1756 * When running under an Illume session, a window may send commands to the
1757 * Illume manager to perform different actions.
1758 */
1639 typedef enum _Elm_Illume_Command 1759 typedef enum _Elm_Illume_Command
1640 { 1760 {
1641 ELM_ILLUME_COMMAND_FOCUS_BACK, 1761 ELM_ILLUME_COMMAND_FOCUS_BACK, /**< Reverts focus to the previous
1642 ELM_ILLUME_COMMAND_FOCUS_FORWARD, 1762 window */
1643 ELM_ILLUME_COMMAND_FOCUS_HOME, 1763 ELM_ILLUME_COMMAND_FOCUS_FORWARD, /**< Sends focus to the next window\
1644 ELM_ILLUME_COMMAND_CLOSE 1764 in the list */
1765 ELM_ILLUME_COMMAND_FOCUS_HOME, /**< Hides all windows to show the Home
1766 screen */
1767 ELM_ILLUME_COMMAND_CLOSE /**< Closes the currently active window */
1645 } Elm_Illume_Command; 1768 } Elm_Illume_Command;
1646 1769
1770 /**
1771 * Adds a window object. If this is the first window created, pass NULL as
1772 * @p parent.
1773 *
1774 * @param parent Parent object to add the window to, or NULL
1775 * @param name The name of the window
1776 * @param type The window type, one of #Elm_Win_Type.
1777 *
1778 * The @p parent paramter can be @c NULL for every window @p type except
1779 * #ELM_WIN_INLINED_IMAGE, which needs a parent to retrieve the canvas on
1780 * which the image object will be created.
1781 *
1782 * For any other type, if @p parent is @c NULL, then the window created
1783 * will be independent of any other window in the application. When another
1784 * widget is used as the @p parent, the window will visually be the same
1785 * as any other, but it would be added as a sub-object of the given parent,
1786 * which means that if the parent object is destroyed the window will also
1787 * be destroyed.
1788 *
1789 * @return The created object, or NULL on failure
1790 */
1647 EAPI Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type); 1791 EAPI Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
1792 /**
1793 * Add @p subobj as a resize object of window @p obj.
1794 *
1795 *
1796 * Setting an object as a resize object of the window means that the
1797 * @p subobj child's size and position will be controlled by the window
1798 * directly. That is, the object will be resized to match the window size
1799 * and should never be moved or resized manually by the developer.
1800 *
1801 * In addition, resize objects of the window control what the minimum size
1802 * of it will be, as well as whether it can or not be resized by the user.
1803 *
1804 * For the end user to be able to resize a window by dragging the handles
1805 * or borders provided by the Window Manager, or using any other similar
1806 * mechanism, all of the resize objects in the window should have their
1807 * evas_object_size_hint_weight_set() set to EVAS_HINT_EXPAND.
1808 *
1809 * @param obj The window object
1810 * @param subobj The resize object to add
1811 */
1648 EAPI void elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1); 1812 EAPI void elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
1813 /**
1814 * Delete @p subobj as a resize object of window @p obj.
1815 *
1816 * This function removes the object @p subobj from the resize objects of
1817 * the window @p obj. It will not delete the object itself, which will be
1818 * left unmanaged and should be deleted by the developer, manually handled
1819 * or set as child of some other container.
1820 *
1821 * @param obj The window object
1822 * @param subobj The resize object to add
1823 */
1649 EAPI void elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1); 1824 EAPI void elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
1825 /**
1826 * Set the title of the window
1827 *
1828 * @param obj The window object
1829 * @param title The title to set
1830 */
1650 EAPI void elm_win_title_set(Evas_Object *obj, const char *title) EINA_ARG_NONNULL(1); 1831 EAPI void elm_win_title_set(Evas_Object *obj, const char *title) EINA_ARG_NONNULL(1);
1832 /**
1833 * Get the title of the window
1834 *
1835 * The returned string is an internal one and should not be freed or
1836 * modified. It will also be rendered invalid if a new title is set or if
1837 * the window is destroyed.
1838 *
1839 * @param obj The window object
1840 * @return The title
1841 */
1651 EAPI const char *elm_win_title_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 1842 EAPI const char *elm_win_title_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1843 /**
1844 * Set the window's autodel state.
1845 *
1846 * When closing the window in any way outside of the program control, like
1847 * pressing the X button in the titlebar or using a command from the
1848 * Window Manager, a "delete,request" signal is emitted to indicate that
1849 * this event occurred and the developer can take any action, which may
1850 * include, or not, destroying the window object.
1851 *
1852 * When the @p autodel parameter is set, the window will be automatically
1853 * destroyed when this event occurs, after the signal is emitted.
1854 * If @p autodel is @c EINA_FALSE, then the window will not be destroyed
1855 * and is up to the program to do so when it's required.
1856 *
1857 * @param obj The window object
1858 * @param autodel If true, the window will automatically delete itself when
1859 * closed
1860 */
1652 EAPI void elm_win_autodel_set(Evas_Object *obj, Eina_Bool autodel) EINA_ARG_NONNULL(1); 1861 EAPI void elm_win_autodel_set(Evas_Object *obj, Eina_Bool autodel) EINA_ARG_NONNULL(1);
1862 /**
1863 * Get the window's autodel state.
1864 *
1865 * @param obj The window object
1866 * @return If the window will automatically delete itself when closed
1867 *
1868 * @see elm_win_autodel_set()
1869 */
1653 EAPI Eina_Bool elm_win_autodel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 1870 EAPI Eina_Bool elm_win_autodel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1871 /**
1872 * Activate a window object.
1873 *
1874 * This function sends a request to the Window Manager to activate the
1875 * window pointed by @p obj. If honored by the WM, the window will receive
1876 * the keyboard focus.
1877 *
1878 * @note This is just a request that a Window Manager may ignore, so calling
1879 * this function does not ensure in any way that the window will be the
1880 * active one after it.
1881 *
1882 * @param obj The window object
1883 */
1654 EAPI void elm_win_activate(Evas_Object *obj) EINA_ARG_NONNULL(1); 1884 EAPI void elm_win_activate(Evas_Object *obj) EINA_ARG_NONNULL(1);
1885 /**
1886 * Lower a window object.
1887 *
1888 * Places the window pointed by @p obj at the bottom of the stack, so that
1889 * no other window is covered by it.
1890 *
1891 * If elm_win_override_set() is not set, the Window Manager may ignore this
1892 * request.
1893 *
1894 * @param obj The window object
1895 */
1655 EAPI void elm_win_lower(Evas_Object *obj) EINA_ARG_NONNULL(1); 1896 EAPI void elm_win_lower(Evas_Object *obj) EINA_ARG_NONNULL(1);
1897 /**
1898 * Raise a window object.
1899 *
1900 * Places the window pointed by @p obj at the top of the stack, so that it's
1901 * not covered by any other window.
1902 *
1903 * If elm_win_override_set() is not set, the Window Manager may ignore this
1904 * request.
1905 *
1906 * @param obj The window object
1907 */
1656 EAPI void elm_win_raise(Evas_Object *obj) EINA_ARG_NONNULL(1); 1908 EAPI void elm_win_raise(Evas_Object *obj) EINA_ARG_NONNULL(1);
1909 /**
1910 * Set the borderless state of a window.
1911 *
1912 * This function requests the Window Manager to not draw any decoration
1913 * around the window.
1914 *
1915 * @param obj The window object
1916 * @param borderless If true, the window is borderless
1917 */
1657 EAPI void elm_win_borderless_set(Evas_Object *obj, Eina_Bool borderless) EINA_ARG_NONNULL(1); 1918 EAPI void elm_win_borderless_set(Evas_Object *obj, Eina_Bool borderless) EINA_ARG_NONNULL(1);
1919 /**
1920 * Get the borderless state of a window.
1921 *
1922 * @param obj The window object
1923 * @return If true, the window is borderless
1924 */
1658 EAPI Eina_Bool elm_win_borderless_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 1925 EAPI Eina_Bool elm_win_borderless_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1926 /**
1927 * Set the shaped state of a window.
1928 *
1929 * Shaped windows, when supported, will render the parts of the window that
1930 * has no content, transparent.
1931 *
1932 * If @p shaped is EINA_FALSE, then it is strongly adviced to have some
1933 * background object or cover the entire window in any other way, or the
1934 * parts of the canvas that have no data will show framebuffer artifacts.
1935 *
1936 * @param obj The window object
1937 * @param shaped If true, the window is shaped
1938 *
1939 * @see elm_win_alpha_set()
1940 */
1659 EAPI void elm_win_shaped_set(Evas_Object *obj, Eina_Bool shaped) EINA_ARG_NONNULL(1); 1941 EAPI void elm_win_shaped_set(Evas_Object *obj, Eina_Bool shaped) EINA_ARG_NONNULL(1);
1942 /**
1943 * Get the shaped state of a window.
1944 *
1945 * @param obj The window object
1946 * @return If true, the window is shaped
1947 *
1948 * @see elm_win_shaped_set()
1949 */
1660 EAPI Eina_Bool elm_win_shaped_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 1950 EAPI Eina_Bool elm_win_shaped_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1951 /**
1952 * Set the alpha channel state of a window.
1953 *
1954 * If @p alpha is EINA_TRUE, the alpha channel of the canvas will be enabled
1955 * possibly making parts of the window completely or partially transparent.
1956 * This is also subject to the underlying system supporting it, like for
1957 * example, running under a compositing manager. If no compositing is
1958 * available, enabling this option will instead fallback to using shaped
1959 * windows, with elm_win_shaped_set().
1960 *
1961 * @param obj The window object
1962 * @param alpha If true, the window has an alpha channel
1963 *
1964 * @see elm_win_alpha_set()
1965 */
1661 EAPI void elm_win_alpha_set(Evas_Object *obj, Eina_Bool alpha) EINA_ARG_NONNULL(1); 1966 EAPI void elm_win_alpha_set(Evas_Object *obj, Eina_Bool alpha) EINA_ARG_NONNULL(1);
1967 /**
1968 * Get the transparency state of a window.
1969 *
1970 * @param obj The window object
1971 * @return If true, the window is transparent
1972 *
1973 * @see elm_win_transparent_set()
1974 */
1662 EAPI Eina_Bool elm_win_transparent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 1975 EAPI Eina_Bool elm_win_transparent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1976 /**
1977 * Set the transparency state of a window.
1978 *
1979 * Use elm_win_alpha_set() instead.
1980 *
1981 * @param obj The window object
1982 * @param transparent If true, the window is transparent
1983 *
1984 * @see elm_win_alpha_set()
1985 */
1663 EAPI void elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent) EINA_ARG_NONNULL(1); 1986 EAPI void elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent) EINA_ARG_NONNULL(1);
1987 /**
1988 * Get the alpha channel state of a window.
1989 *
1990 * @param obj The window object
1991 * @return If true, the window has an alpha channel
1992 */
1664 EAPI Eina_Bool elm_win_alpha_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 1993 EAPI Eina_Bool elm_win_alpha_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1994 /**
1995 * Set the override state of a window.
1996 *
1997 * A window with @p override set to EINA_TRUE will not be managed by the
1998 * Window Manager. This means that no decorations of any kind will be shown
1999 * for it, moving and resizing must be handled by the application, as well
2000 * as the window visibility.
2001 *
2002 * This should not be used for normal windows, and even for not so normal
2003 * ones, it should only be used when there's a good reason and with a lot
2004 * of care. Mishandling override windows may result situations that
2005 * disrupt the normal workflow of the end user.
2006 *
2007 * @param obj The window object
2008 * @param override If true, the window is overridden
2009 */
1665 EAPI void elm_win_override_set(Evas_Object *obj, Eina_Bool override) EINA_ARG_NONNULL(1); 2010 EAPI void elm_win_override_set(Evas_Object *obj, Eina_Bool override) EINA_ARG_NONNULL(1);
2011 /**
2012 * Get the override state of a window.
2013 *
2014 * @param obj The window object
2015 * @return If true, the window is overridden
2016 *
2017 * @see elm_win_override_set()
2018 */
1666 EAPI Eina_Bool elm_win_override_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2019 EAPI Eina_Bool elm_win_override_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2020 /**
2021 * Set the fullscreen state of a window.
2022 *
2023 * @param obj The window object
2024 * @param fullscreen If true, the window is fullscreen
2025 */
1667 EAPI void elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen) EINA_ARG_NONNULL(1); 2026 EAPI void elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen) EINA_ARG_NONNULL(1);
2027 /**
2028 * Get the fullscreen state of a window.
2029 *
2030 * @param obj The window object
2031 * @return If true, the window is fullscreen
2032 */
1668 EAPI Eina_Bool elm_win_fullscreen_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2033 EAPI Eina_Bool elm_win_fullscreen_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2034 /**
2035 * Set the maximized state of a window.
2036 *
2037 * @param obj The window object
2038 * @param maximized If true, the window is maximized
2039 */
1669 EAPI void elm_win_maximized_set(Evas_Object *obj, Eina_Bool maximized) EINA_ARG_NONNULL(1); 2040 EAPI void elm_win_maximized_set(Evas_Object *obj, Eina_Bool maximized) EINA_ARG_NONNULL(1);
2041 /**
2042 * Get the maximized state of a window.
2043 *
2044 * @param obj The window object
2045 * @return If true, the window is maximized
2046 */
1670 EAPI Eina_Bool elm_win_maximized_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2047 EAPI Eina_Bool elm_win_maximized_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2048 /**
2049 * Set the iconified state of a window.
2050 *
2051 * @param obj The window object
2052 * @param iconified If true, the window is iconified
2053 */
1671 EAPI void elm_win_iconified_set(Evas_Object *obj, Eina_Bool iconified) EINA_ARG_NONNULL(1); 2054 EAPI void elm_win_iconified_set(Evas_Object *obj, Eina_Bool iconified) EINA_ARG_NONNULL(1);
2055 /**
2056 * Get the iconified state of a window.
2057 *
2058 * @param obj The window object
2059 * @return If true, the window is iconified
2060 */
1672 EAPI Eina_Bool elm_win_iconified_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2061 EAPI Eina_Bool elm_win_iconified_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2062 /**
2063 * Set the layer of the window.
2064 *
2065 * What this means exactly will depend on the underlying engine used.
2066 *
2067 * In the case of X11 backed engines, the value in @p layer has the
2068 * following meanings:
2069 * @li < 3: The window will be placed below all others.
2070 * @li > 5: The window will be placed above all others.
2071 * @li other: The window will be placed in the default layer.
2072 *
2073 * @param obj The window object
2074 * @param layer The layer of the window
2075 */
1673 EAPI void elm_win_layer_set(Evas_Object *obj, int layer) EINA_ARG_NONNULL(1); 2076 EAPI void elm_win_layer_set(Evas_Object *obj, int layer) EINA_ARG_NONNULL(1);
2077 /**
2078 * Get the layer of the window.
2079 *
2080 * @param obj The window object
2081 * @return The layer of the window
2082 *
2083 * @see elm_win_layer_set()
2084 */
1674 EAPI int elm_win_layer_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2085 EAPI int elm_win_layer_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2086 /**
2087 * Set the rotation of the window.
2088 *
2089 * Most engines only work with multiples of 90.
2090 *
2091 * This function is used to set the orientation of the window @p obj to
2092 * match that of the screen. The window itself will be resized to adjust
2093 * to the new geometry of its contents. If you want to keep the window size,
2094 * see elm_win_rotation_with_resize_set().
2095 *
2096 * @param obj The window object
2097 * @param rotation The rotation of the window, in degrees (0-360),
2098 * counter-clockwise.
2099 */
1675 EAPI void elm_win_rotation_set(Evas_Object *obj, int rotation) EINA_ARG_NONNULL(1); 2100 EAPI void elm_win_rotation_set(Evas_Object *obj, int rotation) EINA_ARG_NONNULL(1);
2101 /**
2102 * Rotates the window and resizes it.
2103 *
2104 * Like elm_win_rotation_set(), but it also resizes the window's contents so
2105 * that they fit inside the current window geometry.
2106 *
2107 * @param obj The window object
2108 * @param layer The rotation of the window in degrees (0-360),
2109 * counter-clockwise.
2110 */
1676 EAPI void elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation) EINA_ARG_NONNULL(1); 2111 EAPI void elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation) EINA_ARG_NONNULL(1);
2112 /**
2113 * Get the rotation of the window.
2114 *
2115 * @param obj The window object
2116 * @return The rotation of the window in degrees (0-360)
2117 *
2118 * @see elm_win_rotation_set()
2119 * @see elm_win_rotation_with_resize_set()
2120 */
1677 EAPI int elm_win_rotation_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2121 EAPI int elm_win_rotation_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2122 /**
2123 * Set the sticky state of the window.
2124 *
2125 * Hints the Window Manager that the window in @p obj should be left fixed
2126 * at its position even when the virtual desktop it's on moves or changes.
2127 *
2128 * @param obj The window object
2129 * @param sticky If true, the window's sticky state is enabled
2130 */
1678 EAPI void elm_win_sticky_set(Evas_Object *obj, Eina_Bool sticky) EINA_ARG_NONNULL(1); 2131 EAPI void elm_win_sticky_set(Evas_Object *obj, Eina_Bool sticky) EINA_ARG_NONNULL(1);
2132 /**
2133 * Get the sticky state of the window.
2134 *
2135 * @param obj The window object
2136 * @return If true, the window's sticky state is enabled
2137 *
2138 * @see elm_win_sticky_set()
2139 */
1679 EAPI Eina_Bool elm_win_sticky_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2140 EAPI Eina_Bool elm_win_sticky_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2141 /**
2142 * Set if this window is an illume conformant window
2143 *
2144 * @param obj The window object
2145 * @param conformant The conformant flag (1 = conformant, 0 = non-conformant)
2146 */
1680 EAPI void elm_win_conformant_set(Evas_Object *obj, Eina_Bool conformant) EINA_ARG_NONNULL(1); 2147 EAPI void elm_win_conformant_set(Evas_Object *obj, Eina_Bool conformant) EINA_ARG_NONNULL(1);
2148 /**
2149 * Get if this window is an illume conformant window
2150 *
2151 * @param obj The window object
2152 * @return A boolean if this window is illume conformant or not
2153 */
1681 EAPI Eina_Bool elm_win_conformant_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2154 EAPI Eina_Bool elm_win_conformant_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2155 /**
2156 * Set a window to be an illume quickpanel window
2157 *
2158 * By default window objects are not quickpanel windows.
2159 *
2160 * @param obj The window object
2161 * @param quickpanel The quickpanel flag (1 = quickpanel, 0 = normal window)
2162 */
1682 EAPI void elm_win_quickpanel_set(Evas_Object *obj, Eina_Bool quickpanel) EINA_ARG_NONNULL(1); 2163 EAPI void elm_win_quickpanel_set(Evas_Object *obj, Eina_Bool quickpanel) EINA_ARG_NONNULL(1);
2164 /**
2165 * Get if this window is a quickpanel or not
2166 *
2167 * @param obj The window object
2168 * @return A boolean if this window is a quickpanel or not
2169 */
1683 EAPI Eina_Bool elm_win_quickpanel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2170 EAPI Eina_Bool elm_win_quickpanel_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2171 /**
2172 * Set the major priority of a quickpanel window
2173 *
2174 * @param obj The window object
2175 * @param priority The major priority for this quickpanel
2176 */
1684 EAPI void elm_win_quickpanel_priority_major_set(Evas_Object *obj, int priority) EINA_ARG_NONNULL(1); 2177 EAPI void elm_win_quickpanel_priority_major_set(Evas_Object *obj, int priority) EINA_ARG_NONNULL(1);
2178 /**
2179 * Get the major priority of a quickpanel window
2180 *
2181 * @param obj The window object
2182 * @return The major priority of this quickpanel
2183 */
1685 EAPI int elm_win_quickpanel_priority_major_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2184 EAPI int elm_win_quickpanel_priority_major_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2185 /**
2186 * Set the minor priority of a quickpanel window
2187 *
2188 * @param obj The window object
2189 * @param priority The minor priority for this quickpanel
2190 */
1686 EAPI void elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority) EINA_ARG_NONNULL(1); 2191 EAPI void elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority) EINA_ARG_NONNULL(1);
2192 /**
2193 * Get the minor priority of a quickpanel window
2194 *
2195 * @param obj The window object
2196 * @return The minor priority of this quickpanel
2197 */
1687 EAPI int elm_win_quickpanel_priority_minor_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2198 EAPI int elm_win_quickpanel_priority_minor_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2199 /**
2200 * Set which zone this quickpanel should appear in
2201 *
2202 * @param obj The window object
2203 * @param zone The requested zone for this quickpanel
2204 */
1688 EAPI void elm_win_quickpanel_zone_set(Evas_Object *obj, int zone) EINA_ARG_NONNULL(1); 2205 EAPI void elm_win_quickpanel_zone_set(Evas_Object *obj, int zone) EINA_ARG_NONNULL(1);
2206 /**
2207 * Get which zone this quickpanel should appear in
2208 *
2209 * @param obj The window object
2210 * @return The requested zone for this quickpanel
2211 */
1689 EAPI int elm_win_quickpanel_zone_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2212 EAPI int elm_win_quickpanel_zone_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2213 /**
2214 * Set the window to be skipped by keyboard focus
2215 *
2216 * This sets the window to be skipped by normal keyboard input. This means
2217 * a window manager will be asked to not focus this window as well as omit
2218 * it from things like the taskbar, pager, "alt-tab" list etc. etc.
2219 *
2220 * Call this and enable it on a window BEFORE you show it for the first time,
2221 * otherwise it may have no effect.
2222 *
2223 * Use this for windows that have only output information or might only be
2224 * interacted with by the mouse or fingers, and never for typing input.
2225 * Be careful that this may have side-effects like making the window
2226 * non-accessible in some cases unless the window is specially handled. Use
2227 * this with care.
2228 *
2229 * @param obj The window object
2230 * @param skip The skip flag state (EINA_TRUE if it is to be skipped)
2231 */
1690 EAPI void elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip) EINA_ARG_NONNULL(1); 2232 EAPI void elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip) EINA_ARG_NONNULL(1);
2233 /**
2234 * Send a command to the windowing environment
2235 *
2236 * This is intended to work in touchscreen or small screen device
2237 * environments where there is a more simplistic window management policy in
2238 * place. This uses the window object indicated to select which part of the
2239 * environment to control (the part that this window lives in), and provides
2240 * a command and an optional parameter structure (use NULL for this if not
2241 * needed).
2242 *
2243 * @param obj The window object that lives in the environment to control
2244 * @param command The command to send
2245 * @param params Optional parameters for the command
2246 */
1691 EAPI void elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params) EINA_ARG_NONNULL(1); 2247 EAPI void elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params) EINA_ARG_NONNULL(1);
2248 /**
2249 * Get the inlined image object handle
2250 *
2251 * When you create a window with elm_win_add() of type ELM_WIN_INLINED_IMAGE,
2252 * then the window is in fact an evas image object inlined in the parent
2253 * canvas. You can get this object (be careful to not manipulate it as it
2254 * is under control of elementary), and use it to do things like get pixel
2255 * data, save the image to a file, etc.
2256 *
2257 * @param obj The window object to get the inlined image from
2258 * @return The inlined image object, or NULL if none exists
2259 */
1692 EAPI Evas_Object *elm_win_inlined_image_object_get(Evas_Object *obj); 2260 EAPI Evas_Object *elm_win_inlined_image_object_get(Evas_Object *obj);
2261 /**
2262 * Set the enabled status for the focus highlight in a window
2263 *
2264 * This function will enable or disable the focus highlight only for the
2265 * given window, regardless of the global setting for it
2266 *
2267 * @param obj The window where to enable the highlight
2268 * @param enabled The enabled value for the highlight
2269 */
1693 EAPI void elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1); 2270 EAPI void elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
2271 /**
2272 * Get the enabled value of the focus highlight for this window
2273 *
2274 * @param obj The window in which to check if the focus highlight is enabled
2275 *
2276 * @return EINA_TRUE if enabled, EINA_FALSE otherwise
2277 */
1694 EAPI Eina_Bool elm_win_focus_highlight_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2278 EAPI Eina_Bool elm_win_focus_highlight_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2279 /**
2280 * Set the style for the focus highlight on this window
2281 *
2282 * Sets the style to use for theming the highlight of focused objects on
2283 * the given window. If @p style is NULL, the default will be used.
2284 *
2285 * @param obj The window where to set the style
2286 * @param style The style to set
2287 */
1695 EAPI void elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1); 2288 EAPI void elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
2289 /**
2290 * Get the style set for the focus highlight object
2291 *
2292 * Gets the style set for this windows highilght object, or NULL if none
2293 * is set.
2294 *
2295 * @param obj The window to retrieve the highlights style from
2296 *
2297 * @return The style set or NULL if none was. Default is used in that case.
2298 */
1696 EAPI const char *elm_win_focus_highlight_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2299 EAPI const char *elm_win_focus_highlight_style_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1697 /*... 2300 /*...
1698 * ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas) 2301 * ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas)
@@ -1707,12 +2310,46 @@ extern "C" {
1707 * (blank mouse, private mouse obj, defaultmouse) 2310 * (blank mouse, private mouse obj, defaultmouse)
1708 * 2311 *
1709 */ 2312 */
2313 /**
2314 * Sets the keyboard mode of the window.
2315 *
2316 * @param obj The window object
2317 * @param mode The mode to set, one of #Elm_Win_Keyboard_Mode
2318 */
1710 EAPI void elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode) EINA_ARG_NONNULL(1); 2319 EAPI void elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode) EINA_ARG_NONNULL(1);
2320 /**
2321 * Gets the keyboard mode of the window.
2322 *
2323 * @param obj The window object
2324 * @return The mode, one of #Elm_Win_Keyboard_Mode
2325 */
1711 EAPI Elm_Win_Keyboard_Mode elm_win_keyboard_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2326 EAPI Elm_Win_Keyboard_Mode elm_win_keyboard_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
2327 /**
2328 * Sets whether the window is a keyboard.
2329 *
2330 * @param obj The window object
2331 * @param is_keyboard If true, the window is a virtual keyboard
2332 */
1712 EAPI void elm_win_keyboard_win_set(Evas_Object *obj, Eina_Bool is_keyboard) EINA_ARG_NONNULL(1); 2333 EAPI void elm_win_keyboard_win_set(Evas_Object *obj, Eina_Bool is_keyboard) EINA_ARG_NONNULL(1);
2334 /**
2335 * Gets whether the window is a keyboard.
2336 *
2337 * @param obj The window object
2338 * @return If the window is a virtual keyboard
2339 */
1713 EAPI Eina_Bool elm_win_keyboard_win_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); 2340 EAPI Eina_Bool elm_win_keyboard_win_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
1714 2341
2342 /**
2343 * Get the screen position of a window.
2344 *
2345 * @param obj The window object
2346 * @param x The int to store the x coordinate to
2347 * @param y The int to store the y coordinate to
2348 */
1715 EAPI void elm_win_screen_position_get(const Evas_Object *obj, int *x, int *y) EINA_ARG_NONNULL(1); 2349 EAPI void elm_win_screen_position_get(const Evas_Object *obj, int *x, int *y) EINA_ARG_NONNULL(1);
2350 /**
2351 * @}
2352 */
1716 2353
1717 /** 2354 /**
1718 * @defgroup Inwin Inwin 2355 * @defgroup Inwin Inwin
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index be639d05c..b21863916 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -1,74 +1,6 @@
1#include <Elementary.h> 1#include <Elementary.h>
2#include "elm_priv.h" 2#include "elm_priv.h"
3 3
4/**
5 * @defgroup Win Win
6 *
7 * The window class of Elementary. Contains functions to manipulate
8 * windows. The Evas engine used to render the window contents is specified
9 * in the system or user elementary config files (whichever is found last),
10 * and can be overridden with the ELM_ENGINE environment variable for testing.
11 * Engines that may be supported (depending on Evas and Ecore-Evas compilation
12 * setup and modules actually installed at runtime) are (listed in order of
13 * best supported and most likely to be complete and work to lowest quality).
14 *
15 * "x11", "x", "software-x11", "software_x11"
16 * (Software rendering in X11)
17 * "gl", "opengl", "opengl-x11", "opengl_x11"
18 * (OpenGL or OpenGL-ES2 rendering in X11)
19 * "shot:..."
20 * (Virtual screenshot renderer - renders to output file and exits)
21 * "fb", "software-fb", "software_fb"
22 * (Linux framebuffer direct software rendering)
23 * "sdl", "software-sdl", "software_sdl"
24 * (SDL software rendering to SDL buffer)
25 * "gl-sdl", "gl_sdl", "opengl-sdl", "opengl_sdl"
26 * (OpenGL or OpenGL-ES2 rendering using SDL as the buffer)
27 * "gdi", "software-gdi", "software_gdi"
28 * (Windows WIN32 rendering via GDI with software)
29 * "dfb", "directfb"
30 * (Rendering to a DirectFB window)
31 * "x11-8", "x8", "software-8-x11", "software_8_x11"
32 * (Rendering in grayscale using dedicated 8bit software engine in X11)
33 * "x11-16", "x16", "software-16-x11", "software_16_x11"
34 * (Rendering in X11 using 16bit software engine)
35 * "wince-gdi", "software-16-wince-gdi", "software_16_wince_gdi"
36 * (Windows CE rendering via GDI with 16bit software renderer)
37 * "sdl-16", "software-16-sdl", "software_16_sdl"
38 * (Rendering to SDL buffer with 16bit software renderer)
39 *
40 * All engines use a simple string to select the engine to render, EXCEPT
41 * the "shot" engine. This actually encodes the output of the virtual
42 * screenshot and how long to delay in the engine string. The engine string
43 * is encoded in the following way:
44 *
45 * "shot:[delay=XX][:][repeat=DDD][:][file=XX]"
46 *
47 * Where options are separated by a ":" char if more than one option is given,
48 * with delay, if provided being the first option and file the last (order
49 * is important). The delay specifies how long to wait after the window is
50 * shown before doing the virtual "in memory" rendering and then save the
51 * output to the file specified by the file option (and then exit). If no
52 * delay is given, the default is 0.5 seconds. If no file is given the
53 * default output file is "out.png". Repeat option is for continous
54 * capturing screenshots. Repeat range is from 1 to 999 and
55 * filename is fixed to "out001.png"
56 * Some examples of using the shot engine:
57 *
58 * ELM_ENGINE="shot:delay=1.0:repeat=5:file=elm_test.png" elementary_test
59 * ELM_ENGINE="shot:delay=1.0:file=elm_test.png" elementary_test
60 * ELM_ENGINE="shot:file=elm_test2.png" elementary_test
61 * ELM_ENGINE="shot:delay=2.0" elementary_test
62 * ELM_ENGINE="shot:" elementary_test
63 *
64 * Signals that you can add callbacks for are:
65 *
66 * "delete,request" - the user requested to delete the window
67 * "focus,in" - window got focus
68 * "focus,out" - window lost focus
69 * "moved" - window that holds the canvas was moved
70 */
71
72typedef struct _Elm_Win Elm_Win; 4typedef struct _Elm_Win Elm_Win;
73 5
74struct _Elm_Win 6struct _Elm_Win
@@ -1372,26 +1304,6 @@ _win_inlined_image_set(Elm_Win *win)
1372 _win_img_focus_out, win); 1304 _win_img_focus_out, win);
1373} 1305}
1374 1306
1375/**
1376 * Adds a window object. If this is the first window created, pass NULL as
1377 * @p parent.
1378 *
1379 * @param parent Parent object to add the window to, or NULL
1380 * @param name The name of the window
1381 * @param type The window type, one of the following:
1382 * ELM_WIN_BASIC
1383 * ELM_WIN_DIALOG_BASIC
1384 * ELM_WIN_DESKTOP
1385 * ELM_WIN_DOCK
1386 * ELM_WIN_TOOLBAR
1387 * ELM_WIN_MENU
1388 * ELM_WIN_UTILITY
1389 * ELM_WIN_SPLASH
1390 *
1391 * @return The created object, or NULL on failure
1392 *
1393 * @ingroup Win
1394 */
1395EAPI Evas_Object * 1307EAPI Evas_Object *
1396elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type) 1308elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
1397{ 1309{
@@ -1646,15 +1558,6 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
1646 return win->win_obj; 1558 return win->win_obj;
1647} 1559}
1648 1560
1649/**
1650 * Add @p subobj as a resize object of window @p obj. Note, do not move and
1651 * resize window and sub object at the same time. It will cause problem.
1652 *
1653 * @param obj The window object
1654 * @param subobj The resize object to add
1655 *
1656 * @ingroup Win
1657 */
1658EAPI void 1561EAPI void
1659elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj) 1562elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj)
1660{ 1563{
@@ -1677,14 +1580,6 @@ elm_win_resize_object_add(Evas_Object *obj, Evas_Object *subobj)
1677 _elm_win_eval_subobjs(obj); 1580 _elm_win_eval_subobjs(obj);
1678} 1581}
1679 1582
1680/**
1681 * Delete @p subobj as a resize object of window @p obj.
1682 *
1683 * @param obj The window object
1684 * @param subobj The resize object to add
1685 *
1686 * @ingroup Win
1687 */
1688EAPI void 1583EAPI void
1689elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj) 1584elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj)
1690{ 1585{
@@ -1703,14 +1598,6 @@ elm_win_resize_object_del(Evas_Object *obj, Evas_Object *subobj)
1703 _elm_win_eval_subobjs(obj); 1598 _elm_win_eval_subobjs(obj);
1704} 1599}
1705 1600
1706/**
1707 * Set the title of the window
1708 *
1709 * @param obj The window object
1710 * @param title The title to set
1711 *
1712 * @ingroup Win
1713 */
1714EAPI void 1601EAPI void
1715elm_win_title_set(Evas_Object *obj, const char *title) 1602elm_win_title_set(Evas_Object *obj, const char *title)
1716{ 1603{
@@ -1721,14 +1608,6 @@ elm_win_title_set(Evas_Object *obj, const char *title)
1721 ecore_evas_title_set(win->ee, title); 1608 ecore_evas_title_set(win->ee, title);
1722} 1609}
1723 1610
1724/**
1725 * Get the title of the window
1726 *
1727 * @param obj The window object
1728 * @return The title
1729 *
1730 * @ingroup Win
1731 */
1732EAPI const char * 1611EAPI const char *
1733elm_win_title_get(const Evas_Object *obj) 1612elm_win_title_get(const Evas_Object *obj)
1734{ 1613{
@@ -1739,14 +1618,6 @@ elm_win_title_get(const Evas_Object *obj)
1739 return ecore_evas_title_get(win->ee); 1618 return ecore_evas_title_get(win->ee);
1740} 1619}
1741 1620
1742/**
1743 * Set the window's autodel state.
1744 *
1745 * @param obj The window object
1746 * @param autodel If true, the window will automatically delete itself when closed
1747 *
1748 * @ingroup Win
1749 */
1750EAPI void 1621EAPI void
1751elm_win_autodel_set(Evas_Object *obj, Eina_Bool autodel) 1622elm_win_autodel_set(Evas_Object *obj, Eina_Bool autodel)
1752{ 1623{
@@ -1757,14 +1628,6 @@ elm_win_autodel_set(Evas_Object *obj, Eina_Bool autodel)
1757 win->autodel = autodel; 1628 win->autodel = autodel;
1758} 1629}
1759 1630
1760/**
1761 * Get the window's autodel state.
1762 *
1763 * @param obj The window object
1764 * @return If the window will automatically delete itself when closed
1765 *
1766 * @ingroup Win
1767 */
1768EAPI Eina_Bool 1631EAPI Eina_Bool
1769elm_win_autodel_get(const Evas_Object *obj) 1632elm_win_autodel_get(const Evas_Object *obj)
1770{ 1633{
@@ -1775,13 +1638,6 @@ elm_win_autodel_get(const Evas_Object *obj)
1775 return win->autodel; 1638 return win->autodel;
1776} 1639}
1777 1640
1778/**
1779 * Activate a window object.
1780 *
1781 * @param obj The window object
1782 *
1783 * @ingroup Win
1784 */
1785EAPI void 1641EAPI void
1786elm_win_activate(Evas_Object *obj) 1642elm_win_activate(Evas_Object *obj)
1787{ 1643{
@@ -1792,13 +1648,6 @@ elm_win_activate(Evas_Object *obj)
1792 ecore_evas_activate(win->ee); 1648 ecore_evas_activate(win->ee);
1793} 1649}
1794 1650
1795/**
1796 * Lower a window object.
1797 *
1798 * @param obj The window object
1799 *
1800 * @ingroup Win
1801 */
1802EAPI void 1651EAPI void
1803elm_win_lower(Evas_Object *obj) 1652elm_win_lower(Evas_Object *obj)
1804{ 1653{
@@ -1809,13 +1658,6 @@ elm_win_lower(Evas_Object *obj)
1809 ecore_evas_lower(win->ee); 1658 ecore_evas_lower(win->ee);
1810} 1659}
1811 1660
1812/**
1813 * Raise a window object.
1814 *
1815 * @param obj The window object
1816 *
1817 * @ingroup Win
1818 */
1819EAPI void 1661EAPI void
1820elm_win_raise(Evas_Object *obj) 1662elm_win_raise(Evas_Object *obj)
1821{ 1663{
@@ -1826,14 +1668,6 @@ elm_win_raise(Evas_Object *obj)
1826 ecore_evas_raise(win->ee); 1668 ecore_evas_raise(win->ee);
1827} 1669}
1828 1670
1829/**
1830 * Set the borderless state of a window.
1831 *
1832 * @param obj The window object
1833 * @param borderless If true, the window is borderless
1834 *
1835 * @ingroup Win
1836 */
1837EAPI void 1671EAPI void
1838elm_win_borderless_set(Evas_Object *obj, Eina_Bool borderless) 1672elm_win_borderless_set(Evas_Object *obj, Eina_Bool borderless)
1839{ 1673{
@@ -1847,14 +1681,6 @@ elm_win_borderless_set(Evas_Object *obj, Eina_Bool borderless)
1847#endif 1681#endif
1848} 1682}
1849 1683
1850/**
1851 * Get the borderless state of a window.
1852 *
1853 * @param obj The window object
1854 * @return If true, the window is borderless
1855 *
1856 * @ingroup Win
1857 */
1858EAPI Eina_Bool 1684EAPI Eina_Bool
1859elm_win_borderless_get(const Evas_Object *obj) 1685elm_win_borderless_get(const Evas_Object *obj)
1860{ 1686{
@@ -1865,14 +1691,6 @@ elm_win_borderless_get(const Evas_Object *obj)
1865 return ecore_evas_borderless_get(win->ee); 1691 return ecore_evas_borderless_get(win->ee);
1866} 1692}
1867 1693
1868/**
1869 * Set the shaped state of a window.
1870 *
1871 * @param obj The window object
1872 * @param shaped If true, the window is shaped
1873 *
1874 * @ingroup Win
1875 */
1876EAPI void 1694EAPI void
1877elm_win_shaped_set(Evas_Object *obj, Eina_Bool shaped) 1695elm_win_shaped_set(Evas_Object *obj, Eina_Bool shaped)
1878{ 1696{
@@ -1886,14 +1704,6 @@ elm_win_shaped_set(Evas_Object *obj, Eina_Bool shaped)
1886#endif 1704#endif
1887} 1705}
1888 1706
1889/**
1890 * Get the shaped state of a window.
1891 *
1892 * @param obj The window object
1893 * @return If true, the window is shaped
1894 *
1895 * @ingroup Win
1896 */
1897EAPI Eina_Bool 1707EAPI Eina_Bool
1898elm_win_shaped_get(const Evas_Object *obj) 1708elm_win_shaped_get(const Evas_Object *obj)
1899{ 1709{
@@ -1904,14 +1714,6 @@ elm_win_shaped_get(const Evas_Object *obj)
1904 return ecore_evas_shaped_get(win->ee); 1714 return ecore_evas_shaped_get(win->ee);
1905} 1715}
1906 1716
1907/**
1908 * Set the alpha channel state of a window.
1909 *
1910 * @param obj The window object
1911 * @param alpha If true, the window has an alpha channel
1912 *
1913 * @ingroup Win
1914 */
1915EAPI void 1717EAPI void
1916elm_win_alpha_set(Evas_Object *obj, Eina_Bool alpha) 1718elm_win_alpha_set(Evas_Object *obj, Eina_Bool alpha)
1917{ 1719{
@@ -1948,14 +1750,6 @@ elm_win_alpha_set(Evas_Object *obj, Eina_Bool alpha)
1948 } 1750 }
1949} 1751}
1950 1752
1951/**
1952 * Get the alpha channel state of a window.
1953 *
1954 * @param obj The window object
1955 * @return If true, the window has an alpha channel
1956 *
1957 * @ingroup Win
1958 */
1959EAPI Eina_Bool 1753EAPI Eina_Bool
1960elm_win_alpha_get(const Evas_Object *obj) 1754elm_win_alpha_get(const Evas_Object *obj)
1961{ 1755{
@@ -1966,14 +1760,6 @@ elm_win_alpha_get(const Evas_Object *obj)
1966 return ecore_evas_alpha_get(win->ee); 1760 return ecore_evas_alpha_get(win->ee);
1967} 1761}
1968 1762
1969/**
1970 * Set the transparency state of a window.
1971 *
1972 * @param obj The window object
1973 * @param transparent If true, the window is transparent
1974 *
1975 * @ingroup Win
1976 */
1977EAPI void 1763EAPI void
1978elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent) 1764elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent)
1979{ 1765{
@@ -2003,14 +1789,6 @@ elm_win_transparent_set(Evas_Object *obj, Eina_Bool transparent)
2003 } 1789 }
2004} 1790}
2005 1791
2006/**
2007 * Get the transparency state of a window.
2008 *
2009 * @param obj The window object
2010 * @return If true, the window is transparent
2011 *
2012 * @ingroup Win
2013 */
2014EAPI Eina_Bool 1792EAPI Eina_Bool
2015elm_win_transparent_get(const Evas_Object *obj) 1793elm_win_transparent_get(const Evas_Object *obj)
2016{ 1794{
@@ -2022,14 +1800,6 @@ elm_win_transparent_get(const Evas_Object *obj)
2022 return ecore_evas_transparent_get(win->ee); 1800 return ecore_evas_transparent_get(win->ee);
2023} 1801}
2024 1802
2025/**
2026 * Set the override state of a window.
2027 *
2028 * @param obj The window object
2029 * @param override If true, the window is overridden
2030 *
2031 * @ingroup Win
2032 */
2033EAPI void 1803EAPI void
2034elm_win_override_set(Evas_Object *obj, Eina_Bool override) 1804elm_win_override_set(Evas_Object *obj, Eina_Bool override)
2035{ 1805{
@@ -2043,14 +1813,6 @@ elm_win_override_set(Evas_Object *obj, Eina_Bool override)
2043#endif 1813#endif
2044} 1814}
2045 1815
2046/**
2047 * Get the override state of a window.
2048 *
2049 * @param obj The window object
2050 * @return If true, the window is overridden
2051 *
2052 * @ingroup Win
2053 */
2054EAPI Eina_Bool 1816EAPI Eina_Bool
2055elm_win_override_get(const Evas_Object *obj) 1817elm_win_override_get(const Evas_Object *obj)
2056{ 1818{
@@ -2061,14 +1823,6 @@ elm_win_override_get(const Evas_Object *obj)
2061 return ecore_evas_override_get(win->ee); 1823 return ecore_evas_override_get(win->ee);
2062} 1824}
2063 1825
2064/**
2065 * Set the fullscreen state of a window.
2066 *
2067 * @param obj The window object
2068 * @param fullscreen If true, the window is fullscreen
2069 *
2070 * @ingroup Win
2071 */
2072EAPI void 1826EAPI void
2073elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen) 1827elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen)
2074{ 1828{
@@ -2095,14 +1849,6 @@ elm_win_fullscreen_set(Evas_Object *obj, Eina_Bool fullscreen)
2095#undef ENGINE_COMPARE 1849#undef ENGINE_COMPARE
2096} 1850}
2097 1851
2098/**
2099 * Get the fullscreen state of a window.
2100 *
2101 * @param obj The window object
2102 * @return If true, the window is fullscreen
2103 *
2104 * @ingroup Win
2105 */
2106EAPI Eina_Bool 1852EAPI Eina_Bool
2107elm_win_fullscreen_get(const Evas_Object *obj) 1853elm_win_fullscreen_get(const Evas_Object *obj)
2108{ 1854{
@@ -2125,14 +1871,6 @@ elm_win_fullscreen_get(const Evas_Object *obj)
2125#undef ENGINE_COMPARE 1871#undef ENGINE_COMPARE
2126} 1872}
2127 1873
2128/**
2129 * Set the maximized state of a window.
2130 *
2131 * @param obj The window object
2132 * @param maximized If true, the window is maximized
2133 *
2134 * @ingroup Win
2135 */
2136EAPI void 1874EAPI void
2137elm_win_maximized_set(Evas_Object *obj, Eina_Bool maximized) 1875elm_win_maximized_set(Evas_Object *obj, Eina_Bool maximized)
2138{ 1876{
@@ -2147,14 +1885,6 @@ elm_win_maximized_set(Evas_Object *obj, Eina_Bool maximized)
2147#endif 1885#endif
2148} 1886}
2149 1887
2150/**
2151 * Get the maximized state of a window.
2152 *
2153 * @param obj The window object
2154 * @return If true, the window is maximized
2155 *
2156 * @ingroup Win
2157 */
2158EAPI Eina_Bool 1888EAPI Eina_Bool
2159elm_win_maximized_get(const Evas_Object *obj) 1889elm_win_maximized_get(const Evas_Object *obj)
2160{ 1890{
@@ -2165,14 +1895,6 @@ elm_win_maximized_get(const Evas_Object *obj)
2165 return ecore_evas_maximized_get(win->ee); 1895 return ecore_evas_maximized_get(win->ee);
2166} 1896}
2167 1897
2168/**
2169 * Set the iconified state of a window.
2170 *
2171 * @param obj The window object
2172 * @param iconified If true, the window is iconified
2173 *
2174 * @ingroup Win
2175 */
2176EAPI void 1898EAPI void
2177elm_win_iconified_set(Evas_Object *obj, Eina_Bool iconified) 1899elm_win_iconified_set(Evas_Object *obj, Eina_Bool iconified)
2178{ 1900{
@@ -2186,14 +1908,6 @@ elm_win_iconified_set(Evas_Object *obj, Eina_Bool iconified)
2186#endif 1908#endif
2187} 1909}
2188 1910
2189/**
2190 * Get the iconified state of a window.
2191 *
2192 * @param obj The window object
2193 * @return If true, the window is iconified
2194 *
2195 * @ingroup Win
2196 */
2197EAPI Eina_Bool 1911EAPI Eina_Bool
2198elm_win_iconified_get(const Evas_Object *obj) 1912elm_win_iconified_get(const Evas_Object *obj)
2199{ 1913{
@@ -2204,14 +1918,6 @@ elm_win_iconified_get(const Evas_Object *obj)
2204 return ecore_evas_iconified_get(win->ee); 1918 return ecore_evas_iconified_get(win->ee);
2205} 1919}
2206 1920
2207/**
2208 * Set the layer of the window.
2209 *
2210 * @param obj The window object
2211 * @param layer The layer of the window
2212 *
2213 * @ingroup Win
2214 */
2215EAPI void 1921EAPI void
2216elm_win_layer_set(Evas_Object *obj, int layer) 1922elm_win_layer_set(Evas_Object *obj, int layer)
2217{ 1923{
@@ -2225,14 +1931,6 @@ elm_win_layer_set(Evas_Object *obj, int layer)
2225#endif 1931#endif
2226} 1932}
2227 1933
2228/**
2229 * Get the layer of the window.
2230 *
2231 * @param obj The window object
2232 * @return The layer of the window
2233 *
2234 * @ingroup Win
2235 */
2236EAPI int 1934EAPI int
2237elm_win_layer_get(const Evas_Object *obj) 1935elm_win_layer_get(const Evas_Object *obj)
2238{ 1936{
@@ -2243,14 +1941,6 @@ elm_win_layer_get(const Evas_Object *obj)
2243 return ecore_evas_layer_get(win->ee); 1941 return ecore_evas_layer_get(win->ee);
2244} 1942}
2245 1943
2246/**
2247 * Set the rotation of the window.
2248 *
2249 * @param obj The window object
2250 * @param rotation The rotation of the window, in degrees (0-360)
2251 *
2252 * @ingroup Win
2253 */
2254EAPI void 1944EAPI void
2255elm_win_rotation_set(Evas_Object *obj, int rotation) 1945elm_win_rotation_set(Evas_Object *obj, int rotation)
2256{ 1946{
@@ -2269,14 +1959,6 @@ elm_win_rotation_set(Evas_Object *obj, int rotation)
2269#endif 1959#endif
2270} 1960}
2271 1961
2272/**
2273 * Rotates the window and resizes it
2274 *
2275 * @param obj The window object
2276 * @param layer The rotation of the window in degrees (0-360)
2277 *
2278 * @ingroup Win
2279 */
2280EAPI void 1962EAPI void
2281elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation) 1963elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation)
2282{ 1964{
@@ -2295,14 +1977,6 @@ elm_win_rotation_with_resize_set(Evas_Object *obj, int rotation)
2295#endif 1977#endif
2296} 1978}
2297 1979
2298/**
2299 * Get the rotation of the window.
2300 *
2301 * @param obj The window object
2302 * @return The rotation of the window in degrees (0-360)
2303 *
2304 * @ingroup Win
2305 */
2306EAPI int 1980EAPI int
2307elm_win_rotation_get(const Evas_Object *obj) 1981elm_win_rotation_get(const Evas_Object *obj)
2308{ 1982{
@@ -2313,14 +1987,6 @@ elm_win_rotation_get(const Evas_Object *obj)
2313 return win->rot; 1987 return win->rot;
2314} 1988}
2315 1989
2316/**
2317 * Set the sticky state of the window.
2318 *
2319 * @param obj The window object
2320 * @param sticky If true, the window's sticky state is enabled
2321 *
2322 * @ingroup Win
2323 */
2324EAPI void 1990EAPI void
2325elm_win_sticky_set(Evas_Object *obj, Eina_Bool sticky) 1991elm_win_sticky_set(Evas_Object *obj, Eina_Bool sticky)
2326{ 1992{
@@ -2334,14 +2000,6 @@ elm_win_sticky_set(Evas_Object *obj, Eina_Bool sticky)
2334#endif 2000#endif
2335} 2001}
2336 2002
2337/**
2338 * Get the sticky state of the window.
2339 *
2340 * @param obj The window object
2341 * @return If true, the window's sticky state is enabled
2342 *
2343 * @ingroup Win
2344 */
2345EAPI Eina_Bool 2003EAPI Eina_Bool
2346elm_win_sticky_get(const Evas_Object *obj) 2004elm_win_sticky_get(const Evas_Object *obj)
2347{ 2005{
@@ -2352,30 +2010,6 @@ elm_win_sticky_get(const Evas_Object *obj)
2352 return ecore_evas_sticky_get(win->ee); 2010 return ecore_evas_sticky_get(win->ee);
2353} 2011}
2354 2012
2355/**
2356 * Sets the keyboard mode of the window.
2357 *
2358 * @param obj The window object
2359 * @param mode The mode to set; one of:
2360 * ELM_WIN_KEYBOARD_UNKNOWN
2361 * ELM_WIN_KEYBOARD_OFF
2362 * ELM_WIN_KEYBOARD_ON
2363 * ELM_WIN_KEYBOARD_ALPHA
2364 * ELM_WIN_KEYBOARD_NUMERIC
2365 * ELM_WIN_KEYBOARD_PIN
2366 * ELM_WIN_KEYBOARD_PHONE_NUMBER
2367 * ELM_WIN_KEYBOARD_HEX
2368 * ELM_WIN_KEYBOARD_TERMINAL
2369 * ELM_WIN_KEYBOARD_PASSWORD
2370 * ELM_WIN_KEYBOARD_IP
2371 * ELM_WIN_KEYBOARD_HOST
2372 * ELM_WIN_KEYBOARD_FILE
2373 * ELM_WIN_KEYBOARD_URL
2374 * ELM_WIN_KEYBOARD_KEYPAD
2375 * ELM_WIN_KEYBOARD_J2ME
2376 *
2377 * @ingroup Win
2378 */
2379EAPI void 2013EAPI void
2380elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode) 2014elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode)
2381{ 2015{
@@ -2395,30 +2029,6 @@ elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode)
2395#endif 2029#endif
2396} 2030}
2397 2031
2398/**
2399 * Gets the keyboard mode of the window.
2400 *
2401 * @param obj The window object
2402 * @return The mode; one of:
2403 * ELM_WIN_KEYBOARD_UNKNOWN
2404 * ELM_WIN_KEYBOARD_OFF
2405 * ELM_WIN_KEYBOARD_ON
2406 * ELM_WIN_KEYBOARD_ALPHA
2407 * ELM_WIN_KEYBOARD_NUMERIC
2408 * ELM_WIN_KEYBOARD_PIN
2409 * ELM_WIN_KEYBOARD_PHONE_NUMBER
2410 * ELM_WIN_KEYBOARD_HEX
2411 * ELM_WIN_KEYBOARD_TERMINAL
2412 * ELM_WIN_KEYBOARD_PASSWORD
2413 * ELM_WIN_KEYBOARD_IP
2414 * ELM_WIN_KEYBOARD_HOST
2415 * ELM_WIN_KEYBOARD_FILE
2416 * ELM_WIN_KEYBOARD_URL
2417 * ELM_WIN_KEYBOARD_KEYPAD
2418 * ELM_WIN_KEYBOARD_J2ME
2419 *
2420 * @ingroup Win
2421 */
2422EAPI Elm_Win_Keyboard_Mode 2032EAPI Elm_Win_Keyboard_Mode
2423elm_win_keyboard_mode_get(const Evas_Object *obj) 2033elm_win_keyboard_mode_get(const Evas_Object *obj)
2424{ 2034{
@@ -2429,14 +2039,6 @@ elm_win_keyboard_mode_get(const Evas_Object *obj)
2429 return win->kbdmode; 2039 return win->kbdmode;
2430} 2040}
2431 2041
2432/**
2433 * Sets whether the window is a keyboard.
2434 *
2435 * @param obj The window object
2436 * @param is_keyboard If true, the window is a virtual keyboard
2437 *
2438 * @ingroup Win
2439 */
2440EAPI void 2042EAPI void
2441elm_win_keyboard_win_set(Evas_Object *obj, Eina_Bool is_keyboard) 2043elm_win_keyboard_win_set(Evas_Object *obj, Eina_Bool is_keyboard)
2442{ 2044{
@@ -2451,14 +2053,6 @@ elm_win_keyboard_win_set(Evas_Object *obj, Eina_Bool is_keyboard)
2451#endif 2053#endif
2452} 2054}
2453 2055
2454/**
2455 * Gets whether the window is a keyboard.
2456 *
2457 * @param obj The window object
2458 * @return If the window is a virtual keyboard
2459 *
2460 * @ingroup Win
2461 */
2462EAPI Eina_Bool 2056EAPI Eina_Bool
2463elm_win_keyboard_win_get(const Evas_Object *obj) 2057elm_win_keyboard_win_get(const Evas_Object *obj)
2464{ 2058{
@@ -2474,15 +2068,6 @@ elm_win_keyboard_win_get(const Evas_Object *obj)
2474 return EINA_FALSE; 2068 return EINA_FALSE;
2475} 2069}
2476 2070
2477/**
2478 * Get the screen position of a window.
2479 *
2480 * @param obj The window object
2481 * @param x The int to store the x coordinate to
2482 * @param y The int to store the y coordinate to
2483 *
2484 * @ingroup Win
2485 */
2486EAPI void 2071EAPI void
2487elm_win_screen_position_get(const Evas_Object *obj, int *x, int *y) 2072elm_win_screen_position_get(const Evas_Object *obj, int *x, int *y)
2488{ 2073{
@@ -2494,14 +2079,6 @@ elm_win_screen_position_get(const Evas_Object *obj, int *x, int *y)
2494 if (y) *y = win->screen.y; 2079 if (y) *y = win->screen.y;
2495} 2080}
2496 2081
2497/**
2498 * Set if this window is an illume conformant window
2499 *
2500 * @param obj The window object
2501 * @param conformant The conformant flag (1 = conformant, 0 = non-conformant)
2502 *
2503 * @ingroup Win
2504 */
2505EAPI void 2082EAPI void
2506elm_win_conformant_set(Evas_Object *obj, Eina_Bool conformant) 2083elm_win_conformant_set(Evas_Object *obj, Eina_Bool conformant)
2507{ 2084{
@@ -2516,14 +2093,6 @@ elm_win_conformant_set(Evas_Object *obj, Eina_Bool conformant)
2516#endif 2093#endif
2517} 2094}
2518 2095
2519/**
2520 * Get if this window is an illume conformant window
2521 *
2522 * @param obj The window object
2523 * @return A boolean if this window is illume conformant or not
2524 *
2525 * @ingroup Win
2526 */
2527EAPI Eina_Bool 2096EAPI Eina_Bool
2528elm_win_conformant_get(const Evas_Object *obj) 2097elm_win_conformant_get(const Evas_Object *obj)
2529{ 2098{
@@ -2539,16 +2108,6 @@ elm_win_conformant_get(const Evas_Object *obj)
2539 return EINA_FALSE; 2108 return EINA_FALSE;
2540} 2109}
2541 2110
2542/**
2543 * Set a window to be an illume quickpanel window
2544 *
2545 * By default window objects are not quickpanel windows.
2546 *
2547 * @param obj The window object
2548 * @param quickpanel The quickpanel flag (1 = quickpanel, 0 = normal window)
2549 *
2550 * @ingroup Win
2551 */
2552EAPI void 2111EAPI void
2553elm_win_quickpanel_set(Evas_Object *obj, Eina_Bool quickpanel) 2112elm_win_quickpanel_set(Evas_Object *obj, Eina_Bool quickpanel)
2554{ 2113{
@@ -2574,14 +2133,6 @@ elm_win_quickpanel_set(Evas_Object *obj, Eina_Bool quickpanel)
2574#endif 2133#endif
2575} 2134}
2576 2135
2577/**
2578 * Get if this window is a quickpanel or not
2579 *
2580 * @param obj The window object
2581 * @return A boolean if this window is a quickpanel or not
2582 *
2583 * @ingroup Win
2584 */
2585EAPI Eina_Bool 2136EAPI Eina_Bool
2586elm_win_quickpanel_get(const Evas_Object *obj) 2137elm_win_quickpanel_get(const Evas_Object *obj)
2587{ 2138{
@@ -2597,14 +2148,6 @@ elm_win_quickpanel_get(const Evas_Object *obj)
2597 return EINA_FALSE; 2148 return EINA_FALSE;
2598} 2149}
2599 2150
2600/**
2601 * Set the major priority of a quickpanel window
2602 *
2603 * @param obj The window object
2604 * @param priority The major priority for this quickpanel
2605 *
2606 * @ingroup Win
2607 */
2608EAPI void 2151EAPI void
2609elm_win_quickpanel_priority_major_set(Evas_Object *obj, int priority) 2152elm_win_quickpanel_priority_major_set(Evas_Object *obj, int priority)
2610{ 2153{
@@ -2619,14 +2162,6 @@ elm_win_quickpanel_priority_major_set(Evas_Object *obj, int priority)
2619#endif 2162#endif
2620} 2163}
2621 2164
2622/**
2623 * Get the major priority of a quickpanel window
2624 *
2625 * @param obj The window object
2626 * @return The major priority of this quickpanel
2627 *
2628 * @ingroup Win
2629 */
2630EAPI int 2165EAPI int
2631elm_win_quickpanel_priority_major_get(const Evas_Object *obj) 2166elm_win_quickpanel_priority_major_get(const Evas_Object *obj)
2632{ 2167{
@@ -2642,14 +2177,6 @@ elm_win_quickpanel_priority_major_get(const Evas_Object *obj)
2642 return -1; 2177 return -1;
2643} 2178}
2644 2179
2645/**
2646 * Set the minor priority of a quickpanel window
2647 *
2648 * @param obj The window object
2649 * @param priority The minor priority for this quickpanel
2650 *
2651 * @ingroup Win
2652 */
2653EAPI void 2180EAPI void
2654elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority) 2181elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority)
2655{ 2182{
@@ -2664,14 +2191,6 @@ elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority)
2664#endif 2191#endif
2665} 2192}
2666 2193
2667/**
2668 * Get the minor priority of a quickpanel window
2669 *
2670 * @param obj The window object
2671 * @return The minor priority of this quickpanel
2672 *
2673 * @ingroup Win
2674 */
2675EAPI int 2194EAPI int
2676elm_win_quickpanel_priority_minor_get(const Evas_Object *obj) 2195elm_win_quickpanel_priority_minor_get(const Evas_Object *obj)
2677{ 2196{
@@ -2687,14 +2206,6 @@ elm_win_quickpanel_priority_minor_get(const Evas_Object *obj)
2687 return -1; 2206 return -1;
2688} 2207}
2689 2208
2690/**
2691 * Set which zone this quickpanel should appear in
2692 *
2693 * @param obj The window object
2694 * @param zone The requested zone for this quickpanel
2695 *
2696 * @ingroup Win
2697 */
2698EAPI void 2209EAPI void
2699elm_win_quickpanel_zone_set(Evas_Object *obj, int zone) 2210elm_win_quickpanel_zone_set(Evas_Object *obj, int zone)
2700{ 2211{
@@ -2709,14 +2220,6 @@ elm_win_quickpanel_zone_set(Evas_Object *obj, int zone)
2709#endif 2220#endif
2710} 2221}
2711 2222
2712/**
2713 * Get which zone this quickpanel should appear in
2714 *
2715 * @param obj The window object
2716 * @return The requested zone for this quickpanel
2717 *
2718 * @ingroup Win
2719 */
2720EAPI int 2223EAPI int
2721elm_win_quickpanel_zone_get(const Evas_Object *obj) 2224elm_win_quickpanel_zone_get(const Evas_Object *obj)
2722{ 2225{
@@ -2732,27 +2235,6 @@ elm_win_quickpanel_zone_get(const Evas_Object *obj)
2732 return 0; 2235 return 0;
2733} 2236}
2734 2237
2735/**
2736 * Set the window to be skipped by keyboard focus
2737 *
2738 * This sets the window to be skipped by normal keyboard input. This means
2739 * a window manager will be asked to not focus this window as well as omit
2740 * it from things like the taskbar, pager, "alt-tab" list etc. etc.
2741 *
2742 * Call this and enable it on a window BEFORE you show it for the first time,
2743 * otherwise it may have no effect.
2744 *
2745 * Use this for windows that have only output information or might only be
2746 * interacted with by the mouse or fingers, and never for typing input.
2747 * Be careful that this may have side-effects like making the window
2748 * non-accessible in some cases unless the window is specially handled. Use
2749 * this with care.
2750 *
2751 * @param obj The window object
2752 * @param skip The skip flag state (EINA_TRUE if it is to be skipped)
2753 *
2754 * @ingroup Win
2755 */
2756EAPI void 2238EAPI void
2757elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip) 2239elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip)
2758{ 2240{
@@ -2777,21 +2259,6 @@ elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip)
2777#endif 2259#endif
2778} 2260}
2779 2261
2780/**
2781 * Send a command to the windowing environment
2782 *
2783 * This is intended to work in touchscreen or small screen device environments
2784 * where there is a more simplistic window management policy in place. This
2785 * uses the window object indicated to select which part of the environment
2786 * to control (the part that this window lives in), and provides a command
2787 * and an optional parameter structure (use NULL for this if not needed).
2788 *
2789 * @param obj The window object that lives in the environment to control
2790 * @param command The command to send
2791 * @param params Optional parameters for the command
2792 *
2793 * @ingroup Win
2794 */
2795EAPI void 2262EAPI void
2796elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params __UNUSED__) 2263elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params __UNUSED__)
2797{ 2264{
@@ -2824,20 +2291,6 @@ elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *
2824#endif 2291#endif
2825} 2292}
2826 2293
2827/**
2828 * Get the inlined image object handle
2829 *
2830 * When you create a window with elm_win_add() of type ELM_WIN_INLINED_IMAGE,
2831 * then the window is in fact an evas image object inlined in the parent
2832 * canvas. You can get this object (be careful to not manipulate it as it
2833 * is under control of elementary), and use it to do things like get pixel
2834 * data, save the image to a file, etc.
2835 *
2836 * @param obj The window object to get the inlined image from
2837 * @return The inlined image object, or NULL if none exists
2838 *
2839 * @ingroup Win
2840 */
2841EAPI Evas_Object * 2294EAPI Evas_Object *
2842elm_win_inlined_image_object_get(Evas_Object *obj) 2295elm_win_inlined_image_object_get(Evas_Object *obj)
2843{ 2296{
@@ -2848,17 +2301,6 @@ elm_win_inlined_image_object_get(Evas_Object *obj)
2848 return win->img_obj; 2301 return win->img_obj;
2849} 2302}
2850 2303
2851/**
2852 * Set the enabled status for the focus highlight in a window
2853 *
2854 * This function will enable or disable the focus highlight only for the
2855 * given window, regardless of the global setting for it
2856 *
2857 * @param obj The window where to enable the highlight
2858 * @param enabled The enabled value for the highlight
2859 *
2860 * @ingroup Win
2861 */
2862EAPI void 2304EAPI void
2863elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled) 2305elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled)
2864{ 2306{
@@ -2879,15 +2321,6 @@ elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled)
2879 _elm_win_focus_highlight_shutdown(win); 2321 _elm_win_focus_highlight_shutdown(win);
2880} 2322}
2881 2323
2882/**
2883 * Get the enabled value of the focus highlight for this window
2884 *
2885 * @param obj The window in which to check if the focus highlight is enabled
2886 *
2887 * @return EINA_TRUE if enabled, EINA_FALSE otherwise
2888 *
2889 * @ingroup Win
2890 */
2891EAPI Eina_Bool 2324EAPI Eina_Bool
2892elm_win_focus_highlight_enabled_get(const Evas_Object *obj) 2325elm_win_focus_highlight_enabled_get(const Evas_Object *obj)
2893{ 2326{
@@ -2899,17 +2332,6 @@ elm_win_focus_highlight_enabled_get(const Evas_Object *obj)
2899 return win->focus_highlight.enabled; 2332 return win->focus_highlight.enabled;
2900} 2333}
2901 2334
2902/**
2903 * Set the style for the focus highlight on this window
2904 *
2905 * Sets the style to use for theming the highlight of focused objects on
2906 * the given window. If @p style is NULL, the default will be used.
2907 *
2908 * @param obj The window where to set the style
2909 * @param style The style to set
2910 *
2911 * @ingroup Win
2912 */
2913EAPI void 2335EAPI void
2914elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style) 2336elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style)
2915{ 2337{
@@ -2923,18 +2345,6 @@ elm_win_focus_highlight_style_set(Evas_Object *obj, const char *style)
2923 _elm_win_focus_highlight_reconfigure_job_start(win); 2345 _elm_win_focus_highlight_reconfigure_job_start(win);
2924} 2346}
2925 2347
2926/**
2927 * Get the style set for the focus highlight object
2928 *
2929 * Gets the style set for this windows highilght object, or NULL if none
2930 * is set.
2931 *
2932 * @param obj The window to retrieve the highlights style from
2933 *
2934 * @return The style set or NULL if none was. Default is used in that case.
2935 *
2936 * @ingroup Win
2937 */
2938EAPI const char * 2348EAPI const char *
2939elm_win_focus_highlight_style_get(const Evas_Object *obj) 2349elm_win_focus_highlight_style_get(const Evas_Object *obj)
2940{ 2350{