1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_svx.hxx" 26 27 // INCLUDE --------------------------------------------------------------- 28 #include <svl/rectitem.hxx> 29 30 31 32 33 34 35 #include <svx/dialogs.hrc> 36 37 #include <svx/ruler.hxx> 38 #include <editeng/lrspitem.hxx> 39 #include <editeng/ulspitem.hxx> 40 #include <editeng/tstpitem.hxx> 41 #include "editeng/protitem.hxx" 42 #include "rlrcitem.hxx" 43 #include "svx/rulritem.hxx" 44 #include <svl/eitem.hxx> 45 46 // class SvxRulerItem ---------------------------------------------------- 47 48 SvxRulerItem::SvxRulerItem(sal_uInt16 _nId, SvxRuler &rRul, SfxBindings &rBindings) 49 : SfxControllerItem(_nId, rBindings), 50 rRuler(rRul) 51 { 52 } 53 54 // ----------------------------------------------------------------------- 55 56 void SvxRulerItem::StateChanged( sal_uInt16 nSID, SfxItemState eState, 57 const SfxPoolItem* pState) 58 { 59 // SFX_ITEM_DONTCARE => pState == -1 => PTR_CAST buff 60 if ( eState != SFX_ITEM_AVAILABLE ) 61 pState = 0; 62 63 switch(nSID) 64 { 65 // Linker / rechter Seitenrand 66 case SID_RULER_LR_MIN_MAX: 67 { 68 const SfxRectangleItem *pItem = PTR_CAST(SfxRectangleItem, pState); 69 rRuler.UpdateFrameMinMax(pItem); 70 break; 71 } 72 case SID_ATTR_LONG_LRSPACE: 73 { 74 const SvxLongLRSpaceItem *pItem = PTR_CAST(SvxLongLRSpaceItem, pState); 75 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxLRSpaceItem erwartet"); 76 rRuler.UpdateFrame(pItem); 77 break; 78 } 79 case SID_ATTR_LONG_ULSPACE: 80 { 81 const SvxLongULSpaceItem *pItem = PTR_CAST(SvxLongULSpaceItem, pState); 82 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxULSpaceItem erwartet"); 83 rRuler.UpdateFrame(pItem); 84 break; 85 } 86 case SID_ATTR_TABSTOP_VERTICAL: 87 case SID_ATTR_TABSTOP: 88 { 89 const SvxTabStopItem *pItem = PTR_CAST(SvxTabStopItem, pState); 90 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxTabStopItem erwartet"); 91 rRuler.Update(pItem); 92 break; 93 } 94 case SID_ATTR_PARA_LRSPACE_VERTICAL: 95 case SID_ATTR_PARA_LRSPACE: 96 { 97 const SvxLRSpaceItem *pItem = PTR_CAST(SvxLRSpaceItem, pState); 98 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxLRSpaceItem erwartet"); 99 rRuler.UpdatePara(pItem); 100 break; 101 } 102 case SID_RULER_BORDERS_VERTICAL: 103 case SID_RULER_BORDERS: 104 case SID_RULER_ROWS: 105 case SID_RULER_ROWS_VERTICAL: 106 { 107 const SvxColumnItem *pItem = PTR_CAST(SvxColumnItem, pState); 108 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxColumnItem erwartet"); 109 #ifdef DBG_UTIL 110 if(pItem) 111 { 112 if(pItem->IsConsistent()) 113 rRuler.Update(pItem, nSID); 114 else 115 DBG_ERROR("Spaltenitem corrupted"); 116 } 117 else 118 rRuler.Update(pItem, nSID); 119 #else 120 rRuler.Update(pItem, nSID); 121 #endif 122 break; 123 } 124 case SID_RULER_PAGE_POS: 125 { // Position Seite, Seitenbreite 126 const SvxPagePosSizeItem *pItem = PTR_CAST(SvxPagePosSizeItem, pState); 127 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxPagePosSizeItem erwartet"); 128 rRuler.Update(pItem); 129 break; 130 } 131 case SID_RULER_OBJECT: 132 { // Object-Selektion 133 const SvxObjectItem *pItem = PTR_CAST(SvxObjectItem, pState); 134 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxObjectItem erwartet"); 135 rRuler.Update(pItem); 136 break; 137 } 138 case SID_RULER_PROTECT: 139 { 140 const SvxProtectItem *pItem = PTR_CAST(SvxProtectItem, pState); 141 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxProtectItem erwartet"); 142 rRuler.Update(pItem); 143 break; 144 } 145 case SID_RULER_BORDER_DISTANCE: 146 { 147 const SvxLRSpaceItem *pItem = PTR_CAST(SvxLRSpaceItem, pState); 148 DBG_ASSERT(pState? 0 != pItem: sal_True, "SvxLRSpaceItem erwartet"); 149 rRuler.UpdateParaBorder(pItem); 150 } 151 break; 152 case SID_RULER_TEXT_RIGHT_TO_LEFT : 153 { 154 const SfxBoolItem *pItem = PTR_CAST(SfxBoolItem, pState); 155 DBG_ASSERT(pState? 0 != pItem: sal_True, "SfxBoolItem erwartet"); 156 rRuler.UpdateTextRTL(pItem); 157 } 158 break; 159 } 160 } 161 162 163