[dia] [flowchart] : implement "text fitting" algorithms



commit 7820801e0f8ec4359b2d8098f92528d567482149
Author: Hans Breuer <hans breuer org>
Date:   Sun Aug 22 20:27:00 2010 +0200

    [flowchart] : implement "text fitting" algorithms
    
    To easily get evenly sized *small* Flowchart shapes
    choose _Text fitting: Never_. To get shapes snap to
    the text bounding box use _Text fitting: Always_
    (see bug 318182).
    To get stay with the old algorithm use
    _Text fitting: When Needed_

 lib/dia-enums.h                   |    5 +
 lib/properties.c                  |    7 +
 lib/properties.h                  |   12 +
 objects/flowchart/box.c           |   29 ++-
 objects/flowchart/diamond.c       |   21 ++-
 objects/flowchart/ellipse.c       |   20 ++-
 objects/flowchart/parallelogram.c |   27 ++-
 samples/la-removal-flowchart.dia  |  626 +++++++++++++++++++++++++++++--------
 8 files changed, 604 insertions(+), 143 deletions(-)
---
diff --git a/lib/dia-enums.h b/lib/dia-enums.h
index 1638892..95837ac 100644
--- a/lib/dia-enums.h
+++ b/lib/dia-enums.h
@@ -31,4 +31,9 @@ typedef enum {
   ALIGN_RIGHT
 } Alignment;
 
+typedef enum {
+  TEXTFIT_NEVER,
+  TEXTFIT_WHEN_NEEDED,
+  TEXTFIT_ALWAYS
+} TextFitting;
 #endif
diff --git a/lib/properties.c b/lib/properties.c
index ce568ba..cc03823 100644
--- a/lib/properties.c
+++ b/lib/properties.c
@@ -68,6 +68,13 @@ PropEnumData prop_std_text_align_data[] = {
   { N_("Right"), ALIGN_RIGHT },
   { NULL, 0 }
 };
+/* how the text box interacts with it's containing shape */
+PropEnumData prop_std_text_fitting_data[] = {
+  { N_("Never"), TEXTFIT_NEVER },
+  { N_("When Needed"), TEXTFIT_WHEN_NEEDED },
+  { N_("Always"), TEXTFIT_ALWAYS },
+  { NULL, 0 }
+};
 PropEnumData prop_std_line_join_data[] = {
   { N_("Miter"), LINEJOIN_MITER },
   { N_("Round"), LINEJOIN_ROUND },
diff --git a/lib/properties.h b/lib/properties.h
index 9b1c401..a5194af 100644
--- a/lib/properties.h
+++ b/lib/properties.h
@@ -478,6 +478,12 @@ static PropEnumData prop_std_text_align_data[] = {
   { N_("Right"), ALIGN_RIGHT },
   { NULL, 0 }
 };
+static PropEnumData prop_std_text_fitting_data[] = {
+  { N_("Never"), TEXTFIT_NEVER },
+  { N_("When Needed"), TEXTFIT_WHEN_NEEDED },
+  { N_("Always"), TEXTFIT_ALWAYS },
+  { NULL, 0 }
+};
 static PropEnumData prop_std_line_join_data[] = {
   { N_("Miter"), LINEJOIN_MITER },
   { N_("Round"), LINEJOIN_ROUND },
@@ -493,6 +499,7 @@ static PropEnumData prop_std_line_caps_data[] = {
 #else
 extern PropNumData prop_std_line_width_data, prop_std_text_height_data;
 extern PropEnumData prop_std_text_align_data[];
+extern PropEnumData prop_std_text_fitting_data[];
 extern PropEnumData prop_std_line_join_data[];
 extern PropEnumData prop_std_line_caps_data[];
 #endif
@@ -583,6 +590,11 @@ extern PropEnumData prop_std_line_caps_data[];
 #define PROP_STD_TEXT_COLOUR_OPTIONAL \
         PROP_STD_TEXT_COLOUR_OPTIONS(PROP_FLAG_VISIBLE|PROP_FLAG_DONT_SAVE|PROP_FLAG_STANDARD|PROP_FLAG_OPTIONAL)
 
+#define PROP_STDNAME_TEXT_FITTING "text_fitting"
+#define PROP_STD_TEXT_FITTING \
+  { PROP_STDNAME_TEXT_FITTING, PROP_TYPE_ENUM, PROP_FLAG_VISIBLE|PROP_FLAG_OPTIONAL, \
+    N_("Text fitting"), NULL, prop_std_text_fitting_data }
+
 /* Convenience macros */
 #define PROP_NOTEBOOK_BEGIN(name) \
   { "nbook_" name, PROP_TYPE_NOTEBOOK_BEGIN, \
diff --git a/objects/flowchart/box.c b/objects/flowchart/box.c
index 5e91d8a..8a16a89 100644
--- a/objects/flowchart/box.c
+++ b/objects/flowchart/box.c
@@ -70,6 +70,8 @@ struct _Box {
   Text *text;
   TextAttributes attrs;
   real padding;
+
+  TextFitting text_fitting;
 };
 
 typedef struct _BoxProperties {
@@ -156,6 +158,7 @@ static PropDescription box_props[] = {
   PROP_STD_TEXT_HEIGHT,
   PROP_STD_TEXT_COLOUR,
   PROP_STD_TEXT_ALIGNMENT,
+  PROP_STD_TEXT_FITTING,
   PROP_STD_SAVED_TEXT,
   
   { NULL, 0, 0, NULL, NULL, NULL, 0}
@@ -184,6 +187,7 @@ static PropOffset box_offsets[] = {
   {PROP_STDNAME_TEXT_HEIGHT,PROP_STDTYPE_TEXT_HEIGHT,offsetof(Box,attrs.height)},
   {"text_colour",PROP_TYPE_COLOUR,offsetof(Box,attrs.color)},
   {"text_alignment",PROP_TYPE_ENUM,offsetof(Box,attrs.alignment)},
+  {PROP_STDNAME_TEXT_FITTING,PROP_TYPE_ENUM,offsetof(Box,text_fitting)},
   { NULL, 0, 0 },
 };
 
@@ -457,10 +461,16 @@ box_update_data(Box *box, AnchorShape horiz, AnchorShape vert)
    *  If elem->width (e.g. the new requested dimensions of this object
    *  from move_handle()) is smaller than the minimum width (i.e. the
    *  width calculated from text-width, padding and border), then
-   *  set the width to the minimum.  Else, keep the width.
+   *  set the width to the minimum.  Or else;)
    */
-  if (width > elem->width) elem->width = width;
-  if (height > elem->height) elem->height = height;
+  if (box->text_fitting != TEXTFIT_NEVER) {
+    if (   box->text_fitting == TEXTFIT_ALWAYS
+        || width > elem->width)
+      elem->width = width;
+    if (   box->text_fitting == TEXTFIT_ALWAYS
+        || height > elem->height)
+      elem->height = height;
+  }
 
   /* move shape if necessary ... */
   switch (horiz) {
@@ -638,6 +648,9 @@ box_create(Point *startpoint,
   text_get_attributes(box->text,&box->attrs);
   dia_font_unref(font);
   
+  /* new default: let the user decide the size */
+  box->text_fitting = TEXTFIT_ALWAYS;
+
   element_init(elem, 8, NUM_CONNECTIONS);
 
   for (i=0;i<NUM_CONNECTIONS;i++) {
@@ -698,6 +711,10 @@ box_save(Box *box, ObjectNode obj_node, const char *filename)
   data_add_real(new_attribute(obj_node, "padding"), box->padding);
   
   data_add_text(new_attribute(obj_node, "text"), box->text);
+
+  if (box->text_fitting != TEXTFIT_WHEN_NEEDED)
+    data_add_enum(new_attribute(obj_node, PROP_STDNAME_TEXT_FITTING),
+		  box->text_fitting);
 }
 
 static DiaObject *
@@ -765,6 +782,12 @@ box_load(ObjectNode obj_node, int version, const char *filename)
   else /* paranoid */
     box->text = new_text_default(&obj->position, &box->border_color, ALIGN_CENTER);
 
+  /* old default: only growth, manual shrink */
+  box->text_fitting = TEXTFIT_WHEN_NEEDED;
+  attr = object_find_attribute(obj_node, PROP_STDNAME_TEXT_FITTING);
+  if (attr != NULL)
+    box->text_fitting = data_enum(attribute_first_data(attr));
+
   element_init(elem, 8, NUM_CONNECTIONS);
 
   for (i=0;i<NUM_CONNECTIONS;i++) {
diff --git a/objects/flowchart/diamond.c b/objects/flowchart/diamond.c
index 126bbf8..ebea6d9 100644
--- a/objects/flowchart/diamond.c
+++ b/objects/flowchart/diamond.c
@@ -70,6 +70,8 @@ struct _Diamond {
   Text *text;
   TextAttributes attrs;
   real padding;
+  
+  TextFitting text_fitting;
 };
 
 typedef struct _DiamondProperties {
@@ -154,6 +156,7 @@ static PropDescription diamond_props[] = {
   PROP_STD_TEXT_HEIGHT,
   PROP_STD_TEXT_COLOUR,
   PROP_STD_TEXT_ALIGNMENT,
+  PROP_STD_TEXT_FITTING,
   PROP_STD_SAVED_TEXT,
   
   { NULL, 0, 0, NULL, NULL, NULL, 0}
@@ -181,6 +184,7 @@ static PropOffset diamond_offsets[] = {
   {PROP_STDNAME_TEXT_HEIGHT,PROP_STDTYPE_TEXT_HEIGHT,offsetof(Diamond,attrs.height)},
   {"text_colour",PROP_TYPE_COLOUR,offsetof(Diamond,attrs.color)},
   {"text_alignment",PROP_TYPE_ENUM,offsetof(Diamond,attrs.alignment)},
+  {PROP_STDNAME_TEXT_FITTING,PROP_TYPE_ENUM,offsetof(Diamond,text_fitting)},
   { NULL, 0, 0 },
 };
 
@@ -388,7 +392,9 @@ diamond_update_data(Diamond *diamond, AnchorShape horiz, AnchorShape vert)
   height = diamond->text->height * diamond->text->numlines +
     2 * diamond->padding + diamond->border_width;
 
-  if (height > (elem->width - width) * elem->height / elem->width) {
+  if (diamond->text_fitting == TEXTFIT_ALWAYS
+      || (   diamond->text_fitting == TEXTFIT_WHEN_NEEDED
+          && height > (elem->width - width) * elem->height / elem->width)) {
     /* increase size of the diamond while keeping its aspect ratio */
     real grad = elem->width/elem->height;
     if (grad < 1.0/4) grad = 1.0/4;
@@ -531,6 +537,9 @@ diamond_create(Point *startpoint,
   text_get_attributes(diamond->text,&diamond->attrs);
   dia_font_unref(font);
   
+  /* new default: let the user decide the size */
+  diamond->text_fitting = TEXTFIT_NEVER;
+
   element_init(elem, 8, NUM_CONNECTIONS);
 
   for (i=0;i<NUM_CONNECTIONS;i++) {
@@ -588,6 +597,10 @@ diamond_save(Diamond *diamond, ObjectNode obj_node, const char *filename)
   data_add_real(new_attribute(obj_node, "padding"), diamond->padding);
   
   data_add_text(new_attribute(obj_node, "text"), diamond->text);
+  
+  if (diamond->text_fitting != TEXTFIT_WHEN_NEEDED)
+    data_add_enum(new_attribute(obj_node, PROP_STDNAME_TEXT_FITTING),
+		  diamond->text_fitting);
 }
 
 static DiaObject *
@@ -650,6 +663,12 @@ diamond_load(ObjectNode obj_node, int version, const char *filename)
   else /* paranoid */
     diamond->text = new_text_default(&obj->position, &diamond->border_color, ALIGN_CENTER);
 
+  /* old default: only growth, manual shrink */
+  diamond->text_fitting = TEXTFIT_WHEN_NEEDED;
+  attr = object_find_attribute(obj_node, PROP_STDNAME_TEXT_FITTING);
+  if (attr != NULL)
+    diamond->text_fitting = data_enum(attribute_first_data(attr));
+
   element_init(elem, 8, NUM_CONNECTIONS);
 
   for (i=0;i<NUM_CONNECTIONS;i++) {
diff --git a/objects/flowchart/ellipse.c b/objects/flowchart/ellipse.c
index 25626ec..eaff544 100644
--- a/objects/flowchart/ellipse.c
+++ b/objects/flowchart/ellipse.c
@@ -70,6 +70,8 @@ struct _Ellipse {
   Text *text;
   TextAttributes attrs;
   real padding;
+
+  TextFitting text_fitting;
 };
 
 typedef struct _EllipseProperties {
@@ -153,6 +155,7 @@ static PropDescription ellipse_props[] = {
   PROP_STD_TEXT_HEIGHT,
   PROP_STD_TEXT_COLOUR,
   PROP_STD_TEXT_ALIGNMENT,
+  PROP_STD_TEXT_FITTING,
   PROP_STD_SAVED_TEXT,
   
   { NULL, 0, 0, NULL, NULL, NULL, 0}
@@ -180,6 +183,7 @@ static PropOffset ellipse_offsets[] = {
   {PROP_STDNAME_TEXT_HEIGHT,PROP_STDTYPE_TEXT_HEIGHT,offsetof(Ellipse,attrs.height)},
   {"text_colour",PROP_TYPE_COLOUR,offsetof(Ellipse,attrs.color)},
   {"text_alignment",PROP_TYPE_ENUM,offsetof(Ellipse,attrs.alignment)},
+  {PROP_STDNAME_TEXT_FITTING,PROP_TYPE_ENUM,offsetof(Ellipse,text_fitting)},
   { NULL, 0, 0 },
 };
 
@@ -396,7 +400,9 @@ ellipse_update_data(Ellipse *ellipse, AnchorShape horiz, AnchorShape vert)
   radius1 = ellipse_radius(ellipse, p.x, p.y) - ellipse->border_width/2;
   radius2 = distance_point_point(&c, &p);
   
-  if (radius1 < radius2) {
+  if (   ellipse->text_fitting == TEXTFIT_ALWAYS
+      || (   ellipse->text_fitting == TEXTFIT_WHEN_NEEDED
+          && radius1 < radius2)) {
     /* increase size of the ellipse while keeping its aspect ratio */
     elem->width  *= radius2 / radius1;
     elem->height *= radius2 / radius1;
@@ -507,6 +513,9 @@ ellipse_create(Point *startpoint,
   text_get_attributes(ellipse->text,&ellipse->attrs);
   dia_font_unref(font);
   
+  /* new default: let the user decide the size */
+  ellipse->text_fitting = TEXTFIT_NEVER;
+
   element_init(elem, 8, NUM_CONNECTIONS);
 
   for (i=0;i<NUM_CONNECTIONS;i++) {
@@ -563,6 +572,10 @@ ellipse_save(Ellipse *ellipse, ObjectNode obj_node, const char *filename)
   data_add_real(new_attribute(obj_node, "padding"), ellipse->padding);
 
   data_add_text(new_attribute(obj_node, "text"), ellipse->text);
+
+  if (ellipse->text_fitting != TEXTFIT_WHEN_NEEDED)
+    data_add_enum(new_attribute(obj_node, PROP_STDNAME_TEXT_FITTING),
+		  ellipse->text_fitting);
 }
 
 static DiaObject *
@@ -624,6 +637,11 @@ ellipse_load(ObjectNode obj_node, int version, const char *filename)
     ellipse->text = data_text(attribute_first_data(attr));
   else
     ellipse->text = new_text_default(&obj->position, &ellipse->border_color, ALIGN_CENTER);
+  /* old default: only growth, manual shrink */
+  ellipse->text_fitting = TEXTFIT_WHEN_NEEDED;
+  attr = object_find_attribute(obj_node, PROP_STDNAME_TEXT_FITTING);
+  if (attr != NULL)
+    ellipse->text_fitting = data_enum(attribute_first_data(attr));
 
   element_init(elem, 8, NUM_CONNECTIONS);
 
diff --git a/objects/flowchart/parallelogram.c b/objects/flowchart/parallelogram.c
index 79e0d20..651168d 100644
--- a/objects/flowchart/parallelogram.c
+++ b/objects/flowchart/parallelogram.c
@@ -71,6 +71,8 @@ struct _Pgram {
   Text *text;
   TextAttributes attrs;
   real padding;
+
+  TextFitting text_fitting;
 };
 
 typedef struct _PgramProperties {
@@ -158,8 +160,9 @@ static PropDescription pgram_props[] = {
   PROP_STD_TEXT_HEIGHT,
   PROP_STD_TEXT_COLOUR,
   PROP_STD_TEXT_ALIGNMENT,
+  PROP_STD_TEXT_FITTING,
   PROP_STD_SAVED_TEXT,
-  
+
   { NULL, 0, 0, NULL, NULL, NULL, 0}
 };
 
@@ -186,6 +189,7 @@ static PropOffset pgram_offsets[] = {
   {PROP_STDNAME_TEXT_HEIGHT,PROP_STDTYPE_TEXT_HEIGHT,offsetof(Pgram,attrs.height)},
   {"text_colour",PROP_TYPE_COLOUR,offsetof(Pgram,attrs.color)},
   {"text_alignment",PROP_TYPE_ENUM,offsetof(Pgram,attrs.alignment)},
+  {PROP_STDNAME_TEXT_FITTING,PROP_TYPE_ENUM,offsetof(Pgram,text_fitting)},
   { NULL, 0, 0 },
 };
 
@@ -401,12 +405,17 @@ pgram_update_data(Pgram *pgram, AnchorShape horiz, AnchorShape vert)
   text_calc_boundingbox(pgram->text, NULL);
   height = pgram->text->height * pgram->text->numlines + pgram->padding*2 +
     pgram->border_width;
-  if (height > elem->height) elem->height = height;
+  if (   pgram->text_fitting == TEXTFIT_ALWAYS
+      || (pgram->text_fitting == TEXTFIT_WHEN_NEEDED
+          && height > elem->height))
+    elem->height = height;
 
   avail_width = elem->width - (pgram->padding*2 + pgram->border_width +
     fabs(pgram->shear_grad) * (elem->height + pgram->text->height
 			       * pgram->text->numlines));
-  if (avail_width < pgram->text->max_width) {
+  if (   pgram->text_fitting == TEXTFIT_ALWAYS
+      || (pgram->text_fitting == TEXTFIT_WHEN_NEEDED
+          && avail_width < pgram->text->max_width)) {
     elem->width = (elem->width-avail_width) + pgram->text->max_width;
     avail_width = pgram->text->max_width;
   }
@@ -585,6 +594,9 @@ pgram_create(Point *startpoint,
   text_get_attributes(pgram->text,&pgram->attrs);
   dia_font_unref(font);
   
+  /* new default: let the user decide the size */
+  pgram->text_fitting = TEXTFIT_ALWAYS;
+
   element_init(elem, 8, NUM_CONNECTIONS);
 
   for (i=0;i<NUM_CONNECTIONS;i++) {
@@ -644,6 +656,9 @@ pgram_save(Pgram *pgram, ObjectNode obj_node, const char *filename)
   data_add_real(new_attribute(obj_node, "padding"), pgram->padding);
   
   data_add_text(new_attribute(obj_node, "text"), pgram->text);
+  if (pgram->text_fitting != TEXTFIT_WHEN_NEEDED)
+    data_add_enum(new_attribute(obj_node, PROP_STDNAME_TEXT_FITTING),
+		  pgram->text_fitting);
 }
 
 static DiaObject *
@@ -712,6 +727,12 @@ pgram_load(ObjectNode obj_node, int version, const char *filename)
   else /* paranoid */
     pgram->text = new_text_default(&obj->position, &pgram->border_color, ALIGN_CENTER);
 
+  /* old default: only growth, manual shrink */
+  pgram->text_fitting = TEXTFIT_WHEN_NEEDED;
+  attr = object_find_attribute(obj_node, PROP_STDNAME_TEXT_FITTING);
+  if (attr != NULL)
+    pgram->text_fitting = data_enum(attribute_first_data(attr));
+
   element_init(elem, 8, NUM_CONNECTIONS);
 
   for (i=0;i<NUM_CONNECTIONS;i++) {
diff --git a/samples/la-removal-flowchart.dia b/samples/la-removal-flowchart.dia
index 3067cb9..ab3642d 100644
--- a/samples/la-removal-flowchart.dia
+++ b/samples/la-removal-flowchart.dia
@@ -68,19 +68,22 @@
   <dia:layer name="Background" visible="true" active="true">
     <dia:object type="Flowchart - Ellipse" version="0" id="O0">
       <dia:attribute name="obj_pos">
-        <dia:point val="1.28673,6.01198"/>
+        <dia:point val="1.35558,6.04641"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="1.28673,6.01198;5.52295,8.13009"/>
+        <dia:rectangle val="1.35558,6.04641;5.4541,8.09566"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="1.28673,6.01198"/>
+        <dia:point val="1.35558,6.04641"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="4.2362197429175463"/>
+        <dia:real val="4.0985125928446546"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="2.1181098714587736"/>
+        <dia:real val="2.0492562964223278"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -119,18 +122,21 @@
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
+      <dia:attribute name="text_fitting">
+        <dia:enum val="2"/>
+      </dia:attribute>
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O1">
       <dia:attribute name="obj_pos">
-        <dia:point val="11.1385,9.89923"/>
+        <dia:point val="10.958,9"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="11.0885,9.84923;29.7839,22.4342"/>
+        <dia:rectangle val="10.908,8.95;29.5618,22.3309"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="11.1385,9.89923"/>
-        <dia:point val="11.1385,22.1033"/>
-        <dia:point val="29.7221,22.1033"/>
+        <dia:point val="10.958,9"/>
+        <dia:point val="10.958,22"/>
+        <dia:point val="29.5,22"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="1"/>
@@ -155,14 +161,14 @@
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O2">
       <dia:attribute name="obj_pos">
-        <dia:point val="5.52295,7.07103"/>
+        <dia:point val="5.4541,7.07103"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="5.47295,6.74013;7.97772,7.40193"/>
+        <dia:rectangle val="5.40367,6.72424;7.97772,7.38602"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="5.52295,7.07103"/>
-        <dia:point val="7.91592,7.07103"/>
+        <dia:point val="5.4541,7.07103"/>
+        <dia:point val="7.91592,7.05"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -183,14 +189,14 @@
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O3">
       <dia:attribute name="obj_pos">
-        <dia:point val="24.161,7.07103"/>
+        <dia:point val="24,7"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="24.111,6.74013;27.5149,7.40193"/>
+        <dia:rectangle val="23.95,6.6691;29.0618,7.3309"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="24.161,7.07103"/>
-        <dia:point val="27.4531,7.07103"/>
+        <dia:point val="24,7"/>
+        <dia:point val="29,7"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -211,14 +217,14 @@
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O4">
       <dia:attribute name="obj_pos">
-        <dia:point val="36.501,7.07103"/>
+        <dia:point val="35,7"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="36.451,6.74013;39.1602,7.40193"/>
+        <dia:rectangle val="34.95,6.6691;40.0618,7.3309"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="36.501,7.07103"/>
-        <dia:point val="39.0984,7.07103"/>
+        <dia:point val="35,7"/>
+        <dia:point val="40,7"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -239,16 +245,16 @@
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O5">
       <dia:attribute name="obj_pos">
-        <dia:point val="46.8735,7.07103"/>
+        <dia:point val="46,7"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="45.292,7.02103;49.4119,15.4701"/>
+        <dia:rectangle val="45.4382,6.95;49.4119,15.3309"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="46.8735,7.07103"/>
-        <dia:point val="49.3619,7.07103"/>
-        <dia:point val="49.3619,15.1392"/>
-        <dia:point val="45.3538,15.1392"/>
+        <dia:point val="46,7"/>
+        <dia:point val="49.3619,7"/>
+        <dia:point val="49.3619,15"/>
+        <dia:point val="45.5,15"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -274,14 +280,14 @@
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O6">
       <dia:attribute name="obj_pos">
-        <dia:point val="40.8438,15.1392"/>
+        <dia:point val="40.5,15"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="34.6583,14.8083;40.8938,15.4701"/>
+        <dia:rectangle val="34.9382,14.6691;40.55,15.3309"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="40.8438,15.1392"/>
-        <dia:point val="34.7201,15.1392"/>
+        <dia:point val="40.5,15"/>
+        <dia:point val="35,15"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -302,14 +308,14 @@
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O7">
       <dia:attribute name="obj_pos">
-        <dia:point val="29.2341,15.1392"/>
+        <dia:point val="29,15"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="23.4943,14.8083;29.2841,15.4701"/>
+        <dia:rectangle val="23.9382,14.6691;29.05,15.3309"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="29.2341,15.1392"/>
-        <dia:point val="23.5561,15.1392"/>
+        <dia:point val="29,15"/>
+        <dia:point val="24,15"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -330,16 +336,16 @@
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O8">
       <dia:attribute name="obj_pos">
-        <dia:point val="20.9384,9.89923"/>
+        <dia:point val="21,9"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="20.8884,9.84923;32.308,12.8231"/>
+        <dia:rectangle val="20.95,8.95;32.3309,13.0618"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="20.9384,9.89923"/>
-        <dia:point val="20.9384,11.3303"/>
-        <dia:point val="31.9771,11.3303"/>
-        <dia:point val="31.9771,12.7613"/>
+        <dia:point val="21,9"/>
+        <dia:point val="21,11"/>
+        <dia:point val="32,11"/>
+        <dia:point val="32,13"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="1"/>
@@ -365,16 +371,16 @@
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O9">
       <dia:attribute name="obj_pos">
-        <dia:point val="42.986,10.0206"/>
+        <dia:point val="43,9"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="31.6462,9.97061;43.036,12.8231"/>
+        <dia:rectangle val="31.6691,8.95;43.05,13.0618"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="42.986,10.0206"/>
-        <dia:point val="42.986,11.391"/>
-        <dia:point val="31.9771,11.391"/>
-        <dia:point val="31.9771,12.7613"/>
+        <dia:point val="43,9"/>
+        <dia:point val="43,11"/>
+        <dia:point val="32,11"/>
+        <dia:point val="32,13"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="1"/>
@@ -400,15 +406,15 @@
     </dia:object>
     <dia:object type="Standard - ZigZagLine" version="1" id="O10">
       <dia:attribute name="obj_pos">
-        <dia:point val="21.3011,16.3892"/>
+        <dia:point val="21.5,16.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="21.2511,16.3392;29.7839,22.4342"/>
+        <dia:rectangle val="21.45,16.45;29.5618,22.3309"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="21.3011,16.3892"/>
-        <dia:point val="21.3011,22.1033"/>
-        <dia:point val="29.7221,22.1033"/>
+        <dia:point val="21.5,16.5"/>
+        <dia:point val="21.5,22"/>
+        <dia:point val="29.5,22"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="1"/>
@@ -433,19 +439,22 @@
     </dia:object>
     <dia:object type="Flowchart - Diamond" version="0" id="O11">
       <dia:attribute name="obj_pos">
-        <dia:point val="27.4531,4.6967"/>
+        <dia:point val="29,5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="27.4531,4.6967;36.5009,9.44536"/>
+        <dia:rectangle val="29,5;35,9"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="27.4531,4.6967"/>
+        <dia:point val="29,5"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="9.0478176286461824"/>
+        <dia:real val="6"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="4.7486613445329251"/>
+        <dia:real val="4"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -476,7 +485,7 @@ dependencies
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="31.977,6.46603"/>
+            <dia:point val="32,6.395"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -486,22 +495,28 @@ dependencies
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
+      <dia:attribute name="text_fitting">
+        <dia:enum val="0"/>
+      </dia:attribute>
     </dia:object>
     <dia:object type="Flowchart - Diamond" version="0" id="O12">
       <dia:attribute name="obj_pos">
-        <dia:point val="29.2341,12.7613"/>
+        <dia:point val="29,13"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="29.2341,12.7613;34.7201,17.5171"/>
+        <dia:rectangle val="29,13;35,17"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="29.2341,12.7613"/>
+        <dia:point val="29,13"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="5.4860144012646224"/>
+        <dia:real val="6"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="4.7557760786871235"/>
+        <dia:real val="4"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -532,7 +547,7 @@ package
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="31.9771,14.5342"/>
+            <dia:point val="32,14.395"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -542,22 +557,25 @@ package
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
+      <dia:attribute name="text_fitting">
+        <dia:enum val="0"/>
+      </dia:attribute>
     </dia:object>
     <dia:object type="Flowchart - Box" version="0" id="O13">
       <dia:attribute name="obj_pos">
-        <dia:point val="29.7221,20.8533"/>
+        <dia:point val="29.5,20.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="29.7221,20.8533;34.2321,23.3533"/>
+        <dia:rectangle val="29.5,20.5;34.5,23.5"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="29.7221,20.8533"/>
+        <dia:point val="29.5,20.5"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="4.5099999999999998"/>
+        <dia:real val="5"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="2.5000000000000004"/>
+        <dia:real val="3"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -588,7 +606,7 @@ file!#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="31.9771,21.4983"/>
+            <dia:point val="32,21.395"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -601,19 +619,22 @@ file!#</dia:string>
     </dia:object>
     <dia:object type="Flowchart - Ellipse" version="0" id="O14">
       <dia:attribute name="obj_pos">
-        <dia:point val="29.8589,26.793"/>
+        <dia:point val="30.0684,26.8978"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="29.8589,26.793;34.0951,28.9111"/>
+        <dia:rectangle val="30.0684,26.8978;33.8856,28.8064"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="29.8589,26.793"/>
+        <dia:point val="30.0684,26.8978"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="4.2362197429175463"/>
+        <dia:real val="3.817191058104632"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="2.1181098714587736"/>
+        <dia:real val="1.9085955290523164"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -652,17 +673,20 @@ file!#</dia:string>
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
+      <dia:attribute name="text_fitting">
+        <dia:enum val="2"/>
+      </dia:attribute>
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O15">
       <dia:attribute name="obj_pos">
-        <dia:point val="31.9771,9.44537"/>
+        <dia:point val="32,9"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="31.6462,9.39537;32.308,12.8231"/>
+        <dia:rectangle val="31.6691,8.95;32.3309,13.0618"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="31.9771,9.44537"/>
-        <dia:point val="31.9771,12.7613"/>
+        <dia:point val="32,9"/>
+        <dia:point val="32,13"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -683,14 +707,14 @@ file!#</dia:string>
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O16">
       <dia:attribute name="obj_pos">
-        <dia:point val="31.9771,17.5171"/>
+        <dia:point val="32,17"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="31.6462,17.4671;32.308,20.9151"/>
+        <dia:rectangle val="31.6691,16.95;32.3309,20.5618"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="31.9771,17.5171"/>
-        <dia:point val="31.9771,20.8533"/>
+        <dia:point val="32,17"/>
+        <dia:point val="32,20.5"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -711,14 +735,14 @@ file!#</dia:string>
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O17">
       <dia:attribute name="obj_pos">
-        <dia:point val="31.9771,23.3533"/>
+        <dia:point val="32,23.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="31.6462,23.3033;32.308,26.8548"/>
+        <dia:rectangle val="31.6502,23.4497;32.312,26.9596"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="31.9771,23.3533"/>
-        <dia:point val="31.9771,26.793"/>
+        <dia:point val="32,23.5"/>
+        <dia:point val="31.977,26.8978"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -739,19 +763,22 @@ file!#</dia:string>
     </dia:object>
     <dia:object type="Flowchart - Diamond" version="0" id="O18">
       <dia:attribute name="obj_pos">
-        <dia:point val="17.7158,4.24284"/>
+        <dia:point val="18,5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="17.7158,4.24284;24.161,9.89923"/>
+        <dia:rectangle val="18,5;24,9"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="17.7158,4.24284"/>
+        <dia:point val="18,5"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="6.4452000811203138"/>
+        <dia:real val="6"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="5.6563905666849799"/>
+        <dia:real val="4"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -783,7 +810,7 @@ libraries
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="20.9384,6.06604"/>
+            <dia:point val="21,5.995"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -793,22 +820,25 @@ libraries
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
+      <dia:attribute name="text_fitting">
+        <dia:enum val="0"/>
+      </dia:attribute>
     </dia:object>
     <dia:object type="Flowchart - Box" version="0" id="O19">
       <dia:attribute name="obj_pos">
-        <dia:point val="19.0461,13.8892"/>
+        <dia:point val="19,13.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="19.0461,13.8892;23.5561,16.3892"/>
+        <dia:rectangle val="19,13.5;24,16.5"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="19.0461,13.8892"/>
+        <dia:point val="19,13.5"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="4.5099999999999998"/>
+        <dia:real val="5"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="2.5"/>
+        <dia:real val="3"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -838,7 +868,7 @@ about it ...#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="21.3011,14.9342"/>
+            <dia:point val="21.5,14.795"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -851,19 +881,22 @@ about it ...#</dia:string>
     </dia:object>
     <dia:object type="Flowchart - Diamond" version="0" id="O20">
       <dia:attribute name="obj_pos">
-        <dia:point val="39.0984,4.12147"/>
+        <dia:point val="40,5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="39.0984,4.12147;46.8735,10.0206"/>
+        <dia:rectangle val="40,5;46,9"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="39.0984,4.12147"/>
+        <dia:point val="40,5"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="7.7751452658885762"/>
+        <dia:real val="6"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="5.899136433324867"/>
+        <dia:real val="4"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -895,7 +928,7 @@ officially
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="42.986,6.06604"/>
+            <dia:point val="43,5.995"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -905,22 +938,25 @@ officially
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
+      <dia:attribute name="text_fitting">
+        <dia:enum val="0"/>
+      </dia:attribute>
     </dia:object>
     <dia:object type="Flowchart - Box" version="0" id="O21">
       <dia:attribute name="obj_pos">
-        <dia:point val="40.8438,13.8892"/>
+        <dia:point val="40.5,13.5"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="40.8438,13.8892;45.3538,16.3892"/>
+        <dia:rectangle val="40.5,13.5;45.5,16.5"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="40.8438,13.8892"/>
+        <dia:point val="40.5,13.5"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="4.5099999999999998"/>
+        <dia:real val="5"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="2.5000000000000004"/>
+        <dia:real val="3"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -951,7 +987,7 @@ act!#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="43.0988,14.5342"/>
+            <dia:point val="43,14.395"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -1004,10 +1040,10 @@ act!#</dia:string>
     </dia:object>
     <dia:object type="Standard - Text" version="1" id="O23">
       <dia:attribute name="obj_pos">
-        <dia:point val="37.4991,23.6722"/>
+        <dia:point val="37,18"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="37.4991,23.0586;51.7952,34.2595"/>
+        <dia:rectangle val="37,17.405;50.0425,21.35"/>
       </dia:attribute>
       <dia:attribute name="text">
         <dia:composite type="text">
@@ -1016,16 +1052,7 @@ act!#</dia:string>
 
 - minimum size for Flowchart - Diamond 
   still too large (calculate text space per
-  line, not one single rect?)
-- trying to find the minimum width increases
-  the height, potentially not wanted
-- alignment needs thinking (snap to grid 
-  with center point?)
-- double effort to get shapes without outline
-  (seemingly, just width=0 and same color)
-- auto-routing does not work flawlessly,
-  maybe the direction infos are flawed?
-- ...#</dia:string>
+  line, not one single rect?)#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="0" name="Helvetica"/>
@@ -1034,7 +1061,7 @@ act!#</dia:string>
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="37.4991,23.6722"/>
+            <dia:point val="37,18"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#ff0000"/>
@@ -1116,19 +1143,22 @@ act!#</dia:string>
     </dia:object>
     <dia:object type="Flowchart - Diamond" version="0" id="O26">
       <dia:attribute name="obj_pos">
-        <dia:point val="7.91592,4.24284"/>
+        <dia:point val="7.91592,5.1"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="7.91592,4.24284;14.3611,9.89923"/>
+        <dia:rectangle val="7.91592,5.1;14,9"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="7.91592,4.24284"/>
+        <dia:point val="7.91592,5.1"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="6.4452000811203138"/>
+        <dia:real val="6.084080000000001"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="5.6563905666849799"/>
+        <dia:real val="3.8999999999999995"/>
       </dia:attribute>
       <dia:attribute name="border_width">
         <dia:real val="1.1754943508222875e-038"/>
@@ -1160,7 +1190,7 @@ libraries
             <dia:real val="0.80000000000000004"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="11.1385,6.06604"/>
+            <dia:point val="10.958,6.045"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -1170,17 +1200,20 @@ libraries
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
+      <dia:attribute name="text_fitting">
+        <dia:enum val="0"/>
+      </dia:attribute>
     </dia:object>
     <dia:object type="Standard - Line" version="0" id="O27">
       <dia:attribute name="obj_pos">
-        <dia:point val="14.3611,7.07103"/>
+        <dia:point val="14,7.05"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="14.3111,6.74013;17.7776,7.40193"/>
+        <dia:rectangle val="13.9494,6.67662;18.0618,7.33838"/>
       </dia:attribute>
       <dia:attribute name="conn_endpoints">
-        <dia:point val="14.3611,7.07103"/>
-        <dia:point val="17.7158,7.07103"/>
+        <dia:point val="14,7.05"/>
+        <dia:point val="18,7"/>
       </dia:attribute>
       <dia:attribute name="numcp">
         <dia:int val="1"/>
@@ -1463,5 +1496,328 @@ libraries
         <dia:enum val="3"/>
       </dia:attribute>
     </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O36">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37,25.4286"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="37,24.8149;49.6936,27.2158"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict">
+          <dia:attribute name="url">
+            <dia:string>#https://bugzilla.gnome.org/show_bug.cgi?id=318182#</dia:string>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#... (as OOo): let the user decide
+(Text fitting: Never ;)) or use
+Text fitting: Always (bug #318182)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37,25.4286"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#0000ff"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O37">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37,30.1143"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="37,29.5193;47.14,31.0643"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#Try: Object/Align/Connected
+(align at connection points)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37,30.1143"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#0000ff"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O38">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37,34"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="37,33.405;46.56,34.15"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#Yes: should be solved now#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37,34"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#0000ff"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O39">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37,23.4857"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="37,22.8907;51.2775,24.4357"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#- trying to find the minimum width increases
+  the height, potentially not wanted#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37,23.4857"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#ff0000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O40">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37,22.3429"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="37,21.7479;41.49,22.4929"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#NO (KISS) ...#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37,22.3429"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#0000ff"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O41">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37,32.0571"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="37,31.4621;49.65,33.0071"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#- auto-routing does not work flawlessly,
+  maybe the direction infos are flawed?#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37,32.0571"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#ff0000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O42">
+      <dia:attribute name="obj_pos">
+        <dia:point val="37,28.1714"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="37,27.5764;50.0975,29.1214"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#- alignment needs thinking (snap to grid 
+  with center point?)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="37,28.1714"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#ff0000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O43">
+      <dia:attribute name="obj_pos">
+        <dia:point val="1,26"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="1,25.405;15.1475,26.95"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#- double effort to get shapes without outline
+  (seemingly, just width=0 and same color)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="1,26"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#ff0000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O44">
+      <dia:attribute name="obj_pos">
+        <dia:point val="1,25"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="1,24.405;5.24,25.15"/>
+      </dia:attribute>
+      <dia:attribute name="meta">
+        <dia:composite type="dict"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#Still todo ...#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.80000000000000004"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="1,25"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#0000ff"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
   </dia:layer>
 </dia:diagram>



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