123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #include <grass/gis.h>
- #include <grass/display.h>
- #include "local_proto.h"
- #include <grass/glocale.h>
- int quit(struct Cell_head *defwin, struct Cell_head *currwin)
- {
- int screen_x, screen_y, button;
- int hand = 0;
- double ux1, uy1, ux2, uy2, ew, ns;
- fprintf(stderr, "\n\nButtons:\n");
- fprintf(stderr, "Left: reset to default region\n");
- fprintf(stderr, "Middle: reset to region before d.zoom started\n");
- fprintf(stderr, "Right: Quit\n");
- R_get_location_with_pointer(&screen_x, &screen_y, &button);
- if (button == 1) {
- ew = defwin->east - defwin->west;
- ns = defwin->north - defwin->south;
- if (ns <= defwin->ns_res) {
- ns = 2 * defwin->ns_res;
- }
- if (ew <= defwin->ew_res) {
- ew = 2 * defwin->ew_res;
- }
- ux1 = defwin->east;
- ux2 = defwin->west;
- uy1 = defwin->north;
- uy2 = defwin->south;
- set_win(defwin, ux1, uy1, ux2, uy2, hand);
- return 0;
- }
- if (button == 2) {
- ew = currwin->east - currwin->west;
- ns = currwin->north - currwin->south;
- if (ns <= currwin->ns_res) {
- ns = 2 * currwin->ns_res;
- }
- if (ew <= currwin->ew_res) {
- ew = 2 * currwin->ew_res;
- }
- ux1 = currwin->east;
- ux2 = currwin->west;
- uy1 = currwin->north;
- uy2 = currwin->south;
- set_win(currwin, ux1, uy1, ux2, uy2, hand);
- return 0;
- }
- if (button == 3) {
- return 0;
- }
- return 0;
- }
|