in main/svx/source/sidebar/line/LinePropertyPanel.cxx [447:782]
void LinePropertyPanel::NotifyItemUpdate(
sal_uInt16 nSID,
SfxItemState eState,
const SfxPoolItem* pState,
const bool bIsEnabled)
{
(void)bIsEnabled;
const bool bDisabled(SFX_ITEM_DISABLED == eState);
switch(nSID)
{
case SID_ATTR_LINE_COLOR:
{
if(bDisabled)
{
mpFTColor->Disable();
mpTBColor->Disable();
}
else
{
mpFTColor->Enable();
mpTBColor->Enable();
}
if(eState >= SFX_ITEM_DEFAULT)
{
const XLineColorItem* pItem = dynamic_cast< const XLineColorItem* >(pState);
if(pItem)
{
maColor = pItem->GetColorValue();
mbColorAvailable = true;
mpColorUpdater->Update(maColor);
break;
}
}
mbColorAvailable = false;
mpColorUpdater->Update(COL_WHITE);
break;
}
case SID_ATTR_LINE_DASH:
case SID_ATTR_LINE_STYLE:
{
if(bDisabled)
{
mpFTStyle->Disable();
mpLBStyle->Disable();
}
else
{
mpFTStyle->Enable();
mpLBStyle->Enable();
}
if(eState >= SFX_ITEM_DEFAULT)
{
if(nSID == SID_ATTR_LINE_STYLE)
{
const XLineStyleItem* pItem = dynamic_cast< const XLineStyleItem* >(pState);
if(pItem)
{
mpStyleItem.reset(pState ? (XLineStyleItem*)pItem->Clone() : 0);
}
}
else // if(nSID == SID_ATTR_LINE_DASH)
{
const XLineDashItem* pItem = dynamic_cast< const XLineDashItem* >(pState);
if(pItem)
{
mpDashItem.reset(pState ? (XLineDashItem*)pItem->Clone() : 0);
}
}
}
else
{
if(nSID == SID_ATTR_LINE_STYLE)
{
mpStyleItem.reset(0);
}
else
{
mpDashItem.reset(0);
}
}
SelectLineStyle();
break;
}
case SID_ATTR_LINE_TRANSPARENCE:
{
if(bDisabled)
{
mpFTTrancparency->Disable();
mpMFTransparent->Disable();
}
else
{
mpFTTrancparency->Enable();
mpMFTransparent->Enable();
}
if(eState >= SFX_ITEM_DEFAULT)
{
const XLineTransparenceItem* pItem = dynamic_cast< const XLineTransparenceItem* >(pState);
if(pItem)
{
mnTrans = pItem->GetValue();
mpMFTransparent->SetValue(mnTrans);
break;
}
}
mpMFTransparent->SetValue(0);//add
mpMFTransparent->SetText(String());
break;
}
case SID_ATTR_LINE_WIDTH:
{
if(bDisabled)
{
mpTBWidth->Disable();
mpFTWidth->Disable();
}
else
{
mpTBWidth->Enable();
mpFTWidth->Enable();
}
if(eState >= SFX_ITEM_DEFAULT)
{
const XLineWidthItem* pItem = dynamic_cast< const XLineWidthItem* >(pState);
if(pItem)
{
mnWidthCoreValue = pItem->GetValue();
mbWidthValuable = true;
SetWidthIcon();
break;
}
}
mbWidthValuable = false;
SetWidthIcon();
break;
}
case SID_ATTR_LINE_START:
{
if(bDisabled)
{
mpFTArrow->Disable();
mpLBStart->Disable();
}
else
{
mpFTArrow->Enable();
mpLBStart->Enable();
}
if(eState >= SFX_ITEM_DEFAULT)
{
const XLineStartItem* pItem = dynamic_cast< const XLineStartItem* >(pState);
if(pItem)
{
mpStartItem.reset(pItem ? (XLineStartItem*)pItem->Clone() : 0);
SelectEndStyle(true);
break;
}
}
mpStartItem.reset(0);
SelectEndStyle(true);
break;
}
case SID_ATTR_LINE_END:
{
if(bDisabled)
{
mpFTArrow->Disable();
mpLBEnd->Disable();
}
else
{
mpFTArrow->Enable();
mpLBEnd->Enable();
}
if(eState >= SFX_ITEM_DEFAULT)
{
const XLineEndItem* pItem = dynamic_cast< const XLineEndItem* >(pState);
if(pItem)
{
mpEndItem.reset(pItem ? (XLineEndItem*)pItem->Clone() : 0);
SelectEndStyle(false);
break;
}
}
mpEndItem.reset(0);
SelectEndStyle(false);
break;
}
case SID_LINEEND_LIST:
{
FillLineEndList();
SelectEndStyle(true);
SelectEndStyle(false);
break;
}
case SID_DASH_LIST:
{
FillLineStyleList();
SelectLineStyle();
break;
}
case SID_ATTR_LINE_JOINT:
{
if(bDisabled)
{
mpLBEdgeStyle->Disable();
mpFTEdgeStyle->Disable();
}
else
{
mpLBEdgeStyle->Enable();
mpFTEdgeStyle->Enable();
}
if(eState >= SFX_ITEM_DEFAULT)
{
const XLineJointItem* pItem = dynamic_cast< const XLineJointItem* >(pState);
if(pItem)
{
sal_uInt16 nEntryPos(0);
switch(pItem->GetValue())
{
case com::sun::star::drawing::LineJoint_MIDDLE:
case com::sun::star::drawing::LineJoint_ROUND:
{
nEntryPos = 1;
break;
}
case com::sun::star::drawing::LineJoint_NONE:
{
nEntryPos = 2;
break;
}
case com::sun::star::drawing::LineJoint_MITER:
{
nEntryPos = 3;
break;
}
case com::sun::star::drawing::LineJoint_BEVEL:
{
nEntryPos = 4;
break;
}
default:
break;
}
if(nEntryPos)
{
mpLBEdgeStyle->SelectEntryPos(nEntryPos - 1);
break;
}
}
}
mpLBEdgeStyle->SetNoSelection();
break;
}
case SID_ATTR_LINE_CAP:
{
if(bDisabled)
{
mpLBCapStyle->Disable();
mpFTCapStyle->Disable();
}
else
{
mpLBCapStyle->Enable();
mpLBCapStyle->Enable();
}
if(eState >= SFX_ITEM_DEFAULT)
{
const XLineCapItem* pItem = dynamic_cast< const XLineCapItem* >(pState);
if(pItem)
{
sal_uInt16 nEntryPos(0);
switch(pItem->GetValue())
{
case com::sun::star::drawing::LineCap_BUTT:
{
nEntryPos = 1;
break;
}
case com::sun::star::drawing::LineCap_ROUND:
{
nEntryPos = 2;
break;
}
case com::sun::star::drawing::LineCap_SQUARE:
{
nEntryPos = 3;
break;
}
default:
break;
}
if(nEntryPos)
{
mpLBCapStyle->SelectEntryPos(nEntryPos - 1);
break;
}
}
}
mpLBCapStyle->SetNoSelection();
break;
}
}
}