2007-07-09 10:56:41 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 18:07:14 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2007-07-09 10:56:41 +00:00
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2007-07-09 10:56:41 +00:00
|
|
|
*
|
2008-04-10 18:07:14 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2007-07-09 10:56:41 +00:00
|
|
|
*
|
2008-04-10 18:07:14 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2007-07-09 10:56:41 +00:00
|
|
|
*
|
2008-04-10 18:07:14 +00:00
|
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
|
|
* only, as published by the Free Software Foundation.
|
2007-07-09 10:56:41 +00:00
|
|
|
*
|
2008-04-10 18:07:14 +00:00
|
|
|
* OpenOffice.org 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 version 3 for more details
|
|
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
2007-07-09 10:56:41 +00:00
|
|
|
*
|
2008-04-10 18:07:14 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
|
|
* <http://www.openoffice.org/license.html>
|
|
|
|
* for a copy of the LGPLv3 License.
|
2007-07-09 10:56:41 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
2008-04-10 18:07:14 +00:00
|
|
|
#ifndef _REPORT_RPTUIFUNC_HXX
|
|
|
|
#define _REPORT_RPTUIFUNC_HXX
|
2007-07-09 10:56:41 +00:00
|
|
|
|
|
|
|
#include <vcl/timer.hxx>
|
|
|
|
|
|
|
|
class Timer;
|
|
|
|
class MouseEvent;
|
|
|
|
class Point;
|
|
|
|
class SdrTextObj;
|
2007-08-02 13:38:02 +00:00
|
|
|
class SdrObject;
|
2007-07-09 10:56:41 +00:00
|
|
|
namespace rptui
|
|
|
|
{
|
|
|
|
|
|
|
|
class OReportSection;
|
2007-08-03 11:44:57 +00:00
|
|
|
class OSectionView;
|
2007-07-09 10:56:41 +00:00
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// DlgEdFunc
|
|
|
|
//============================================================================
|
|
|
|
|
|
|
|
class DlgEdFunc /* : public LinkHdl */
|
|
|
|
{
|
|
|
|
DlgEdFunc(const DlgEdFunc&);
|
|
|
|
void operator =(const DlgEdFunc&);
|
|
|
|
protected:
|
2008-01-29 12:49:17 +00:00
|
|
|
OReportSection* m_pParent;
|
2008-08-19 09:13:20 +00:00
|
|
|
OSectionView& m_rView;
|
2007-07-09 10:56:41 +00:00
|
|
|
Timer aScrollTimer;
|
|
|
|
Point m_aMDPos;
|
2008-06-16 12:42:34 +00:00
|
|
|
com::sun::star::uno::Reference<com::sun::star::uno::XInterface> m_xOverlappingObj;
|
|
|
|
SdrObject * m_pOverlappingObj;
|
|
|
|
sal_Int32 m_nOverlappedControlColor;
|
|
|
|
sal_Int32 m_nOldColor;
|
|
|
|
bool m_bSelectionMode;
|
|
|
|
bool m_bUiActive;
|
|
|
|
bool m_bShowPropertyBrowser;
|
2007-07-09 10:56:41 +00:00
|
|
|
|
|
|
|
DECL_LINK( ScrollTimeout, Timer * );
|
|
|
|
void ForceScroll( const Point& rPos );
|
|
|
|
/** checks that no other object is overlapped.
|
|
|
|
*
|
|
|
|
* \param rMEvt
|
|
|
|
*/
|
|
|
|
void checkMovementAllowed(const MouseEvent& rMEvt);
|
|
|
|
|
|
|
|
/** sets the correct mouse pointer when moving a object
|
|
|
|
*
|
|
|
|
* \param rMEvt
|
|
|
|
* \return <TRUE/> when the pointer was already set.
|
|
|
|
*/
|
|
|
|
bool setMovementPointer(const MouseEvent& rMEvt);
|
|
|
|
|
|
|
|
bool isRectangleHit(const MouseEvent& rMEvt);
|
2007-08-02 13:38:02 +00:00
|
|
|
/**
|
|
|
|
returns true, as long as only customshapes in the marked list,
|
|
|
|
custom shapes can drop every where
|
|
|
|
*/
|
|
|
|
bool isOnlyCustomShapeMarked();
|
2008-06-16 12:42:34 +00:00
|
|
|
|
|
|
|
/** activate object if it is of type OBJ_OLE2
|
|
|
|
*/
|
|
|
|
void activateOle(SdrObject* _pObj);
|
|
|
|
|
|
|
|
void checkTwoCklicks(const MouseEvent& rMEvt);
|
|
|
|
|
2007-07-09 10:56:41 +00:00
|
|
|
public:
|
|
|
|
DlgEdFunc( OReportSection* pParent );
|
|
|
|
virtual ~DlgEdFunc();
|
|
|
|
|
|
|
|
virtual BOOL MouseButtonDown( const MouseEvent& rMEvt );
|
|
|
|
virtual BOOL MouseButtonUp( const MouseEvent& rMEvt );
|
|
|
|
virtual BOOL MouseMove( const MouseEvent& rMEvt );
|
|
|
|
|
|
|
|
/** checks if the keycode is known by the child windows
|
|
|
|
@param _rCode the keycode
|
|
|
|
@return <TRUE/> if the keycode is handled otherwise <FALSE/>
|
|
|
|
*/
|
|
|
|
virtual sal_Bool handleKeyEvent(const KeyEvent& _rEvent);
|
|
|
|
|
|
|
|
/** returns <TRUE/> if the mouse event is over an existing object
|
|
|
|
*
|
|
|
|
* \param rMEvt
|
|
|
|
* \return <TRUE/> if overlapping, otherwise <FALSE/>
|
|
|
|
*/
|
2007-08-03 11:44:57 +00:00
|
|
|
bool isOverlapping(const MouseEvent& rMEvt);
|
2007-08-02 13:38:02 +00:00
|
|
|
void setOverlappedControlColor(sal_Int32 _nColor);
|
2007-08-03 11:44:57 +00:00
|
|
|
void stopScrollTimer();
|
2008-06-16 12:42:34 +00:00
|
|
|
|
|
|
|
/** deactivate all ole object
|
|
|
|
*/
|
|
|
|
void deactivateOle(bool _bSelect = false);
|
|
|
|
|
|
|
|
inline bool isUiActive() const { return m_bUiActive; }
|
2007-08-02 13:38:02 +00:00
|
|
|
protected:
|
|
|
|
void colorizeOverlappedObject(SdrObject* _pOverlappedObj);
|
|
|
|
void unColorizeOverlappedObj();
|
|
|
|
|
|
|
|
|
2007-07-09 10:56:41 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// DlgEdFuncInsert
|
|
|
|
//============================================================================
|
|
|
|
|
|
|
|
class DlgEdFuncInsert : public DlgEdFunc
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
DlgEdFuncInsert( OReportSection* pParent );
|
|
|
|
~DlgEdFuncInsert();
|
|
|
|
|
|
|
|
virtual BOOL MouseButtonDown( const MouseEvent& rMEvt );
|
|
|
|
virtual BOOL MouseButtonUp( const MouseEvent& rMEvt );
|
|
|
|
virtual BOOL MouseMove( const MouseEvent& rMEvt );
|
|
|
|
};
|
|
|
|
|
|
|
|
//============================================================================
|
|
|
|
// DlgEdFuncSelect
|
|
|
|
//============================================================================
|
|
|
|
|
|
|
|
class DlgEdFuncSelect : public DlgEdFunc
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
DlgEdFuncSelect( OReportSection* pParent );
|
|
|
|
~DlgEdFuncSelect();
|
|
|
|
|
|
|
|
virtual BOOL MouseButtonDown( const MouseEvent& rMEvt );
|
|
|
|
virtual BOOL MouseButtonUp( const MouseEvent& rMEvt );
|
|
|
|
virtual BOOL MouseMove( const MouseEvent& rMEvt );
|
|
|
|
|
|
|
|
void SetInEditMode(SdrTextObj* _pTextObj,const MouseEvent& rMEvt, BOOL bQuickDrag);
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
#endif //_REPORT_RPTUIFUNC_HXX
|