/* Dia -- a diagram creation/manipulation program * Copyright (C) 1998 Alexander Larsson * * Property system for dia objects/shapes. * Copyright (C) 2000 James Henstridge * Copyright (C) 2001 Cyrille Chepelov * Major restructuration done in August 2001 by C. Chepelov * * propinternals.h: prototypes for routines which might be of use to other * sections of the property support code (but whose use by external code is * strongly discouraged !) * * 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 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef PROPINTERNALS_H #define PROPINTERNALS_H #include #include #include "properties.h" /* **after** gtk.h, please */ /* returns TRUE if two property descriptors describe properties which can be merged. */ gboolean propdescs_can_be_merged(const PropDescription *p1, const PropDescription *p2); /* returns FALSE if error is set cause of messed up format */ gboolean prop_list_load(GPtrArray *props, DataNode data, DiaContext *ctx); void prop_list_save(GPtrArray *props, DataNode data, DiaContext *ctx); #define struct_member(sp, off, tp) (*(tp *)(((char *)sp) + off)) Property *find_prop_by_name(const GPtrArray *props, const gchar *name); Property *find_prop_by_name_and_type(const GPtrArray *props, const gchar *name, PropertyType type); /* ************************ */ /* Property dialog methods */ /* Add a widget without a title. This will restart a new title+widget table afterwards. */ void prop_dialog_add_raw(PropDialog *dialog, GtkWidget *widget); void prop_dialog_add_raw_with_flags(PropDialog *dialog, GtkWidget *widget, gboolean expand, gboolean fill); /* Register a new container widget (which won't be automatically added) */ void prop_dialog_container_push(PropDialog *dialog, GtkWidget *container); /* De-register the last container of the stack. */ GtkWidget *prop_dialog_container_pop(PropDialog *dialog); void prop_dialog_add_property(PropDialog *dialog, Property *prop); PropDialog *prop_dialog_new(GList *objects, gboolean is_default); PropDialog *prop_dialog_from_widget(GtkWidget *dialog_widget); void prop_dialog_destroy(PropDialog *dialog); void prop_get_data_from_widgets(PropDialog *dialog); WIDGET *prop_dialog_get_widget(const PropDialog *dialog); void prophandler_connect(const Property *prop, GObject *object, const gchar *signal); /* Stuff in propoffsets.c: */ void prop_offset_list_calculate_quarks(PropOffset *offsets); void do_set_props_from_offsets(void *base, GPtrArray *props, const PropOffset *offsets); void do_get_props_from_offsets(void *base, GPtrArray *props, const PropOffset *offsets); #include "prop_basic.h" #include "prop_inttypes.h" #include "prop_geomtypes.h" #include "prop_attr.h" #include "prop_text.h" #include "prop_widgets.h" #include "prop_sdarray.h" #include "prop_dict.h" #include "prop_pattern.h" #include "prop_pixbuf.h" #include "prop_matrix.h" #endif /* PROPINTERNALS_H */