| /************************************************************** |
| * |
| * 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. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_sc.hxx" |
| |
| |
| |
| //------------------------------------------------------------------ |
| |
| #include "scitems.hxx" |
| #include <svl/srchitem.hxx> |
| #include <sfx2/bindings.hxx> |
| #include <sfx2/objface.hxx> |
| #include <sfx2/objsh.hxx> |
| #include <sfx2/request.hxx> |
| #include <sfx2/sidebar/EnumContext.hxx> |
| |
| #include "auditsh.hxx" |
| #include "tabvwsh.hxx" |
| #include "scresid.hxx" |
| #include "sc.hrc" |
| #include "document.hxx" |
| |
| //------------------------------------------------------------------------ |
| |
| #define ScAuditingShell |
| #include "scslots.hxx" |
| |
| //------------------------------------------------------------------------ |
| |
| TYPEINIT1( ScAuditingShell, SfxShell ); |
| |
| SFX_IMPL_INTERFACE(ScAuditingShell, SfxShell, ScResId(SCSTR_AUDITSHELL)) |
| { |
| SFX_POPUPMENU_REGISTRATION( ScResId(RID_POPUP_AUDIT) ); |
| } |
| |
| |
| //------------------------------------------------------------------------ |
| |
| ScAuditingShell::ScAuditingShell(ScViewData* pData) : |
| SfxShell(pData->GetViewShell()), |
| pViewData( pData ), |
| nFunction( SID_FILL_ADD_PRED ) |
| { |
| SetPool( &pViewData->GetViewShell()->GetPool() ); |
| ::svl::IUndoManager* pMgr = pViewData->GetSfxDocShell()->GetUndoManager(); |
| SetUndoManager( pMgr ); |
| if ( !pViewData->GetDocument()->IsUndoEnabled() ) |
| { |
| pMgr->SetMaxUndoActionCount( 0 ); |
| } |
| SetHelpId( HID_SCSHELL_AUDIT ); |
| SetName(String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("Auditing"))); |
| SfxShell::SetContextName(sfx2::sidebar::EnumContext::GetContextName(sfx2::sidebar::EnumContext::Context_Auditing)); |
| } |
| |
| //------------------------------------------------------------------------ |
| |
| ScAuditingShell::~ScAuditingShell() |
| { |
| } |
| |
| //------------------------------------------------------------------------ |
| |
| void ScAuditingShell::Execute( SfxRequest& rReq ) |
| { |
| SfxBindings& rBindings = pViewData->GetBindings(); |
| sal_uInt16 nSlot = rReq.GetSlot(); |
| switch ( nSlot ) |
| { |
| case SID_FILL_ADD_PRED: |
| case SID_FILL_DEL_PRED: |
| case SID_FILL_ADD_SUCC: |
| case SID_FILL_DEL_SUCC: |
| nFunction = nSlot; |
| rBindings.Invalidate( SID_FILL_ADD_PRED ); |
| rBindings.Invalidate( SID_FILL_DEL_PRED ); |
| rBindings.Invalidate( SID_FILL_ADD_SUCC ); |
| rBindings.Invalidate( SID_FILL_DEL_SUCC ); |
| break; |
| case SID_CANCEL: // Escape |
| case SID_FILL_NONE: |
| pViewData->GetViewShell()->SetAuditShell( sal_False ); |
| break; |
| |
| case SID_FILL_SELECT: |
| { |
| const SfxItemSet* pReqArgs = rReq.GetArgs(); |
| if ( pReqArgs ) |
| { |
| const SfxPoolItem* pXItem; |
| const SfxPoolItem* pYItem; |
| if ( pReqArgs->GetItemState( SID_RANGE_COL, sal_True, &pXItem ) == SFX_ITEM_SET |
| && pReqArgs->GetItemState( SID_RANGE_ROW, sal_True, &pYItem ) == SFX_ITEM_SET ) |
| { |
| DBG_ASSERT( pXItem->ISA(SfxInt16Item) && pYItem->ISA(SfxInt32Item), |
| "falsche Items" ); |
| SCsCOL nCol = static_cast<SCsCOL>(((const SfxInt16Item*) pXItem)->GetValue()); |
| SCsROW nRow = static_cast<SCsROW>(((const SfxInt32Item*) pYItem)->GetValue()); |
| ScViewFunc* pView = pViewData->GetView(); |
| pView->MoveCursorAbs( nCol, nRow, SC_FOLLOW_LINE, sal_False, sal_False ); |
| switch ( nFunction ) |
| { |
| case SID_FILL_ADD_PRED: |
| pView->DetectiveAddPred(); |
| break; |
| case SID_FILL_DEL_PRED: |
| pView->DetectiveDelPred(); |
| break; |
| case SID_FILL_ADD_SUCC: |
| pView->DetectiveAddSucc(); |
| break; |
| case SID_FILL_DEL_SUCC: |
| pView->DetectiveDelSucc(); |
| break; |
| } |
| } |
| } |
| } |
| break; |
| } |
| } |
| |
| //------------------------------------------------------------------------ |
| |
| void ScAuditingShell::GetState( SfxItemSet& rSet ) |
| { |
| rSet.Put( SfxBoolItem( nFunction, sal_True ) ); // aktive Funktion markieren |
| } |