1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski #include "precompiled_sc.hxx"
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #include <sfx2/sidebar/ResourceDefinitions.hrc>
25*b1cdbd2cSJim Jagielski #include <sfx2/sidebar/Theme.hxx>
26*b1cdbd2cSJim Jagielski #include <sfx2/sidebar/ControlFactory.hxx>
27*b1cdbd2cSJim Jagielski #include <sfx2/sidebar/Layouter.hxx>
28*b1cdbd2cSJim Jagielski #include <CellAppearancePropertyPanel.hxx>
29*b1cdbd2cSJim Jagielski #include <CellAppearancePropertyPanel.hrc>
30*b1cdbd2cSJim Jagielski #include "sc.hrc"
31*b1cdbd2cSJim Jagielski #include "scresid.hxx"
32*b1cdbd2cSJim Jagielski #include <sfx2/bindings.hxx>
33*b1cdbd2cSJim Jagielski #include <sfx2/dispatch.hxx>
34*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx>
35*b1cdbd2cSJim Jagielski #include <svx/tbxcolorupdate.hxx>
36*b1cdbd2cSJim Jagielski #include <svl/eitem.hxx>
37*b1cdbd2cSJim Jagielski #include <editeng/bolnitem.hxx>
38*b1cdbd2cSJim Jagielski #include <editeng/boxitem.hxx>
39*b1cdbd2cSJim Jagielski #include <editeng/colritem.hxx>
40*b1cdbd2cSJim Jagielski #include <vcl/svapp.hxx>
41*b1cdbd2cSJim Jagielski #include <svx/sidebar/ColorControl.hxx>
42*b1cdbd2cSJim Jagielski #include <boost/bind.hpp>
43*b1cdbd2cSJim Jagielski #include <svx/sidebar/PopupContainer.hxx>
44*b1cdbd2cSJim Jagielski #include <CellLineStyleControl.hxx>
45*b1cdbd2cSJim Jagielski #include <CellLineStylePopup.hxx>
46*b1cdbd2cSJim Jagielski #include <CellBorderUpdater.hxx>
47*b1cdbd2cSJim Jagielski #include <CellBorderStyleControl.hxx>
48*b1cdbd2cSJim Jagielski #include <CellBorderStylePopup.hxx>
49*b1cdbd2cSJim Jagielski 
50*b1cdbd2cSJim Jagielski using namespace css;
51*b1cdbd2cSJim Jagielski using namespace cssu;
52*b1cdbd2cSJim Jagielski using ::sfx2::sidebar::Layouter;
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski 
55*b1cdbd2cSJim Jagielski #define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
56*b1cdbd2cSJim Jagielski 
57*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
58*b1cdbd2cSJim Jagielski // helpers
59*b1cdbd2cSJim Jagielski 
60*b1cdbd2cSJim Jagielski namespace
61*b1cdbd2cSJim Jagielski {
GetTransparentColor(void)62*b1cdbd2cSJim Jagielski     Color GetTransparentColor(void)
63*b1cdbd2cSJim Jagielski     {
64*b1cdbd2cSJim Jagielski         return COL_TRANSPARENT;
65*b1cdbd2cSJim Jagielski     }
66*b1cdbd2cSJim Jagielski } // end of anonymous namespace
67*b1cdbd2cSJim Jagielski 
68*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
69*b1cdbd2cSJim Jagielski // namespace open
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski namespace sc { namespace sidebar {
72*b1cdbd2cSJim Jagielski 
73*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
74*b1cdbd2cSJim Jagielski 
CreateFillColorPopupControl(svx::sidebar::PopupContainer * pParent)75*b1cdbd2cSJim Jagielski svx::sidebar::PopupControl* CellAppearancePropertyPanel::CreateFillColorPopupControl(svx::sidebar::PopupContainer* pParent)
76*b1cdbd2cSJim Jagielski {
77*b1cdbd2cSJim Jagielski     const ScResId aResId(VS_NOFILLCOLOR);
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski     return new svx::sidebar::ColorControl(
80*b1cdbd2cSJim Jagielski         pParent,
81*b1cdbd2cSJim Jagielski         mpBindings,
82*b1cdbd2cSJim Jagielski         ScResId(RID_POPUPPANEL_CELLAPPEARANCE_FILLCOLOR),
83*b1cdbd2cSJim Jagielski         ScResId(VS_FILLCOLOR),
84*b1cdbd2cSJim Jagielski         ::boost::bind(GetTransparentColor),
85*b1cdbd2cSJim Jagielski         ::boost::bind(&CellAppearancePropertyPanel::SetFillColor, this, _1, _2),
86*b1cdbd2cSJim Jagielski         pParent,
87*b1cdbd2cSJim Jagielski         &aResId);
88*b1cdbd2cSJim Jagielski }
89*b1cdbd2cSJim Jagielski 
SetFillColor(const String &,const Color aColor)90*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::SetFillColor(
91*b1cdbd2cSJim Jagielski     const String& /*rsColorName*/,
92*b1cdbd2cSJim Jagielski     const Color aColor)
93*b1cdbd2cSJim Jagielski {
94*b1cdbd2cSJim Jagielski     const SvxColorItem aColorItem(aColor, SID_BACKGROUND_COLOR);
95*b1cdbd2cSJim Jagielski     mpBindings->GetDispatcher()->Execute(SID_BACKGROUND_COLOR, SFX_CALLMODE_RECORD, &aColorItem, 0L);
96*b1cdbd2cSJim Jagielski     maBackColor = aColor;
97*b1cdbd2cSJim Jagielski }
98*b1cdbd2cSJim Jagielski 
99*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
100*b1cdbd2cSJim Jagielski 
CreateLineColorPopupControl(svx::sidebar::PopupContainer * pParent)101*b1cdbd2cSJim Jagielski svx::sidebar::PopupControl* CellAppearancePropertyPanel::CreateLineColorPopupControl(svx::sidebar::PopupContainer* pParent)
102*b1cdbd2cSJim Jagielski {
103*b1cdbd2cSJim Jagielski     return new svx::sidebar::ColorControl(
104*b1cdbd2cSJim Jagielski         pParent,
105*b1cdbd2cSJim Jagielski         mpBindings,
106*b1cdbd2cSJim Jagielski         ScResId(RID_POPUPPANEL_CELLAPPEARANCE_LINECOLOR),
107*b1cdbd2cSJim Jagielski         ScResId(VS_LINECOLOR),
108*b1cdbd2cSJim Jagielski         ::boost::bind(GetTransparentColor),
109*b1cdbd2cSJim Jagielski         ::boost::bind(&CellAppearancePropertyPanel::SetLineColor, this, _1, _2),
110*b1cdbd2cSJim Jagielski         pParent,
111*b1cdbd2cSJim Jagielski         0);
112*b1cdbd2cSJim Jagielski }
113*b1cdbd2cSJim Jagielski 
SetLineColor(const String &,const Color aColor)114*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::SetLineColor(
115*b1cdbd2cSJim Jagielski     const String& /*rsColorName*/,
116*b1cdbd2cSJim Jagielski     const Color aColor)
117*b1cdbd2cSJim Jagielski {
118*b1cdbd2cSJim Jagielski     const SvxColorItem aColorItem(aColor, SID_FRAME_LINECOLOR);
119*b1cdbd2cSJim Jagielski     mpBindings->GetDispatcher()->Execute(SID_FRAME_LINECOLOR, SFX_CALLMODE_RECORD, &aColorItem, 0L);
120*b1cdbd2cSJim Jagielski     maLineColor = aColor;
121*b1cdbd2cSJim Jagielski }
122*b1cdbd2cSJim Jagielski 
123*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
124*b1cdbd2cSJim Jagielski 
CreateCellLineStylePopupControl(svx::sidebar::PopupContainer * pParent)125*b1cdbd2cSJim Jagielski svx::sidebar::PopupControl* CellAppearancePropertyPanel::CreateCellLineStylePopupControl(svx::sidebar::PopupContainer* pParent)
126*b1cdbd2cSJim Jagielski {
127*b1cdbd2cSJim Jagielski     return new CellLineStyleControl(pParent, *this);
128*b1cdbd2cSJim Jagielski }
129*b1cdbd2cSJim Jagielski 
EndCellLineStylePopupMode(void)130*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::EndCellLineStylePopupMode(void)
131*b1cdbd2cSJim Jagielski {
132*b1cdbd2cSJim Jagielski     if(mpCellLineStylePopup.get())
133*b1cdbd2cSJim Jagielski     {
134*b1cdbd2cSJim Jagielski         mpCellLineStylePopup->Hide();
135*b1cdbd2cSJim Jagielski     }
136*b1cdbd2cSJim Jagielski }
137*b1cdbd2cSJim Jagielski 
138*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
139*b1cdbd2cSJim Jagielski 
CreateCellBorderStylePopupControl(svx::sidebar::PopupContainer * pParent)140*b1cdbd2cSJim Jagielski svx::sidebar::PopupControl* CellAppearancePropertyPanel::CreateCellBorderStylePopupControl(svx::sidebar::PopupContainer* pParent)
141*b1cdbd2cSJim Jagielski {
142*b1cdbd2cSJim Jagielski     return new CellBorderStyleControl(pParent, *this);
143*b1cdbd2cSJim Jagielski }
144*b1cdbd2cSJim Jagielski 
EndCellBorderStylePopupMode(void)145*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::EndCellBorderStylePopupMode(void)
146*b1cdbd2cSJim Jagielski {
147*b1cdbd2cSJim Jagielski     if(mpCellBorderStylePopup.get())
148*b1cdbd2cSJim Jagielski     {
149*b1cdbd2cSJim Jagielski         mpCellBorderStylePopup->Hide();
150*b1cdbd2cSJim Jagielski     }
151*b1cdbd2cSJim Jagielski }
152*b1cdbd2cSJim Jagielski 
153*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
154*b1cdbd2cSJim Jagielski 
CellAppearancePropertyPanel(Window * pParent,const cssu::Reference<css::frame::XFrame> & rxFrame,SfxBindings * pBindings)155*b1cdbd2cSJim Jagielski CellAppearancePropertyPanel::CellAppearancePropertyPanel(
156*b1cdbd2cSJim Jagielski     Window* pParent,
157*b1cdbd2cSJim Jagielski     const cssu::Reference<css::frame::XFrame>& rxFrame,
158*b1cdbd2cSJim Jagielski     SfxBindings* pBindings)
159*b1cdbd2cSJim Jagielski :   Control(
160*b1cdbd2cSJim Jagielski         pParent,
161*b1cdbd2cSJim Jagielski         ScResId(RID_PROPERTYPANEL_SC_APPEAR)),
162*b1cdbd2cSJim Jagielski 
163*b1cdbd2cSJim Jagielski     mpFTFillColor(new FixedText(this, ScResId(FT_BK_COLOR))),
164*b1cdbd2cSJim Jagielski     mpTBFillColorBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)),
165*b1cdbd2cSJim Jagielski     mpTBFillColor(sfx2::sidebar::ControlFactory::CreateToolBox(mpTBFillColorBackground.get(), ScResId(TB_BK_COLOR))),
166*b1cdbd2cSJim Jagielski     mpFillColorUpdater(new ::svx::ToolboxButtonColorUpdater(SID_ATTR_BRUSH, TBI_BK_COLOR, mpTBFillColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW)),
167*b1cdbd2cSJim Jagielski 
168*b1cdbd2cSJim Jagielski     mpFTCellBorder(new FixedText(this, ScResId(FT_BORDER))),
169*b1cdbd2cSJim Jagielski     mpTBCellBorderBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)),
170*b1cdbd2cSJim Jagielski     mpTBCellBorder(sfx2::sidebar::ControlFactory::CreateToolBox(mpTBCellBorderBackground.get(), ScResId(TB_APP_BORDER))),
171*b1cdbd2cSJim Jagielski     mpCellBorderUpdater(new CellBorderUpdater(TBI_BORDER, *mpTBCellBorder)),
172*b1cdbd2cSJim Jagielski 
173*b1cdbd2cSJim Jagielski     mpTBLineStyleBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)),
174*b1cdbd2cSJim Jagielski     mpTBLineStyle(sfx2::sidebar::ControlFactory::CreateToolBox(mpTBLineStyleBackground.get(), ScResId(TB_BORDER_LINE_STYLE))),
175*b1cdbd2cSJim Jagielski 
176*b1cdbd2cSJim Jagielski     mpTBLineColorBackground(sfx2::sidebar::ControlFactory::CreateToolBoxBackground(this)),
177*b1cdbd2cSJim Jagielski     mpTBLineColor(sfx2::sidebar::ControlFactory::CreateToolBox(mpTBLineColorBackground.get(), ScResId(TB_BORDER_LINE_COLOR))),
178*b1cdbd2cSJim Jagielski     mpLineColorUpdater(new ::svx::ToolboxButtonColorUpdater(SID_FRAME_LINECOLOR, TBI_LINE_COLOR, mpTBLineColor.get(), TBX_UPDATER_MODE_CHAR_COLOR_NEW)),
179*b1cdbd2cSJim Jagielski 
180*b1cdbd2cSJim Jagielski     mpCBXShowGrid(new CheckBox(this, ScResId(CBX_SHOW_GRID))),
181*b1cdbd2cSJim Jagielski 
182*b1cdbd2cSJim Jagielski     maBackColorControl(SID_BACKGROUND_COLOR, *pBindings, *this),
183*b1cdbd2cSJim Jagielski     maLineColorControl(SID_FRAME_LINECOLOR, *pBindings, *this),
184*b1cdbd2cSJim Jagielski     maLineStyleControl(SID_FRAME_LINESTYLE, *pBindings, *this),
185*b1cdbd2cSJim Jagielski     maBorderOuterControl(SID_ATTR_BORDER_OUTER, *pBindings, *this),
186*b1cdbd2cSJim Jagielski     maBorderInnerControl(SID_ATTR_BORDER_INNER, *pBindings, *this),
187*b1cdbd2cSJim Jagielski     maGridShowControl(SID_SCGRIDSHOW, *pBindings, *this),
188*b1cdbd2cSJim Jagielski     maBorderTLBRControl(SID_ATTR_BORDER_DIAG_TLBR, *pBindings, *this),
189*b1cdbd2cSJim Jagielski     maBorderBLTRControl(SID_ATTR_BORDER_DIAG_BLTR, *pBindings, *this),
190*b1cdbd2cSJim Jagielski 
191*b1cdbd2cSJim Jagielski     maIMGBKColor(ScResId(IMG_BK_COLOR)),
192*b1cdbd2cSJim Jagielski     maIMGCellBorder(ScResId(IMG_CELL_BORDER)),
193*b1cdbd2cSJim Jagielski     maIMGLineColor(ScResId(IMG_LINE_COLOR)),
194*b1cdbd2cSJim Jagielski     maIMGLineStyle1(ScResId(IMG_LINE_STYLE1)),
195*b1cdbd2cSJim Jagielski     maIMGLineStyle2(ScResId(IMG_LINE_STYLE2)),
196*b1cdbd2cSJim Jagielski     maIMGLineStyle3(ScResId(IMG_LINE_STYLE3)),
197*b1cdbd2cSJim Jagielski     maIMGLineStyle4(ScResId(IMG_LINE_STYLE4)),
198*b1cdbd2cSJim Jagielski     maIMGLineStyle5(ScResId(IMG_LINE_STYLE5)),
199*b1cdbd2cSJim Jagielski     maIMGLineStyle6(ScResId(IMG_LINE_STYLE6)),
200*b1cdbd2cSJim Jagielski     maIMGLineStyle7(ScResId(IMG_LINE_STYLE7)),
201*b1cdbd2cSJim Jagielski     maIMGLineStyle8(ScResId(IMG_LINE_STYLE8)),
202*b1cdbd2cSJim Jagielski     maIMGLineStyle9(ScResId(IMG_LINE_STYLE9)),
203*b1cdbd2cSJim Jagielski 
204*b1cdbd2cSJim Jagielski     maIMGBKColorH(ScResId(IMG_BK_COLOR_H)),
205*b1cdbd2cSJim Jagielski     maIMGLineStyle1H(ScResId(IMG_LINE_STYLE1_H)),
206*b1cdbd2cSJim Jagielski     maIMGLineStyle2H(ScResId(IMG_LINE_STYLE2_H)),
207*b1cdbd2cSJim Jagielski     maIMGLineStyle3H(ScResId(IMG_LINE_STYLE3_H)),
208*b1cdbd2cSJim Jagielski     maIMGLineStyle4H(ScResId(IMG_LINE_STYLE4_H)),
209*b1cdbd2cSJim Jagielski     maIMGLineStyle5H(ScResId(IMG_LINE_STYLE5_H)),
210*b1cdbd2cSJim Jagielski     maIMGLineStyle6H(ScResId(IMG_LINE_STYLE6_H)),
211*b1cdbd2cSJim Jagielski     maIMGLineStyle7H(ScResId(IMG_LINE_STYLE7_H)),
212*b1cdbd2cSJim Jagielski     maIMGLineStyle8H(ScResId(IMG_LINE_STYLE8_H)),
213*b1cdbd2cSJim Jagielski     maIMGLineStyle9H(ScResId(IMG_LINE_STYLE9_H)),
214*b1cdbd2cSJim Jagielski 
215*b1cdbd2cSJim Jagielski     maBackColor(COL_TRANSPARENT),
216*b1cdbd2cSJim Jagielski     maLineColor(COL_BLACK),
217*b1cdbd2cSJim Jagielski     maTLBRColor(COL_BLACK),
218*b1cdbd2cSJim Jagielski     maBLTRColor(COL_BLACK),
219*b1cdbd2cSJim Jagielski     mnIn(0),
220*b1cdbd2cSJim Jagielski     mnOut(0),
221*b1cdbd2cSJim Jagielski     mnDis(0),
222*b1cdbd2cSJim Jagielski     mnTLBRIn(0),
223*b1cdbd2cSJim Jagielski     mnTLBROut(0),
224*b1cdbd2cSJim Jagielski     mnTLBRDis(0),
225*b1cdbd2cSJim Jagielski     mnBLTRIn(0),
226*b1cdbd2cSJim Jagielski     mnBLTROut(0),
227*b1cdbd2cSJim Jagielski     mnBLTRDis(0),
228*b1cdbd2cSJim Jagielski     mbBackColorAvailable(true),
229*b1cdbd2cSJim Jagielski     mbLineColorAvailable(true),
230*b1cdbd2cSJim Jagielski     mbBorderStyleAvailable(true),
231*b1cdbd2cSJim Jagielski     mbLeft(false),
232*b1cdbd2cSJim Jagielski     mbRight(false),
233*b1cdbd2cSJim Jagielski     mbTop(false),
234*b1cdbd2cSJim Jagielski     mbBottom(false),
235*b1cdbd2cSJim Jagielski     mbVer(false),
236*b1cdbd2cSJim Jagielski     mbHor(false),
237*b1cdbd2cSJim Jagielski     mbOuterBorder(false),
238*b1cdbd2cSJim Jagielski     mbInnerBorder(false),
239*b1cdbd2cSJim Jagielski     mbTLBR(false),
240*b1cdbd2cSJim Jagielski     mbBLTR(false),
241*b1cdbd2cSJim Jagielski 
242*b1cdbd2cSJim Jagielski     maFillColorPopup(this, ::boost::bind(&CellAppearancePropertyPanel::CreateFillColorPopupControl, this, _1)),
243*b1cdbd2cSJim Jagielski     maLineColorPopup(this, ::boost::bind(&CellAppearancePropertyPanel::CreateLineColorPopupControl, this, _1)),
244*b1cdbd2cSJim Jagielski     mpCellLineStylePopup(),
245*b1cdbd2cSJim Jagielski     mpCellBorderStylePopup(),
246*b1cdbd2cSJim Jagielski 
247*b1cdbd2cSJim Jagielski     mxFrame(rxFrame),
248*b1cdbd2cSJim Jagielski     maContext(),
249*b1cdbd2cSJim Jagielski     mpBindings(pBindings)
250*b1cdbd2cSJim Jagielski {
251*b1cdbd2cSJim Jagielski     Initialize();
252*b1cdbd2cSJim Jagielski     FreeResource();
253*b1cdbd2cSJim Jagielski 
254*b1cdbd2cSJim Jagielski     Layouter::PrepareForLayouting(*mpFTFillColor);
255*b1cdbd2cSJim Jagielski     Layouter::PrepareForLayouting(*mpFTCellBorder);
256*b1cdbd2cSJim Jagielski }
257*b1cdbd2cSJim Jagielski 
258*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
259*b1cdbd2cSJim Jagielski 
~CellAppearancePropertyPanel()260*b1cdbd2cSJim Jagielski CellAppearancePropertyPanel::~CellAppearancePropertyPanel()
261*b1cdbd2cSJim Jagielski {
262*b1cdbd2cSJim Jagielski     // Destroy the toolboxes, then their background windows.
263*b1cdbd2cSJim Jagielski     mpTBFillColor.reset();
264*b1cdbd2cSJim Jagielski     mpTBCellBorder.reset();
265*b1cdbd2cSJim Jagielski     mpTBLineStyle.reset();
266*b1cdbd2cSJim Jagielski     mpTBLineColor.reset();
267*b1cdbd2cSJim Jagielski 
268*b1cdbd2cSJim Jagielski     mpTBFillColorBackground.reset();
269*b1cdbd2cSJim Jagielski     mpTBCellBorderBackground.reset();
270*b1cdbd2cSJim Jagielski     mpTBLineStyleBackground.reset();
271*b1cdbd2cSJim Jagielski     mpTBLineColorBackground.reset();
272*b1cdbd2cSJim Jagielski }
273*b1cdbd2cSJim Jagielski 
274*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
275*b1cdbd2cSJim Jagielski 
Initialize()276*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::Initialize()
277*b1cdbd2cSJim Jagielski {
278*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetItemImage(TBI_BK_COLOR, GetDisplayBackground().GetColor().IsDark() ? maIMGBKColorH : maIMGBKColor);
279*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetItemBits( TBI_BK_COLOR, mpTBFillColor->GetItemBits( TBI_BK_COLOR ) | TIB_DROPDOWNONLY );
280*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetQuickHelpText(TBI_BK_COLOR,String(ScResId(STR_QH_BK_COLOR)));	//Add
281*b1cdbd2cSJim Jagielski 	Size aTbxSize1( mpTBFillColor->CalcWindowSizePixel() );
282*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetOutputSizePixel( aTbxSize1 );
283*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetBackground(Wallpaper());
284*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetPaintTransparent(true);
285*b1cdbd2cSJim Jagielski 	Link aLink = LINK(this, CellAppearancePropertyPanel, TbxBKColorSelectHdl);
286*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetDropdownClickHdl ( aLink );
287*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetSelectHdl ( aLink );
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetItemImage(TBI_BORDER, maIMGCellBorder);
290*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetItemBits( TBI_BORDER, mpTBCellBorder->GetItemBits( TBI_BORDER ) | TIB_DROPDOWNONLY );
291*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetQuickHelpText(TBI_BORDER,String(ScResId(STR_QH_BORDER)));	//Add
292*b1cdbd2cSJim Jagielski 	Size aTbxSize2( mpTBCellBorder->CalcWindowSizePixel() );
293*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetOutputSizePixel( aTbxSize2 );
294*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetBackground(Wallpaper());
295*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetPaintTransparent(true);
296*b1cdbd2cSJim Jagielski 	aLink = LINK(this, CellAppearancePropertyPanel, TbxCellBorderSelectHdl);
297*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetDropdownClickHdl ( aLink );
298*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetSelectHdl ( aLink );
299*b1cdbd2cSJim Jagielski 
300*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, maIMGLineStyle1);
301*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetItemBits( TBI_LINE_STYLE, mpTBLineStyle->GetItemBits( TBI_LINE_STYLE ) | TIB_DROPDOWNONLY );
302*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetQuickHelpText(TBI_LINE_STYLE,String(ScResId(STR_QH_BORDER_LINE_STYLE)));	//Add
303*b1cdbd2cSJim Jagielski 	Size aTbxSize3( mpTBLineStyle->CalcWindowSizePixel() );
304*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetOutputSizePixel( aTbxSize3 );
305*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetBackground(Wallpaper());
306*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetPaintTransparent(true);
307*b1cdbd2cSJim Jagielski 	aLink = LINK(this, CellAppearancePropertyPanel, TbxLineStyleSelectHdl);
308*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetDropdownClickHdl ( aLink );
309*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetSelectHdl ( aLink );
310*b1cdbd2cSJim Jagielski 	mpTBLineStyle->Disable();
311*b1cdbd2cSJim Jagielski 
312*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetItemImage(TBI_LINE_COLOR, maIMGLineColor);
313*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetItemBits( TBI_LINE_COLOR, mpTBLineColor->GetItemBits( TBI_LINE_COLOR ) | TIB_DROPDOWNONLY );
314*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetQuickHelpText(TBI_LINE_COLOR,String(ScResId(STR_QH_BORDER_LINE_COLOR)));	//Add
315*b1cdbd2cSJim Jagielski 	Size aTbxSize4( mpTBLineColor->CalcWindowSizePixel() );
316*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetOutputSizePixel( aTbxSize4 );
317*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetBackground(Wallpaper());
318*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetPaintTransparent(true);
319*b1cdbd2cSJim Jagielski 	aLink = LINK(this, CellAppearancePropertyPanel, TbxLineColorSelectHdl);
320*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetDropdownClickHdl ( aLink );
321*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetSelectHdl ( aLink );
322*b1cdbd2cSJim Jagielski 	mpTBLineColor->Disable();
323*b1cdbd2cSJim Jagielski 
324*b1cdbd2cSJim Jagielski 	aLink = LINK(this, CellAppearancePropertyPanel, CBOXGridShowClkHdl);
325*b1cdbd2cSJim Jagielski 	mpCBXShowGrid->SetClickHdl ( aLink );
326*b1cdbd2cSJim Jagielski 
327*b1cdbd2cSJim Jagielski 	mpTBFillColor->SetAccessibleRelationLabeledBy(mpFTFillColor.get());
328*b1cdbd2cSJim Jagielski 	mpTBLineColor->SetAccessibleRelationLabeledBy(mpTBLineColor.get());
329*b1cdbd2cSJim Jagielski 	mpTBCellBorder->SetAccessibleRelationLabeledBy(mpFTCellBorder.get());
330*b1cdbd2cSJim Jagielski 	mpTBLineStyle->SetAccessibleRelationLabeledBy(mpTBLineStyle.get());
331*b1cdbd2cSJim Jagielski }
332*b1cdbd2cSJim Jagielski 
333*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
334*b1cdbd2cSJim Jagielski 
IMPL_LINK(CellAppearancePropertyPanel,TbxBKColorSelectHdl,ToolBox *,pToolBox)335*b1cdbd2cSJim Jagielski IMPL_LINK(CellAppearancePropertyPanel, TbxBKColorSelectHdl, ToolBox*, pToolBox)
336*b1cdbd2cSJim Jagielski {
337*b1cdbd2cSJim Jagielski 	sal_uInt16 nId = pToolBox->GetCurItemId();
338*b1cdbd2cSJim Jagielski 	if(nId == TBI_BK_COLOR)
339*b1cdbd2cSJim Jagielski 	{
340*b1cdbd2cSJim Jagielski         maFillColorPopup.Show(*pToolBox);
341*b1cdbd2cSJim Jagielski         maFillColorPopup.SetCurrentColor(maBackColor, mbBackColorAvailable);
342*b1cdbd2cSJim Jagielski 	}
343*b1cdbd2cSJim Jagielski 	return 0;
344*b1cdbd2cSJim Jagielski }
345*b1cdbd2cSJim Jagielski 
346*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
347*b1cdbd2cSJim Jagielski 
IMPL_LINK(CellAppearancePropertyPanel,TbxLineColorSelectHdl,ToolBox *,pToolBox)348*b1cdbd2cSJim Jagielski IMPL_LINK(CellAppearancePropertyPanel, TbxLineColorSelectHdl, ToolBox*, pToolBox)
349*b1cdbd2cSJim Jagielski {
350*b1cdbd2cSJim Jagielski 	sal_uInt16 nId = pToolBox->GetCurItemId();
351*b1cdbd2cSJim Jagielski 	if(nId == TBI_LINE_COLOR)
352*b1cdbd2cSJim Jagielski 	{
353*b1cdbd2cSJim Jagielski         maLineColorPopup.Show(*pToolBox);
354*b1cdbd2cSJim Jagielski         maLineColorPopup.SetCurrentColor(maLineColor, mbLineColorAvailable);
355*b1cdbd2cSJim Jagielski 	}
356*b1cdbd2cSJim Jagielski 	return 0;
357*b1cdbd2cSJim Jagielski }
358*b1cdbd2cSJim Jagielski 
359*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
360*b1cdbd2cSJim Jagielski 
IMPL_LINK(CellAppearancePropertyPanel,TbxCellBorderSelectHdl,ToolBox *,pToolBox)361*b1cdbd2cSJim Jagielski IMPL_LINK(CellAppearancePropertyPanel, TbxCellBorderSelectHdl, ToolBox*, pToolBox)
362*b1cdbd2cSJim Jagielski {
363*b1cdbd2cSJim Jagielski 	sal_uInt16 nId = pToolBox->GetCurItemId();
364*b1cdbd2cSJim Jagielski 
365*b1cdbd2cSJim Jagielski     if(nId == TBI_BORDER)
366*b1cdbd2cSJim Jagielski 	{
367*b1cdbd2cSJim Jagielski         // create popup on demand
368*b1cdbd2cSJim Jagielski         if(!mpCellBorderStylePopup.get())
369*b1cdbd2cSJim Jagielski         {
370*b1cdbd2cSJim Jagielski             mpCellBorderStylePopup.reset(
371*b1cdbd2cSJim Jagielski                 new CellBorderStylePopup(
372*b1cdbd2cSJim Jagielski                     this,
373*b1cdbd2cSJim Jagielski                     ::boost::bind(&CellAppearancePropertyPanel::CreateCellBorderStylePopupControl, this, _1)));
374*b1cdbd2cSJim Jagielski         }
375*b1cdbd2cSJim Jagielski 
376*b1cdbd2cSJim Jagielski         if(mpCellBorderStylePopup.get())
377*b1cdbd2cSJim Jagielski         {
378*b1cdbd2cSJim Jagielski             mpCellBorderStylePopup->Show(*pToolBox);
379*b1cdbd2cSJim Jagielski         }
380*b1cdbd2cSJim Jagielski 	}
381*b1cdbd2cSJim Jagielski 	return 0;
382*b1cdbd2cSJim Jagielski }
383*b1cdbd2cSJim Jagielski 
384*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
385*b1cdbd2cSJim Jagielski 
IMPL_LINK(CellAppearancePropertyPanel,TbxLineStyleSelectHdl,ToolBox *,pToolBox)386*b1cdbd2cSJim Jagielski IMPL_LINK(CellAppearancePropertyPanel, TbxLineStyleSelectHdl, ToolBox*, pToolBox)
387*b1cdbd2cSJim Jagielski {
388*b1cdbd2cSJim Jagielski 	sal_uInt16 nId = pToolBox->GetCurItemId();
389*b1cdbd2cSJim Jagielski 	if(nId == TBI_LINE_STYLE)
390*b1cdbd2cSJim Jagielski 	{
391*b1cdbd2cSJim Jagielski         // create popup on demand
392*b1cdbd2cSJim Jagielski         if(!mpCellLineStylePopup.get())
393*b1cdbd2cSJim Jagielski         {
394*b1cdbd2cSJim Jagielski             mpCellLineStylePopup.reset(
395*b1cdbd2cSJim Jagielski                 new CellLineStylePopup(
396*b1cdbd2cSJim Jagielski                     this,
397*b1cdbd2cSJim Jagielski                     ::boost::bind(&CellAppearancePropertyPanel::CreateCellLineStylePopupControl, this, _1)));
398*b1cdbd2cSJim Jagielski         }
399*b1cdbd2cSJim Jagielski 
400*b1cdbd2cSJim Jagielski         if(mpCellLineStylePopup.get())
401*b1cdbd2cSJim Jagielski         {
402*b1cdbd2cSJim Jagielski             mpCellLineStylePopup->SetLineStyleSelect(mnOut, mnIn, mnDis);
403*b1cdbd2cSJim Jagielski             mpCellLineStylePopup->Show(*pToolBox);
404*b1cdbd2cSJim Jagielski         }
405*b1cdbd2cSJim Jagielski 	}
406*b1cdbd2cSJim Jagielski 	return 0;
407*b1cdbd2cSJim Jagielski }
408*b1cdbd2cSJim Jagielski 
409*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
410*b1cdbd2cSJim Jagielski 
IMPL_LINK(CellAppearancePropertyPanel,CBOXGridShowClkHdl,void *,EMPTYARG)411*b1cdbd2cSJim Jagielski IMPL_LINK(CellAppearancePropertyPanel, CBOXGridShowClkHdl, void*, EMPTYARG)
412*b1cdbd2cSJim Jagielski {
413*b1cdbd2cSJim Jagielski 	bool bState = mpCBXShowGrid->IsChecked();
414*b1cdbd2cSJim Jagielski 	SfxBoolItem aItem( SID_SCGRIDSHOW , bState);
415*b1cdbd2cSJim Jagielski 	GetBindings()->GetDispatcher()->Execute(SID_SCGRIDSHOW, SFX_CALLMODE_RECORD, &aItem, false, 0L);
416*b1cdbd2cSJim Jagielski 	return 0;
417*b1cdbd2cSJim Jagielski }
418*b1cdbd2cSJim Jagielski 
419*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
420*b1cdbd2cSJim Jagielski 
Create(Window * pParent,const cssu::Reference<css::frame::XFrame> & rxFrame,SfxBindings * pBindings)421*b1cdbd2cSJim Jagielski CellAppearancePropertyPanel* CellAppearancePropertyPanel::Create (
422*b1cdbd2cSJim Jagielski     Window* pParent,
423*b1cdbd2cSJim Jagielski     const cssu::Reference<css::frame::XFrame>& rxFrame,
424*b1cdbd2cSJim Jagielski     SfxBindings* pBindings)
425*b1cdbd2cSJim Jagielski {
426*b1cdbd2cSJim Jagielski     if (pParent == NULL)
427*b1cdbd2cSJim Jagielski         throw lang::IllegalArgumentException(A2S("no parent Window given to CellAppearancePropertyPanel::Create"), NULL, 0);
428*b1cdbd2cSJim Jagielski     if ( ! rxFrame.is())
429*b1cdbd2cSJim Jagielski         throw lang::IllegalArgumentException(A2S("no XFrame given to CellAppearancePropertyPanel::Create"), NULL, 1);
430*b1cdbd2cSJim Jagielski     if (pBindings == NULL)
431*b1cdbd2cSJim Jagielski         throw lang::IllegalArgumentException(A2S("no SfxBindings given to CellAppearancePropertyPanel::Create"), NULL, 2);
432*b1cdbd2cSJim Jagielski 
433*b1cdbd2cSJim Jagielski     return new CellAppearancePropertyPanel(
434*b1cdbd2cSJim Jagielski         pParent,
435*b1cdbd2cSJim Jagielski         rxFrame,
436*b1cdbd2cSJim Jagielski         pBindings);
437*b1cdbd2cSJim Jagielski }
438*b1cdbd2cSJim Jagielski 
439*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
440*b1cdbd2cSJim Jagielski 
DataChanged(const DataChangedEvent & rEvent)441*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::DataChanged(
442*b1cdbd2cSJim Jagielski     const DataChangedEvent& rEvent)
443*b1cdbd2cSJim Jagielski {
444*b1cdbd2cSJim Jagielski     (void)rEvent;
445*b1cdbd2cSJim Jagielski }
446*b1cdbd2cSJim Jagielski 
447*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
448*b1cdbd2cSJim Jagielski 
HandleContextChange(const::sfx2::sidebar::EnumContext aContext)449*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::HandleContextChange(
450*b1cdbd2cSJim Jagielski     const ::sfx2::sidebar::EnumContext aContext)
451*b1cdbd2cSJim Jagielski {
452*b1cdbd2cSJim Jagielski     if(maContext == aContext)
453*b1cdbd2cSJim Jagielski     {
454*b1cdbd2cSJim Jagielski         // Nothing to do.
455*b1cdbd2cSJim Jagielski         return;
456*b1cdbd2cSJim Jagielski     }
457*b1cdbd2cSJim Jagielski 
458*b1cdbd2cSJim Jagielski     maContext = aContext;
459*b1cdbd2cSJim Jagielski 
460*b1cdbd2cSJim Jagielski 
461*b1cdbd2cSJim Jagielski 
462*b1cdbd2cSJim Jagielski     // todo
463*b1cdbd2cSJim Jagielski }
464*b1cdbd2cSJim Jagielski 
465*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
466*b1cdbd2cSJim Jagielski 
NotifyItemUpdate(sal_uInt16 nSID,SfxItemState eState,const SfxPoolItem * pState,const bool bIsEnabled)467*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::NotifyItemUpdate(
468*b1cdbd2cSJim Jagielski     sal_uInt16 nSID,
469*b1cdbd2cSJim Jagielski     SfxItemState eState,
470*b1cdbd2cSJim Jagielski     const SfxPoolItem* pState,
471*b1cdbd2cSJim Jagielski     const bool bIsEnabled)
472*b1cdbd2cSJim Jagielski {
473*b1cdbd2cSJim Jagielski     (void)bIsEnabled;
474*b1cdbd2cSJim Jagielski 
475*b1cdbd2cSJim Jagielski 	switch(nSID)
476*b1cdbd2cSJim Jagielski 	{
477*b1cdbd2cSJim Jagielski 	case SID_BACKGROUND_COLOR:
478*b1cdbd2cSJim Jagielski 		if(eState >= SFX_ITEM_DEFAULT)
479*b1cdbd2cSJim Jagielski 		{
480*b1cdbd2cSJim Jagielski             const SvxColorItem* pSvxColorItem = dynamic_cast< const SvxColorItem* >(pState);
481*b1cdbd2cSJim Jagielski 
482*b1cdbd2cSJim Jagielski             if(pSvxColorItem)
483*b1cdbd2cSJim Jagielski             {
484*b1cdbd2cSJim Jagielski 			    maBackColor = ((const SvxColorItem*)pState)->GetValue();
485*b1cdbd2cSJim Jagielski 			    mbBackColorAvailable = true;
486*b1cdbd2cSJim Jagielski 			    mpFillColorUpdater->Update(maBackColor);
487*b1cdbd2cSJim Jagielski                 break;
488*b1cdbd2cSJim Jagielski             }
489*b1cdbd2cSJim Jagielski 		}
490*b1cdbd2cSJim Jagielski 
491*b1cdbd2cSJim Jagielski         mbBackColorAvailable = false;
492*b1cdbd2cSJim Jagielski 		maBackColor.SetColor(COL_TRANSPARENT);
493*b1cdbd2cSJim Jagielski 		mpFillColorUpdater->Update(COL_TRANSPARENT);
494*b1cdbd2cSJim Jagielski         break;
495*b1cdbd2cSJim Jagielski 	case SID_FRAME_LINECOLOR:
496*b1cdbd2cSJim Jagielski 		if( eState == SFX_ITEM_DONTCARE)
497*b1cdbd2cSJim Jagielski 		{
498*b1cdbd2cSJim Jagielski 			mbLineColorAvailable = true;
499*b1cdbd2cSJim Jagielski 			maLineColor.SetColor( COL_TRANSPARENT );
500*b1cdbd2cSJim Jagielski     		UpdateControlState();
501*b1cdbd2cSJim Jagielski             break;
502*b1cdbd2cSJim Jagielski 		}
503*b1cdbd2cSJim Jagielski 
504*b1cdbd2cSJim Jagielski         if(eState >= SFX_ITEM_DEFAULT && pState && pState->ISA(SvxColorItem) )
505*b1cdbd2cSJim Jagielski 		{
506*b1cdbd2cSJim Jagielski             const SvxColorItem* pSvxColorItem = dynamic_cast< const SvxColorItem* >(pState);
507*b1cdbd2cSJim Jagielski 
508*b1cdbd2cSJim Jagielski             if(pSvxColorItem)
509*b1cdbd2cSJim Jagielski             {
510*b1cdbd2cSJim Jagielski 			    maLineColor = ((const SvxColorItem*)pState)->GetValue();
511*b1cdbd2cSJim Jagielski 			    if(maLineColor == COL_AUTO)
512*b1cdbd2cSJim Jagielski 				    mbLineColorAvailable = false;
513*b1cdbd2cSJim Jagielski 			    else
514*b1cdbd2cSJim Jagielski 			    {
515*b1cdbd2cSJim Jagielski 				    mbLineColorAvailable = true;
516*b1cdbd2cSJim Jagielski 			    //	mpLineColorUpdater->Update(maLineColor);
517*b1cdbd2cSJim Jagielski 			    }
518*b1cdbd2cSJim Jagielski 
519*b1cdbd2cSJim Jagielski                 UpdateControlState();
520*b1cdbd2cSJim Jagielski                 break;
521*b1cdbd2cSJim Jagielski             }
522*b1cdbd2cSJim Jagielski 		}
523*b1cdbd2cSJim Jagielski 
524*b1cdbd2cSJim Jagielski         mbLineColorAvailable = false;
525*b1cdbd2cSJim Jagielski 		maLineColor.SetColor(COL_AUTO);
526*b1cdbd2cSJim Jagielski 	    //	mpLineColorUpdater->Update(maLineColor);
527*b1cdbd2cSJim Jagielski 		UpdateControlState();
528*b1cdbd2cSJim Jagielski 		break;
529*b1cdbd2cSJim Jagielski 	case SID_FRAME_LINESTYLE:
530*b1cdbd2cSJim Jagielski 		if( eState == SFX_ITEM_DONTCARE )
531*b1cdbd2cSJim Jagielski 		{
532*b1cdbd2cSJim Jagielski 			mbBorderStyleAvailable = true;
533*b1cdbd2cSJim Jagielski 			mnIn = 0;
534*b1cdbd2cSJim Jagielski 			mnOut = 0;
535*b1cdbd2cSJim Jagielski 			mnDis = 0;
536*b1cdbd2cSJim Jagielski     		SetStyleIcon();
537*b1cdbd2cSJim Jagielski             break;
538*b1cdbd2cSJim Jagielski 		}
539*b1cdbd2cSJim Jagielski 
540*b1cdbd2cSJim Jagielski         if(eState >= SFX_ITEM_DEFAULT)
541*b1cdbd2cSJim Jagielski 		{
542*b1cdbd2cSJim Jagielski             const SvxLineItem* pSvxLineItem = dynamic_cast< const SvxLineItem* >(pState);
543*b1cdbd2cSJim Jagielski 
544*b1cdbd2cSJim Jagielski             if(pSvxLineItem)
545*b1cdbd2cSJim Jagielski             {
546*b1cdbd2cSJim Jagielski 			    const SvxBorderLine* mbLineItem = pSvxLineItem->GetLine();
547*b1cdbd2cSJim Jagielski 			    mnIn = mbLineItem->GetInWidth();
548*b1cdbd2cSJim Jagielski 			    mnOut = mbLineItem->GetOutWidth();
549*b1cdbd2cSJim Jagielski 			    mnDis = mbLineItem->GetDistance();
550*b1cdbd2cSJim Jagielski 
551*b1cdbd2cSJim Jagielski                 if(mnIn == 0 && mnOut == 0 && mnDis == 0)
552*b1cdbd2cSJim Jagielski 				    mbBorderStyleAvailable = false;
553*b1cdbd2cSJim Jagielski 			    else
554*b1cdbd2cSJim Jagielski 				    mbBorderStyleAvailable = true;
555*b1cdbd2cSJim Jagielski 
556*b1cdbd2cSJim Jagielski                 SetStyleIcon();
557*b1cdbd2cSJim Jagielski                 break;
558*b1cdbd2cSJim Jagielski             }
559*b1cdbd2cSJim Jagielski 		}
560*b1cdbd2cSJim Jagielski 
561*b1cdbd2cSJim Jagielski 		mbBorderStyleAvailable = false;
562*b1cdbd2cSJim Jagielski 		SetStyleIcon();
563*b1cdbd2cSJim Jagielski 		break;
564*b1cdbd2cSJim Jagielski 	case SID_ATTR_BORDER_OUTER:
565*b1cdbd2cSJim Jagielski 		if(eState >= SFX_ITEM_DEFAULT)
566*b1cdbd2cSJim Jagielski 		{
567*b1cdbd2cSJim Jagielski 			const SvxBoxItem* pBoxItem = dynamic_cast< const SvxBoxItem* >(pState);
568*b1cdbd2cSJim Jagielski 
569*b1cdbd2cSJim Jagielski             if(pBoxItem)
570*b1cdbd2cSJim Jagielski             {
571*b1cdbd2cSJim Jagielski 			    mbLeft=false, mbRight=false, mbTop=false, mbBottom=false;
572*b1cdbd2cSJim Jagielski 
573*b1cdbd2cSJim Jagielski 			    if(pBoxItem->GetLeft())
574*b1cdbd2cSJim Jagielski 				    mbLeft = true;
575*b1cdbd2cSJim Jagielski 
576*b1cdbd2cSJim Jagielski                 if(pBoxItem->GetRight())
577*b1cdbd2cSJim Jagielski 				    mbRight = true;
578*b1cdbd2cSJim Jagielski 
579*b1cdbd2cSJim Jagielski                 if(pBoxItem->GetTop())
580*b1cdbd2cSJim Jagielski 				    mbTop = true;
581*b1cdbd2cSJim Jagielski 
582*b1cdbd2cSJim Jagielski                 if(pBoxItem->GetBottom())
583*b1cdbd2cSJim Jagielski 				    mbBottom = true;
584*b1cdbd2cSJim Jagielski 
585*b1cdbd2cSJim Jagielski                 if(!Application::GetSettings().GetLayoutRTL())
586*b1cdbd2cSJim Jagielski 				    mpCellBorderUpdater->UpdateCellBorder(mbTop, mbBottom, mbLeft, mbRight, maIMGCellBorder, mbVer, mbHor);
587*b1cdbd2cSJim Jagielski 			    else
588*b1cdbd2cSJim Jagielski 				    mpCellBorderUpdater->UpdateCellBorder(mbTop, mbBottom, mbRight, mbLeft, maIMGCellBorder, mbVer, mbHor);
589*b1cdbd2cSJim Jagielski 
590*b1cdbd2cSJim Jagielski                 if(mbLeft || mbRight || mbTop || mbBottom)
591*b1cdbd2cSJim Jagielski 				    mbOuterBorder = true;
592*b1cdbd2cSJim Jagielski 			    else
593*b1cdbd2cSJim Jagielski 				    mbOuterBorder = false;
594*b1cdbd2cSJim Jagielski 
595*b1cdbd2cSJim Jagielski                 UpdateControlState();
596*b1cdbd2cSJim Jagielski             }
597*b1cdbd2cSJim Jagielski 		}
598*b1cdbd2cSJim Jagielski 		break;
599*b1cdbd2cSJim Jagielski 	case SID_ATTR_BORDER_INNER:
600*b1cdbd2cSJim Jagielski 		if(eState >= SFX_ITEM_DEFAULT)
601*b1cdbd2cSJim Jagielski 		{
602*b1cdbd2cSJim Jagielski 			const SvxBoxInfoItem* pBoxInfoItem = dynamic_cast< const SvxBoxInfoItem* >(pState);
603*b1cdbd2cSJim Jagielski 
604*b1cdbd2cSJim Jagielski             if(pBoxInfoItem)
605*b1cdbd2cSJim Jagielski             {
606*b1cdbd2cSJim Jagielski 			    bool bLeft(false), bRight(false), bTop(false), bBottom(false);
607*b1cdbd2cSJim Jagielski 
608*b1cdbd2cSJim Jagielski 			    mbVer = false, mbHor = false;
609*b1cdbd2cSJim Jagielski 
610*b1cdbd2cSJim Jagielski                 if(!pBoxInfoItem->IsValid( VALID_VERT )  || pBoxInfoItem->GetVert())
611*b1cdbd2cSJim Jagielski 				    mbVer = true;
612*b1cdbd2cSJim Jagielski 
613*b1cdbd2cSJim Jagielski 			    if(!pBoxInfoItem->IsValid( VALID_HORI )  || pBoxInfoItem->GetHori())
614*b1cdbd2cSJim Jagielski 				    mbHor = true;
615*b1cdbd2cSJim Jagielski 
616*b1cdbd2cSJim Jagielski 			    if(!pBoxInfoItem->IsValid( VALID_LEFT ) || mbLeft)
617*b1cdbd2cSJim Jagielski 				    bLeft = true;
618*b1cdbd2cSJim Jagielski 
619*b1cdbd2cSJim Jagielski 			    if(!pBoxInfoItem->IsValid( VALID_RIGHT ) || mbRight)
620*b1cdbd2cSJim Jagielski 				    bRight = true;
621*b1cdbd2cSJim Jagielski 
622*b1cdbd2cSJim Jagielski 			    if(!pBoxInfoItem->IsValid( VALID_TOP ) || mbTop)
623*b1cdbd2cSJim Jagielski 				    bTop = true;
624*b1cdbd2cSJim Jagielski 
625*b1cdbd2cSJim Jagielski 			    if(!pBoxInfoItem->IsValid( VALID_BOTTOM ) || mbBottom)
626*b1cdbd2cSJim Jagielski 				    bBottom = true;
627*b1cdbd2cSJim Jagielski 
628*b1cdbd2cSJim Jagielski                 if(!Application::GetSettings().GetLayoutRTL())
629*b1cdbd2cSJim Jagielski 				    mpCellBorderUpdater->UpdateCellBorder(bTop, bBottom, bLeft, bRight, maIMGCellBorder, mbVer, mbHor);
630*b1cdbd2cSJim Jagielski 			    else
631*b1cdbd2cSJim Jagielski 				    mpCellBorderUpdater->UpdateCellBorder(bTop, bBottom, bRight, bLeft, maIMGCellBorder, mbVer, mbHor);
632*b1cdbd2cSJim Jagielski 
633*b1cdbd2cSJim Jagielski                 if(mbVer || mbHor || bLeft || bRight || bTop || bBottom)
634*b1cdbd2cSJim Jagielski 				    mbInnerBorder = true;
635*b1cdbd2cSJim Jagielski 			    else
636*b1cdbd2cSJim Jagielski 				    mbInnerBorder = false;
637*b1cdbd2cSJim Jagielski 
638*b1cdbd2cSJim Jagielski                 UpdateControlState();
639*b1cdbd2cSJim Jagielski             }
640*b1cdbd2cSJim Jagielski 		}
641*b1cdbd2cSJim Jagielski 		break;
642*b1cdbd2cSJim Jagielski 	case SID_ATTR_BORDER_DIAG_TLBR:
643*b1cdbd2cSJim Jagielski 		if( eState == SFX_ITEM_DONTCARE )
644*b1cdbd2cSJim Jagielski 		{
645*b1cdbd2cSJim Jagielski 			mbTLBR = true;
646*b1cdbd2cSJim Jagielski 			maTLBRColor.SetColor(COL_TRANSPARENT);
647*b1cdbd2cSJim Jagielski 			mnTLBRIn = mnTLBROut = mnTLBRDis = 0;
648*b1cdbd2cSJim Jagielski     		UpdateControlState();
649*b1cdbd2cSJim Jagielski             break;
650*b1cdbd2cSJim Jagielski 		}
651*b1cdbd2cSJim Jagielski 
652*b1cdbd2cSJim Jagielski         if(eState >= SFX_ITEM_DEFAULT)
653*b1cdbd2cSJim Jagielski 		{
654*b1cdbd2cSJim Jagielski 			const SvxLineItem* pItem = dynamic_cast< const SvxLineItem* >(pState);
655*b1cdbd2cSJim Jagielski 
656*b1cdbd2cSJim Jagielski             if(pItem)
657*b1cdbd2cSJim Jagielski             {
658*b1cdbd2cSJim Jagielski 			    const SvxBorderLine* aLine = pItem->GetLine();
659*b1cdbd2cSJim Jagielski 
660*b1cdbd2cSJim Jagielski                 if(!aLine)
661*b1cdbd2cSJim Jagielski                 {
662*b1cdbd2cSJim Jagielski 				    mbTLBR = false;
663*b1cdbd2cSJim Jagielski                 }
664*b1cdbd2cSJim Jagielski 			    else
665*b1cdbd2cSJim Jagielski 			    {
666*b1cdbd2cSJim Jagielski 				    mbTLBR = true;
667*b1cdbd2cSJim Jagielski 				    maTLBRColor = aLine->GetColor();
668*b1cdbd2cSJim Jagielski 				    mnTLBRIn = aLine->GetInWidth();
669*b1cdbd2cSJim Jagielski 				    mnTLBROut = aLine->GetOutWidth();
670*b1cdbd2cSJim Jagielski 				    mnTLBRDis = aLine->GetDistance();
671*b1cdbd2cSJim Jagielski 
672*b1cdbd2cSJim Jagielski                     if(mnTLBRIn == 0 && mnTLBROut == 0 && mnTLBRDis == 0)
673*b1cdbd2cSJim Jagielski 					    mbTLBR = false;
674*b1cdbd2cSJim Jagielski 			    }
675*b1cdbd2cSJim Jagielski 
676*b1cdbd2cSJim Jagielski                 UpdateControlState();
677*b1cdbd2cSJim Jagielski                 break;
678*b1cdbd2cSJim Jagielski             }
679*b1cdbd2cSJim Jagielski 		}
680*b1cdbd2cSJim Jagielski 
681*b1cdbd2cSJim Jagielski         mbTLBR = false;
682*b1cdbd2cSJim Jagielski 		UpdateControlState();
683*b1cdbd2cSJim Jagielski 		break;
684*b1cdbd2cSJim Jagielski 	case SID_ATTR_BORDER_DIAG_BLTR:
685*b1cdbd2cSJim Jagielski 		if( eState == SFX_ITEM_DONTCARE )
686*b1cdbd2cSJim Jagielski 		{
687*b1cdbd2cSJim Jagielski 			mbBLTR = true;
688*b1cdbd2cSJim Jagielski 			maBLTRColor.SetColor( COL_TRANSPARENT );
689*b1cdbd2cSJim Jagielski 			mnBLTRIn = mnBLTROut = mnBLTRDis = 0;
690*b1cdbd2cSJim Jagielski     		UpdateControlState();
691*b1cdbd2cSJim Jagielski             break;
692*b1cdbd2cSJim Jagielski 		}
693*b1cdbd2cSJim Jagielski 
694*b1cdbd2cSJim Jagielski         if(eState >= SFX_ITEM_DEFAULT)
695*b1cdbd2cSJim Jagielski 		{
696*b1cdbd2cSJim Jagielski 			const SvxLineItem* pItem = dynamic_cast< const SvxLineItem* >(pState);
697*b1cdbd2cSJim Jagielski 
698*b1cdbd2cSJim Jagielski             if(pItem)
699*b1cdbd2cSJim Jagielski             {
700*b1cdbd2cSJim Jagielski 			    const SvxBorderLine* aLine = pItem->GetLine();
701*b1cdbd2cSJim Jagielski 
702*b1cdbd2cSJim Jagielski                 if(!aLine)
703*b1cdbd2cSJim Jagielski                 {
704*b1cdbd2cSJim Jagielski 				    mbBLTR = false;
705*b1cdbd2cSJim Jagielski                 }
706*b1cdbd2cSJim Jagielski 			    else
707*b1cdbd2cSJim Jagielski 			    {
708*b1cdbd2cSJim Jagielski 				    mbBLTR = true;
709*b1cdbd2cSJim Jagielski 				    maBLTRColor = aLine->GetColor();
710*b1cdbd2cSJim Jagielski 				    mnBLTRIn = aLine->GetInWidth();
711*b1cdbd2cSJim Jagielski 				    mnBLTROut = aLine->GetOutWidth();
712*b1cdbd2cSJim Jagielski 				    mnBLTRDis = aLine->GetDistance();
713*b1cdbd2cSJim Jagielski 
714*b1cdbd2cSJim Jagielski                     if(mnBLTRIn == 0 && mnBLTROut == 0 && mnBLTRDis == 0)
715*b1cdbd2cSJim Jagielski 					    mbBLTR = false;
716*b1cdbd2cSJim Jagielski 			    }
717*b1cdbd2cSJim Jagielski 
718*b1cdbd2cSJim Jagielski                 UpdateControlState();
719*b1cdbd2cSJim Jagielski             }
720*b1cdbd2cSJim Jagielski             break;
721*b1cdbd2cSJim Jagielski 		}
722*b1cdbd2cSJim Jagielski 
723*b1cdbd2cSJim Jagielski         mbBLTR = false;
724*b1cdbd2cSJim Jagielski 		UpdateControlState();
725*b1cdbd2cSJim Jagielski 		break;
726*b1cdbd2cSJim Jagielski 	case SID_SCGRIDSHOW:
727*b1cdbd2cSJim Jagielski 		if(eState >= SFX_ITEM_DEFAULT)
728*b1cdbd2cSJim Jagielski 		{
729*b1cdbd2cSJim Jagielski 			const SfxBoolItem* pItem = dynamic_cast< const SfxBoolItem* >(pState);
730*b1cdbd2cSJim Jagielski 
731*b1cdbd2cSJim Jagielski             if(pItem)
732*b1cdbd2cSJim Jagielski             {
733*b1cdbd2cSJim Jagielski 			    const bool bVal = pItem->GetValue();
734*b1cdbd2cSJim Jagielski 
735*b1cdbd2cSJim Jagielski 			    if(bVal)
736*b1cdbd2cSJim Jagielski 				    mpCBXShowGrid->Check(true);
737*b1cdbd2cSJim Jagielski 			    else
738*b1cdbd2cSJim Jagielski 				    mpCBXShowGrid->Check(false);
739*b1cdbd2cSJim Jagielski             }
740*b1cdbd2cSJim Jagielski 		}
741*b1cdbd2cSJim Jagielski 		break;
742*b1cdbd2cSJim Jagielski 	}
743*b1cdbd2cSJim Jagielski }
744*b1cdbd2cSJim Jagielski 
745*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
746*b1cdbd2cSJim Jagielski 
GetBindings()747*b1cdbd2cSJim Jagielski SfxBindings* CellAppearancePropertyPanel::GetBindings()
748*b1cdbd2cSJim Jagielski {
749*b1cdbd2cSJim Jagielski     return mpBindings;
750*b1cdbd2cSJim Jagielski }
751*b1cdbd2cSJim Jagielski 
752*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
753*b1cdbd2cSJim Jagielski 
SetStyleIcon()754*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::SetStyleIcon()
755*b1cdbd2cSJim Jagielski {
756*b1cdbd2cSJim Jagielski 	if(mnOut == DEF_LINE_WIDTH_0 && mnIn == 0 && mnDis == 0)	//1
757*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle1H : maIMGLineStyle1);
758*b1cdbd2cSJim Jagielski 	else if(mnOut == DEF_LINE_WIDTH_2 && mnIn == 0 && mnDis == 0) //2
759*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle2H :maIMGLineStyle2);
760*b1cdbd2cSJim Jagielski 	else if(mnOut == DEF_LINE_WIDTH_3 && mnIn == 0 && mnDis == 0) //3
761*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle3H :maIMGLineStyle3);
762*b1cdbd2cSJim Jagielski 	else if(mnOut == DEF_LINE_WIDTH_4 && mnIn == 0 && mnDis == 0) //4
763*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle4H :maIMGLineStyle4);
764*b1cdbd2cSJim Jagielski 	else if(mnOut == DEF_DOUBLE_LINE0_OUT && mnIn == DEF_DOUBLE_LINE0_IN && mnDis == DEF_DOUBLE_LINE0_DIST) //5
765*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle5H :maIMGLineStyle5);
766*b1cdbd2cSJim Jagielski 	else if(mnOut == DEF_DOUBLE_LINE7_OUT && mnIn == DEF_DOUBLE_LINE7_IN && mnDis == DEF_DOUBLE_LINE7_DIST) //6
767*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle6H :maIMGLineStyle6);
768*b1cdbd2cSJim Jagielski 	else if(mnOut == DEF_DOUBLE_LINE4_OUT && mnIn == DEF_DOUBLE_LINE4_IN && mnDis == DEF_DOUBLE_LINE4_DIST) //7
769*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle7H :maIMGLineStyle7);
770*b1cdbd2cSJim Jagielski 	else if(mnOut == DEF_DOUBLE_LINE9_OUT && mnIn == DEF_DOUBLE_LINE9_IN && mnDis == DEF_DOUBLE_LINE9_DIST) //8
771*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle8H :maIMGLineStyle8);
772*b1cdbd2cSJim Jagielski 	else if(mnOut == DEF_DOUBLE_LINE2_OUT && mnIn == DEF_DOUBLE_LINE2_IN && mnDis == DEF_DOUBLE_LINE2_DIST) //9
773*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle9H :maIMGLineStyle9);
774*b1cdbd2cSJim Jagielski 	else
775*b1cdbd2cSJim Jagielski 		mpTBLineStyle->SetItemImage(TBI_LINE_STYLE, GetDisplayBackground().GetColor().IsDark() ? maIMGLineStyle1H :maIMGLineStyle1);
776*b1cdbd2cSJim Jagielski }
777*b1cdbd2cSJim Jagielski 
778*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
779*b1cdbd2cSJim Jagielski 
UpdateControlState()780*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::UpdateControlState()
781*b1cdbd2cSJim Jagielski {
782*b1cdbd2cSJim Jagielski 	if(mbOuterBorder || mbInnerBorder || mbTLBR || mbBLTR)
783*b1cdbd2cSJim Jagielski 	{
784*b1cdbd2cSJim Jagielski 		mpTBLineColor->Enable();
785*b1cdbd2cSJim Jagielski 		mpTBLineStyle->Enable();
786*b1cdbd2cSJim Jagielski 
787*b1cdbd2cSJim Jagielski 		//set line color state
788*b1cdbd2cSJim Jagielski 		if( mbLineColorAvailable && !mbTLBR && !mbBLTR )
789*b1cdbd2cSJim Jagielski 			mpLineColorUpdater->Update(maLineColor);
790*b1cdbd2cSJim Jagielski 		else if( !mbLineColorAvailable && mbTLBR && !mbBLTR )
791*b1cdbd2cSJim Jagielski 			mpLineColorUpdater->Update(maTLBRColor);
792*b1cdbd2cSJim Jagielski 		else if ( !mbLineColorAvailable && !mbTLBR && mbBLTR )
793*b1cdbd2cSJim Jagielski 			mpLineColorUpdater->Update(maBLTRColor);
794*b1cdbd2cSJim Jagielski 		else if( !mbLineColorAvailable && mbTLBR && mbBLTR)
795*b1cdbd2cSJim Jagielski 		{
796*b1cdbd2cSJim Jagielski 			if( maTLBRColor == maBLTRColor)
797*b1cdbd2cSJim Jagielski 				mpLineColorUpdater->Update(maBLTRColor);
798*b1cdbd2cSJim Jagielski 			else
799*b1cdbd2cSJim Jagielski 				mpLineColorUpdater->Update(COL_TRANSPARENT);
800*b1cdbd2cSJim Jagielski 		}
801*b1cdbd2cSJim Jagielski 		else if( mbLineColorAvailable && mbTLBR && !mbBLTR )
802*b1cdbd2cSJim Jagielski 		{
803*b1cdbd2cSJim Jagielski 			if( maTLBRColor == maLineColor)
804*b1cdbd2cSJim Jagielski 				mpLineColorUpdater->Update(maLineColor);
805*b1cdbd2cSJim Jagielski 			else
806*b1cdbd2cSJim Jagielski 				mpLineColorUpdater->Update(COL_TRANSPARENT);
807*b1cdbd2cSJim Jagielski 		}
808*b1cdbd2cSJim Jagielski 		else if( mbLineColorAvailable && !mbTLBR && mbBLTR )
809*b1cdbd2cSJim Jagielski 		{
810*b1cdbd2cSJim Jagielski 			if( maBLTRColor == maLineColor)
811*b1cdbd2cSJim Jagielski 				mpLineColorUpdater->Update(maLineColor);
812*b1cdbd2cSJim Jagielski 			else
813*b1cdbd2cSJim Jagielski 				mpLineColorUpdater->Update(COL_TRANSPARENT);
814*b1cdbd2cSJim Jagielski 		}
815*b1cdbd2cSJim Jagielski 		else
816*b1cdbd2cSJim Jagielski 			mpLineColorUpdater->Update(COL_TRANSPARENT);
817*b1cdbd2cSJim Jagielski 
818*b1cdbd2cSJim Jagielski 		//set line style state
819*b1cdbd2cSJim Jagielski 		if( mbBorderStyleAvailable && !mbTLBR && !mbBLTR )
820*b1cdbd2cSJim Jagielski 		{
821*b1cdbd2cSJim Jagielski 		}
822*b1cdbd2cSJim Jagielski 		else if( !mbBorderStyleAvailable && mbTLBR && !mbBLTR )
823*b1cdbd2cSJim Jagielski 		{
824*b1cdbd2cSJim Jagielski 			mnIn = mnTLBRIn;
825*b1cdbd2cSJim Jagielski 			mnOut = mnTLBROut;
826*b1cdbd2cSJim Jagielski 			mnDis = mnTLBRDis;
827*b1cdbd2cSJim Jagielski 		}
828*b1cdbd2cSJim Jagielski 		else if ( !mbBorderStyleAvailable && !mbTLBR && mbBLTR )
829*b1cdbd2cSJim Jagielski 		{
830*b1cdbd2cSJim Jagielski 			mnIn = mnBLTRIn;
831*b1cdbd2cSJim Jagielski 			mnOut = mnBLTROut;
832*b1cdbd2cSJim Jagielski 			mnDis = mnBLTRDis;
833*b1cdbd2cSJim Jagielski 		}
834*b1cdbd2cSJim Jagielski 		else if( !mbBorderStyleAvailable && mbTLBR && mbBLTR)
835*b1cdbd2cSJim Jagielski 		{
836*b1cdbd2cSJim Jagielski 			if( mnTLBRIn == mnBLTRIn && mnTLBROut == mnBLTROut && mnTLBRDis == mnBLTRDis)
837*b1cdbd2cSJim Jagielski 			{
838*b1cdbd2cSJim Jagielski 				mnIn = mnTLBRIn;
839*b1cdbd2cSJim Jagielski 				mnOut = mnTLBROut;
840*b1cdbd2cSJim Jagielski 				mnDis = mnTLBRDis;
841*b1cdbd2cSJim Jagielski 			}
842*b1cdbd2cSJim Jagielski 			else
843*b1cdbd2cSJim Jagielski 			{
844*b1cdbd2cSJim Jagielski 				mnIn = 0;
845*b1cdbd2cSJim Jagielski 				mnOut = 0;
846*b1cdbd2cSJim Jagielski 				mnDis = 0;
847*b1cdbd2cSJim Jagielski 			}
848*b1cdbd2cSJim Jagielski 		}
849*b1cdbd2cSJim Jagielski 		else if( mbBorderStyleAvailable && mbTLBR && !mbBLTR )
850*b1cdbd2cSJim Jagielski 		{
851*b1cdbd2cSJim Jagielski 			if( mnTLBRIn != mnIn || mnTLBROut != mnOut || mnTLBRDis != mnDis)
852*b1cdbd2cSJim Jagielski 			{
853*b1cdbd2cSJim Jagielski 				mnIn = 0;
854*b1cdbd2cSJim Jagielski 				mnOut = 0;
855*b1cdbd2cSJim Jagielski 				mnDis = 0;
856*b1cdbd2cSJim Jagielski 			}
857*b1cdbd2cSJim Jagielski 		}
858*b1cdbd2cSJim Jagielski 		else if( mbBorderStyleAvailable && !mbTLBR && mbBLTR )
859*b1cdbd2cSJim Jagielski 		{
860*b1cdbd2cSJim Jagielski 			if(  mnBLTRIn != mnIn || mnBLTROut != mnOut || mnBLTRDis != mnDis )
861*b1cdbd2cSJim Jagielski 			{
862*b1cdbd2cSJim Jagielski 				mnIn = 0;
863*b1cdbd2cSJim Jagielski 				mnOut = 0;
864*b1cdbd2cSJim Jagielski 				mnDis = 0;
865*b1cdbd2cSJim Jagielski 			}
866*b1cdbd2cSJim Jagielski 		}
867*b1cdbd2cSJim Jagielski 		else
868*b1cdbd2cSJim Jagielski 		{
869*b1cdbd2cSJim Jagielski 			mnIn = 0;
870*b1cdbd2cSJim Jagielski 			mnOut = 0;
871*b1cdbd2cSJim Jagielski 			mnDis = 0;
872*b1cdbd2cSJim Jagielski 		}
873*b1cdbd2cSJim Jagielski 		SetStyleIcon();
874*b1cdbd2cSJim Jagielski 	}
875*b1cdbd2cSJim Jagielski 	else
876*b1cdbd2cSJim Jagielski 	{
877*b1cdbd2cSJim Jagielski 		mpTBLineColor->Disable();
878*b1cdbd2cSJim Jagielski 		mpTBLineStyle->Disable();
879*b1cdbd2cSJim Jagielski 	}
880*b1cdbd2cSJim Jagielski }
881*b1cdbd2cSJim Jagielski 
882*b1cdbd2cSJim Jagielski 
883*b1cdbd2cSJim Jagielski 
884*b1cdbd2cSJim Jagielski 
Resize(void)885*b1cdbd2cSJim Jagielski void CellAppearancePropertyPanel::Resize (void)
886*b1cdbd2cSJim Jagielski {
887*b1cdbd2cSJim Jagielski     const sal_Int32 nRight (GetSizePixel().Width() - Layouter::MapWidth(*this, TB_BORDER));
888*b1cdbd2cSJim Jagielski     Layouter::SetRight(*mpFTFillColor, nRight);
889*b1cdbd2cSJim Jagielski     Layouter::SetRight(*mpFTCellBorder, nRight);
890*b1cdbd2cSJim Jagielski     Layouter::SetRight(*mpCBXShowGrid, nRight);
891*b1cdbd2cSJim Jagielski }
892*b1cdbd2cSJim Jagielski 
893*b1cdbd2cSJim Jagielski 
894*b1cdbd2cSJim Jagielski 
895*b1cdbd2cSJim Jagielski }} // end of namespace ::sc::sidebar
896*b1cdbd2cSJim Jagielski 
897*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////////////
898*b1cdbd2cSJim Jagielski // eof
899