#include "globals.h" static int where_am_i (View *,int,int, Window *,double *,double *,Window *,int); static int where_12 (View *,int,int); static int where_21 (View *,int,int); int where (int x, int y) { if (VIEW_MAP1->cell.configured && In_view (VIEW_MAP1, x, y)) where_12 (VIEW_MAP1, x, y); else if (VIEW_MAP1_ZOOM->cell.configured && In_view (VIEW_MAP1_ZOOM, x, y)) where_12 (VIEW_MAP1_ZOOM, x, y); else if (VIEW_MAP2->cell.configured && In_view (VIEW_MAP2, x, y)) where_21 (VIEW_MAP2, x, y); else if (VIEW_MAP2_ZOOM->cell.configured && In_view (VIEW_MAP2_ZOOM, x, y)) where_21 (VIEW_MAP2_ZOOM, x, y); return 0 ; /* return but don't quit */ } static int where_12 (View *view,int x,int y) { where_am_i (view, x, y, MENU_WINDOW, group.E12, group.N12, INFO_WINDOW,1); return 0; } static int where_21 (View *view,int x,int y) { where_am_i (view, x, y, INFO_WINDOW, group.E21, group.N21, MENU_WINDOW,2); return 0; } static int where_am_i ( View *view,int x,int y, Window *w1, double *E,double *N,Window *w2,int windnum) { double e1,n1,e2,n2; int row,col; char buf[100]; /* convert x,y to east,north at center of cell */ col = view_to_col (view, x); e1 = col_to_easting (&view->cell.head, col, 0.5); row = view_to_row (view, y); n1 = row_to_northing (&view->cell.head, row, 0.5); /* Curses_clear_window (w1); */ if(windnum == 2) Curses_write_window (INFO_WINDOW, 15, 2, "WHERE CURSOR "); else Curses_write_window (INFO_WINDOW, 15, 2, "WHERE CELL "); sprintf (buf, "E = %10.2f", e1); Curses_write_window (INFO_WINDOW, 17, 3, buf); sprintf (buf, "N = %10.2f", n1); Curses_write_window (INFO_WINDOW, 18, 3, buf); /* if tranformation equation is useable, determine point via equation */ if (group.equation_stat <= 0 || windnum == 2) { Curses_write_window (INFO_WINDOW, 15, 18, " "); Curses_write_window (INFO_WINDOW, 17, 18, " "); Curses_write_window (INFO_WINDOW, 18, 18, " "); return 1; } I_georef (e1, n1, &e2, &n2, E, N); /* Curses_clear_window (w2); */ Curses_write_window (INFO_WINDOW, 15, 18, "COORDINATES"); sprintf (buf, "E = %10.2f", e2); Curses_write_window (INFO_WINDOW, 17, 18, buf); sprintf (buf, "N = %10.2f", n2); Curses_write_window (INFO_WINDOW, 18, 18, buf); return 0; }