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