pete286/slide.c

83 lines
1.4 KiB
C
Raw Normal View History

#include <graphics.h>
#include "jorth.h"
static int bgi_on = 0;
void bgi_shutdown() {
if (bgi_on) {
closegraph();
bgi_on = 0;
}
}
void bgi_init() {
int driver = VGA;
int mode = VGAHI;
if (!bgi_on) {
initgraph(&driver, &mode, NULL);
bgi_on = 1;
}
}
void s_outtext() {
outtext(TOP().s);
DROP(1);
}
void s_justify() {
settextjustify(TOP().i, TOP_TEXT);
DROP(1);
}
void s_font() {
struct textsettingstype settings;
gettextsettings(&settings);
settextstyle(ST1().i, settings.direction, TOP().i);
DROP(2);
}
void s_direction() {
struct textsettingstype settings;
gettextsettings(&settings);
settextstyle(settings.font, TOP().i, settings.charsize);
DROP(1);
}
void s_moveto() {
moveto(ST1().i, TOP().i);
DROP(2);
}
void s_pos() {
PUSHI(getx());
PUSHI(gety());
}
void s_setcolor() {
setcolor(TOP().i);
DROP(1);
}
void s_setbgcolor() {
setbkcolor(TOP().i);
DROP(1);
}
void s_clear() {
cleardevice();
}
void slide_init() {
CDEF("bgi-on", bgi_init);
CDEF("bgi-off", bgi_shutdown);
CDEF("outtext", s_outtext);
CDEF("justify", s_justify);
CDEF("font", s_font);
CDEF("direction", s_direction);
CDEF("moveto", s_moveto);
CDEF("pos", s_pos);
CDEF("color!", s_setcolor);
CDEF("bg!", s_setbgcolor);
CDEF("wipe", s_clear);
atexit(bgi_shutdown);
}