static void place_spline_x(int x, int y) { canvas_leftbut_proc = null_proc; canvas_middlebut_proc = null_proc; canvas_rightbut_proc = null_proc; canvas_locmove_proc = null_proc; canvas_ref_proc = null_proc; adjust_pos(x, y, fix_x, fix_y, &x, &y); translate_spline(new_s, x - fix_x, y - fix_y); if (return_proc == copy_selected) { add_spline(new_s); } else { list_add_spline(&objects.splines, new_s); clean_up(); set_lastposition(fix_x, fix_y); set_newposition(x, y); set_action_object(F_MOVE, O_SPLINE); set_latestspline(new_s); set_modifiedflag(); } redisplay_spline(new_s); /* turn back on all relevant markers */ update_markers(new_objmask); (*return_proc) (); draw_mousefun_canvas(); }
const chowstring & ArrayObject::get_string(int x, int y, int z) { adjust_pos(x, y, z); if (!is_valid(x, y, z)) return empty_string; return data.strings[get_index(x, y, z)]; }
static void place_line_x(int x, int y) { int dx, dy; canvas_leftbut_proc = null_proc; canvas_middlebut_proc = null_proc; canvas_rightbut_proc = null_proc; canvas_locmove_proc = null_proc; canvas_ref_proc = null_proc; adjust_pos(x, y, fix_x, fix_y, &x, &y); dx = x - fix_x; dy = y - fix_y; translate_line(new_l, dx, dy); clean_up(); set_latestline(new_l); if (return_proc == copy_selected) { add_line(new_l); adjust_links(cur_linkmode, cur_links, dx, dy, 0, 0, 1.0, 1.0, True); free_linkinfo(&cur_links); } else { list_add_line(&objects.lines, new_l); adjust_links(cur_linkmode, cur_links, dx, dy, 0, 0, 1.0, 1.0, False); set_lastposition(fix_x, fix_y); set_newposition(x, y); set_lastlinkinfo(cur_linkmode, cur_links); cur_links = NULL; set_action_object(F_MOVE, O_POLYLINE); } set_modifiedflag(); redisplay_line(new_l); /* turn back on all relevant markers */ update_markers(new_objmask); (*return_proc) (); draw_mousefun_canvas(); }
ArrayNumber ArrayObject::get_value(int x, int y, int z) { adjust_pos(x, y, z); if (!is_valid(x, y, z)) return 0; return data.array[get_index(x, y, z)]; }
void moving_box(int x, int y) { elastic_movebox(); adjust_pos(x, y, fix_x, fix_y, &cur_x, &cur_y); length_msg(MSG_DIST); elastic_movebox(); }
void moving_spline(int x, int y) { elastic_moveline(new_s->points); adjust_pos(x, y, fix_x, fix_y, &cur_x, &cur_y); length_msg(MSG_DIST); elastic_moveline(new_s->points); }
void moving_arc(int x, int y) { elastic_movearc(new_a); adjust_pos(x, y, fix_x, fix_y, &cur_x, &cur_y); length_msg(MSG_DIST); elastic_movearc(new_a); }
void reshaping_line(int x, int y) { elastic_linelink(); adjust_pos(x, y, from_x, from_y, &cur_x, &cur_y); /* one or two lines moving with the move point? */ if (left_point != NULL && right_point != NULL) { length_msg2(left_point->x,left_point->y, right_point->x,right_point->y,cur_x,cur_y); } else if (left_point != NULL) { altlength_msg(MSG_LENGTH,left_point->x,left_point->y); } else if (right_point != NULL) { altlength_msg(MSG_LENGTH,right_point->x,right_point->y); } elastic_linelink(); }
void reshaping_arc(int x, int y) { elastic_arclink(); adjust_pos(x, y, cur_a->point[movedpoint_num].x, cur_a->point[movedpoint_num].y, &cur_x, &cur_y); if (movedpoint_num == 1) { /* middle point */ arc_msg(cur_a->point[0].x, cur_a->point[0].y, cur_a->point[2].x, cur_a->point[2].y, cur_x, cur_y); } else { /* end point */ altlength_msg(MSG_LENGTH,cur_a->point[1].x,cur_a->point[1].y); } elastic_arclink(); }
static void fix_movedarcpoint(int x, int y) { canvas_ref_proc = canvas_locmove_proc = null_proc; elastic_arclink(); /* erase last lengths if appres.showlengths is true */ erase_lengths(); adjust_pos(x, y, cur_a->point[movedpoint_num].x, cur_a->point[movedpoint_num].y, &x, &y); new_a = copy_arc(cur_a); relocate_arcpoint(new_a, x, y, movedpoint_num); change_arc(cur_a, new_a); /* redraw anything under the old arc */ redisplay_arc(cur_a); /* and the new one */ redisplay_arc(new_a); /* turn back on all relevant markers */ update_markers(new_objmask); wrapup_movepoint(); }
LRESULT APIENTRY MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_CREATE: create_toolbar(hwnd); create_term(hwnd); create_sysmenu(hwnd); return 0; case WM_SIZE: SendMessage(wndTB, TB_AUTOSIZE, 0, 0); get_def_size(LOWORD(lParam), HIWORD(lParam)); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; case WM_COMMAND: switch (LOWORD(wParam)) { case BUT_OPEN: open_file(); break; case BUT_REWIND: but_rewind: if (play_state==-1) break; EnterCriticalSection(&vt_mutex); replay_pause(); tr.tv_sec=0; tr.tv_usec=0; set_prog(); replay_seek(); LeaveCriticalSection(&vt_mutex); play_state=1; replay_resume(); do_replay(); break; case BUT_PAUSE: if (play_state==1) goto but_unpause; but_pause: CancelWaitableTimer(timer); replay_pause(); set_buttons(1); break; case BUT_PLAY: if (play_state>1) goto but_pause; but_unpause: replay_resume(); do_replay(); set_buttons(1); break; case BUT_SELSTART: if (play_state==-1) break; get_pos(); selstart=tr; set_prog_sel(); break; case BUT_SELEND: if (play_state==-1) break; selend=tr; set_prog_sel(); break; case BUT_EXPORT: if (play_state==-1) break; if (tcmp(selstart, selend)>=0) break; export_file(); break; } return 0; case WM_SYSCOMMAND: switch (LOWORD(wParam)) { default: return DefWindowProc(hwnd, uMsg, wParam, lParam); case BUT_FONT: choose_font(); } return 0; case WM_HSCROLL: if ((HANDLE)lParam==wndSpeed) speed_scrolled(); else if ((HANDLE)lParam==wndProg) prog_scrolled(); return 0; case WM_KEYDOWN: switch (wParam) { case VK_ADD: case 'F': adjust_speed(+1); break; case VK_SUBTRACT: case 'S': adjust_speed(-1); break; case '1': SendMessage(wndSpeed, TBM_SETPOS, 1, 2); speed_scrolled(); break; case 'Q': DestroyWindow(wndMain); break; case 'O': open_file(); break; case VK_SPACE: switch (play_state) { case -1: open_file(); break; case 0: play_state=2; goto but_rewind; case 1: goto but_unpause; case 2: case 3: goto but_pause; } break; case 'R': goto but_rewind; break; case VK_RIGHT: adjust_pos(+10); break; case VK_LEFT: adjust_pos(-10); break; case VK_UP: adjust_pos(+60); break; case VK_DOWN: adjust_pos(-60); break; case VK_PRIOR: adjust_pos(+600); break; case VK_NEXT: adjust_pos(-600); break; } return 0; case WM_SIZING: constrain_size((LPRECT)lParam); return 1; default: return DefWindowProc(hwnd, uMsg, wParam, lParam); } return 0; }
void ArrayObject::set_string(const chowstring & value, int x, int y, int z) { adjust_pos(x, y, z); expand(x, y, z); data.strings[get_index(x, y, z)] = value; }
void ArrayObject::set_value(ArrayNumber value, int x, int y, int z) { adjust_pos(x, y, z); expand(x, y, z); data.array[get_index(x, y, z)] = value; }