From 26263b2ef8ff7356d33d9b82bffae5b508359168 Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 24 Jan 2015 17:13:11 +0100 Subject: prepare window selector --- libmdock/mdock-item-window-selector.c | 118 ++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 libmdock/mdock-item-window-selector.c (limited to 'libmdock/mdock-item-window-selector.c') diff --git a/libmdock/mdock-item-window-selector.c b/libmdock/mdock-item-window-selector.c new file mode 100644 index 0000000..c7df718 --- /dev/null +++ b/libmdock/mdock-item-window-selector.c @@ -0,0 +1,118 @@ +/* + * Copyright 2015 Javier S. Pedro + * + * This file is part of MDock. + * + * MDock is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * MDock 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 General Public License + * along with MDock. If not, see . + */ + +#include "mdock-item-window-selector.h" + +#define MDOCK_ITEM_WINDOW_SELECTOR_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), MDOCK_TYPE_ITEM_WINDOW_SELECTOR, MDockItemWindowSelectorPrivate)) + +struct _MDockItemWindowSelectorPrivate +{ + GList *temp; +}; + +G_DEFINE_TYPE (MDockItemWindowSelector, mdock_item_window_selector, GTK_TYPE_WINDOW) + +enum { + PROP_0, + PROP_ITEM, + N_PROPERTIES +}; + +static GParamSpec *obj_properties[N_PROPERTIES] = { NULL }; + +static void mdock_item_window_selector_set_property(GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + MDockItemWindowSelector *self = MDOCK_ITEM_WINDOW_SELECTOR(object); + switch (property_id) { + case PROP_ITEM: + g_clear_object(&self->item); + self->item = g_value_dup_object(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); + break; + } +} + +static void mdock_item_window_selector_get_property(GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + MDockItemWindowSelector *self = MDOCK_ITEM_WINDOW_SELECTOR(object); + switch (property_id) { + case PROP_ITEM: + g_value_set_object(value, self->item); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); + break; + } +} + +static void mdock_item_window_selector_constructed(GObject *object) +{ + G_OBJECT_CLASS(mdock_item_window_selector_parent_class)->constructed(object); +} + +static void mdock_item_window_selector_dispose(GObject *object) +{ + G_OBJECT_CLASS(mdock_item_window_selector_parent_class)->dispose(object); +} + +static void mdock_item_window_selector_finalize(GObject *object) +{ + G_OBJECT_CLASS(mdock_item_window_selector_parent_class)->finalize(object); +} + +static void +mdock_item_window_selector_class_init(MDockItemWindowSelectorClass *klass) +{ + GObjectClass *obj_class = G_OBJECT_CLASS (klass); + obj_class->set_property = mdock_item_window_selector_set_property; + obj_class->get_property = mdock_item_window_selector_get_property; + obj_class->constructed = mdock_item_window_selector_constructed; + obj_class->dispose = mdock_item_window_selector_dispose; + obj_class->finalize = mdock_item_window_selector_finalize; + + g_type_class_add_private(obj_class, sizeof(MDockItemWindowSelectorPrivate)); + + obj_properties[PROP_ITEM] = g_param_spec_object("item", + "The MDockItem the options in this menu apply to", + "Set the MDockItem the options in this menu apply to", + MDOCK_TYPE_ITEM, + G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties(obj_class, N_PROPERTIES, obj_properties); +} + +static void +mdock_item_window_selector_init (MDockItemWindowSelector *self) +{ + self->priv = MDOCK_ITEM_WINDOW_SELECTOR_GET_PRIVATE (self); +} + +MDockItemWindowSelector * +mdock_item_window_selector_new(MDockItem *item) +{ + return g_object_new(MDOCK_TYPE_ITEM_WINDOW_SELECTOR, "item", item, NULL); +} -- cgit v1.2.3