[dia] kaos: fix warnings
- From: Zander <zbrown src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia] kaos: fix warnings
- Date: Fri, 27 Mar 2020 19:51:28 +0000 (UTC)
commit d0fdfc755cdf03f4a475cbf937a635c676498551
Author: Zander Brown <zbrown gnome org>
Date: Fri Mar 27 19:16:03 2020 +0000
kaos: fix warnings
objects/KAOS/goal.c | 415 +++++++++++++++++++++++++++++++--------------------
objects/KAOS/other.c | 274 ++++++++++++++++++++++------------
2 files changed, 428 insertions(+), 261 deletions(-)
---
diff --git a/objects/KAOS/goal.c b/objects/KAOS/goal.c
index 5926335d..acedfb2e 100644
--- a/objects/KAOS/goal.c
+++ b/objects/KAOS/goal.c
@@ -57,12 +57,14 @@
#define GOAL_BG_COLOR color_white
#define GOAL_OFFSET 0.5
+
typedef enum {
ANCHOR_MIDDLE,
ANCHOR_START,
ANCHOR_END
} AnchorShape;
+
typedef enum {
SOFTGOAL,
GOAL,
@@ -71,6 +73,7 @@ typedef enum {
OBSTACLE
} GoalType;
+
static PropEnumData prop_goal_type_data[] = {
{ N_("Softgoal"), SOFTGOAL },
{ N_("Goal"), GOAL },
@@ -80,6 +83,7 @@ static PropEnumData prop_goal_type_data[] = {
{ NULL, 0}
};
+
typedef struct _Goal {
Element element;
ConnPointLine *north,*south,*east,*west;
@@ -91,6 +95,7 @@ typedef struct _Goal {
int init;
} Goal;
+
static real goal_distance_from(Goal *goal, Point *point);
static void goal_select(Goal *goal, Point *clicked_point,
DiaRenderer *interactive_renderer);
@@ -113,6 +118,7 @@ static PropDescription *goal_describe_props(Goal *goal);
static void goal_get_props(Goal *goal, GPtrArray *props);
static void goal_set_props(Goal *goal, GPtrArray *props);
+
static ObjectTypeOps kaos_goal_type_ops =
{
(CreateFunc) goal_create,
@@ -122,6 +128,7 @@ static ObjectTypeOps kaos_goal_type_ops =
(ApplyDefaultsFunc) NULL,
};
+
DiaObjectType kaos_goal_type =
{
"KAOS - goal", /* name */
@@ -130,6 +137,7 @@ DiaObjectType kaos_goal_type =
&kaos_goal_type_ops /* ops */
};
+
static ObjectOps goal_ops = {
(DestroyFunc) goal_destroy,
(DrawFunc) goal_draw,
@@ -148,6 +156,7 @@ static ObjectOps goal_ops = {
(ApplyPropertiesListFunc) object_apply_props,
};
+
static PropDescription goal_props[] = {
ELEMENT_COMMON_PROPERTIES,
{ "type", PROP_TYPE_ENUM, PROP_FLAG_VISIBLE|PROP_FLAG_NO_DEFAULTS,
@@ -157,52 +166,61 @@ static PropDescription goal_props[] = {
{ "text", PROP_TYPE_TEXT, 0,NULL,NULL},
- { "cpl_north",PROP_TYPE_CONNPOINT_LINE, 0, NULL, NULL},
- { "cpl_west",PROP_TYPE_CONNPOINT_LINE, 0, NULL, NULL},
- { "cpl_south",PROP_TYPE_CONNPOINT_LINE, 0, NULL, NULL},
- { "cpl_east",PROP_TYPE_CONNPOINT_LINE, 0, NULL, NULL},
+ { "cpl_north", PROP_TYPE_CONNPOINT_LINE, 0, NULL, NULL},
+ { "cpl_west", PROP_TYPE_CONNPOINT_LINE, 0, NULL, NULL},
+ { "cpl_south", PROP_TYPE_CONNPOINT_LINE, 0, NULL, NULL},
+ { "cpl_east", PROP_TYPE_CONNPOINT_LINE, 0, NULL, NULL},
PROP_DESC_END
};
+
static PropDescription *
-goal_describe_props(Goal *goal)
+goal_describe_props (Goal *goal)
{
if (goal_props[0].quark == 0) {
- prop_desc_list_calculate_quarks(goal_props);
+ prop_desc_list_calculate_quarks (goal_props);
}
return goal_props;
}
+
static PropOffset goal_offsets[] = {
ELEMENT_COMMON_PROPERTIES_OFFSETS,
- { "type", PROP_TYPE_ENUM, offsetof(Goal,type)},
- { "text", PROP_TYPE_TEXT, offsetof(Goal,text)},
- { "cpl_north",PROP_TYPE_CONNPOINT_LINE, offsetof(Goal,north)},
- { "cpl_west",PROP_TYPE_CONNPOINT_LINE, offsetof(Goal,west)},
- { "cpl_south",PROP_TYPE_CONNPOINT_LINE, offsetof(Goal,south)},
- { "cpl_east",PROP_TYPE_CONNPOINT_LINE, offsetof(Goal,east)},
+ { "type", PROP_TYPE_ENUM, offsetof (Goal, type)},
+ { "text", PROP_TYPE_TEXT, offsetof (Goal, text)},
+ { "cpl_north", PROP_TYPE_CONNPOINT_LINE, offsetof (Goal, north)},
+ { "cpl_west", PROP_TYPE_CONNPOINT_LINE, offsetof (Goal, west)},
+ { "cpl_south", PROP_TYPE_CONNPOINT_LINE, offsetof (Goal, south)},
+ { "cpl_east", PROP_TYPE_CONNPOINT_LINE, offsetof (Goal, east)},
{NULL}
};
+
static void
-goal_get_props(Goal *goal, GPtrArray *props)
+goal_get_props (Goal *goal, GPtrArray *props)
{
- object_get_props_from_offsets(&goal->element.object,
- goal_offsets,props);
+ object_get_props_from_offsets (DIA_OBJECT (goal),
+ goal_offsets, props);
}
+
static void
-goal_set_props(Goal *goal, GPtrArray *props)
+goal_set_props (Goal *goal, GPtrArray *props)
{
- if (goal->init==-1) { goal->init++; return; } /* workaround init bug */
+ if (goal->init==-1) {
+ goal->init++;
+ return;
+ }
+ /* workaround init bug */
- object_set_props_from_offsets(&goal->element.object,
- goal_offsets,props);
- goal_update_data(goal, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
+ object_set_props_from_offsets (DIA_OBJECT (goal),
+ goal_offsets, props);
+ goal_update_data (goal, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
}
+
static real
-goal_distance_from(Goal *goal, Point *point)
+goal_distance_from (Goal *goal, Point *point)
{
Element *elem = &goal->element;
DiaRectangle rect;
@@ -211,143 +229,180 @@ goal_distance_from(Goal *goal, Point *point)
rect.right = elem->corner.x + elem->width + GOAL_LINE_SIMPLE_WIDTH/2;
rect.top = elem->corner.y - GOAL_LINE_SIMPLE_WIDTH/2;
rect.bottom = elem->corner.y + elem->height + GOAL_LINE_SIMPLE_WIDTH/2;
- return distance_rectangle_point(&rect, point);
+ return distance_rectangle_point (&rect, point);
}
+
static void
-goal_select(Goal *goal, Point *clicked_point,
- DiaRenderer *interactive_renderer)
+goal_select (Goal *goal,
+ Point *clicked_point,
+ DiaRenderer *interactive_renderer)
{
- text_set_cursor(goal->text, clicked_point, interactive_renderer);
- text_grab_focus(goal->text, &goal->element.object);
- element_update_handles(&goal->element);
+ text_set_cursor (goal->text, clicked_point, interactive_renderer);
+ text_grab_focus (goal->text, &goal->element.object);
+ element_update_handles (&goal->element);
}
+
static ObjectChange*
-goal_move_handle(Goal *goal, Handle *handle,
- Point *to, ConnectionPoint *cp,
- HandleMoveReason reason, ModifierKeys modifiers)
+goal_move_handle (Goal *goal,
+ Handle *handle,
+ Point *to,
+ ConnectionPoint *cp,
+ HandleMoveReason reason,
+ ModifierKeys modifiers)
{
AnchorShape horiz = ANCHOR_MIDDLE, vert = ANCHOR_MIDDLE;
- assert(goal!=NULL);
- assert(handle!=NULL);
- assert(to!=NULL);
+ g_return_val_if_fail (goal != NULL, NULL);
+ g_return_val_if_fail (handle != NULL, NULL);
+ g_return_val_if_fail (to != NULL, NULL);
- element_move_handle(&goal->element, handle->id, to, cp, reason, modifiers);
+ element_move_handle (&goal->element,
+ handle->id, to, cp, reason, modifiers);
switch (handle->id) {
- case HANDLE_RESIZE_NW:
- horiz = ANCHOR_END; vert = ANCHOR_END; break;
- case HANDLE_RESIZE_N:
- vert = ANCHOR_END; break;
- case HANDLE_RESIZE_NE:
- horiz = ANCHOR_START; vert = ANCHOR_END; break;
- case HANDLE_RESIZE_E:
- horiz = ANCHOR_START; break;
- case HANDLE_RESIZE_SE:
- horiz = ANCHOR_START; vert = ANCHOR_START; break;
- case HANDLE_RESIZE_S:
- vert = ANCHOR_START; break;
- case HANDLE_RESIZE_SW:
- horiz = ANCHOR_END; vert = ANCHOR_START; break;
- case HANDLE_RESIZE_W:
- horiz = ANCHOR_END; break;
- default:
- break;
+ case HANDLE_RESIZE_NW:
+ horiz = ANCHOR_END;
+ vert = ANCHOR_END;
+ break;
+ case HANDLE_RESIZE_N:
+ vert = ANCHOR_END;
+ break;
+ case HANDLE_RESIZE_NE:
+ horiz = ANCHOR_START;
+ vert = ANCHOR_END;
+ break;
+ case HANDLE_RESIZE_E:
+ horiz = ANCHOR_START;
+ break;
+ case HANDLE_RESIZE_SE:
+ horiz = ANCHOR_START;
+ vert = ANCHOR_START;
+ break;
+ case HANDLE_RESIZE_S:
+ vert = ANCHOR_START;
+ break;
+ case HANDLE_RESIZE_SW:
+ horiz = ANCHOR_END;
+ vert = ANCHOR_START;
+ break;
+ case HANDLE_RESIZE_W:
+ horiz = ANCHOR_END;
+ break;
+ case HANDLE_MOVE_STARTPOINT:
+ case HANDLE_MOVE_ENDPOINT:
+ case HANDLE_CUSTOM1:
+ case HANDLE_CUSTOM2:
+ case HANDLE_CUSTOM3:
+ case HANDLE_CUSTOM4:
+ case HANDLE_CUSTOM5:
+ case HANDLE_CUSTOM6:
+ case HANDLE_CUSTOM7:
+ case HANDLE_CUSTOM8:
+ case HANDLE_CUSTOM9:
+ default:
+ break;
}
- goal_update_data(goal, horiz, vert);
+
+ goal_update_data (goal, horiz, vert);
+
return NULL;
}
+
static ObjectChange*
-goal_move(Goal *goal, Point *to)
+goal_move (Goal *goal, Point *to)
{
goal->element.corner = *to;
- goal_update_data(goal, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
+ goal_update_data (goal, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
+
return NULL;
}
+
/* auxialliary computations */
-static void compute_cloud(Goal *goal, BezPoint* bpl) {
- double wd,hd;
- Element *elem;
-
- elem=&goal->element;
- wd=elem->width/4.0;
- hd=elem->height/4.0;
-
- bpl[0].type=BEZ_MOVE_TO;
- bpl[0].p1.x=elem->corner.x+wd/2.0;
- bpl[0].p1.y=elem->corner.y+hd;
-
- bpl[1].type=BEZ_CURVE_TO;
- bpl[1].p3.x=bpl[0].p1.x+wd;
- bpl[1].p3.y=bpl[0].p1.y+2*hd/5.0;
- bpl[1].p1.x=bpl[0].p1.x;
- bpl[1].p1.y=bpl[0].p1.y-hd*1.6;
- bpl[1].p2.x=bpl[1].p3.x;
- bpl[1].p2.y=bpl[1].p3.y-hd*1.6;
-
- bpl[2].type=BEZ_CURVE_TO;
- bpl[2].p3.x=bpl[1].p3.x+wd;
- bpl[2].p3.y=bpl[0].p1.y-hd/5.0;
- bpl[2].p1.x=bpl[1].p3.x;
- bpl[2].p1.y=bpl[1].p3.y-hd*1.45;
- bpl[2].p2.x=bpl[2].p3.x;
- bpl[2].p2.y=bpl[2].p3.y-hd*1.45;
-
- bpl[3].type=BEZ_CURVE_TO;
- bpl[3].p3.x=bpl[2].p3.x+wd;
- bpl[3].p3.y=bpl[0].p1.y+2*hd/5.0;
- bpl[3].p1.x=bpl[2].p3.x;
- bpl[3].p1.y=bpl[2].p3.y-hd*1.45;
- bpl[3].p2.x=bpl[3].p3.x+wd/2.0;
- bpl[3].p2.y=bpl[3].p3.y-hd*1.45;
-
- /* bottom of cloud starts here */
- bpl[4].type=BEZ_CURVE_TO;
- bpl[4].p3.x=bpl[3].p3.x;
- bpl[4].p3.y=bpl[0].p1.y+2*hd;
- bpl[4].p1.x=bpl[3].p3.x+wd/1.5;
- bpl[4].p1.y=bpl[3].p3.y;
- bpl[4].p2.x=bpl[4].p3.x+wd/1.5;
- bpl[4].p2.y=bpl[4].p3.y;
-
- bpl[5].type=BEZ_CURVE_TO;
- bpl[5].p3.x=bpl[4].p3.x-wd-wd/5.0;
- bpl[5].p3.y=bpl[4].p3.y+wd/20.0;
- bpl[5].p1.x=bpl[4].p3.x+wd/2.0;
- bpl[5].p1.y=bpl[4].p3.y+hd*1.3;
- bpl[5].p2.x=bpl[5].p3.x-wd/20.0;
- bpl[5].p2.y=bpl[5].p3.y+hd*1.3;
-
- bpl[6].type=BEZ_CURVE_TO;
- bpl[6].p3.x=bpl[5].p3.x-wd;
- bpl[6].p3.y=bpl[4].p3.y+wd/10.0;
- bpl[6].p1.x=bpl[5].p3.x;
- bpl[6].p1.y=bpl[5].p3.y+hd*1.3;
- bpl[6].p2.x=bpl[6].p3.x;
- bpl[6].p2.y=bpl[6].p3.y+hd*1.3;
-
- bpl[7].type=BEZ_CURVE_TO;
- bpl[7].p3.x=bpl[6].p3.x-wd+wd/10.0;
- bpl[7].p3.y=bpl[4].p3.y-wd/5.0;
- bpl[7].p1.x=bpl[6].p3.x;
- bpl[7].p1.y=bpl[6].p3.y+hd*1.45;
- bpl[7].p2.x=bpl[7].p3.x;
- bpl[7].p2.y=bpl[7].p3.y+hd*1.45;
-
- bpl[8].type=BEZ_CURVE_TO;
- bpl[8].p3.x=bpl[0].p1.x;
- bpl[8].p3.y=bpl[0].p1.y;
- bpl[8].p1.x=bpl[7].p3.x-wd/1.6;
- bpl[8].p1.y=bpl[7].p3.y;
- bpl[8].p2.x=bpl[0].p1.x-wd/1.6;
- bpl[8].p2.y=bpl[0].p1.y;
+static void
+compute_cloud (Goal *goal, BezPoint* bpl) {
+ double wd,hd;
+ Element *elem;
+
+ elem=&goal->element;
+ wd=elem->width/4.0;
+ hd=elem->height/4.0;
+
+ bpl[0].type=BEZ_MOVE_TO;
+ bpl[0].p1.x=elem->corner.x+wd/2.0;
+ bpl[0].p1.y=elem->corner.y+hd;
+
+ bpl[1].type=BEZ_CURVE_TO;
+ bpl[1].p3.x=bpl[0].p1.x+wd;
+ bpl[1].p3.y=bpl[0].p1.y+2*hd/5.0;
+ bpl[1].p1.x=bpl[0].p1.x;
+ bpl[1].p1.y=bpl[0].p1.y-hd*1.6;
+ bpl[1].p2.x=bpl[1].p3.x;
+ bpl[1].p2.y=bpl[1].p3.y-hd*1.6;
+
+ bpl[2].type=BEZ_CURVE_TO;
+ bpl[2].p3.x=bpl[1].p3.x+wd;
+ bpl[2].p3.y=bpl[0].p1.y-hd/5.0;
+ bpl[2].p1.x=bpl[1].p3.x;
+ bpl[2].p1.y=bpl[1].p3.y-hd*1.45;
+ bpl[2].p2.x=bpl[2].p3.x;
+ bpl[2].p2.y=bpl[2].p3.y-hd*1.45;
+
+ bpl[3].type=BEZ_CURVE_TO;
+ bpl[3].p3.x=bpl[2].p3.x+wd;
+ bpl[3].p3.y=bpl[0].p1.y+2*hd/5.0;
+ bpl[3].p1.x=bpl[2].p3.x;
+ bpl[3].p1.y=bpl[2].p3.y-hd*1.45;
+ bpl[3].p2.x=bpl[3].p3.x+wd/2.0;
+ bpl[3].p2.y=bpl[3].p3.y-hd*1.45;
+
+ /* bottom of cloud starts here */
+ bpl[4].type=BEZ_CURVE_TO;
+ bpl[4].p3.x=bpl[3].p3.x;
+ bpl[4].p3.y=bpl[0].p1.y+2*hd;
+ bpl[4].p1.x=bpl[3].p3.x+wd/1.5;
+ bpl[4].p1.y=bpl[3].p3.y;
+ bpl[4].p2.x=bpl[4].p3.x+wd/1.5;
+ bpl[4].p2.y=bpl[4].p3.y;
+
+ bpl[5].type=BEZ_CURVE_TO;
+ bpl[5].p3.x=bpl[4].p3.x-wd-wd/5.0;
+ bpl[5].p3.y=bpl[4].p3.y+wd/20.0;
+ bpl[5].p1.x=bpl[4].p3.x+wd/2.0;
+ bpl[5].p1.y=bpl[4].p3.y+hd*1.3;
+ bpl[5].p2.x=bpl[5].p3.x-wd/20.0;
+ bpl[5].p2.y=bpl[5].p3.y+hd*1.3;
+
+ bpl[6].type=BEZ_CURVE_TO;
+ bpl[6].p3.x=bpl[5].p3.x-wd;
+ bpl[6].p3.y=bpl[4].p3.y+wd/10.0;
+ bpl[6].p1.x=bpl[5].p3.x;
+ bpl[6].p1.y=bpl[5].p3.y+hd*1.3;
+ bpl[6].p2.x=bpl[6].p3.x;
+ bpl[6].p2.y=bpl[6].p3.y+hd*1.3;
+
+ bpl[7].type=BEZ_CURVE_TO;
+ bpl[7].p3.x=bpl[6].p3.x-wd+wd/10.0;
+ bpl[7].p3.y=bpl[4].p3.y-wd/5.0;
+ bpl[7].p1.x=bpl[6].p3.x;
+ bpl[7].p1.y=bpl[6].p3.y+hd*1.45;
+ bpl[7].p2.x=bpl[7].p3.x;
+ bpl[7].p2.y=bpl[7].p3.y+hd*1.45;
+
+ bpl[8].type=BEZ_CURVE_TO;
+ bpl[8].p3.x=bpl[0].p1.x;
+ bpl[8].p3.y=bpl[0].p1.y;
+ bpl[8].p1.x=bpl[7].p3.x-wd/1.6;
+ bpl[8].p1.y=bpl[7].p3.y;
+ bpl[8].p2.x=bpl[0].p1.x-wd/1.6;
+ bpl[8].p2.y=bpl[0].p1.y;
}
+
/* drawing stuff */
static void
goal_draw (Goal *goal, DiaRenderer *renderer)
@@ -387,6 +442,8 @@ goal_draw (Goal *goal, DiaRenderer *renderer)
pl[3].x=elem->corner.x + GOAL_OFFSET;
pl[3].y= elem->corner.y + elem->height;
break;
+ // TODO: Should this be handled?
+ case SOFTGOAL:
default:
break;
}
@@ -428,8 +485,9 @@ goal_draw (Goal *goal, DiaRenderer *renderer)
text_draw (goal->text, renderer);
}
+
static void
-goal_update_data(Goal *goal, AnchorShape horiz, AnchorShape vert)
+goal_update_data (Goal *goal, AnchorShape horiz, AnchorShape vert)
{
Element *elem = &goal->element;
ElementBBExtras *extra = &elem->extra_spacing;
@@ -446,44 +504,51 @@ goal_update_data(Goal *goal, AnchorShape horiz, AnchorShape vert)
center.y += elem->height/2;
bottom_right.y += elem->height;
- text_calc_boundingbox(goal->text, NULL);
+ text_calc_boundingbox (goal->text, NULL);
width = goal->text->max_width + goal->padding*2;
height = goal->text->height * goal->text->numlines + goal->padding*2;
- if (width<2*GOAL_OFFSET) width=2*GOAL_OFFSET;
+ if (width < 2 * GOAL_OFFSET) width = 2 * GOAL_OFFSET;
if (width > elem->width) elem->width = width;
if (height > elem->height) elem->height = height;
/* move shape if necessary ... */
switch (horiz) {
- case ANCHOR_MIDDLE:
- elem->corner.x = center.x - elem->width/2; break;
- case ANCHOR_END:
- elem->corner.x = bottom_right.x - elem->width; break;
- default:
- break;
+ case ANCHOR_MIDDLE:
+ elem->corner.x = center.x - elem->width/2;
+ break;
+ case ANCHOR_END:
+ elem->corner.x = bottom_right.x - elem->width;
+ break;
+ case ANCHOR_START:
+ default:
+ break;
}
+
switch (vert) {
- case ANCHOR_MIDDLE:
- elem->corner.y = center.y - elem->height/2; break;
- case ANCHOR_END:
- elem->corner.y = bottom_right.y - elem->height; break;
- default:
- break;
+ case ANCHOR_MIDDLE:
+ elem->corner.y = center.y - elem->height/2;
+ break;
+ case ANCHOR_END:
+ elem->corner.y = bottom_right.y - elem->height;
+ break;
+ case ANCHOR_START:
+ default:
+ break;
}
p = elem->corner;
p.x += elem->width / 2.0;
p.y += elem->height / 2.0 - goal->text->height * goal->text->numlines / 2 +
goal->text->ascent;
- text_set_position(goal->text, &p);
+ text_set_position (goal->text, &p);
extra->border_trans = GOAL_LINE_DOUBLE_WIDTH / 2.0;
- element_update_boundingbox(elem);
+ element_update_boundingbox (elem);
obj->position = elem->corner;
- element_update_handles(elem);
+ element_update_handles (elem);
/* Update connections: */
nw = elem->corner;
@@ -494,48 +559,70 @@ goal_update_data(Goal *goal, AnchorShape horiz, AnchorShape vert)
sw.y = se.y;
sw.x = nw.x;
- connpointline_update(goal->north);
- connpointline_putonaline(goal->north,&ne,&nw,DIR_NORTH);
- connpointline_update(goal->west);
- connpointline_putonaline(goal->west,&nw,&sw,DIR_SOUTH);
- connpointline_update(goal->south);
- connpointline_putonaline(goal->south,&sw,&se,DIR_SOUTH);
- connpointline_update(goal->east);
- connpointline_putonaline(goal->east,&se,&ne,DIR_EAST);
+ connpointline_update (goal->north);
+ connpointline_putonaline (goal->north, &ne, &nw, DIR_NORTH);
+ connpointline_update (goal->west);
+ connpointline_putonaline (goal->west, &nw, &sw, DIR_SOUTH);
+ connpointline_update (goal->south);
+ connpointline_putonaline (goal->south, &sw, &se, DIR_SOUTH);
+ connpointline_update (goal->east);
+ connpointline_putonaline (goal->east, &se, &ne, DIR_EAST);
}
+
static ConnPointLine *
-goal_get_clicked_border(Goal *goal, Point *clicked)
+goal_get_clicked_border (Goal *goal, Point *clicked)
{
ConnPointLine *cpl;
real dist,dist2;
cpl = goal->north;
- dist = distance_line_point(&goal->north->start,&goal->north->end,0,clicked);
+ dist = distance_line_point (&goal->north->start,
+ &goal->north->end,
+ 0,
+ clicked);
+
+ dist2 = distance_line_point (&goal->west->start,
+ &goal->west->end,
+ 0,
+ clicked);
- dist2 = distance_line_point(&goal->west->start,&goal->west->end,0,clicked);
if (dist2 < dist) {
cpl = goal->west;
dist = dist2;
}
- dist2 = distance_line_point(&goal->south->start,&goal->south->end,0,clicked);
+
+ dist2 = distance_line_point (&goal->south->start,
+ &goal->south->end,
+ 0,
+ clicked);
+
if (dist2 < dist) {
cpl = goal->south;
dist = dist2;
}
- dist2 = distance_line_point(&goal->east->start,&goal->east->end,0,clicked);
+
+ dist2 = distance_line_point (&goal->east->start,
+ &goal->east->end,
+ 0,
+ clicked);
+
if (dist2 < dist) {
cpl = goal->east;
/*dist = dist2;*/
}
+
return cpl;
}
+
inline static ObjectChange *
-goal_create_change(Goal *goal, ObjectChange *inner, ConnPointLine *cpl) {
- return (ObjectChange *)inner;
+goal_create_change (Goal *goal, ObjectChange *inner, ConnPointLine *cpl)
+{
+ return (ObjectChange *) inner;
}
+
static ObjectChange *
goal_add_connpoint_callback(DiaObject *obj, Point *clicked, gpointer data)
{
diff --git a/objects/KAOS/other.c b/objects/KAOS/other.c
index 64ca4d3e..9ac42806 100644
--- a/objects/KAOS/other.c
+++ b/objects/KAOS/other.c
@@ -195,8 +195,9 @@ other_set_props(Other *other, GPtrArray *props)
other_update_data(other, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
}
+
static real
-other_distance_from(Other *other, Point *point)
+other_distance_from (Other *other, Point *point)
{
Element *elem = &other->element;
DiaRectangle rect;
@@ -205,89 +206,127 @@ other_distance_from(Other *other, Point *point)
rect.right = elem->corner.x + elem->width + OTHER_LINE_SIMPLE_WIDTH/2;
rect.top = elem->corner.y - OTHER_LINE_SIMPLE_WIDTH/2;
rect.bottom = elem->corner.y + elem->height + OTHER_LINE_SIMPLE_WIDTH/2;
- return distance_rectangle_point(&rect, point);
+ return distance_rectangle_point (&rect, point);
}
+
static void
-other_select(Other *other, Point *clicked_point,
- DiaRenderer *interactive_renderer)
+other_select (Other *other,
+ Point *clicked_point,
+ DiaRenderer *interactive_renderer)
{
- text_set_cursor(other->text, clicked_point, interactive_renderer);
- text_grab_focus(other->text, &other->element.object);
- element_update_handles(&other->element);
+ text_set_cursor (other->text, clicked_point, interactive_renderer);
+ text_grab_focus (other->text, &other->element.object);
+ element_update_handles (&other->element);
}
+
static ObjectChange*
-other_move_handle(Other *other, Handle *handle,
- Point *to, ConnectionPoint *cp,
- HandleMoveReason reason, ModifierKeys modifiers)
+other_move_handle (Other *other,
+ Handle *handle,
+ Point *to,
+ ConnectionPoint *cp,
+ HandleMoveReason reason,
+ ModifierKeys modifiers)
{
AnchorShape horiz = ANCHOR_MIDDLE, vert = ANCHOR_MIDDLE;
- assert(other!=NULL);
- assert(handle!=NULL);
- assert(to!=NULL);
+ g_return_val_if_fail (other != NULL, NULL);
+ g_return_val_if_fail (handle != NULL, NULL);
+ g_return_val_if_fail (to != NULL, NULL);
- element_move_handle(&other->element, handle->id, to, cp, reason, modifiers);
+ element_move_handle (&other->element,
+ handle->id, to, cp, reason, modifiers);
switch (handle->id) {
- case HANDLE_RESIZE_NW:
- horiz = ANCHOR_END; vert = ANCHOR_END; break;
- case HANDLE_RESIZE_N:
- vert = ANCHOR_END; break;
- case HANDLE_RESIZE_NE:
- horiz = ANCHOR_START; vert = ANCHOR_END; break;
- case HANDLE_RESIZE_E:
- horiz = ANCHOR_START; break;
- case HANDLE_RESIZE_SE:
- horiz = ANCHOR_START; vert = ANCHOR_START; break;
- case HANDLE_RESIZE_S:
- vert = ANCHOR_START; break;
- case HANDLE_RESIZE_SW:
- horiz = ANCHOR_END; vert = ANCHOR_START; break;
- case HANDLE_RESIZE_W:
- horiz = ANCHOR_END; break;
- default:
- break;
+ case HANDLE_RESIZE_NW:
+ horiz = ANCHOR_END;
+ vert = ANCHOR_END;
+ break;
+ case HANDLE_RESIZE_N:
+ vert = ANCHOR_END;
+ break;
+ case HANDLE_RESIZE_NE:
+ horiz = ANCHOR_START;
+ vert = ANCHOR_END;
+ break;
+ case HANDLE_RESIZE_E:
+ horiz = ANCHOR_START;
+ break;
+ case HANDLE_RESIZE_SE:
+ horiz = ANCHOR_START;
+ vert = ANCHOR_START;
+ break;
+ case HANDLE_RESIZE_S:
+ vert = ANCHOR_START;
+ break;
+ case HANDLE_RESIZE_SW:
+ horiz = ANCHOR_END;
+ vert = ANCHOR_START;
+ break;
+ case HANDLE_RESIZE_W:
+ horiz = ANCHOR_END;
+ break;
+ case HANDLE_MOVE_STARTPOINT:
+ case HANDLE_MOVE_ENDPOINT:
+ case HANDLE_CUSTOM1:
+ case HANDLE_CUSTOM2:
+ case HANDLE_CUSTOM3:
+ case HANDLE_CUSTOM4:
+ case HANDLE_CUSTOM5:
+ case HANDLE_CUSTOM6:
+ case HANDLE_CUSTOM7:
+ case HANDLE_CUSTOM8:
+ case HANDLE_CUSTOM9:
+ default:
+ break;
}
- other_update_data(other, horiz, vert);
+
+ other_update_data (other, horiz, vert);
+
return NULL;
}
+
static ObjectChange*
-other_move(Other *other, Point *to)
+other_move (Other *other, Point *to)
{
other->element.corner = *to;
- other_update_data(other, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
+ other_update_data (other, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
+
return NULL;
}
-static void compute_agent(Other *other, Point *pl) {
- double rx,ry,w,h,h2;
- Element *elem;
-
- elem=&other->element;
- w=elem->width;
- h=elem->height;
- rx=elem->corner.x;
- ry=elem->corner.y;
- h2=h/2;
-
- pl[0].x=rx;
- pl[0].y=ry+h2;
- pl[1].x=rx+h2;
- pl[1].y=ry;
- pl[2].x=rx+w-h2;
- pl[2].y=ry;
- pl[3].x=rx+w;
- pl[3].y=ry+h2;
- pl[4].x=rx+w-h2;
- pl[4].y=ry+h;
- pl[5].x=rx+h2;
- pl[5].y=ry+h;
+
+static void
+compute_agent (Other *other, Point *pl)
+{
+ double rx,ry,w,h,h2;
+ Element *elem;
+
+ elem=&other->element;
+ w=elem->width;
+ h=elem->height;
+ rx=elem->corner.x;
+ ry=elem->corner.y;
+ h2=h/2;
+
+ pl[0].x=rx;
+ pl[0].y=ry+h2;
+ pl[1].x=rx+h2;
+ pl[1].y=ry;
+ pl[2].x=rx+w-h2;
+ pl[2].y=ry;
+ pl[3].x=rx+w;
+ pl[3].y=ry+h2;
+ pl[4].x=rx+w-h2;
+ pl[4].y=ry+h;
+ pl[5].x=rx+h2;
+ pl[5].y=ry+h;
}
+
static void
draw_agent_icon (Other *other, DiaRenderer *renderer)
{
@@ -364,8 +403,9 @@ other_draw (Other *other, DiaRenderer *renderer)
text_draw (other->text, renderer);
}
+
static void
-other_update_data(Other *other, AnchorShape horiz, AnchorShape vert)
+other_update_data (Other *other, AnchorShape horiz, AnchorShape vert)
{
Element *elem = &other->element;
ElementBBExtras *extra = &elem->extra_spacing;
@@ -382,52 +422,70 @@ other_update_data(Other *other, AnchorShape horiz, AnchorShape vert)
center.y += elem->height/2;
bottom_right.y += elem->height;
- text_calc_boundingbox(other->text, NULL);
+ text_calc_boundingbox (other->text, NULL);
width = other->text->max_width + other->padding*2;
/* reserve some place for agent icon */
- if (other->type==AGENT) width+=AGENT_LEFT;
+ if (other->type==AGENT) {
+ width += AGENT_LEFT;
+ }
height = other->text->height * other->text->numlines + other->padding*2;
/* autoscale here */
- if (width > elem->width) elem->width = width;
- if (height > elem->height) elem->height = height;
+ if (width > elem->width) {
+ elem->width = width;
+ }
+
+ if (height > elem->height) {
+ elem->height = height;
+ }
+
/* some personal touch for agent */
- if ((other->type==AGENT) && (elem->width<elem->height)) elem->width=elem->height;
+ if ((other->type==AGENT) && (elem->width<elem->height)) {
+ elem->width = elem->height;
+ }
/* move shape if necessary ... */
switch (horiz) {
- case ANCHOR_MIDDLE:
- elem->corner.x = center.x - elem->width/2; break;
- case ANCHOR_END:
- elem->corner.x = bottom_right.x - elem->width; break;
- default:
- break;
+ case ANCHOR_MIDDLE:
+ elem->corner.x = center.x - elem->width/2;
+ break;
+ case ANCHOR_END:
+ elem->corner.x = bottom_right.x - elem->width;
+ break;
+ case ANCHOR_START:
+ default:
+ break;
}
+
switch (vert) {
- case ANCHOR_MIDDLE:
- elem->corner.y = center.y - elem->height/2; break;
- case ANCHOR_END:
- elem->corner.y = bottom_right.y - elem->height; break;
- default:
- break;
+ case ANCHOR_MIDDLE:
+ elem->corner.y = center.y - elem->height/2;
+ break;
+ case ANCHOR_END:
+ elem->corner.y = bottom_right.y - elem->height;
+ break;
+ case ANCHOR_START:
+ default:
+ break;
}
p = elem->corner;
- if (other->type==AGENT)
+ if (other->type == AGENT) {
p.x += (AGENT_LEFT+elem->width) / 2.0;
- else
+ } else {
p.x += elem->width / 2.0;
+ }
p.y += elem->height / 2.0 - other->text->height * other->text->numlines / 2 +
other->text->ascent;
- text_set_position(other->text, &p);
+ text_set_position (other->text, &p);
extra->border_trans = OTHER_LINE_DOUBLE_WIDTH / 2.0;
- element_update_boundingbox(elem);
+ element_update_boundingbox (elem);
obj->position = elem->corner;
- element_update_handles(elem);
+ element_update_handles (elem);
/* Update connections: */
nw = elem->corner;
@@ -437,53 +495,75 @@ other_update_data(Other *other, AnchorShape horiz, AnchorShape vert)
sw.y = se.y;
sw.x = nw.x;
- connpointline_update(other->north);
- connpointline_putonaline(other->north,&ne,&nw,DIR_NORTH);
- connpointline_update(other->west);
- connpointline_putonaline(other->west,&nw,&sw,DIR_WEST);
- connpointline_update(other->south);
- connpointline_putonaline(other->south,&sw,&se,DIR_SOUTH);
- connpointline_update(other->east);
- connpointline_putonaline(other->east,&se,&ne,DIR_EAST);
+ connpointline_update (other->north);
+ connpointline_putonaline(other->north, &ne, &nw, DIR_NORTH);
+ connpointline_update (other->west);
+ connpointline_putonaline (other->west, &nw, &sw, DIR_WEST);
+ connpointline_update (other->south);
+ connpointline_putonaline (other->south, &sw, &se, DIR_SOUTH);
+ connpointline_update (other->east);
+ connpointline_putonaline (other->east, &se, &ne, DIR_EAST);
other->center_cp.pos.x = (nw.x + se.x) / 2;
other->center_cp.pos.y = (nw.y + se.y) / 2;
}
+
static ConnPointLine *
-other_get_clicked_border(Other *other, Point *clicked)
+other_get_clicked_border (Other *other, Point *clicked)
{
ConnPointLine *cpl;
real dist,dist2;
cpl = other->north;
- dist = distance_line_point(&other->north->start,&other->north->end,0,clicked);
+ dist = distance_line_point (&other->north->start,
+ &other->north->end,
+ 0,
+ clicked);
+
+ dist2 = distance_line_point (&other->west->start,
+ &other->west->end,
+ 0,
+ clicked);
- dist2 = distance_line_point(&other->west->start,&other->west->end,0,clicked);
if (dist2 < dist) {
cpl = other->west;
dist = dist2;
}
- dist2 = distance_line_point(&other->south->start,&other->south->end,0,clicked);
+
+ dist2 = distance_line_point (&other->south->start,
+ &other->south->end,
+ 0,
+ clicked);
+
if (dist2 < dist) {
cpl = other->south;
dist = dist2;
}
- dist2 = distance_line_point(&other->east->start,&other->east->end,0,clicked);
+
+ dist2 = distance_line_point (&other->east->start,
+ &other->east->end,
+ 0,
+ clicked);
+
if (dist2 < dist) {
cpl = other->east;
/*dist = dist2;*/
}
+
return cpl;
}
+
inline static ObjectChange *
-other_create_change(Other *other, ObjectChange *inner, ConnPointLine *cpl) {
- return (ObjectChange *)inner;
+other_create_change (Other *other, ObjectChange *inner, ConnPointLine *cpl)
+{
+ return (ObjectChange *) inner;
}
+
static ObjectChange *
-other_add_connpoint_callback(DiaObject *obj, Point *clicked, gpointer data)
+other_add_connpoint_callback (DiaObject *obj, Point *clicked, gpointer data)
{
ObjectChange *change;
ConnPointLine *cpl;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]