X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktoolshell.c;h=7ebf18c6484cebef68f5d735b691d7f39d867d76;hb=dc331ccb171151d737112d8dc55b25709271d2c7;hp=1421820fb5cd3847a6d6ca623ad1327cccbeb515;hpb=45e33fe9c2e10ffd0784e684f7ab73c103dd152e;p=~andy%2Fgtk diff --git a/gtk/gtktoolshell.c b/gtk/gtktoolshell.c index 1421820fb..7ebf18c64 100644 --- a/gtk/gtktoolshell.c +++ b/gtk/gtktoolshell.c @@ -12,28 +12,26 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . * * Author: * Mathias Hasselmann */ -#include +#include "config.h" #include "gtktoolshell.h" #include "gtkwidget.h" #include "gtkintl.h" -#include "gtkalias.h" + /** * SECTION:gtktoolshell - * @short_description: Interface for containers containing #GtkToolItem widgets. + * @Short_description: Interface for containers containing GtkToolItem widgets + * @Title: GtkToolShell + * @see_also: #GtkToolbar, #GtkToolItem * * The #GtkToolShell interface allows container widgets to provide additional * information when embedding #GtkToolItem widgets. - * - * @see_also: #GtkToolbar, #GtkToolItem */ /** @@ -42,22 +40,49 @@ * Dummy structure for accessing instances of #GtkToolShellIface. */ -GType -gtk_tool_shell_get_type (void) + +typedef GtkToolShellIface GtkToolShellInterface; +G_DEFINE_INTERFACE (GtkToolShell, gtk_tool_shell, GTK_TYPE_WIDGET); + +static GtkReliefStyle gtk_tool_shell_real_get_relief_style (GtkToolShell *shell); +static GtkOrientation gtk_tool_shell_real_get_text_orientation (GtkToolShell *shell); +static gfloat gtk_tool_shell_real_get_text_alignment (GtkToolShell *shell); +static PangoEllipsizeMode gtk_tool_shell_real_get_ellipsize_mode (GtkToolShell *shell); + +static void +gtk_tool_shell_default_init (GtkToolShellInterface *iface) +{ + iface->get_relief_style = gtk_tool_shell_real_get_relief_style; + iface->get_text_orientation = gtk_tool_shell_real_get_text_orientation; + iface->get_text_alignment = gtk_tool_shell_real_get_text_alignment; + iface->get_ellipsize_mode = gtk_tool_shell_real_get_ellipsize_mode; +} + +static GtkReliefStyle +gtk_tool_shell_real_get_relief_style (GtkToolShell *shell) { - static GType type = 0; + return GTK_RELIEF_NONE; +} - if (!type) - { - type = g_type_register_static_simple (G_TYPE_INTERFACE, I_("GtkToolShell"), - sizeof (GtkToolShellIface), - NULL, 0, NULL, 0); - g_type_interface_add_prerequisite (type, GTK_TYPE_WIDGET); - } +static GtkOrientation +gtk_tool_shell_real_get_text_orientation (GtkToolShell *shell) +{ + return GTK_ORIENTATION_HORIZONTAL; +} - return type; +static gfloat +gtk_tool_shell_real_get_text_alignment (GtkToolShell *shell) +{ + return 0.5f; +} + +static PangoEllipsizeMode +gtk_tool_shell_real_get_ellipsize_mode (GtkToolShell *shell) +{ + return PANGO_ELLIPSIZE_NONE; } + /** * gtk_tool_shell_get_icon_size: * @shell: a #GtkToolShell @@ -65,7 +90,7 @@ gtk_tool_shell_get_type (void) * Retrieves the icon size for the tool shell. Tool items must not call this * function directly, but rely on gtk_tool_item_get_icon_size() instead. * - * Return value: the current size for icons of @shell + * Return value: (type int): the current size for icons of @shell * * Since: 2.14 **/ @@ -98,7 +123,7 @@ gtk_tool_shell_get_orientation (GtkToolShell *shell) * @shell: a #GtkToolShell * * Retrieves whether the tool shell has text, icons, or both. Tool items must - * not call this function directly, but rely on gtk_tool_item_get_style() + * not call this function directly, but rely on gtk_tool_item_get_toolbar_style() * instead. * * Return value: the current style of @shell @@ -127,10 +152,7 @@ gtk_tool_shell_get_relief_style (GtkToolShell *shell) { GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); - if (iface->get_relief_style) - iface->get_relief_style (shell); - - return GTK_RELIEF_NONE; + return iface->get_relief_style (shell); } /** @@ -155,5 +177,85 @@ gtk_tool_shell_rebuild_menu (GtkToolShell *shell) iface->rebuild_menu (shell); } -#define __GTK_TOOL_SHELL_C__ -#include "gtkaliasdef.c" +/** + * gtk_tool_shell_get_text_orientation: + * @shell: a #GtkToolShell + * + * Retrieves the current text orientation for the tool shell. Tool items must not + * call this function directly, but rely on gtk_tool_item_get_text_orientation() + * instead. + * + * Return value: the current text orientation of @shell + * + * Since: 2.20 + **/ +GtkOrientation +gtk_tool_shell_get_text_orientation (GtkToolShell *shell) +{ + GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); + + return iface->get_text_orientation (shell); +} + +/** + * gtk_tool_shell_get_text_alignment: + * @shell: a #GtkToolShell + * + * Retrieves the current text alignment for the tool shell. Tool items must not + * call this function directly, but rely on gtk_tool_item_get_text_alignment() + * instead. + * + * Return value: the current text alignment of @shell + * + * Since: 2.20 + **/ +gfloat +gtk_tool_shell_get_text_alignment (GtkToolShell *shell) +{ + GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); + + return iface->get_text_alignment (shell); +} + +/** + * gtk_tool_shell_get_ellipsize_mode: + * @shell: a #GtkToolShell + * + * Retrieves the current ellipsize mode for the tool shell. Tool items must not + * call this function directly, but rely on gtk_tool_item_get_ellipsize_mode() + * instead. + * + * Return value: the current ellipsize mode of @shell + * + * Since: 2.20 + **/ +PangoEllipsizeMode +gtk_tool_shell_get_ellipsize_mode (GtkToolShell *shell) +{ + GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); + + return iface->get_ellipsize_mode (shell); +} + +/** + * gtk_tool_shell_get_text_size_group: + * @shell: a #GtkToolShell + * + * Retrieves the current text size group for the tool shell. Tool items must not + * call this function directly, but rely on gtk_tool_item_get_text_size_group() + * instead. + * + * Return value: (transfer none): the current text size group of @shell + * + * Since: 2.20 + **/ +GtkSizeGroup * +gtk_tool_shell_get_text_size_group (GtkToolShell *shell) +{ + GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); + + if (iface->get_text_size_group) + return GTK_TOOL_SHELL_GET_IFACE (shell)->get_text_size_group (shell); + + return NULL; +}