| /************************************************************** |
| * |
| * 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 --------------------------------------------------------------- |
| |
| #include <svl/intitem.hxx> |
| #include <svl/stritem.hxx> |
| |
| #include "navcitem.hxx" |
| #include "global.hxx" |
| #include "navipi.hxx" |
| #include "sc.hrc" // -> Item-IDs |
| |
| // STATIC DATA ----------------------------------------------------------- |
| |
| |
| //------------------------------------------------------------------------ |
| |
| ScNavigatorControllerItem::ScNavigatorControllerItem( sal_uInt16 nIdP, |
| ScNavigatorDlg& rDlg, |
| SfxBindings& rBindings ) |
| : SfxControllerItem ( nIdP, rBindings ), |
| rNavigatorDlg ( rDlg ) |
| { |
| } |
| |
| //------------------------------------------------------------------------ |
| |
| void __EXPORT ScNavigatorControllerItem::StateChanged( sal_uInt16 /* nSID */, SfxItemState /* eState */, |
| const SfxPoolItem* pItem ) |
| { |
| switch( GetId() ) |
| { |
| case SID_CURRENTCELL: |
| if ( pItem ) |
| { |
| // const SfxPointItem* pCellPosItem = PTR_CAST(SfxPointItem, pItem); |
| const SfxStringItem* pCellPosItem = PTR_CAST(SfxStringItem, pItem); |
| |
| DBG_ASSERT( pCellPosItem, "SfxStringItem expected!" ); |
| |
| if ( pCellPosItem ) |
| { |
| String aAddress( pCellPosItem->GetValue() ); |
| ScAddress aScAddress; |
| aScAddress.Parse( aAddress ); |
| |
| SCCOL nCol = aScAddress.Col()+1; |
| SCROW nRow = aScAddress.Row()+1; |
| |
| // SCCOL nCol = (sal_uInt16)pCellPosItem->GetValue().X()+1; |
| // SCROW nRow = (sal_uInt16)pCellPosItem->GetValue().Y()+1; |
| |
| rNavigatorDlg.UpdateColumn( &nCol ); |
| rNavigatorDlg.UpdateRow ( &nRow ); |
| rNavigatorDlg.CursorPosChanged(); |
| } |
| } |
| break; |
| |
| case SID_CURRENTTAB: |
| if ( pItem ) |
| { |
| const SfxUInt16Item* pTabItem = PTR_CAST(SfxUInt16Item, pItem); |
| |
| DBG_ASSERT( pTabItem, "SfxUInt16Item expected!" ); |
| |
| // Tabelle fuer Basic ist 1-basiert |
| if ( pTabItem && pTabItem->GetValue() ) |
| { |
| SCTAB nTab = pTabItem->GetValue() - 1; |
| |
| rNavigatorDlg.UpdateTable( &nTab ); |
| rNavigatorDlg.UpdateColumn(); |
| rNavigatorDlg.UpdateRow(); |
| rNavigatorDlg.CursorPosChanged(); |
| } |
| } |
| break; |
| |
| case SID_CURRENTDOC: |
| // |
| // gar nix mehr, wird ueber SFX_HINT_DOCCHANGED erledigt |
| // |
| break; |
| |
| |
| case SID_SELECT_SCENARIO: |
| rNavigatorDlg.aWndScenarios.NotifyState( pItem ); |
| break; |
| |
| default: |
| break; |
| } |
| } |
| |
| |
| |