home *** CD-ROM | disk | FTP | other *** search
- /* wminscha.c (emx+gcc) -- Copyright (c) 1987-1993 by Eberhard Mattes */
-
- #include <string.h>
- #include <sys/winmgr.h>
- #include "winmgr2.h"
-
- void wm_ins_char (wm_handle wh, int x, int y, int count)
- {
- char *mem;
- int idx, px, py, len;
-
- if (wh->used != WM_USED || count <= 0)
- return;
- if (x+count >= wh->width)
- count = wh->width-x;
- len = wh->width-x - count;
- px = x + wh->ax;
- py = y + wh->ay;
- idx = px + py * wh->bwidth;
- mem = &wh->data[2*idx];
- memmove (mem + 2 * count, mem, 2 * len);
- while (--count >= 0)
- {
- mem[2*count+0] = ' ';
- mem[2*count+1] = (char)wh->wattr;
- }
- if (wh->display)
- {
- px = x+wh->x0;
- py = y+wh->y0;
- if (wh->visible)
- _wm_move2 (mem, py, px, wh->bx1, 1);
- else
- _wm_line2 (&wh->mask[idx], mem, py, px, wh->bx1);
- }
- else
- wh->update_req = TRUE;
- _wm_cursor1 ();
- }
-