gnome-terminal r2454 - trunk/src
- From: chpe svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-terminal r2454 - trunk/src
- Date: Wed, 19 Mar 2008 15:20:54 +0000 (GMT)
Author: chpe
Date: Wed Mar 19 15:20:54 2008
New Revision: 2454
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2454&view=rev
Log:
Make "title" a property on TerminalScreen, and remove the "title-changed" signal.
Modified:
trunk/src/terminal-screen.c
trunk/src/terminal-screen.h
trunk/src/terminal-window.c
Modified: trunk/src/terminal-screen.c
==============================================================================
--- trunk/src/terminal-screen.c (original)
+++ trunk/src/terminal-screen.c Wed Mar 19 15:20:54 2008
@@ -74,7 +74,6 @@
enum {
PROFILE_SET,
- TITLE_CHANGED,
ICON_TITLE_CHANGED,
SELECTION_CHANGED,
ENCODING_CHANGED,
@@ -82,6 +81,11 @@
};
enum {
+ PROP_0,
+ PROP_TITLE
+};
+
+enum {
FLAVOR_AS_IS,
FLAVOR_DEFAULT_TO_HTTP,
FLAVOR_EMAIL
@@ -402,6 +406,25 @@
}
static void
+terminal_screen_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ TerminalScreen *screen = TERMINAL_SCREEN (object);
+
+ switch (prop_id)
+ {
+ case PROP_TITLE:
+ g_value_set_string (value, terminal_screen_get_title (screen));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
terminal_screen_class_init (TerminalScreenClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -409,6 +432,7 @@
object_class->dispose = terminal_screen_dispose;
object_class->finalize = terminal_screen_finalize;
+ object_class->get_property = terminal_screen_get_property;
widget_class->unrealize = terminal_screen_unrealize;
widget_class->size_allocate = terminal_screen_size_allocate;
@@ -416,7 +440,7 @@
widget_class->size_request = terminal_screen_size_request;
widget_class->map = terminal_screen_map;
widget_class->grab_focus = terminal_screen_grab_focus;
-
+
signals[PROFILE_SET] =
g_signal_new ("profile_set",
G_OBJECT_CLASS_TYPE (object_class),
@@ -425,15 +449,6 @@
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-
- signals[TITLE_CHANGED] =
- g_signal_new ("title_changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (TerminalScreenClass, title_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
signals[ICON_TITLE_CHANGED] =
g_signal_new ("icon_title_changed",
@@ -462,6 +477,13 @@
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ g_object_class_install_property (object_class,
+ PROP_TITLE,
+ g_param_spec_string ("title", NULL, NULL,
+ NULL,
+ G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+
+
g_type_class_add_private (object_class, sizeof (TerminalScreenPrivate));
}
@@ -777,7 +799,7 @@
terminal_screen_cook_title (TerminalScreen *screen)
{
if (cook_title (screen, screen->priv->raw_title, &screen->priv->cooked_title))
- g_signal_emit (G_OBJECT (screen), signals[TITLE_CHANGED], 0);
+ g_object_notify (G_OBJECT (screen), "title");
}
static void
Modified: trunk/src/terminal-screen.h
==============================================================================
--- trunk/src/terminal-screen.h (original)
+++ trunk/src/terminal-screen.h Wed Mar 19 15:20:54 2008
@@ -54,7 +54,6 @@
GtkBinClass parent_class;
void (* profile_set) (TerminalScreen *screen);
- void (* title_changed) (TerminalScreen *screen);
void (* icon_title_changed) (TerminalScreen *screen);
void (* selection_changed) (TerminalScreen *screen);
void (* encoding_changed) (TerminalScreen *screen);
Modified: trunk/src/terminal-window.c
==============================================================================
--- trunk/src/terminal-window.c (original)
+++ trunk/src/terminal-window.c Wed Mar 19 15:20:54 2008
@@ -1287,6 +1287,7 @@
static void
title_changed_callback (TerminalScreen *screen,
+ GParamSpec *psepc,
TerminalWindow *window)
{
TerminalWindowPrivate *priv = window->priv;
@@ -1412,6 +1413,7 @@
static void
sync_tab_label (TerminalScreen *screen,
+ GParamSpec *pspec,
GtkWidget *label)
{
GtkWidget *hbox;
@@ -1464,15 +1466,13 @@
gtk_container_add (GTK_CONTAINER (close_button), image);
gtk_box_pack_end (GTK_BOX (hbox), close_button, FALSE, FALSE, 0);
- g_signal_connect (G_OBJECT (close_button), "clicked",
- G_CALLBACK (close_button_clicked_cb),
- screen);
+ sync_tab_label (screen, NULL, label);
+ g_signal_connect (screen, "notify::title",
+ G_CALLBACK (sync_tab_label), label);
+
+ g_signal_connect (close_button, "clicked",
+ G_CALLBACK (close_button_clicked_cb), screen);
- sync_tab_label (screen, label);
- g_signal_connect (G_OBJECT (screen),
- "title-changed",
- G_CALLBACK (sync_tab_label),
- label);
g_signal_connect (hbox, "style-set",
G_CALLBACK (tab_label_style_set_cb), close_button);
@@ -1830,7 +1830,7 @@
window);
g_signal_connect (G_OBJECT (screen),
- "title-changed",
+ "notify::title",
G_CALLBACK (title_changed_callback),
window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]