Пример #1
0
/* Moves cursor to the end of command-line on Ctrl+E and End. */
static void
cmd_end(key_info_t key_info, keys_info_t *keys_info)
{
	input_stat.index = input_stat.len;
	input_stat.curs_pos = input_stat.prompt_wid +
			wcswidth(input_stat.line, (size_t)-1);
	update_cursor();
}
Пример #2
0
void z_set_cursor (void)
{
    zword win = (h_version == V6) ? winarg2 () : 1;

    zword y = zargs[0];
    zword x = zargs[1];

    flush_buffer ();

    /* Supply default arguments */

    if (zargc < 3)
        zargs[2] = -3;

    /* Handle cursor on/off */

    if ((short) y < 0) {

        if ((short) y == -2)
            cursor = TRUE;
        if ((short) y == -1)
            cursor = FALSE;

        return;

    }

    /* Convert grid positions to screen units if this is not V6 */

    if (h_version != V6) {

        if (cwin == 0)
            return;

        y = (y - 1) * h_font_height + 1;
        x = (x - 1) * h_font_width + 1;

    }

    /* Protect the margins */

    if (y == 0)                 /* use cursor line if y-coordinate is 0 */
        y = wp[win].y_cursor;
    if (x == 0)                 /* use cursor column if x-coordinate is 0 */
        x = wp[win].x_cursor;
    if (x <= wp[win].left || x > wp[win].x_size - wp[win].right)
        x = wp[win].left + 1;

    /* Move the cursor */

    wp[win].y_cursor = y;
    wp[win].x_cursor = x;

    if (win == cwin)
        update_cursor ();

}/* z_set_cursor */
Пример #3
0
int putchar(char a )
{
  int color = 0x07;
	volatile char *video = (volatile char*)(video_vm);
  if(position>=ROW*COLUMN)
    scrollup(1);
  if(a=='\n')
  {
    position = ((position/80)+1)*80; 
    update_cursor(position/COLUMN, position%COLUMN);
    return 0;
  }
  *(video++ + 2*position) = a;
	*video++ = color;
  position++;
  update_cursor(position/COLUMN, position%COLUMN);
  return 1;
}
Пример #4
0
// Clears the console
void cls() {
    unsigned blank = attrib | ' ';

    for(int i = 0; i < CRT_SIZE; ++i)
        memsetw(crt.buf, blank, CRT_SIZE);

    crt.pos = 0;
    update_cursor();
}
Пример #5
0
// ------------------------------------------------------------------------
// window to display an adventure map
// determine correct cursor to display
// ------------------------------------------------------------------------
void t_adventure_map_window::update_cursor()
{
	t_screen_point point = get_mouse_position( this );
	t_screen_rect  rect = get_client_rect();

	if (!is_point_in_rect( point, rect ))
		return;
	update_cursor( point );
}
static void
cc_timezone_map_state_flags_changed (GtkWidget     *widget,
                                     GtkStateFlags  prev_state)
{
  update_cursor (widget);

  if (GTK_WIDGET_CLASS (cc_timezone_map_parent_class)->state_flags_changed)
    GTK_WIDGET_CLASS (cc_timezone_map_parent_class)->state_flags_changed (widget, prev_state);
}
Пример #7
0
void terminal_gotoxy(size_t x, size_t y)
{
	if(x < VGA_TERMINAL_WIDTH && y < VGA_TERMINAL_HEIGHT)
	{
		cursor_x = x;
		cursor_y = y;
	}
	update_cursor();
}
Пример #8
0
void clear(){
	uint16_t blank = 0x20 | (terminal_color << 8);

	memsetw(video_memory, blank, VGA_COLS*VGA_ROWS);

	terminal_row = 0;
	terminal_column = 0;
	update_cursor();
}
Пример #9
0
void kclear(){
	int pos = 0;
	for(int pos = 0;pos<25*80;pos++){
		videoram[pos*2] = ' ';
		videoram[pos*2+1] = 0x0F;
	}
	line_x = line_y = 0;
	update_cursor();
}
Пример #10
0
// paste external text
void clipboard_paste_text(gchar *text)
{
  struct Item *item;
  double pt[2];

  reset_selection();
  get_current_pointer_coords(pt);
  set_current_page(pt);  

  ui.selection = g_new(struct Selection, 1);
  ui.selection->type = ITEM_SELECTRECT;
  ui.selection->layer = ui.cur_layer;
  ui.selection->items = NULL;

  item = g_new(struct Item, 1);
  ui.selection->items = g_list_append(ui.selection->items, item);
  ui.cur_layer->items = g_list_append(ui.cur_layer->items, item);
  ui.cur_layer->nitems++;
  item->type = ITEM_TEXT;
  g_memmove(&(item->brush), &(ui.brushes[ui.cur_mapping][TOOL_PEN]), sizeof(struct Brush));
  item->text = text; // text was newly allocated, we keep it
  item->font_name = g_strdup(ui.font_name);
  item->font_size = ui.font_size;
  item->bbox.left = pt[0]; item->bbox.top = pt[1];
  make_canvas_item_one(ui.cur_layer->group, item);
  update_item_bbox(item);

  // move the text to fit on the page if needed
  if (item->bbox.right > ui.cur_page->width) item->bbox.left += ui.cur_page->width-item->bbox.right;
  if (item->bbox.left < 0) item->bbox.left = 0;
  if (item->bbox.bottom > ui.cur_page->height) item->bbox.top += ui.cur_page->height-item->bbox.bottom;
  if (item->bbox.top < 0) item->bbox.top = 0;
  gnome_canvas_item_set(item->canvas_item, "x", item->bbox.left, "y", item->bbox.top, NULL);
  update_item_bbox(item);
  
  ui.selection->bbox = item->bbox;
  ui.selection->canvas_item = gnome_canvas_item_new(ui.cur_layer->group,
      gnome_canvas_rect_get_type(), "width-pixels", 1,
      "outline-color-rgba", 0x000000ff,
      "fill-color-rgba", 0x80808040,
      "x1", ui.selection->bbox.left, "x2", ui.selection->bbox.right, 
      "y1", ui.selection->bbox.top, "y2", ui.selection->bbox.bottom, NULL);
  make_dashed(ui.selection->canvas_item);

  prepare_new_undo();
  undo->type = ITEM_PASTE;
  undo->layer = ui.cur_layer;
  undo->itemlist = g_list_copy(ui.selection->items);  
  
  update_copy_paste_enabled();
  update_color_menu();
  update_thickness_buttons();
  update_color_buttons();
  update_font_button();  
  update_cursor(); // FIXME: can't know if pointer is within selection!
}
Пример #11
0
void *cursor_motion_thread(void *targs) {

    struct MCursor *this = (struct MCursor *)targs;
 
    Display *dpy;
    int xi_opcode, event, error;
    XEvent ev;

    dpy = XOpenDisplay(NULL);

    if (!dpy) {
    	MLOGE("Failed to open display.\n");
    	return (void *)-1;
    }

    if (!XQueryExtension(dpy, "XInputExtension", &xi_opcode, &event, &error)) {
       MLOGE("X Input extension not available.\n");
       XCloseDisplay(dpy);
       return (void *)-1;
    }

    if (!has_xi2(dpy)){
        XCloseDisplay(dpy);
        return (void *)-1;
    }
       

    /* select for XI2 events */
    select_events(dpy, DefaultRootWindow(dpy));

    while(1) 
    {
    	XGenericEventCookie *cookie = &ev.xcookie;
    	Window      	root_ret, child_ret;
    	int         	root_x, root_y;
    	int         	win_x, win_y;
    	unsigned int    mask;

    	XNextEvent(dpy, &ev);

    	if (cookie->type == GenericEvent && cookie->extension == xi_opcode && XGetEventData(dpy, cookie)){
            
            if (cookie->evtype == XI_RawMotion) {
                XQueryPointer(dpy, DefaultRootWindow(dpy), &root_ret, &child_ret, &root_x, &root_y, &win_x, &win_y, &mask);
                update_cursor(dpy, this->mMdpy, &this->mBuffer, root_x, root_y);
            }

            XFreeEventData(dpy, cookie);
        }

    	
    }
 
    XCloseDisplay(dpy);
    return NULL;
}
Пример #12
0
/*
Function to clear the screen. Starts from the start of the memory (0xB8000) and
fills every ASCII byte to 0x20 which is space and assigns the attribute byte to
0x0 which is black.
*/
void cls(){
       int i;
       volatile char* video = (volatile char*)START_MEMORY;
       for(i=0; i<(MAX_ROWS * MAX_COLUMNS); i++){
               *video++ = 0x20;
               *video++ = 0x0;
       }
       video_memory = (char *)START_MEMORY;
       update_cursor();
}
Пример #13
0
// Handle mouse movement
void handle_mouse(gl_t *state, struct input_event *event)
{
    // Get launcher_state from gl_state
    launcher_t *launcher_state = (launcher_t*)state->user_pointer;

    // Initialize mouse position
    static int x = 1920/2;
    static int y = 1080/2;

    // Handle mouse movement
    switch(event->code)
    {
        case REL_X:
            x += 2*event->value;
            // Make sure not to go out of bounds
            if(x < 0.0f)
                x = 0.0f;
            else if(x > state->screen_width)
                x = state->screen_width;
            update_cursor(launcher_state, x, y);
            break;
        case REL_Y:
            y += 2*event->value;
            if(y < 0.0f)
                y = 0.0f;
            else if(y > state->screen_height)
                y = state->screen_height;
            update_cursor(launcher_state, x, y);
            break;
        case REL_WHEEL:
            if(event->value > 0.0f)
                break;
            else if(event->value < 0.0f)
                break;
            break;
        case REL_HWHEEL:
            if(event->value > 0.0f)
                break;
            else if(event->value < 0.0f)
                break;
            break;
    }
}
size_t __write(int fd, char buffer, size_t count){
	int i =0;
	((char *)(POSITION+cursor))[i]=(char)buffer;
	i++;
	//((char *)(POSITION+cursor))[i]=WHITE_TXT;
	i++;
	cursor+=2;
	update_cursor();
	return i;
}
Пример #15
0
void kcls()
{
	int ir, ic;
	for (ir = 0; ir < CON_ROWS; ir++)
		for (ic = 0; ic < CON_COLUMNS; ic++)
			kputc(' ');
	cur_c->c_col = 0;
	cur_c->c_row = 0;
	update_cursor(0,0);
}
Пример #16
0
/**
 * The initialization of the terminal.
 */
void term_init(void) {
    uint16_t i;
    int16_t * const map_start = (int16_t *)VGA_COLOR_TEXT_MAP_ADDR;
    uint16_t c16 = vga_char(' ');
    x = 0;
    y = 0;
    update_cursor();
    for(i = 0; i < (COL * ROW); i++)
        map_start[i] = c16;
}
Пример #17
0
void clear(void) {
    // FIXME Use string's memset here
    short *pos = (short *) VGA_TEXT_BUFFER;
    for (int i=0; i < MAX_COLS * MAX_ROWS; ++i) {
        *pos++ = 0;
    }
    x = 0;
    y = 0;
    update_cursor();
}
Пример #18
0
void fill(char ch, char attr) {
	unsigned int i = 0;

	while (i < SCREENSIZE) {
		video[i++] = ch;
		video[i++] = attr;
	}
	current_loc = 0;
	update_cursor();
}
Пример #19
0
void TEdit::disp(SDL_Surface *s, TFont *myfont, int x, int y, int w,int h,
  int fg, int bg, int xoptions) {
  font = myfont;
  font->set_utf(is_utf);
  if (*menu->label) {
      // Draw the static without a changing bg
    TStatic::disp(s,myfont,x,y,xoptions-x,h,mymakecol(255,255,255),0,xoptions);
    w -= xoptions - x;
    x = xoptions;
  }
  rectangleColor(s,x,y,x+maxw-1,y+h-1,mymakecol(255,255,255));
  // boxColor(s,x+1,y+1,x+maxw-3,y+h-3,bg_color);
  if (field[0]) {
      int w,h;
      font->dimensions(field,&w,&h);
      // -8 for the size of the cursor in the end..
      int max = (pos == strlen(field) ? maxw-8 : maxw);
      if (w > max) {
	  unsigned int p;
	  char old = 0;
	  int end;
	  for (p=0; p<strlen(field) && p<pos; p++) {
	      font->dimensions(&field[p],&w,&h);
	      if (w <= max) break;
	  }
	  if (w > max) {
	      for (end=strlen(field)-1; end>=0; end--) {
		  old = field[end];
		  field[end] = 0;
		  font->dimensions(&field[p],&w,&h);
		  if (w <= max) break;
		  field[end] = old;
	      }
	  }
	  font->surf_string(s,x+1,y+1,&field[p],fg_color,0,0);
	  if (old) field[end] = old;
	  old = field[pos]; field[pos] = 0;
	  font->dimensions(&field[p],&curx,&curh);
	  curx += x+1;
	  field[pos] = old;
      } else {
	  font->surf_string(s,x+1,y+1,field,fg_color,0,0);
	  char old = field[pos]; field[pos] = 0;
	  font->dimensions(field,&curx,&curh);
	  curx += x+1;
	  field[pos] = old;
      }
  } else {
      curx = x+1; curh = h;
  }
  cury = y; mys = s;
  if (bg && cursor_on) {
    update_cursor();
  }
}
Пример #20
0
void z_print_table (void)
{
    zword addr = zargs[0];
    zword x;
    int i, j;

    flush_buffer ();

    /* Supply default arguments */

    if (zargc < 3)
        zargs[2] = 1;
    if (zargc < 4)
        zargs[3] = 0;

    /* Write text in width x height rectangle */

    x = cwp->x_cursor;

    for (i = 0; i < zargs[2]; i++) {

        if (i != 0) {

            if (h_version != V6 && cwin == 0) {

                new_line ();

            } else {

                flush_buffer ();

                cwp->y_cursor += font_height;
                cwp->x_cursor = x;

                update_cursor ();

            }
        }

        for (j = 0; j < zargs[1]; j++) {

            zbyte c;

            LOW_BYTE (addr, c)
            addr++;

            print_char (c);

        }

        addr += zargs[3];

    }

}/* z_print_table */
Пример #21
0
int puts(char* str)
{
  int strlength=0;
  while(*str)
  {
    putchar(*(str++));
    strlength++;
  }
  update_cursor(position/COLUMN, position%COLUMN);
  return strlength;
}
Пример #22
0
void putch(char c,int color)
{	
	//Print a character to the video memory
	location =  VIDEO_MEM+(((Cols*2) * y_pos )+ (x_pos * 2));
	char * s = (char*)(intptr_t)location;
	s[0] = c;
	s[1] = color;
	
	x_pos++;
	update_cursor();
}
Пример #23
0
void clear_console(void) {
	unsigned int i = COLS * 2;

	for (; i < SCREENSIZE; ) {
		video[i++] = ' ';
		video[i++] = DEFAULT;
	}

	current_loc = COLS * 2;
	update_cursor();
}
Пример #24
0
void clear(unsigned int color) {
	char *vidptr = (char*)0xb8000;
	unsigned int j = 0;
	while(j < 80 * 25 * 2) {
		vidptr[j] = ' ';
		vidptr[j+1] = color;
		j = j + 2;
	}
	cursorpos = 0;
	update_cursor(cursorpos);
}
Пример #25
0
/* clear current screen */
inline void clear(void)
{
	char *addr = (char*) curcons->start;
	int n = 0;

	while (n < (SCR_SIZE * 2)) {
		addr[n++] = ' ';
		addr[n++] = WHITE;
	}
	curcons->column = curcons->row = 0;
	update_cursor(curcons);
}
Пример #26
0
static void putc(char c) {
  if (in_escape) {
    in_escape = handle_escape(c);
    return;
  }

  int back = c_back;
  int fore = c_fore;

  switch (c) {
  case 0x08: /* Backspace */
    --cursor_x;
    if (cursor_x > 80) { /* Wrapped? */
      cursor_x = 0;
      if (cursor_y > 0)
        --cursor_y;
    }
    break;

  case '\t':
    cursor_x = (cursor_x+8) & ~7;
    break;

  case '\r':
    cursor_x = 0;
    break;

  case '\n':
    cursor_x = 0;
    ++cursor_y;
    break;

  case '\033':
    /* VT220 escape */
    in_escape = 1;
    return;

  default:
    /* Is the character printable? */
    if (c >= ' ') {
      video_memory[cursor_y*80 + cursor_x] = MAKE_CHAR(c, fore, back);
      ++cursor_x;
    }
    break;
  }

  if (cursor_x >= 80) {
    cursor_x -= 80;
    ++cursor_y;
  }
  scroll();
  update_cursor();
}
Пример #27
0
void clear_screen (void) {
    int32_t i;
    for(i=0; i<NUM_ROWS*NUM_COLS; i++) {
        *(uint8_t *)(video_mem + (i << 1)) = ' ';
        *(uint8_t *)(video_mem + (i << 1) + 1) = text_color;
    }

    screen_x[active_terminal] = 0;
    screen_y[active_terminal] = 0;

    update_cursor(screen_y[active_terminal], screen_x[active_terminal]);
}
Пример #28
0
void
meta_cursor_renderer_set_cursor (MetaCursorRenderer  *renderer,
                                 MetaCursorReference *cursor)
{
  MetaCursorRendererPrivate *priv = meta_cursor_renderer_get_instance_private (renderer);

  if (priv->displayed_cursor == cursor)
    return;

  priv->displayed_cursor = cursor;
  update_cursor (renderer);
}
void DisplayChannel::set_capture_mode(bool on)
{
    if (_capture_mouse_mode == on) {
        return;
    }
    _capture_mouse_mode = on;
    update_cursor();
    if (_inputs_channel && !_capture_mouse_mode && _active_pointer) {
        _inputs_channel->on_mouse_position(_pointer_pos.x, _pointer_pos.y, _buttons_state,
                                           get_id());
    }
}
Пример #30
0
void terminal_clear_screen(void)
{
	for(size_t y = 0; y < VGA_TERMINAL_HEIGHT; y++)
	{
		for (size_t x = 0; x < VGA_TERMINAL_WIDTH; x++)
		{
			terminal_buffer[ (VGA_TERMINAL_WIDTH * y) + x] = make_vgaentry(' ', terminal_color);
		}
	}
	cursor_x = cursor_y = 0;
	update_cursor();
}