diff options
Diffstat (limited to 'subprojects/libgd/libgd/gd-main-box-item.c')
-rw-r--r-- | subprojects/libgd/libgd/gd-main-box-item.c | 242 |
1 files changed, 242 insertions, 0 deletions
diff --git a/subprojects/libgd/libgd/gd-main-box-item.c b/subprojects/libgd/libgd/gd-main-box-item.c new file mode 100644 index 0000000..042b0e4 --- /dev/null +++ b/subprojects/libgd/libgd/gd-main-box-item.c @@ -0,0 +1,242 @@ +/* + * Copyright (c) 2016 Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: Debarshi Ray <debarshir@gnome.org> + * + */ + +#include <cairo-gobject.h> + +#include "gd-main-box-item.h" + +G_DEFINE_INTERFACE (GdMainBoxItem, gd_main_box_item, G_TYPE_OBJECT) + +static void +gd_main_box_item_default_init (GdMainBoxItemInterface *iface) +{ + GParamSpec *pspec; + + /** + * GdMainBoxItem:id: + * + * A unique ID to identify the #GdMainBoxItem object. + */ + pspec = g_param_spec_string ("id", + "ID", + "A unique ID to identify the item", + NULL, + G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_interface_install_property (iface, pspec); + + /** + * GdMainBoxItem:uri: + * + * A URI corresponding to the #GdMainBoxItem object. + */ + pspec = g_param_spec_string ("uri", + "URI", + "A URI corresponding to the item", + NULL, + G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_interface_install_property (iface, pspec); + + /** + * GdMainBoxItem:primary-text: + * + * Some text to describe the #GdMainBoxItem object. + */ + pspec = g_param_spec_string ("primary-text", + "Primary Text", + "Some text to describe the item", + NULL, + G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_interface_install_property (iface, pspec); + + /** + * GdMainBoxItem:secondary-text: + * + * Some additional text to describe the #GdMainBoxItem object. + */ + pspec = g_param_spec_string ("secondary-text", + "Secondary Text", + "Some additional text to describe the item", + NULL, + G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_interface_install_property (iface, pspec); + + /** + * GdMainBoxItem:icon: + * + * An icon to visually identify the #GdMainBoxItem object. + */ + pspec = g_param_spec_boxed ("icon", + "Icon", + "An icon to visually identify the item", + CAIRO_GOBJECT_TYPE_SURFACE, + G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_interface_install_property (iface, pspec); + + /** + * GdMainBoxItem:mtime: + * + * The time when the #GdMainBoxItem object was last modified. + */ + pspec = g_param_spec_int64 ("mtime", + "Modification time", + "The time when the item was last modified", + -1, + G_MAXINT64, + -1, + G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_interface_install_property (iface, pspec); + + /** + * GdMainBoxItem:pulse: + * + * Whether to show a progress indicator. + */ + pspec = g_param_spec_boolean ("pulse", + "Pulse", + "Whether to show a progress indicator", + FALSE, + G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_interface_install_property (iface, pspec); +} + +/** + * gd_main_box_item_get_id: + * @self: + * + * Returns: (transfer none): The ID + */ +const gchar * +gd_main_box_item_get_id (GdMainBoxItem *self) +{ + GdMainBoxItemInterface *iface; + + g_return_val_if_fail (GD_IS_MAIN_BOX_ITEM (self), NULL); + + iface = GD_MAIN_BOX_ITEM_GET_IFACE (self); + + return (* iface->get_id) (self); +} + +/** + * gd_main_box_item_get_uri: + * @self: + * + * Returns: (transfer none): The URI + */ +const gchar * +gd_main_box_item_get_uri (GdMainBoxItem *self) +{ + GdMainBoxItemInterface *iface; + + g_return_val_if_fail (GD_IS_MAIN_BOX_ITEM (self), NULL); + + iface = GD_MAIN_BOX_ITEM_GET_IFACE (self); + + return (* iface->get_uri) (self); +} + +/** + * gd_main_box_item_get_primary_text: + * @self: + * + * Returns: (transfer none): The primary text + */ +const gchar * +gd_main_box_item_get_primary_text (GdMainBoxItem *self) +{ + GdMainBoxItemInterface *iface; + + g_return_val_if_fail (GD_IS_MAIN_BOX_ITEM (self), NULL); + + iface = GD_MAIN_BOX_ITEM_GET_IFACE (self); + + return (* iface->get_primary_text) (self); +} + +/** + * gd_main_box_item_get_secondary_text: + * @self: + * + * Returns: (transfer none): The secondary text + */ +const gchar * +gd_main_box_item_get_secondary_text (GdMainBoxItem *self) +{ + GdMainBoxItemInterface *iface; + + g_return_val_if_fail (GD_IS_MAIN_BOX_ITEM (self), NULL); + + iface = GD_MAIN_BOX_ITEM_GET_IFACE (self); + + return (* iface->get_secondary_text) (self); +} + +/** + * gd_main_box_item_get_icon: + * @self: + * + * Returns: (transfer none): The icon + */ +cairo_surface_t * +gd_main_box_item_get_icon (GdMainBoxItem *self) +{ + GdMainBoxItemInterface *iface; + + g_return_val_if_fail (GD_IS_MAIN_BOX_ITEM (self), NULL); + + iface = GD_MAIN_BOX_ITEM_GET_IFACE (self); + + return (* iface->get_icon) (self); +} + +/** + * gd_main_box_item_get_mtime: + * @self: + * + * Returns: (transfer none): The modification time + */ +gint64 +gd_main_box_item_get_mtime (GdMainBoxItem *self) +{ + gint64 mtime; + + g_return_val_if_fail (GD_IS_MAIN_BOX_ITEM (self), -1); + + g_object_get (self, "mtime", &mtime, NULL); + return mtime; +} + +/** + * gd_main_box_item_get_pulse: + * @self: + * + * Returns: (transfer none): Whether to show a progress indicator + */ +gboolean +gd_main_box_item_get_pulse (GdMainBoxItem *self) +{ + gboolean pulse; + + g_return_val_if_fail (GD_IS_MAIN_BOX_ITEM (self), FALSE); + + g_object_get (self, "pulse", &pulse, NULL); + return pulse; +} |