| /************************************************************** |
| * |
| * 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 SC_TABVWSH_HXX |
| #define SC_TABVWSH_HXX |
| |
| #include <svtools/htmlcfg.hxx> |
| #include <sfx2/viewsh.hxx> |
| #include <sfx2/viewfac.hxx> |
| #include <editeng/svxenum.hxx> |
| #include "scdllapi.h" |
| #include "dbfunc.hxx" // -> tabview |
| #include "target.hxx" |
| #include "rangelst.hxx" // ScRangeListRef |
| #include "shellids.hxx" |
| #include "tabprotection.hxx" // for ScPasswordHash |
| |
| class FmFormShell; |
| class SbxObject; |
| class SdrOle2Obj; |
| class SfxBindings; |
| class SfxChildWindow; |
| class SfxModelessDialog; |
| class SvxBorderLine; |
| class SvxBoxObjectRef; |
| class SvxNumberInfoItem; |
| struct SfxChildWinInfo; |
| |
| class ScArea; |
| class ScAuditingShell; |
| class ScDrawShell; |
| class ScDrawTextObjectBar; |
| class ScEditShell; |
| class ScInputHandler; |
| class ScPivotShell; |
| class ScDrawFormShell; |
| class ScCellShell; |
| class ScOleObjectShell; |
| class ScGraphicShell; |
| class ScMediaShell; |
| class ScChartShell; |
| class ScPageBreakShell; |
| class ScDPObject; |
| class ScNavigatorSettings; |
| |
| struct ScHeaderFieldData; |
| |
| namespace com { namespace sun { namespace star { namespace frame { |
| class XDispatchProviderInterceptor; |
| } } } } |
| |
| namespace svx { |
| class ExtrusionBar; |
| class FontworkBar; |
| } |
| |
| enum ObjectSelectionType |
| { |
| OST_NONE, |
| OST_Cell, |
| OST_Editing, |
| OST_DrawText, |
| OST_Drawing, |
| OST_DrawForm, |
| OST_Pivot, |
| OST_Auditing, |
| OST_OleObject, |
| OST_Chart, |
| OST_Graphic, |
| OST_Media |
| }; |
| |
| //================================================================== |
| |
| |
| class ScTabViewShell: public SfxViewShell, public ScDBFunc |
| { |
| private: |
| static sal_uInt16 nInsertCtrlState; |
| static sal_uInt16 nInsCellsCtrlState; |
| static sal_uInt16 nInsObjCtrlState; |
| |
| SvxHtmlOptions aHTMLOpt; |
| ObjectSelectionType eCurOST; |
| sal_uInt16 nDrawSfxId; |
| sal_uInt16 nCtrlSfxId; |
| sal_uInt16 nFormSfxId; |
| String sDrawCustom; // current custom shape type |
| ScDrawShell* pDrawShell; |
| ScDrawTextObjectBar* pDrawTextShell; |
| ScEditShell* pEditShell; |
| ScPivotShell* pPivotShell; |
| ScAuditingShell* pAuditingShell; |
| ScDrawFormShell* pDrawFormShell; |
| ScCellShell* pCellShell; |
| ScOleObjectShell* pOleObjectShell; |
| ScChartShell* pChartShell; |
| ScGraphicShell* pGraphicShell; |
| ScMediaShell* pMediaShell; |
| ScPageBreakShell* pPageBreakShell; |
| svx::ExtrusionBar* pExtrusionBarShell; |
| svx::FontworkBar* pFontworkBarShell; |
| |
| FmFormShell* pFormShell; |
| |
| ScInputHandler* pInputHandler; // fuer OLE-Eingabezeile |
| |
| SvxBorderLine* pCurFrameLine; |
| |
| ::com::sun::star::uno::Reference< |
| ::com::sun::star::frame::XDispatchProviderInterceptor > |
| xDisProvInterceptor; |
| |
| Point aWinPos; |
| |
| ScTabViewTarget aTarget; |
| ScArea* pPivotSource; |
| ScDPObject* pDialogDPObject; |
| |
| ScNavigatorSettings* pNavSettings; |
| |
| // used in first Activate |
| sal_Bool bFirstActivate; |
| |
| sal_Bool bActiveDrawSh; |
| sal_Bool bActiveDrawTextSh; |
| sal_Bool bActivePivotSh; |
| sal_Bool bActiveAuditingSh; |
| sal_Bool bActiveDrawFormSh; |
| sal_Bool bActiveOleObjectSh; |
| sal_Bool bActiveChartSh; |
| sal_Bool bActiveGraphicSh; |
| sal_Bool bActiveMediaSh; |
| sal_Bool bActiveEditSh; |
| |
| sal_Bool bFormShellAtTop; // does the FormShell need to be on top? |
| |
| |
| sal_Bool bDontSwitch; // EditShell nicht abschalten |
| sal_Bool bInFormatDialog; // fuer GetSelectionText |
| sal_Bool bPrintSelected; // for result of SvxPrtQryBox |
| |
| sal_Bool bReadOnly; // um Status-Aenderungen zu erkennen |
| sal_Bool bIsActive; |
| SbxObject* pScSbxObject; |
| |
| //UNUSED2008-05 sal_Bool bChartDlgIsEdit; // Datenbereich aendern |
| sal_Bool bChartAreaValid; // wenn Chart aufgezogen wird |
| String aEditChartName; |
| ScRangeListRef aChartSource; |
| Rectangle aChartPos; |
| SCTAB nChartDestTab; |
| sal_uInt16 nCurRefDlgId; |
| |
| SfxBroadcaster* pAccessibilityBroadcaster; |
| |
| static const int MASTERENUMCOMMANDS = 6; |
| String aCurrShapeEnumCommand[ MASTERENUMCOMMANDS ]; |
| |
| private: |
| void Construct( sal_uInt8 nForceDesignMode = SC_FORCEMODE_NONE ); |
| |
| //UNUSED2008-05 void SetMySubShell( SfxShell* pShell ); |
| SfxShell* GetMySubShell() const; |
| |
| void DoReadUserData( const String& rData ); |
| void DoReadUserDataSequence( const ::com::sun::star::uno::Sequence< |
| ::com::sun::star::beans::PropertyValue >& rSettings ); |
| |
| DECL_LINK( SimpleRefClose, String* ); |
| DECL_LINK( SimpleRefDone, String* ); |
| DECL_LINK( SimpleRefAborted, String* ); |
| DECL_LINK( SimpleRefChange, String* ); |
| DECL_LINK( FormControlActivated, FmFormShell* ); |
| DECL_LINK( HtmlOptionsHdl, void * ); |
| |
| protected: |
| virtual void Activate(sal_Bool bMDI); |
| virtual void Deactivate(sal_Bool bMDI); |
| virtual sal_uInt16 PrepareClose( sal_Bool bUI = sal_True, sal_Bool bForBrowsing = sal_False ); |
| |
| virtual void ShowCursor(FASTBOOL bOn); |
| |
| virtual void Move(); // Benachrichtigung |
| |
| virtual void AdjustPosSizePixel( const Point &rPos, const Size &rSize ); // alt |
| |
| virtual void InnerResizePixel( const Point &rOfs, const Size &rSize ); // neu |
| virtual void OuterResizePixel( const Point &rOfs, const Size &rSize ); |
| virtual void SetZoomFactor( const Fraction &rZoomX, const Fraction &rZoomY ); |
| |
| virtual void QueryObjAreaPixel( Rectangle& rRect ) const; |
| |
| virtual Size GetOptimalSizePixel() const; |
| |
| virtual String GetSelectionText( sal_Bool bWholeWord ); |
| virtual sal_Bool HasSelection( sal_Bool bText ) const; |
| virtual String GetDescription() const; |
| |
| virtual void WriteUserData(String &, sal_Bool bBrowse = sal_False); |
| virtual void ReadUserData(const String &, sal_Bool bBrowse = sal_False); |
| virtual void WriteUserDataSequence (::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False ); |
| virtual void ReadUserDataSequence (const ::com::sun::star::uno::Sequence < ::com::sun::star::beans::PropertyValue >&, sal_Bool bBrowse = sal_False ); |
| |
| virtual void UIDeactivated( SfxInPlaceClient* pClient ); |
| |
| virtual FASTBOOL KeyInput( const KeyEvent &rKeyEvent ); |
| virtual SdrView* GetDrawView() const; |
| |
| public: |
| TYPEINFO_VISIBILITY(SC_DLLPUBLIC); |
| |
| SFX_DECL_INTERFACE(SCID_TABVIEW_SHELL) |
| SFX_DECL_VIEWFACTORY(ScTabViewShell); |
| |
| |
| // -> Clone-Methode fuer Factory |
| |
| //UNUSED2008-05 ScTabViewShell( SfxViewFrame* pViewFrame, |
| //UNUSED2008-05 const ScTabViewShell& rWin ); |
| |
| // aus einer allgemeinen Shell konstruieren und |
| // soviel wie moeglich uebernehmen (SliderPos etc.): |
| |
| ScTabViewShell( SfxViewFrame* pViewFrame, |
| SfxViewShell* pOldSh ); |
| |
| virtual ~ScTabViewShell(); |
| |
| Window* GetDialogParent(); |
| |
| bool IsRefInputMode() const; |
| void ExecuteInputDirect(); |
| |
| ScInputHandler* GetInputHandler() const; |
| void UpdateInputHandler( sal_Bool bForce = sal_False, sal_Bool bStopEditing = sal_True ); |
| void UpdateInputHandlerCellAdjust( SvxCellHorJustify eJust ); |
| sal_Bool TabKeyInput(const KeyEvent& rKEvt); |
| sal_Bool SfxKeyInput(const KeyEvent& rKEvt); |
| |
| void SetActive(); |
| |
| SvxBorderLine* GetDefaultFrameLine() const { return pCurFrameLine; } |
| void SetDefaultFrameLine(const SvxBorderLine* pLine ); |
| |
| //UNUSED2008-05 void ExecuteShowNIY( SfxRequest& rReq ); |
| //UNUSED2008-05 void StateDisabled( SfxItemSet& rSet ); |
| |
| SC_DLLPUBLIC void Execute( SfxRequest& rReq ); |
| SC_DLLPUBLIC void GetState( SfxItemSet& rSet ); |
| |
| void ExecuteTable( SfxRequest& rReq ); |
| void GetStateTable( SfxItemSet& rSet ); |
| |
| void WindowChanged(); |
| void ExecDraw(SfxRequest&); |
| void ExecDrawIns(SfxRequest& rReq); |
| void GetDrawState(SfxItemSet &rSet); |
| void GetDrawInsState(SfxItemSet &rSet); |
| void ExecGallery(SfxRequest& rReq); // StarGallery |
| void GetGalleryState(SfxItemSet& rSet); |
| |
| void ExecChildWin(SfxRequest& rReq); |
| void GetChildWinState( SfxItemSet& rSet ); |
| |
| void ExecImageMap( SfxRequest& rReq ); |
| void GetImageMapState( SfxItemSet& rSet ); |
| |
| void ExecTbx( SfxRequest& rReq ); |
| void GetTbxState( SfxItemSet& rSet ); |
| |
| void ExecuteSave( SfxRequest& rReq ); |
| void GetSaveState( SfxItemSet& rSet ); |
| void ExecSearch( SfxRequest& rReq ); |
| |
| void ExecuteUndo(SfxRequest& rReq); |
| void GetUndoState(SfxItemSet &rSet); |
| |
| void ExecuteSbx( SfxRequest& rReq ); |
| void GetSbxState( SfxItemSet& rSet ); |
| |
| void ExecuteObject(SfxRequest& rReq); |
| void GetObjectState(SfxItemSet &rSet); |
| |
| void ExecDrawOpt(SfxRequest& rReq); |
| void GetDrawOptState(SfxItemSet &rSet); |
| |
| void UpdateDrawShell(); |
| void SetDrawShell( sal_Bool bActive ); |
| void SetDrawTextShell( sal_Bool bActive ); |
| |
| void SetPivotShell( sal_Bool bActive ); |
| ScArea* GetPivotSource(){return pPivotSource;} |
| void SetPivotSource(ScArea* pSrc){pPivotSource=pSrc;} |
| void SetDialogDPObject( const ScDPObject* pObj ); |
| const ScDPObject* GetDialogDPObject() const { return pDialogDPObject; } |
| |
| sal_Bool GetDontSwitch(){return bDontSwitch;} |
| void SetDontSwitch(sal_Bool bFlag){bDontSwitch=bFlag;} |
| |
| |
| void SetAuditShell( sal_Bool bActive ); |
| void SetDrawFormShell( sal_Bool bActive ); |
| void SetEditShell(EditView* pView, sal_Bool bActive ); |
| void SetOleObjectShell( sal_Bool bActive ); |
| void SetChartShell( sal_Bool bActive ); |
| void SetGraphicShell( sal_Bool bActive ); |
| void SetMediaShell( sal_Bool bActive ); |
| |
| |
| void SetDrawShellOrSub(); |
| void SetCurSubShell( ObjectSelectionType eOST, sal_Bool bForce = sal_False ); |
| |
| void SetFormShellAtTop( sal_Bool bSet ); |
| |
| ObjectSelectionType GetCurObjectSelectionType(); |
| |
| virtual ErrCode DoVerb(long nVerb); |
| |
| |
| void StopEditShell(); |
| sal_Bool IsDrawTextShell() const; |
| sal_Bool IsAuditShell() const; |
| |
| void SetDrawTextUndo( ::svl::IUndoManager* pUndoMgr ); |
| |
| void FillFieldData( ScHeaderFieldData& rData ); |
| |
| //UNUSED2008-05 void ResetChartArea(); |
| void SetChartArea( const ScRangeListRef& rSource, const Rectangle& rDest ); |
| sal_Bool GetChartArea( ScRangeListRef& rSource, Rectangle& rDest, SCTAB& rTab ) const; |
| |
| //UNUSED2008-05 sal_Bool IsChartDlgEdit() const; |
| //UNUSED2008-05 void SetChartDlgEdit(sal_Bool bFlag){bChartDlgIsEdit=bFlag;} |
| |
| void SetEditChartName(const String& aStr){aEditChartName=aStr;} |
| //UNUSED2008-05 const String& GetEditChartName() const; |
| |
| virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); |
| |
| ScNavigatorSettings* GetNavigatorSettings(); |
| |
| // Drucken: |
| virtual SfxPrinter* GetPrinter( sal_Bool bCreate = sal_False ); |
| virtual sal_uInt16 SetPrinter( SfxPrinter* pNewPrinter, |
| sal_uInt16 nDiffFlags = SFX_PRINTER_ALL, bool bIsApi=false ); |
| |
| virtual SfxTabPage* CreatePrintOptionsPage( Window *pParent, const SfxItemSet &rOptions ); |
| |
| void ConnectObject( SdrOle2Obj* pObj ); |
| sal_Bool ActivateObject( SdrOle2Obj* pObj, long nVerb ); |
| |
| void DeactivateOle(); |
| |
| SC_DLLPUBLIC static ScTabViewShell* GetActiveViewShell(); |
| SfxModelessDialog* CreateRefDialog( SfxBindings* pB, SfxChildWindow* pCW, |
| SfxChildWinInfo* pInfo, |
| Window* pParent, sal_uInt16 nSlotId ); |
| |
| void UpdateOleZoom(); |
| inline SbxObject* GetScSbxObject() const |
| { return pScSbxObject; } |
| inline void SetScSbxObject( SbxObject* pOb ) |
| { pScSbxObject = pOb; } |
| |
| FmFormShell* GetFormShell() const { return pFormShell; } |
| |
| void InsertURL( const String& rName, const String& rURL, const String& rTarget, |
| sal_uInt16 nMode ); |
| void InsertURLButton( const String& rName, const String& rURL, const String& rTarget, |
| const Point* pInsPos = NULL ); |
| void InsertURLField( const String& rName, const String& rURL, const String& rTarget ); |
| |
| sal_Bool SelectObject( const String& rName ); |
| |
| void SetInFormatDialog(sal_Bool bFlag) {bInFormatDialog=bFlag;} |
| sal_Bool IsInFormatDialog() {return bInFormatDialog;} |
| |
| void ForceMove() { Move(); } |
| |
| void MakeNumberInfoItem ( ScDocument* pDoc, |
| ScViewData* pViewData, |
| SvxNumberInfoItem** ppItem ); |
| |
| void UpdateNumberFormatter ( ScDocument* pDoc, |
| const SvxNumberInfoItem& rInfoItem ); |
| |
| void ExecuteCellFormatDlg ( SfxRequest& rReq, sal_uInt16 nTabPage = 0xffff ); |
| |
| sal_Bool GetFunction( String& rFuncStr, sal_uInt16 nErrCode = 0 ); |
| |
| void StartSimpleRefDialog( const String& rTitle, const String& rInitVal, |
| sal_Bool bCloseOnButtonUp, sal_Bool bSingleCell, sal_Bool bMultiSelection ); |
| void StopSimpleRefDialog(); |
| |
| void SetCurRefDlgId( sal_uInt16 nNew ); |
| |
| void AddAccessibilityObject( SfxListener& rObject ); |
| void RemoveAccessibilityObject( SfxListener& rObject ); |
| void BroadcastAccessibility( const SfxHint &rHint ); |
| sal_Bool HasAccessibilityObjects(); |
| |
| bool ExecuteRetypePassDlg(ScPasswordHash eDesiredHash); |
| |
| using ScTabView::ShowCursor; |
| sal_Bool IsActive(){ return bIsActive; } |
| rtl::OUString GetFormula(ScAddress& rAddress); |
| const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & GetForms() const; |
| }; |
| |
| //================================================================== |
| |
| |
| #endif |
| |