summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2004-02-25 16:10:33 +0000
committerKurt Zenker <kz@openoffice.org>2004-02-25 16:10:33 +0000
commita6dd734448e467a25c6f282f1f9c27a7dcc2c263 (patch)
tree0a1b68c44760fd8dc962298ee08fc280153a0544
parent8c4ce79976495be11cbb82e847517d217bdb8982 (diff)
INTEGRATION: CWS layoutmanager (1.11.30); FILE MERGED
2004/02/02 09:15:41 abi 1.11.30.8: with tracker 2003/12/04 13:08:19 abi 1.11.30.7: workaround layoutoutrequest in deactivate, generic menuhandling 2003/11/20 12:54:55 abi 1.11.30.6: resizing of frame 2003/11/19 16:17:50 abi 1.11.30.5: some tries 2003/11/18 15:05:28 abi 1.11.30.4: recycling Frame,Window and Document 2003/11/06 14:57:06 abi 1.11.30.3: added container window wrapper 2003/11/05 16:18:59 abi 1.11.30.2: added XDockingAreaAcceptor 2003/10/29 13:42:29 abi 1.11.30.1: inplace activation
-rw-r--r--embedserv/source/inc/docholder.hxx205
1 files changed, 176 insertions, 29 deletions
diff --git a/embedserv/source/inc/docholder.hxx b/embedserv/source/inc/docholder.hxx
index 00ea030dc488..76124d86554f 100644
--- a/embedserv/source/inc/docholder.hxx
+++ b/embedserv/source/inc/docholder.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docholder.hxx,v $
*
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
- * last change: $Author: rt $ $Date: 2003-04-24 13:54:51 $
+ * last change: $Author: kz $ $Date: 2004-02-25 17:10:33 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -64,6 +64,9 @@
#include "common.h"
+#ifndef _DRAFTS_COM_SUN_STAR_FRAME_XLAYOUTMANAGER_HPP_
+#include <drafts/com/sun/star/frame/XLayoutManager.hpp>
+#endif
#ifndef _COM_SUN_STAR_UTIL_XCLOSELISTENER_HPP_
#include <com/sun/star/util/XCloseListener.hpp>
#endif
@@ -76,41 +79,116 @@
#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_
#include <com/sun/star/frame/XFrame.hpp>
#endif
-#ifndef _CPPUHELPER_IMPLBASE3_HXX_
-#include <cppuhelper/implbase3.hxx>
+#ifndef _CPPUHELPER_IMPLBASE4_HXX_
+#include <cppuhelper/implbase4.hxx>
#endif
class EmbedDocument_Impl;
class Interceptor;
+class CIIAObj;
+
+namespace winwrap {
+ class CHatchWin;
+}
+
class DocumentHolder :
- public ::cppu::WeakImplHelper3<
+ public ::cppu::WeakImplHelper4<
::com::sun::star::util::XCloseListener,
::com::sun::star::frame::XTerminateListener,
- ::com::sun::star::util::XModifyListener >
+ ::com::sun::star::util::XModifyListener,
+ ::drafts::com::sun::star::ui::XDockingAreaAcceptor>
{
private:
+ BOOL m_bAllowInPlace;
+ LPOLEINPLACESITE m_pIOleIPSite;
+ LPOLEINPLACEFRAME m_pIOleIPFrame;
+ LPOLEINPLACEUIWINDOW m_pIOleIPUIWindow;
+ winwrap::CHatchWin* m_pCHatchWin;
- EmbedDocument_Impl* m_pOLEInterface;
- Interceptor* m_pInterceptor;
+ EmbedDocument_Impl* m_pOLEInterface;
+ Interceptor* m_pInterceptor;
+ CIIAObj* m_pImpIOleIPActiveObject;
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > m_xDocument;
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame;
- ::rtl::OUString m_aContainerName,m_aDocumentNamePart,m_aFilterName;
+ // contains top level system window data
+ bool m_bOnDeactivate;
+ HWND m_hWndxWinParent;
+ HWND m_hWndxWinCont;
+ HMENU m_nMenuHandle;
+ HMENU m_nMenuShared;
+ HOLEMENU m_nOLEMenu;
+ com::sun::star::uno::Reference<
+ com::sun::star::awt::XWindow> m_xEditWindow;
+
+ com::sun::star::uno::Reference<
+ com::sun::star::awt::XWindow> m_xContainerWindow;
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XModel > m_xDocument;
+
+ ::com::sun::star::uno::Reference<
+ ::drafts::com::sun::star::frame::XLayoutManager> m_xLayoutManager;
+
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > DocumentFrame();
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XFrame > m_xFrame;
+
+ ::rtl::OUString m_aContainerName,m_aDocumentNamePart,m_aFilterName;
CComPtr< IDispatch > m_pIDispatch;
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XFrame > DocumentFrame();
+
+
public:
- DocumentHolder( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,EmbedDocument_Impl *pOLEInterface);
+
+ // the instance to which we belong
+ static HINSTANCE m_hInstance;
+
+ HWND GetEditWindowParentHandle() const
+ {
+ return m_hWndxWinParent;
+ }
+
+ void SetContainerWindowHandle(HWND hWndxWinCont)
+ {
+ m_hWndxWinCont = hWndxWinCont;
+ }
+
+ DocumentHolder(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
+ EmbedDocument_Impl *pOLEInterface);
+
~DocumentHolder();
- void SetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xDoc);
+ // Methods for inplace activation
+
+
+ BOOL isActive() const;
+ void DisableInplaceActivation(BOOL);
+ HRESULT InPlaceActivate(LPOLECLIENTSITE,BOOL);
+ void InPlaceDeactivate(void);
+ HRESULT UIActivate();
+ void UIDeactivate();
+ BOOL InPlaceMenuCreate(void);
+ BOOL InPlaceMenuDestroy(void);
+
+ void OpenIntoWindow(void);
+ BOOL Undo(void);
+
+ // further methods
+
+ void SetDocument(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XModel >& xDoc
+ );
void CloseDocument();
void CloseFrame();
@@ -124,9 +202,14 @@ public:
void setContainerName(const rtl::OUString& aContainerName);
rtl::OUString getContainerName() const { return m_aContainerName; }
-
+ void OnPosRectChanged(LPRECT lpRect) const;
void show();
+
+ /** hides the document window, even in case of an external container
+ * side managed window.
+ */
+
void hide();
IDispatch* GetIDispatch();
@@ -135,26 +218,90 @@ public:
HRESULT GetVisArea( RECTL *pRect );
HRESULT SetExtent( const SIZEL *pSize );
HRESULT GetExtent( SIZEL *pSize );
+ // sets extension on the hatchwindow
+ HRESULT SetContRects(LPCRECT pRect);
+ HRESULT SetObjectRects(LPCRECT aRect, LPCRECT aClip);
+
+ HWND GetTopMostWinHandle() const
+ {
+ return m_hWndxWinParent;
+ }
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::frame::XModel >
+ GetDocument() const
+ {
+ return m_xDocument;
+ }
+
+ // XEventListener
+ virtual void SAL_CALL
+ disposing( const com::sun::star::lang::EventObject& aSource );
+
+ // XCloseListener
+ virtual void SAL_CALL
+ queryClosing(
+ const com::sun::star::lang::EventObject& aSource,
+ sal_Bool bGetsOwnership
+ )
+ throw(
+ ::com::sun::star::util::CloseVetoException
+ );
+
+ virtual void SAL_CALL
+ notifyClosing(
+ const com::sun::star::lang::EventObject& aSource
+ );
+
+ // XTerminateListener
+ virtual void SAL_CALL
+ queryTermination(
+ const com::sun::star::lang::EventObject& aSource
+ )
+ throw(
+ ::com::sun::star::frame::TerminationVetoException
+ );
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > GetDocument() { return m_xDocument; }
+ virtual void SAL_CALL
+ notifyTermination(
+ const com::sun::star::lang::EventObject& aSource
+ );
-// XEventListener
- virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& aSource );
-// XCloseListener
- virtual void SAL_CALL queryClosing( const com::sun::star::lang::EventObject& aSource, sal_Bool bGetsOwnership )
- throw( ::com::sun::star::util::CloseVetoException );
+ // XModifyListener
+ virtual void SAL_CALL
+ modified(
+ const ::com::sun::star::lang::EventObject& aEvent
+ )
+ throw (
+ ::com::sun::star::uno::RuntimeException
+ );
- virtual void SAL_CALL notifyClosing( const com::sun::star::lang::EventObject& aSource );
+ // XDockingAreaAcceptor
-// XTerminateListener
- virtual void SAL_CALL queryTermination( const com::sun::star::lang::EventObject& aSource )
- throw( ::com::sun::star::frame::TerminationVetoException );
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::awt::XWindow> SAL_CALL
+ getContainerWindow(
+ )
+ throw (
+ ::com::sun::star::uno::RuntimeException
+ );
- virtual void SAL_CALL notifyTermination( const com::sun::star::lang::EventObject& aSource );
+ virtual sal_Bool SAL_CALL
+ requestDockingAreaSpace(
+ const ::com::sun::star::awt::Rectangle& RequestedSpace
+ )
+ throw(
+ ::com::sun::star::uno::RuntimeException
+ );
-// XModifyListener
- virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL
+ setDockingAreaSpace(
+ const ::com::sun::star::awt::Rectangle& BorderSpace
+ )
+ throw (
+ ::com::sun::star::uno::RuntimeException
+ );
};
#endif