VnBatch renombrado a VnSet
This commit is contained in:
parent
1a2d0bdee0
commit
b6f58de70d
|
@ -14,8 +14,7 @@ public class Vn.[+FormClassName+] : Vn.Form
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Main routine of the [+FormClassName+] Form.
|
public override void open ()
|
||||||
public override void open (Gtk.Builder builder)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,6 @@ public class Vn.[+ClassName+] : Vn.Mod
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Main routine of the [+ClassName+] Module.
|
|
||||||
public override void activate ()
|
public override void activate ()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ libgladevn_la_LDFLAGS = -avoid-version
|
||||||
libgladevn_la_SOURCES = \
|
libgladevn_la_SOURCES = \
|
||||||
glade-vn.h \
|
glade-vn.h \
|
||||||
glade-vn.c \
|
glade-vn.c \
|
||||||
glade-vn-batch.c \
|
glade-vn-set.c \
|
||||||
glade-db-model.c \
|
glade-db-model.c \
|
||||||
glade-db-model-editor.h \
|
glade-db-model-editor.h \
|
||||||
glade-db-model-editor.c \
|
glade-db-model-editor.c \
|
||||||
|
|
|
@ -683,6 +683,7 @@ static void glade_list_eprop_create_input (GladeListEProp * obj, GtkWidget * box
|
||||||
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_IN);
|
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_IN);
|
||||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),
|
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),
|
||||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||||
|
g_object_set (G_OBJECT (scroll), "height-request", 50, NULL);
|
||||||
gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0);
|
||||||
|
|
||||||
obj->view = GTK_TREE_VIEW (gtk_tree_view_new ());
|
obj->view = GTK_TREE_VIEW (gtk_tree_view_new ());
|
||||||
|
@ -747,7 +748,7 @@ void glade_db_model_write_widget (GladeWidgetAdaptor * adaptor,
|
||||||
glade_property_write (prop, context, node);
|
glade_property_write (prop, context, node);
|
||||||
|
|
||||||
GWA_GET_CLASS (G_TYPE_OBJECT)->write_widget (adaptor, widget, context, node);
|
GWA_GET_CLASS (G_TYPE_OBJECT)->write_widget (adaptor, widget, context, node);
|
||||||
//FIXME
|
|
||||||
prop = glade_widget_get_property (widget, "links");
|
prop = glade_widget_get_property (widget, "links");
|
||||||
// Custom tag for the "links" property, e.g.:
|
// Custom tag for the "links" property, e.g.:
|
||||||
// <links>
|
// <links>
|
||||||
|
@ -794,7 +795,7 @@ void glade_db_model_write_widget (GladeWidgetAdaptor * adaptor,
|
||||||
}
|
}
|
||||||
|
|
||||||
prop = glade_widget_get_property (widget, "batch");
|
prop = glade_widget_get_property (widget, "batch");
|
||||||
// Custom tag for the "links" property, e.g.:
|
// Custom tag for the "batch" property, e.g.:
|
||||||
// <batch>
|
// <batch>
|
||||||
// <holder id="name" param="param1"/>
|
// <holder id="name" param="param1"/>
|
||||||
// </batch>
|
// </batch>
|
||||||
|
|
|
@ -55,18 +55,18 @@ static void glade_eprop_model_name_changed (GladeProject * project,
|
||||||
static GladeWidget * glade_model_create (GladeProperty * prop)
|
static GladeWidget * glade_model_create (GladeProperty * prop)
|
||||||
{
|
{
|
||||||
gboolean use = FALSE;
|
gboolean use = FALSE;
|
||||||
VnBatch * batch;
|
VnSet * batch;
|
||||||
GladeWidget * batch_w;
|
GladeWidget * batch_w;
|
||||||
GladeProject * project = glade_widget_get_project (glade_property_get_widget (prop));
|
GladeProject * project = glade_widget_get_project (glade_property_get_widget (prop));
|
||||||
const GList * l, * n, * objects = glade_project_get_objects (project);
|
const GList * l, * n, * objects = glade_project_get_objects (project);
|
||||||
|
|
||||||
for (n = objects; n; n = n->next)
|
for (n = objects; n; n = n->next)
|
||||||
if (VN_IS_BATCH (n->data))
|
if (VN_IS_SET (n->data))
|
||||||
{
|
{
|
||||||
batch = n->data;
|
batch = n->data;
|
||||||
use = TRUE;
|
use = TRUE;
|
||||||
|
|
||||||
for (l = vn_batch_get_objects (batch); l; l = l->next)
|
for (l = vn_set_get_objects (batch); l; l = l->next)
|
||||||
if (!DB_IS_MODEL (l->data))
|
if (!DB_IS_MODEL (l->data))
|
||||||
{
|
{
|
||||||
use = FALSE;
|
use = FALSE;
|
||||||
|
@ -80,7 +80,7 @@ static GladeWidget * glade_model_create (GladeProperty * prop)
|
||||||
if (!use)
|
if (!use)
|
||||||
{
|
{
|
||||||
batch_w = glade_command_create
|
batch_w = glade_command_create
|
||||||
(glade_widget_adaptor_get_by_type (VN_TYPE_BATCH), NULL, NULL, project);
|
(glade_widget_adaptor_get_by_type (VN_TYPE_SET), NULL, NULL, project);
|
||||||
glade_widget_set_name (batch_w, "models");
|
glade_widget_set_name (batch_w, "models");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -92,31 +92,21 @@ static GladeWidget * glade_model_create (GladeProperty * prop)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* glade_eprop_model_show_dialog:
|
* glade_eprop_model_show_dialog:
|
||||||
* @button:(allow-none): a #GtkButton or @NULL
|
* @button:(allow-none): a #GtkButton
|
||||||
* @object: a #GladeEditorPropery or a #GladeWidget
|
* @eprop: a #GladeEditorPropery
|
||||||
*
|
*
|
||||||
* Opens a dialog to edit a #DbModel.
|
* Opens the dialog to edit the properties of a #DbModel.
|
||||||
* Can be called by a #GladeEditorProperty or by the "edit" action of a
|
|
||||||
* #GladeWidgetAdaptor directly (in which case @button is %NULL and @obj is a
|
|
||||||
* #GladeWidget).
|
|
||||||
**/
|
**/
|
||||||
static void glade_eprop_model_show_dialog (GtkButton * button, GObject * object)
|
static void glade_eprop_model_show_dialog (GtkButton * button, GladeEditorProperty * eprop)
|
||||||
{
|
{
|
||||||
gboolean created = FALSE;
|
gboolean created = FALSE;
|
||||||
GObject * o;
|
|
||||||
GtkWidget * box;
|
GtkWidget * box;
|
||||||
GtkDialog * dialog;
|
GtkDialog * dialog;
|
||||||
GladeWidget * widget;
|
GladeWidget * widget;
|
||||||
GladeWidgetAdaptor * adaptor;
|
GladeWidgetAdaptor * adaptor;
|
||||||
GladeEditable * editor;
|
GladeEditable * editor;
|
||||||
GladeProperty * p = NULL;
|
GladeProperty * p = glade_editor_property_get_property (eprop);
|
||||||
GladeEditorProperty * eprop = NULL;
|
GObject * o = g_value_get_object (glade_property_inline_value (p));
|
||||||
|
|
||||||
if (GLADE_IS_EDITOR_PROPERTY (object))
|
|
||||||
{
|
|
||||||
eprop = GLADE_EDITOR_PROPERTY (object);
|
|
||||||
p = glade_editor_property_get_property (eprop);
|
|
||||||
o = g_value_get_object (glade_property_inline_value (p));
|
|
||||||
|
|
||||||
if (o && DB_IS_MODEL (o))
|
if (o && DB_IS_MODEL (o))
|
||||||
widget = glade_widget_get_from_gobject (o);
|
widget = glade_widget_get_from_gobject (o);
|
||||||
|
@ -148,16 +138,13 @@ static void glade_eprop_model_show_dialog (GtkButton * button, GObject * object)
|
||||||
GLADE_EPROP_MODEL (eprop)->connected = TRUE;
|
GLADE_EPROP_MODEL (eprop)->connected = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
widget = GLADE_WIDGET (object);
|
|
||||||
|
|
||||||
adaptor = glade_widget_get_adaptor (widget);
|
adaptor = glade_widget_get_adaptor (widget);
|
||||||
editor = glade_widget_adaptor_create_editable (adaptor, GLADE_PAGE_GENERAL);
|
editor = glade_widget_adaptor_create_editable (adaptor, GLADE_PAGE_GENERAL);
|
||||||
glade_editable_load (editor, widget);
|
glade_editable_load (editor, widget);
|
||||||
|
|
||||||
dialog = GTK_DIALOG (gtk_dialog_new_with_buttons
|
dialog = GTK_DIALOG (gtk_dialog_new_with_buttons
|
||||||
(eprop ? _("Model configuration") : _("Model properties configuration")
|
(_("Model configuration")
|
||||||
,GTK_WINDOW (glade_app_get_window ())
|
,GTK_WINDOW (glade_app_get_window ())
|
||||||
,GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
|
,GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT
|
||||||
,_("OK"), GTK_RESPONSE_OK
|
,_("OK"), GTK_RESPONSE_OK
|
||||||
|
@ -166,11 +153,7 @@ static void glade_eprop_model_show_dialog (GtkButton * button, GObject * object)
|
||||||
,NULL
|
,NULL
|
||||||
));
|
));
|
||||||
gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK);
|
gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK);
|
||||||
gtk_window_set_default_size (GTK_WINDOW (dialog), 400, 300);
|
gtk_window_set_default_size (GTK_WINDOW (dialog), 600, 500);
|
||||||
|
|
||||||
if (!eprop)
|
|
||||||
gtk_widget_hide (gtk_dialog_get_widget_for_response
|
|
||||||
(dialog, GTK_RESPONSE_REJECT));
|
|
||||||
|
|
||||||
box = gtk_alignment_new (0,0,1,1);
|
box = gtk_alignment_new (0,0,1,1);
|
||||||
gtk_alignment_set_padding (GTK_ALIGNMENT (box), 8, 8, 8, 8);
|
gtk_alignment_set_padding (GTK_ALIGNMENT (box), 8, 8, 8, 8);
|
||||||
|
@ -182,24 +165,16 @@ static void glade_eprop_model_show_dialog (GtkButton * button, GObject * object)
|
||||||
switch (gtk_dialog_run (dialog))
|
switch (gtk_dialog_run (dialog))
|
||||||
{
|
{
|
||||||
case GTK_RESPONSE_OK:
|
case GTK_RESPONSE_OK:
|
||||||
{
|
|
||||||
if (eprop)
|
|
||||||
{
|
{
|
||||||
gtk_entry_set_text (GTK_ENTRY (GLADE_EPROP_MODEL (eprop)->entry),
|
gtk_entry_set_text (GTK_ENTRY (GLADE_EPROP_MODEL (eprop)->entry),
|
||||||
glade_widget_get_name (widget));
|
glade_widget_get_name (widget));
|
||||||
GLADE_EPROP_MODEL (eprop)->widget = widget;
|
GLADE_EPROP_MODEL (eprop)->widget = widget;
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GTK_RESPONSE_REJECT:
|
case GTK_RESPONSE_REJECT:
|
||||||
{
|
|
||||||
if (eprop)
|
|
||||||
{
|
{
|
||||||
glade_command_set_property (p, NULL);
|
glade_command_set_property (p, NULL);
|
||||||
GLADE_EPROP_MODEL (eprop)->widget = NULL;
|
GLADE_EPROP_MODEL (eprop)->widget = NULL;
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GTK_RESPONSE_CANCEL:
|
case GTK_RESPONSE_CANCEL:
|
||||||
|
@ -209,8 +184,8 @@ static void glade_eprop_model_show_dialog (GtkButton * button, GObject * object)
|
||||||
GList * list = g_list_append (NULL, widget);
|
GList * list = g_list_append (NULL, widget);
|
||||||
GladeWidget * batch = glade_widget_get_parent (widget);
|
GladeWidget * batch = glade_widget_get_parent (widget);
|
||||||
|
|
||||||
if (vn_batch_get_length
|
if (vn_set_get_length
|
||||||
VN_BATCH (glade_widget_get_object (batch)) == 1)
|
VN_SET (glade_widget_get_object (batch)) == 1)
|
||||||
list = g_list_prepend (list, batch);
|
list = g_list_prepend (list, batch);
|
||||||
|
|
||||||
glade_command_delete (list);
|
glade_command_delete (list);
|
||||||
|
|
|
@ -17,36 +17,36 @@
|
||||||
|
|
||||||
#include "glade-vn.h"
|
#include "glade-vn.h"
|
||||||
|
|
||||||
void glade_vn_batch_add_child (GladeWidgetAdaptor * adaptor,
|
void glade_vn_set_add_child (GladeWidgetAdaptor * adaptor,
|
||||||
VnBatch * group, GObject * child)
|
VnSet * group, GObject * child)
|
||||||
{
|
{
|
||||||
if (G_IS_OBJECT (child))
|
if (G_IS_OBJECT (child))
|
||||||
vn_batch_add (group, child);
|
vn_set_add (group, child);
|
||||||
}
|
}
|
||||||
|
|
||||||
void glade_vn_batch_remove_child (GladeWidgetAdaptor * adaptor,
|
void glade_vn_set_remove_child (GladeWidgetAdaptor * adaptor,
|
||||||
VnBatch * group, GObject * child)
|
VnSet * group, GObject * child)
|
||||||
{
|
{
|
||||||
if (G_IS_OBJECT (child))
|
if (G_IS_OBJECT (child))
|
||||||
vn_batch_remove (group, child);
|
vn_set_remove (group, child);
|
||||||
}
|
}
|
||||||
|
|
||||||
void glade_vn_batch_replace_child (GladeWidgetAdaptor * adaptor,
|
void glade_vn_set_replace_child (GladeWidgetAdaptor * adaptor,
|
||||||
GObject * container, GObject * current, GObject * new)
|
GObject * container, GObject * current, GObject * new)
|
||||||
{
|
{
|
||||||
VnBatch * group = VN_BATCH (container);
|
VnSet * group = VN_SET (container);
|
||||||
glade_vn_batch_remove_child (adaptor, group, current);
|
glade_vn_set_remove_child (adaptor, group, current);
|
||||||
glade_vn_batch_add_child (adaptor, group, new);
|
glade_vn_set_add_child (adaptor, group, new);
|
||||||
}
|
}
|
||||||
|
|
||||||
GList * glade_vn_batch_get_children (GladeWidgetAdaptor * adaptor,
|
GList * glade_vn_set_get_children (GladeWidgetAdaptor * adaptor,
|
||||||
VnBatch * group)
|
VnSet * group)
|
||||||
{
|
{
|
||||||
return vn_batch_get_objects_list (group);
|
return vn_set_get_objects_list (group);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean glade_vn_batch_add_verify (GladeWidgetAdaptor * adaptor,
|
gboolean glade_vn_set_add_verify (GladeWidgetAdaptor * adaptor,
|
||||||
VnBatch * container, GObject * child, gboolean user_feedback)
|
VnSet * container, GObject * child, gboolean user_feedback)
|
||||||
{
|
{
|
||||||
if (G_IS_OBJECT (child))
|
if (G_IS_OBJECT (child))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2013 - Juan Ferrer Toribio
|
||||||
|
*
|
||||||
|
* This program 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.
|
||||||
|
*
|
||||||
|
* 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "glade-vn.h"
|
||||||
|
|
||||||
|
void glade_vn_set_add_child (GladeWidgetAdaptor * adaptor,
|
||||||
|
VnSet * group, GObject * child)
|
||||||
|
{
|
||||||
|
if (G_IS_OBJECT (child))
|
||||||
|
vn_set_add (group, child);
|
||||||
|
}
|
||||||
|
|
||||||
|
void glade_vn_set_remove_child (GladeWidgetAdaptor * adaptor,
|
||||||
|
VnSet * group, GObject * child)
|
||||||
|
{
|
||||||
|
if (G_IS_OBJECT (child))
|
||||||
|
vn_set_remove (group, child);
|
||||||
|
}
|
||||||
|
|
||||||
|
void glade_vn_set_replace_child (GladeWidgetAdaptor * adaptor,
|
||||||
|
GObject * container, GObject * current, GObject * new)
|
||||||
|
{
|
||||||
|
VnSet * group = VN_SET (container);
|
||||||
|
glade_vn_set_remove_child (adaptor, group, current);
|
||||||
|
glade_vn_set_add_child (adaptor, group, new);
|
||||||
|
}
|
||||||
|
|
||||||
|
GList * glade_vn_set_get_children (GladeWidgetAdaptor * adaptor,
|
||||||
|
VnSet * group)
|
||||||
|
{
|
||||||
|
return vn_set_get_objects_list (group);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean glade_vn_set_add_verify (GladeWidgetAdaptor * adaptor,
|
||||||
|
VnSet * container, GObject * child, gboolean user_feedback)
|
||||||
|
{
|
||||||
|
if (G_IS_OBJECT (child))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (user_feedback)
|
||||||
|
{
|
||||||
|
GladeWidgetAdaptor * object_adaptor =
|
||||||
|
glade_widget_adaptor_get_by_type (G_TYPE_OBJECT);
|
||||||
|
|
||||||
|
glade_util_ui_message (glade_app_get_window ()
|
||||||
|
,GLADE_UI_INFO
|
||||||
|
,NULL
|
||||||
|
,"Only objects of type %s can be added to objects of type %s."
|
||||||
|
,glade_widget_adaptor_get_name (object_adaptor)
|
||||||
|
,glade_widget_adaptor_get_name (adaptor)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
14
glade/vn.xml
14
glade/vn.xml
|
@ -193,12 +193,12 @@
|
||||||
<glade-widget-class name="VnCalendar" generic-name="calendar" title="Date Field" icon-name="widget-gtk-calendar"/>
|
<glade-widget-class name="VnCalendar" generic-name="calendar" title="Date Field" icon-name="widget-gtk-calendar"/>
|
||||||
<glade-widget-class name="VnDateChooser" generic-name="date-chooser" title="Date Chooser" icon-name="widget-gtk-calendar"/>
|
<glade-widget-class name="VnDateChooser" generic-name="date-chooser" title="Date Chooser" icon-name="widget-gtk-calendar"/>
|
||||||
|
|
||||||
<glade-widget-class name="VnBatch" generic-name="batch" toplevel="True" title="Group of objects" icon-name="widget-gtk-vbuttonbox">
|
<glade-widget-class name="VnSet" generic-name="set" toplevel="True" title="Group of objects" icon-name="widget-gtk-vbuttonbox">
|
||||||
<add-child-function>glade_vn_batch_add_child</add-child-function>
|
<add-child-function>glade_vn_set_add_child</add-child-function>
|
||||||
<remove-child-function>glade_vn_batch_remove_child</remove-child-function>
|
<remove-child-function>glade_vn_set_remove_child</remove-child-function>
|
||||||
<replace-child-function>glade_vn_batch_replace_child</replace-child-function>
|
<replace-child-function>glade_vn_set_replace_child</replace-child-function>
|
||||||
<get-children-function>glade_vn_batch_get_children</get-children-function>
|
<get-children-function>glade_vn_set_get_children</get-children-function>
|
||||||
<add-child-verify-function>glade_vn_batch_add_verify</add-child-verify-function>
|
<add-child-verify-function>glade_vn_set_add_verify</add-child-verify-function>
|
||||||
</glade-widget-class>
|
</glade-widget-class>
|
||||||
</glade-widget-classes>
|
</glade-widget-classes>
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@
|
||||||
</glade-widget-group>
|
</glade-widget-group>
|
||||||
|
|
||||||
<glade-widget-group name="vn-toplevels" title="Data Widgets">
|
<glade-widget-group name="vn-toplevels" title="Data Widgets">
|
||||||
<glade-widget-class-ref name="VnBatch"/>
|
<glade-widget-class-ref name="VnSet"/>
|
||||||
<glade-widget-class-ref name="VnHandler"/>
|
<glade-widget-class-ref name="VnHandler"/>
|
||||||
<glade-widget-class-ref name="VnEntry"/>
|
<glade-widget-class-ref name="VnEntry"/>
|
||||||
<glade-widget-class-ref name="VnLabel"/>
|
<glade-widget-class-ref name="VnLabel"/>
|
||||||
|
|
|
@ -16,6 +16,7 @@ vn_include_HEADERS = \
|
||||||
vn-grid-model.h \
|
vn-grid-model.h \
|
||||||
vn-grid.h \
|
vn-grid.h \
|
||||||
vn-handler.h \
|
vn-handler.h \
|
||||||
|
vn-set.h \
|
||||||
vn-batch.h \
|
vn-batch.h \
|
||||||
field/field.h \
|
field/field.h \
|
||||||
column/column.h
|
column/column.h
|
||||||
|
@ -42,7 +43,7 @@ libvn_files = \
|
||||||
vn-grid-model.c \
|
vn-grid-model.c \
|
||||||
vn-grid.c \
|
vn-grid.c \
|
||||||
vn-handler.c \
|
vn-handler.c \
|
||||||
vn-batch.c
|
vn-set.c
|
||||||
glade_files = \
|
glade_files = \
|
||||||
$(top_srcdir)/vn/glade/vn-iterator.h \
|
$(top_srcdir)/vn/glade/vn-iterator.h \
|
||||||
$(top_srcdir)/vn/glade/vn-iterator.c \
|
$(top_srcdir)/vn/glade/vn-iterator.c \
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "vn-form.h"
|
#include "vn-form.h"
|
||||||
#include "vn-batch.h"
|
#include "vn-set.h"
|
||||||
|
|
||||||
G_DEFINE_ABSTRACT_TYPE (VnForm, vn_form, GTK_TYPE_ALIGNMENT);
|
G_DEFINE_ABSTRACT_TYPE (VnForm, vn_form, GTK_TYPE_ALIGNMENT);
|
||||||
|
|
||||||
|
@ -43,15 +43,15 @@ void vn_form_open (VnForm * obj)
|
||||||
if (gtk_builder_add_from_file (obj->builder, file, &err))
|
if (gtk_builder_add_from_file (obj->builder, file, &err))
|
||||||
{
|
{
|
||||||
const GList * m;
|
const GList * m;
|
||||||
VnBatch * models = VN_BATCH (gtk_builder_get_object (obj->builder, "models"));
|
VnSet * models = VN_SET (gtk_builder_get_object (obj->builder, "models"));
|
||||||
|
|
||||||
if (models)
|
if (models)
|
||||||
for (m = vn_batch_get_objects (models); m; m = m->next)
|
for (m = vn_set_get_objects (models); m; m = m->next)
|
||||||
db_model_set_conn (m->data, obj->conn);
|
db_model_set_conn (m->data, obj->conn);
|
||||||
|
|
||||||
gtk_builder_connect_signals (obj->builder, obj);
|
gtk_builder_connect_signals (obj->builder, obj);
|
||||||
|
|
||||||
VN_FORM_GET_CLASS (obj)->open (obj, obj->builder, NULL);
|
VN_FORM_GET_CLASS (obj)->open (obj);
|
||||||
gtk_container_add (GTK_CONTAINER (obj), vn_form_get (obj, "main"));
|
gtk_container_add (GTK_CONTAINER (obj), vn_form_get (obj, "main"));
|
||||||
gtk_widget_show_all (GTK_WIDGET (obj));
|
gtk_widget_show_all (GTK_WIDGET (obj));
|
||||||
|
|
||||||
|
|
10
vn/vn-form.h
10
vn/vn-form.h
|
@ -32,8 +32,8 @@ typedef struct _VnFormClass VnFormClass;
|
||||||
|
|
||||||
typedef GType (* VnFormGetTypeFunc) ();
|
typedef GType (* VnFormGetTypeFunc) ();
|
||||||
typedef void (* VnFormOpenFunc) (VnForm * obj, GtkBuilder * builder, gpointer user_data);
|
typedef void (* VnFormOpenFunc) (VnForm * obj, GtkBuilder * builder, gpointer user_data);
|
||||||
/*typedef void (* VnFormActivateFunc) (VnForm * obj);
|
typedef void (* VnFormActivateFunc) (VnForm * obj);
|
||||||
typedef void (* VnFormDeactivateFunc) (VnForm * obj);*/
|
typedef void (* VnFormDeactivateFunc) (VnForm * obj);
|
||||||
|
|
||||||
struct _VnForm
|
struct _VnForm
|
||||||
{
|
{
|
||||||
|
@ -57,10 +57,10 @@ struct _VnFormClass
|
||||||
{
|
{
|
||||||
GtkAlignmentClass parent;
|
GtkAlignmentClass parent;
|
||||||
/*< public >*/
|
/*< public >*/
|
||||||
void (* open) (VnForm * obj, GtkBuilder * builder, gpointer user_data);
|
void (* open) (VnForm * obj);
|
||||||
const GActionEntry * (* get_actions) (VnForm * obj, gint * size);
|
const GActionEntry * (* get_actions) (VnForm * obj, gint * size);
|
||||||
/* void (* activate) (VnForm * obj);
|
void (* activate) (VnForm * obj);
|
||||||
void (* deactivate) (VnForm * obj);*/
|
void (* deactivate) (VnForm * obj);
|
||||||
};
|
};
|
||||||
|
|
||||||
GType vn_form_get_type ();
|
GType vn_form_get_type ();
|
||||||
|
|
|
@ -0,0 +1,149 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2012 - Juan Ferrer Toribio
|
||||||
|
*
|
||||||
|
* This program 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.
|
||||||
|
*
|
||||||
|
* 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "vn-set.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION: vn-set
|
||||||
|
* @Short_description: a group of objects
|
||||||
|
* @Title: VnSet
|
||||||
|
*
|
||||||
|
* A group of GObjects.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void vn_set_buildable_interface_init (GtkBuildableIface * iface);
|
||||||
|
|
||||||
|
G_DEFINE_TYPE_WITH_CODE (VnSet, vn_set, G_TYPE_OBJECT,
|
||||||
|
G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE,
|
||||||
|
vn_set_buildable_interface_init)
|
||||||
|
);
|
||||||
|
|
||||||
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Methods
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vn_set_add:
|
||||||
|
* @obj: a #VnSet
|
||||||
|
* @child: a #GObject
|
||||||
|
*
|
||||||
|
* Adds a child identified whith @id to the group.
|
||||||
|
**/
|
||||||
|
void vn_set_add (VnSet * obj, GObject * child)
|
||||||
|
{
|
||||||
|
g_return_if_fail (VN_IS_SET (obj));
|
||||||
|
g_return_if_fail (G_IS_OBJECT (child));
|
||||||
|
|
||||||
|
obj->objects = g_list_prepend (obj->objects, child);
|
||||||
|
obj->count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vn_set_remove:
|
||||||
|
* @obj: a #VnSet
|
||||||
|
* @child: a #GObject contained by @obj
|
||||||
|
*
|
||||||
|
* Removes a child from the group.
|
||||||
|
**/
|
||||||
|
void vn_set_remove (VnSet * obj, GObject * child)
|
||||||
|
{
|
||||||
|
g_return_if_fail (VN_IS_SET (obj));
|
||||||
|
|
||||||
|
obj->objects = g_list_remove (obj->objects, child);
|
||||||
|
obj->count--;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vn_set_get_objects_list:
|
||||||
|
* @obj: a #VnSet
|
||||||
|
*
|
||||||
|
* Returns all the #GObject<!-- -->s in @obj, copying the list. This method is
|
||||||
|
* mainly for internal use, use vn_set_get_objects() instead if you don't need
|
||||||
|
* to do further use of the list of objects.
|
||||||
|
*
|
||||||
|
* Return value: (transfer container) (element-type GObject): a #GList with all
|
||||||
|
* the objects, that must be freed with #g_list_free
|
||||||
|
**/
|
||||||
|
GList * vn_set_get_objects_list (VnSet * obj)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (VN_IS_SET (obj), NULL);
|
||||||
|
|
||||||
|
return g_list_copy (obj->objects);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vn_set_get_objects:
|
||||||
|
* @obj: a #VnSet
|
||||||
|
*
|
||||||
|
* Returns all the #GObject<!-- -->s in @obj.
|
||||||
|
*
|
||||||
|
* Return value: (transfer none) (element-type GObject): a #GList with all
|
||||||
|
* the objects, that must not be freed
|
||||||
|
**/
|
||||||
|
const GList * vn_set_get_objects (VnSet * obj)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (VN_IS_SET (obj), NULL);
|
||||||
|
|
||||||
|
return obj->objects;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vn_set_get_length:
|
||||||
|
* @obj: a #VnSet
|
||||||
|
*
|
||||||
|
* Returns the number of childs currently contained in @obj.
|
||||||
|
*
|
||||||
|
* Return value: the number of childs
|
||||||
|
**/
|
||||||
|
guint vn_set_get_length (VnSet * obj)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (VN_IS_SET (obj), 0);
|
||||||
|
|
||||||
|
return obj->count;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void vn_set_buildable_add_child (GtkBuildable * obj,
|
||||||
|
GtkBuilder * builder, GObject * child, const gchar * type)
|
||||||
|
{
|
||||||
|
vn_set_add (VN_SET (obj), child);
|
||||||
|
}
|
||||||
|
|
||||||
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Class
|
||||||
|
|
||||||
|
static void vn_set_init (VnSet * obj)
|
||||||
|
{
|
||||||
|
obj->objects = NULL;
|
||||||
|
obj->count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void vn_set_finalize (VnSet * obj)
|
||||||
|
{
|
||||||
|
GObjectClass * parent = g_type_class_peek_parent (VN_SET_GET_CLASS (obj));
|
||||||
|
|
||||||
|
g_list_free (obj->objects);
|
||||||
|
|
||||||
|
parent->finalize (G_OBJECT (obj));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void vn_set_class_init (VnSetClass * klass)
|
||||||
|
{
|
||||||
|
GObjectClass * k = G_OBJECT_CLASS (klass);
|
||||||
|
k->finalize = (GObjectFinalizeFunc) vn_set_finalize;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void vn_set_buildable_interface_init (GtkBuildableIface * iface)
|
||||||
|
{
|
||||||
|
iface->add_child = vn_set_buildable_add_child;
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2012 - Juan Ferrer Toribio
|
||||||
|
*
|
||||||
|
* This program 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.
|
||||||
|
*
|
||||||
|
* 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef VN_SET_H
|
||||||
|
#define VN_SET_H
|
||||||
|
|
||||||
|
#include <db/db.h>
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
#define VN_TYPE_SET (vn_set_get_type ())
|
||||||
|
#define VN_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, VN_TYPE_SET, VnSet))
|
||||||
|
#define VN_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, VN_TYPE_SET))
|
||||||
|
#define VN_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST (klass, VN_TYPE_SET, VnSetClass))
|
||||||
|
#define VN_IS_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE (klass, VN_TYPE_SET))
|
||||||
|
#define VN_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS (obj, VN_TYPE_SET, VnSetClass))
|
||||||
|
|
||||||
|
typedef struct _VnSet VnSet;
|
||||||
|
typedef struct _VnSetClass VnSetClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* VnSet:
|
||||||
|
* @objects: (element-type GObject):
|
||||||
|
**/
|
||||||
|
struct _VnSet
|
||||||
|
{
|
||||||
|
GObject parent;
|
||||||
|
GList * objects;
|
||||||
|
guint count;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _VnSetClass
|
||||||
|
{
|
||||||
|
GObjectClass parent;
|
||||||
|
};
|
||||||
|
|
||||||
|
GType vn_set_get_type ();
|
||||||
|
|
||||||
|
void vn_set_add (VnSet * obj
|
||||||
|
,GObject * child);
|
||||||
|
void vn_set_remove (VnSet * obj
|
||||||
|
,GObject * child);
|
||||||
|
const GList * vn_set_get_objects (VnSet * obj);
|
||||||
|
GList * vn_set_get_objects_list (VnSet * obj);
|
||||||
|
guint vn_set_get_length (VnSet * obj);
|
||||||
|
|
||||||
|
#endif
|
2
vn/vn.h
2
vn/vn.h
|
@ -27,7 +27,7 @@
|
||||||
#include "vn-gui.h"
|
#include "vn-gui.h"
|
||||||
#include "vn-mod.h"
|
#include "vn-mod.h"
|
||||||
#include "vn-form.h"
|
#include "vn-form.h"
|
||||||
#include "vn-batch.h"
|
#include "vn-set.h"
|
||||||
#include "vn-field.h"
|
#include "vn-field.h"
|
||||||
#include "vn-column.h"
|
#include "vn-column.h"
|
||||||
#include "field/field.h"
|
#include "field/field.h"
|
||||||
|
|
Reference in New Issue