diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2002-11-05 19:53:50 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2002-11-05 19:53:50 +0000 |
| commit | 3473297741ac6224b9c461aba98b73b3217b808f (patch) | |
| tree | 27eb7285c2d1b4b6fe321d68813a4e1b060887f1 /src/Fl_Text_Editor.cxx | |
| parent | 66dabdb8f53231eff304cbb944cd900ddbce00af (diff) | |
Added 'Undo' to Fl_Text_Editor by reusing some of the Fl_Input_ code. I tried many cases and it seems to work fine.
Matthias
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2825 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Text_Editor.cxx')
| -rw-r--r-- | src/Fl_Text_Editor.cxx | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/Fl_Text_Editor.cxx b/src/Fl_Text_Editor.cxx index 4d44e8529..eda8a0adb 100644 --- a/src/Fl_Text_Editor.cxx +++ b/src/Fl_Text_Editor.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Text_Editor.cxx,v 1.9.2.11 2002/11/05 06:45:40 matthiaswm Exp $" +// "$Id: Fl_Text_Editor.cxx,v 1.9.2.12 2002/11/05 19:53:50 matthiaswm Exp $" // // Copyright 2001-2002 by Bill Spitzak and others. // Original code Copyright Mark Edel. Permission to distribute under @@ -93,8 +93,8 @@ static struct { { FL_Page_Up, FL_CTRL|FL_SHIFT, Fl_Text_Editor::kf_c_s_move }, { FL_Page_Down, FL_CTRL|FL_SHIFT, Fl_Text_Editor::kf_c_s_move }, //{ FL_Clear, 0, Fl_Text_Editor::delete_to_eol }, -//{ 'z', FL_CTRL, Fl_Text_Editor::undo }, -//{ '/', FL_CTRL, Fl_Text_Editor::undo }, + { 'z', FL_CTRL, Fl_Text_Editor::kf_undo }, + { '/', FL_CTRL, Fl_Text_Editor::kf_undo }, { 'x', FL_CTRL, Fl_Text_Editor::kf_cut }, { FL_Delete, FL_SHIFT, Fl_Text_Editor::kf_cut }, { 'c', FL_CTRL, Fl_Text_Editor::kf_copy }, @@ -105,6 +105,7 @@ static struct { #ifdef __APPLE__ // Define CMD+key accelerators... + { 'z', FL_COMMAND, Fl_Text_Editor::kf_undo }, { 'x', FL_COMMAND, Fl_Text_Editor::kf_cut }, { 'c', FL_COMMAND, Fl_Text_Editor::kf_copy }, { 'v', FL_COMMAND, Fl_Text_Editor::kf_paste }, @@ -386,6 +387,16 @@ int Fl_Text_Editor::kf_select_all(int, Fl_Text_Editor* e) { return 1; } +int Fl_Text_Editor::kf_undo(int , Fl_Text_Editor* e) { + e->buffer()->unselect(); + int crsr; + int ret = e->buffer()->undo(&crsr); + e->insert_position(crsr); + e->show_insert_position(); + if (e->when()&FL_WHEN_CHANGED) e->do_callback(); else e->set_changed(); + return ret; +} + int Fl_Text_Editor::handle_key() { // Call fltk's rules to try to turn this into a printing character. @@ -466,5 +477,5 @@ int Fl_Text_Editor::handle(int event) { } // -// End of "$Id: Fl_Text_Editor.cxx,v 1.9.2.11 2002/11/05 06:45:40 matthiaswm Exp $". +// End of "$Id: Fl_Text_Editor.cxx,v 1.9.2.12 2002/11/05 19:53:50 matthiaswm Exp $". // |
