Esempio n. 1
0
void on_button_clicked_phase2(GtkWidget *button, gpointer data) {

	int i, j;

	i = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (button), "button_i"));
	j = GPOINTER_TO_INT(g_object_get_data (G_OBJECT (button), "button_j"));

	hide_label("hint");

	if (selected_i == -1) { //select phase

		if (board_owner[i][j] == 3) {

			show_hint("You cannot move red pieces!");

		} else if (board_owner[i][j] != turn) {

			show_hint("You can only move your own pieces!");

		} else {

			show_count_label_markup(i, j, board[i][j],
					"<span foreground=\"yellow\"><b>\%i</b></span>");
			selected_i = i;
			selected_j = j;

		}
	} else { //move phase

		if (board_owner[i][j] == -1) {
Esempio n. 2
0
static void HandleClient(t_x11 *x11,t_manager *man,long data[])
{
  int  ID,button,x,y;
  bool bPos;
  real fac;

  ID=data[0];
  button=data[1];
  x=data[2];
  y=data[3];
  bPos=(button==Button1);
  switch (ID) {
  case IDROTX:
  case IDROTY:
  case IDROTZ:
    rotate_3d(man->view,ID-IDROTX,bPos);
    draw_mol(x11,man);
    break;
  case IDZOOM:
    if (bPos)
      fac=0.8; /* Reduce distance between eye and origin */
    else
      fac=1.25;
    
    /*  zoom changed to scale by Berk Hess 3-7-96
    if (zoom_3d(man->view,fac))
      draw_mol(x11,man); */
    man->view->sc_x/=fac;
    man->view->sc_y/=fac;
    draw_mol(x11,man);
    break;
  case IDTRANSX:
  case IDTRANSY:
  case IDTRANSZ:
    translate_view(man->view,ID-IDTRANSX,bPos);
    draw_mol(x11,man);
    break;
  case IDREWIND:
    if (man->status != -1) {
      rewind_trj(man->status);
      read_next_x(man->status,&(man->time),man->natom,man->x,man->box);
      man->bEof=FALSE;
      draw_mol(x11,man);
    }
    break;
  case IDSTEP: {
    int      nat;

    nat=0;
    if (!step_man(man,&nat)) {
      man->bEof=TRUE;
      man->bStop=TRUE;
    }
    else {
      if (nat > 0) {
	draw_mol(x11,man);
	usleep(man->nWait*1000);
      }
    }
    break;
  }
  case IDFF:
    man->bStop=FALSE;
    break;
  case IDSTOP_ANI:
    man->bStop=TRUE;
    break;
  case IDDRAWMOL:
    draw_mol(x11,man);
    break;
  case IDLABEL:
    switch (button) {
    case Button1:
    case Button2:
      show_label(x11,man,x,y);
      break;
    case Button3:
      hide_label(x11,man,x,y);
      break;
    }
    break;
  default:
    break;
  }
  if (man->bAnimate && !man->bEof && !man->bStop)
    step_message(x11,man);
}