* 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 <http://www.gnu.org/licenses/>.
*
* Author:
* Mathias Hasselmann
#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
*/
/**
* 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
* 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
**/
* @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
{
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);
}
/**
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;
+}