-/* $Id: macterm.c,v 1.2 2002/11/19 22:05:48 ben Exp $ */
+/* $Id: macterm.c,v 1.9 2002/11/23 20:02:38 ben Exp $ */
/*
* Copyright (c) 1999 Simon Tatham
* Copyright (c) 1999, 2002 Ben Harris
#define DEFAULT_BG 18
#define DEFAULT_BG_BOLD 19
#define CURSOR_FG 20
-#define CURSOR_FG_BOLD 21
-#define CURSOR_BG 22
-#define CURSOR_BG_BOLD 23
+#define CURSOR_BG 21
#define PTOCC(x) ((x) < 0 ? -(-(x - s->font_width - 1) / s->font_width) : \
(x) / s->font_width)
s->window = GetNewWindow(wTerminal, NULL, (WindowPtr)-1);
SetWRefCon(s->window, (long)s);
s->scrollbar = GetNewControl(cVScroll, s->window);
- s->term = term_init(s);
+ s->term = term_init(&s->cfg, s);
s->logctx = log_init(s);
term_provide_logctx(s->term, s->logctx);
mac_adjustsize(s, s->cfg.height, s->cfg.width);
term_size(s->term, s->cfg.height, s->cfg.width, s->cfg.savelines);
- s->ldisc = ldisc_create(s->term, s->back, s->backhandle, s);
+ s->ldisc = ldisc_create(&s->cfg, s->term, s->back, s->backhandle, s);
ldisc_send(s->ldisc, NULL, 0, 0);/* cause ldisc to notice changes */
mac_initfont(s);
* Palette manager documentation suggests inhibiting all tolerant colours
* on greyscale displays.
*/
-#define PM_NORMAL pmTolerant | pmInhibitC2 | \
- pmInhibitG2 | pmInhibitG4 | pmInhibitG8 | pmInhibitC2
+#define PM_NORMAL ( pmTolerant | pmInhibitC2 | \
+ pmInhibitG2 | pmInhibitG4 | pmInhibitG8 )
#define PM_TOLERANCE 0x2000
s->palette = NewPalette(22, NULL, PM_NORMAL, PM_TOLERANCE);
if (s->palette == NULL)
PM_NORMAL &~ pmInhibitC2, PM_TOLERANCE);
SetEntryUsage(s->palette, DEFAULT_FG_BOLD,
PM_NORMAL &~ pmInhibitC2, PM_TOLERANCE);
- SetEntryUsage(s->palette, CURSOR_FG,
+ SetEntryUsage(s->palette, CURSOR_BG,
PM_NORMAL &~ pmInhibitC2, PM_TOLERANCE);
palette_reset(s);
}
s = (Session *)GetWRefCon(window);
len = mac_keytrans(s, event, buf);
- s->back->send(s, (char *)buf, len);
+ ldisc_send(s->ldisc, (char *)buf, len, 1);
+ ObscureCursor();
+ term_seen_key_event(s->term);
+ term_out(s->term);
+ term_update(s->term);
}
static int mac_keytrans(Session *s, EventRecord *event,
Session *s;
s = (Session *)GetWRefCon(window);
- s->has_focus = active;
+ s->term->has_focus = active;
term_update(s->term);
if (active)
ShowControl(s->scrollbar);
int style = 0;
struct do_text_args a;
RgnHandle textrgn;
-#if 0
- int i;
-#endif
SetPort(s->window);
-#if 0
- fprintf(stderr, "printing at (%d,%d) %d chars (attr=%x, lattr=%x):\n",
- x, y, len, attr, lattr);
- for (i = 0; i < len; i++)
- fprintf(stderr, "%c", text[i]);
- fprintf(stderr, "\n");
-#endif
-
/* First check this text is relevant */
a.textrect.top = y * s->font_height;
a.textrect.bottom = (y + 1) * s->font_height;
break;
case 2:
if (a->attr & TATTR_ACTCURS) {
- PmForeColor(bright ? CURSOR_FG_BOLD : CURSOR_FG);
+ PmForeColor(CURSOR_FG);
PmBackColor(CURSOR_BG);
TextMode(srcCopy);
} else {
break;
default:
if (a->attr & TATTR_ACTCURS) {
- fgcolour = bright ? CURSOR_FG_BOLD : CURSOR_FG;
+ fgcolour = CURSOR_FG;
bgcolour = CURSOR_BG;
TextMode(srcCopy);
} else {
unsigned long attr, int lattr)
{
- /* FIXME: Should do something here! */
+ do_text(ctx, x, y, text, len, attr, lattr);
}
/*
col.red = r * 0x0101;
col.green = g * 0x0101;
col.blue = b * 0x0101;
- fprintf(stderr, "p%d <- (0x%x, 0x%x, 0x%x)\n", n, col.red, col.green,
- col.blue);
SetEntryColor(s->palette, n, &col);
}
static const int first[21] = {
0, 2, 4, 6, 8, 10, 12, 14,
1, 3, 5, 7, 9, 11, 13, 15,
- 16, 17, 18, 20, 22
+ 16, 17, 18, 20, 21
};
if (!HAVE_COLOR_QD())
return;
real_palette_set(s, first[n], r, g, b);
- if (first[n] >= 18)
+ if (first[n] == 18)
real_palette_set(s, first[n]+1, r, g, b);
if (first[n] == DEFAULT_BG)
mac_adjustwinbg(s);