Logo Search packages:      
Sourcecode: xfce4-terminal version File versions


/* $Id: terminal-toolbars-view.c 25928 2007-07-20 15:43:29Z benny $ */
 * Copyright (c) 2004-2007 os-cillation e.K.
 * Written by Benedikt Meurer <benny@xfce.org>.
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the Free
 * Software Foundation; either version 2 of the License, or (at your option)
 * any later version.
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 * Place, Suite 330, Boston, MA  02111-1307  USA.

#include <config.h>

#include <terminal/terminal-private.h>
#include <terminal/terminal-toolbars-model.h>
#include <terminal/terminal-toolbars-view.h>

static void terminal_toolbars_view_class_init (TerminalToolbarsViewClass *klass);
static void terminal_toolbars_view_init       (TerminalToolbarsView      *toolbar);
static void terminal_toolbars_view_finalize   (GObject                   *object);
static void terminal_toolbars_view_edit_done  (ExoToolbarsEditorDialog   *dialog,
                                               TerminalToolbarsView      *toolbar);

G_DEFINE_TYPE (TerminalToolbarsView, terminal_toolbars_view, EXO_TYPE_TOOLBARS_VIEW);

static void
terminal_toolbars_view_class_init (TerminalToolbarsViewClass *klass)
  GObjectClass *gobject_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize = terminal_toolbars_view_finalize;

static void
terminal_toolbars_view_init (TerminalToolbarsView *toolbar)
  ExoToolbarsModel *model;

  model = terminal_toolbars_model_get_default ();
  exo_toolbars_view_set_model (EXO_TOOLBARS_VIEW (toolbar), model);
  g_object_unref (G_OBJECT (model));

  g_signal_connect (G_OBJECT (toolbar), "customize",
                    G_CALLBACK (terminal_toolbars_view_edit), NULL);

static void
terminal_toolbars_view_finalize (GObject *object)
  TerminalToolbarsView *toolbar = TERMINAL_TOOLBARS_VIEW (object);

  if (G_UNLIKELY (toolbar->editor_dialog != NULL))
    gtk_widget_destroy (toolbar->editor_dialog);

  (*G_OBJECT_CLASS (terminal_toolbars_view_parent_class)->finalize) (object);

static void
terminal_toolbars_view_edit_done (ExoToolbarsEditorDialog *dialog,
                                  TerminalToolbarsView    *toolbar)
  exo_toolbars_view_set_editing (EXO_TOOLBARS_VIEW (toolbar), FALSE);

 * terminal_toolbars_view_new:
 * @ui_manager    : The #GtkUIManager to use for this toolbar.
 * Return value   : A new #TerminalToolbarsView.
terminal_toolbars_view_new (GtkUIManager *ui_manager)
  _terminal_return_val_if_fail (GTK_IS_UI_MANAGER (ui_manager), NULL);

  return g_object_new (TERMINAL_TYPE_TOOLBARS_VIEW,
                       "ui-manager", ui_manager,

 * terminal_toolbars_view_edit:
 * @toolbar : A #TerminalToolbarsView.
terminal_toolbars_view_edit (TerminalToolbarsView *toolbar)
  ExoToolbarsModel  *model;
  GtkUIManager      *ui_manager;
  GtkWidget         *toplevel;

  _terminal_return_if_fail (TERMINAL_IS_TOOLBARS_VIEW (toolbar));

  exo_toolbars_view_set_editing (EXO_TOOLBARS_VIEW (toolbar), TRUE);

  if (toolbar->editor_dialog == NULL)
      model = exo_toolbars_view_get_model (EXO_TOOLBARS_VIEW (toolbar));
      toplevel = gtk_widget_get_toplevel (GTK_WIDGET (toolbar));
      ui_manager = exo_toolbars_view_get_ui_manager (EXO_TOOLBARS_VIEW (toolbar));

      toolbar->editor_dialog = exo_toolbars_editor_dialog_new_with_model (ui_manager, model);
      gtk_window_set_destroy_with_parent (GTK_WINDOW (toolbar->editor_dialog), TRUE);
      gtk_window_set_title (GTK_WINDOW (toolbar->editor_dialog), _("Toolbar Editor"));
      gtk_window_set_transient_for (GTK_WINDOW (toolbar->editor_dialog), GTK_WINDOW (toplevel));
      g_signal_connect (G_OBJECT (toolbar->editor_dialog), "destroy",
                        G_CALLBACK (terminal_toolbars_view_edit_done), toolbar);
      g_object_add_weak_pointer (G_OBJECT (toolbar->editor_dialog),
                                 (gpointer) &toolbar->editor_dialog);
      gtk_widget_show (toolbar->editor_dialog);
      gtk_window_present (GTK_WINDOW (toolbar->editor_dialog));

Generated by  Doxygen 1.6.0   Back to index