- XCopyArea(display, gd->pixmap, drawto, gc,
- gd->x, gd->y, gi->width, gi->height, gi->x, gi->y);
+ case GD_TYPE_TEXTINPUT:
+ {
+ int i;
+
+ /* left part of gadget */
+ XCopyArea(display, gd->pixmap, drawto, gc,
+ gd->x, gd->y,
+ gi->text_border, gi->height,
+ gi->x, gi->y);
+
+ /* middle part of gadget */
+ for (i=0; i<=gi->text_size; i++)
+ XCopyArea(display, gd->pixmap, drawto, gc,
+ gd->x + gi->text_border, gd->y,
+ FONT2_XSIZE, gi->height,
+ gi->x + gi->text_border + i * FONT2_XSIZE, gi->y);
+
+ /* right part of gadget */
+ XCopyArea(display, gd->pixmap, drawto, gc,
+ gd->x + ED_WIN_COUNT_XSIZE - gi->text_border, gd->y,
+ gi->text_border, gi->height,
+ gi->x + gi->width - gi->text_border, gi->y);
+
+ /* gadget text value */
+ DrawText(gi->x + gi->text_border, gi->y + gi->text_border,
+ gi->text_value, FS_SMALL, (pressed ? FC_GREEN : FC_YELLOW));
+
+ /* draw cursor, if active */
+ DrawText(gi->x + gi->text_border + strlen(gi->text_value)*FONT2_XSIZE,
+ gi->y + gi->text_border,
+ (pressed ? "<" : " "),
+ FS_SMALL, FC_RED);
+ }
+ break;
+
+ default:
+ return;
+ }