1
2 /*
3 * gedit-file-browser-message-get-view.c
4 * This file is part of gedit
5 *
6 * Copyright (C) 2014 - Jesse van den Kieboom
7 *
8 * gedit is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * gedit is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with gedit; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor,
21 * Boston, MA 02110-1301 USA
22 */
23
24 #include "config.h"
25
26 #include "gedit-file-browser-message-get-view.h"
27 #include "plugins/filebrowser/gedit-file-browser-view.h"
28
29 enum
30 {
31 PROP_0,
32
33 PROP_VIEW,
34 };
35
36 struct _GeditFileBrowserMessageGetViewPrivate
37 {
38 GeditFileBrowserView *view;
39 };
40
41 G_DEFINE_TYPE_EXTENDED (GeditFileBrowserMessageGetView,
42 gedit_file_browser_message_get_view,
43 GEDIT_TYPE_MESSAGE,
44 0,
45 G_ADD_PRIVATE (GeditFileBrowserMessageGetView))
46
47 static void
gedit_file_browser_message_get_view_finalize(GObject * obj)48 gedit_file_browser_message_get_view_finalize (GObject *obj)
49 {
50 GeditFileBrowserMessageGetView *msg = GEDIT_FILE_BROWSER_MESSAGE_GET_VIEW (obj);
51
52 if (msg->priv->view)
53 {
54 g_object_unref (msg->priv->view);
55 }
56
57 G_OBJECT_CLASS (gedit_file_browser_message_get_view_parent_class)->finalize (obj);
58 }
59
60 static void
gedit_file_browser_message_get_view_get_property(GObject * obj,guint prop_id,GValue * value,GParamSpec * pspec)61 gedit_file_browser_message_get_view_get_property (GObject *obj,
62 guint prop_id,
63 GValue *value,
64 GParamSpec *pspec)
65 {
66 GeditFileBrowserMessageGetView *msg;
67
68 msg = GEDIT_FILE_BROWSER_MESSAGE_GET_VIEW (obj);
69
70 switch (prop_id)
71 {
72 case PROP_VIEW:
73 g_value_set_object (value, msg->priv->view);
74 break;
75 }
76 }
77
78 static void
gedit_file_browser_message_get_view_set_property(GObject * obj,guint prop_id,GValue const * value,GParamSpec * pspec)79 gedit_file_browser_message_get_view_set_property (GObject *obj,
80 guint prop_id,
81 GValue const *value,
82 GParamSpec *pspec)
83 {
84 GeditFileBrowserMessageGetView *msg;
85
86 msg = GEDIT_FILE_BROWSER_MESSAGE_GET_VIEW (obj);
87
88 switch (prop_id)
89 {
90 case PROP_VIEW:
91 {
92 if (msg->priv->view)
93 {
94 g_object_unref (msg->priv->view);
95 }
96 msg->priv->view = g_value_dup_object (value);
97 break;
98 }
99 }
100 }
101
102 static void
gedit_file_browser_message_get_view_class_init(GeditFileBrowserMessageGetViewClass * klass)103 gedit_file_browser_message_get_view_class_init (GeditFileBrowserMessageGetViewClass *klass)
104 {
105 GObjectClass *object_class = G_OBJECT_CLASS(klass);
106
107 object_class->finalize = gedit_file_browser_message_get_view_finalize;
108
109 object_class->get_property = gedit_file_browser_message_get_view_get_property;
110 object_class->set_property = gedit_file_browser_message_get_view_set_property;
111
112 g_object_class_install_property (object_class,
113 PROP_VIEW,
114 g_param_spec_object ("view",
115 "View",
116 "View",
117 GEDIT_TYPE_FILE_BROWSER_VIEW,
118 G_PARAM_READWRITE |
119 G_PARAM_CONSTRUCT |
120 G_PARAM_STATIC_STRINGS));
121 }
122
123 static void
gedit_file_browser_message_get_view_init(GeditFileBrowserMessageGetView * message)124 gedit_file_browser_message_get_view_init (GeditFileBrowserMessageGetView *message)
125 {
126 message->priv = gedit_file_browser_message_get_view_get_instance_private (message);
127 }
128