[no subject]
In
element.h, I find the following:
void element_update_handles(Element *elem);
/* What does this do? */
void element_update_boundingbox(Element *elem);
/* What does that do? */
void element_init(Element *elem, int num_handles,
int num_connections);
void element_destroy(Element *elem);
void element_copy(Element *from, Element *to);
void element_move_handle(Element *elem, HandleId id,
Point *to, HandleMoveReason reason);
/* Here goes much functionality. How to implement standard
behaviour? (As described in Part III) */
void element_move_handle_aspect(Element *elem, HandleId id,
Point *to, real aspect_ratio);
/* Why this? Does this differ from move_handle? Do we need it? */
void element_save(Element *elem, ObjectNode obj_node);
void element_load(Element *elem, ObjectNode obj_node);
/* This certainly belongs to the parser, right? It seems that this
relies on DOM to work. How to integrate SAX here? */
/* Do we have to implement more stuff? If so, what stuff? How much
and what code can we C&P from custom shapes? */
I'm glad you've read this far. If you know some answers, please post.
I hope we can go into the implementation once these Qs are answered.
cu Andre
8<-----------------------------UrShape.h--------------------->8
/* urshape.h : defining the generic UrShape */
#ifndef URSHAPE_H
#define URSHAPE_H
#include "element.h"
/* What else has to be included? */
typedef enum _UrContainerType UrContainerType;
typedef struct _UrContainer UrContainer;
typedef struct _UrShape UrShape;
enum _UrContainerType {
SINGLE,
HORIZANTAL_ARRAY,
VERTICAL_ARRAY,
TABLE
};
struct _UrContainer {
Point relative_position;
UrContainerType type; /* This will define behaviour */
GList *rows; /* The left border of rows */
GList *columns; /* The upper border of columns */
}
struct _UrShape {
Element element; /* Inheritance (C sometimes sucks ;) */
This is why I want to use GObject since it brings OO to C in a more
complete manner well, more standardized (by GTK+) manner. I guess we can
wait until the rest of Dia moves to GObject and GTK 2.0 compliance.
/* UrShape container stuff */
UrContainer *embedding; /* NULL if free,
"parent's" container else */
int row,column; /* For all but SINGLE, it'll be nice to know in what
row/column the UrShape is embedded. */
GList *childrenContainers; /* The containers I have */
/* The miniDOM. Thanx to Cyrille, now it _is_ mini. */
UrShape *parent_shape;
GList *self; /* this->self->data == this */
GList *children; /* (this->children->data->parent_shape == this ||
this->children == NULL) */
};
#endif
_______________________________________________
Dia-list mailing list
Dia-list gnome org
http://mail.gnome.org/mailman/listinfo/dia-list
--J5
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]