Branch data Line data Source code
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 : : #ifndef _REPORT_RPTUIFUNC_HXX
20 : : #define _REPORT_RPTUIFUNC_HXX
21 : :
22 : : #include <vcl/timer.hxx>
23 : :
24 : : class Timer;
25 : : class MouseEvent;
26 : : class Point;
27 : : class SdrTextObj;
28 : : class SdrObject;
29 : : namespace rptui
30 : : {
31 : :
32 : : class OReportSection;
33 : : class OSectionView;
34 : :
35 : : //============================================================================
36 : : // DlgEdFunc
37 : : //============================================================================
38 : :
39 : : class DlgEdFunc /* : public LinkHdl */
40 : : {
41 : : DlgEdFunc(const DlgEdFunc&);
42 : : void operator =(const DlgEdFunc&);
43 : : protected:
44 : : OReportSection* m_pParent;
45 : : OSectionView& m_rView;
46 : : Timer aScrollTimer;
47 : : Point m_aMDPos;
48 : : com::sun::star::uno::Reference<com::sun::star::uno::XInterface> m_xOverlappingObj;
49 : : SdrObject * m_pOverlappingObj;
50 : : sal_Int32 m_nOverlappedControlColor;
51 : : sal_Int32 m_nOldColor;
52 : : bool m_bSelectionMode;
53 : : bool m_bUiActive;
54 : : bool m_bShowPropertyBrowser;
55 : :
56 : : DECL_LINK( ScrollTimeout, Timer * );
57 : : void ForceScroll( const Point& rPos );
58 : : /** checks that no other object is overlapped.
59 : : *
60 : : * \param rMEvt
61 : : */
62 : : void checkMovementAllowed(const MouseEvent& rMEvt);
63 : :
64 : : /** sets the correct mouse pointer when moving a object
65 : : *
66 : : * \param rMEvt
67 : : * \return <TRUE/> when the pointer was already set.
68 : : */
69 : : bool setMovementPointer(const MouseEvent& rMEvt);
70 : :
71 : : bool isRectangleHit(const MouseEvent& rMEvt);
72 : : /**
73 : : returns true, as long as only customshapes in the marked list,
74 : : custom shapes can drop every where
75 : : */
76 : : bool isOnlyCustomShapeMarked();
77 : :
78 : : /** activate object if it is of type OBJ_OLE2
79 : : */
80 : : void activateOle(SdrObject* _pObj);
81 : :
82 : : void checkTwoCklicks(const MouseEvent& rMEvt);
83 : :
84 : : public:
85 : : DlgEdFunc( OReportSection* pParent );
86 : : virtual ~DlgEdFunc();
87 : :
88 : : virtual sal_Bool MouseButtonDown( const MouseEvent& rMEvt );
89 : : virtual sal_Bool MouseButtonUp( const MouseEvent& rMEvt );
90 : : virtual sal_Bool MouseMove( const MouseEvent& rMEvt );
91 : :
92 : : /** checks if the keycode is known by the child windows
93 : : @param _rCode the keycode
94 : : @return <TRUE/> if the keycode is handled otherwise <FALSE/>
95 : : */
96 : : virtual sal_Bool handleKeyEvent(const KeyEvent& _rEvent);
97 : :
98 : : /** returns <TRUE/> if the mouse event is over an existing object
99 : : *
100 : : * \param rMEvt
101 : : * \return <TRUE/> if overlapping, otherwise <FALSE/>
102 : : */
103 : : bool isOverlapping(const MouseEvent& rMEvt);
104 : : void setOverlappedControlColor(sal_Int32 _nColor);
105 : : void stopScrollTimer();
106 : :
107 : : /** deactivate all ole object
108 : : */
109 : : void deactivateOle(bool _bSelect = false);
110 : :
111 : 0 : inline bool isUiActive() const { return m_bUiActive; }
112 : : protected:
113 : : void colorizeOverlappedObject(SdrObject* _pOverlappedObj);
114 : : void unColorizeOverlappedObj();
115 : :
116 : :
117 : : };
118 : :
119 : : //============================================================================
120 : : // DlgEdFuncInsert
121 : : //============================================================================
122 : :
123 : : class DlgEdFuncInsert : public DlgEdFunc
124 : : {
125 : : public:
126 : : DlgEdFuncInsert( OReportSection* pParent );
127 : : ~DlgEdFuncInsert();
128 : :
129 : : virtual sal_Bool MouseButtonDown( const MouseEvent& rMEvt );
130 : : virtual sal_Bool MouseButtonUp( const MouseEvent& rMEvt );
131 : : virtual sal_Bool MouseMove( const MouseEvent& rMEvt );
132 : : };
133 : :
134 : : //============================================================================
135 : : // DlgEdFuncSelect
136 : : //============================================================================
137 : :
138 : : class DlgEdFuncSelect : public DlgEdFunc
139 : : {
140 : : public:
141 : : DlgEdFuncSelect( OReportSection* pParent );
142 : : ~DlgEdFuncSelect();
143 : :
144 : : virtual sal_Bool MouseButtonDown( const MouseEvent& rMEvt );
145 : : virtual sal_Bool MouseButtonUp( const MouseEvent& rMEvt );
146 : : virtual sal_Bool MouseMove( const MouseEvent& rMEvt );
147 : :
148 : : void SetInEditMode(SdrTextObj* _pTextObj,const MouseEvent& rMEvt, sal_Bool bQuickDrag);
149 : : };
150 : :
151 : : }
152 : : #endif //_REPORT_RPTUIFUNC_HXX
153 : :
154 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|