void dd_Window::activate() { image *tempimg = new image(xres,yres); Blit(0,0,img,tempimg); if(bActive) return; bActive = true; set_win(xres,yres,vid_bpp); Blit(0,0,tempimg,img); if(bVisible) ShowWindow(hwnd,SW_SHOWNA); }
void dd_Window::setResolution(int w, int h) { xres = w; yres = h; if(bActive) { if(bGameWindow) dd_SetMode(w,h,vid_bpp,vid_window); else set_win(w,h,vid_bpp); } else setupDummyImage(); }
int make_window_box(struct Cell_head *window, double magnify, int full, int hand) { int screen_x, screen_y; double px, py, ux1, uy1, ux2, uy2; double ns, ew; int button; int cur_screen_x, cur_screen_y; int mode; /* 1, 2 */ int resetwin; struct Cell_head defwin; int printmenu = 1; G_get_default_window(&defwin); mode = 1; while (1) { resetwin = 0; if (!hand) { if (printmenu) { fprintf(stderr, "\n\nButtons:\n"); fprintf(stderr, "Left: 1. corner\n"); fprintf(stderr, "Middle: Unzoom\n"); if (full) fprintf(stderr, "Right: Main menu\n\n"); else fprintf(stderr, "Right: Quit\n\n"); printmenu = 0; } } else { if (mode == 1) fprintf(stderr, "\r1. corner"); else fprintf(stderr, "\r2. corner"); } if (mode == 1) { if (!hand) { R_get_location_with_pointer(&screen_x, &screen_y, &button); } else { R_get_location_with_box(0, 0, &screen_x, &screen_y, &button); } cur_screen_x = screen_x; cur_screen_y = screen_y; } else { R_get_location_with_box(cur_screen_x, cur_screen_y, &screen_x, &screen_y, &button); } /* For print only */ px = D_d_to_u_col((double)screen_x); py = D_d_to_u_row((double)screen_y); if (!hand) print_coor(window, py, px); if (button == 1) { if (!hand) { if (mode == 1) { fprintf(stderr, "\n\nButtons:\n"); fprintf(stderr, "Left: 1. corner (reset)\n"); fprintf(stderr, "Middle: 2. corner\n"); if (full) fprintf(stderr, "Right: Main menu\n\n"); else fprintf(stderr, "Right: Quit\n\n"); mode = 2; } if (mode == 2) { cur_screen_x = screen_x; cur_screen_y = screen_y; } } else { /* hand */ if (mode == 1) { mode = 2; } else { ux1 = D_d_to_u_col((double)cur_screen_x); uy1 = D_d_to_u_row((double)cur_screen_y); ux2 = D_d_to_u_col((double)screen_x); uy2 = D_d_to_u_row((double)screen_y); resetwin = 1; mode = 1; } } } else if (button == 2) { if (mode == 1) { /* unzoom */ ux2 = D_d_to_u_col((double)screen_x); uy2 = D_d_to_u_row((double)screen_y); ew = window->east - window->west; ns = window->north - window->south; if (ns <= window->ns_res) ns = 2 * window->ns_res; else ew /= magnify; if (ew <= window->ew_res) ew = 2 * window->ew_res; else ns /= magnify; ux1 = window->east + ew / 2; ux2 = window->west - ew / 2; uy1 = window->north + ns / 2; uy2 = window->south - ns / 2; } else { ux1 = D_d_to_u_col((double)cur_screen_x); uy1 = D_d_to_u_row((double)cur_screen_y); ux2 = D_d_to_u_col((double)screen_x); uy2 = D_d_to_u_row((double)screen_y); printmenu = 1; mode = 1; } fprintf(stderr, "\n"); resetwin = 1; } else { fprintf(stderr, "\n"); return 1; } if (resetwin) { set_win(window, ux1, uy1, ux2, uy2, hand); } } fprintf(stderr, "\n"); return 1; /* not reached */ }