]> git.lyx.org Git - lyx.git/blobdiff - src/text3.C
Extracted from r14281
[lyx.git] / src / text3.C
index 31db8bf99b27c3d18ba079e2efce6e1186c7e8fb..49d204a3fd8614844e80faa8d9ca4c1c4fddff32 100644 (file)
@@ -47,7 +47,9 @@
 #include "pariterator.h"
 
 #include "frontends/Dialogs.h"
+#include "frontends/Gui.h"
 #include "frontends/LyXView.h"
+#include "frontends/Clipboard.h"
 
 #include "insets/insetcommand.h"
 #include "insets/insetfloatlist.h"
@@ -79,6 +81,9 @@ using lyx::cap::replaceSelection;
 using lyx::support::isStrUnsignedInt;
 using lyx::support::token;
 
+using lyx::frontend::Gui;
+using lyx::frontend::Clipboard;
+
 using std::endl;
 using std::string;
 using std::istringstream;
@@ -119,7 +124,7 @@ namespace {
                if (selecting || cur.mark())
                        cur.setSelection();
                if (!cur.selection())
-                       cur.bv().haveSelection(false);
+                       cur.bv().owner()->gui().clipboard().haveSelection(false);
                cur.bv().switchKeyMap();
        }
 
@@ -213,7 +218,6 @@ bool LyXText::cursorPrevious(LCursor & cur)
                updated |= cursorUp(cur);
        }
 
-       cur.bv().updateScrollbar();
        finishUndo();
        return updated;
 }
@@ -236,7 +240,6 @@ bool LyXText::cursorNext(LCursor & cur)
                updated |= cursorDown(cur);
        }
 
-       cur.bv().updateScrollbar();
        finishUndo();
        return updated;
 }
@@ -377,19 +380,19 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                break;
        }
 
-       case LFUN_DELETE_FORWARD_WORD_FORWARD:
+       case LFUN_WORD_DELETE_FORWARD:
                cur.clearSelection();
                deleteWordForward(cur);
                finishChange(cur, false);
                break;
 
-       case LFUN_DELETE_FORWARD_WORD_BACKWARD:
+       case LFUN_WORD_DELETE_BACKWARD:
                cur.clearSelection();
                deleteWordBackward(cur);
                finishChange(cur, false);
                break;
 
-       case LFUN_DELETE_FORWARD_LINE_FORWARD:
+       case LFUN_LINE_DELETE:
                cur.clearSelection();
                deleteLineForward(cur);
                finishChange(cur, false);
@@ -426,7 +429,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                }
                break;
 
-       case LFUN_BUFFER_BEGINSEL:
+       case LFUN_BUFFER_BEGIN_SELECT:
                if (cur.depth() == 1) {
                        if (!cur.selection())
                                cur.resetAnchor();
@@ -448,7 +451,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                }
                break;
 
-       case LFUN_BUFFER_ENDSEL:
+       case LFUN_BUFFER_END_SELECT:
                if (cur.depth() == 1) {
                        if (!cur.selection())
                                cur.resetAnchor();
@@ -460,10 +463,10 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                break;
 
        case LFUN_CHAR_FORWARD:
-       case LFUN_CHAR_FORWARDSEL:
+       case LFUN_CHAR_FORWARD_SELECT:
                //lyxerr << BOOST_CURRENT_FUNCTION
                //       << " LFUN_CHAR_FORWARD[SEL]:\n" << cur << endl;
-               cur.selHandle(cmd.action == LFUN_CHAR_FORWARDSEL);
+               cur.selHandle(cmd.action == LFUN_CHAR_FORWARD_SELECT);
                if (isRTL(cur.paragraph()))
                        needsUpdate = cursorLeft(cur);
                else
@@ -477,9 +480,9 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                break;
 
        case LFUN_CHAR_BACKWARD:
-       case LFUN_BACKWARD_SELECT:
-               //lyxerr << "handle LFUN_CHAR_BACKWARD[SEL]:\n" << cur << endl;
-               cur.selHandle(cmd.action == LFUN_BACKWARD_SELECT);
+       case LFUN_CHAR_BACKWARD_SELECT:
+               //lyxerr << "handle LFUN_CHAR_BACKWARD[_SELECT]:\n" << cur << endl;
+               cur.selHandle(cmd.action == LFUN_CHAR_BACKWARD_SELECT);
                if (isRTL(cur.paragraph()))
                        needsUpdate = cursorRight(cur);
                else
@@ -527,7 +530,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                finishChange(cur, false);
                break;
 
-       case LFUN_PARAGRAPH_UPSEL:
+       case LFUN_PARAGRAPH_UP_SELECT:
                if (!cur.selection())
                        cur.resetAnchor();
                cursorUpParagraph(cur);
@@ -541,14 +544,14 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                finishChange(cur, false);
                break;
 
-       case LFUN_PARAGRAPH_DOWNSEL:
+       case LFUN_PARAGRAPH_DOWN_SELECT:
                if (!cur.selection())
                        cur.resetAnchor();
                cursorDownParagraph(cur);
                finishChange(cur, true);
                break;
 
-       case LFUN_SCREEN_UPSEL:
+       case LFUN_SCREEN_UP_SELECT:
                update(cur);
                if (!cur.selection())
                        cur.resetAnchor();
@@ -556,7 +559,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                finishChange(cur, true);
                break;
 
-       case LFUN_SCREEN_DOWNSEL:
+       case LFUN_SCREEN_DOWN_SELECT:
                update(cur);
                if (!cur.selection())
                        cur.resetAnchor();
@@ -564,7 +567,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                finishChange(cur, true);
                break;
 
-       case LFUN_LINE_BEGINSEL:
+       case LFUN_LINE_BEGIN_SELECT:
                update(cur);
                if (!cur.selection())
                        cur.resetAnchor();
@@ -572,7 +575,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                finishChange(cur, true);
                break;
 
-       case LFUN_LINE_ENDSEL:
+       case LFUN_LINE_END_SELECT:
                update(cur);
                if (!cur.selection())
                        cur.resetAnchor();
@@ -580,7 +583,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                finishChange(cur, true);
                break;
 
-       case LFUN_WORD_FORWARDSEL:
+       case LFUN_WORD_FORWARD_SELECT:
                if (!cur.selection())
                        cur.resetAnchor();
                if (isRTL(cur.paragraph()))
@@ -590,7 +593,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                finishChange(cur, true);
                break;
 
-       case LFUN_WORD_BACKWARDSEL:
+       case LFUN_WORD_BACKWARD_SELECT:
                if (!cur.selection())
                        cur.resetAnchor();
                if (isRTL(cur.paragraph()))
@@ -658,7 +661,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                break;
        }
 
-       case LFUN_DELETE_FORWARD:
+       case LFUN_CHAR_DELETE_FORWARD:
                if (!cur.selection()) {
                        if (cur.pos() == cur.paragraph().size())
                                // Par boundary, force full-screen update
@@ -689,7 +692,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                break;
 
 
-       case LFUN_DELETE_FORWARD_BACKWARD:
+       case LFUN_CHAR_DELETE_BACKWARD:
                if (!cur.selection()) {
                        if (bv->owner()->getIntl().getTransManager().backspace()) {
                                // Par boundary, full-screen update
@@ -707,7 +710,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                bv->switchKeyMap();
                break;
 
-       case LFUN_DELETE_FORWARD_BACKWARD_SKIP:
+       case LFUN_DELETE_BACKWARD_SKIP:
                // Reverse the effect of LFUN_BREAK_PARAGRAPH_SKIP.
                if (!cur.selection()) {
 #ifdef WITH_WARNINGS
@@ -728,7 +731,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                bv->switchKeyMap();
                break;
 
-       case LFUN_BREAK_PARAGRAPHKEEPLAYOUT:
+       case LFUN_BREAK_PARAGRAPH_KEEP_LAYOUT:
                lyx::cap::replaceSelection(cur);
                breakParagraph(cur, 1);
                cur.resetAnchor();
@@ -801,7 +804,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                cur.inset().showInsetDialog(bv);
                break;
 
-       case LFUN_SCREEN_DOWN_INSET_TOGGLE: {
+       case LFUN_NEXT_INSET_TOGGLE: {
                InsetBase * inset = cur.nextInset();
                // this is the real function we want to invoke
                cmd = FuncRequest(LFUN_INSET_TOGGLE);
@@ -845,7 +848,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                specialChar(cur, InsetSpecialChar::LDOTS);
                break;
 
-       case LFUN_LINE_END_OF_SENTENCE_PERIOD_INSERT:
+       case LFUN_END_OF_SENTENCE_PERIOD_INSERT:
                specialChar(cur, InsetSpecialChar::END_OF_SENTENCE);
                break;
 
@@ -982,7 +985,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
 
        case LFUN_PRIMARY_SELECTION_PASTE: {
                cur.clearSelection();
-               string const clip = bv->getClipboard();
+               string const clip = bv->owner()->gui().clipboard().get();
                if (!clip.empty()) {
                        recordUndo(cur);
                        if (cmd.argument == "paragraph")
@@ -1042,7 +1045,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                        cursorEnd(cur);
                        cur.setSelection();
                        bv->cursor() = cur;
-                       bv->haveSelection(cur.selection());
+                       bv->owner()->gui().clipboard().haveSelection(cur.selection());
                }
                break;
 
@@ -1050,7 +1053,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                if (cmd.button() == mouse_button::button1) {
                        selectWord(cur, lyx::WHOLE_WORD_STRICT);
                        bv->cursor() = cur;
-                       bv->haveSelection(cur.selection());
+                       bv->owner()->gui().clipboard().haveSelection(cur.selection());
                }
                break;
 
@@ -1132,7 +1135,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
 
                // finish selection
                if (cmd.button() == mouse_button::button1)
-                       bv->haveSelection(cur.selection());
+                       bv->owner()->gui().clipboard().haveSelection(cur.selection());
 
                bv->switchKeyMap();
                bv->owner()->updateMenubar();
@@ -1153,7 +1156,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                if (lyxrc.auto_region_delete) {
                        if (cur.selection())
                                cutSelection(cur, false, false);
-                       bv->haveSelection(false);
+                       bv->owner()->gui().clipboard().haveSelection(false);
                }
 
                cur.clearSelection();
@@ -1167,7 +1170,6 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
 
                cur.resetAnchor();
                moveCursor(cur, false);
-               bv->updateScrollbar();
                break;
        }
 
@@ -1499,12 +1501,12 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                break;
        }
 
-       case LFUN_ACCEPT_CHANGE: {
+       case LFUN_CHANGE_ACCEPT: {
                acceptChange(cur);
                break;
        }
 
-       case LFUN_REJECT_CHANGE: {
+       case LFUN_CHANGE_REJECT: {
                rejectChange(cur);
                break;
        }
@@ -1740,7 +1742,7 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
        case LFUN_HFILL_INSERT:
        case LFUN_MENU_SEPARATOR_INSERT:
        case LFUN_DOTS_INSERT:
-       case LFUN_LINE_END_OF_SENTENCE_PERIOD_INSERT:
+       case LFUN_END_OF_SENTENCE_PERIOD_INSERT:
                code = InsetBase::SPECIALCHAR_CODE;
                break;
        case LFUN_SPACE_INSERT:
@@ -1819,27 +1821,27 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                break;
        }
 
-       case LFUN_DELETE_FORWARD_WORD_FORWARD:
-       case LFUN_DELETE_FORWARD_WORD_BACKWARD:
-       case LFUN_DELETE_FORWARD_LINE_FORWARD:
+       case LFUN_WORD_DELETE_FORWARD:
+       case LFUN_WORD_DELETE_BACKWARD:
+       case LFUN_LINE_DELETE:
        case LFUN_WORD_FORWARD:
        case LFUN_WORD_BACKWARD:
        case LFUN_CHAR_FORWARD:
-       case LFUN_CHAR_FORWARDSEL:
+       case LFUN_CHAR_FORWARD_SELECT:
        case LFUN_CHAR_BACKWARD:
-       case LFUN_BACKWARD_SELECT:
+       case LFUN_CHAR_BACKWARD_SELECT:
        case LFUN_UP:
        case LFUN_UP_SELECT:
        case LFUN_DOWN:
        case LFUN_DOWN_SELECT:
-       case LFUN_PARAGRAPH_UPSEL:
-       case LFUN_PARAGRAPH_DOWNSEL:
-       case LFUN_SCREEN_UPSEL:
-       case LFUN_SCREEN_DOWNSEL:
-       case LFUN_LINE_BEGINSEL:
-       case LFUN_LINE_ENDSEL:
-       case LFUN_WORD_FORWARDSEL:
-       case LFUN_WORD_BACKWARDSEL:
+       case LFUN_PARAGRAPH_UP_SELECT:
+       case LFUN_PARAGRAPH_DOWN_SELECT:
+       case LFUN_SCREEN_UP_SELECT:
+       case LFUN_SCREEN_DOWN_SELECT:
+       case LFUN_LINE_BEGIN_SELECT:
+       case LFUN_LINE_END_SELECT:
+       case LFUN_WORD_FORWARD_SELECT:
+       case LFUN_WORD_BACKWARD_SELECT:
        case LFUN_WORD_SELECT:
        case LFUN_PARAGRAPH_UP:
        case LFUN_PARAGRAPH_DOWN:
@@ -1848,16 +1850,16 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
        case LFUN_LINE_BEGIN:
        case LFUN_LINE_END:
        case LFUN_BREAK_LINE:
-       case LFUN_DELETE_FORWARD:
+       case LFUN_CHAR_DELETE_FORWARD:
        case LFUN_DELETE_FORWARD_SKIP:
-       case LFUN_DELETE_FORWARD_BACKWARD:
-       case LFUN_DELETE_FORWARD_BACKWARD_SKIP:
+       case LFUN_CHAR_DELETE_BACKWARD:
+       case LFUN_DELETE_BACKWARD_SKIP:
        case LFUN_BREAK_PARAGRAPH:
-       case LFUN_BREAK_PARAGRAPHKEEPLAYOUT:
+       case LFUN_BREAK_PARAGRAPH_KEEP_LAYOUT:
        case LFUN_BREAK_PARAGRAPH_SKIP:
        case LFUN_PARAGRAPH_SPACING:
        case LFUN_INSET_INSERT:
-       case LFUN_SCREEN_DOWN_INSET_TOGGLE:
+       case LFUN_NEXT_INSET_TOGGLE:
        case LFUN_WORD_UPCASE:
        case LFUN_WORD_LOWCASE:
        case LFUN_WORD_CAPITALIZE:
@@ -1907,15 +1909,15 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
        case LFUN_ACCENT_HUNGARIAN_UMLAUT:
        case LFUN_ACCENT_CIRCLE:
        case LFUN_ACCENT_OGONEK:
-       case LFUN_ACCEPT_CHANGE:
-       case LFUN_REJECT_CHANGE:
+       case LFUN_CHANGE_ACCEPT:
+       case LFUN_CHANGE_REJECT:
        case LFUN_THESAURUS_ENTRY:
        case LFUN_PARAGRAPH_PARAMS_APPLY:
        case LFUN_ESCAPE:
        case LFUN_BUFFER_END:
        case LFUN_BUFFER_BEGIN:
-       case LFUN_BUFFER_BEGINSEL:
-       case LFUN_BUFFER_ENDSEL:
+       case LFUN_BUFFER_BEGIN_SELECT:
+       case LFUN_BUFFER_END_SELECT:
                // these are handled in our dispatch()
                enable = true;
                break;