Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include <vcl/svapp.hxx>
30 : : #include <tools/shl.hxx>
31 : : #include <sfx2/app.hxx>
32 : : #include <sfx2/module.hxx>
33 : : #include <svtools/txtcmp.hxx>
34 : : #include <unotools/charclass.hxx>
35 : :
36 : : #include <editeng/unolingu.hxx>
37 : : #include <svx/dialmgr.hxx>
38 : : #include "ctredlin.hrc"
39 : : #include <svx/ctredlin.hxx>
40 : : #include "helpid.hrc"
41 : :
42 : : //============================================================================
43 : : // Local Defines and Function
44 : : //----------------------------------------------------------------------------
45 : :
46 : : inline void EnableDisable( Window& rWin, sal_Bool bEnable )
47 : : {
48 : : if (bEnable)
49 : : rWin.Enable();
50 : : else
51 : : rWin.Disable();
52 : : }
53 : :
54 : : static long nStaticTabs[]=
55 : : {
56 : : 5,10,65,120,170,220
57 : : };
58 : :
59 : : #define MIN_DISTANCE 6
60 : : #define WRITER_DATE 2
61 : : #define CALC_DATE 3
62 : :
63 : 0 : RedlinData::RedlinData()
64 : : :
65 : 0 : aDateTime( DateTime::EMPTY )
66 : : {
67 : 0 : bDisabled=sal_False;
68 : 0 : pData=NULL;
69 : 0 : }
70 : 0 : RedlinData::~RedlinData()
71 : : {
72 [ # # ]: 0 : }
73 : :
74 : : //============================================================================
75 : : // class SvxRedlinEntry (Entries for list)
76 : : //----------------------------------------------------------------------------
77 : :
78 : 0 : SvxRedlinEntry::SvxRedlinEntry()
79 : 0 : :SvLBoxEntry()
80 : : {
81 : 0 : }
82 : :
83 : 0 : SvxRedlinEntry::~SvxRedlinEntry()
84 : : {
85 : 0 : RedlinData* pRedDat=(RedlinData*) GetUserData();
86 [ # # ]: 0 : if(pRedDat!=NULL)
87 : : {
88 [ # # ][ # # ]: 0 : delete pRedDat;
89 : : }
90 [ # # ]: 0 : }
91 : :
92 : : // Functions in the inserts Items of SvxRedlinTable
93 : :
94 : : DBG_NAME(SvLBoxColorString);
95 : :
96 : 0 : SvLBoxColorString::SvLBoxColorString( SvLBoxEntry*pEntry,sal_uInt16 nFlags,const XubString& rStr,
97 : : const Color& rCol)
98 : :
99 [ # # ]: 0 : : SvLBoxString( pEntry, nFlags, rStr )
100 : : {
101 : : DBG_CTOR(SvLBoxColorString,0);
102 : 0 : aPrivColor=rCol;
103 [ # # ]: 0 : SetText( rStr );
104 : 0 : }
105 : :
106 : 0 : SvLBoxColorString::SvLBoxColorString()
107 : 0 : : SvLBoxString()
108 : : {
109 : : DBG_CTOR(SvLBoxColorString,0);
110 : 0 : }
111 : :
112 : 0 : SvLBoxColorString::~SvLBoxColorString()
113 : : {
114 : : DBG_DTOR(SvLBoxColorString,0);
115 [ # # ]: 0 : }
116 : :
117 : 0 : SvLBoxItem* SvLBoxColorString::Create() const
118 : : {
119 : : DBG_CHKTHIS(SvLBoxColorString,0);
120 [ # # ]: 0 : return new SvLBoxColorString;
121 : : }
122 : :
123 : 0 : void SvLBoxColorString::Paint( const Point& rPos, SvLBox& rDev,
124 : : sal_uInt16 nFlags, SvLBoxEntry* pEntry )
125 : : /* [Description]
126 : :
127 : : Paint function of the SvLBoxColorString class. The relevant text with the
128 : : selected color is drawn in the output device.
129 : : */
130 : :
131 : : {
132 : 0 : Color aColor=rDev.GetTextColor();
133 : 0 : Color a2Color=aColor;
134 [ # # ]: 0 : if(!(nFlags & SVLISTENTRYFLAG_SELECTED))
135 : : {
136 [ # # ]: 0 : rDev.SetTextColor(aPrivColor);
137 : : }
138 [ # # ]: 0 : SvLBoxString::Paint(rPos,rDev,nFlags,pEntry );
139 [ # # ]: 0 : rDev.SetTextColor(a2Color);
140 : 0 : }
141 : :
142 : : //============================================================================
143 : : // class SvxRedlinTable
144 : : //----------------------------------------------------------------------------
145 : :
146 : 0 : SvxRedlinTable::SvxRedlinTable(SvxSimpleTableContainer& rParent,WinBits nBits)
147 : : : SvxSimpleTable(rParent,nBits),
148 : : aDaTiFirst( DateTime::EMPTY ),
149 : : aDaTiLast( DateTime::EMPTY ),
150 : : aDaTiFilterFirst( DateTime::EMPTY ),
151 [ # # ][ # # ]: 0 : aDaTiFilterLast( DateTime::EMPTY )
[ # # ]
152 : : {
153 : 0 : bAuthor=sal_False;
154 : 0 : bDate=sal_False;
155 : 0 : bIsCalc=sal_False;
156 : 0 : bComment=sal_False;
157 : 0 : nDatePos=WRITER_DATE;
158 : 0 : pCommentSearcher=NULL;
159 [ # # ]: 0 : SetNodeDefaultImages();
160 : 0 : }
161 : :
162 [ # # ][ # # ]: 0 : SvxRedlinTable::~SvxRedlinTable()
163 : : {
164 [ # # ]: 0 : if(pCommentSearcher!=NULL)
165 [ # # ][ # # ]: 0 : delete pCommentSearcher;
166 [ # # ]: 0 : }
167 : :
168 : 0 : StringCompare SvxRedlinTable::ColCompare(SvLBoxEntry* pLeft,SvLBoxEntry* pRight)
169 : : {
170 : 0 : StringCompare eCompare=COMPARE_EQUAL;
171 : :
172 [ # # ]: 0 : if(aColCompareLink.IsSet())
173 : : {
174 : : SvSortData aRedlinCompare;
175 : 0 : aRedlinCompare.pLeft=pLeft;
176 : 0 : aRedlinCompare.pRight=pRight;
177 [ # # ]: 0 : eCompare=(StringCompare) aColCompareLink.Call(&aRedlinCompare);
178 : : }
179 : : else
180 : : {
181 [ # # ]: 0 : if(nDatePos==GetSortedCol())
182 : : {
183 : 0 : RedlinData *pLeftData=(RedlinData *)(pLeft->GetUserData());
184 : 0 : RedlinData *pRightData=(RedlinData *)(pRight->GetUserData());
185 : :
186 [ # # ][ # # ]: 0 : if(pLeftData!=NULL && pRightData!=NULL)
187 : : {
188 [ # # ]: 0 : if(pLeftData->aDateTime < pRightData->aDateTime)
189 : : {
190 : 0 : eCompare=COMPARE_LESS;
191 : : }
192 [ # # ]: 0 : else if(pLeftData->aDateTime > pRightData->aDateTime)
193 : : {
194 : 0 : eCompare=COMPARE_GREATER;
195 : : }
196 : : }
197 : : else
198 : 0 : eCompare=SvxSimpleTable::ColCompare(pLeft,pRight);
199 : : }
200 : : else
201 : : {
202 : 0 : eCompare=SvxSimpleTable::ColCompare(pLeft,pRight);
203 : : }
204 : :
205 : : }
206 : :
207 : 0 : return eCompare;
208 : : }
209 : 0 : void SvxRedlinTable::SetCalcView(sal_Bool bFlag)
210 : : {
211 : 0 : bIsCalc=bFlag;
212 [ # # ]: 0 : if(bFlag)
213 : : {
214 : 0 : nDatePos=CALC_DATE;
215 : : }
216 : : else
217 : : {
218 : 0 : nDatePos=WRITER_DATE;
219 : : }
220 : 0 : }
221 : :
222 : :
223 : 0 : void SvxRedlinTable::UpdateFilterTest()
224 : : {
225 [ # # ]: 0 : Date aDateMax( Date::SYSTEM );
226 : 0 : sal_uInt16 nYEAR=aDateMax.GetYear()+100;
227 [ # # ]: 0 : aDateMax.SetYear(nYEAR);
228 : 0 : Date aDateMin(1,1,1989);
229 : 0 : Time aTMin(0);
230 [ # # ]: 0 : Time aTMax(23,59,59);
231 : :
232 : :
233 : 0 : DateTime aDTMin(aDateMin);
234 : 0 : DateTime aDTMax(aDateMax);
235 : :
236 [ # # # # : 0 : switch(nDaTiMode)
# # ]
237 : : {
238 : : case FLT_DATE_BEFORE:
239 [ # # ]: 0 : aDaTiFilterFirst=aDTMin;
240 [ # # ]: 0 : aDaTiFilterLast=aDaTiFirst;
241 : 0 : break;
242 : : case FLT_DATE_SAVE:
243 : : case FLT_DATE_SINCE:
244 [ # # ]: 0 : aDaTiFilterFirst=aDaTiFirst;
245 [ # # ]: 0 : aDaTiFilterLast=aDTMax;
246 : 0 : break;
247 : : case FLT_DATE_EQUAL:
248 [ # # ]: 0 : aDaTiFilterFirst=aDaTiFirst;
249 [ # # ]: 0 : aDaTiFilterLast=aDaTiFirst;
250 : 0 : aDaTiFilterFirst.SetTime(aTMin.GetTime());
251 : 0 : aDaTiFilterLast.SetTime(aTMax.GetTime());
252 : 0 : break;
253 : : case FLT_DATE_NOTEQUAL:
254 [ # # ]: 0 : aDaTiFilterFirst=aDaTiFirst;
255 [ # # ]: 0 : aDaTiFilterLast=aDaTiFirst;
256 : 0 : aDaTiFilterFirst.SetTime(aTMin.GetTime());
257 : 0 : aDaTiFilterLast.SetTime(aTMax.GetTime());
258 : 0 : break;
259 : : case FLT_DATE_BETWEEN:
260 [ # # ]: 0 : aDaTiFilterFirst=aDaTiFirst;
261 [ # # ]: 0 : aDaTiFilterLast=aDaTiLast;
262 : 0 : break;
263 : : }
264 : 0 : }
265 : :
266 : :
267 : 0 : void SvxRedlinTable::SetFilterDate(sal_Bool bFlag)
268 : : {
269 : 0 : bDate=bFlag;
270 : 0 : }
271 : :
272 : 0 : void SvxRedlinTable::SetDateTimeMode(sal_uInt16 nMode)
273 : : {
274 : 0 : nDaTiMode=nMode;
275 : 0 : }
276 : :
277 : 0 : void SvxRedlinTable::SetFirstDate(const Date& aDate)
278 : : {
279 : 0 : aDaTiFirst.SetDate(aDate.GetDate());
280 : 0 : }
281 : :
282 : 0 : void SvxRedlinTable::SetLastDate(const Date& aDate)
283 : : {
284 : 0 : aDaTiLast.SetDate(aDate.GetDate());
285 : 0 : }
286 : :
287 : 0 : void SvxRedlinTable::SetFirstTime(const Time& aTime)
288 : : {
289 : 0 : aDaTiFirst.SetTime(aTime.GetTime());
290 : 0 : }
291 : :
292 : 0 : void SvxRedlinTable::SetLastTime(const Time& aTime)
293 : : {
294 : 0 : aDaTiLast.SetTime(aTime.GetTime());
295 : 0 : }
296 : :
297 : 0 : void SvxRedlinTable::SetFilterAuthor(sal_Bool bFlag)
298 : : {
299 : 0 : bAuthor=bFlag;
300 : 0 : }
301 : :
302 : 0 : void SvxRedlinTable::SetAuthor(const String &aString)
303 : : {
304 : 0 : aAuthor=aString;
305 : 0 : }
306 : :
307 : 0 : void SvxRedlinTable::SetFilterComment(sal_Bool bFlag)
308 : : {
309 : 0 : bComment=bFlag;
310 : 0 : }
311 : :
312 : 0 : void SvxRedlinTable::SetCommentParams( const utl::SearchParam* pSearchPara )
313 : : {
314 [ # # ]: 0 : if(pSearchPara!=NULL)
315 : : {
316 [ # # ][ # # ]: 0 : if(pCommentSearcher!=NULL) delete pCommentSearcher;
317 : :
318 [ # # ]: 0 : pCommentSearcher=new utl::TextSearch(*pSearchPara, LANGUAGE_SYSTEM );
319 : : }
320 : 0 : }
321 : :
322 : 0 : sal_Bool SvxRedlinTable::IsValidEntry(const String* pAuthorStr,
323 : : const DateTime *pDateTime,const String* pCommentStr)
324 : : {
325 : 0 : bool nTheFlag=true;
326 [ # # ]: 0 : if(bAuthor)
327 : : {
328 : 0 : nTheFlag = aAuthor.CompareTo(*pAuthorStr)==COMPARE_EQUAL;
329 : : }
330 [ # # ][ # # ]: 0 : if(bDate && nTheFlag)
331 : : {
332 [ # # ]: 0 : if(nDaTiMode!=FLT_DATE_NOTEQUAL)
333 : : {
334 : 0 : nTheFlag=pDateTime->IsBetween(aDaTiFilterFirst,aDaTiFilterLast);
335 : : }
336 : : else
337 : : {
338 : 0 : nTheFlag=!(pDateTime->IsBetween(aDaTiFilterFirst,aDaTiFilterLast));
339 : : }
340 : : }
341 [ # # ][ # # ]: 0 : if(bComment && nTheFlag)
342 : : {
343 : 0 : xub_StrLen nStartPos = 0;
344 : 0 : xub_StrLen nEndPos = pCommentStr->Len();
345 : :
346 [ # # ]: 0 : nTheFlag=pCommentSearcher->SearchFrwrd( *pCommentStr, &nStartPos, &nEndPos);
347 : : }
348 : 0 : return nTheFlag;
349 : : }
350 : :
351 : 0 : sal_Bool SvxRedlinTable::IsValidEntry(const String* pAuthorStr,const DateTime *pDateTime)
352 : : {
353 : 0 : sal_Bool nTheFlag=sal_True;
354 [ # # ]: 0 : if(bAuthor)
355 : : {
356 [ # # ]: 0 : if(aAuthor.CompareTo(*pAuthorStr)==COMPARE_EQUAL)
357 : 0 : nTheFlag=sal_True;
358 : : else
359 : 0 : nTheFlag=sal_False;
360 : : }
361 [ # # ][ # # ]: 0 : if(bDate && nTheFlag)
362 : : {
363 [ # # ]: 0 : if(nDaTiMode!=FLT_DATE_NOTEQUAL)
364 : : {
365 : 0 : nTheFlag=pDateTime->IsBetween(aDaTiFilterFirst,aDaTiFilterLast);
366 : : }
367 : : else
368 : : {
369 : 0 : nTheFlag=!(pDateTime->IsBetween(aDaTiFilterFirst,aDaTiFilterLast));
370 : : }
371 : : }
372 : 0 : return nTheFlag;
373 : : }
374 : :
375 : 0 : sal_Bool SvxRedlinTable::IsValidComment(const String* pCommentStr)
376 : : {
377 : 0 : bool nTheFlag=true;
378 : :
379 [ # # ]: 0 : if(bComment)
380 : : {
381 : 0 : xub_StrLen nStartPos = 0;
382 : 0 : xub_StrLen nEndPos = pCommentStr->Len();
383 : :
384 [ # # ]: 0 : nTheFlag=pCommentSearcher->SearchFrwrd( *pCommentStr, &nStartPos, &nEndPos);
385 : : }
386 : 0 : return nTheFlag;
387 : : }
388 : :
389 : 0 : SvLBoxEntry* SvxRedlinTable::InsertEntry(const String& rStr,RedlinData *pUserData,
390 : : SvLBoxEntry* pParent,sal_uIntPtr nPos)
391 : : {
392 : 0 : aEntryColor=GetTextColor();
393 [ # # ]: 0 : if(pUserData!=NULL)
394 : : {
395 [ # # ]: 0 : if(pUserData->bDisabled)
396 : 0 : aEntryColor=Color(COL_GRAY);
397 : : }
398 : :
399 [ # # ]: 0 : XubString aStr= rStr;
400 : :
401 [ # # ]: 0 : XubString aFirstStr( aStr );
402 [ # # ]: 0 : xub_StrLen nEnd = aFirstStr.Search( sal_Unicode( '\t' ) );
403 [ # # ]: 0 : if( nEnd != STRING_NOTFOUND )
404 : : {
405 [ # # ]: 0 : aFirstStr.Erase( nEnd );
406 [ # # ]: 0 : aCurEntry = aStr;
407 [ # # ]: 0 : aCurEntry.Erase( 0, ++nEnd );
408 : : }
409 : : else
410 [ # # ]: 0 : aCurEntry.Erase();
411 : :
412 [ # # ][ # # ]: 0 : return SvxSimpleTable::InsertEntry( aFirstStr, pParent, sal_False, nPos, pUserData );
[ # # ]
413 : :
414 : : }
415 : :
416 : 0 : SvLBoxEntry* SvxRedlinTable::InsertEntry(const String& rStr,RedlinData *pUserData,const Color& aColor,
417 : : SvLBoxEntry* pParent,sal_uIntPtr nPos)
418 : : {
419 : 0 : aEntryColor=aColor;
420 : :
421 [ # # ]: 0 : XubString aStr= rStr;
422 : :
423 [ # # ]: 0 : XubString aFirstStr( aStr );
424 [ # # ]: 0 : xub_StrLen nEnd = aFirstStr.Search( sal_Unicode ( '\t' ) );
425 [ # # ]: 0 : if( nEnd != STRING_NOTFOUND )
426 : : {
427 [ # # ]: 0 : aFirstStr.Erase( nEnd );
428 [ # # ]: 0 : aCurEntry = aStr;
429 [ # # ]: 0 : aCurEntry.Erase( 0, ++nEnd );
430 : : }
431 : : else
432 [ # # ]: 0 : aCurEntry.Erase();
433 : :
434 [ # # ][ # # ]: 0 : return SvxSimpleTable::InsertEntry( aFirstStr, pParent, sal_False, nPos, pUserData );
[ # # ]
435 : : }
436 : :
437 : 0 : SvLBoxEntry* SvxRedlinTable::CreateEntry() const
438 : : {
439 [ # # ]: 0 : return new SvxRedlinEntry;
440 : : }
441 : :
442 : 0 : void SvxRedlinTable::InitEntry( SvLBoxEntry* pEntry, const XubString& rStr,
443 : : const Image& rColl, const Image& rExp, SvLBoxButtonKind eButtonKind )
444 : : {
445 : : SvLBoxButton* pButton;
446 : : SvLBoxString* pString;
447 : : SvLBoxContextBmp* pContextBmp;
448 : :
449 [ # # ]: 0 : if( nTreeFlags & TREEFLAG_CHKBTN )
450 : : {
451 [ # # ][ # # ]: 0 : pButton= new SvLBoxButton( pEntry,eButtonKind,0,pCheckButtonData );
452 [ # # ]: 0 : pEntry->AddItem( pButton );
453 : : }
454 : :
455 : : pContextBmp= new SvLBoxContextBmp( pEntry,0, rColl,rExp,
456 [ # # ][ # # ]: 0 : SVLISTENTRYFLAG_EXPANDED);
[ # # ][ # # ]
[ # # ][ # # ]
457 [ # # ]: 0 : pEntry->AddItem( pContextBmp );
458 : :
459 [ # # ][ # # ]: 0 : pString = new SvLBoxColorString( pEntry, 0, rStr ,aEntryColor);
460 [ # # ]: 0 : pEntry->AddItem( pString );
461 : :
462 [ # # ]: 0 : XubString aToken;
463 : :
464 : 0 : xub_Unicode* pCurToken = (xub_Unicode*)aCurEntry.GetBuffer();
465 : : sal_uInt16 nCurTokenLen;
466 [ # # ]: 0 : xub_Unicode* pNextToken = (xub_Unicode*)GetToken( pCurToken, nCurTokenLen );
467 : 0 : sal_uInt16 nCount = TabCount(); nCount--;
468 : :
469 [ # # ]: 0 : for( sal_uInt16 nToken = 0; nToken < nCount; nToken++ )
470 : : {
471 [ # # ][ # # ]: 0 : if( pCurToken && nCurTokenLen )
472 [ # # ]: 0 : aToken = rtl::OUString(pCurToken, nCurTokenLen);
473 : : else
474 [ # # ]: 0 : aToken.Erase();
475 : :
476 [ # # ][ # # ]: 0 : SvLBoxColorString* pStr = new SvLBoxColorString( pEntry, 0, aToken ,aEntryColor);
477 [ # # ]: 0 : pEntry->AddItem( pStr );
478 : :
479 : 0 : pCurToken = pNextToken;
480 [ # # ]: 0 : if( pCurToken )
481 [ # # ]: 0 : pNextToken = (xub_Unicode*)GetToken( pCurToken, nCurTokenLen );
482 : : else
483 : 0 : nCurTokenLen = 0;
484 [ # # ]: 0 : }
485 : 0 : }
486 : :
487 : :
488 : :
489 : :
490 : : //============================================================================
491 : : // class SvxTPView
492 : : //----------------------------------------------------------------------------
493 : :
494 : 0 : SvxTPView::SvxTPView( Window * pParent)
495 : 0 : : TabPage( pParent, SVX_RES(SID_REDLIN_VIEW_PAGE)),
496 [ # # ]: 0 : m_aViewDataContainer(this, SVX_RES(DG_VIEW)),
497 : : aViewData(m_aViewDataContainer),
498 [ # # ]: 0 : PbAccept ( this, SVX_RES(PB_ACCEPT ) ),
499 [ # # ]: 0 : PbReject ( this, SVX_RES(PB_REJECT ) ),
500 [ # # ]: 0 : PbAcceptAll ( this, SVX_RES(PB_ACCEPTALL ) ),
501 [ # # ]: 0 : PbRejectAll ( this, SVX_RES(PB_REJECTALL ) ),
502 [ # # ]: 0 : PbUndo ( this, SVX_RES(PB_UNDO ) ),
503 [ # # ]: 0 : aTitle1 ( SVX_RES( STR_TITLE1 ) ), // local resource
504 [ # # ]: 0 : aTitle2 ( SVX_RES( STR_TITLE2 ) ),
505 [ # # ]: 0 : aTitle3 ( SVX_RES( STR_TITLE3 ) ),
506 [ # # ]: 0 : aTitle4 ( SVX_RES( STR_TITLE4 ) ),
507 [ # # ]: 0 : aTitle5 ( SVX_RES( STR_TITLE5 ) ),
508 [ # # ][ # # ]: 0 : aStrMyName ( SVX_RES( STR_VIEW) )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
509 : : {
510 [ # # ][ # # ]: 0 : aViewData.SetAccessibleName(String(SVX_RES(STR_TREE)));
[ # # ][ # # ]
511 [ # # ]: 0 : FreeResource();
512 : :
513 [ # # ]: 0 : aViewData.SetHelpId(HID_REDLINING_VIEW_DG_VIEW_TABLE);
514 [ # # ]: 0 : aViewData.SetHeaderBarHelpId(HID_REDLINING_VIEW_DG_VIEW_HEADER);
515 : :
516 [ # # ]: 0 : aMinSize=GetSizePixel();
517 : :
518 [ # # ]: 0 : Link aLink=LINK( this, SvxTPView, PbClickHdl);
519 : :
520 : 0 : PbAccept.SetClickHdl(aLink);
521 : 0 : PbAcceptAll.SetClickHdl(aLink);
522 : 0 : PbReject.SetClickHdl(aLink);
523 : 0 : PbRejectAll.SetClickHdl(aLink);
524 : 0 : PbUndo.SetClickHdl(aLink);
525 : :
526 [ # # ]: 0 : nDistance=PbAccept.GetSizePixel().Height()+2*MIN_DISTANCE;
527 [ # # ]: 0 : aViewData.SetTabs(nStaticTabs);
528 : 0 : }
529 : :
530 : 0 : String SvxTPView::GetMyName() const
531 : : {
532 : 0 : return aStrMyName;
533 : : }
534 : :
535 : 0 : void SvxTPView::Resize()
536 : : {
537 : 0 : Size aSize=GetOutputSizePixel();
538 [ # # ]: 0 : Point aPos = m_aViewDataContainer.GetPosPixel();
539 : 0 : aSize.Height()-=aPos.Y()+nDistance;
540 : 0 : aSize.Width()-=2*aPos.X();
541 : :
542 : 0 : long newY=aPos.Y()+aSize.Height()+MIN_DISTANCE;
543 [ # # ]: 0 : aPos=PbAccept.GetPosPixel();
544 : 0 : aPos.Y()=newY;
545 [ # # ]: 0 : PbAccept.SetPosPixel(aPos);
546 [ # # ]: 0 : aPos=PbAcceptAll.GetPosPixel();
547 : 0 : aPos.Y()=newY;
548 [ # # ]: 0 : PbAcceptAll.SetPosPixel(aPos);
549 [ # # ]: 0 : aPos=PbReject.GetPosPixel();
550 : 0 : aPos.Y()=newY;
551 [ # # ]: 0 : PbReject.SetPosPixel(aPos);
552 [ # # ]: 0 : aPos=PbRejectAll.GetPosPixel();
553 : 0 : aPos.Y()=newY;
554 [ # # ]: 0 : PbRejectAll.SetPosPixel(aPos);
555 : :
556 [ # # ][ # # ]: 0 : if(PbUndo.IsVisible())
557 : : {
558 [ # # ]: 0 : aPos=PbUndo.GetPosPixel();
559 : 0 : aPos.Y()=newY;
560 [ # # ]: 0 : PbUndo.SetPosPixel(aPos);
561 : : }
562 [ # # ]: 0 : m_aViewDataContainer.SetSizePixel(aSize);
563 : 0 : }
564 : :
565 : 0 : void SvxTPView::InsertWriterHeader()
566 : : {
567 : 0 : rtl::OUString aStrTab('\t');
568 [ # # ]: 0 : String aString(aTitle1);
569 [ # # ]: 0 : aString+=aStrTab;
570 [ # # ]: 0 : aString+=aTitle3;
571 [ # # ]: 0 : aString+=aStrTab;
572 [ # # ]: 0 : aString+=aTitle4;
573 [ # # ]: 0 : aString+=aStrTab;
574 [ # # ]: 0 : aString+=aTitle5;
575 [ # # ]: 0 : aViewData.ClearHeader();
576 [ # # ][ # # ]: 0 : aViewData.InsertHeaderEntry(aString);
[ # # ]
577 : 0 : }
578 : :
579 : 0 : void SvxTPView::InsertCalcHeader()
580 : : {
581 : 0 : rtl::OUString aStrTab('\t');
582 [ # # ]: 0 : String aString(aTitle1);
583 [ # # ]: 0 : aString+=aStrTab;
584 [ # # ]: 0 : aString+=aTitle2;
585 [ # # ]: 0 : aString+=aStrTab;
586 [ # # ]: 0 : aString+=aTitle3;
587 [ # # ]: 0 : aString+=aStrTab;
588 [ # # ]: 0 : aString+=aTitle4;
589 [ # # ]: 0 : aString+=aStrTab;
590 [ # # ]: 0 : aString+=aTitle5;
591 [ # # ]: 0 : aViewData.ClearHeader();
592 [ # # ][ # # ]: 0 : aViewData.InsertHeaderEntry(aString);
[ # # ]
593 : 0 : }
594 : :
595 : 0 : void SvxTPView::EnableAccept(sal_Bool nFlag)
596 : : {
597 : 0 : PbAccept.Enable(nFlag);
598 : 0 : }
599 : :
600 : 0 : void SvxTPView::EnableAcceptAll(sal_Bool nFlag)
601 : : {
602 : 0 : PbAcceptAll.Enable(nFlag);
603 : 0 : }
604 : :
605 : 0 : void SvxTPView::EnableReject(sal_Bool nFlag)
606 : : {
607 : 0 : PbReject.Enable(nFlag);
608 : 0 : }
609 : :
610 : 0 : void SvxTPView::EnableRejectAll(sal_Bool nFlag)
611 : : {
612 : 0 : PbRejectAll.Enable(nFlag);
613 : 0 : }
614 : :
615 : 0 : void SvxTPView::ShowUndo(sal_Bool nFlag)
616 : : {
617 : 0 : PbUndo.Show(nFlag);
618 : 0 : }
619 : :
620 : 0 : void SvxTPView::EnableUndo(sal_Bool nFlag)
621 : : {
622 : 0 : PbUndo.Enable(nFlag);
623 : 0 : }
624 : :
625 : 0 : Size SvxTPView::GetMinSizePixel()
626 : : {
627 : 0 : Size aSize=aMinSize;
628 [ # # ]: 0 : if(PbUndo.IsVisible())
629 : : {
630 : 0 : sal_uIntPtr nSize=PbUndo.GetSizePixel().Width()
631 [ # # ]: 0 : +PbUndo.GetPosPixel().X()
632 [ # # ]: 0 : +PbAccept.GetPosPixel().X();
633 : :
634 : 0 : aSize.Width()=nSize;
635 : : }
636 : :
637 : 0 : return aSize;
638 : : }
639 : :
640 : :
641 : 0 : SvxRedlinTable* SvxTPView::GetTableControl()
642 : : {
643 : 0 : return &aViewData;
644 : : }
645 : :
646 : 0 : IMPL_LINK( SvxTPView, PbClickHdl, PushButton*, pPushB )
647 : : {
648 [ # # ]: 0 : if(pPushB==&PbAccept)
649 : : {
650 : 0 : AcceptClickLk.Call(this);
651 : : }
652 [ # # ]: 0 : else if(pPushB==&PbAcceptAll)
653 : : {
654 : 0 : AcceptAllClickLk.Call(this);
655 : : }
656 [ # # ]: 0 : else if(pPushB==&PbReject)
657 : : {
658 : 0 : RejectClickLk.Call(this);
659 : : }
660 [ # # ]: 0 : else if(pPushB==&PbRejectAll)
661 : : {
662 : 0 : RejectAllClickLk.Call(this);
663 : : }
664 [ # # ]: 0 : else if(pPushB==&PbUndo)
665 : : {
666 : 0 : UndoClickLk.Call(this);
667 : : }
668 : :
669 : 0 : return 0;
670 : : }
671 : :
672 : :
673 : :
674 : :
675 : : //============================================================================
676 : : // class SvxTPFilter
677 : : //----------------------------------------------------------------------------
678 : :
679 : 0 : SvxTPFilter::SvxTPFilter( Window * pParent)
680 : 0 : : TabPage( pParent, SVX_RES(SID_REDLIN_FILTER_PAGE)),
681 : : pRedlinTable(NULL),
682 [ # # ]: 0 : aCbDate ( this, SVX_RES( CB_DATE ) ),
683 [ # # ]: 0 : aLbDate ( this, SVX_RES( LB_DATE ) ),
684 [ # # ]: 0 : aDfDate ( this, SVX_RES( DF_DATE ) ),
685 [ # # ]: 0 : aTfDate ( this, SVX_RES( TF_DATE ) ),
686 [ # # ]: 0 : aIbClock ( this, SVX_RES( IB_CLOCK ) ),
687 [ # # ]: 0 : aFtDate2 ( this, SVX_RES( FT_DATE2 ) ),
688 [ # # ]: 0 : aDfDate2 ( this, SVX_RES( DF_DATE2 ) ),
689 [ # # ]: 0 : aTfDate2 ( this, SVX_RES( TF_DATE2 ) ),
690 [ # # ]: 0 : aIbClock2 ( this, SVX_RES( IB_CLOCK2) ),
691 [ # # ]: 0 : aCbAuthor ( this, SVX_RES( CB_AUTOR ) ),
692 [ # # ]: 0 : aLbAuthor ( this, SVX_RES( LB_AUTOR ) ),
693 [ # # ]: 0 : aCbRange ( this, SVX_RES( CB_RANGE ) ),
694 [ # # ]: 0 : aEdRange ( this, SVX_RES( ED_RANGE ) ),
695 [ # # ]: 0 : aBtnRange ( this, SVX_RES( BTN_REF ) ),
696 [ # # ]: 0 : aLbAction ( this, SVX_RES( LB_ACTION ) ),
697 [ # # ]: 0 : aCbComment ( this, SVX_RES( CB_COMMENT) ),
698 [ # # ]: 0 : aEdComment ( this, SVX_RES( ED_COMMENT) ),
699 [ # # ]: 0 : aActionStr ( SVX_RES( STR_ACTION) ),
700 [ # # ]: 0 : aStrMyName ( SVX_RES( STR_FILTER) ),
701 [ # # ][ # # ]: 0 : bModified (sal_False)
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
702 : : {
703 [ # # ][ # # ]: 0 : aLbDate.SetAccessibleName( String( SVX_RES( STR_DATE_COMBOX) ) );
[ # # ][ # # ]
704 [ # # ][ # # ]: 0 : aDfDate.SetAccessibleName( String( SVX_RES( STR_DATE_SPIN) ) );
[ # # ][ # # ]
705 [ # # ][ # # ]: 0 : aTfDate.SetAccessibleName( String( SVX_RES( STR_DATE_TIME_SPIN) ) );
[ # # ][ # # ]
706 [ # # ][ # # ]: 0 : aDfDate2.SetAccessibleName( String( SVX_RES( STR_DATE_SPIN1) ) );
[ # # ][ # # ]
707 [ # # ][ # # ]: 0 : aTfDate2.SetAccessibleName( String( SVX_RES( STR_DATE_TIME_SPIN1) ) );
[ # # ][ # # ]
708 [ # # ][ # # ]: 0 : aLbAuthor.SetAccessibleName(aCbAuthor.GetText());
[ # # ]
709 [ # # ][ # # ]: 0 : aLbAction.SetAccessibleName( String( SVX_RES( STR_ACTION) ) );
[ # # ][ # # ]
710 [ # # ][ # # ]: 0 : aEdComment.SetAccessibleName(aCbComment.GetText());
[ # # ]
711 [ # # ]: 0 : FreeResource();
712 : :
713 [ # # ]: 0 : aDfDate.SetShowDateCentury( sal_True );
714 [ # # ]: 0 : aDfDate2.SetShowDateCentury( sal_True );
715 : :
716 [ # # ][ # # ]: 0 : aRangeStr=aCbRange.GetText();
[ # # ]
717 [ # # ]: 0 : aLbDate.SelectEntryPos(0);
718 [ # # ]: 0 : aLbDate.SetSelectHdl( LINK( this, SvxTPFilter, SelDateHdl ) );
719 [ # # ]: 0 : aIbClock.SetClickHdl( LINK( this, SvxTPFilter, TimeHdl) );
720 [ # # ]: 0 : aIbClock2.SetClickHdl( LINK( this, SvxTPFilter,TimeHdl) );
721 [ # # ]: 0 : aBtnRange.SetClickHdl( LINK( this, SvxTPFilter, RefHandle));
722 : :
723 [ # # ]: 0 : Link aLink=LINK( this, SvxTPFilter, RowEnableHdl) ;
724 : 0 : aCbDate.SetClickHdl(aLink);
725 : 0 : aCbAuthor.SetClickHdl(aLink);
726 : 0 : aCbRange.SetClickHdl(aLink);
727 : 0 : aCbComment.SetClickHdl(aLink);
728 : :
729 [ # # ]: 0 : Link a2Link=LINK( this, SvxTPFilter, ModifyDate);
730 : 0 : aDfDate.SetModifyHdl(a2Link);
731 : 0 : aTfDate.SetModifyHdl(a2Link);
732 : 0 : aDfDate2.SetModifyHdl(a2Link);
733 : 0 : aTfDate2.SetModifyHdl(a2Link);
734 : :
735 [ # # ]: 0 : Link a3Link=LINK( this, SvxTPFilter, ModifyHdl);
736 : 0 : aEdRange.SetModifyHdl(a3Link);
737 : 0 : aEdComment.SetModifyHdl(a3Link);
738 : 0 : aLbAction.SetSelectHdl(a3Link);
739 : 0 : aLbAuthor.SetSelectHdl(a3Link);
740 : :
741 [ # # ]: 0 : RowEnableHdl(&aCbDate);
742 [ # # ]: 0 : RowEnableHdl(&aCbAuthor);
743 [ # # ]: 0 : RowEnableHdl(&aCbRange);
744 [ # # ]: 0 : RowEnableHdl(&aCbComment);
745 : :
746 [ # # ]: 0 : Date aDate( Date::SYSTEM );
747 [ # # ]: 0 : Time aTime( Time::SYSTEM );
748 [ # # ]: 0 : aDfDate.SetDate(aDate);
749 [ # # ]: 0 : aTfDate.SetTime(aTime);
750 [ # # ]: 0 : aDfDate2.SetDate(aDate);
751 [ # # ]: 0 : aTfDate2.SetTime(aTime);
752 [ # # ]: 0 : HideRange();
753 [ # # ]: 0 : ShowAction();
754 : 0 : bModified=sal_False;
755 : :
756 [ # # ]: 0 : aLbDate.SetAccessibleRelationLabeledBy(&aCbDate);
757 [ # # ]: 0 : aLbAuthor.SetAccessibleRelationLabeledBy(&aCbAuthor);
758 [ # # ]: 0 : aLbAction.SetAccessibleRelationLabeledBy(&aCbRange);
759 [ # # ]: 0 : aEdRange.SetAccessibleRelationLabeledBy(&aCbRange);
760 [ # # ]: 0 : aBtnRange.SetAccessibleRelationLabeledBy(&aCbRange);
761 [ # # ]: 0 : aEdComment.SetAccessibleRelationLabeledBy(&aCbComment);
762 [ # # ]: 0 : aDfDate2.SetAccessibleRelationLabeledBy(&aDfDate2);
763 [ # # ]: 0 : aTfDate2.SetAccessibleRelationLabeledBy(&aTfDate2);
764 : 0 : }
765 : :
766 : 0 : void SvxTPFilter::SetRedlinTable(SvxRedlinTable* pTable)
767 : : {
768 : 0 : pRedlinTable=pTable;
769 : 0 : }
770 : :
771 : 0 : String SvxTPFilter::GetMyName() const
772 : : {
773 : 0 : return aStrMyName;
774 : : }
775 : :
776 : 0 : void SvxTPFilter::ShowDateFields(sal_uInt16 nKind)
777 : : {
778 [ # # ]: 0 : String aEmpty;
779 [ # # # # : 0 : switch(nKind)
# # # ]
780 : : {
781 : : case FLT_DATE_BEFORE:
782 [ # # ]: 0 : EnableDateLine1(sal_True);
783 [ # # ]: 0 : EnableDateLine2(sal_False);
784 : 0 : break;
785 : : case FLT_DATE_SINCE:
786 [ # # ]: 0 : EnableDateLine1(sal_True);
787 [ # # ]: 0 : EnableDateLine2(sal_False);
788 : 0 : break;
789 : : case FLT_DATE_EQUAL:
790 [ # # ]: 0 : EnableDateLine1(sal_True);
791 [ # # ]: 0 : aTfDate.Disable();
792 [ # # ]: 0 : aTfDate.SetText(aEmpty);
793 [ # # ]: 0 : EnableDateLine2(sal_False);
794 : 0 : break;
795 : : case FLT_DATE_NOTEQUAL:
796 [ # # ]: 0 : EnableDateLine1(sal_True);
797 [ # # ]: 0 : aTfDate.Disable();
798 [ # # ]: 0 : aTfDate.SetText(aEmpty);
799 [ # # ]: 0 : EnableDateLine2(sal_False);
800 : 0 : break;
801 : : case FLT_DATE_BETWEEN:
802 [ # # ]: 0 : EnableDateLine1(sal_True);
803 [ # # ]: 0 : EnableDateLine2(sal_True);
804 : 0 : break;
805 : : case FLT_DATE_SAVE:
806 [ # # ]: 0 : EnableDateLine1(sal_False);
807 [ # # ]: 0 : EnableDateLine2(sal_False);
808 : 0 : break;
809 [ # # ]: 0 : }
810 : 0 : }
811 : :
812 : 0 : void SvxTPFilter::EnableDateLine1(sal_Bool bFlag)
813 : : {
814 [ # # ][ # # ]: 0 : if(bFlag && aCbDate.IsChecked())
[ # # ]
815 : : {
816 : 0 : aDfDate.Enable();
817 : 0 : aTfDate.Enable();
818 : 0 : aIbClock.Enable();
819 : : }
820 : : else
821 : : {
822 : 0 : aDfDate.Disable();
823 : 0 : aTfDate.Disable();
824 : 0 : aIbClock.Disable();
825 : : }
826 : 0 : }
827 : 0 : void SvxTPFilter::EnableDateLine2(sal_Bool bFlag)
828 : : {
829 [ # # ]: 0 : String aEmpty;
830 [ # # ][ # # ]: 0 : if(bFlag && aCbDate.IsChecked())
[ # # ][ # # ]
831 : : {
832 [ # # ]: 0 : aFtDate2.Enable();
833 [ # # ]: 0 : aDfDate2.Enable();
834 [ # # ]: 0 : aTfDate2.Enable();
835 [ # # ]: 0 : aIbClock2.Enable();
836 : : }
837 : : else
838 : : {
839 [ # # ]: 0 : aFtDate2.Disable();
840 [ # # ]: 0 : aDfDate2.Disable();
841 [ # # ]: 0 : aDfDate2.SetText(aEmpty);
842 [ # # ]: 0 : aTfDate2.Disable();
843 [ # # ]: 0 : aTfDate2.SetText(aEmpty);
844 [ # # ]: 0 : aIbClock2.Disable();
845 [ # # ]: 0 : }
846 : 0 : }
847 : :
848 : 0 : Date SvxTPFilter::GetFirstDate() const
849 : : {
850 : 0 : return aDfDate.GetDate();
851 : : }
852 : :
853 : 0 : void SvxTPFilter::SetFirstDate(const Date &aDate)
854 : : {
855 : 0 : aDfDate.SetDate(aDate);
856 : 0 : }
857 : :
858 : 0 : Time SvxTPFilter::GetFirstTime() const
859 : : {
860 : 0 : return aTfDate.GetTime();
861 : : }
862 : :
863 : 0 : void SvxTPFilter::SetFirstTime(const Time &aTime)
864 : : {
865 : 0 : aTfDate.SetTime(aTime);
866 : 0 : }
867 : :
868 : :
869 : 0 : Date SvxTPFilter::GetLastDate() const
870 : : {
871 : 0 : return aDfDate2.GetDate();
872 : : }
873 : :
874 : 0 : void SvxTPFilter::SetLastDate(const Date &aDate)
875 : : {
876 : 0 : aDfDate2.SetDate(aDate);
877 : 0 : }
878 : :
879 : 0 : Time SvxTPFilter::GetLastTime() const
880 : : {
881 : 0 : return aTfDate2.GetTime();
882 : : }
883 : :
884 : 0 : void SvxTPFilter::SetLastTime(const Time &aTime)
885 : : {
886 : 0 : aTfDate2.SetTime(aTime);
887 : 0 : }
888 : :
889 : 0 : void SvxTPFilter::SetDateMode(sal_uInt16 nMode)
890 : : {
891 : 0 : aLbDate.SelectEntryPos(nMode);
892 : 0 : SelDateHdl(&aLbDate);
893 : 0 : }
894 : :
895 : 0 : sal_uInt16 SvxTPFilter::GetDateMode()
896 : : {
897 : 0 : return (sal_uInt16) aLbDate.GetSelectEntryPos();
898 : : }
899 : 0 : void SvxTPFilter::ClearAuthors()
900 : : {
901 : 0 : aLbAuthor.Clear();
902 : 0 : }
903 : :
904 : 0 : void SvxTPFilter::InsertAuthor( const String& rString, sal_uInt16 nPos)
905 : : {
906 : 0 : aLbAuthor.InsertEntry(rString,nPos);
907 : 0 : }
908 : :
909 : 0 : String SvxTPFilter::GetSelectedAuthor() const
910 : : {
911 : 0 : return aLbAuthor.GetSelectEntry();
912 : : }
913 : :
914 : 0 : void SvxTPFilter::SelectedAuthorPos(sal_uInt16 nPos)
915 : : {
916 : 0 : aLbAuthor.SelectEntryPos(nPos);
917 : 0 : }
918 : :
919 : 0 : sal_uInt16 SvxTPFilter::SelectAuthor(const String& aString)
920 : : {
921 : 0 : aLbAuthor.SelectEntry(aString);
922 : 0 : return aLbAuthor.GetSelectEntryPos();
923 : : }
924 : :
925 : 0 : void SvxTPFilter::SetRange(const String& rString)
926 : : {
927 : 0 : aEdRange.SetText(rString);
928 : 0 : }
929 : :
930 : 0 : String SvxTPFilter::GetRange() const
931 : : {
932 : 0 : return aEdRange.GetText();
933 : : }
934 : :
935 : 0 : void SvxTPFilter::SetFocusToRange()
936 : : {
937 : 0 : aEdRange.GrabFocus();
938 : 0 : }
939 : :
940 : 0 : void SvxTPFilter::HideRange(sal_Bool bHide)
941 : : {
942 [ # # ]: 0 : if(bHide)
943 : : {
944 : 0 : aCbRange.Hide();
945 : 0 : aEdRange.Hide();
946 : 0 : aBtnRange.Hide();
947 : : }
948 : : else
949 : : {
950 : 0 : ShowAction(sal_False);
951 : 0 : aCbRange.SetText(aRangeStr);
952 : 0 : aCbRange.Show();
953 : 0 : aEdRange.Show();
954 : 0 : aBtnRange.Show();
955 : : }
956 : 0 : }
957 : :
958 : 0 : void SvxTPFilter::SetComment(const String &rComment)
959 : : {
960 : 0 : aEdComment.SetText(rComment);
961 : 0 : }
962 : 0 : String SvxTPFilter::GetComment()const
963 : : {
964 : 0 : return aEdComment.GetText();
965 : : }
966 : :
967 : 0 : sal_Bool SvxTPFilter::IsDate()
968 : : {
969 : 0 : return aCbDate.IsChecked();
970 : : }
971 : :
972 : 0 : sal_Bool SvxTPFilter::IsAuthor()
973 : : {
974 : 0 : return aCbAuthor.IsChecked();
975 : : }
976 : :
977 : 0 : sal_Bool SvxTPFilter::IsRange()
978 : : {
979 : 0 : return aCbRange.IsChecked();
980 : : }
981 : 0 : sal_Bool SvxTPFilter::IsAction()
982 : : {
983 : 0 : return aCbRange.IsChecked();
984 : : }
985 : :
986 : 0 : sal_Bool SvxTPFilter::IsComment()
987 : : {
988 : 0 : return aCbComment.IsChecked();
989 : : }
990 : :
991 : 0 : void SvxTPFilter::CheckDate(sal_Bool bFlag)
992 : : {
993 : 0 : aCbDate.Check(bFlag);
994 : 0 : RowEnableHdl(&aCbDate);
995 : 0 : bModified=sal_False;
996 : 0 : }
997 : :
998 : 0 : void SvxTPFilter::CheckAuthor(sal_Bool bFlag)
999 : : {
1000 : 0 : aCbAuthor.Check(bFlag);
1001 : 0 : RowEnableHdl(&aCbAuthor);
1002 : 0 : bModified=sal_False;
1003 : 0 : }
1004 : :
1005 : 0 : void SvxTPFilter::CheckRange(sal_Bool bFlag)
1006 : : {
1007 : 0 : aCbRange.Check(bFlag);
1008 : 0 : RowEnableHdl(&aCbRange);
1009 : 0 : bModified=sal_False;
1010 : 0 : }
1011 : :
1012 : 0 : void SvxTPFilter::CheckAction(sal_Bool bFlag)
1013 : : {
1014 : 0 : aCbRange.Check(bFlag);
1015 : 0 : RowEnableHdl(&aCbRange);
1016 : 0 : bModified=sal_False;
1017 : 0 : }
1018 : :
1019 : 0 : void SvxTPFilter::CheckComment(sal_Bool bFlag)
1020 : : {
1021 : 0 : aCbComment.Check(bFlag);
1022 : 0 : RowEnableHdl(&aCbComment);
1023 : 0 : bModified=sal_False;
1024 : 0 : }
1025 : :
1026 : 0 : void SvxTPFilter::ShowAction(sal_Bool bShow)
1027 : : {
1028 [ # # ]: 0 : if(!bShow)
1029 : : {
1030 : 0 : aCbRange.Hide();
1031 : 0 : aLbAction.Hide();
1032 [ # # ]: 0 : aCbRange.SetHelpId(HID_REDLINING_FILTER_CB_RANGE);
1033 : : }
1034 : : else
1035 : : {
1036 : 0 : HideRange();
1037 : 0 : aCbRange.SetText(aActionStr);
1038 [ # # ]: 0 : aCbRange.SetHelpId(HID_REDLINING_FILTER_CB_ACTION);
1039 : 0 : aCbRange.Show();
1040 : 0 : aLbAction.Show();
1041 : :
1042 : : }
1043 : 0 : }
1044 : :
1045 : 0 : ListBox* SvxTPFilter::GetLbAction()
1046 : : {
1047 : 0 : return &aLbAction;
1048 : : }
1049 : :
1050 : 0 : IMPL_LINK( SvxTPFilter, SelDateHdl, ListBox*, pLb )
1051 : : {
1052 : 0 : ShowDateFields((sal_uInt16)aLbDate.GetSelectEntryPos());
1053 : 0 : ModifyHdl(pLb);
1054 : 0 : return 0;
1055 : : }
1056 : :
1057 : 0 : IMPL_LINK( SvxTPFilter, RowEnableHdl, CheckBox*, pCB )
1058 : : {
1059 [ # # ]: 0 : if(pCB==&aCbDate)
1060 : : {
1061 : 0 : aLbDate.Enable(aCbDate.IsChecked());
1062 : 0 : aLbDate.Invalidate();
1063 : 0 : EnableDateLine1(sal_False);
1064 : 0 : EnableDateLine2(sal_False);
1065 [ # # ]: 0 : if(aCbDate.IsChecked()) SelDateHdl(&aLbDate);
1066 : : }
1067 [ # # ]: 0 : else if(pCB==&aCbAuthor)
1068 : : {
1069 : 0 : aLbAuthor.Enable(aCbAuthor.IsChecked());
1070 : 0 : aLbAuthor.Invalidate();
1071 : : }
1072 [ # # ]: 0 : else if(pCB==&aCbRange)
1073 : : {
1074 : 0 : aLbAction.Enable(aCbRange.IsChecked());
1075 : 0 : aLbAction.Invalidate();
1076 : 0 : aEdRange.Enable(aCbRange.IsChecked());
1077 : 0 : aBtnRange.Enable(aCbRange.IsChecked());
1078 : : }
1079 [ # # ]: 0 : else if(pCB==&aCbComment)
1080 : : {
1081 : 0 : aEdComment.Enable(aCbComment.IsChecked());
1082 : 0 : aEdComment.Invalidate();
1083 : : }
1084 : :
1085 : 0 : ModifyHdl(pCB);
1086 : 0 : return 0;
1087 : : }
1088 : :
1089 : 0 : IMPL_LINK( SvxTPFilter, TimeHdl, ImageButton*,pIB )
1090 : : {
1091 [ # # ]: 0 : Date aDate( Date::SYSTEM );
1092 [ # # ]: 0 : Time aTime( Time::SYSTEM );
1093 [ # # ]: 0 : if(pIB==&aIbClock)
1094 : : {
1095 [ # # ]: 0 : aDfDate.SetDate(aDate);
1096 [ # # ]: 0 : aTfDate.SetTime(aTime);
1097 : : }
1098 [ # # ]: 0 : else if(pIB==&aIbClock2)
1099 : : {
1100 [ # # ]: 0 : aDfDate2.SetDate(aDate);
1101 [ # # ]: 0 : aTfDate2.SetTime(aTime);
1102 : : }
1103 [ # # ]: 0 : ModifyHdl(&aDfDate);
1104 : 0 : return 0;
1105 : : }
1106 : :
1107 : 0 : IMPL_LINK( SvxTPFilter, ModifyHdl, void*, pCtr)
1108 : : {
1109 [ # # ]: 0 : if(pCtr!=NULL)
1110 : : {
1111 [ # # ][ # # ]: 0 : if(pCtr==&aCbDate || pCtr==&aLbDate ||
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
1112 : : pCtr==&aDfDate || pCtr==&aTfDate ||
1113 : : pCtr==&aIbClock || pCtr==&aFtDate2||
1114 : : pCtr==&aDfDate2 || pCtr==&aTfDate2||
1115 : : pCtr==&aIbClock2)
1116 : : {
1117 : 0 : aModifyDateLink.Call(this);
1118 : : }
1119 [ # # ][ # # ]: 0 : else if(pCtr==&aCbAuthor || pCtr==&aLbAuthor)
1120 : : {
1121 : 0 : aModifyAuthorLink.Call(this);
1122 : : }
1123 [ # # ][ # # ]: 0 : else if(pCtr==&aCbRange || pCtr==&aEdRange ||
[ # # ]
1124 : : pCtr==&aBtnRange )
1125 : : {
1126 : 0 : aModifyRefLink.Call(this);
1127 : : }
1128 [ # # ][ # # ]: 0 : else if(pCtr==&aCbComment || pCtr==&aEdComment)
1129 : : {
1130 : 0 : aModifyComLink.Call(this);
1131 : : }
1132 : :
1133 : 0 : bModified=sal_True;
1134 : 0 : aModifyLink.Call(this);
1135 : : }
1136 : 0 : return 0;
1137 : : }
1138 : :
1139 : 0 : void SvxTPFilter::DeactivatePage()
1140 : : {
1141 [ # # ]: 0 : if(bModified)
1142 : : {
1143 [ # # ]: 0 : if(pRedlinTable!=NULL)
1144 : : {
1145 [ # # ][ # # ]: 0 : pRedlinTable->SetFilterDate(IsDate());
1146 [ # # ][ # # ]: 0 : pRedlinTable->SetDateTimeMode(GetDateMode());
1147 [ # # ][ # # ]: 0 : pRedlinTable->SetFirstDate(aDfDate.GetDate());
1148 [ # # ][ # # ]: 0 : pRedlinTable->SetLastDate(aDfDate2.GetDate());
1149 [ # # ][ # # ]: 0 : pRedlinTable->SetFirstTime(aTfDate.GetTime());
1150 [ # # ][ # # ]: 0 : pRedlinTable->SetLastTime(aTfDate2.GetTime());
1151 [ # # ][ # # ]: 0 : pRedlinTable->SetFilterAuthor(IsAuthor());
1152 [ # # ][ # # ]: 0 : pRedlinTable->SetAuthor(GetSelectedAuthor());
[ # # ]
1153 : :
1154 [ # # ][ # # ]: 0 : pRedlinTable->SetFilterComment(IsComment());
1155 : :
1156 : : utl::SearchParam aSearchParam( aEdComment.GetText(),
1157 [ # # ][ # # ]: 0 : utl::SearchParam::SRCH_REGEXP,sal_False,sal_False,sal_False );
[ # # ]
1158 : :
1159 [ # # ]: 0 : pRedlinTable->SetCommentParams(&aSearchParam);
1160 : :
1161 [ # # ][ # # ]: 0 : pRedlinTable->UpdateFilterTest();
1162 : : }
1163 : :
1164 : 0 : aReadyLink.Call(this);
1165 : : }
1166 : 0 : bModified=sal_False;
1167 : 0 : TabPage::DeactivatePage();
1168 : 0 : }
1169 : :
1170 : 0 : void SvxTPFilter::Enable( bool bEnable, bool bChild)
1171 : : {
1172 : 0 : TabPage::Enable(bEnable,bChild);
1173 [ # # ]: 0 : if(aCbDate.IsEnabled())
1174 : : {
1175 : 0 : RowEnableHdl(&aCbDate);
1176 : 0 : RowEnableHdl(&aCbAuthor);
1177 : 0 : RowEnableHdl(&aCbRange);
1178 : 0 : RowEnableHdl(&aCbComment);
1179 : : }
1180 : 0 : }
1181 : 0 : void SvxTPFilter::Disable( bool bChild)
1182 : : {
1183 : 0 : Enable( false, bChild );
1184 : 0 : }
1185 : :
1186 : 0 : IMPL_LINK( SvxTPFilter, ModifyDate, void*,pTF)
1187 : : {
1188 : :
1189 [ # # ]: 0 : Date aDate( Date::SYSTEM );
1190 : 0 : Time aTime(0);
1191 [ # # ]: 0 : if(&aDfDate==pTF)
1192 : : {
1193 [ # # ][ # # ]: 0 : if(aDfDate.GetText().Len()==0)
[ # # ]
1194 [ # # ]: 0 : aDfDate.SetDate(aDate);
1195 : :
1196 [ # # ]: 0 : if(pRedlinTable!=NULL)
1197 [ # # ][ # # ]: 0 : pRedlinTable->SetFirstDate(aDfDate.GetDate());
1198 : : }
1199 [ # # ]: 0 : else if(&aDfDate2==pTF)
1200 : : {
1201 [ # # ][ # # ]: 0 : if(aDfDate2.GetText().Len()==0)
[ # # ]
1202 [ # # ]: 0 : aDfDate2.SetDate(aDate);
1203 : :
1204 [ # # ]: 0 : if(pRedlinTable!=NULL)
1205 [ # # ][ # # ]: 0 : pRedlinTable->SetLastDate(aDfDate2.GetDate());
1206 : : }
1207 [ # # ]: 0 : else if(&aTfDate==pTF)
1208 : : {
1209 [ # # ][ # # ]: 0 : if(aTfDate.GetText().Len()==0)
[ # # ]
1210 [ # # ]: 0 : aTfDate.SetTime(aTime);
1211 : :
1212 [ # # ]: 0 : if(pRedlinTable!=NULL)
1213 [ # # ][ # # ]: 0 : pRedlinTable->SetFirstTime(aTfDate.GetTime());
1214 : : }
1215 [ # # ]: 0 : else if(&aTfDate2==pTF)
1216 : : {
1217 [ # # ][ # # ]: 0 : if(aTfDate2.GetText().Len()==0)
[ # # ]
1218 [ # # ]: 0 : aTfDate2.SetTime(aTime);
1219 : :
1220 [ # # ]: 0 : if(pRedlinTable!=NULL)
1221 [ # # ][ # # ]: 0 : pRedlinTable->SetLastTime(aTfDate2.GetTime());
1222 : :
1223 : : }
1224 [ # # ]: 0 : ModifyHdl(&aDfDate);
1225 : 0 : return 0;
1226 : : }
1227 : :
1228 : 0 : IMPL_LINK( SvxTPFilter, RefHandle, PushButton*, pRef )
1229 : : {
1230 [ # # ]: 0 : if(pRef!=NULL)
1231 : : {
1232 : 0 : aRefLink.Call(this);
1233 : : }
1234 : 0 : return 0;
1235 : : }
1236 : :
1237 : 139 : static Size gDiffSize;
1238 : : //============================================================================
1239 : : // class SvxAcceptChgCtr
1240 : : //----------------------------------------------------------------------------
1241 : :
1242 : 0 : SvxAcceptChgCtr::SvxAcceptChgCtr( Window* pParent, const ResId& rResId )
1243 : : : Control(pParent,rResId ),
1244 [ # # ][ # # ]: 0 : aTCAccept(this,WB_TABSTOP |WB_DIALOGCONTROL)
1245 : : {
1246 [ # # ][ # # ]: 0 : pTPFilter=new SvxTPFilter(&aTCAccept);
1247 [ # # ][ # # ]: 0 : pTPView=new SvxTPView(&aTCAccept);
1248 [ # # ]: 0 : aMinSize=pTPView->GetMinSizePixel();
1249 : :
1250 [ # # ][ # # ]: 0 : aTCAccept.InsertPage( TP_VIEW, pTPView->GetMyName());
[ # # ]
1251 [ # # ][ # # ]: 0 : aTCAccept.InsertPage( TP_FILTER, pTPFilter->GetMyName());
[ # # ]
1252 [ # # ]: 0 : aTCAccept.SetTabPage( TP_VIEW, pTPView);
1253 [ # # ]: 0 : aTCAccept.SetTabPage( TP_FILTER, pTPFilter);
1254 [ # # ]: 0 : aTCAccept.SetHelpId(HID_REDLINING_TABCONTROL);
1255 : :
1256 [ # # ]: 0 : aTCAccept.SetTabPageSizePixel(aMinSize);
1257 [ # # ]: 0 : Size aSize=aTCAccept.GetSizePixel();
1258 : :
1259 : 0 : gDiffSize.Height()=aSize.Height()-aMinSize.Height();
1260 : 0 : gDiffSize.Width()=aSize.Width()-aMinSize.Width();
1261 : :
1262 : :
1263 [ # # ][ # # ]: 0 : pTPFilter->SetRedlinTable(GetViewTable());
1264 [ # # ]: 0 : WinBits nWinStyle=GetStyle()|WB_DIALOGCONTROL;
1265 [ # # ]: 0 : SetStyle(nWinStyle);
1266 : :
1267 [ # # ]: 0 : aTCAccept.Show();
1268 [ # # ]: 0 : ShowViewPage();
1269 [ # # ]: 0 : Resize();
1270 : 0 : }
1271 : :
1272 [ # # ]: 0 : SvxAcceptChgCtr::~SvxAcceptChgCtr()
1273 : : {
1274 [ # # ][ # # ]: 0 : delete pTPView;
1275 [ # # ][ # # ]: 0 : delete pTPFilter;
1276 [ # # ]: 0 : }
1277 : :
1278 : 0 : void SvxAcceptChgCtr::Resize()
1279 : : {
1280 [ # # ]: 0 : aMinSize=pTPView->GetMinSizePixel();
1281 : 0 : Size aSize=GetOutputSizePixel();
1282 : 0 : sal_Bool bFlag=sal_False;
1283 : :
1284 [ # # ]: 0 : if(aMinSize.Height()>aSize.Height())
1285 : : {
1286 : 0 : aSize.Height()=aMinSize.Height();
1287 : 0 : bFlag=sal_True;
1288 : : }
1289 [ # # ]: 0 : if(aMinSize.Width()>aSize.Width())
1290 : : {
1291 : 0 : aSize.Width()=aMinSize.Width();
1292 : 0 : bFlag=sal_True;
1293 : : }
1294 : :
1295 [ # # ]: 0 : if(bFlag)
1296 : : {
1297 [ # # ]: 0 : SetOutputSizePixel(aSize);
1298 [ # # ]: 0 : aMinSizeLink.Call(this);
1299 : : }
1300 : :
1301 : 0 : aSize.Height()-=2;
1302 : 0 : aSize.Width()-=2;
1303 [ # # ]: 0 : aTCAccept.SetSizePixel(aSize);
1304 : 0 : }
1305 : :
1306 : 0 : Size SvxAcceptChgCtr::GetMinSizePixel() const
1307 : : {
1308 : 0 : Size aSize=pTPView->GetMinSizePixel();
1309 : 0 : aSize.Height()+=gDiffSize.Height();
1310 : 0 : aSize.Width()+=gDiffSize.Width();
1311 : 0 : return aSize;
1312 : : }
1313 : :
1314 : 0 : void SvxAcceptChgCtr::ShowFilterPage()
1315 : : {
1316 : 0 : aTCAccept.SetCurPageId(TP_FILTER);
1317 : 0 : }
1318 : :
1319 : 0 : void SvxAcceptChgCtr::ShowViewPage()
1320 : : {
1321 : 0 : aTCAccept.SetCurPageId(TP_VIEW);
1322 : 0 : }
1323 : :
1324 : 0 : SvxTPFilter* SvxAcceptChgCtr::GetFilterPage()
1325 : : {
1326 : 0 : return pTPFilter;
1327 : : }
1328 : :
1329 : 0 : SvxTPView* SvxAcceptChgCtr::GetViewPage()
1330 : : {
1331 : 0 : return pTPView;
1332 : : }
1333 : :
1334 : 0 : SvxRedlinTable* SvxAcceptChgCtr::GetViewTable()
1335 : : {
1336 [ # # ]: 0 : if(pTPView!=NULL)
1337 : : {
1338 : 0 : return pTPView->GetTableControl();
1339 : : }
1340 : : else
1341 : : {
1342 : 0 : return NULL;
1343 : : }
1344 [ + - ][ + - ]: 417 : }
1345 : :
1346 : :
1347 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|