diff --git a/Fltk/Bitmaps.h b/Fltk/Bitmaps.h index b959cb2bc70a4e0a0cf0724111821de18b140e3b..8f345a44d5494d03680a6707cd4c5fb340307a8c 100644 --- a/Fltk/Bitmaps.h +++ b/Fltk/Bitmaps.h @@ -89,4 +89,18 @@ static unsigned char rotate_bits[] = { 0x02, 0x04, 0x02, 0x00, 0x24, 0x00, 0x68, 0x00, 0xf0, 0x00, 0x60, 0x00, 0x20, 0x00 }; +// 'Step backward button' bitmap +#define stepbackward_width 12 +#define stepbackward_height 13 +static char stepbackward_bits[] = { + 0x00,0xf0,0xc0,0xf6,0x20,0xf5,0x90,0xf4,0x48,0xf4,0x24,0xf4,0x12,0xf4,0x24, + 0xf4,0x48,0xf4,0x90,0xf4,0x20,0xf5,0xc0,0xf6,0x00,0xf0}; + +// 'Step forward button' bitmap +#define stepforward_width 12 +#define stepforward_height 13 +static char stepforward_bits[] = { + 0x00,0xf0,0x36,0xf0,0x4a,0xf0,0x92,0xf0,0x22,0xf1,0x42,0xf2,0x82,0xf4,0x42, + 0xf2,0x22,0xf1,0x92,0xf0,0x4a,0xf0,0x36,0xf0,0x00,0xf0}; + #endif diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index fdbda4be38ff12eca2d091142e8b5eebb5aefce0..3785df3702b930fa25d0d5ef51b230b228102e3d 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.530 2007-05-13 10:37:01 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.531 2007-05-19 16:40:03 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -571,6 +571,16 @@ void status_rewind_cb(CALLBACK_ARGS) Draw(); } +void status_stepbackward_cb(CALLBACK_ARGS) +{ + ManualPlay(!CTX.post.anim_cycle, -1); +} + +void status_stepforward_cb(CALLBACK_ARGS) +{ + ManualPlay(!CTX.post.anim_cycle, 1); +} + // File Menu void file_new_cb(CALLBACK_ARGS) diff --git a/Fltk/Callbacks.h b/Fltk/Callbacks.h index 0211568188b42224780cef55f2303567ad2ec24c..343b53923cdf4e2f11ccef721e4fb7cc1ddd2684 100644 --- a/Fltk/Callbacks.h +++ b/Fltk/Callbacks.h @@ -42,6 +42,8 @@ void status_xyz1p_cb(CALLBACK_ARGS); void status_play_cb(CALLBACK_ARGS); void status_pause_cb(CALLBACK_ARGS); void status_rewind_cb(CALLBACK_ARGS); +void status_stepbackward_cb(CALLBACK_ARGS); +void status_stepforward_cb(CALLBACK_ARGS); // File Menu diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index 38274ddb8df5fe415e180269c6a0ce829952d9b5..43d742f2582a630e7f88f6d045995dc99c112694 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.614 2007-05-07 08:36:36 geuzaine Exp $ +// $Id: GUI.cpp,v 1.615 2007-05-19 16:40:03 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -1381,6 +1381,15 @@ void GUI::create_graphic_window() rewind_bmp->label(g_status_butt[6]); g_status_butt[6]->deactivate(); + g_status_butt[10] = new Fl_Button(x, glheight + 2, sw, sht); + x += sw; + g_status_butt[10]->callback(status_stepbackward_cb); + g_status_butt[10]->tooltip("Step backward"); + stepbackward_bmp = new Fl_Bitmap(stepbackward_bits, stepbackward_width, + stepbackward_height); + stepbackward_bmp->label(g_status_butt[10]); + g_status_butt[10]->deactivate(); + g_status_butt[7] = new Fl_Button(x, glheight + 2, sw, sht); x += sw; g_status_butt[7]->callback(status_play_cb); @@ -1390,7 +1399,16 @@ void GUI::create_graphic_window() stop_bmp = new Fl_Bitmap(stop_bits, stop_width, stop_height); g_status_butt[7]->deactivate(); - for(int i = 0; i < 10; i++) { + g_status_butt[11] = new Fl_Button(x, glheight + 2, sw, sht); + x += sw; + g_status_butt[11]->callback(status_stepforward_cb); + g_status_butt[11]->tooltip("Step forward"); + stepforward_bmp = new Fl_Bitmap(stepforward_bits, stepforward_width, + stepforward_height); + stepforward_bmp->label(g_status_butt[11]); + g_status_butt[11]->deactivate(); + + for(int i = 0; i < 12; i++) { g_status_butt[i]->box(FL_FLAT_BOX); g_status_butt[i]->selection_color(FL_WHITE); g_status_butt[i]->align(FL_ALIGN_CENTER | FL_ALIGN_INSIDE | FL_ALIGN_CLIP); @@ -1467,10 +1485,14 @@ void GUI::check_anim_buttons() if(!play) { g_status_butt[6]->deactivate(); g_status_butt[7]->deactivate(); + g_status_butt[10]->deactivate(); + g_status_butt[11]->deactivate(); } else { g_status_butt[6]->activate(); g_status_butt[7]->activate(); + g_status_butt[10]->activate(); + g_status_butt[11]->activate(); } } diff --git a/Fltk/GUI.h b/Fltk/GUI.h index 94f5002f42270316876b8e1e161133eb51fc41c8..7f29505c6708a14428fea144e8f8924c3763d588 100644 --- a/Fltk/GUI.h +++ b/Fltk/GUI.h @@ -127,7 +127,9 @@ class GUI{ Fl_Scroll *m_scroll; // Bitmaps - Fl_Bitmap *abort_bmp, *start_bmp, *stop_bmp, *rewind_bmp, *rotate_bmp, *ortho_bmp; + Fl_Bitmap *abort_bmp, *rotate_bmp, *ortho_bmp; + Fl_Bitmap *start_bmp, *stop_bmp, *rewind_bmp, *stepbackward_bmp, *stepforward_bmp; + void add_multiline_in_browser(Fl_Browser *o, char* prefix, char *str); public: @@ -150,7 +152,7 @@ public: // graphic window Fl_Window *g_window; Opengl_Window *g_opengl_window; - Fl_Button *g_status_butt[10]; + Fl_Button *g_status_butt[12]; Fl_Box *g_status_label[2]; // Option window