summaryrefslogtreecommitdiff
path: root/sfx2/source/view/impframe.hxx
blob: 0a4bfbbdd41acfacdc231768a0a42da744ccd4b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: impframe.hxx,v $
 *
 *  $Revision: 1.9 $
 *
 *  last change: $Author: hr $ $Date: 2007-06-27 23:33:52 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License version 2.1, as published by the Free Software Foundation.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public
 *    License along with this library; if not, write to the Free Software
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *    MA  02111-1307  USA
 *
 ************************************************************************/

#ifndef _SFX_IMPFRAME_HXX
#define _SFX_IMPFRAME_HXX

#ifndef _SFXCANCEL_HXX //autogen
#include <svtools/cancel.hxx>
#endif

#include <sfx2/frame.hxx>
#include <sfx2/viewfrm.hxx>                  // SvBorder

class SfxViewFrame;
class SfxObjectShell;

#ifndef _COM_SUN_STAR_FRAME_XCONTROLLER_HPP_
#include <com/sun/star/frame/XController.hpp>
#endif
#ifndef _COM_SUN_STAR_AWT_XTOPWINDOW_HPP_
#include <com/sun/star/awt/XTopWindow.hpp>
#endif
#ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_
#include <com/sun/star/awt/XWindow.hpp>
#endif
#ifndef _COM_SUN_STAR_AWT_POSSIZE_HPP_
#include <com/sun/star/awt/PosSize.hpp>
#endif
#ifndef _CPPUHELPER_WEAK_HXX_
#include <cppuhelper/weak.hxx>
#endif

#include <sfx2/viewsh.hxx>
#include <sfx2/sfxuno.hxx>

#ifndef FRAME_SEARCH_PARENT
#define FRAME_SEARCH_PARENT     0x00000001
#define FRAME_SEARCH_SELF       0x00000002
#define FRAME_SEARCH_CHILDREN   0x00000004
#define FRAME_SEARCH_CREATE     0x00000008
#endif

class SfxFrame_Impl : public SfxBroadcaster, public SvCompatWeakBase, public SfxListener
{
friend class SfxFrame;

    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame;
    String                    aFrameIdName;
    sal_uInt32                nType;
    sal_uInt32                nHistoryPos;
    SfxViewFrame*             pCurrentViewFrame;
    SfxObjectShell*           pCurrentObjectShell;
    SfxFrameDescriptor*       pDescr;
    sal_uInt16                nFrameId;
    sal_uInt16                nLocks;
    sal_Bool                  bCloseOnUnlock : 1;
    sal_Bool                  bClosing : 1;
    sal_Bool                  bPrepClosing : 1;
    sal_Bool                  bInCancelTransfers : 1;
    sal_Bool                  bOwnsBindings : 1;
    sal_Bool                  bReleasingComponent : 1;
    sal_Bool                  bFocusLocked : 1;
    sal_Bool                  bInPlace : 1;
    SfxCancelManager*         pCancelMgr;
    SfxCancellable*           pLoadCancellable;
    SfxFrame*                 pFrame;
    const SfxItemSet*         pSet;
    SfxWorkWindow*            pWorkWin;
    SvBorder                  aBorder;

    SfxFrame_Impl( SfxFrame* pAntiImplP ) :
                              SvCompatWeakBase( pAntiImplP ),
                              nType( 0L ),
                              nHistoryPos( 0 ),
                              pCurrentViewFrame( NULL ),
                              pCurrentObjectShell( NULL ),
                              pDescr( NULL ),
                              nFrameId( 0 ),
                              nLocks( 0 ),
                              bCloseOnUnlock( sal_False ),
                              bClosing(sal_False),
                              bPrepClosing(sal_False),
                              bInCancelTransfers( sal_False ),
                              bOwnsBindings( sal_False ),
                              bReleasingComponent( sal_False ),
                              bFocusLocked( sal_False ),
                              bInPlace( sal_False ),
                              pCancelMgr( 0 ),
                              pLoadCancellable( 0 ),
                              pFrame( pAntiImplP ),
                              pSet( 0 ),
                              pWorkWin( 0 )
                              {}

    virtual ~SfxFrame_Impl() { delete pCancelMgr; delete pLoadCancellable; }
    virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
};

#endif