2 * This program is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU General Public License as
4 * published by the Free Software Foundation; either version 2 of the
5 * License, or (at your option) any later version.
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * General Public License for more details.
12 * You should have received a copy of the GNU General Public
13 * License along with this program; if not, write to the
14 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
15 * Boston, MA 02110-1301 USA
17 * Authors: Travis Reitter <treitter@gmail.com>
23 #include <glib/gi18n.h>
25 #include <hildon/hildon.h>
27 #include "milk-task.h"
29 G_DEFINE_TYPE (MilkTask, milk_task, G_TYPE_OBJECT);
31 /* less expensive than G_TYPE_INSTANCE_GET_PRIVATE */
32 #define MILK_TASK_PRIVATE(o) ((MILK_TASK ((o)))->priv)
34 struct _MilkTaskPrivate
49 task_set_id (MilkTask *task,
52 MilkTaskPrivate *priv;
54 g_return_if_fail (MILK_IS_TASK (task));
55 g_return_if_fail (id && !g_str_equal (id, ""));
57 priv = MILK_TASK_PRIVATE (task);
59 priv->id = g_strdup (id);
63 milk_task_set_title (MilkTask *task,
66 MilkTaskPrivate *priv;
68 g_return_if_fail (MILK_IS_TASK (task));
70 priv = MILK_TASK_PRIVATE (task);
72 priv->title = g_strdup (title);
76 milk_task_set_priority (MilkTask *task,
79 MilkTaskPrivate *priv;
81 g_return_if_fail (MILK_IS_TASK (task));
82 /* FIXME: set constraints on the allowed priority values */
84 priv = MILK_TASK_PRIVATE (task);
85 priv->priority = priority;
89 milk_task_get_property (GObject *object,
94 MilkTaskPrivate *priv = MILK_TASK_PRIVATE (object);
99 g_value_set_string (value, priv->id);
103 g_value_set_string (value, priv->title);
107 g_value_set_int (value, priv->priority);
111 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id,
117 milk_task_set_property (GObject *object,
122 MilkTaskPrivate *priv;
125 task = MILK_TASK (object);
126 priv = MILK_TASK_PRIVATE (task);
131 task_set_id (task, g_value_get_string (value));
135 milk_task_set_title (task, g_value_get_string (value));
139 milk_task_set_priority (task, g_value_get_int (value));
143 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id,
149 milk_task_finalize (GObject *object)
151 MilkTaskPrivate *priv = MILK_TASK_PRIVATE (object);
154 g_free (priv->title);
158 milk_task_class_init (MilkTaskClass *klass)
160 GObjectClass *object_class = G_OBJECT_CLASS (klass);
162 g_type_class_add_private (klass, sizeof (MilkTaskPrivate));
164 object_class->get_property = milk_task_get_property;
165 object_class->set_property = milk_task_set_property;
166 object_class->finalize = milk_task_finalize;
168 g_object_class_install_property
174 "A globally-unique identifier for the task.",
176 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
177 G_PARAM_STATIC_STRINGS));
179 g_object_class_install_property
185 "The description of the task to be performed.",
187 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
189 g_object_class_install_property
195 "The user-valued priority of the task.",
197 G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
201 milk_task_init (MilkTask *self)
203 MilkTaskPrivate *priv;
205 self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (
206 self, MILK_TYPE_TASK, MilkTaskPrivate);
210 milk_task_new (const char *id,
214 return g_object_new (
218 "priority", priority,