1 #include "ephy-history-node.h"
3 G_DEFINE_TYPE(EphyHistoryNode
, ephy_history_node
, G_TYPE_OBJECT
)
4 #define EPHY_HISTORY_NODE_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_HISTORY_NODE, EphyHistoryNodePrivate))
8 EPHY_HISTORY_NODE_PROP_ID
= 1,
9 EPHY_HISTORY_NODE_PROP_URL
,
10 EPHY_HISTORY_NODE_PROP_TITLE
,
11 EPHY_HISTORY_NODE_PROP_FAVICON_URL
,
14 static void ephy_history_node_finalize (GObject
*object
);
16 struct _EphyHistoryNodePrivate
25 ephy_history_node_set_property (GObject
*object
,
30 EphyHistoryNode
*self
= EPHY_HISTORY_NODE (object
);
34 case EPHY_HISTORY_NODE_PROP_ID
:
35 self
->priv
->id
= g_value_get_uint64 (value
);
37 case EPHY_HISTORY_NODE_PROP_URL
:
38 g_free (self
->priv
->url
);
39 self
->priv
->url
= g_value_dup_string (value
);
41 case EPHY_HISTORY_NODE_PROP_TITLE
:
42 g_free (self
->priv
->title
);
43 self
->priv
->title
= g_value_dup_string (value
);
45 case EPHY_HISTORY_NODE_PROP_FAVICON_URL
:
46 g_free (self
->priv
->favicon_url
);
47 self
->priv
->favicon_url
= g_value_dup_string (value
);
50 /* We don't have any other property... */
51 G_OBJECT_WARN_INVALID_PROPERTY_ID (object
, prop_id
, pspec
);
57 ephy_history_node_get_property (GObject
*object
,
62 EphyHistoryNode
*self
= EPHY_HISTORY_NODE (object
);
66 case EPHY_HISTORY_NODE_PROP_ID
:
67 g_value_set_uint64 (value
, self
->priv
->id
);
69 case EPHY_HISTORY_NODE_PROP_URL
:
70 g_value_set_string (value
, self
->priv
->url
);
72 case EPHY_HISTORY_NODE_PROP_TITLE
:
73 g_value_set_string (value
, self
->priv
->title
);
75 case EPHY_HISTORY_NODE_PROP_FAVICON_URL
:
76 g_value_set_string (value
, self
->priv
->favicon_url
);
79 /* We don't have any other property... */
80 G_OBJECT_WARN_INVALID_PROPERTY_ID (object
, prop_id
, pspec
);
86 ephy_history_node_class_init (EphyHistoryNodeClass
*klass
)
88 GObjectClass
*object_class
= G_OBJECT_CLASS (klass
);
90 object_class
->finalize
= ephy_history_node_finalize
;
92 object_class
->get_property
= ephy_history_node_get_property
;
93 object_class
->set_property
= ephy_history_node_set_property
;
95 g_type_class_add_private (object_class
, sizeof (EphyHistoryNodePrivate
));
97 g_object_class_install_property (object_class
,
98 EPHY_HISTORY_NODE_PROP_ID
,
99 g_param_spec_uint64 ("id",
102 0 /* minimum value */,
103 G_MAXUINT64
/* maximum value */,
104 0 /* default value */,
105 G_PARAM_CONSTRUCT_ONLY
| G_PARAM_READWRITE
| G_PARAM_STATIC_NICK
| G_PARAM_STATIC_BLURB
));
107 g_object_class_install_property (object_class
,
108 EPHY_HISTORY_NODE_PROP_URL
,
109 g_param_spec_string ("url",
112 NULL
/* default value */,
113 G_PARAM_CONSTRUCT_ONLY
| G_PARAM_READWRITE
| G_PARAM_STATIC_NAME
| G_PARAM_STATIC_NICK
| G_PARAM_STATIC_BLURB
));
115 g_object_class_install_property (object_class
,
116 EPHY_HISTORY_NODE_PROP_TITLE
,
117 g_param_spec_string ("title",
120 NULL
/* default value */,
121 G_PARAM_CONSTRUCT_ONLY
| G_PARAM_READWRITE
| G_PARAM_STATIC_NAME
| G_PARAM_STATIC_NICK
| G_PARAM_STATIC_BLURB
));
123 g_object_class_install_property (object_class
,
124 EPHY_HISTORY_NODE_PROP_FAVICON_URL
,
125 g_param_spec_string ("favicon-url",
128 NULL
/* default value */,
129 G_PARAM_CONSTRUCT_ONLY
| G_PARAM_READWRITE
| G_PARAM_STATIC_NAME
| G_PARAM_STATIC_NICK
| G_PARAM_STATIC_BLURB
));
134 ephy_history_node_init (EphyHistoryNode
*node
)
136 node
->priv
= EPHY_HISTORY_NODE_GET_PRIVATE (node
);
140 ephy_history_node_finalize (GObject
*object
)
142 EphyHistoryNode
*self
= EPHY_HISTORY_NODE (object
);
144 g_free (self
->priv
->url
);
145 g_free (self
->priv
->title
);
146 g_free (self
->priv
->favicon_url
);
150 G_OBJECT_CLASS (ephy_history_node_parent_class
)->finalize (object
);