Exemplo n.º 1
0
static int cancel_which(void)
{
    if (which >= 0) {
	R_standard_color(BACKGROUND);
	Outline_box((report.top + which * height) + 1,
		    report.top + (which + 1) * height, report.left,
		    report.right - 1);
	show_point(first_point + which, 1);
    }
    which = -1;

    return 0;
}
Exemplo n.º 2
0
void frame_init (void)
{	
	//整体表格绘制
	uint16_t cur_x,cur_y;
	uint8_t up[] = "Up",down[] = "Down",lift[] = "Lift",ringt[] = "Right";
	for(cur_x = SysStarX;cur_x < SysEndX;cur_x += BSIZE)
	{
		for(cur_y = SysStarY;cur_y < SysEndY;cur_y += BSIZE)
		{
			ssd1289_draw_line(cur_x        ,cur_y,cur_x        ,cur_y + BSIZE,Green);
			ssd1289_draw_line(cur_x + BSIZE,cur_y,cur_x + BSIZE,cur_y + BSIZE,Green);

			ssd1289_draw_line(cur_x,        cur_y,cur_x + BSIZE,cur_y        ,Green);
			ssd1289_draw_line(cur_x,cur_y + BSIZE,cur_x + BSIZE,cur_y + BSIZE,Green);	
		}
	}
	//绘制按键
	//第一个
	ssd1289_square_full(290,5,315,45,BUTTON_UP);
	ssd1289_putchs(295,10,Black,CoppyB,lift);

	//第二个
	ssd1289_square_full(290,68,315,108,BUTTON_UP);
	ssd1289_putchs(295,68,Black,CoppyB,ringt);

	//第三个
	ssd1289_square_full(290,131,315,171,BUTTON_UP);
	ssd1289_putchs(295,136,Black,CoppyB,down);

	//第四个
	ssd1289_square_full(290,194,315,234,BUTTON_UP);
	ssd1289_putchs(295,204,Black,CoppyB,up);

	//初始化board变量 】
	for(cur_x = 0;cur_x < Vertical_boxs;cur_x ++)
	{
		for(cur_y = 0;cur_y < Horizontal_boxs;cur_y ++)
		{
			Table_board[cur_x][cur_y].var = 0;
			Table_board[cur_x][cur_y].color = Black;
		}
				
	}
	//打开滴答定时器
	SysTick->CTRL |= SysTick_CTRL_ENABLE;
	//初始化分数区域
	show_point(0);		
}
Exemplo n.º 3
0
Arquivo: display.c Projeto: bert/depcb
static void
show_item_layer(PcbItem *item, int layer)
{
	if (!pcb.layer->olay)
		return;
	hide_item_layer(item, layer);
	if (!(item->layers & LAYER(layer)))
		return;
	switch (item->type) {
	case PCB_POINT:
		show_point(item, layer);
		break;
	case PCB_LINE:
		show_line(item, layer);
		break;
	}
}
Exemplo n.º 4
0
/**
 * process_image_event()
 *
 * User has done something in the image window - mouse down or up.  Work out
 * what it is and do something with it.
 * If DOWN - just remember where it was.
 * If UP - for each word in the selected area do the operation defined by
 * the current mode.
 */
void Tesseract::process_image_event( // action in image win
                                    const SVEvent &event) {
   // The following variable should remain static, since it is used by
   // debug editor, which uses a single Tesseract instance.
  static ICOORD down;
  ICOORD up;
  TBOX selection_box;
  char msg[80];

  switch(event.type) {

    case SVET_SELECTION:
      if (event.type == SVET_SELECTION) {
        down.set_x(event.x + event.x_size);
        down.set_y(event.y + event.y_size);
        if (mode == SHOW_POINT_CMD_EVENT)
          show_point(current_page_res, event.x, event.y);
      }

      up.set_x(event.x);
      up.set_y(event.y);

      selection_box = TBOX(down, up);

      switch(mode) {
        case CHANGE_DISP_CMD_EVENT:
          process_selected_words(
              current_page_res,
              selection_box,
              &tesseract::Tesseract::word_blank_and_set_display);
          break;
       case DUMP_WERD_CMD_EVENT:
          process_selected_words(current_page_res,
                                 selection_box,
                                 &tesseract::Tesseract::word_dumper);
          break;
        case SHOW_BLN_WERD_CMD_EVENT:
          process_selected_words(current_page_res,
                                 selection_box,
                                 &tesseract::Tesseract::word_bln_display);
          break;
        case DEBUG_WERD_CMD_EVENT:
          debug_word(current_page_res, selection_box);
          break;
        case SHOW_POINT_CMD_EVENT:
          break;                 // ignore up event

        case RECOG_WERDS:
          image_win->AddMessage("Recogging selected words");
          this->process_selected_words(current_page_res,
                                       selection_box,
                                       &Tesseract::recog_interactive);
          break;
        case RECOG_PSEUDO:
          image_win->AddMessage("Recogging selected blobs");
          recog_pseudo_word(current_page_res, selection_box);
          break;

        default:
          sprintf(msg, "Mode %d not yet implemented", mode);
          image_win->AddMessage(msg);
          break;
      }
    default:
      break;
  }
}
Exemplo n.º 5
0
 void Notify(const SVEvent* sv_event) {
   if (sv_event->type == SVET_DESTROY)
     bln_word_window = NULL;
   else if (sv_event->type == SVET_CLICK)
     show_point(current_page_res, sv_event->x, sv_event->y);
 }
Exemplo n.º 6
0
static int pick(int x, int y)
{
    int n;
    int cur;

    cur = which;
    cancel_which();
    if (inbox(&more, x, y)) {
	if (curp >= group.points.count)
	    return 0;
	first_point = curp;
	pager = 1;
	return 1;
    }
    if (inbox(&less, x, y)) {
	if (first_point == 0)
	    return 0;
	first_point -= nlines;
	if (first_point < 0)
	    first_point = 0;
	pager = 1;
	return 1;
    }
    if (!inbox(&report, x, y)) {
	return 0;
    }

    n = (y - report.top) / height;
    if (n == cur) {		/* second click! */
	if (!delete_mode) {
	    group.points.status[first_point + n] =
		!group.points.status[first_point + n];
	    compute_transformation();
	    show_point(first_point + n, 1);
	    return 1;
	}
	else {
	    delete_control_point(first_point + n);
	    first_point = 0;
	    compute_transformation();
	    pager = 1;
	    return 1;
	}
    }

    /* first click */
    which = n;
    show_point(first_point + n, 0);
    if (!delete_mode)
	R_standard_color(RED);
    else
	R_standard_color(ORANGE);

    Outline_box((report.top + n * height) + 1, report.top + (n + 1) * height,
		report.left, report.right - 1);

    R_flush();

    return 0;			/* ignore first click */

}