|
Packit |
1e8aac |
/*
|
|
Packit |
1e8aac |
* Copyright (C) 2008 Tristan Van Berkom.
|
|
Packit |
1e8aac |
*
|
|
Packit |
1e8aac |
* This library is free software; you can redistribute it and/or modify it
|
|
Packit |
1e8aac |
* under the terms of the GNU Lesser General Public License as
|
|
Packit |
1e8aac |
* published by the Free Software Foundation; either version 2.1 of
|
|
Packit |
1e8aac |
* the License, or (at your option) any later version.
|
|
Packit |
1e8aac |
*
|
|
Packit |
1e8aac |
* This library is distributed in the hope that it will be useful, but
|
|
Packit |
1e8aac |
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
1e8aac |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
1e8aac |
* Lesser General Public License for more details.
|
|
Packit |
1e8aac |
*
|
|
Packit |
1e8aac |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
1e8aac |
* License along with this program; if not, write to the Free Software
|
|
Packit |
1e8aac |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
Packit |
1e8aac |
*
|
|
Packit |
1e8aac |
* Authors:
|
|
Packit |
1e8aac |
* Tristan Van Berkom <tvb@gnome.org>
|
|
Packit |
1e8aac |
*/
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
#include <config.h>
|
|
Packit |
1e8aac |
#include <gladeui/glade.h>
|
|
Packit |
1e8aac |
#include <glib/gi18n-lib.h>
|
|
Packit |
1e8aac |
#include <gdk/gdkkeysyms.h>
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
#include "glade-label-editor.h"
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* GtkWidgetClass */
|
|
Packit |
1e8aac |
static void glade_label_editor_grab_focus (GtkWidget *widget);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* GladeEditableIface */
|
|
Packit |
1e8aac |
static void glade_label_editor_load (GladeEditable *editable,
|
|
Packit |
1e8aac |
GladeWidget *widget);
|
|
Packit |
1e8aac |
static void glade_label_editor_editable_init (GladeEditableIface *iface);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* Callbacks */
|
|
Packit |
1e8aac |
static void attributes_toggled (GtkWidget *widget, GladeLabelEditor *label_editor);
|
|
Packit |
1e8aac |
static void markup_toggled (GtkWidget *widget, GladeLabelEditor *label_editor);
|
|
Packit |
1e8aac |
static void pattern_toggled (GtkWidget *widget, GladeLabelEditor *label_editor);
|
|
Packit |
1e8aac |
static void wrap_free_toggled (GtkWidget *widget, GladeLabelEditor *label_editor);
|
|
Packit |
1e8aac |
static void single_toggled (GtkWidget *widget, GladeLabelEditor *label_editor);
|
|
Packit |
1e8aac |
static void wrap_mode_toggled (GtkWidget *widget, GladeLabelEditor *label_editor);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
struct _GladeLabelEditorPrivate
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GtkWidget *embed;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
GtkWidget *attributes_radio; /* Set pango attributes manually (attributes eprop embedded) */
|
|
Packit |
1e8aac |
GtkWidget *markup_radio; /* Parse the label as a pango markup string (no showing eprop) */
|
|
Packit |
1e8aac |
GtkWidget *pattern_radio; /* Use a pattern string to underline portions of the text
|
|
Packit |
1e8aac |
* (pattern eprop embedded) */
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* These control whether to use single-line-mode, wrap & wrap-mode or niether */
|
|
Packit |
1e8aac |
GtkWidget *wrap_free_label; /* Set boldness on this label for a fake property */
|
|
Packit |
1e8aac |
GtkWidget *wrap_free_radio;
|
|
Packit |
1e8aac |
GtkWidget *single_radio;
|
|
Packit |
1e8aac |
GtkWidget *wrap_mode_radio;
|
|
Packit |
1e8aac |
};
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static GladeEditableIface *parent_editable_iface;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
G_DEFINE_TYPE_WITH_CODE (GladeLabelEditor, glade_label_editor, GLADE_TYPE_EDITOR_SKELETON,
|
|
Packit |
1e8aac |
G_ADD_PRIVATE (GladeLabelEditor)
|
|
Packit |
1e8aac |
G_IMPLEMENT_INTERFACE (GLADE_TYPE_EDITABLE,
|
|
Packit |
1e8aac |
glade_label_editor_editable_init));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
glade_label_editor_class_init (GladeLabelEditorClass * klass)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
widget_class->grab_focus = glade_label_editor_grab_focus;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/gladegtk/glade-label-editor.ui");
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_child_private (widget_class, GladeLabelEditor, embed);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_child_private (widget_class, GladeLabelEditor, attributes_radio);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_child_private (widget_class, GladeLabelEditor, markup_radio);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_child_private (widget_class, GladeLabelEditor, pattern_radio);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_child_private (widget_class, GladeLabelEditor, wrap_free_label);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_child_private (widget_class, GladeLabelEditor, wrap_free_radio);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_child_private (widget_class, GladeLabelEditor, single_radio);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_child_private (widget_class, GladeLabelEditor, wrap_mode_radio);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_callback (widget_class, attributes_toggled);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_callback (widget_class, markup_toggled);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_callback (widget_class, pattern_toggled);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_callback (widget_class, wrap_free_toggled);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_callback (widget_class, single_toggled);
|
|
Packit |
1e8aac |
gtk_widget_class_bind_template_callback (widget_class, wrap_mode_toggled);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
glade_label_editor_init (GladeLabelEditor * self)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
self->priv = glade_label_editor_get_instance_private (self);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
gtk_widget_init_template (GTK_WIDGET (self));
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
glade_label_editor_load (GladeEditable * editable, GladeWidget * widget)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelEditor *label_editor = GLADE_LABEL_EDITOR (editable);
|
|
Packit |
1e8aac |
GladeLabelEditorPrivate *priv = label_editor->priv;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* Chain up to default implementation */
|
|
Packit |
1e8aac |
parent_editable_iface->load (editable, widget);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (widget)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelContentMode content_mode;
|
|
Packit |
1e8aac |
GladeLabelWrapMode wrap_mode;
|
|
Packit |
1e8aac |
static PangoAttrList *italic_attr_list = NULL;
|
|
Packit |
1e8aac |
gboolean use_max_width;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (!italic_attr_list)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
PangoAttribute *attr;
|
|
Packit |
1e8aac |
italic_attr_list = pango_attr_list_new ();
|
|
Packit |
1e8aac |
attr = pango_attr_style_new (PANGO_STYLE_ITALIC);
|
|
Packit |
1e8aac |
pango_attr_list_insert (italic_attr_list, attr);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_widget_property_get (widget, "label-content-mode", &content_mode);
|
|
Packit |
1e8aac |
glade_widget_property_get (widget, "label-wrap-mode", &wrap_mode);
|
|
Packit |
1e8aac |
glade_widget_property_get (widget, "use-max-width", &use_max_width);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
switch (content_mode)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
case GLADE_LABEL_MODE_ATTRIBUTES:
|
|
Packit |
1e8aac |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
|
|
Packit |
1e8aac |
(priv->attributes_radio),
|
|
Packit |
1e8aac |
TRUE);
|
|
Packit |
1e8aac |
break;
|
|
Packit |
1e8aac |
case GLADE_LABEL_MODE_MARKUP:
|
|
Packit |
1e8aac |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
|
|
Packit |
1e8aac |
(priv->markup_radio), TRUE);
|
|
Packit |
1e8aac |
break;
|
|
Packit |
1e8aac |
case GLADE_LABEL_MODE_PATTERN:
|
|
Packit |
1e8aac |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
|
|
Packit |
1e8aac |
(priv->pattern_radio), TRUE);
|
|
Packit |
1e8aac |
break;
|
|
Packit |
1e8aac |
default:
|
|
Packit |
1e8aac |
break;
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (wrap_mode == GLADE_LABEL_WRAP_FREE)
|
|
Packit |
1e8aac |
gtk_label_set_attributes (GTK_LABEL (priv->wrap_free_label),
|
|
Packit |
1e8aac |
italic_attr_list);
|
|
Packit |
1e8aac |
else
|
|
Packit |
1e8aac |
gtk_label_set_attributes (GTK_LABEL (priv->wrap_free_label),
|
|
Packit |
1e8aac |
NULL);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
switch (wrap_mode)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
case GLADE_LABEL_WRAP_FREE:
|
|
Packit |
1e8aac |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
|
|
Packit |
1e8aac |
(priv->wrap_free_radio),
|
|
Packit |
1e8aac |
TRUE);
|
|
Packit |
1e8aac |
break;
|
|
Packit |
1e8aac |
case GLADE_LABEL_SINGLE_LINE:
|
|
Packit |
1e8aac |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
|
|
Packit |
1e8aac |
(priv->single_radio), TRUE);
|
|
Packit |
1e8aac |
break;
|
|
Packit |
1e8aac |
case GLADE_LABEL_WRAP_MODE:
|
|
Packit |
1e8aac |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
|
|
Packit |
1e8aac |
(priv->wrap_mode_radio),
|
|
Packit |
1e8aac |
TRUE);
|
|
Packit |
1e8aac |
break;
|
|
Packit |
1e8aac |
default:
|
|
Packit |
1e8aac |
break;
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
glade_label_editor_editable_init (GladeEditableIface * iface)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
parent_editable_iface = g_type_interface_peek_parent (iface);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
iface->load = glade_label_editor_load;
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
glade_label_editor_grab_focus (GtkWidget * widget)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelEditor *label_editor = GLADE_LABEL_EDITOR (widget);
|
|
Packit |
1e8aac |
GladeLabelEditorPrivate *priv = label_editor->priv;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
gtk_widget_grab_focus (priv->embed);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/**********************************************************************
|
|
Packit |
1e8aac |
label-content-mode radios
|
|
Packit |
1e8aac |
**********************************************************************/
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
attributes_toggled (GtkWidget * widget, GladeLabelEditor * label_editor)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelEditorPrivate *priv = label_editor->priv;
|
|
Packit |
1e8aac |
GladeProperty *property;
|
|
Packit |
1e8aac |
GladeWidget *gwidget = glade_editable_loaded_widget (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (glade_editable_loading (GLADE_EDITABLE (label_editor)) || !gwidget)
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (!gtk_toggle_button_get_active
|
|
Packit |
1e8aac |
(GTK_TOGGLE_BUTTON (priv->attributes_radio)))
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_block (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_push_group (_("Setting %s to use an attribute list"),
|
|
Packit |
1e8aac |
glade_widget_get_name (gwidget));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "use-markup");
|
|
Packit |
1e8aac |
glade_command_set_property (property, FALSE);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "pattern");
|
|
Packit |
1e8aac |
glade_command_set_property (property, NULL);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "label-content-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, GLADE_LABEL_MODE_ATTRIBUTES);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_pop_group ();
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_unblock (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* reload buttons and sensitivity and stuff... */
|
|
Packit |
1e8aac |
glade_editable_load (GLADE_EDITABLE (label_editor), gwidget);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
markup_toggled (GtkWidget * widget, GladeLabelEditor * label_editor)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelEditorPrivate *priv = label_editor->priv;
|
|
Packit |
1e8aac |
GladeProperty *property;
|
|
Packit |
1e8aac |
GladeWidget *gwidget = glade_editable_loaded_widget (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (glade_editable_loading (GLADE_EDITABLE (label_editor)) || !gwidget)
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (!gtk_toggle_button_get_active
|
|
Packit |
1e8aac |
(GTK_TOGGLE_BUTTON (priv->markup_radio)))
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_block (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_push_group (_("Setting %s to use a Pango markup string"),
|
|
Packit |
1e8aac |
glade_widget_get_name (gwidget));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "pattern");
|
|
Packit |
1e8aac |
glade_command_set_property (property, NULL);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "glade-attributes");
|
|
Packit |
1e8aac |
glade_command_set_property (property, NULL);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "use-markup");
|
|
Packit |
1e8aac |
glade_command_set_property (property, TRUE);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "label-content-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, GLADE_LABEL_MODE_MARKUP);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_pop_group ();
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_unblock (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* reload buttons and sensitivity and stuff... */
|
|
Packit |
1e8aac |
glade_editable_load (GLADE_EDITABLE (label_editor), gwidget);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
pattern_toggled (GtkWidget * widget, GladeLabelEditor * label_editor)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelEditorPrivate *priv = label_editor->priv;
|
|
Packit |
1e8aac |
GladeProperty *property;
|
|
Packit |
1e8aac |
GladeWidget *gwidget = glade_editable_loaded_widget (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (glade_editable_loading (GLADE_EDITABLE (label_editor)) || !gwidget)
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (!gtk_toggle_button_get_active
|
|
Packit |
1e8aac |
(GTK_TOGGLE_BUTTON (priv->pattern_radio)))
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_block (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_push_group (_("Setting %s to use a pattern string"),
|
|
Packit |
1e8aac |
glade_widget_get_name (gwidget));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "glade-attributes");
|
|
Packit |
1e8aac |
glade_command_set_property (property, NULL);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "use-markup");
|
|
Packit |
1e8aac |
glade_command_set_property (property, FALSE);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "label-content-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, GLADE_LABEL_MODE_PATTERN);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_pop_group ();
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_unblock (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* reload buttons and sensitivity and stuff... */
|
|
Packit |
1e8aac |
glade_editable_load (GLADE_EDITABLE (label_editor), gwidget);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/**********************************************************************
|
|
Packit |
1e8aac |
label-wrap-mode radios
|
|
Packit |
1e8aac |
**********************************************************************/
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
wrap_free_toggled (GtkWidget * widget, GladeLabelEditor * label_editor)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelEditorPrivate *priv = label_editor->priv;
|
|
Packit |
1e8aac |
GladeProperty *property;
|
|
Packit |
1e8aac |
GladeWidget *gwidget = glade_editable_loaded_widget (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (glade_editable_loading (GLADE_EDITABLE (label_editor)) || !gwidget)
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (!gtk_toggle_button_get_active
|
|
Packit |
1e8aac |
(GTK_TOGGLE_BUTTON (priv->wrap_free_radio)))
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_block (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_push_group (_("Setting %s to use normal line wrapping"),
|
|
Packit |
1e8aac |
glade_widget_get_name (gwidget));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "single-line-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, FALSE);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "wrap-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, PANGO_WRAP_WORD);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "wrap");
|
|
Packit |
1e8aac |
glade_command_set_property (property, FALSE);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "label-wrap-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, GLADE_LABEL_WRAP_FREE);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_pop_group ();
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_unblock (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* reload buttons and sensitivity and stuff... */
|
|
Packit |
1e8aac |
glade_editable_load (GLADE_EDITABLE (label_editor), gwidget);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
single_toggled (GtkWidget * widget, GladeLabelEditor * label_editor)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelEditorPrivate *priv = label_editor->priv;
|
|
Packit |
1e8aac |
GladeProperty *property;
|
|
Packit |
1e8aac |
GladeWidget *gwidget = glade_editable_loaded_widget (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (glade_editable_loading (GLADE_EDITABLE (label_editor)) || !gwidget)
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (!gtk_toggle_button_get_active
|
|
Packit |
1e8aac |
(GTK_TOGGLE_BUTTON (priv->single_radio)))
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_block (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_push_group (_("Setting %s to use a single line"),
|
|
Packit |
1e8aac |
glade_widget_get_name (gwidget));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "wrap-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, PANGO_WRAP_WORD);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "wrap");
|
|
Packit |
1e8aac |
glade_command_set_property (property, FALSE);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "single-line-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, TRUE);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "label-wrap-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, GLADE_LABEL_SINGLE_LINE);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_pop_group ();
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_unblock (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* reload buttons and sensitivity and stuff... */
|
|
Packit |
1e8aac |
glade_editable_load (GLADE_EDITABLE (label_editor), gwidget);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
static void
|
|
Packit |
1e8aac |
wrap_mode_toggled (GtkWidget * widget, GladeLabelEditor * label_editor)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
GladeLabelEditorPrivate *priv = label_editor->priv;
|
|
Packit |
1e8aac |
GladeProperty *property;
|
|
Packit |
1e8aac |
GladeWidget *gwidget = glade_editable_loaded_widget (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (glade_editable_loading (GLADE_EDITABLE (label_editor)) || !gwidget)
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
if (!gtk_toggle_button_get_active
|
|
Packit |
1e8aac |
(GTK_TOGGLE_BUTTON (priv->wrap_mode_radio)))
|
|
Packit |
1e8aac |
return;
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_block (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_push_group (_("Setting %s to use specific Pango word wrapping"),
|
|
Packit |
1e8aac |
glade_widget_get_name (gwidget));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "single-line-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, FALSE);
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "wrap");
|
|
Packit |
1e8aac |
glade_command_set_property (property, TRUE);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
property = glade_widget_get_property (gwidget, "label-wrap-mode");
|
|
Packit |
1e8aac |
glade_command_set_property (property, GLADE_LABEL_WRAP_MODE);
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_command_pop_group ();
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
glade_editable_unblock (GLADE_EDITABLE (label_editor));
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
/* reload buttons and sensitivity and stuff... */
|
|
Packit |
1e8aac |
glade_editable_load (GLADE_EDITABLE (label_editor), gwidget);
|
|
Packit |
1e8aac |
}
|
|
Packit |
1e8aac |
|
|
Packit |
1e8aac |
GtkWidget *
|
|
Packit |
1e8aac |
glade_label_editor_new (void)
|
|
Packit |
1e8aac |
{
|
|
Packit |
1e8aac |
return g_object_new (GLADE_TYPE_LABEL_EDITOR, NULL);
|
|
Packit |
1e8aac |
}
|