void constrained_resizing_ebd(int x, int y) { elastic_ebd(); adjust_box_pos(x, y, from_x, from_y, &cur_x, &cur_y); length_msg(MSG_DIAM); elastic_ebd(); }
void resizing_ebd(int x, int y) { elastic_ebd(); cur_x = x; cur_y = y; length_msg(MSG_DIAM); elastic_ebd(); }
static void fix_movedellipsepoint(int x, int y) { switch (cur_e->type) { case T_ELLIPSE_BY_RAD: elastic_ebr(); break; case T_CIRCLE_BY_RAD: elastic_cbr(); break; case T_ELLIPSE_BY_DIA: elastic_ebd(); break; case T_CIRCLE_BY_DIA: elastic_cbd(); break; } canvas_ref_proc = canvas_locmove_proc = null_proc; adjust_box_pos(x, y, from_x, from_y, &cur_x, &cur_y); new_e = copy_ellipse(cur_e); relocate_ellipsepoint(new_e, cur_x, cur_y, movedpoint_num); change_ellipse(cur_e, new_e); /* redraw anything under the old ellipse */ redisplay_ellipse(cur_e); /* and the new one */ redisplay_ellipse(new_e); /* turn back on all relevant markers */ update_markers(new_objmask); wrapup_movepoint(); }
static void cancel_movedellipsepoint(void) { canvas_ref_proc = canvas_locmove_proc = null_proc; /* erase elastic version */ switch (cur_e->type) { case T_ELLIPSE_BY_RAD: elastic_ebr(); break; case T_CIRCLE_BY_RAD: elastic_cbr(); break; case T_ELLIPSE_BY_DIA: elastic_ebd(); break; case T_CIRCLE_BY_DIA: elastic_cbd(); break; } /* redraw original ellipse */ redisplay_ellipse(cur_e); /* turn back on all relevant markers */ update_markers(new_objmask); wrapup_movepoint(); }
static void cancel_ellipsebydia(void) { elastic_ebd(); center_marker(fix_x, fix_y); circle_ellipse_bydiameter_drawing_selected(); draw_mousefun_canvas(); }
static void init_ellipsebydiameter_drawing(int x, int y) { cur_mode = F_ELLIPSE_BY_DIA; cur_x = fix_x = x; cur_y = fix_y = y; cur_angle = cur_elltextangle/180.0*M_PI; center_marker(fix_x, fix_y); set_mousefun("final corner", "final corner", "cancel", "", "", ""); draw_mousefun_canvas(); canvas_locmove_proc = resizing_ebd; canvas_leftbut_proc = create_ellipsebydia; canvas_middlebut_proc = create_ellipsebydia; canvas_rightbut_proc = cancel_ellipsebydia; set_cursor(null_cursor); elastic_ebd(); set_action_on(); }
static void create_ellipsebydia(int x, int y) { F_ellipse *ellipse; elastic_ebd(); center_marker(fix_x, fix_y); if ((ellipse = create_ellipse()) == NULL) return; ellipse->type = T_ELLIPSE_BY_DIA; ellipse->style = cur_linestyle; ellipse->thickness = cur_linewidth; ellipse->style_val = cur_styleval * (cur_linewidth + 1) / 2; ellipse->angle = cur_elltextangle/180.0*M_PI; /* convert to radians */ ellipse->pen_color = cur_pencolor; ellipse->fill_color = cur_fillcolor; ellipse->depth = cur_depth; ellipse->pen_style = -1; ellipse->fill_style = cur_fillstyle; ellipse->direction = 1; ellipse->center.x = (fix_x + x) / 2; ellipse->center.y = (fix_y + y) / 2; ellipse->radiuses.x = abs(ellipse->center.x - fix_x); ellipse->radiuses.y = abs(ellipse->center.y - fix_y); ellipse->start.x = fix_x; ellipse->start.y = fix_y; ellipse->end.x = x; ellipse->end.y = y; ellipse->next = NULL; add_ellipse(ellipse); reset_action_on(); /* this signals redisplay_curobj() not to refresh */ /* draw it and anything on top of it */ redisplay_ellipse(ellipse); circle_ellipse_bydiameter_drawing_selected(); draw_mousefun_canvas(); }