2 * Copyright © 2000, 2001, 2002 Marco Pesenti Gritti
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2, or (at your option)
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * $Id: ephy-embed-dialog.c 7012 2007-04-24 19:39:18Z diegoe $
23 #include "ephy-embed-dialog.h"
26 ephy_embed_dialog_class_init (EphyEmbedDialogClass
*klass
);
28 ephy_embed_dialog_init (EphyEmbedDialog
*window
);
30 ephy_embed_dialog_finalize (GObject
*object
);
32 ephy_embed_dialog_get_property (GObject
*object
,
37 ephy_embed_dialog_set_property (GObject
*object
,
48 #define EPHY_EMBED_DIALOG_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_EMBED_DIALOG, EphyEmbedDialogPrivate))
50 struct _EphyEmbedDialogPrivate
55 static GObjectClass
*parent_class
= NULL
;
58 ephy_embed_dialog_get_type (void)
60 static GType type
= 0;
62 if (G_UNLIKELY (type
== 0))
64 const GTypeInfo our_info
=
66 sizeof (EphyEmbedDialogClass
),
68 NULL
, /* base_finalize */
69 (GClassInitFunc
) ephy_embed_dialog_class_init
,
71 NULL
, /* class_data */
72 sizeof (EphyEmbedDialog
),
74 (GInstanceInitFunc
) ephy_embed_dialog_init
77 type
= g_type_register_static (EPHY_TYPE_DIALOG
,
86 ephy_embed_dialog_class_init (EphyEmbedDialogClass
*klass
)
88 GObjectClass
*object_class
= G_OBJECT_CLASS (klass
);
90 parent_class
= g_type_class_peek_parent (klass
);
92 object_class
->finalize
= ephy_embed_dialog_finalize
;
93 object_class
->set_property
= ephy_embed_dialog_set_property
;
94 object_class
->get_property
= ephy_embed_dialog_get_property
;
96 g_object_class_install_property (object_class
,
98 g_param_spec_object ("embed",
100 "The dialog's embed",
102 G_PARAM_READWRITE
| G_PARAM_STATIC_NAME
| G_PARAM_STATIC_NICK
| G_PARAM_STATIC_BLURB
));
104 g_type_class_add_private (object_class
, sizeof(EphyEmbedDialogPrivate
));
108 ephy_embed_dialog_init (EphyEmbedDialog
*dialog
)
110 dialog
->priv
= EPHY_EMBED_DIALOG_GET_PRIVATE (dialog
);
114 unset_embed (EphyEmbedDialog
*dialog
)
116 if (dialog
->priv
->embed
!= NULL
)
118 EphyEmbed
**embedptr
;
119 embedptr
= &dialog
->priv
->embed
;
120 g_object_remove_weak_pointer (G_OBJECT (dialog
->priv
->embed
),
121 (gpointer
*) embedptr
);
126 ephy_embed_dialog_finalize (GObject
*object
)
128 EphyEmbedDialog
*dialog
= EPHY_EMBED_DIALOG (object
);
130 unset_embed (dialog
);
132 G_OBJECT_CLASS (parent_class
)->finalize (object
);
136 ephy_embed_dialog_set_property (GObject
*object
,
141 EphyEmbedDialog
*d
= EPHY_EMBED_DIALOG (object
);
145 case PROP_EPHY_EMBED
:
146 ephy_embed_dialog_set_embed (d
, g_value_get_object (value
));
152 ephy_embed_dialog_get_property (GObject
*object
,
157 EphyEmbedDialog
*d
= EPHY_EMBED_DIALOG (object
);
161 case PROP_EPHY_EMBED
:
162 g_value_set_object (value
, d
->priv
->embed
);
168 ephy_embed_dialog_new (EphyEmbed
*embed
)
170 return EPHY_EMBED_DIALOG (g_object_new (EPHY_TYPE_EMBED_DIALOG
,
176 ephy_embed_dialog_new_with_parent (GtkWidget
*parent_window
,
179 return EPHY_EMBED_DIALOG (g_object_new
180 (EPHY_TYPE_EMBED_DIALOG
,
181 "parent-window", parent_window
,
187 ephy_embed_dialog_set_embed (EphyEmbedDialog
*dialog
,
190 EphyEmbed
**embedptr
;
192 unset_embed (dialog
);
193 dialog
->priv
->embed
= embed
;
195 embedptr
= &dialog
->priv
->embed
;
196 g_object_add_weak_pointer (G_OBJECT (dialog
->priv
->embed
),
197 (gpointer
*) embedptr
);
198 g_object_notify (G_OBJECT (dialog
), "embed");
202 ephy_embed_dialog_get_embed (EphyEmbedDialog
*dialog
)
204 return dialog
->priv
->embed
;