diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-04-18 18:26:28 +0200 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-04-23 22:20:31 +0200 |
commit | b9337e22ce1dbf2eba0e8c8db294ae99f4111f91 (patch) | |
tree | 53ee1bd3dfd213815a21579151983cb997922b05 /include/vcl/textview.hxx | |
parent | f4e1642a1761d5eab6ccdd89928869c2b2f1528a (diff) |
execute move of global headers
see https://gerrit.libreoffice.org/#/c/3367/
and Change-Id: I00c96fa77d04b33a6f8c8cd3490dfcd9bdc9e84a for details
Change-Id: I199a75bc4042af20817265d5ef85b1134a96ff5a
Diffstat (limited to 'include/vcl/textview.hxx')
-rw-r--r-- | include/vcl/textview.hxx | 208 |
1 files changed, 208 insertions, 0 deletions
diff --git a/include/vcl/textview.hxx b/include/vcl/textview.hxx new file mode 100644 index 000000000000..314e30fa4f1e --- /dev/null +++ b/include/vcl/textview.hxx @@ -0,0 +1,208 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef _TEXTVIEW_HXX +#define _TEXTVIEW_HXX + +#include <vcl/dllapi.h> +#include <vcl/textdata.hxx> +#include <tools/gen.hxx> +#include <vcl/dndhelp.hxx> + +class TextEngine; +class OutputDevice; +class Window; +class Cursor; +class KeyEvent; +class MouseEvent; +class CommandEvent; +class TextSelFunctionSet; +class SelectionEngine; +class VirtualDevice; +struct TextDDInfo; + +namespace com { +namespace sun { +namespace star { +namespace datatransfer { +namespace clipboard { + class XClipboard; +}}}}} + +struct ImpTextView; + +class VCL_DLLPUBLIC TextView : public vcl::unohelper::DragAndDropClient +{ + friend class TextEngine; + friend class TextUndo; + friend class TextUndoManager; + friend class TextSelFunctionSet; + friend class ExtTextView; + +private: + ImpTextView* mpImpl; + + TextView( const TextView& ) : vcl::unohelper::DragAndDropClient() {} + TextView& operator=( const TextView& ) { return *this; } + +protected: + void ShowSelection(); + void HideSelection(); + void ShowSelection( const TextSelection& rSel ); + void ImpShowHideSelection( sal_Bool bShow, const TextSelection* pRange = NULL ); + + TextSelection ImpMoveCursor( const KeyEvent& rKeyEvent ); + TextPaM ImpDelete( sal_uInt8 nMode, sal_uInt8 nDelMode ); + void ImpSetSelection( const TextSelection& rNewSel, sal_Bool bUI ); + sal_Bool IsInSelection( const TextPaM& rPaM ); + + void ImpPaint( OutputDevice* pOut, const Point& rStartPos, Rectangle const* pPaintArea, TextSelection const* pPaintRange = 0, TextSelection const* pSelection = 0 ); + void ImpPaint( const Rectangle& rRect, sal_Bool bUseVirtDev ); + void ImpShowCursor( sal_Bool bGotoCursor, sal_Bool bForceVisCursor, sal_Bool bEndKey ); + void ImpHighlight( const TextSelection& rSel ); + void ImpSetSelection( const TextSelection& rSelection ); + Point ImpGetOutputStartPos( const Point& rStartDocPos ) const; + + void ImpHideDDCursor(); + void ImpShowDDCursor(); + + bool ImplTruncateNewText( OUString& rNewText ) const; + sal_Bool ImplCheckTextLen( const String& rNewText ); + + VirtualDevice* GetVirtualDevice(); + + // DragAndDropClient + virtual void dragGestureRecognized( const ::com::sun::star::datatransfer::dnd::DragGestureEvent& dge ) throw (::com::sun::star::uno::RuntimeException); + virtual void dragDropEnd( const ::com::sun::star::datatransfer::dnd::DragSourceDropEvent& dsde ) throw (::com::sun::star::uno::RuntimeException); + virtual void drop( const ::com::sun::star::datatransfer::dnd::DropTargetDropEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); + virtual void dragEnter( const ::com::sun::star::datatransfer::dnd::DropTargetDragEnterEvent& dtdee ) throw (::com::sun::star::uno::RuntimeException); + virtual void dragExit( const ::com::sun::star::datatransfer::dnd::DropTargetEvent& dte ) throw (::com::sun::star::uno::RuntimeException); + virtual void dragOver( const ::com::sun::star::datatransfer::dnd::DropTargetDragEvent& dtde ) throw (::com::sun::star::uno::RuntimeException); + + using DragAndDropClient::dragEnter; + using DragAndDropClient::dragExit; + using DragAndDropClient::dragOver; + +public: + TextView( TextEngine* pEng, Window* pWindow ); + virtual ~TextView(); + + TextEngine* GetTextEngine() const; + Window* GetWindow() const; + + void Invalidate(); + void Scroll( long nHorzScroll, long nVertScroll ); + + void ShowCursor( sal_Bool bGotoCursor = sal_True, sal_Bool bForceVisCursor = sal_True ); + void HideCursor(); + + void EnableCursor( sal_Bool bEnable ); + sal_Bool IsCursorEnabled() const; + + const TextSelection& GetSelection() const; + TextSelection& GetSelection(); + void SetSelection( const TextSelection& rNewSel ); + void SetSelection( const TextSelection& rNewSel, sal_Bool bGotoCursor ); + sal_Bool HasSelection() const; + + String GetSelected(); + String GetSelected( LineEnd aSeparator ); + void DeleteSelected(); + + void InsertNewText( const OUString& rNew, sal_Bool bSelect = sal_False ); + // deprecated: use InsertNewText instead + void InsertText( const String& rNew, sal_Bool bSelect = sal_False ); + + sal_Bool KeyInput( const KeyEvent& rKeyEvent ); + void Paint( const Rectangle& rRect ); + void MouseButtonUp( const MouseEvent& rMouseEvent ); + void MouseButtonDown( const MouseEvent& rMouseEvent ); + void MouseMove( const MouseEvent& rMouseEvent ); + void Command( const CommandEvent& rCEvt ); + + void Cut(); + void Copy(); + void Paste(); + + void Copy( ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >& rxClipboard ); + void Paste( ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >& rxClipboard ); + + void Undo(); + void Redo(); + + sal_Bool Read( SvStream& rInput ); + + void SetStartDocPos( const Point& rPos ); + const Point& GetStartDocPos() const; + + Point GetDocPos( const Point& rWindowPos ) const; + Point GetWindowPos( const Point& rDocPos ) const; + + void SetInsertMode( sal_Bool bInsert ); + sal_Bool IsInsertMode() const; + + void SetAutoIndentMode( sal_Bool bAutoIndent ); + + void SetReadOnly( sal_Bool bReadOnly ); + sal_Bool IsReadOnly() const; + + void SetAutoScroll( sal_Bool bAutoScroll ); + sal_Bool IsAutoScroll() const; + + sal_Bool SetCursorAtPoint( const Point& rPointPixel ); + sal_Bool IsSelectionAtPoint( const Point& rPointPixel ); + + void SetPaintSelection( sal_Bool bPaint); + + void EraseVirtualDevice(); + + // aus dem protected Teil hierher verschoben + // F�r 'SvtXECTextCursor' (TL). Mu� ggf nochmal anders gel�st werden. + TextPaM PageUp( const TextPaM& rPaM ); + TextPaM PageDown( const TextPaM& rPaM ); + TextPaM CursorUp( const TextPaM& rPaM ); + TextPaM CursorDown( const TextPaM& rPaM ); + TextPaM CursorLeft( const TextPaM& rPaM, sal_uInt16 nCharacterIteratorMode ); + TextPaM CursorRight( const TextPaM& rPaM, sal_uInt16 nCharacterIteratorMode ); + TextPaM CursorWordLeft( const TextPaM& rPaM ); + TextPaM CursorWordRight( const TextPaM& rPaM ); + TextPaM CursorStartOfLine( const TextPaM& rPaM ); + TextPaM CursorEndOfLine( const TextPaM& rPaM ); + TextPaM CursorStartOfParagraph( const TextPaM& rPaM ); + TextPaM CursorEndOfParagraph( const TextPaM& rPaM ); + TextPaM CursorStartOfDoc(); + TextPaM CursorEndOfDoc(); + + /** + Drag and Drop, deleting and selection regards all text that has an attribute + TEXTATTR_PROTECTED set as one entitity. Drag and dropped text is automatically + attibuted as protected. + */ + void SupportProtectAttribute(sal_Bool bSupport); + + /** + Returns the number in paragraph of the line in which the cursor is blinking + if enabled, -1 otherwise. + */ + sal_Int32 GetLineNumberOfCursorInSelection() const; +}; + +#endif // _TEXTVIEW_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |