1b3f79822SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3b3f79822SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4b3f79822SAndrew Rist * or more contributor license agreements. See the NOTICE file
5b3f79822SAndrew Rist * distributed with this work for additional information
6b3f79822SAndrew Rist * regarding copyright ownership. The ASF licenses this file
7b3f79822SAndrew Rist * to you under the Apache License, Version 2.0 (the
8b3f79822SAndrew Rist * "License"); you may not use this file except in compliance
9b3f79822SAndrew Rist * with the License. You may obtain a copy of the License at
10b3f79822SAndrew Rist *
11b3f79822SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12b3f79822SAndrew Rist *
13b3f79822SAndrew Rist * Unless required by applicable law or agreed to in writing,
14b3f79822SAndrew Rist * software distributed under the License is distributed on an
15b3f79822SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16b3f79822SAndrew Rist * KIND, either express or implied. See the License for the
17b3f79822SAndrew Rist * specific language governing permissions and limitations
18b3f79822SAndrew Rist * under the License.
19b3f79822SAndrew Rist *
20b3f79822SAndrew Rist *************************************************************/
21b3f79822SAndrew Rist
22b3f79822SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25*b77af630Sdamjan #include "precompiled_scui.hxx"
26cdf0e10cSrcweir
27cdf0e10cSrcweir
28cdf0e10cSrcweir
29cdf0e10cSrcweir
30cdf0e10cSrcweir //------------------------------------------------------------------
31cdf0e10cSrcweir
32cdf0e10cSrcweir #include <svx/dlgutil.hxx>
33cdf0e10cSrcweir #include <svx/drawitem.hxx>
34cdf0e10cSrcweir #include <svx/xtable.hxx>
35cdf0e10cSrcweir
36cdf0e10cSrcweir #include "appoptio.hxx"
37cdf0e10cSrcweir #include "scmod.hxx"
38cdf0e10cSrcweir #include "scitems.hxx"
39cdf0e10cSrcweir #include "tpview.hxx"
40cdf0e10cSrcweir #include "global.hxx"
41cdf0e10cSrcweir #include "viewopti.hxx"
42cdf0e10cSrcweir #include "tabvwsh.hxx"
43cdf0e10cSrcweir #include "uiitems.hxx"
44cdf0e10cSrcweir #include "scresid.hxx"
45cdf0e10cSrcweir #include "docsh.hxx"
46cdf0e10cSrcweir #include "sc.hrc" // -> Slot-IDs
47cdf0e10cSrcweir #include "optdlg.hrc"
48cdf0e10cSrcweir #include "globstr.hrc"
49cdf0e10cSrcweir
50cdf0e10cSrcweir #include "opredlin.hxx"
51cdf0e10cSrcweir #include "opredlin.hrc"
52cdf0e10cSrcweir
53cdf0e10cSrcweir //------------------------------------------------------------------
54cdf0e10cSrcweir
ScRedlineOptionsTabPage(Window * pParent,const SfxItemSet & rSet)55cdf0e10cSrcweir ScRedlineOptionsTabPage::ScRedlineOptionsTabPage( Window* pParent,
56cdf0e10cSrcweir const SfxItemSet& rSet )
57cdf0e10cSrcweir : SfxTabPage(pParent, ScResId(RID_SCPAGE_OPREDLINE), rSet),
58cdf0e10cSrcweir aContentFT ( this, ScResId(FT_CONTENT )),
59cdf0e10cSrcweir aContentColorLB ( this, ScResId(CLB_CONTENT )),
60cdf0e10cSrcweir aRemoveFT ( this, ScResId(FT_REMOVE )),
61cdf0e10cSrcweir aRemoveColorLB ( this, ScResId(CLB_REMOVE )),
62cdf0e10cSrcweir aInsertFT ( this, ScResId(FT_INSERT )),
63cdf0e10cSrcweir aInsertColorLB ( this, ScResId(CLB_INSERT )),
64cdf0e10cSrcweir aMoveFT ( this, ScResId(FT_MOVE )),
65cdf0e10cSrcweir aMoveColorLB ( this, ScResId(CLB_MOVE )),
66cdf0e10cSrcweir aChangedGB ( this, ScResId(GB_COLORCHGS)),
67cdf0e10cSrcweir aAuthorStr (ScResId(STR_AUTHOR))
68cdf0e10cSrcweir {
69cdf0e10cSrcweir FreeResource();
70cdf0e10cSrcweir
71cdf0e10cSrcweir Link aLk = LINK(this, ScRedlineOptionsTabPage, ColorHdl);
72cdf0e10cSrcweir aContentColorLB.SetSelectHdl( aLk );
73cdf0e10cSrcweir aMoveColorLB.SetSelectHdl( aLk );
74cdf0e10cSrcweir aInsertColorLB.SetSelectHdl( aLk );
75cdf0e10cSrcweir aRemoveColorLB.SetSelectHdl( aLk );
76cdf0e10cSrcweir }
77cdf0e10cSrcweir
78cdf0e10cSrcweir /*-----------------------------------------------------------------------
79cdf0e10cSrcweir Beschreibung:
80cdf0e10cSrcweir -----------------------------------------------------------------------*/
81cdf0e10cSrcweir
~ScRedlineOptionsTabPage()82cdf0e10cSrcweir __EXPORT ScRedlineOptionsTabPage::~ScRedlineOptionsTabPage()
83cdf0e10cSrcweir {
84cdf0e10cSrcweir }
85cdf0e10cSrcweir
86cdf0e10cSrcweir /*-----------------------------------------------------------------------
87cdf0e10cSrcweir Beschreibung:
88cdf0e10cSrcweir -----------------------------------------------------------------------*/
89cdf0e10cSrcweir
Create(Window * pParent,const SfxItemSet & rSet)90cdf0e10cSrcweir SfxTabPage* __EXPORT ScRedlineOptionsTabPage::Create( Window* pParent, const SfxItemSet& rSet )
91cdf0e10cSrcweir {
92cdf0e10cSrcweir return new ScRedlineOptionsTabPage( pParent, rSet );
93cdf0e10cSrcweir }
94cdf0e10cSrcweir
95cdf0e10cSrcweir /*-----------------------------------------------------------------------
96cdf0e10cSrcweir Beschreibung:
97cdf0e10cSrcweir -----------------------------------------------------------------------*/
98cdf0e10cSrcweir
FillItemSet(SfxItemSet &)99cdf0e10cSrcweir sal_Bool __EXPORT ScRedlineOptionsTabPage::FillItemSet( SfxItemSet& /* rSet */ )
100cdf0e10cSrcweir {
101cdf0e10cSrcweir ScAppOptions aAppOptions=SC_MOD()->GetAppOptions();
102cdf0e10cSrcweir
103cdf0e10cSrcweir sal_uLong nNew=0;
104cdf0e10cSrcweir sal_uInt16 nPos=0;
105cdf0e10cSrcweir
106cdf0e10cSrcweir nPos = aContentColorLB.GetSelectEntryPos();
107cdf0e10cSrcweir if (nPos != LISTBOX_ENTRY_NOTFOUND)
108cdf0e10cSrcweir {
109cdf0e10cSrcweir nPos = aContentColorLB.GetSelectEntryPos();
110cdf0e10cSrcweir if (nPos!=0)
111cdf0e10cSrcweir nNew= aContentColorLB.GetEntryColor(nPos).GetColor();
112cdf0e10cSrcweir else
113cdf0e10cSrcweir nNew= COL_TRANSPARENT;
114cdf0e10cSrcweir
115cdf0e10cSrcweir aAppOptions.SetTrackContentColor(nNew);
116cdf0e10cSrcweir
117cdf0e10cSrcweir }
118cdf0e10cSrcweir nPos = aMoveColorLB.GetSelectEntryPos();
119cdf0e10cSrcweir if (nPos != LISTBOX_ENTRY_NOTFOUND)
120cdf0e10cSrcweir {
121cdf0e10cSrcweir nPos = aMoveColorLB.GetSelectEntryPos();
122cdf0e10cSrcweir if (nPos!=0)
123cdf0e10cSrcweir nNew= aMoveColorLB.GetEntryColor(nPos).GetColor();
124cdf0e10cSrcweir else
125cdf0e10cSrcweir nNew= COL_TRANSPARENT;
126cdf0e10cSrcweir
127cdf0e10cSrcweir aAppOptions.SetTrackMoveColor(nNew);
128cdf0e10cSrcweir
129cdf0e10cSrcweir }
130cdf0e10cSrcweir nPos = aInsertColorLB.GetSelectEntryPos();
131cdf0e10cSrcweir if (nPos != LISTBOX_ENTRY_NOTFOUND)
132cdf0e10cSrcweir {
133cdf0e10cSrcweir nPos = aInsertColorLB.GetSelectEntryPos();
134cdf0e10cSrcweir if (nPos!=0)
135cdf0e10cSrcweir nNew= aInsertColorLB.GetEntryColor(nPos).GetColor();
136cdf0e10cSrcweir else
137cdf0e10cSrcweir nNew= COL_TRANSPARENT;
138cdf0e10cSrcweir
139cdf0e10cSrcweir aAppOptions.SetTrackInsertColor(nNew);
140cdf0e10cSrcweir
141cdf0e10cSrcweir }
142cdf0e10cSrcweir nPos = aRemoveColorLB.GetSelectEntryPos();
143cdf0e10cSrcweir if (nPos != LISTBOX_ENTRY_NOTFOUND)
144cdf0e10cSrcweir {
145cdf0e10cSrcweir nPos = aRemoveColorLB.GetSelectEntryPos();
146cdf0e10cSrcweir if (nPos!=0)
147cdf0e10cSrcweir nNew= aRemoveColorLB.GetEntryColor(nPos).GetColor();
148cdf0e10cSrcweir else
149cdf0e10cSrcweir nNew= COL_TRANSPARENT;
150cdf0e10cSrcweir
151cdf0e10cSrcweir aAppOptions.SetTrackDeleteColor(nNew);
152cdf0e10cSrcweir
153cdf0e10cSrcweir }
154cdf0e10cSrcweir
155cdf0e10cSrcweir SC_MOD()->SetAppOptions(aAppOptions);
156cdf0e10cSrcweir
157cdf0e10cSrcweir // Repaint (wenn alles ueber Items laufen wuerde, wie es sich gehoert,
158cdf0e10cSrcweir // waere das nicht noetig...)
159cdf0e10cSrcweir ScDocShell* pDocSh = PTR_CAST(ScDocShell, SfxObjectShell::Current());
160cdf0e10cSrcweir if (pDocSh)
161cdf0e10cSrcweir pDocSh->PostPaintGridAll();
162cdf0e10cSrcweir
163cdf0e10cSrcweir return sal_False;
164cdf0e10cSrcweir }
165cdf0e10cSrcweir
166cdf0e10cSrcweir /*-----------------------------------------------------------------------
167cdf0e10cSrcweir Beschreibung:
168cdf0e10cSrcweir -----------------------------------------------------------------------*/
169cdf0e10cSrcweir
Reset(const SfxItemSet &)170cdf0e10cSrcweir void __EXPORT ScRedlineOptionsTabPage::Reset( const SfxItemSet& /* rSet */ )
171cdf0e10cSrcweir {
172cdf0e10cSrcweir
173c7be74b1SArmin Le Grand XColorListSharedPtr aColorTbl = XColorList::GetStdColorList();
174cdf0e10cSrcweir aContentColorLB.InsertEntry(aAuthorStr);
175cdf0e10cSrcweir aMoveColorLB.InsertEntry(aAuthorStr);
176cdf0e10cSrcweir aInsertColorLB.InsertEntry(aAuthorStr);
177cdf0e10cSrcweir aRemoveColorLB.InsertEntry(aAuthorStr);
178cdf0e10cSrcweir
179cdf0e10cSrcweir aContentColorLB.SetUpdateMode( sal_False);
180cdf0e10cSrcweir aMoveColorLB.SetUpdateMode( sal_False);
181cdf0e10cSrcweir aInsertColorLB.SetUpdateMode( sal_False);
182cdf0e10cSrcweir aRemoveColorLB.SetUpdateMode( sal_False);
183cdf0e10cSrcweir
184c7be74b1SArmin Le Grand for( sal_uInt16 i = 0; i < aColorTbl->Count(); ++i )
185cdf0e10cSrcweir {
186c7be74b1SArmin Le Grand XColorEntry* pEntry = aColorTbl->GetColor( i );
187cdf0e10cSrcweir Color aColor = pEntry->GetColor();
188cdf0e10cSrcweir String sName = pEntry->GetName();
189cdf0e10cSrcweir
190cdf0e10cSrcweir aContentColorLB.InsertEntry( aColor, sName );
191cdf0e10cSrcweir aMoveColorLB.InsertEntry( aColor, sName );
192cdf0e10cSrcweir aInsertColorLB.InsertEntry( aColor, sName );
193cdf0e10cSrcweir aRemoveColorLB.InsertEntry( aColor, sName );
194cdf0e10cSrcweir }
195cdf0e10cSrcweir aContentColorLB.SetUpdateMode( sal_True );
196cdf0e10cSrcweir aMoveColorLB.SetUpdateMode( sal_True );
197cdf0e10cSrcweir aInsertColorLB.SetUpdateMode( sal_True );
198cdf0e10cSrcweir aRemoveColorLB.SetUpdateMode( sal_True );
199cdf0e10cSrcweir
200cdf0e10cSrcweir
201cdf0e10cSrcweir ScAppOptions aAppOptions=SC_MOD()->GetAppOptions();
202cdf0e10cSrcweir
203cdf0e10cSrcweir sal_uLong nColor = aAppOptions.GetTrackContentColor();
204cdf0e10cSrcweir if (nColor == COL_TRANSPARENT)
205cdf0e10cSrcweir aContentColorLB.SelectEntryPos(0);
206cdf0e10cSrcweir else
207cdf0e10cSrcweir aContentColorLB.SelectEntry(Color(nColor));
208cdf0e10cSrcweir
209cdf0e10cSrcweir nColor = aAppOptions.GetTrackMoveColor();
210cdf0e10cSrcweir if (nColor == COL_TRANSPARENT)
211cdf0e10cSrcweir aMoveColorLB.SelectEntryPos(0);
212cdf0e10cSrcweir else
213cdf0e10cSrcweir aMoveColorLB.SelectEntry(Color(nColor));
214cdf0e10cSrcweir
215cdf0e10cSrcweir
216cdf0e10cSrcweir nColor = aAppOptions.GetTrackInsertColor();
217cdf0e10cSrcweir if (nColor == COL_TRANSPARENT)
218cdf0e10cSrcweir aInsertColorLB.SelectEntryPos(0);
219cdf0e10cSrcweir else
220cdf0e10cSrcweir aInsertColorLB.SelectEntry(Color(nColor));
221cdf0e10cSrcweir
222cdf0e10cSrcweir
223cdf0e10cSrcweir nColor = aAppOptions.GetTrackDeleteColor();
224cdf0e10cSrcweir if (nColor == COL_TRANSPARENT)
225cdf0e10cSrcweir aRemoveColorLB.SelectEntryPos(0);
226cdf0e10cSrcweir else
227cdf0e10cSrcweir aRemoveColorLB.SelectEntry(Color(nColor));
228cdf0e10cSrcweir
229cdf0e10cSrcweir }
230cdf0e10cSrcweir
231cdf0e10cSrcweir
IMPL_LINK(ScRedlineOptionsTabPage,ColorHdl,ColorListBox *,EMPTYARG)232cdf0e10cSrcweir IMPL_LINK( ScRedlineOptionsTabPage, ColorHdl, ColorListBox *, EMPTYARG )
233cdf0e10cSrcweir {
234cdf0e10cSrcweir /*
235cdf0e10cSrcweir SvxFontPrevWindow *pPrev;
236cdf0e10cSrcweir ListBox *pLB;
237cdf0e10cSrcweir
238cdf0e10cSrcweir if (pColorLB == &aInsertColorLB)
239cdf0e10cSrcweir {
240cdf0e10cSrcweir pPrev = &aInsertPreviewWN;
241cdf0e10cSrcweir pLB = &aInsertLB;
242cdf0e10cSrcweir }
243cdf0e10cSrcweir else
244cdf0e10cSrcweir {
245cdf0e10cSrcweir pPrev = &aDeletedPreviewWN;
246cdf0e10cSrcweir pLB = &aDeletedLB;
247cdf0e10cSrcweir }
248cdf0e10cSrcweir
249cdf0e10cSrcweir SvxFont& rFont = pPrev->GetFont();
250cdf0e10cSrcweir sal_uInt16 nPos = pLB->GetSelectEntryPos();
251cdf0e10cSrcweir if (nPos == LISTBOX_ENTRY_NOTFOUND)
252cdf0e10cSrcweir nPos = 0;
253cdf0e10cSrcweir
254cdf0e10cSrcweir CharAttr *pAttr = (CharAttr *)pLB->GetEntryData(nPos);
255cdf0e10cSrcweir
256cdf0e10cSrcweir if (pAttr->nItemId == SID_ATTR_BRUSH)
257cdf0e10cSrcweir {
258cdf0e10cSrcweir rFont.SetColor(Color(COL_BLACK));
259cdf0e10cSrcweir nPos = pColorLB->GetSelectEntryPos();
260cdf0e10cSrcweir if (nPos && nPos != LISTBOX_ENTRY_NOTFOUND)
261cdf0e10cSrcweir {
262cdf0e10cSrcweir Brush aBrush(Color(pColorLB->GetSelectEntryColor()));
263cdf0e10cSrcweir pPrev->SetBrush(aBrush);
264cdf0e10cSrcweir }
265cdf0e10cSrcweir else
266cdf0e10cSrcweir {
267cdf0e10cSrcweir Brush aBrush(Color(COL_LIGHTGRAY));
268cdf0e10cSrcweir pPrev->SetBrush(aBrush);
269cdf0e10cSrcweir }
270cdf0e10cSrcweir }
271cdf0e10cSrcweir else
272cdf0e10cSrcweir {
273cdf0e10cSrcweir nPos = pColorLB->GetSelectEntryPos();
274cdf0e10cSrcweir if (nPos && nPos != LISTBOX_ENTRY_NOTFOUND)
275cdf0e10cSrcweir rFont.SetColor(pColorLB->GetEntryColor(nPos));
276cdf0e10cSrcweir else
277cdf0e10cSrcweir rFont.SetColor(Color(COL_RED));
278cdf0e10cSrcweir }
279cdf0e10cSrcweir
280cdf0e10cSrcweir pPrev->Invalidate();
281cdf0e10cSrcweir */
282cdf0e10cSrcweir return 0;
283cdf0e10cSrcweir }
284cdf0e10cSrcweir
285