diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2005-03-20 04:00:48 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2005-03-20 04:00:48 +0000 |
| commit | a2f4b27b271098c9414721ae9e0b38654a5e900c (patch) | |
| tree | cfafa53db99127fde016d5379078306365e6358d | |
| parent | 665a2c1b7d2a4b8c5e9a78ebbebf72817b72822e (diff) | |
Undo/redo support for FLUID.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4142 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | CHANGES | 1 | ||||
| -rw-r--r-- | fluid/Fl_Type.cxx | 4 | ||||
| -rw-r--r-- | fluid/Fl_Window_Type.cxx | 12 | ||||
| -rw-r--r-- | fluid/Makefile | 15 | ||||
| -rw-r--r-- | fluid/align_widget.cxx | 103 | ||||
| -rw-r--r-- | fluid/factory.cxx | 7 | ||||
| -rw-r--r-- | fluid/fluid.cxx | 66 | ||||
| -rw-r--r-- | fluid/function_panel.cxx | 8 | ||||
| -rw-r--r-- | fluid/function_panel.fl | 11 | ||||
| -rw-r--r-- | fluid/makedepend | 266 | ||||
| -rw-r--r-- | vcnet/fluid.vcproj | 19 | ||||
| -rw-r--r-- | visualc/fluid.dsp | 4 |
12 files changed, 347 insertions, 169 deletions
@@ -2,6 +2,7 @@ CHANGES IN FLTK 1.1.7 - Documentation fixes (STR #648, STR #692, STR #730, STR #744, STR #745) + - FLUID now provides unlimited undo/redo support. - FLUID now provides an option to choose which scheme (default, none, plastic) to display. - Fixed scheme background issue with windows in FLUID. diff --git a/fluid/Fl_Type.cxx b/fluid/Fl_Type.cxx index 7a8e63f84..95583e1a6 100644 --- a/fluid/Fl_Type.cxx +++ b/fluid/Fl_Type.cxx @@ -43,6 +43,7 @@ #include <stdio.h> #include "Fl_Type.h" +#include "undo.h" #include <FL/Fl_Pixmap.H> #include "pixmaps/lock.xpm" @@ -449,6 +450,7 @@ void Fl_Type::remove_child(Fl_Type*) {} // add a list of widgets as a new child of p: void Fl_Type::add(Fl_Type *p) { if (p && parent == p) return; + undo_checkpoint(); parent = p; Fl_Type *end = this; while (end->next) end = end->next; @@ -544,6 +546,7 @@ Fl_Type *Fl_Type::remove() { // update a string member: int storestring(const char *n, const char * & p, int nostrip) { if (n == p) return 0; + undo_checkpoint(); int length = 0; if (n) { // see if blank, strip leading & trailing blanks if (!nostrip) while (isspace(*n)) n++; @@ -604,7 +607,6 @@ Fl_Type::~Fl_Type() { if (prev) prev->next = next; else first = next; if (next) next->prev = prev; else last = prev; if (current == this) current = 0; - set_modflag(1); if (parent) parent->remove_child(this); } diff --git a/fluid/Fl_Window_Type.cxx b/fluid/Fl_Window_Type.cxx index 469fbc143..31cc08601 100644 --- a/fluid/Fl_Window_Type.cxx +++ b/fluid/Fl_Window_Type.cxx @@ -33,6 +33,7 @@ #include <FL/fl_draw.H> #include <FL/Fl_Menu_Item.H> #include "Fl_Widget_Type.h" +#include "undo.h" #include <math.h> #include <stdlib.h> #include "alignment_panel.h" @@ -112,6 +113,8 @@ void grid_cb(Fl_Input *i, long v) { } void i18n_type_cb(Fl_Choice *c, void *) { + undo_checkpoint(); + switch (i18n_type = c->value()) { case 0 : /* None */ i18n_include_input->hide(); @@ -147,6 +150,8 @@ void i18n_type_cb(Fl_Choice *c, void *) { } void i18n_text_cb(Fl_Input *i, void *) { + undo_checkpoint(); + if (i == i18n_function_input) i18n_function = i->value(); else if (i == i18n_file_input) @@ -927,7 +932,7 @@ extern Fl_Menu_Item Main_Menu[]; // Calculate new bounding box of selected widgets: void Fl_Window_Type::fix_overlay() { - Main_Menu[37].label("Hide O&verlays"); + Main_Menu[38].label("Hide O&verlays"); overlays_invisible = 0; recalc = 1; ((Overlay_Window *)(this->o))->redraw_overlay(); @@ -942,8 +947,8 @@ void redraw_overlays() { void toggle_overlays(Fl_Widget *,void *) { overlays_invisible = !overlays_invisible; - if (overlays_invisible) Main_Menu[37].label("Show O&verlays"); - else Main_Menu[37].label("Hide O&verlays"); + if (overlays_invisible) Main_Menu[38].label("Show O&verlays"); + else Main_Menu[38].label("Hide O&verlays"); for (Fl_Type *o=Fl_Type::first; o; o=o->next) if (o->is_window()) { @@ -964,6 +969,7 @@ extern Fl_Menu_Item New_Menu[]; // move the selected children according to current dx,dy,drag state: void Fl_Window_Type::moveallchildren() { + undo_checkpoint(); Fl_Type *i; for (i=next; i && i->level>level;) { if (i->selected && i->is_widget() && !i->is_menu_item()) { diff --git a/fluid/Makefile b/fluid/Makefile index 9275cc30c..fcb580be0 100644 --- a/fluid/Makefile +++ b/fluid/Makefile @@ -25,21 +25,22 @@ CPPFILES = \ Fl_Function_Type.cxx \ - Fl_Menu_Type.cxx \ Fl_Group_Type.cxx \ - Fl_Widget_Type.cxx \ + Fl_Menu_Type.cxx \ Fl_Type.cxx \ + Fl_Widget_Type.cxx \ Fl_Window_Type.cxx \ Fluid_Image.cxx \ + about_panel.cxx \ + align_widget.cxx \ + alignment_panel.cxx \ code.cxx \ factory.cxx \ file.cxx \ fluid.cxx \ - align_widget.cxx \ - about_panel.cxx \ - widget_panel.cxx \ - alignment_panel.cxx \ - function_panel.cxx + function_panel.cxx \ + undo.cxx \ + widget_panel.cxx ################################################################ diff --git a/fluid/align_widget.cxx b/fluid/align_widget.cxx index bc128c0a6..e89fb5b2b 100644 --- a/fluid/align_widget.cxx +++ b/fluid/align_widget.cxx @@ -1,7 +1,7 @@ // // "$Id$" // -// alignment code for the Fast Light Tool Kit (FLTK). +// Alignment code for the Fast Light Tool Kit (FLTK). // // Copyright 1998-2005 by Bill Spitzak and others. // @@ -26,6 +26,7 @@ #include <FL/Fl.H> #include <FL/Fl_Window.H> #include "Fl_Widget_Type.h" +#include "undo.h" /** * the first behaviour always uses the first selected widget as a reference @@ -40,6 +41,7 @@ void align_widget_cb(Fl_Widget*, long how) const int max = 32768, min = -32768; int left, right, top, bot, wdt, hgt, n; Fl_Type *o; + int changed = 0; switch ( how ) { //---- align @@ -57,6 +59,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -66,7 +74,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize(left, w->y(), w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -89,6 +96,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -98,7 +111,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize((center2-w->w())/2, w->y(), w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -118,6 +130,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -127,7 +145,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize(right-w->w(), w->y(), w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -146,6 +163,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -155,7 +178,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize(w->x(), top, w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -178,6 +200,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -187,7 +215,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize(w->x(), (center2-w->h())/2, w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -207,6 +234,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -216,7 +249,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize( w->x(), bot-w->h(), w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -243,6 +275,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -252,7 +290,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize(left+wsum+wdt*cnt/n, w->y(), w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); cnt++; @@ -281,6 +318,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -290,7 +333,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize(w->x(), top+hsum+hgt*cnt/n, w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); cnt++; @@ -313,6 +355,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -322,7 +370,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize(w->x(), w->y(), wdt, w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -341,6 +388,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -350,7 +403,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize( w->x(), w->y(), w->w(), hgt); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -371,6 +423,12 @@ void align_widget_cb(Fl_Widget*, long how) for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; if (o->next && o->next->level > o->level && !o->next->selected && !o->is_menu_button()) { @@ -380,7 +438,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize( w->x(), w->y(), wdt, hgt); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -390,6 +447,12 @@ void align_widget_cb(Fl_Widget*, long how) for (o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget() && o->parent) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; Fl_Widget *p = ((Fl_Widget_Type *)o->parent)->o; int center2; @@ -405,7 +468,6 @@ void align_widget_cb(Fl_Widget*, long how) // Otherwise, just do the widget... w->resize((center2-w->w())/2, w->y(), w->w(), w->h()); } - set_modflag(1); w->redraw(); if (w->window()) w->window()->redraw(); } @@ -414,6 +476,12 @@ void align_widget_cb(Fl_Widget*, long how) for (o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget() && o->parent) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; Fl_Widget *p = ((Fl_Widget_Type *)o->parent)->o; int center2; @@ -444,8 +512,15 @@ void widget_size_cb(Fl_Widget *, long size) { Fl_Widget_Type::default_size = size; // Update any selected widgets... + int changed = 0; for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { + if (!changed) { + changed = 1; + set_modflag(1); + undo_checkpoint(); + } + Fl_Widget *w = ((Fl_Widget_Type *)o)->o; w->labelsize(size); Fl_Font f; @@ -454,8 +529,6 @@ void widget_size_cb(Fl_Widget *, long size) { ((Fl_Widget_Type *)o)->textstuff(2, f, s, c); w->redraw(); - - set_modflag(1); } } diff --git a/fluid/factory.cxx b/fluid/factory.cxx index 932a6e812..814a40d41 100644 --- a/fluid/factory.cxx +++ b/fluid/factory.cxx @@ -37,6 +37,7 @@ #include <FL/Fl_Pixmap.H> #include <stdio.h> #include "../src/flstring.h" +#include "undo.h" #include "Fl_Widget_Type.h" @@ -828,6 +829,8 @@ extern void select_only(Fl_Type *); #include <FL/Fl_Window.H> static void cb(Fl_Widget *, void *v) { + undo_checkpoint(); + undo_suspend(); Fl_Type *t = ((Fl_Type*)v)->make(); if (t) { if (t->is_widget() && !t->is_window()) { @@ -857,7 +860,11 @@ static void cb(Fl_Widget *, void *v) { select_only(t); set_modflag(1); t->open(); + } else { + undo_current --; + undo_last --; } + undo_resume(); } Fl_Menu_Item New_Menu[] = { diff --git a/fluid/fluid.cxx b/fluid/fluid.cxx index 6c48c1695..879defac0 100644 --- a/fluid/fluid.cxx +++ b/fluid/fluid.cxx @@ -57,6 +57,7 @@ #endif #include "about_panel.h" +#include "undo.h" #include "Fl_Type.h" @@ -80,10 +81,6 @@ void show_shell_window(); //////////////////////////////////////////////////////////////// -void nyi(Fl_Widget *,void *) { - fl_message("That's not yet implemented, sorry"); -} - static const char *filename; void set_filename(const char *c); void set_modflag(int mf); @@ -176,6 +173,7 @@ void save_cb(Fl_Widget *, void *v) { return; } set_modflag(0); + undo_save = undo_current; } void exit_cb(Fl_Widget *,void *) { @@ -202,6 +200,8 @@ void exit_cb(Fl_Widget *,void *) { if (help_dialog) delete help_dialog; + undo_clear(); + exit(0); } @@ -227,7 +227,9 @@ apple_open_cb(const char *c) { oldfilename = filename; filename = NULL; set_filename(c); + undo_suspend(); if (!read_file(c, 0)) { + undo_resume(); fl_message("Can't read %s: %s", c, strerror(errno)); free((void *)filename); filename = oldfilename; @@ -237,6 +239,8 @@ apple_open_cb(const char *c) { // Loaded a file; free the old filename... set_modflag(0); + undo_resume(); + undo_clear(); if (oldfilename) free((void *)oldfilename); } #endif // __APPLE__ @@ -264,13 +268,17 @@ void open_cb(Fl_Widget *, void *v) { oldfilename = filename; filename = NULL; set_filename(c); + if (v != 0) undo_checkpoint(); + undo_suspend(); if (!read_file(c, v!=0)) { + undo_resume(); fl_message("Can't read %s: %s", c, strerror(errno)); free((void *)filename); filename = oldfilename; if (main_window) main_window->label(filename); return; } + undo_resume(); if (v) { // Inserting a file; restore the original filename... set_modflag(1); @@ -280,6 +288,7 @@ void open_cb(Fl_Widget *, void *v) { } else { // Loaded a file; free the old filename... set_modflag(0); + undo_clear(); if (oldfilename) free((void *)oldfilename); } } @@ -301,7 +310,10 @@ void open_history_cb(Fl_Widget *, void *v) { const char *oldfilename = filename; filename = NULL; set_filename((char *)v); + undo_suspend(); if (!read_file(filename, 0)) { + undo_resume(); + undo_clear(); fl_message("Can't read %s: %s", filename, strerror(errno)); free((void *)filename); filename = oldfilename; @@ -309,6 +321,8 @@ void open_history_cb(Fl_Widget *, void *v) { return; } set_modflag(0); + undo_resume(); + undo_clear(); if (oldfilename) free((void *)oldfilename); } @@ -329,6 +343,7 @@ void new_cb(Fl_Widget *, void *v) { delete_all(); set_filename(NULL); set_modflag(0); + undo_clear(); } int compile_only = 0; @@ -457,13 +472,15 @@ void cut_cb(Fl_Widget *, void *) { fl_beep(); return; } - ipasteoffset = 0; - Fl_Type *p = Fl_Type::current->parent; - while (p && p->selected) p = p->parent; if (!write_file(cutfname(),1)) { fl_message("Can't write %s: %s", cutfname(), strerror(errno)); return; } + undo_checkpoint(); + set_modflag(1); + ipasteoffset = 0; + Fl_Type *p = Fl_Type::current->parent; + while (p && p->selected) p = p->parent; delete_all(1); if (p) select_only(p); } @@ -473,6 +490,8 @@ void delete_cb(Fl_Widget *, void *) { fl_beep(); return; } + undo_checkpoint(); + set_modflag(1); ipasteoffset = 0; Fl_Type *p = Fl_Type::current->parent; while (p && p->selected) p = p->parent; @@ -487,9 +506,12 @@ void paste_cb(Fl_Widget*, void*) { pasteoffset = ipasteoffset; if (gridx>1) pasteoffset = ((pasteoffset-1)/gridx+1)*gridx; if (gridy>1) pasteoffset = ((pasteoffset-1)/gridy+1)*gridy; + undo_checkpoint(); + undo_suspend(); if (!read_file(cutfname(), 1)) { fl_message("Can't read %s: %s", cutfname(), strerror(errno)); } + undo_resume(); pasteoffset = 0; ipasteoffset += 10; force_parent = 0; @@ -510,9 +532,12 @@ void duplicate_cb(Fl_Widget*, void*) { pasteoffset = 0; force_parent = 1; + undo_checkpoint(); + undo_suspend(); if (!read_file(cutfname(1), 1)) { fl_message("Can't read %s: %s", cutfname(1), strerror(errno)); } + undo_resume(); force_parent = 0; } @@ -602,7 +627,8 @@ Fl_Menu_Item Main_Menu[] = { {"&Quit", FL_CTRL+'q', exit_cb}, {0}, {"&Edit",0,0,0,FL_SUBMENU}, - {"&Undo", FL_CTRL+'z', nyi}, + {"&Undo", FL_CTRL+'z', undo_cb}, + {"&Redo", FL_CTRL+FL_SHIFT+'z', redo_cb, 0, FL_MENU_DIVIDER}, {"C&ut", FL_CTRL+'x', cut_cb}, {"&Copy", FL_CTRL+'c', copy_cb}, {"&Delete", FL_Delete, delete_cb}, @@ -614,12 +640,8 @@ Fl_Menu_Item Main_Menu[] = { {"&Sort",0,sort_cb}, {"&Earlier", FL_F+2, earlier_cb}, {"&Later", FL_F+3, later_cb}, -//{"Show", FL_F+5, show_cb}, -//{"Hide", FL_F+6, hide_cb}, {"&Group", FL_F+7, group_cb}, {"Ung&roup", FL_F+8, ungroup_cb,0, FL_MENU_DIVIDER}, -//{"Deactivate", 0, nyi}, -//{"Activate", 0, nyi, 0, FL_MENU_DIVIDER}, {"Hide O&verlays",FL_CTRL+FL_SHIFT+'o',toggle_overlays}, {"Show Widget &Bin...",FL_ALT+'b',toggle_widgetbin_cb, 0, FL_MENU_DIVIDER}, {"Pro&ject Settings...",FL_ALT+'p',show_project_cb}, @@ -706,6 +728,7 @@ void toggle_widgetbin_cb(Fl_Widget *, void *) { } } + void make_main_window() { fluid_prefs.get("snap", snap, 1); fluid_prefs.get("gridx", gridx, 5); @@ -951,6 +974,7 @@ void set_modflag(int mf) { } else main_window->label(basename); } + // Enable/disable the Save menu item... if (modflag) Main_Menu[16].activate(); else Main_Menu[16].deactivate(); } @@ -977,6 +1001,7 @@ static int arg(int argc, char** argv, int& i) { #if ! (defined(WIN32) && !defined (__CYGWIN__)) +int quit_flag = 0; #include <signal.h> #ifdef _sigargs #define SIGARG _sigargs @@ -991,7 +1016,7 @@ static int arg(int argc, char** argv, int& i) { extern "C" { static void sigint(SIGARG) { signal(SIGINT,sigint); - exit_cb(0,0); + quit_flag = 1; } } #endif @@ -1030,6 +1055,7 @@ int main(int argc,char **argv) { open_history_cb(0, absolute_history[0]); } } + undo_suspend(); if (c && !read_file(c,0)) { if (compile_only) { fprintf(stderr,"%s : %s\n", c, strerror(errno)); @@ -1037,19 +1063,31 @@ int main(int argc,char **argv) { } fl_message("Can't read %s: %s", c, strerror(errno)); } + undo_resume(); if (compile_only) { if (compile_strings) write_strings_cb(0,0); write_cb(0,0); exit(0); } set_modflag(0); + undo_clear(); #ifndef WIN32 signal(SIGINT,sigint); #endif grid_cb(horizontal_input, 0); // Makes sure that windows get snap params... - return Fl::run(); +#ifdef WIN32 + Fl::run(); +#else + while (!quit_flag) Fl::wait(); + + if (quit_flag) exit_cb(0,0); +#endif // WIN32 + + undo_clear(); + + return (0); } // diff --git a/fluid/function_panel.cxx b/fluid/function_panel.cxx index 075e2c1e2..080f07515 100644 --- a/fluid/function_panel.cxx +++ b/fluid/function_panel.cxx @@ -30,6 +30,7 @@ #include "function_panel.h" #include <FL/Fl_Pixmap.H> #include "Fl_Type.h" +#include "undo.h" extern class Fl_Pixmap *pixmap[]; extern class Fl_Type *Fl_Type_make(const char*); extern void select_only(Fl_Type*); @@ -415,8 +416,13 @@ Fl_Window* make_comment_panel() { } void type_make_cb(Fl_Widget*w,void*d) { + undo_checkpoint(); Fl_Type *t = Fl_Type_make((char*)d); -if (t) {select_only(t); set_modflag(1); t->open();} + if (t) { + select_only(t); + set_modflag(1); + t->open(); + } } Fl_Window *widgetbin_panel=(Fl_Window *)0; diff --git a/fluid/function_panel.fl b/fluid/function_panel.fl index e70956b2a..84bcd557f 100644 --- a/fluid/function_panel.fl +++ b/fluid/function_panel.fl @@ -35,6 +35,8 @@ decl {\#include <FL/Fl_Pixmap.H>} {} decl {\#include "Fl_Type.h"} {} +decl {\#include "undo.h"} {} + decl {extern class Fl_Pixmap *pixmap[];} {} decl {extern class Fl_Type *Fl_Type_make(const char*);} {} @@ -265,8 +267,13 @@ Function {make_comment_panel()} {open Function {type_make_cb(Fl_Widget*w,void*d)} {open return_type void } { - code {Fl_Type *t = Fl_Type_make((char*)d); -if (t) {select_only(t); set_modflag(1); t->open();}} {} + code {undo_checkpoint(); + Fl_Type *t = Fl_Type_make((char*)d); + if (t) { + select_only(t); + set_modflag(1); + t->open(); + }} {} } Function {make_widgetbin()} {open diff --git a/fluid/makedepend b/fluid/makedepend index e558b7e9a..88a8690cc 100644 --- a/fluid/makedepend +++ b/fluid/makedepend @@ -17,12 +17,23 @@ Fl_Function_Type.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H Fl_Type.h Fl_Function_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H Fluid_Image.h Fl_Function_Type.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H Fl_Function_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H -Fl_Function_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Menu_Bar.H -Fl_Function_Type.o: ../FL/fl_show_input.H ../FL/fl_ask.H ../src/flstring.h -Fl_Function_Type.o: ../FL/Fl_Export.H ../config.h function_panel.h -Fl_Function_Type.o: ../FL/Fl_Window.H ../FL/Fl_Light_Button.H +Fl_Function_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Window.H +Fl_Function_Type.o: ../FL/Fl_Menu_Bar.H ../FL/fl_show_input.H ../FL/fl_ask.H +Fl_Function_Type.o: ../src/flstring.h ../FL/Fl_Export.H ../config.h +Fl_Function_Type.o: function_panel.h ../FL/Fl_Light_Button.H Fl_Function_Type.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H Fl_Function_Type.o: ../FL/fl_draw.H ../FL/Fl_Text_Buffer.H comments.h +Fl_Group_Type.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H +Fl_Group_Type.o: ../FL/Fl_Group.H ../FL/fl_message.H ../FL/fl_ask.H +Fl_Group_Type.o: Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H +Fl_Group_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H +Fl_Group_Type.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H +Fl_Group_Type.o: ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Pack.H +Fl_Group_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H +Fl_Group_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H +Fl_Group_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H +Fl_Group_Type.o: ../FL/Fl_Menu_Bar.H ../FL/Fl_Scroll.H ../FL/Fl_Scrollbar.H +Fl_Group_Type.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H Fl_Menu_Type.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Menu_Type.o: Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H Fl_Menu_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H @@ -31,9 +42,10 @@ Fl_Menu_Type.o: ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Pack.H Fl_Menu_Type.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H Fl_Menu_Type.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H Fl_Menu_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H -Fl_Menu_Type.o: ../FL/Fl_Menu_Bar.H alignment_panel.h ../FL/Fl_Text_Buffer.H -Fl_Menu_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Scrollbar.H -Fl_Menu_Type.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H +Fl_Menu_Type.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H alignment_panel.h +Fl_Menu_Type.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H +Fl_Menu_Type.o: ../FL/fl_draw.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H +Fl_Menu_Type.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H Fl_Menu_Type.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H Fl_Menu_Type.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Button.H Fl_Menu_Type.o: ../FL/Fl_Box.H ../FL/Fl_Light_Button.H @@ -42,39 +54,6 @@ Fl_Menu_Type.o: ../FL/Fl_Button.H ../FL/Fl_Return_Button.H ../FL/fl_message.H Fl_Menu_Type.o: ../FL/fl_ask.H ../src/flstring.h ../FL/Fl_Export.H Fl_Menu_Type.o: ../config.h ../FL/Fl_Output.H ../FL/Fl_Input.H Fl_Menu_Type.o: Shortcut_Button.h -Fl_Group_Type.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H -Fl_Group_Type.o: ../FL/Fl_Group.H ../FL/fl_message.H ../FL/fl_ask.H -Fl_Group_Type.o: Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H -Fl_Group_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H -Fl_Group_Type.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H -Fl_Group_Type.o: ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Pack.H -Fl_Group_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H -Fl_Group_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H -Fl_Group_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Menu_Bar.H -Fl_Group_Type.o: ../FL/Fl_Scroll.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H -Fl_Group_Type.o: ../FL/Fl_Valuator.H -Fl_Widget_Type.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H -Fl_Widget_Type.o: ../FL/Fl_Group.H ../FL/Fl_Input.H ../FL/Fl_Input_.H -Fl_Widget_Type.o: Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H -Fl_Widget_Type.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H -Fl_Widget_Type.o: ../FL/Fl_Image.H Fluid_Image.h ../FL/Fl_Shared_Image.H -Fl_Widget_Type.o: ../FL/fl_draw.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H -Fl_Widget_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H -Fl_Widget_Type.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H -Fl_Widget_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Menu_Bar.H -Fl_Widget_Type.o: alignment_panel.h ../FL/Fl_Text_Buffer.H -Fl_Widget_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H -Fl_Widget_Type.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H -Fl_Widget_Type.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H -Fl_Widget_Type.o: ../FL/Fl_Window.H ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H -Fl_Widget_Type.o: ../FL/Fl_Button.H ../FL/Fl_Box.H ../FL/Fl_Light_Button.H -Fl_Widget_Type.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H -Fl_Widget_Type.o: ../FL/Fl_Button.H ../FL/Fl_Return_Button.H -Fl_Widget_Type.o: ../FL/fl_message.H ../FL/fl_ask.H ../FL/Fl_Slider.H -Fl_Widget_Type.o: ../FL/Fl_Window.H ../src/flstring.h ../FL/Fl_Export.H -Fl_Widget_Type.o: ../config.h widget_panel.h ../FL/Fl_Value_Input.H -Fl_Widget_Type.o: ../FL/Fl_Input.H Shortcut_Button.h ../FL/Fl_Text_Editor.H -Fl_Widget_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_show_colormap.H Fl_Type.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Type.o: ../FL/Fl_Browser_.H ../FL/Fl_Group.H ../FL/Fl_Widget.H Fl_Type.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H @@ -84,16 +63,17 @@ Fl_Type.o: ../FL/Fl_Image.H Fluid_Image.h ../FL/Fl_Shared_Image.H Fl_Type.o: ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H Fl_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H Fl_Type.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H -Fl_Type.o: ../FL/Fl_Input_.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Pixmap.H -Fl_Type.o: pixmaps/lock.xpm pixmaps/flWindow.xpm pixmaps/flButton.xpm -Fl_Type.o: pixmaps/flCheckButton.xpm pixmaps/flRoundButton.xpm -Fl_Type.o: pixmaps/flBox.xpm pixmaps/flGroup.xpm pixmaps/flFunction.xpm -Fl_Type.o: pixmaps/flCode.xpm pixmaps/flCodeBlock.xpm pixmaps/flComment.xpm -Fl_Type.o: pixmaps/flDeclaration.xpm pixmaps/flDeclarationBlock.xpm -Fl_Type.o: pixmaps/flClass.xpm pixmaps/flTabs.xpm pixmaps/flInput.xpm -Fl_Type.o: pixmaps/flChoice.xpm pixmaps/flMenuitem.xpm pixmaps/flMenubar.xpm -Fl_Type.o: pixmaps/flSubmenu.xpm pixmaps/flScroll.xpm pixmaps/flTile.xpm -Fl_Type.o: pixmaps/flWizard.xpm pixmaps/flPack.xpm pixmaps/flReturnButton.xpm +Fl_Type.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h +Fl_Type.o: ../FL/Fl_Pixmap.H pixmaps/lock.xpm pixmaps/flWindow.xpm +Fl_Type.o: pixmaps/flButton.xpm pixmaps/flCheckButton.xpm +Fl_Type.o: pixmaps/flRoundButton.xpm pixmaps/flBox.xpm pixmaps/flGroup.xpm +Fl_Type.o: pixmaps/flFunction.xpm pixmaps/flCode.xpm pixmaps/flCodeBlock.xpm +Fl_Type.o: pixmaps/flComment.xpm pixmaps/flDeclaration.xpm +Fl_Type.o: pixmaps/flDeclarationBlock.xpm pixmaps/flClass.xpm +Fl_Type.o: pixmaps/flTabs.xpm pixmaps/flInput.xpm pixmaps/flChoice.xpm +Fl_Type.o: pixmaps/flMenuitem.xpm pixmaps/flMenubar.xpm pixmaps/flSubmenu.xpm +Fl_Type.o: pixmaps/flScroll.xpm pixmaps/flTile.xpm pixmaps/flWizard.xpm +Fl_Type.o: pixmaps/flPack.xpm pixmaps/flReturnButton.xpm Fl_Type.o: pixmaps/flLightButton.xpm pixmaps/flRepeatButton.xpm Fl_Type.o: pixmaps/flMenuButton.xpm pixmaps/flOutput.xpm Fl_Type.o: pixmaps/flTextDisplay.xpm pixmaps/flTextEdit.xpm @@ -104,6 +84,29 @@ Fl_Type.o: pixmaps/flSlider.xpm pixmaps/flScrollBar.xpm Fl_Type.o: pixmaps/flValueSlider.xpm pixmaps/flAdjuster.xpm Fl_Type.o: pixmaps/flCounter.xpm pixmaps/flDial.xpm pixmaps/flRoller.xpm Fl_Type.o: pixmaps/flValueInput.xpm pixmaps/flValueOutput.xpm +Fl_Widget_Type.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H +Fl_Widget_Type.o: ../FL/Fl_Group.H ../FL/Fl_Input.H ../FL/Fl_Input_.H +Fl_Widget_Type.o: Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H +Fl_Widget_Type.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H +Fl_Widget_Type.o: ../FL/Fl_Image.H Fluid_Image.h ../FL/Fl_Shared_Image.H +Fl_Widget_Type.o: ../FL/fl_draw.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H +Fl_Widget_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H +Fl_Widget_Type.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H +Fl_Widget_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Window.H +Fl_Widget_Type.o: ../FL/Fl_Menu_Bar.H alignment_panel.h +Fl_Widget_Type.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H +Fl_Widget_Type.o: ../FL/fl_draw.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H +Fl_Widget_Type.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H +Fl_Widget_Type.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H +Fl_Widget_Type.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Button.H +Fl_Widget_Type.o: ../FL/Fl_Box.H ../FL/Fl_Light_Button.H +Fl_Widget_Type.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H +Fl_Widget_Type.o: ../FL/Fl_Button.H ../FL/Fl_Return_Button.H +Fl_Widget_Type.o: ../FL/fl_message.H ../FL/fl_ask.H ../FL/Fl_Slider.H +Fl_Widget_Type.o: ../src/flstring.h ../FL/Fl_Export.H ../config.h +Fl_Widget_Type.o: widget_panel.h ../FL/Fl_Value_Input.H ../FL/Fl_Input.H +Fl_Widget_Type.o: Shortcut_Button.h ../FL/Fl_Text_Editor.H +Fl_Widget_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_show_colormap.H Fl_Window_Type.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Window_Type.o: ../FL/Fl_Overlay_Window.H ../FL/Fl_Double_Window.H Fl_Window_Type.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H @@ -114,15 +117,16 @@ Fl_Window_Type.o: ../FL/Fl_Menu_Item.H Fluid_Image.h ../FL/Fl_Shared_Image.H Fl_Window_Type.o: ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Group.H Fl_Window_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H Fl_Window_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H -Fl_Window_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Menu_Bar.H -Fl_Window_Type.o: alignment_panel.h ../FL/Fl_Text_Buffer.H -Fl_Window_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H -Fl_Window_Type.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H -Fl_Window_Type.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H -Fl_Window_Type.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Button.H -Fl_Window_Type.o: ../FL/Fl_Box.H ../FL/Fl_Light_Button.H -Fl_Window_Type.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H -Fl_Window_Type.o: ../FL/Fl_Button.H ../FL/Fl_Return_Button.H widget_panel.h +Fl_Window_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H +Fl_Window_Type.o: ../FL/Fl_Menu_Bar.H undo.h alignment_panel.h +Fl_Window_Type.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H +Fl_Window_Type.o: ../FL/fl_draw.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H +Fl_Window_Type.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H +Fl_Window_Type.o: ../FL/Fl_Double_Window.H ../FL/Fl_Preferences.H +Fl_Window_Type.o: ../FL/Fl_Tooltip.H ../FL/Fl_Button.H ../FL/Fl_Box.H +Fl_Window_Type.o: ../FL/Fl_Light_Button.H ../FL/Fl_Check_Button.H +Fl_Window_Type.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H +Fl_Window_Type.o: ../FL/Fl_Return_Button.H widget_panel.h Fl_Window_Type.o: ../FL/Fl_Value_Input.H ../FL/Fl_Input.H Shortcut_Button.h Fl_Window_Type.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H Fl_Window_Type.o: ../src/flstring.h ../FL/Fl_Export.H ../config.h @@ -134,16 +138,44 @@ Fluid_Image.o: ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Pack.H Fluid_Image.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H Fluid_Image.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H Fluid_Image.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H -Fluid_Image.o: ../FL/Fl_Menu_Bar.H ../src/flstring.h ../FL/Fl_Export.H -Fluid_Image.o: ../config.h ../FL/filename.H ../FL/Fl_File_Chooser.H -Fluid_Image.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Button.H -Fluid_Image.o: ../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H -Fluid_Image.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H -Fluid_Image.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H -Fluid_Image.o: ../FL/Fl.H ../FL/filename.H ../FL/Fl_Box.H -Fluid_Image.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H -Fluid_Image.o: ../FL/Fl_Button.H ../FL/Fl_File_Input.H -Fluid_Image.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H +Fluid_Image.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H ../src/flstring.h +Fluid_Image.o: ../FL/Fl_Export.H ../config.h ../FL/filename.H +Fluid_Image.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H +Fluid_Image.o: ../FL/Fl_Window.H ../FL/Fl_Button.H ../FL/Fl_Preferences.H +Fluid_Image.o: ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H +Fluid_Image.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H +Fluid_Image.o: ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H ../FL/Fl.H +Fluid_Image.o: ../FL/filename.H ../FL/Fl_Box.H ../FL/Fl_Check_Button.H +Fluid_Image.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H +Fluid_Image.o: ../FL/Fl_File_Input.H ../FL/Fl_Return_Button.H ../FL/fl_ask.H +about_panel.o: about_panel.h ../FL/Fl.H ../FL/Enumerations.H +about_panel.o: ../FL/Fl_Export.H ../FL/Fl_Double_Window.H ../FL/Fl_Window.H +about_panel.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Group.H +about_panel.o: ../FL/Fl_Box.H ../FL/Fl_Return_Button.H ../FL/Fl_Button.H +about_panel.o: ../FL/Fl_Button.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H +align_widget.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H +align_widget.o: ../FL/Fl_Window.H Fl_Widget_Type.h Fl_Type.h +align_widget.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H +align_widget.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h +align_widget.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H +align_widget.o: ../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Group.H +align_widget.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H +align_widget.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H +align_widget.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Menu_Bar.H undo.h +alignment_panel.o: alignment_panel.h ../FL/Fl.H ../FL/Enumerations.H +alignment_panel.o: ../FL/Fl_Export.H ../FL/Fl_Text_Buffer.H +alignment_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Group.H +alignment_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H +alignment_panel.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H +alignment_panel.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H +alignment_panel.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H +alignment_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Tabs.H +alignment_panel.o: ../FL/Fl_Group.H ../FL/Fl_Box.H ../FL/Fl_Input.H +alignment_panel.o: ../FL/Fl_Input_.H ../FL/Fl_Light_Button.H +alignment_panel.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H +alignment_panel.o: ../FL/Fl_Image.H ../FL/Fl_Check_Button.H +alignment_panel.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H +alignment_panel.o: ../FL/Fl_Return_Button.H code.o: ../src/flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H code.o: ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Type.h ../FL/Fl_Widget.H code.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H @@ -152,23 +184,24 @@ code.o: ../FL/fl_draw.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Pack.H code.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H code.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H code.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H -code.o: ../FL/Fl_Menu_Bar.H alignment_panel.h ../FL/Fl_Text_Buffer.H -code.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Scrollbar.H -code.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H -code.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Preferences.H -code.o: ../FL/Fl_Tooltip.H ../FL/Fl_Button.H ../FL/Fl_Box.H -code.o: ../FL/Fl_Light_Button.H ../FL/Fl_Check_Button.H +code.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H alignment_panel.h +code.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H +code.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H +code.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H ../FL/Fl_Window.H +code.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Button.H +code.o: ../FL/Fl_Box.H ../FL/Fl_Light_Button.H ../FL/Fl_Check_Button.H code.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H code.o: ../FL/filename.H factory.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Group.H factory.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H factory.o: ../FL/Fl_Pixmap.H ../src/flstring.h ../FL/Fl_Export.H ../config.h -factory.o: Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H -factory.o: ../FL/Fl_Menu_Item.H Fluid_Image.h ../FL/Fl_Shared_Image.H -factory.o: ../FL/fl_draw.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Pack.H -factory.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H -factory.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H -factory.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Menu_Bar.H +factory.o: undo.h Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H +factory.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H Fluid_Image.h +factory.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H +factory.o: ../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H +factory.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H +factory.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H +factory.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H factory.o: ../FL/Fl_Box.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H factory.o: ../FL/Fl_Button.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H factory.o: ../FL/Fl_Light_Button.H ../FL/Fl_Check_Button.H @@ -199,7 +232,7 @@ file.o: ../FL/Fl_Return_Button.H ../FL/fl_message.H ../FL/fl_ask.H file.o: Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Menu.H Fluid_Image.h file.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Pack.H file.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H -file.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Menu_Bar.H +file.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H fluid.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fluid.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H fluid.o: ../FL/Fl_Widget.H ../FL/Fl_Box.H ../FL/Fl_Button.H @@ -220,23 +253,33 @@ fluid.o: alignment_panel.h ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H fluid.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H fluid.o: ../FL/Fl_Tabs.H ../FL/Fl_Light_Button.H function_panel.h fluid.o: ../FL/Fl_Window.H ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H -fluid.o: about_panel.h Fl_Type.h ../FL/Fl_Menu.H Fluid_Image.h +fluid.o: about_panel.h undo.h Fl_Type.h ../FL/Fl_Menu.H Fluid_Image.h fluid.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H fluid.o: ../FL/Fl_Menu_.H ../FL/Fl_Input_Choice.H -align_widget.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H -align_widget.o: ../FL/Fl_Window.H Fl_Widget_Type.h Fl_Type.h -align_widget.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H -align_widget.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h -align_widget.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H -align_widget.o: ../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Group.H -align_widget.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H -align_widget.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H -align_widget.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Menu_Bar.H -about_panel.o: about_panel.h ../FL/Fl.H ../FL/Enumerations.H -about_panel.o: ../FL/Fl_Export.H ../FL/Fl_Double_Window.H ../FL/Fl_Window.H -about_panel.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Group.H -about_panel.o: ../FL/Fl_Box.H ../FL/Fl_Return_Button.H ../FL/Fl_Button.H -about_panel.o: ../FL/Fl_Button.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H +function_panel.o: function_panel.h ../FL/Fl.H ../FL/Enumerations.H +function_panel.o: ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Light_Button.H +function_panel.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H +function_panel.o: ../FL/Fl_Button.H ../FL/Fl_Button.H ../FL/Fl_Text_Editor.H +function_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Group.H +function_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H +function_panel.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H ../FL/Fl_Group.H +function_panel.o: ../FL/Fl_Box.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H +function_panel.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Pixmap.H +function_panel.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H Fluid_Image.h +function_panel.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H +function_panel.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H +function_panel.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H +function_panel.o: ../FL/Fl_Menu_Bar.H undo.h +undo.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Type.h +undo.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H +undo.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h +undo.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H +undo.o: ../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H +undo.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H +undo.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H +undo.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h +undo.o: ../FL/Fl_Preferences.H ../src/flstring.h ../FL/Fl_Export.H +undo.o: ../config.h widget_panel.o: widget_panel.h ../FL/Fl.H ../FL/Enumerations.H widget_panel.o: ../FL/Fl_Export.H ../FL/Fl_Double_Window.H ../FL/Fl_Window.H widget_panel.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Tabs.H @@ -249,32 +292,3 @@ widget_panel.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H widget_panel.o: ../FL/fl_draw.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H widget_panel.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Return_Button.H widget_panel.o: ../FL/Fl_Button.H -alignment_panel.o: alignment_panel.h ../FL/Fl.H ../FL/Enumerations.H -alignment_panel.o: ../FL/Fl_Export.H ../FL/Fl_Text_Buffer.H -alignment_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Group.H -alignment_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H -alignment_panel.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H -alignment_panel.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H -alignment_panel.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H -alignment_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Tabs.H -alignment_panel.o: ../FL/Fl_Group.H ../FL/Fl_Box.H ../FL/Fl_Input.H -alignment_panel.o: ../FL/Fl_Input_.H ../FL/Fl_Light_Button.H -alignment_panel.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H -alignment_panel.o: ../FL/Fl_Image.H ../FL/Fl_Check_Button.H -alignment_panel.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H -alignment_panel.o: ../FL/Fl_Return_Button.H -function_panel.o: function_panel.h ../FL/Fl.H ../FL/Enumerations.H -function_panel.o: ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Light_Button.H -function_panel.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H -function_panel.o: ../FL/Fl_Button.H ../FL/Fl_Button.H ../FL/Fl_Group.H -function_panel.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H -function_panel.o: ../FL/fl_draw.H ../FL/Fl_Group.H ../FL/Fl_Widget.H -function_panel.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H -function_panel.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Box.H -function_panel.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H -function_panel.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Pixmap.H -function_panel.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H Fluid_Image.h -function_panel.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H -function_panel.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H -function_panel.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H -function_panel.o: ../FL/Fl_Menu_Bar.H diff --git a/vcnet/fluid.vcproj b/vcnet/fluid.vcproj index 78a0c26ad..5f9af8885 100644 --- a/vcnet/fluid.vcproj +++ b/vcnet/fluid.vcproj @@ -429,6 +429,25 @@ </FileConfiguration>
</File>
<File
+ RelativePath="..\fluid\undo.cxx">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ FavorSizeOrSpeed="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ <File
RelativePath="..\fluid\widget_panel.cxx">
<FileConfiguration
Name="Debug|Win32">
diff --git a/visualc/fluid.dsp b/visualc/fluid.dsp index caef12435..05f405eac 100644 --- a/visualc/fluid.dsp +++ b/visualc/fluid.dsp @@ -152,6 +152,10 @@ SOURCE=..\fluid\function_panel.cxx # End Source File
# Begin Source File
+SOURCE=..\fluid\undo.cxx
+# End Source File
+# Begin Source File
+
SOURCE=..\fluid\widget_panel.cxx
# End Source File
# End Target
|
