X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktoolshell.c;h=7ebf18c6484cebef68f5d735b691d7f39d867d76;hb=79695ee64d41c9aadfe2c6f18dc7dd1e3fd44852;hp=92560e57a66f34f15d20414461fed2a643a9decf;hpb=37255486d4c4ef49d784e5383b3181e70b048474;p=~andy%2Fgtk diff --git a/gtk/gtktoolshell.c b/gtk/gtktoolshell.c index 92560e57a..7ebf18c64 100644 --- a/gtk/gtktoolshell.c +++ b/gtk/gtktoolshell.c @@ -12,9 +12,7 @@ * 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 @@ -24,17 +22,16 @@ #include "gtktoolshell.h" #include "gtkwidget.h" #include "gtkintl.h" -#include "gtkalias.h" + /** * SECTION:gtktoolshell * @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 */ /** @@ -43,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 @@ -66,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 **/ @@ -99,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 @@ -128,10 +152,7 @@ gtk_tool_shell_get_relief_style (GtkToolShell *shell) { GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); - if (iface->get_relief_style) - return iface->get_relief_style (shell); - - return GTK_RELIEF_NONE; + return iface->get_relief_style (shell); } /** @@ -166,17 +187,14 @@ gtk_tool_shell_rebuild_menu (GtkToolShell *shell) * * Return value: the current text orientation of @shell * - * Since: 2.14 + * Since: 2.20 **/ GtkOrientation gtk_tool_shell_get_text_orientation (GtkToolShell *shell) { GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); - if (iface->get_text_orientation) - return GTK_TOOL_SHELL_GET_IFACE (shell)->get_text_orientation (shell); - - return GTK_ORIENTATION_HORIZONTAL; + return iface->get_text_orientation (shell); } /** @@ -189,21 +207,18 @@ gtk_tool_shell_get_text_orientation (GtkToolShell *shell) * * Return value: the current text alignment of @shell * - * Since: 2.14 + * Since: 2.20 **/ gfloat gtk_tool_shell_get_text_alignment (GtkToolShell *shell) { GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); - if (iface->get_text_alignment) - return GTK_TOOL_SHELL_GET_IFACE (shell)->get_text_alignment (shell); - - return 0.5f; + return iface->get_text_alignment (shell); } /** - * gtk_tool_shell_get_ellipsize_mode + * gtk_tool_shell_get_ellipsize_mode: * @shell: a #GtkToolShell * * Retrieves the current ellipsize mode for the tool shell. Tool items must not @@ -212,17 +227,14 @@ gtk_tool_shell_get_text_alignment (GtkToolShell *shell) * * Return value: the current ellipsize mode of @shell * - * Since: 2.14 + * Since: 2.20 **/ PangoEllipsizeMode gtk_tool_shell_get_ellipsize_mode (GtkToolShell *shell) { GtkToolShellIface *iface = GTK_TOOL_SHELL_GET_IFACE (shell); - if (iface->get_ellipsize_mode) - return GTK_TOOL_SHELL_GET_IFACE (shell)->get_ellipsize_mode (shell); - - return PANGO_ELLIPSIZE_NONE; + return iface->get_ellipsize_mode (shell); } /** @@ -233,9 +245,9 @@ gtk_tool_shell_get_ellipsize_mode (GtkToolShell *shell) * call this function directly, but rely on gtk_tool_item_get_text_size_group() * instead. * - * Return value: the current text size group of @shell + * Return value: (transfer none): the current text size group of @shell * - * Since: 2.14 + * Since: 2.20 **/ GtkSizeGroup * gtk_tool_shell_get_text_size_group (GtkToolShell *shell) @@ -247,6 +259,3 @@ gtk_tool_shell_get_text_size_group (GtkToolShell *shell) return NULL; } - -#define __GTK_TOOL_SHELL_C__ -#include "gtkaliasdef.c"