484 lines
12 KiB
C++
484 lines
12 KiB
C++
/*************************************************************************
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* $RCSfile: fuconuno.cxx,v $
|
|
*
|
|
* $Revision: 1.6 $
|
|
*
|
|
* last change: $Author: rt $ $Date: 2005-09-08 20:56:08 $
|
|
*
|
|
* 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
|
|
*
|
|
************************************************************************/
|
|
|
|
#ifdef PCH
|
|
#include "ui_pch.hxx"
|
|
#endif
|
|
|
|
#pragma hdrstop
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
// TOOLS
|
|
#define _BIGINT_HXX
|
|
#define _SFXMULTISEL_HXX
|
|
#define _STACK_HXX
|
|
#define _QUEUE_HXX
|
|
#define _DYNARR_HXX
|
|
#define _TREELIST_HXX
|
|
#define _CACHESTR_HXX
|
|
#define _NEW_HXX
|
|
//#define _SHL_HXX
|
|
//#define _LINK_HXX
|
|
//#define _ERRCODE_HXX
|
|
//#define _GEN_HXX
|
|
//#define _FRACT_HXX
|
|
//#define _STRING_HXX
|
|
//#define _MTF_HXX
|
|
//#define _CONTNR_HXX
|
|
//#define _LIST_HXX
|
|
//#define _TABLE_HXX
|
|
#define _DYNARY_HXX
|
|
//#define _UNQIDX_HXX
|
|
#define _SVMEMPOOL_HXX
|
|
//#define _UNQID_HXX
|
|
//#define _DEBUG_HXX
|
|
//#define _DATE_HXX
|
|
//#define _TIME_HXX
|
|
//#define _DATETIME_HXX
|
|
//#define _INTN_HXX
|
|
//#define _WLDCRD_HXX
|
|
//#define _FSYS_HXX
|
|
//#define _STREAM_HXX
|
|
#define _CACHESTR_HXX
|
|
#define _SV_MULTISEL_HXX
|
|
|
|
//SV
|
|
//#define _CLIP_HXX ***
|
|
#define _CONFIG_HXX
|
|
#define _CURSOR_HXX
|
|
#define _FONTDLG_HXX
|
|
#define _PRVWIN_HXX
|
|
//#define _COLOR_HXX
|
|
//#define _PAL_HXX
|
|
//#define _BITMAP_HXX
|
|
//#define _GDIOBJ_HXX
|
|
//#define _POINTR_HXX
|
|
//#define _ICON_HXX
|
|
//#define _IMAGE_HXX
|
|
//#define _KEYCOD_HXX
|
|
//#define _EVENT_HXX
|
|
#define _HELP_HXX
|
|
//#define _APP_HXX
|
|
//#define _MDIAPP_HXX
|
|
//#define _TIMER_HXX
|
|
//#define _METRIC_HXX
|
|
//#define _REGION_HXX
|
|
//#define _OUTDEV_HXX
|
|
//#define _SYSTEM_HXX
|
|
//#define _VIRDEV_HXX
|
|
//#define _JOBSET_HXX
|
|
//#define _PRINT_HXX
|
|
//#define _WINDOW_HXX
|
|
//#define _SYSWIN_HXX
|
|
//#define _WRKWIN_HXX
|
|
#define _MDIWIN_HXX
|
|
//#define _FLOATWIN_HXX
|
|
//#define _DOCKWIN_HXX
|
|
//#define _CTRL_HXX
|
|
//#define _SCRBAR_HXX
|
|
//#define _BUTTON_HXX
|
|
//#define _IMAGEBTN_HXX
|
|
//#define _FIXED_HXX
|
|
//#define _GROUP_HXX
|
|
//#define _EDIT_HXX
|
|
//#define _COMBOBOX_HXX
|
|
//#define _LSTBOX_HXX
|
|
//#define _SELENG_HXX ***
|
|
//#define _SPLIT_HXX
|
|
#define _SPIN_HXX
|
|
//#define _FIELD_HXX
|
|
//#define _MOREBTN_HXX ***
|
|
//#define _TOOLBOX_HXX
|
|
//#define _STATUS_HXX ***
|
|
//#define _DIALOG_HXX
|
|
//#define _MSGBOX_HXX
|
|
//#define _SYSDLG_HXX
|
|
//#define _FILDLG_HXX ***
|
|
//#define _PRNDLG_HXX
|
|
#define _COLDLG_HXX
|
|
//#define _TABDLG_HXX
|
|
//#define _MENU_HXX ***
|
|
//#define _GDIMTF_HXX
|
|
//#define _POLY_HXX
|
|
//#define _ACCEL_HXX
|
|
//#define _GRAPH_HXX
|
|
#define _SOUND_HXX
|
|
|
|
//******************************+++
|
|
//svtools
|
|
#define _SCRWIN_HXX
|
|
#define _RULER_HXX
|
|
//#define _TABBAR_HXX
|
|
//#define _VALUESET_HXX
|
|
#define _STDMENU_HXX
|
|
//#define _STDCTRL_HXX
|
|
//#define _CTRLBOX_HXX
|
|
#define _CTRLTOOL_HXX
|
|
#define _EXTATTR_HXX
|
|
#define _FRM3D_HXX
|
|
#define _EXTATTR_HXX
|
|
|
|
//SVTOOLS
|
|
//#define _SVTREELIST_HXX ***
|
|
#define _FILTER_HXX
|
|
//#define _SVLBOXITM_HXX ***
|
|
//#define _SVTREEBOX_HXX ***
|
|
#define _SVICNVW_HXX
|
|
#define _SVTABBX_HXX
|
|
|
|
|
|
//************************
|
|
|
|
//sfxcore.hxx
|
|
//#define _SFXINIMGR_HXX ***
|
|
//#define _SFXCFGITEM_HXX
|
|
//#define _SFX_PRINTER_HXX
|
|
#define _SFXGENLINK_HXX
|
|
#define _SFXHINTPOST_HXX
|
|
#define _SFXDOCINF_HXX
|
|
#define _SFXLINKHDL_HXX
|
|
//#define _SFX_PROGRESS_HXX
|
|
|
|
//sfxsh.hxx
|
|
//#define _SFX_SHELL_HXX
|
|
//#define _SFXAPP_HXX
|
|
#define _SFXDISPATCH_HXX //???
|
|
//#define _SFXMSG_HXX ***
|
|
//#define _SFXOBJFACE_HXX ***
|
|
//#define _SFXREQUEST_HXX
|
|
#define _SFXMACRO_HXX
|
|
|
|
// SFX
|
|
//#define _SFXAPPWIN_HXX ***
|
|
#define _SFX_SAVEOPT_HXX
|
|
//#define _SFX_CHILDWIN_HXX
|
|
//#define _SFXCTRLITEM_HXX
|
|
#define _SFXPRNMON_HXX
|
|
#define _INTRO_HXX
|
|
#define _SFXMSGDESCR_HXX
|
|
#define _SFXMSGPOOL_HXX
|
|
#define _SFXFILEDLG_HXX
|
|
#define _PASSWD_HXX
|
|
#define _SFXTBXCTRL_HXX
|
|
#define _SFXSTBITEM_HXX
|
|
#define _SFXMNUITEM_HXX
|
|
#define _SFXIMGMGR_HXX
|
|
#define _SFXTBXMGR_HXX
|
|
#define _SFXSTBMGR_HXX
|
|
#define _SFX_MINFITEM_HXX
|
|
#define _SFXEVENT_HXX
|
|
|
|
//sfxdoc.hxx
|
|
//#define _SFX_OBJSH_HXX
|
|
//#define _SFX_CLIENTSH_HXX
|
|
//#define _SFXDOCINF_HXX
|
|
//#define _SFX_OBJFAC_HXX
|
|
#define _SFX_DOCFILT_HXX
|
|
//#define _SFXDOCFILE_HXX ***
|
|
//define _VIEWFAC_HXX
|
|
//#define _SFXVIEWFRM_HXX
|
|
//#define _SFXVIEWSH_HXX
|
|
//#define _MDIFRM_HXX ***
|
|
#define _SFX_IPFRM_HXX
|
|
//#define _SFX_INTERNO_HXX
|
|
|
|
//sfxdlg.hxx
|
|
//#define _SFXTABDLG_HXX
|
|
//#define _BASEDLGS_HXX ***
|
|
#define _SFX_DINFDLG_HXX
|
|
#define _SFXDINFEDT_HXX
|
|
#define _SFX_MGETEMPL_HXX
|
|
#define _SFX_TPLPITEM_HXX
|
|
//#define _SFX_STYLEDLG_HXX
|
|
#define _NEWSTYLE_HXX
|
|
//#define _SFXDOCTEMPL_HXX ***
|
|
//#define _SFXDOCTDLG_HXX ***
|
|
//#define _SFX_TEMPLDLG_HXX ***
|
|
//#define _SFXNEW_HXX ***
|
|
#define _SFXDOCMAN_HXX
|
|
//#define _SFXDOCKWIN_HXX ***
|
|
|
|
//sfxitems.hxx
|
|
#define _SFX_WHMAP_HXX
|
|
#define _ARGS_HXX
|
|
//#define _SFXPOOLITEM_HXX
|
|
//#define _SFXINTITEM_HXX
|
|
//#define _SFXENUMITEM_HXX
|
|
#define _SFXFLAGITEM_HXX
|
|
//#define _SFXSTRITEM_HXX
|
|
#define _SFXPTITEM_HXX
|
|
#define _SFXRECTITEM_HXX
|
|
//#define _SFXITEMPOOL_HXX
|
|
//#define _SFXITEMSET_HXX
|
|
#define _SFXITEMITER_HXX
|
|
#define _SFX_WHITER_HXX
|
|
#define _SFXPOOLCACH_HXX
|
|
//#define _AEITEM_HXX
|
|
#define _SFXRNGITEM_HXX
|
|
//#define _SFXSLSTITM_HXX
|
|
#define _SFXSTYLE_HXX //???
|
|
|
|
|
|
|
|
//************************
|
|
|
|
|
|
|
|
#define _BIGINT_HXX
|
|
#define _SFXMULTISEL_HXX
|
|
#define _STACK_HXX
|
|
#define _QUEUE_HXX
|
|
#define _DYNARR_HXX
|
|
#define _TREELIST_HXX
|
|
#define _CACHESTR_HXX
|
|
#define _NEW_HXX
|
|
//#define _SHL_HXX ***
|
|
//#define _LINK_HXX ***
|
|
//#define _ERRCODE_HXX ***
|
|
//#define _GEN_HXX ***
|
|
//#define _FRACT_HXX ***
|
|
//#define _STRING_HXX ***
|
|
//#define _MTF_HXX ***
|
|
//#define _CONTNR_HXX ***
|
|
//#define _LIST_HXX ***
|
|
//#define _TABLE_HXX ***
|
|
#define _DYNARY_HXX
|
|
//#define _UNQIDX_HXX ***
|
|
#define _SVMEMPOOL_HXX
|
|
//#define _UNQID_HXX ***
|
|
//#define _DEBUG_HXX ***
|
|
//#define _DATE_HXX ***
|
|
//#define _TIME_HXX ***
|
|
//#define _DATETIME_HXX ***
|
|
//#define _INTN_HXX ***
|
|
//#define _WLDCRD_HXX ***
|
|
//#define _FSYS_HXX ***
|
|
//#define _STREAM_HXX ***
|
|
#define _CACHESTR_HXX
|
|
#define _SV_MULTISEL_HXX
|
|
|
|
#ifdef WIN
|
|
#define _SVDOUKWN_HXX
|
|
#define _SVDORECT_HXX
|
|
#define _SVDCAPT_HXX
|
|
#define _SVDOCIRC_HXX
|
|
#define _SVDOEDGE_HXX
|
|
#define _SVDOGRAF_HXX
|
|
#define _SVDRAW_HXX
|
|
#define _SVDOGRP_HXX
|
|
#define _SVDOMEAS_HXX
|
|
#define _SVDOOLE2_HXX
|
|
#define _SVDOPAGE_HXX
|
|
#define _SVDOPATH_HXX
|
|
|
|
#endif
|
|
|
|
#define SI_DLL_HXX
|
|
#define SIDLL_HXX
|
|
//#define SI_NOITEMS
|
|
//#define SI_NODRW
|
|
#define SI_NOOTHERFORMS
|
|
#define SI_NOSBXCONTROLS
|
|
#define SINOSBXCONTROLS
|
|
#define SI_NOCONTROL
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
#include <svx/svdview.hxx>
|
|
|
|
#include "fuconuno.hxx"
|
|
#include "tabvwsh.hxx"
|
|
#include "sc.hrc"
|
|
|
|
//------------------------------------------------------------------------
|
|
|
|
|
|
/*************************************************************************
|
|
|*
|
|
|* Konstruktor
|
|
|*
|
|
\************************************************************************/
|
|
|
|
FuConstUnoControl::FuConstUnoControl(ScTabViewShell* pViewSh, Window* pWin, SdrView* pView,
|
|
SdrModel* pDoc, SfxRequest& rReq)
|
|
: FuConstruct(pViewSh, pWin, pView, pDoc, rReq)
|
|
{
|
|
SFX_REQUEST_ARG( rReq, pInventorItem, SfxUInt32Item, SID_FM_CONTROL_INVENTOR, FALSE );
|
|
SFX_REQUEST_ARG( rReq, pIdentifierItem, SfxUInt16Item, SID_FM_CONTROL_IDENTIFIER, FALSE );
|
|
if( pInventorItem )
|
|
nInventor = pInventorItem->GetValue();
|
|
if( pIdentifierItem )
|
|
nIdentifier = pIdentifierItem->GetValue();
|
|
}
|
|
|
|
/*************************************************************************
|
|
|*
|
|
|* Destruktor
|
|
|*
|
|
\************************************************************************/
|
|
|
|
FuConstUnoControl::~FuConstUnoControl()
|
|
{
|
|
}
|
|
|
|
/*************************************************************************
|
|
|*
|
|
|* MouseButtonDown-event
|
|
|*
|
|
\************************************************************************/
|
|
|
|
BOOL __EXPORT FuConstUnoControl::MouseButtonDown(const MouseEvent& rMEvt)
|
|
{
|
|
// #95491# remember button state for creation of own MouseEvents
|
|
SetMouseButtonCode(rMEvt.GetButtons());
|
|
|
|
BOOL bReturn = FuConstruct::MouseButtonDown(rMEvt);
|
|
|
|
if ( rMEvt.IsLeft() && !pView->IsAction() )
|
|
{
|
|
Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
|
|
pWindow->CaptureMouse();
|
|
pView->BegCreateObj(aPnt);
|
|
bReturn = TRUE;
|
|
}
|
|
return bReturn;
|
|
}
|
|
|
|
/*************************************************************************
|
|
|*
|
|
|* MouseMove-event
|
|
|*
|
|
\************************************************************************/
|
|
|
|
BOOL __EXPORT FuConstUnoControl::MouseMove(const MouseEvent& rMEvt)
|
|
{
|
|
return FuConstruct::MouseMove(rMEvt);
|
|
}
|
|
|
|
/*************************************************************************
|
|
|*
|
|
|* MouseButtonUp-event
|
|
|*
|
|
\************************************************************************/
|
|
|
|
BOOL __EXPORT FuConstUnoControl::MouseButtonUp(const MouseEvent& rMEvt)
|
|
{
|
|
// #95491# remember button state for creation of own MouseEvents
|
|
SetMouseButtonCode(rMEvt.GetButtons());
|
|
|
|
BOOL bReturn = FALSE;
|
|
|
|
if ( pView->IsCreateObj() && rMEvt.IsLeft() )
|
|
{
|
|
Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
|
|
pView->EndCreateObj(SDRCREATE_FORCEEND);
|
|
bReturn = TRUE;
|
|
}
|
|
return (FuConstruct::MouseButtonUp(rMEvt) || bReturn);
|
|
}
|
|
|
|
/*************************************************************************
|
|
|*
|
|
|* Tastaturereignisse bearbeiten
|
|
|*
|
|
|* Wird ein KeyEvent bearbeitet, so ist der Return-Wert TRUE, andernfalls
|
|
|* FALSE.
|
|
|*
|
|
\************************************************************************/
|
|
|
|
BOOL __EXPORT FuConstUnoControl::KeyInput(const KeyEvent& rKEvt)
|
|
{
|
|
BOOL bReturn = FuConstruct::KeyInput(rKEvt);
|
|
return(bReturn);
|
|
}
|
|
|
|
/*************************************************************************
|
|
|*
|
|
|* Function aktivieren
|
|
|*
|
|
\************************************************************************/
|
|
|
|
void FuConstUnoControl::Activate()
|
|
{
|
|
pView->SetCurrentObj( nIdentifier, nInventor );
|
|
|
|
aNewPointer = Pointer( POINTER_DRAW_RECT );
|
|
aOldPointer = pWindow->GetPointer();
|
|
pViewShell->SetActivePointer( aNewPointer );
|
|
|
|
SdrLayer* pLayer = pView->GetModel()->GetLayerAdmin().GetLayerPerID(SC_LAYER_CONTROLS);
|
|
if (pLayer)
|
|
pView->SetActiveLayer( pLayer->GetName() );
|
|
|
|
FuConstruct::Activate();
|
|
}
|
|
|
|
/*************************************************************************
|
|
|*
|
|
|* Function deaktivieren
|
|
|*
|
|
\************************************************************************/
|
|
|
|
void FuConstUnoControl::Deactivate()
|
|
{
|
|
FuConstruct::Deactivate();
|
|
|
|
SdrLayer* pLayer = pView->GetModel()->GetLayerAdmin().GetLayerPerID(SC_LAYER_FRONT);
|
|
if (pLayer)
|
|
pView->SetActiveLayer( pLayer->GetName() );
|
|
|
|
pViewShell->SetActivePointer( aOldPointer );
|
|
}
|
|
|
|
// #98185# Create default drawing objects via keyboard
|
|
SdrObject* FuConstUnoControl::CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle)
|
|
{
|
|
// case SID_FM_CREATE_CONTROL:
|
|
|
|
SdrObject* pObj = SdrObjFactory::MakeNewObject(
|
|
pView->GetCurrentObjInventor(), pView->GetCurrentObjIdentifier(),
|
|
0L, pDrDoc);
|
|
|
|
if(pObj)
|
|
{
|
|
pObj->SetLogicRect(rRectangle);
|
|
}
|
|
|
|
return pObj;
|
|
}
|
|
|
|
|