[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: UrShape: Definition by controversy



The "normal" UrContainer should have just layout behaviors same as the
Drag n' Drop ones without allowing Drag n' Drop.  Perhaps we should make
DnD an attribute instead of a separate type of container.  A note on
HORIZANTAL_ARRAY, VERTICAL_ARRAY containers.  Perhaps these should be VBOX
and HBOX to correspond to Gtk+ containers of which they take the same
behaviors from.  Arrays should be introduced during the scripting phase.
I will look at the code this weekend and comment more.  Any luck with
CVS?  Worse comes to worse we can always start a sourceforge project and
then send patches to the core team.  Give me a month and I will be able to
start contributing code. I hate not having the T3 connection I had at
school.  What happened to the other guys?  The world will never know.
Hehe.

-J5

Andre Kloss wrote:

> Hi again.
>
> I'm running out of time as well as motivation and, worst of all,
> ideas. Ok, let's see, what we have now:
>
> I need some Callback that a dragged UrShape can perform in order to
> interact somehow with the UrContainer. The source for the UrShape
> side of this functionality should read like this:
>
> if (IS_IN(myself, container->bounding_box) && !isOver) {
>   isOver = TRUE; /* Perform this once */
>   container->behaviour->isOver(container, myself); /* interact */
> }
>
> Same goes for isOut and isDropped. I'm not sure yet if the select
> callback belongs to the container or the UrShape, but well, here we
> are - for now.
>
> I still have no clue about the "normal" UrContainer Behaviour. If
> someone could enlighten this to me, I would be able to think further
> in that direction.
>
> 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 _UrContainerBehaviour UrContainerBehaviour;
> typedef struct _UrContainer UrContainer;
> typedef struct _UrShape UrShape;
>
> enum _UrContainerType {
>   SINGLE,
>   HORIZANTAL_ARRAY,
>   VERTICAL_ARRAY,
>   TABLE
> };
>
> struct _UrContainerBehaviour {
>   void (isOver)(UrContainer *myself, UrShape *other);
>   void (isOut)(UrContainer *myself, UrShape *other);
>   void (isDropped)(UrContainer *myself, UrShape *other);
>   void (select)(UrContainer *myself);
> /* YOUR PROPOSAL GOES HERE */
> }
>
> struct _UrContainer {
>   UrContainerType type; /* Is it a Simple-/Array- or
>                            Table-Container? */
>   UrContainerBehaviour behaviour; /* To discriminate behaviour */
>
>   /* (Dynamic) geometry stuff */
>   Rectangle *bounding_box;
>   GList *rows;          /* The left border of rows */
>   GList *columns;       /* The upper border of columns */
> }
>
> struct _UrShape {
>   Element element;      /* Inheritance (C sometimes sucks ;) */
>
>   /* 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





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] Mail converted by Mofo Magic and the Flying D

 
All trademarks and copyrights are the property of their respective owners.

Other Directory Sites: SeekWonder | Directory Owners Forum

GuideSMACK