| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef _IMAPWND_HXX |
| #define _IMAPWND_HXX |
| |
| #include <vcl/dialog.hxx> |
| #include <vcl/fixed.hxx> |
| #include <vcl/button.hxx> |
| #include <vcl/menu.hxx> |
| #include <svl/itempool.hxx> |
| #include <svtools/imapobj.hxx> |
| #include <svtools/transfer.hxx> |
| #include <svtools/imap.hxx> |
| #include <sfx2/frame.hxx> |
| #include <svx/graphctl.hxx> |
| |
| #include <com/sun/star/frame/XFrame.hpp> |
| |
| /************************************************************************* |
| |* |
| |* |
| |* |
| \************************************************************************/ |
| |
| struct NotifyInfo |
| { |
| String aMarkURL; |
| String aMarkAltText; |
| String aMarkTarget; |
| sal_Bool bNewObj; |
| sal_Bool bOneMarked; |
| sal_Bool bActivated; |
| }; |
| |
| |
| struct NotifyPosSize |
| { |
| Size aPictureSize; |
| Point aMousePos; |
| sal_Bool bPictureSize; |
| sal_Bool bMousePos; |
| }; |
| |
| |
| /************************************************************************* |
| |* |
| |* |
| |* |
| \************************************************************************/ |
| |
| #define SVD_IMAP_USERDATA 0x0001 |
| |
| const sal_uInt32 IMapInventor = sal_uInt32('I') * 0x00000001+ |
| sal_uInt32('M') * 0x00000100+ |
| sal_uInt32('A') * 0x00010000+ |
| sal_uInt32('P') * 0x01000000; |
| |
| |
| typedef boost::shared_ptr< IMapObject > IMapObjectPtr; |
| |
| class IMapUserData : public SdrObjUserData |
| { |
| // #i98386# use boost::shared_ptr here due to cloning possibilities |
| IMapObjectPtr mpObj; |
| |
| public: |
| |
| IMapUserData() : |
| SdrObjUserData ( IMapInventor, SVD_IMAP_USERDATA, 0 ), |
| mpObj ( ) {} |
| |
| IMapUserData( const IMapObjectPtr& rIMapObj ) : |
| SdrObjUserData ( IMapInventor, SVD_IMAP_USERDATA, 0 ), |
| mpObj ( rIMapObj ) {} |
| |
| IMapUserData( const IMapUserData& rIMapUserData ) : |
| SdrObjUserData ( IMapInventor, SVD_IMAP_USERDATA, 0 ), |
| mpObj ( rIMapUserData.mpObj ) {} |
| |
| ~IMapUserData() { } |
| |
| virtual SdrObjUserData* Clone( SdrObject * ) const { return new IMapUserData( *this ); } |
| |
| void SetObject( const IMapObjectPtr& rIMapObj ) { mpObj = rIMapObj; } |
| const IMapObjectPtr GetObject() const { return mpObj; } |
| void ReplaceObject( const IMapObjectPtr& pNewIMapObject ) { mpObj = pNewIMapObject; } |
| }; |
| |
| |
| /************************************************************************* |
| |* |
| |* |
| |* |
| \************************************************************************/ |
| /* move to cui //CHINA001 |
| class URLDlg : public ModalDialog |
| { |
| FixedLine aFlURL; |
| FixedText aFtURL1; |
| Edit aEdtURL; |
| FixedText aFtURLDescription; |
| Edit aEdtURLDescription; |
| FixedText aFtTarget; |
| ComboBox aCbbTargets; |
| FixedText aFtName; |
| Edit aEdtName; |
| OKButton aBtnOk; |
| CancelButton aBtnCancel; |
| |
| public: |
| |
| URLDlg( Window* pWindow, |
| const String& rURL, const String& rDescription, |
| const String& rTarget, const String& rName, |
| TargetList& rTargetList ); |
| |
| String GetURL() const { return aEdtURL.GetText(); } |
| String GetDescription() const { return aEdtURLDescription.GetText(); } |
| String GetTarget() const { return aCbbTargets.GetText(); } |
| String GetName() const { return aEdtName.GetText(); } |
| }; |
| */ |
| |
| /************************************************************************* |
| |* |
| |* |
| |* |
| \************************************************************************/ |
| |
| class IMapWindow : public GraphCtrl, public DropTargetHelper |
| { |
| NotifyInfo aInfo; |
| ImageMap aIMap; |
| TargetList aTargetList; |
| Link aInfoLink; |
| SfxItemPool* pIMapPool; |
| SfxItemInfo* pItemInfo; |
| ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > |
| mxDocumentFrame; |
| |
| DECL_LINK( MenuSelectHdl, Menu* ); |
| DECL_LINK( MouseTimerHdl, Timer* ); |
| |
| protected: |
| |
| // GraphCtrl |
| virtual void MouseButtonUp(const MouseEvent& rMEvt); |
| virtual void Command(const CommandEvent& rCEvt); |
| virtual void RequestHelp( const HelpEvent& rHEvt ); |
| virtual void SdrObjCreated( const SdrObject& rObj ); |
| virtual void SdrObjChanged( const SdrObject& rObj ); |
| virtual void MarkListHasChanged(); |
| virtual void InitSdrModel(); |
| |
| // DropTargetHelper |
| virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); |
| virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ); |
| |
| void CreateImageMap(); |
| void ReplaceImageMap( const ImageMap& rNewImageMap, sal_Bool bScaleToGraphic ); |
| |
| void ClearTargetList(); |
| |
| SdrObject* CreateObj( const IMapObject* pIMapObj ); |
| IMapObject* GetIMapObj( const SdrObject* pSdrObj ) const; |
| SdrObject* GetSdrObj( const IMapObject* pIMapObj ) const; |
| SdrObject* GetHitSdrObj( const Point& rPosPixel ) const; |
| |
| void UpdateInfo( sal_Bool bNewObj ); |
| |
| public: |
| |
| IMapWindow( Window* pParent, const ResId& rResId, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rxDocumentFrame ); |
| ~IMapWindow(); |
| |
| sal_Bool ReplaceActualIMapInfo( const NotifyInfo& rNewInfo ); |
| |
| void SetImageMap( const ImageMap& rImageMap ); |
| const ImageMap& GetImageMap(); |
| |
| void SetCurrentObjState( sal_Bool bActive ); |
| void DoMacroAssign(); |
| void DoPropertyDialog(); |
| |
| void SetInfoLink( const Link& rLink ) { aInfoLink = rLink; } |
| const Link& GetInfoLink() const { return aInfoLink; } |
| |
| void SetTargetList( TargetList& rTargetList ); |
| const TargetList& GetTargetList() const { return aTargetList; } |
| |
| const NotifyInfo& GetInfo() const { return aInfo; } |
| |
| void CreateDefaultObject(); |
| void SelectFirstObject(); |
| void StartPolyEdit(); |
| |
| virtual void KeyInput( const KeyEvent& rKEvt ); |
| }; |
| |
| |
| #endif |
| |