示例#1
0
文件: vt.c 项目: Akehi/RTKLIB
/* delete character before cursor --------------------------------------------*/
static int del_cur(vt_t *vt)
{
    int i;
    if (vt->cur<=0) return 1;
    for (i=vt->cur;i<vt->n;i++) vt->buff[i-1]=vt->buff[i];
    vt->n--;
    return left_cur(vt)&&ref_buff(vt);
}
示例#2
0
文件: vt.c 项目: Akehi/RTKLIB
/* handle escape sequence ----------------------------------------------------*/
static int seq_esc(vt_t *vt)
{
    if (vt->nesc<3) return 1;
    vt->nesc=0;
    if (!strncmp(vt->esc+1,"[A",2)) return hist_prev(vt); /* cursor up */
    if (!strncmp(vt->esc+1,"[B",2)) return hist_next(vt); /* cursor down */
    if (!strncmp(vt->esc+1,"[C",2)) return right_cur(vt); /* cursor right */
    if (!strncmp(vt->esc+1,"[D",2)) return left_cur (vt); /* cursor left */
    return 1;
}
void
MapArea::createCursors(void)
{
   DEBUG_MSG("MapArea::createCursors(): creating new cursors\n");
   
      // TODO: Use X11 cursors

   top_left_cur()=new QCursor(SizeFDiagCursor);
   top_cur()=new QCursor(SizeVerCursor);
   top_right_cur()=new QCursor(SizeBDiagCursor);
   right_cur()=new QCursor(SizeHorCursor);
   bottom_left_cur()=new QCursor(SizeBDiagCursor);
   bottom_cur()=new QCursor(SizeVerCursor);
   bottom_right_cur()=new QCursor(SizeFDiagCursor);
   left_cur()=new QCursor(SizeHorCursor);
   inside_cur()=new QCursor(SizeAllCursor);
   ptr_cur()=new QCursor(ArrowCursor);
}
GPQCursor
MapArea::getCursor(int vic_code, int vic_data)
{
   DEBUG_MSG("MapArea::getCursor(): vic_code=" << vic_code <<
	     ", vic_data=" << vic_data << "\n");
   
   if (vic_code>=OBJECT_CODES) return ma_getCursor(vic_code, vic_data);
   else return (vic_code==FAR ? ptr_cur() :
		vic_code==TOP_LEFT ? top_left_cur() :
		vic_code==TOP ? top_cur() :
		vic_code==TOP_RIGHT ? top_right_cur() :
		vic_code==BOTTOM_LEFT ? bottom_left_cur() :
		vic_code==BOTTOM ? bottom_cur() :
		vic_code==BOTTOM_RIGHT ? bottom_right_cur() :
		vic_code==LEFT ? left_cur() :
		vic_code==RIGHT ? right_cur() :
		vic_code==INSIDE ? inside_cur() :
		inside_cur());
}