| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef SD_OUTLINE_VIEW_SHELL_HXX |
| #define SD_OUTLINE_VIEW_SHELL_HXX |
| |
| #include "DrawDocShell.hxx" |
| #include "ViewShell.hxx" |
| #include "OutlineView.hxx" |
| |
| class SdPage; |
| class TransferableDataHelper; |
| class TransferableClipboardListener; |
| |
| namespace sd { |
| |
| class SdUnoOutlineView; |
| |
| /** Show a textual overview of the text contents of all slides. |
| */ |
| class OutlineViewShell |
| : public ViewShell |
| { |
| public: |
| TYPEINFO(); |
| |
| SFX_DECL_VIEWFACTORY(OutlineViewShell); |
| SFX_DECL_INTERFACE(SD_IF_SDOUTLINEVIEWSHELL) |
| |
| // The previous macros change access mode. To be sure switch back |
| // to public access. |
| public: |
| /** Create a new view shell for the outline mode. |
| @param rViewShellBase |
| The new object will be stacked on this view shell base. |
| @param pFrameView |
| The frame view that makes it possible to pass information from |
| one view shell to the next. |
| */ |
| OutlineViewShell ( |
| SfxViewFrame* pFrame, |
| ViewShellBase& rViewShellBase, |
| ::Window* pParentWindow, |
| FrameView* pFrameView = NULL); |
| |
| virtual ~OutlineViewShell (void); |
| |
| virtual void Shutdown (void); |
| |
| virtual void Paint(const Rectangle& rRect, ::sd::Window* pWin); |
| |
| /** Arrange and resize the GUI elements like rulers, sliders, and |
| buttons as well as the actual document view according to the size of |
| the enclosing window and current sizes of buttons, rulers, and |
| sliders. |
| */ |
| virtual void ArrangeGUIElements (void); |
| |
| virtual sal_uInt16 PrepareClose( sal_Bool bUI = sal_True, sal_Bool bForBrowsing = sal_False ); |
| |
| virtual long VirtHScrollHdl(ScrollBar* pHScroll); |
| virtual long VirtVScrollHdl(ScrollBar* pVHScroll); |
| |
| virtual void AddWindow(::sd::Window* pWin); |
| virtual void RemoveWindow(::sd::Window* pWin); |
| |
| virtual void Activate( sal_Bool IsMDIActivate ); |
| virtual void Deactivate( sal_Bool IsMDIActivate ); |
| |
| virtual SdPage* GetActualPage(); |
| |
| /// inherited from sd::ViewShell |
| virtual SdPage* getCurrentPage() const; |
| |
| void ExecCtrl(SfxRequest &rReq); |
| void GetCtrlState(SfxItemSet &rSet); |
| void GetMenuState(SfxItemSet &rSet); |
| void GetAttrState(SfxItemSet &rSet); |
| void GetState (SfxItemSet& rSet); |
| |
| void ExecStatusBar(SfxRequest& rReq); |
| void GetStatusBarState(SfxItemSet& rSet); |
| |
| void FuTemporary(SfxRequest &rReq); |
| void FuTemporaryModify(SfxRequest &rReq); |
| void FuPermanent(SfxRequest &rReq); |
| void FuSupport(SfxRequest &rReq); |
| |
| virtual void SetZoom(long nZoom); |
| virtual void SetZoomRect(const Rectangle& rZoomRect); |
| virtual String GetSelectionText( sal_Bool bCompleteWords = sal_False ); |
| virtual sal_Bool HasSelection( sal_Bool bText = sal_True ) const; |
| |
| void Execute(SfxRequest& rReq); |
| |
| virtual void ReadFrameViewData(FrameView* pView); |
| virtual void WriteFrameViewData(); |
| |
| virtual void Command( const CommandEvent& rCEvt, ::sd::Window* pWin ); |
| virtual sal_Bool KeyInput(const KeyEvent& rKEvt, ::sd::Window* pWin); |
| virtual void MouseButtonUp(const MouseEvent& rMEvt, ::sd::Window* pWin); |
| |
| sal_uLong Read(SvStream& rInput, const String& rBaseURL, sal_uInt16 eFormat); |
| |
| virtual void WriteUserDataSequence ( ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False ); |
| virtual void ReadUserDataSequence ( const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False ); |
| |
| /** this method is called when the visible area of the view from this viewshell is changed */ |
| virtual void VisAreaChanged(const Rectangle& rRect); |
| |
| /** Create an accessible object representing the specified window. |
| @param pWindow |
| The returned object makes the document displayed in this window |
| accessible. |
| @return |
| Returns an <type>AccessibleDrawDocumentView</type> object. |
| */ |
| virtual ::com::sun::star::uno::Reference< |
| ::com::sun::star::accessibility::XAccessible> |
| CreateAccessibleDocumentView (::sd::Window* pWindow); |
| |
| String m_StrOldPageName; |
| /** Update the preview to show the specified page. |
| */ |
| virtual void UpdatePreview (SdPage* pPage, sal_Bool bInit = sal_False); |
| |
| virtual css::uno::Reference<css::drawing::XDrawSubController> CreateSubController (void); |
| |
| /** Make the given page the new current page. This method |
| notifies the controller and adapts the selection of the |
| model. |
| @param pPage |
| The new current page. Pass NULL when there is no current page. |
| */ |
| void SetCurrentPage (SdPage* pPage); |
| |
| bool UpdateTitleObject( SdPage* pPage, Paragraph* pPara ); |
| bool UpdateOutlineObject( SdPage* pPage, Paragraph* pPara ); |
| |
| protected: |
| virtual Size GetOptimalSizePixel() const; |
| |
| private: |
| OutlineView* pOlView; |
| SdPage* pLastPage; // Zur performanten Aufbereitung der Preview |
| TransferableClipboardListener* pClipEvtLstnr; |
| sal_Bool bPastePossible; |
| bool mbInitialized; |
| |
| void Construct (DrawDocShell* pDocSh); |
| DECL_LINK( ClipboardChanged, TransferableDataHelper* ); |
| }; |
| |
| } // end of namespace sd |
| |
| #endif |