1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SD_SOURCE_UI_INC_FUOLTEXT_HXX
21 #define INCLUDED_SD_SOURCE_UI_INC_FUOLTEXT_HXX
22 
23 #include "fupoor.hxx"
24 
25 class SdDrawDocument;
26 class SfxRequest;
27 
28 namespace sd {
29 
30 class View;
31 class ViewShell;
32 class OutlineView;
33 class OutlineViewShell;
34 
35 /**
36  * text functions in outline mode
37  */
38 class FuOutlineText final
39     : public FuPoor
40 {
41 public:
42 
43     static rtl::Reference<FuPoor> Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq );
44 
45     virtual bool Command(const CommandEvent& rCEvt) override;
46 
47     virtual bool KeyInput(const KeyEvent& rKEvt) override;
48     virtual bool MouseMove(const MouseEvent& rMEvt) override;
49     virtual bool MouseButtonUp(const MouseEvent& rMEvt) override;
50     virtual bool MouseButtonDown(const MouseEvent& rMEvt) override;
51 
52     virtual void DoCut() override;
53     virtual void DoCopy() override;
54     virtual void DoPaste() override;
55     virtual void DoPasteUnformatted() override;
56 
57     /** Call this method when the text in the outliner (may) has changed.
58         It will invalidate some slots of the view frame and update the
59         preview in the slide sorter.
60     */
61     void UpdateForKeyPress (const KeyEvent& rEvent);
62 
63 private:
64     FuOutlineText (
65         ViewShell* pViewShell,
66         ::sd::Window* pWin,
67         ::sd::View* pView,
68         SdDrawDocument* pDoc,
69         SfxRequest& rReq);
70 
71     OutlineViewShell* pOutlineViewShell;
72     OutlineView* pOutlineView;
73 };
74 
75 } // end of namespace sd
76 
77 #endif
78 
79 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
80