Esempio n. 1
0
/**************************************************************************
  ...
**************************************************************************/
static void overview_mouse_press_callback(struct sw_widget *widget,
					  const struct ct_point *pos,
					  enum be_mouse_button button,
					  int state, void *data)
{
  int xtile, ytile;

  freelog(LOG_DEBUG, "press (%d,%d)", pos->x, pos->y);
  overview_to_map_pos(&xtile,&ytile,pos->x,pos->y);
  freelog(LOG_DEBUG, " --> (%d,%d)", xtile, ytile);
  if (can_client_change_view() && button == 3) {
    center_tile_mapcanvas(map_pos_to_tile(xtile, ytile));
  }
  /* FIXME else if (can_client_issue_orders() && ev->button == 1) {
     do_unit_goto(xtile, ytile);
     }
   */
}
Esempio n. 2
0
/**************************************************************************
  Button pressed at overview
**************************************************************************/
gboolean butt_down_overviewcanvas(GtkWidget *w, GdkEventButton *ev, gpointer data)
{
  int xtile, ytile;

  if (ev->type != GDK_BUTTON_PRESS)
    return TRUE; /* Double-clicks? Triple-clicks? No thanks! */

  overview_to_map_pos(&xtile, &ytile, ev->x, ev->y);

  if (can_client_change_view() && (ev->button == 3)) {
    center_tile_mapcanvas(map_pos_to_tile(xtile, ytile));
  } else if (can_client_issue_orders() && (ev->button == 1)) {
    do_map_click(map_pos_to_tile(xtile, ytile),
		 (ev->state & GDK_SHIFT_MASK) ? SELECT_APPEND : SELECT_POPUP);
  }

  return TRUE;
}
Esempio n. 3
0
/**************************************************************************
...
**************************************************************************/
void mapctrl_btn_overviewcanvas(XEvent *event)
{
  int map_x, map_y;
  struct tile *ptile;
  XButtonEvent *ev = &event->xbutton;

  if (!can_client_change_view()) {
    return;
  }

  overview_to_map_pos(&map_x, &map_y, event->xbutton.x, event->xbutton.y);
  ptile = map_pos_to_tile(map_x, map_y);
  if (!ptile) {
    return;
  }

  if(ev->button==Button1)
    do_map_click(ptile, SELECT_POPUP);
  else if(ev->button==Button3)
    center_tile_mapcanvas(ptile);
}