summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/fonts.cxx179
1 files changed, 1 insertions, 178 deletions
diff --git a/test/fonts.cxx b/test/fonts.cxx
index 58b4d361e..cd2faeb90 100644
--- a/test/fonts.cxx
+++ b/test/fonts.cxx
@@ -104,183 +104,6 @@ unsigned char vec[255][128] = {
{ 0 }
};
-class LetterBox : public Fl_Group
-{
-public:
- LetterBox(int x, int y, int w, int h, const char *l)
- : Fl_Group(x, y, w, h, l) { }
- void draw() FL_OVERRIDE {
- draw_box();
- fl_push_clip(x(), y(), w(), h());
- draw_label(x(), y()-5, w(), h()-16, FL_ALIGN_CENTER);
-
- fl_color(FL_BLUE);
- fl_line_style(FL_SOLID|FL_CAP_ROUND|FL_JOIN_ROUND, 10);
- bool rendering = false;
- unsigned char *fd = vec[current_char];
- double px, py;
- for (;;) {
- unsigned char cmd = *fd++;
- if (cmd==0) {
- if (rendering) {
- fl_end_line();
- rendering = false;
- }
- break;
- } else if (cmd>63) {
- if (cmd=='\100' && rendering) {
- fl_end_line();
- rendering = false;
- }
- } else {
- if (!rendering) { fl_begin_line(); rendering = true; }
- int vx = (cmd & '\70')>>3;
- int vy = (cmd & '\07');
- px = (vx*16+8+10);
- py = (vy*32+16+10);
- fl_vertex(px, py);
- }
- }
- fl_line_style(FL_SOLID, 1);
-
- draw_children();
- fl_pop_clip();
- }
-};
-
-void add_point_cb(Fl_Widget *w, void *d)
-{
- unsigned char *fd = vec[current_char];
- while (*fd) fd++;
- *fd = (fl_uchar)(d);
- w->parent()->redraw();
-}
-
-void add_gap_cb(Fl_Widget *w, void *d)
-{
- unsigned char *fd = vec[current_char];
- while (*fd) fd++;
- *fd = '\100';
- w->parent()->redraw();
-}
-
-void clear_cb(Fl_Widget *w, void *d)
-{
- unsigned char *fd = vec[current_char];
- memset(fd, 0, 128);
- w->parent()->redraw();
-}
-
-void prev_cb(Fl_Widget *w, void *d)
-{
- current_char--;
- char b[2] = { (char)current_char, 0 };
- w->parent()->child(0)->copy_label(b);
- w->parent()->child(0)->redraw();
-}
-
-void next_cb(Fl_Widget *w, void *d)
-{
- current_char++;
- char b[2] = { (char)current_char, 0 };
- w->parent()->child(0)->copy_label(b);
- w->parent()->child(0)->redraw();
-}
-
-void back_cb(Fl_Widget *w, void *d)
-{
- unsigned char *fd = vec[current_char];
- if (*fd==0) return;
- while (*fd) fd++;
- *(--fd) = 0;
- w->parent()->child(0)->redraw();
-}
-
-void save_cb(Fl_Widget *w, void *d)
-{
- const char *filename = fl_file_chooser("Save font as:", 0, 0);
- if (!filename) return;
- FILE *f = fopen(filename, "wb");
- if (!f) {
- fl_alert("can't open file for writing");
- return;
- }
- fprintf(f, "\nstatic const char *font_data[128] = {\n ");
- for (int i=0; i<128; i++) {
- unsigned char *fd = vec[i];
- if (i>=32 && i<127) fprintf(f, "/*%c*/", i); else fprintf(f, "/*%02X*/", i);
- if (*fd==0) {
- fprintf(f, "0");
- } else {
- fprintf(f, "\"");
- for (;;) {
- unsigned char c = *fd++;
- if (c==0) break;
- fprintf(f, "\\%02o", c);
- }
- fprintf(f, "\"");
- }
- if (i<127) fprintf(f, ", ");
- if ((i&3)==3)fprintf(f, "\n ");
- }
- fprintf(f, "};\n\n");
- fclose(f);
-}
-
-Fl_Window *create_editor()
-{
- Fl_Window *win = new Fl_Double_Window(400,400);
- LetterBox *c = new LetterBox(10, 10, 128, 256, "A");
- //c->labelfont(FL_COURIER);
- c->align(FL_ALIGN_CENTER);
- c->labelsize(200);
- c->labelcolor(FL_DARK3);
- c->box(FL_DOWN_BOX);
- Fl_Button *b;
- int i, j;
- for (i=0; i<8; i++) {
- for (j=0; j<8; j++) {
- b = new Fl_Button(i*16+8-5+10, j*32+16-5+10, 10, 10);
- b->box(FL_OVAL_BOX);
- b->callback(add_point_cb, (void*)(fl_intptr_t)(i*8+j));
- }
- }
- c->end();
-
- b = new Fl_Button(10, 290, 70, 20, "Gap");
- b->callback(add_gap_cb);
- b = new Fl_Button(90, 290, 70, 20, "Clear");
- b->callback(clear_cb);
- b = new Fl_Button(10, 315, 70, 20, "<-");
- b->callback(prev_cb);
- b->shortcut(FL_Left);
- b = new Fl_Button(90, 315, 70, 20, "->");
- b->callback(next_cb);
- b->shortcut(FL_Right);
- b = new Fl_Button(10, 340, 70, 20, "Back");
- b->callback(back_cb);
- b = new Fl_Button(90, 340, 70, 20, "Save");
- b->callback(save_cb);
- b->shortcut(FL_COMMAND+'s');
- return win;
-}
-
-class Ut_Main_Window : public Fl_Double_Window
-{
-public:
- Ut_Main_Window(int w, int h, const char *l=0)
- : Fl_Double_Window(w, h, l) { }
- int handle(int event) FL_OVERRIDE {
- if (event==FL_KEYBOARD && Fl::event_key()==FL_F+1) {
- if (!vector_font_editor) vector_font_editor = create_editor();
- vector_font_editor->show();
- return 1;
- } else {
- return Fl_Double_Window::handle(event);
- }
- }
-};
-
void create_the_forms() {
// create the sample string
int n = 0;
@@ -300,7 +123,7 @@ void create_the_forms() {
label[i] = 0;
// create the basic layout
- form = new Ut_Main_Window(550,370);
+ form = new Fl_Double_Window(550,370);
tile = new Fl_Tile(0, 0, 550, 370);