1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: optpage.cxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_sw.hxx"
33 #ifdef SW_DLLIMPLEMENTATION
34 #undef SW_DLLIMPLEMENTATION
38 #include <hintids.hxx>
42 #include <vcl/svapp.hxx>
44 #define _SVSTDARR_STRINGSDTOR
45 #include <svtools/svstdarr.hxx>
47 #include <svtools/cjkoptions.hxx>
48 #include <svtools/ctrltool.hxx>
49 #include <svtools/eitem.hxx>
50 #include <svx/htmlmode.hxx>
51 #include <sfx2/printer.hxx>
52 #include <sfx2/bindings.hxx>
53 #include <svx/xtable.hxx>
54 #include <svx/fhgtitem.hxx>
55 #include <svx/fontitem.hxx>
56 #include <svx/langitem.hxx>
57 #include <svx/dlgutil.hxx>
59 #include <charatr.hxx>
60 #include <swtypes.hxx>
67 #ifndef IDOCUMENTDEVICEACCESS_HXX_INCLUDED
68 #include <IDocumentDeviceAccess.hxx>
70 #include <swmodule.hxx>
73 #include <cfgitems.hxx> //Items fuer Sw-Seiten
74 #include <poolfmt.hxx>
75 #include <uiitems.hxx>
77 #include <optpage.hxx>
78 #include <swprtopt.hxx>
83 #include <srcview.hxx>
85 #include <crstate.hxx>
86 #include <viewopt.hxx>
88 #include <globals.hrc>
94 #include <redlopt.hrc>
99 #include <svx/strarray.hxx>
100 #include <svtools/slstitm.hxx>
101 #include <sfx2/request.hxx>
102 #include <swwrtshitem.hxx>
103 #include <svtools/ctloptions.hxx>
108 using namespace ::com::sun::star
;
111 /*******************************************************
112 ******************************************************/
114 /*-----------------31.08.96 10.16-------------------
115 TabPage Anzeige/Inhalt
116 --------------------------------------------------*/
118 SwContentOptPage::SwContentOptPage( Window
* pParent
,
119 const SfxItemSet
& rCoreSet
) :
120 SfxTabPage( pParent
, SW_RES( TP_CONTENT_OPT
), rCoreSet
),
121 aLineFL ( this, SW_RES( FL_LINE
) ),
122 aCrossCB ( this, SW_RES( CB_CROSS
) ),
123 aSolidHandleCB( this, SW_RES( CB_HANDLE
) ),
124 aBigHandleCB ( this, SW_RES( CB_BIGHANDLE
) ),
126 aWindowFL ( this, SW_RES( FL_WINDOW
) ),
127 aHScrollBox ( this, SW_RES( CB_HSCROLL
) ),
128 aVScrollBox ( this, SW_RES( CB_VSCROLL
) ),
129 aAnyRulerCB ( this, SW_RES( CB_ANY_RULER
) ),
130 aHRulerCBox ( this, SW_RES( CB_HRULER
) ),
131 aHMetric ( this, SW_RES( LB_HMETRIC
) ),
132 aVRulerCBox ( this, SW_RES( CB_VRULER
) ),
133 aVRulerRightCBox( this, SW_RES( CB_VRULER_RIGHT
) ),
134 aVMetric ( this, SW_RES( LB_VMETRIC
) ),
135 aSmoothCBox ( this, SW_RES( CB_SMOOTH_SCROLL
) ),
137 aDispFL ( this, SW_RES( FL_DISP
) ),
138 aGrfCB ( this, SW_RES( CB_GRF
) ),
139 aTblCB ( this, SW_RES( CB_TBL
) ),
140 aDrwCB ( this, SW_RES( CB_DRWFAST
) ),
141 aFldNameCB ( this, SW_RES( CB_FIELD
) ),
142 aPostItCB ( this, SW_RES( CB_POSTIT
) ),
144 aSettingsFL ( this, SW_RES( FL_SETTINGS
) ),
145 aMetricFT ( this, SW_RES( FT_METRIC
) ),
146 aMetricLB ( this, SW_RES( LB_METRIC
) )
149 const SfxPoolItem
* pItem
;
150 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_HTML_MODE
, FALSE
, &pItem
)
151 && ((SfxUInt16Item
*)pItem
)->GetValue() & HTMLMODE_ON
)
157 SvtCJKOptions aCJKOptions
;
158 if(aCJKOptions
.IsVerticalTextEnabled() )
160 Point
aSmoothPos(aSmoothCBox
.GetPosPixel());
161 aSmoothPos
.Y() += aSmoothPos
.Y() - aVRulerCBox
.GetPosPixel().Y();
162 aSmoothCBox
.SetPosPixel(aSmoothPos
);
165 aVRulerRightCBox
.Hide();
166 aVRulerCBox
.SetClickHdl(LINK(this, SwContentOptPage
, VertRulerHdl
));
167 aAnyRulerCB
.SetClickHdl(LINK(this, SwContentOptPage
, AnyRulerHdl
));
169 SvxStringArray
aMetricArr( SW_RES( STR_ARR_METRIC
) );
170 for ( USHORT i
= 0; i
< aMetricArr
.Count(); ++i
)
172 String sMetric
= aMetricArr
.GetStringByPos( i
);
173 FieldUnit eFUnit
= (FieldUnit
)aMetricArr
.GetValue( i
);
182 case FUNIT_CHAR
: // add two units , 'character' and 'line' , their ticks are not fixed
185 // nur diese Metriken benutzen
186 // a horizontal ruler has not the 'line' unit
187 // there isn't 'line' unit in HTML format
188 if ( eFUnit
!= FUNIT_LINE
)
190 USHORT nPos
= aMetricLB
.InsertEntry( sMetric
);
191 aMetricLB
.SetEntryData( nPos
, (void*)(long)eFUnit
);
192 aHMetric
.InsertEntry( sMetric
);
193 aHMetric
.SetEntryData( nPos
, (void*)(long)eFUnit
);
195 // a vetical ruler has not the 'character' unit
196 if ( eFUnit
!= FUNIT_CHAR
)
198 USHORT nPos
= aVMetric
.InsertEntry( sMetric
);
199 aVMetric
.SetEntryData( nPos
, (void*)(long)eFUnit
);
202 default:;//prevent warning
207 /*-----------------31.08.96 13.58-------------------
209 --------------------------------------------------*/
210 SwContentOptPage::~SwContentOptPage()
214 /*-----------------31.08.96 13.58-------------------
216 --------------------------------------------------*/
217 SfxTabPage
* SwContentOptPage::Create( Window
* pParent
,
218 const SfxItemSet
& rAttrSet
)
220 return new SwContentOptPage(pParent
, rAttrSet
);
222 /* -----------------------------07.04.01 16:57--------------------------------
224 ---------------------------------------------------------------------------*/
225 static void lcl_SelectMetricLB(ListBox
& rMetric
, USHORT nSID
, const SfxItemSet
& rSet
)
227 const SfxPoolItem
* pItem
;
228 if( rSet
.GetItemState( nSID
, FALSE
, &pItem
) >= SFX_ITEM_AVAILABLE
)
230 FieldUnit eFieldUnit
= (FieldUnit
)((SfxUInt16Item
*)pItem
)->GetValue();
231 for ( USHORT i
= 0; i
< rMetric
.GetEntryCount(); ++i
)
233 if ( (int)(sal_IntPtr
)rMetric
.GetEntryData( i
) == (int)eFieldUnit
)
235 rMetric
.SelectEntryPos( i
);
242 /*-----------------31.08.96 13.58-------------------
244 --------------------------------------------------*/
245 void SwContentOptPage::Reset(const SfxItemSet
& rSet
)
247 const SwElemItem
* pElemAttr
= 0;
249 rSet
.GetItemState( FN_PARAM_ELEM
, FALSE
,
250 (const SfxPoolItem
**)&pElemAttr
);
253 aTblCB
.Check (pElemAttr
->bTable
);
254 aGrfCB
.Check (pElemAttr
->bGraphic
);
255 aDrwCB
.Check (pElemAttr
->bDrawing
);
256 aFldNameCB
.Check (pElemAttr
->bFieldName
);
257 aPostItCB
.Check (pElemAttr
->bNotes
);
258 aCrossCB
.Check( pElemAttr
->bCrosshair
);
259 aSolidHandleCB
.Check( !pElemAttr
->bHandles
);
260 aBigHandleCB
.Check(pElemAttr
->bBigHandles
);
261 aHScrollBox
.Check( pElemAttr
->bHorzScrollbar
);
262 aVScrollBox
.Check( pElemAttr
->bVertScrollbar
);
263 aAnyRulerCB
.Check( pElemAttr
->bAnyRuler
);
264 aHRulerCBox
.Check( pElemAttr
->bHorzRuler
);
265 aVRulerCBox
.Check( pElemAttr
->bVertRuler
);
266 aVRulerRightCBox
.Check(pElemAttr
->bVertRulerRight
);
267 aSmoothCBox
.Check( pElemAttr
->bSmoothScroll
);
269 aMetricLB
.SetNoSelection();
270 lcl_SelectMetricLB(aMetricLB
, SID_ATTR_METRIC
, rSet
);
271 lcl_SelectMetricLB(aHMetric
, FN_HSCROLL_METRIC
, rSet
);
272 lcl_SelectMetricLB(aVMetric
, FN_VSCROLL_METRIC
, rSet
);
273 AnyRulerHdl(&aAnyRulerCB
);
276 /*-----------------31.08.96 13.58-------------------
278 --------------------------------------------------*/
279 BOOL
SwContentOptPage::FillItemSet(SfxItemSet
& rSet
)
281 const SwElemItem
* pOldAttr
= (const SwElemItem
*)
282 GetOldItem(GetItemSet(), FN_PARAM_ELEM
);
287 aElem
.bTable
= aTblCB
.IsChecked();
288 aElem
.bGraphic
= aGrfCB
.IsChecked();
289 aElem
.bDrawing
= aDrwCB
.IsChecked();
290 aElem
.bFieldName
= aFldNameCB
.IsChecked();
291 aElem
.bNotes
= aPostItCB
.IsChecked();
292 aElem
.bCrosshair
= aCrossCB
.IsChecked();
293 aElem
.bHandles
= !aSolidHandleCB
.IsChecked();
294 aElem
.bBigHandles
= aBigHandleCB
.IsChecked();
295 aElem
.bHorzScrollbar
= aHScrollBox
.IsChecked();
296 aElem
.bVertScrollbar
= aVScrollBox
.IsChecked();
297 aElem
.bAnyRuler
= aAnyRulerCB
.IsChecked();
298 aElem
.bHorzRuler
= aHRulerCBox
.IsChecked();
299 aElem
.bVertRuler
= aVRulerCBox
.IsChecked();
300 aElem
.bVertRulerRight
= aVRulerRightCBox
.IsChecked();
301 aElem
.bSmoothScroll
= aSmoothCBox
.IsChecked();
304 BOOL bRet
= !pOldAttr
|| aElem
!= *pOldAttr
;
306 bRet
= 0 != rSet
.Put(aElem
);
307 USHORT nMPos
= aMetricLB
.GetSelectEntryPos();
308 USHORT nGlobalMetricPos
= nMPos
;
309 if ( nMPos
!= aMetricLB
.GetSavedValue() )
311 // Doppel-Cast fuer VA3.0
312 USHORT nFieldUnit
= (USHORT
)(long)aMetricLB
.GetEntryData( nMPos
);
313 rSet
.Put( SfxUInt16Item( SID_ATTR_METRIC
, (UINT16
)nFieldUnit
) );
317 nMPos
= aHMetric
.GetSelectEntryPos();
318 if ( nMPos
!= aHMetric
.GetSavedValue() || nMPos
!= nGlobalMetricPos
)
320 // Doppel-Cast fuer VA3.0
321 USHORT nFieldUnit
= (USHORT
)(long)aHMetric
.GetEntryData( nMPos
);
322 rSet
.Put( SfxUInt16Item( FN_HSCROLL_METRIC
, (UINT16
)nFieldUnit
) );
325 nMPos
= aVMetric
.GetSelectEntryPos();
326 if ( nMPos
!= aVMetric
.GetSavedValue() || nMPos
!= nGlobalMetricPos
)
328 // Doppel-Cast fuer VA3.0
329 USHORT nFieldUnit
= (USHORT
)(long)aVMetric
.GetEntryData( nMPos
);
330 rSet
.Put( SfxUInt16Item( FN_VSCROLL_METRIC
, (UINT16
)nFieldUnit
) );
335 /* -----------------------------05.03.2002 15:07------------------------------
337 ---------------------------------------------------------------------------*/
338 IMPL_LINK(SwContentOptPage
, VertRulerHdl
, CheckBox
*, pBox
)
340 aVRulerRightCBox
.Enable(pBox
->IsEnabled() && pBox
->IsChecked());
343 /* -----------------20.09.2002 11:30-----------------
345 * --------------------------------------------------*/
346 IMPL_LINK( SwContentOptPage
, AnyRulerHdl
, CheckBox
*, pBox
)
348 BOOL bChecked
= pBox
->IsChecked();
349 aHRulerCBox
.Enable(bChecked
);
350 aHMetric
.Enable(bChecked
);
351 aVRulerCBox
.Enable(bChecked
);
352 aVMetric
.Enable(bChecked
);
353 VertRulerHdl(&aVRulerCBox
);
356 /*----------------- OS 27.01.95 -----------------------
357 TabPage Drucker Zusatzeinstellungen
358 -------------------------------------------------------*/
359 SwAddPrinterTabPage::SwAddPrinterTabPage( Window
* pParent
,
360 const SfxItemSet
& rCoreSet
) :
361 SfxTabPage( pParent
, SW_RES( TP_OPTPRINT_PAGE
), rCoreSet
),
362 aFL1 (this, SW_RES(FL_1
)),
363 aGrfCB (this, SW_RES(CB_PGRF
)),
364 aTabCB (this, SW_RES(CB_PTAB
)),
365 aDrawCB (this, SW_RES(CB_PDRAW
)),
366 aCtrlFldCB (this, SW_RES(CB_CTRLFLD
)),
367 aBackgroundCB (this, SW_RES(CB_BACKGROUND
)),
368 aBlackFontCB (this, SW_RES(CB_BLACK_FONT
)),
369 aPrintHiddenTextCB(this, SW_RES(CB_HIDDEN_TEXT
)),
370 aPrintTextPlaceholderCB(this, SW_RES(CB_TEXT_PLACEHOLDER
)),
371 aSeparatorLFL (this, SW_RES(FL_SEP_PRT_LEFT
)),
372 aFL2 (this, SW_RES(FL_2
)),
373 aLeftPageCB (this, SW_RES(CB_LEFTP
)),
374 aRightPageCB (this, SW_RES(CB_RIGHTP
)),
375 aReverseCB (this, SW_RES(CB_REVERSE
)),
376 aProspectCB (this, SW_RES(CB_PROSPECT
)),
377 aProspectCB_RTL (this, SW_RES(CB_PROSPECT_RTL
)),
378 aSeparatorRFL (this, SW_RES(FL_SEP_PRT_RIGHT
)),
379 aNoRB (this, SW_RES(RB_NO
)),
380 aOnlyRB (this, SW_RES(RB_ONLY
)),
381 aEndRB (this, SW_RES(RB_END
)),
382 aEndPageRB (this, SW_RES(RB_PAGEEND
)),
383 aFL3 (this, SW_RES(FL_3
)),
384 aFL4 (this, SW_RES(FL_4
)),
385 aPrintEmptyPagesCB(this, SW_RES(CB_PRINTEMPTYPAGES
)),
386 aSingleJobsCB (this, SW_RES(CB_SINGLEJOBS
)),
387 aPaperFromSetupCB(this, SW_RES(CB_PAPERFROMSETUP
)),
388 aFaxFT (this, SW_RES(FT_FAX
)),
389 aFaxLB (this, SW_RES(LB_FAX
)),
390 sNone(SW_RES(ST_NONE
)),
391 bAttrModified( FALSE
),
396 Link aLk
= LINK( this, SwAddPrinterTabPage
, AutoClickHdl
);
397 aGrfCB
.SetClickHdl( aLk
);
398 aRightPageCB
.SetClickHdl( aLk
);
399 aLeftPageCB
.SetClickHdl( aLk
);
400 aTabCB
.SetClickHdl( aLk
);
401 aDrawCB
.SetClickHdl( aLk
);
402 aCtrlFldCB
.SetClickHdl( aLk
);
403 aBackgroundCB
.SetClickHdl( aLk
);
404 aBlackFontCB
.SetClickHdl( aLk
);
405 aPrintHiddenTextCB
.SetClickHdl( aLk
);
406 aPrintTextPlaceholderCB
.SetClickHdl( aLk
);
407 aReverseCB
.SetClickHdl( aLk
);
408 aProspectCB
.SetClickHdl( aLk
);
409 aProspectCB_RTL
.SetClickHdl( aLk
);
410 aPaperFromSetupCB
.SetClickHdl( aLk
);
411 aPrintEmptyPagesCB
.SetClickHdl( aLk
);
412 aEndPageRB
.SetClickHdl( aLk
);
413 aEndRB
.SetClickHdl( aLk
);
414 aOnlyRB
.SetClickHdl( aLk
);
415 aNoRB
.SetClickHdl( aLk
);
416 aSingleJobsCB
.SetClickHdl( aLk
);
417 aFaxLB
.SetSelectHdl( LINK( this, SwAddPrinterTabPage
, SelectHdl
) );
419 const SfxPoolItem
* pItem
;
420 if(SFX_ITEM_SET
== rCoreSet
.GetItemState(SID_HTML_MODE
, FALSE
, &pItem
)
421 && ((SfxUInt16Item
*)pItem
)->GetValue() & HTMLMODE_ON
)
425 aRightPageCB
.Hide();
426 aPrintHiddenTextCB
.Hide();
427 aPrintTextPlaceholderCB
.Hide();
428 Point
rPt(aReverseCB
.GetPosPixel());
429 rPt
.setX(rPt
.getX() + 15); // indent
430 aProspectCB_RTL
.SetPosPixel(rPt
);
431 aReverseCB
.SetPosPixel(aLeftPageCB
.GetPosPixel());
432 aProspectCB
.SetPosPixel(aRightPageCB
.GetPosPixel());
433 aPrintHiddenTextCB
.SetPosPixel(aBlackFontCB
.GetPosPixel());
434 aBlackFontCB
.SetPosPixel(aBackgroundCB
.GetPosPixel());
435 aBackgroundCB
.SetPosPixel(aCtrlFldCB
.GetPosPixel());
436 aCtrlFldCB
.SetPosPixel(aDrawCB
.GetPosPixel());
438 aProspectCB_RTL
.Disable();
439 SvtCTLOptions aCTLOptions
;
440 aProspectCB_RTL
.Show(aCTLOptions
.IsCTLFontEnabled());
443 //------------------------------------------------------------------------
445 void SwAddPrinterTabPage::SetPreview(BOOL bPrev
)
451 aLeftPageCB
.Disable();
452 aRightPageCB
.Disable();
453 aProspectCB
.Disable();
454 aProspectCB_RTL
.Disable();
459 aEndPageRB
.Disable();
463 //------------------------------------------------------------------------
465 SfxTabPage
* SwAddPrinterTabPage::Create( Window
* pParent
,
466 const SfxItemSet
& rAttrSet
)
468 return ( new SwAddPrinterTabPage( pParent
, rAttrSet
) );
470 //------------------------------------------------------------------------
473 BOOL
SwAddPrinterTabPage::FillItemSet( SfxItemSet
& rCoreSet
)
477 SwAddPrinterItem
aAddPrinterAttr (FN_PARAM_ADDPRINTER
);
478 aAddPrinterAttr
.bPrintGraphic
= aGrfCB
.IsChecked();
479 aAddPrinterAttr
.bPrintTable
= aTabCB
.IsChecked();
480 aAddPrinterAttr
.bPrintDraw
= aDrawCB
.IsChecked();
481 aAddPrinterAttr
.bPrintControl
= aCtrlFldCB
.IsChecked();
482 aAddPrinterAttr
.bPrintPageBackground
= aBackgroundCB
.IsChecked();
483 aAddPrinterAttr
.bPrintBlackFont
= aBlackFontCB
.IsChecked();
484 aAddPrinterAttr
.bPrintHiddenText
= aPrintHiddenTextCB
.IsChecked();
485 aAddPrinterAttr
.bPrintTextPlaceholder
= aPrintTextPlaceholderCB
.IsChecked();
487 aAddPrinterAttr
.bPrintLeftPage
= aLeftPageCB
.IsChecked();
488 aAddPrinterAttr
.bPrintRightPage
= aRightPageCB
.IsChecked();
489 aAddPrinterAttr
.bPrintReverse
= aReverseCB
.IsChecked();
490 aAddPrinterAttr
.bPrintProspect
= aProspectCB
.IsChecked();
491 aAddPrinterAttr
.bPrintProspect_RTL
= aProspectCB_RTL
.IsChecked();
492 aAddPrinterAttr
.bPaperFromSetup
= aPaperFromSetupCB
.IsChecked();
493 aAddPrinterAttr
.bPrintEmptyPages
= aPrintEmptyPagesCB
.IsChecked();
494 aAddPrinterAttr
.bPrintSingleJobs
= aSingleJobsCB
.IsChecked();
496 if (aNoRB
.IsChecked()) aAddPrinterAttr
.nPrintPostIts
=
498 if (aOnlyRB
.IsChecked()) aAddPrinterAttr
.nPrintPostIts
=
500 if (aEndRB
.IsChecked()) aAddPrinterAttr
.nPrintPostIts
=
502 if (aEndPageRB
.IsChecked()) aAddPrinterAttr
.nPrintPostIts
=
505 String sFax
= aFaxLB
.GetSelectEntry();
506 aAddPrinterAttr
.sFaxName
= sNone
== sFax
? aEmptyStr
: sFax
;
507 rCoreSet
.Put(aAddPrinterAttr
);
509 return bAttrModified
;
511 //------------------------------------------------------------------------
514 void SwAddPrinterTabPage::Reset( const SfxItemSet
& )
516 const SfxItemSet
& rSet
= GetItemSet();
517 const SwAddPrinterItem
* pAddPrinterAttr
= 0;
519 if( SFX_ITEM_SET
== rSet
.GetItemState( FN_PARAM_ADDPRINTER
, FALSE
,
520 (const SfxPoolItem
**)&pAddPrinterAttr
))
522 aGrfCB
.Check( pAddPrinterAttr
->bPrintGraphic
);
523 aTabCB
.Check( pAddPrinterAttr
->bPrintTable
);
524 aDrawCB
.Check( pAddPrinterAttr
->bPrintDraw
);
525 aCtrlFldCB
.Check( pAddPrinterAttr
->bPrintControl
);
526 aBackgroundCB
.Check( pAddPrinterAttr
->bPrintPageBackground
);
527 aBlackFontCB
.Check( pAddPrinterAttr
->bPrintBlackFont
);
528 aPrintHiddenTextCB
.Check( pAddPrinterAttr
->bPrintHiddenText
);
529 aPrintTextPlaceholderCB
.Check(pAddPrinterAttr
->bPrintTextPlaceholder
);
530 aLeftPageCB
.Check( pAddPrinterAttr
->bPrintLeftPage
);
531 aRightPageCB
.Check( pAddPrinterAttr
->bPrintRightPage
);
532 aReverseCB
.Check( pAddPrinterAttr
->bPrintReverse
);
533 aPaperFromSetupCB
.Check(pAddPrinterAttr
->bPaperFromSetup
);
534 aPrintEmptyPagesCB
.Check(pAddPrinterAttr
->bPrintEmptyPages
);
535 aProspectCB
.Check( pAddPrinterAttr
->bPrintProspect
);
536 aProspectCB_RTL
.Check( pAddPrinterAttr
->bPrintProspect_RTL
);
537 aSingleJobsCB
.Check( pAddPrinterAttr
->bPrintSingleJobs
);
539 aNoRB
.Check (pAddPrinterAttr
->nPrintPostIts
== POSTITS_NONE
) ;
540 aOnlyRB
.Check (pAddPrinterAttr
->nPrintPostIts
== POSTITS_ONLY
) ;
541 aEndRB
.Check (pAddPrinterAttr
->nPrintPostIts
== POSTITS_ENDDOC
) ;
542 aEndPageRB
.Check (pAddPrinterAttr
->nPrintPostIts
== POSTITS_ENDPAGE
) ;
543 aFaxLB
.SelectEntry( pAddPrinterAttr
->sFaxName
);
545 if (aProspectCB
.IsChecked())
546 aProspectCB_RTL
.Enable(TRUE
);
548 aProspectCB_RTL
.Disable();
551 //-----------------------------------------------------------------------
554 void SwAddPrinterTabPage::Init()
558 //------------------------------------------------------------------------
561 IMPL_LINK_INLINE_START( SwAddPrinterTabPage
, AutoClickHdl
, CheckBox
*, EMPTYARG
)
563 bAttrModified
= TRUE
;
564 if (aProspectCB
.IsChecked())
565 aProspectCB_RTL
.Enable(TRUE
);
568 aProspectCB_RTL
.Check( FALSE
);
569 aProspectCB_RTL
.Disable();
573 IMPL_LINK_INLINE_END( SwAddPrinterTabPage
, AutoClickHdl
, CheckBox
*, EMPTYARG
)
575 //------------------------------------------------------------------------
578 void SwAddPrinterTabPage::SetFax( const SvStringsDtor
& rFaxLst
)
580 aFaxLB
.InsertEntry(sNone
);
581 for ( USHORT i
= 0; i
< rFaxLst
.Count(); ++i
)
582 aFaxLB
.InsertEntry( *rFaxLst
.GetObject(i
) );
583 aFaxLB
.SelectEntryPos(0);
586 //------------------------------------------------------------------------
589 IMPL_LINK_INLINE_START( SwAddPrinterTabPage
, SelectHdl
, ListBox
*, EMPTYARG
)
594 IMPL_LINK_INLINE_END( SwAddPrinterTabPage
, SelectHdl
, ListBox
*, EMPTYARG
)
596 void SwAddPrinterTabPage::PageCreated (SfxAllItemSet aSet
)
598 //SFX_ITEMSET_ARG (&aSet,pListItem,SfxStringListItem,SID_FAX_LIST,sal_False);
599 SFX_ITEMSET_ARG (&aSet
,pListItem
,SfxBoolItem
,SID_FAX_LIST
,sal_False
);
600 SFX_ITEMSET_ARG (&aSet
,pPreviewItem
,SfxBoolItem
,SID_PREVIEWFLAG_TYPE
,sal_False
);
603 SetPreview(pPreviewItem
->GetValue());
606 if (pListItem
&& pListItem
->GetValue())
608 SvStringsDtor aFaxList
;
609 const std::vector
<rtl::OUString
>& rPrinters
= Printer::GetPrinterQueues();
610 for (unsigned int i
= 0; i
< rPrinters
.size(); ++i
)
612 String
* pString
= new String( rPrinters
[i
] );
613 String
* &rpString
= pString
;
614 aFaxList
.Insert(rpString
, 0);
617 /* SvStringsDtor aFaxList;
618 const List *pList = (pListItem)->GetList();
619 sal_uInt32 nCount = pList->Count();
620 for(sal_uInt32 i = 0; i < nCount ; i++)
622 String* pString = (String*)(pList->GetObject(i));
623 String* &rpString = pString;
624 aFaxList.Insert(rpString, 0 );
630 /*-----------------03.09.96 11.53-------------------
631 Tabpage Standardfonts
632 --------------------------------------------------*/
635 SwStdFontTabPage::SwStdFontTabPage( Window
* pParent
,
636 const SfxItemSet
& rSet
) :
637 SfxTabPage( pParent
, SW_RES( TP_STD_FONT
), rSet
),
638 aStdChrFL (this, SW_RES(FL_STDCHR
)),
639 aTypeFT( this, SW_RES( FT_TYPE
)),
641 aStandardLbl(this, SW_RES(FT_STANDARD
)),
642 aStandardBox(this, SW_RES(LB_STANDARD
)),
644 aHeightFT( this, SW_RES( FT_SIZE
)),
645 aStandardHeightLB(this, SW_RES( LB_STANDARD_SIZE
)),
647 aTitleLbl (this, SW_RES(FT_TITLE
)),
648 aTitleBox (this, SW_RES(LB_TITLE
)),
649 aTitleHeightLB( this, SW_RES( LB_TITLE_SIZE
)),
651 aListLbl (this, SW_RES(FT_LIST
)),
652 aListBox (this, SW_RES(LB_LIST
)),
653 aListHeightLB( this, SW_RES( LB_LIST_SIZE
)),
655 aLabelLbl (this, SW_RES(FT_LABEL
)),
656 aLabelBox (this, SW_RES(LB_LABEL
)),
657 aLabelHeightLB( this, SW_RES( LB_LABEL_SIZE
)),
659 aIdxLbl (this, SW_RES(FT_IDX
)),
660 aIdxBox (this, SW_RES(LB_IDX
)),
661 aIndexHeightLB( this, SW_RES( LB_INDEX_SIZE
)),
663 aDocOnlyCB (this, SW_RES(CB_DOCONLY
)),
664 aStandardPB (this, SW_RES(PB_STANDARD
)),
669 eLanguage( GetAppLanguage() ),
672 bSetListDefault(TRUE
),
673 bLabelDefault(FALSE
),
674 bSetLabelDefault(TRUE
),
676 bSetIdxDefault(TRUE
),
677 bDeletePrinter(FALSE
),
679 bListHeightDefault (FALSE
),
680 bSetListHeightDefault (FALSE
),
681 bLabelHeightDefault (FALSE
),
682 bSetLabelHeightDefault(FALSE
),
683 bIndexHeightDefault (FALSE
),
684 bSetIndexHeightDefault (FALSE
),
686 nFontGroup(FONT_GROUP_DEFAULT
),
688 sScriptWestern(SW_RES(ST_SCRIPT_WESTERN
)),
689 sScriptAsian(SW_RES(ST_SCRIPT_ASIAN
)),
690 sScriptComplex(SW_RES(ST_SCRIPT_CTL
))
693 aStandardPB
.SetClickHdl(LINK(this, SwStdFontTabPage
, StandardHdl
));
694 aStandardBox
.SetModifyHdl( LINK(this, SwStdFontTabPage
, ModifyHdl
));
695 aListBox
.SetModifyHdl( LINK(this, SwStdFontTabPage
, ModifyHdl
));
696 aLabelBox
.SetModifyHdl( LINK(this, SwStdFontTabPage
, ModifyHdl
));
697 aIdxBox
.SetModifyHdl( LINK(this, SwStdFontTabPage
, ModifyHdl
));
698 Link aFocusLink
= LINK( this, SwStdFontTabPage
, LoseFocusHdl
);
699 aStandardBox
.SetLoseFocusHdl( aFocusLink
);
700 aTitleBox
.SetLoseFocusHdl( aFocusLink
);
701 aListBox
.SetLoseFocusHdl( aFocusLink
);
702 aLabelBox
.SetLoseFocusHdl( aFocusLink
);
703 aIdxBox
.SetLoseFocusHdl( aFocusLink
);
705 Link
aModifyHeightLink( LINK( this, SwStdFontTabPage
, ModifyHeightHdl
));
706 aStandardHeightLB
.SetModifyHdl( aModifyHeightLink
);
707 aTitleHeightLB
. SetModifyHdl( aModifyHeightLink
);
708 aListHeightLB
. SetModifyHdl( aModifyHeightLink
);
709 aLabelHeightLB
. SetModifyHdl( aModifyHeightLink
);
710 aIndexHeightLB
. SetModifyHdl( aModifyHeightLink
);
712 aDocOnlyCB
.Check(SW_MOD()->GetModuleConfig()->IsDefaultFontInCurrDocOnly());
715 /*-----------------03.09.96 11.53-------------------
717 --------------------------------------------------*/
719 SwStdFontTabPage::~SwStdFontTabPage()
725 /*-----------------03.09.96 11.53-------------------
727 --------------------------------------------------*/
728 SfxTabPage
* SwStdFontTabPage::Create( Window
* pParent
,
729 const SfxItemSet
& rAttrSet
)
731 return new SwStdFontTabPage(pParent
, rAttrSet
);
734 /*-----------------03.09.96 11.53-------------------
736 --------------------------------------------------*/
737 void lcl_SetColl(SwWrtShell
* pWrtShell
, USHORT nType
,
738 SfxPrinter
* pPrt
, const String
& rStyle
,
741 BOOL bDelete
= FALSE
;
742 const SfxFont
* pFnt
= pPrt
? pPrt
->GetFontByName(rStyle
): 0;
745 pFnt
= new SfxFont(FAMILY_DONTKNOW
, rStyle
);
748 SwTxtFmtColl
*pColl
= pWrtShell
->GetTxtCollFromPool(nType
);
749 pColl
->SetFmtAttr(SvxFontItem(pFnt
->GetFamily(), pFnt
->GetName(),
750 aEmptyStr
, pFnt
->GetPitch(), pFnt
->GetCharSet(), nFontWhich
));
753 delete (SfxFont
*) pFnt
;
756 /*-- 11.10.2005 15:47:52---------------------------------------------------
758 -----------------------------------------------------------------------*/
759 void lcl_SetColl(SwWrtShell
* pWrtShell
, USHORT nType
,
760 sal_Int32 nHeight
, USHORT nFontHeightWhich
)
762 float fSize
= (float)nHeight
/ 10;
763 nHeight
= CalcToUnit( fSize
, SFX_MAPUNIT_TWIP
);
764 SwTxtFmtColl
*pColl
= pWrtShell
->GetTxtCollFromPool(nType
);
765 pColl
->SetFmtAttr(SvxFontHeightItem(nHeight
, 100, nFontHeightWhich
));
767 /*-----------------03.09.96 11.53-------------------
769 --------------------------------------------------*/
770 BOOL
SwStdFontTabPage::FillItemSet( SfxItemSet
& )
772 BOOL bNotDocOnly
= !aDocOnlyCB
.IsChecked();
773 SW_MOD()->GetModuleConfig()->SetDefaultFontInCurrDocOnly(!bNotDocOnly
);
775 String sStandard
= aStandardBox
.GetText();
776 String sTitle
= aTitleBox
.GetText();
777 String sList
= aListBox
.GetText();
778 String sLabel
= aLabelBox
.GetText();
779 String sIdx
= aIdxBox
.GetText();
780 String sStandardBak
= aStandardBox
.GetSavedValue();
781 String sTitleBak
= aTitleBox
.GetSavedValue();
782 String sListBak
= aListBox
.GetSavedValue();
783 String sLabelBak
= aLabelBox
.GetSavedValue();
784 String sIdxBak
= aIdxBox
.GetSavedValue();
786 bool bStandardHeightChanged
= aStandardHeightLB
.GetSavedValue() != aStandardHeightLB
.GetText();
787 bool bTitleHeightChanged
= aTitleHeightLB
.GetSavedValue() != aTitleHeightLB
.GetText();
788 bool bListHeightChanged
= aListHeightLB
.GetSavedValue() != aListHeightLB
.GetText() && (!bListHeightDefault
|| !bSetListHeightDefault
);
789 bool bLabelHeightChanged
= aLabelHeightLB
.GetSavedValue() != aLabelHeightLB
.GetText() && (!bLabelHeightDefault
|| !bSetLabelHeightDefault
);
790 bool bIndexHeightChanged
= aIndexHeightLB
.GetSavedValue() != aIndexHeightLB
.GetText() && (!bIndexHeightDefault
|| !bSetIndexHeightDefault
);
793 pFontConfig
->SetFontStandard(sStandard
, nFontGroup
);
794 pFontConfig
->SetFontOutline(sTitle
, nFontGroup
);
795 pFontConfig
->SetFontList(sList
, nFontGroup
);
796 pFontConfig
->SetFontCaption(sLabel
, nFontGroup
);
797 pFontConfig
->SetFontIndex(sIdx
, nFontGroup
);
798 if(bStandardHeightChanged
)
800 float fSize
= (float)aStandardHeightLB
.GetValue() / 10;
801 pFontConfig
->SetFontHeight( CalcToUnit( fSize
, SFX_MAPUNIT_TWIP
), FONT_STANDARD
, nFontGroup
);
803 if(bTitleHeightChanged
)
805 float fSize
= (float)aTitleHeightLB
.GetValue() / 10;
806 pFontConfig
->SetFontHeight( CalcToUnit( fSize
, SFX_MAPUNIT_TWIP
), FONT_OUTLINE
, nFontGroup
);
808 if(bListHeightChanged
)
810 float fSize
= (float)aListHeightLB
.GetValue() / 10;
811 pFontConfig
->SetFontHeight( CalcToUnit( fSize
, SFX_MAPUNIT_TWIP
), FONT_LIST
, nFontGroup
);
813 if(bLabelHeightChanged
)
815 float fSize
= (float)aLabelHeightLB
.GetValue() / 10;
816 pFontConfig
->SetFontHeight( CalcToUnit( fSize
, SFX_MAPUNIT_TWIP
), FONT_CAPTION
, nFontGroup
);
818 if(bIndexHeightChanged
)
820 float fSize
= (float)aIndexHeightLB
.GetValue() / 10;
821 pFontConfig
->SetFontHeight( CalcToUnit( fSize
, SFX_MAPUNIT_TWIP
), FONT_INDEX
, nFontGroup
);
826 pWrtShell
->StartAllAction();
827 SfxPrinter
* pPrinter
= pWrtShell
->getIDocumentDeviceAccess()->getPrinter( false );
829 USHORT nFontWhich
= sal::static_int_cast
< sal_uInt16
, RES_CHRATR
>(
830 nFontGroup
== FONT_GROUP_DEFAULT
? RES_CHRATR_FONT
:
831 FONT_GROUP_CJK
== nFontGroup
? RES_CHRATR_CJK_FONT
: RES_CHRATR_CTL_FONT
);
832 USHORT nFontHeightWhich
= sal::static_int_cast
< sal_uInt16
, RES_CHRATR
>(
833 nFontGroup
== FONT_GROUP_DEFAULT
? RES_CHRATR_FONTSIZE
:
834 FONT_GROUP_CJK
== nFontGroup
? RES_CHRATR_CJK_FONTSIZE
: RES_CHRATR_CTL_FONTSIZE
);
835 if(sStandard
!= sShellStd
)
837 BOOL bDelete
= FALSE
;
838 const SfxFont
* pFnt
= pPrinter
? pPrinter
->GetFontByName(sStandard
): 0;
841 pFnt
= new SfxFont(FAMILY_DONTKNOW
, sStandard
);
844 pWrtShell
->SetDefault(SvxFontItem(pFnt
->GetFamily(), pFnt
->GetName(),
845 aEmptyStr
, pFnt
->GetPitch(), pFnt
->GetCharSet(), nFontWhich
));
846 SwTxtFmtColl
*pColl
= pWrtShell
->GetTxtCollFromPool(RES_POOLCOLL_STANDARD
);
847 pColl
->ResetFmtAttr(nFontWhich
);
850 delete (SfxFont
*) pFnt
;
853 // lcl_SetColl(pWrtShell, RES_POOLCOLL_STANDARD, pPrinter, sStandard);
856 if(bStandardHeightChanged
)
858 float fSize
= (float)aStandardHeightLB
.GetValue() / 10;
859 pWrtShell
->SetDefault(SvxFontHeightItem( CalcToUnit( fSize
, SFX_MAPUNIT_TWIP
), 100, nFontHeightWhich
) );
860 SwTxtFmtColl
*pColl
= pWrtShell
->GetTxtCollFromPool(RES_POOLCOLL_STANDARD
);
861 pColl
->ResetFmtAttr(nFontHeightWhich
);
865 if(sTitle
!= sShellTitle
)
867 lcl_SetColl(pWrtShell
, RES_POOLCOLL_HEADLINE_BASE
, pPrinter
, sTitle
, nFontWhich
);
870 if(bTitleHeightChanged
)
872 lcl_SetColl(pWrtShell
, RES_POOLCOLL_HEADLINE_BASE
,
873 sal::static_int_cast
< sal_uInt16
, sal_Int64
>(aTitleHeightLB
.GetValue()), nFontHeightWhich
);
876 if(sList
!= sShellList
&& (!bListDefault
|| !bSetListDefault
))
878 lcl_SetColl(pWrtShell
, RES_POOLCOLL_NUMBUL_BASE
, pPrinter
, sList
, nFontWhich
);
881 if(bListHeightChanged
)
883 lcl_SetColl(pWrtShell
, RES_POOLCOLL_NUMBUL_BASE
,
884 sal::static_int_cast
< sal_uInt16
, sal_Int64
>(aListHeightLB
.GetValue()), nFontHeightWhich
);
887 if(sLabel
!= sShellLabel
&& (!bLabelDefault
|| !bSetLabelDefault
))
889 lcl_SetColl(pWrtShell
, RES_POOLCOLL_LABEL
, pPrinter
, sLabel
, nFontWhich
);
892 if(bLabelHeightChanged
)
894 lcl_SetColl(pWrtShell
, RES_POOLCOLL_LABEL
,
895 sal::static_int_cast
< sal_uInt16
, sal_Int64
>(aLabelHeightLB
.GetValue()), nFontHeightWhich
);
898 if(sIdx
!= sShellIndex
&& (!bIdxDefault
|| !bSetIdxDefault
))
900 lcl_SetColl(pWrtShell
, RES_POOLCOLL_REGISTER_BASE
, pPrinter
, sIdx
, nFontWhich
);
903 if(bIndexHeightChanged
)
905 lcl_SetColl(pWrtShell
, RES_POOLCOLL_REGISTER_BASE
,
906 sal::static_int_cast
< sal_uInt16
, sal_Int64
>(aIndexHeightLB
.GetValue()), nFontHeightWhich
);
910 pWrtShell
->SetModified();
911 pWrtShell
->EndAllAction();
917 /*-----------------03.09.96 11.53-------------------
919 --------------------------------------------------*/
920 void SwStdFontTabPage::Reset( const SfxItemSet
& rSet
)
922 const SfxPoolItem
* pLang
;
923 USHORT nLangSlot
= nFontGroup
== FONT_GROUP_DEFAULT
? SID_ATTR_LANGUAGE
:
924 FONT_GROUP_CJK
== nFontGroup
? SID_ATTR_CHAR_CJK_LANGUAGE
: SID_ATTR_CHAR_CTL_LANGUAGE
;
927 if( SFX_ITEM_SET
== rSet
.GetItemState(nLangSlot
, FALSE
, &pLang
))
928 eLanguage
= ((const SvxLanguageItem
*)pLang
)->GetValue();
930 String
sTmp(aStdChrFL
.GetText());
931 String sToReplace
= sScriptWestern
;
932 if(FONT_GROUP_CJK
== nFontGroup
)
933 sToReplace
= sScriptAsian
;
934 else if(FONT_GROUP_CTL
== nFontGroup
)
935 sToReplace
= sScriptComplex
;
937 sTmp
.SearchAndReplaceAscii("%1", sToReplace
);
938 aStdChrFL
.SetText(sTmp
);
939 const SfxPoolItem
* pItem
;
941 if(SFX_ITEM_SET
== rSet
.GetItemState(FN_PARAM_PRINTER
, FALSE
, &pItem
))
943 pPrt
= (SfxPrinter
*)((const SwPtrItem
*)pItem
)->GetValue();
947 SfxItemSet
* pPrinterSet
= new SfxItemSet( *rSet
.GetPool(),
948 SID_PRINTER_NOTFOUND_WARN
, SID_PRINTER_NOTFOUND_WARN
,
949 SID_PRINTER_CHANGESTODOC
, SID_PRINTER_CHANGESTODOC
,
951 pPrt
= new SfxPrinter(pPrinterSet
);
952 bDeletePrinter
= TRUE
;
954 pFontList
= new FontList( pPrt
);
955 // #i94536# prevent duplication of font entries when 'reset' button is pressed
956 if( !aStandardBox
.GetEntryCount() )
958 const USHORT nCount
= pPrt
->GetFontCount();
959 for (USHORT i
= 0; i
< nCount
; ++i
)
961 const String
&rString
= pPrt
->GetFont(i
)->GetName();
962 aStandardBox
.InsertEntry( rString
);
963 aTitleBox
.InsertEntry( rString
);
964 aListBox
.InsertEntry( rString
);
965 aLabelBox
.InsertEntry( rString
);
966 aIdxBox
.InsertEntry( rString
);
969 if(SFX_ITEM_SET
== rSet
.GetItemState(FN_PARAM_STDFONTS
, FALSE
, &pItem
))
971 pFontConfig
= (SwStdFontConfig
*)((const SwPtrItem
*)pItem
)->GetValue();
974 if(SFX_ITEM_SET
== rSet
.GetItemState(FN_PARAM_WRTSHELL
, FALSE
, &pItem
))
976 pWrtShell
= (SwWrtShell
*)((const SwPtrItem
*)pItem
)->GetValue();
983 sal_Int32 nStandardHeight
= -1;
984 sal_Int32 nTitleHeight
= -1;
985 sal_Int32 nListHeight
= -1;
986 sal_Int32 nLabelHeight
= -1;
987 sal_Int32 nIndexHeight
= -1;
991 sStdBackup
= pFontConfig
->GetFontStandard(nFontGroup
);
992 sOutBackup
= pFontConfig
->GetFontOutline(nFontGroup
);
993 sListBackup
= pFontConfig
->GetFontList(nFontGroup
);
994 sCapBackup
= pFontConfig
->GetFontCaption(nFontGroup
);
995 sIdxBackup
= pFontConfig
->GetFontIndex(nFontGroup
);
996 nStandardHeight
= pFontConfig
->GetFontHeight( FONT_STANDARD
, nFontGroup
, eLanguage
);
997 nTitleHeight
= pFontConfig
->GetFontHeight( FONT_OUTLINE
, nFontGroup
, eLanguage
);
998 nListHeight
= pFontConfig
->GetFontHeight( FONT_LIST
, nFontGroup
, eLanguage
);
999 nLabelHeight
= pFontConfig
->GetFontHeight( FONT_CAPTION
, nFontGroup
, eLanguage
);
1000 nIndexHeight
= pFontConfig
->GetFontHeight( FONT_INDEX
, nFontGroup
, eLanguage
);
1001 if( nStandardHeight
<= 0)
1002 nStandardHeight
= pFontConfig
->GetDefaultHeightFor( FONT_STANDARD
+ nFontGroup
* FONT_PER_GROUP
, eLanguage
);
1003 if( nTitleHeight
<= 0)
1004 nTitleHeight
= pFontConfig
->GetDefaultHeightFor( FONT_OUTLINE
+ nFontGroup
* FONT_PER_GROUP
, eLanguage
);
1005 if( nListHeight
<= 0)
1006 nListHeight
= pFontConfig
->GetDefaultHeightFor( FONT_LIST
+ nFontGroup
* FONT_PER_GROUP
, eLanguage
);
1007 if( nLabelHeight
<= 0)
1008 nLabelHeight
= pFontConfig
->GetDefaultHeightFor( FONT_CAPTION
+ nFontGroup
* FONT_PER_GROUP
, eLanguage
);
1009 if( nIndexHeight
<= 0)
1010 nIndexHeight
= pFontConfig
->GetDefaultHeightFor( FONT_INDEX
+ nFontGroup
* FONT_PER_GROUP
, eLanguage
);
1012 aDocOnlyCB
.Enable(FALSE
);
1016 SwTxtFmtColl
*pColl
= pWrtShell
->GetTxtCollFromPool(RES_POOLCOLL_STANDARD
);
1017 const SvxFontItem
& rFont
= !nFontGroup
? pColl
->GetFont() :
1018 FONT_GROUP_CJK
== nFontGroup
? pColl
->GetCJKFont() : pColl
->GetCTLFont();
1019 sShellStd
= sStdBackup
= rFont
.GetFamilyName();
1021 USHORT nFontHeightWhich
= sal::static_int_cast
< sal_uInt16
, RES_CHRATR
>(
1022 nFontGroup
== FONT_GROUP_DEFAULT
? RES_CHRATR_FONTSIZE
:
1023 FONT_GROUP_CJK
== nFontGroup
? RES_CHRATR_CJK_FONTSIZE
: RES_CHRATR_CTL_FONTSIZE
);
1024 const SvxFontHeightItem
& rFontHeightStandard
= (const SvxFontHeightItem
& )pColl
->GetFmtAttr(nFontHeightWhich
);
1025 nStandardHeight
= (sal_Int32
)rFontHeightStandard
.GetHeight();
1027 pColl
= pWrtShell
->GetTxtCollFromPool(RES_POOLCOLL_HEADLINE_BASE
);
1028 const SvxFontItem
& rFontHL
= !nFontGroup
? pColl
->GetFont() :
1029 FONT_GROUP_CJK
== nFontGroup
? pColl
->GetCJKFont() : pColl
->GetCTLFont();
1030 sShellTitle
= sOutBackup
= rFontHL
.GetFamilyName();
1032 const SvxFontHeightItem
& rFontHeightTitle
= (const SvxFontHeightItem
&)pColl
->GetFmtAttr( nFontHeightWhich
, sal_True
);
1033 nTitleHeight
= (sal_Int32
)rFontHeightTitle
.GetHeight();
1035 USHORT nFontWhich
= sal::static_int_cast
< sal_uInt16
, RES_CHRATR
>(
1036 nFontGroup
== FONT_GROUP_DEFAULT
? RES_CHRATR_FONT
:
1037 FONT_GROUP_CJK
== nFontGroup
? RES_CHRATR_CJK_FONT
: RES_CHRATR_CTL_FONT
);
1038 pColl
= pWrtShell
->GetTxtCollFromPool(RES_POOLCOLL_NUMBUL_BASE
);
1039 const SvxFontItem
& rFontLS
= !nFontGroup
? pColl
->GetFont() :
1040 FONT_GROUP_CJK
== nFontGroup
? pColl
->GetCJKFont() : pColl
->GetCTLFont();
1041 bListDefault
= SFX_ITEM_DEFAULT
== pColl
->GetAttrSet().GetItemState(nFontWhich
, FALSE
);
1042 sShellList
= sListBackup
= rFontLS
.GetFamilyName();
1044 const SvxFontHeightItem
& rFontHeightList
= (const SvxFontHeightItem
&)pColl
->GetFmtAttr(nFontHeightWhich
, sal_True
);
1045 nListHeight
= (sal_Int32
)rFontHeightList
.GetHeight();
1046 bListHeightDefault
= SFX_ITEM_DEFAULT
== pColl
->GetAttrSet().GetItemState(nFontWhich
, FALSE
);
1049 pColl
= pWrtShell
->GetTxtCollFromPool(RES_POOLCOLL_LABEL
);
1050 bLabelDefault
= SFX_ITEM_DEFAULT
== pColl
->GetAttrSet().GetItemState(nFontWhich
, FALSE
);
1051 const SvxFontItem
& rFontCP
= !nFontGroup
? pColl
->GetFont() :
1052 FONT_GROUP_CJK
== nFontGroup
? pColl
->GetCJKFont() : pColl
->GetCTLFont();
1053 sShellLabel
= sCapBackup
= rFontCP
.GetFamilyName();
1054 const SvxFontHeightItem
& rFontHeightLabel
= (const SvxFontHeightItem
&)pColl
->GetFmtAttr(nFontHeightWhich
, sal_True
);
1055 nLabelHeight
= (sal_Int32
)rFontHeightLabel
.GetHeight();
1056 bLabelHeightDefault
= SFX_ITEM_DEFAULT
== pColl
->GetAttrSet().GetItemState(nFontWhich
, FALSE
);
1058 pColl
= pWrtShell
->GetTxtCollFromPool(RES_POOLCOLL_REGISTER_BASE
);
1059 bIdxDefault
= SFX_ITEM_DEFAULT
== pColl
->GetAttrSet().GetItemState(nFontWhich
, FALSE
);
1060 const SvxFontItem
& rFontIDX
= !nFontGroup
? pColl
->GetFont() :
1061 FONT_GROUP_CJK
== nFontGroup
? pColl
->GetCJKFont() : pColl
->GetCTLFont();
1062 sShellIndex
= sIdxBackup
= rFontIDX
.GetFamilyName();
1063 const SvxFontHeightItem
& rFontHeightIndex
= (const SvxFontHeightItem
&)pColl
->GetFmtAttr(nFontHeightWhich
, sal_True
);
1064 nIndexHeight
= (sal_Int32
)rFontHeightIndex
.GetHeight();
1065 bIndexHeightDefault
= SFX_ITEM_DEFAULT
== pColl
->GetAttrSet().GetItemState(nFontWhich
, FALSE
);
1067 aStandardBox
.SetText(sStdBackup
);
1068 aTitleBox
.SetText(sOutBackup
);
1069 aListBox
.SetText(sListBackup
);
1070 aLabelBox
.SetText(sCapBackup
);
1071 aIdxBox
.SetText(sIdxBackup
);
1073 FontInfo
aFontInfo( pFontList
->Get(sStdBackup
, sStdBackup
) );
1074 aStandardHeightLB
.Fill( &aFontInfo
, pFontList
);
1075 aFontInfo
= pFontList
->Get(sOutBackup
, sOutBackup
);
1076 aTitleHeightLB
.Fill( &aFontInfo
, pFontList
);
1077 aFontInfo
= pFontList
->Get(sListBackup
,sListBackup
);
1078 aListHeightLB
.Fill( &aFontInfo
, pFontList
);
1079 aFontInfo
= pFontList
->Get(sCapBackup
, sCapBackup
);
1080 aLabelHeightLB
.Fill( &aFontInfo
, pFontList
);
1081 aFontInfo
= pFontList
->Get(sIdxBackup
, sIdxBackup
);
1082 aIndexHeightLB
.Fill( &aFontInfo
, pFontList
);
1084 aStandardHeightLB
.SetValue( CalcToPoint( nStandardHeight
, SFX_MAPUNIT_TWIP
, 10 ) );
1085 aTitleHeightLB
. SetValue( CalcToPoint( nTitleHeight
, SFX_MAPUNIT_TWIP
, 10 ) );
1086 aListHeightLB
. SetValue( CalcToPoint( nListHeight
, SFX_MAPUNIT_TWIP
, 10 ) );
1087 aLabelHeightLB
. SetValue( CalcToPoint( nLabelHeight
, SFX_MAPUNIT_TWIP
, 10 ));
1088 aIndexHeightLB
. SetValue( CalcToPoint( nIndexHeight
, SFX_MAPUNIT_TWIP
, 10 ));
1090 aStandardBox
.SaveValue();
1091 aTitleBox
.SaveValue();
1092 aListBox
.SaveValue();
1093 aLabelBox
.SaveValue();
1094 aIdxBox
.SaveValue();
1096 aStandardHeightLB
.SaveValue();
1097 aTitleHeightLB
. SaveValue();
1098 aListHeightLB
. SaveValue();
1099 aLabelHeightLB
. SaveValue();
1100 aIndexHeightLB
. SaveValue();
1103 /*-----------------07.09.96 12.28-------------------
1105 --------------------------------------------------*/
1108 IMPL_LINK( SwStdFontTabPage
, StandardHdl
, PushButton
*, EMPTYARG
)
1110 sal_uInt8 nFontOffset
= nFontGroup
* FONT_PER_GROUP
;
1111 aStandardBox
.SetText(SwStdFontConfig::GetDefaultFor(FONT_STANDARD
+ nFontOffset
, eLanguage
));
1112 aTitleBox
.SetText(SwStdFontConfig::GetDefaultFor(FONT_OUTLINE
+ nFontOffset
, eLanguage
));
1113 aListBox
.SetText(SwStdFontConfig::GetDefaultFor(FONT_LIST
+ nFontOffset
, eLanguage
));
1114 aLabelBox
.SetText(SwStdFontConfig::GetDefaultFor(FONT_CAPTION
+ nFontOffset
, eLanguage
));
1115 aIdxBox
.SetText(SwStdFontConfig::GetDefaultFor(FONT_INDEX
+ nFontOffset
, eLanguage
));
1117 aStandardBox
.SaveValue();
1118 aTitleBox
.SaveValue();
1119 aListBox
.SaveValue();
1120 aLabelBox
.SaveValue();
1121 aIdxBox
.SaveValue();
1123 aStandardHeightLB
.SetValue( CalcToPoint(
1124 SwStdFontConfig::GetDefaultHeightFor(FONT_STANDARD
+ nFontOffset
, eLanguage
),
1125 SFX_MAPUNIT_TWIP
, 10 ) );
1126 aTitleHeightLB
.SetValue(CalcToPoint(
1127 SwStdFontConfig::GetDefaultHeightFor(FONT_OUTLINE
+
1128 nFontOffset
, eLanguage
), SFX_MAPUNIT_TWIP
, 10 ));
1129 aListHeightLB
.SetValue(CalcToPoint(
1130 SwStdFontConfig::GetDefaultHeightFor(FONT_LIST
+ nFontOffset
, eLanguage
),
1131 SFX_MAPUNIT_TWIP
, 10 ));
1132 aLabelHeightLB
.SetValue(CalcToPoint(
1133 SwStdFontConfig::GetDefaultHeightFor(FONT_CAPTION
+ nFontOffset
, eLanguage
),
1134 SFX_MAPUNIT_TWIP
, 10 ));
1135 aIndexHeightLB
.SetValue(CalcToPoint(
1136 SwStdFontConfig::GetDefaultHeightFor(FONT_INDEX
+ nFontOffset
, eLanguage
),
1137 SFX_MAPUNIT_TWIP
, 10 ));
1141 /*-----------------17.01.97 15.43-------------------
1143 --------------------------------------------------*/
1145 IMPL_LINK( SwStdFontTabPage
, ModifyHdl
, ComboBox
*, pBox
)
1147 if(pBox
== &aStandardBox
)
1149 String sEntry
= pBox
->GetText();
1150 if(bSetListDefault
&& bListDefault
)
1151 aListBox
.SetText(sEntry
);
1152 if(bSetLabelDefault
&& bLabelDefault
)
1153 aLabelBox
.SetText(sEntry
);
1154 if(bSetIdxDefault
&& bIdxDefault
)
1155 aIdxBox
.SetText(sEntry
);
1157 else if(pBox
== &aListBox
)
1159 bSetListDefault
= FALSE
;
1161 else if(pBox
== &aLabelBox
)
1163 bSetLabelDefault
= FALSE
;
1165 else if(pBox
== &aIdxBox
)
1167 bSetIdxDefault
= FALSE
;
1172 /*-- 11.10.2005 15:11:23---------------------------------------------------
1174 -----------------------------------------------------------------------*/
1175 IMPL_LINK( SwStdFontTabPage
, ModifyHeightHdl
, FontSizeBox
*, pBox
)
1177 if(pBox
== &aStandardHeightLB
)
1179 sal_Int64 nValue
= pBox
->GetValue(FUNIT_TWIP
);
1180 if(bSetListHeightDefault
&& bListHeightDefault
)
1181 aListHeightLB
.SetValue(nValue
, FUNIT_TWIP
);
1182 if(bSetLabelHeightDefault
&& bLabelHeightDefault
)
1183 aLabelHeightLB
.SetValue(nValue
, FUNIT_TWIP
);
1184 if(bSetIndexHeightDefault
&& bIndexHeightDefault
)
1185 aIndexHeightLB
.SetValue(nValue
, FUNIT_TWIP
);
1187 else if(pBox
== &aListHeightLB
)
1189 bSetListHeightDefault
= FALSE
;
1191 else if(pBox
== &aLabelHeightLB
)
1193 bSetLabelHeightDefault
= FALSE
;
1195 else if(pBox
== &aIndexHeightLB
)
1197 bSetIndexHeightDefault
= FALSE
;
1202 /*-- 28.09.2005 13:22:36---------------------------------------------------
1204 -----------------------------------------------------------------------*/
1205 IMPL_LINK( SwStdFontTabPage
, LoseFocusHdl
, ComboBox
*, pBox
)
1207 FontSizeBox
* pHeightLB
= 0;
1208 String sEntry
= pBox
->GetText();
1209 if(pBox
== &aStandardBox
)
1211 pHeightLB
= &aStandardHeightLB
;
1213 else if(pBox
== &aTitleBox
)
1215 pHeightLB
= &aTitleHeightLB
;
1217 else if(pBox
== &aListBox
)
1219 pHeightLB
= &aListHeightLB
;
1221 else if(pBox
== &aLabelBox
)
1223 pHeightLB
= &aLabelHeightLB
;
1225 else /*if(pBox == &aIdxBox)*/
1227 pHeightLB
= &aIndexHeightLB
;
1229 FontInfo
aFontInfo( pFontList
->Get(sEntry
, sEntry
) );
1230 pHeightLB
->Fill( &aFontInfo
, pFontList
);
1236 void SwStdFontTabPage::PageCreated (SfxAllItemSet aSet
)
1238 SFX_ITEMSET_ARG (&aSet
,pFlagItem
,SfxUInt16Item
, SID_FONTMODE_TYPE
, sal_False
);
1240 SetFontMode(sal::static_int_cast
< sal_uInt8
, sal_uInt16
>( pFlagItem
->GetValue()));
1242 /*-----------------18.01.97 12.14-------------------
1244 --------------------------------------------------*/
1246 SwTableOptionsTabPage::SwTableOptionsTabPage( Window
* pParent
, const SfxItemSet
& rSet
) :
1247 SfxTabPage(pParent
, SW_RES(TP_OPTTABLE_PAGE
), rSet
),
1248 aTableFL (this, SW_RES(FL_TABLE
)),
1249 aHeaderCB (this, SW_RES(CB_HEADER
)),
1250 aRepeatHeaderCB (this, SW_RES(CB_REPEAT_HEADER
)),
1251 aDontSplitCB (this, SW_RES(CB_DONT_SPLIT
)),
1252 aBorderCB (this, SW_RES(CB_BORDER
)),
1254 aSeparatorFL (this, SW_RES(FL_TABLE_SEPARATOR
)),
1256 aTableInsertFL (this, SW_RES(FL_TABLE_INSERT
)),
1257 aNumFormattingCB(this, SW_RES(CB_NUMFORMATTING
)),
1258 aNumFmtFormattingCB(this, SW_RES(CB_NUMFMT_FORMATTING
)),
1259 aNumAlignmentCB (this, SW_RES(CB_NUMALIGNMENT
)),
1261 aMoveFL( this, SW_RES(FL_MOVE
)),
1262 aMoveFT( this, SW_RES(FT_MOVE
)),
1263 aRowMoveFT( this, SW_RES(FT_ROWMOVE
)),
1264 aRowMoveMF( this, SW_RES(MF_ROWMOVE
)),
1265 aColMoveFT( this, SW_RES(FT_COLMOVE
)),
1266 aColMoveMF( this, SW_RES(MF_COLMOVE
)),
1268 aInsertFT( this, SW_RES(FT_INSERT
)),
1269 aRowInsertFT( this, SW_RES(FT_ROWINSERT
)),
1270 aRowInsertMF( this, SW_RES(MF_ROWINSERT
)),
1271 aColInsertFT( this, SW_RES(FT_COLINSERT
)),
1272 aColInsertMF( this, SW_RES(MF_COLINSERT
)),
1274 aHandlingFT( this, SW_RES(FT_HANDLING
)),
1275 aFixRB( this, SW_RES(RB_FIX
)),
1276 aFixPropRB( this, SW_RES(RB_FIXPROP
)),
1277 aVarRB( this, SW_RES(RB_VAR
)),
1278 aFixFT( this, SW_RES(FT_FIX
)),
1279 aFixPropFT( this, SW_RES(FT_FIXPROP
)),
1280 aVarFT( this, SW_RES(FT_VAR
)),
1286 Link
aLnk(LINK(this, SwTableOptionsTabPage
, CheckBoxHdl
));
1287 aNumFormattingCB
.SetClickHdl(aLnk
);
1288 aNumFmtFormattingCB
.SetClickHdl(aLnk
);
1289 aHeaderCB
.SetClickHdl(aLnk
);
1292 /*-----------------18.01.97 12.43-------------------
1294 --------------------------------------------------*/
1296 SwTableOptionsTabPage::~SwTableOptionsTabPage()
1300 /*-----------------18.01.97 12.43-------------------
1302 --------------------------------------------------*/
1304 SfxTabPage
* SwTableOptionsTabPage::Create( Window
* pParent
,
1305 const SfxItemSet
& rAttrSet
)
1307 return new SwTableOptionsTabPage(pParent
, rAttrSet
);
1310 /*-----------------18.01.97 12.42-------------------
1312 --------------------------------------------------*/
1314 BOOL
SwTableOptionsTabPage::FillItemSet( SfxItemSet
& )
1317 SwModuleOptions
* pModOpt
= SW_MOD()->GetModuleConfig();
1319 if(aRowMoveMF
.IsModified())
1320 pModOpt
->SetTblHMove( (USHORT
)aRowMoveMF
.Denormalize( aRowMoveMF
.GetValue(FUNIT_TWIP
)));
1322 if(aColMoveMF
.IsModified())
1323 pModOpt
->SetTblVMove( (USHORT
)aColMoveMF
.Denormalize( aColMoveMF
.GetValue(FUNIT_TWIP
)));
1325 if(aRowInsertMF
.IsModified())
1326 pModOpt
->SetTblHInsert((USHORT
)aRowInsertMF
.Denormalize( aRowInsertMF
.GetValue(FUNIT_TWIP
)));
1328 if(aColInsertMF
.IsModified())
1329 pModOpt
->SetTblVInsert((USHORT
)aColInsertMF
.Denormalize( aColInsertMF
.GetValue(FUNIT_TWIP
)));
1332 if(aFixRB
.IsChecked())
1333 eMode
= TBLFIX_CHGABS
;
1334 else if(aFixPropRB
.IsChecked())
1335 eMode
= TBLFIX_CHGPROP
;
1337 eMode
= TBLVAR_CHGABS
;
1338 if(eMode
!= pModOpt
->GetTblMode())
1340 pModOpt
->SetTblMode(eMode
);
1341 // der Tabellen-Tastatur-Modus hat sich geaendert, das soll
1342 // jetzt auch die aktuelle Tabelle erfahren
1343 if(pWrtShell
&& nsSelectionType::SEL_TBL
& pWrtShell
->GetSelectionType())
1345 pWrtShell
->SetTblChgMode(eMode
);
1346 static USHORT __READONLY_DATA aInva
[] =
1347 { FN_TABLE_MODE_FIX
,
1348 FN_TABLE_MODE_FIX_PROP
,
1349 FN_TABLE_MODE_VARIABLE
,
1352 pWrtShell
->GetView().GetViewFrame()->GetBindings().Invalidate( aInva
);
1358 SwInsertTableOptions
aInsOpts( 0, 0 );
1360 if (aHeaderCB
.IsChecked())
1361 aInsOpts
.mnInsMode
|= tabopts::HEADLINE
;
1363 if (aRepeatHeaderCB
.IsEnabled() )
1364 aInsOpts
.mnRowsToRepeat
= aRepeatHeaderCB
.IsChecked()? 1 : 0;
1366 if (!aDontSplitCB
.IsChecked())
1367 aInsOpts
.mnInsMode
|= tabopts::SPLIT_LAYOUT
;
1369 if (aBorderCB
.IsChecked())
1370 aInsOpts
.mnInsMode
|= tabopts::DEFAULT_BORDER
;
1372 if (aHeaderCB
.GetSavedValue() != aHeaderCB
.GetState() ||
1373 aRepeatHeaderCB
.GetSavedValue() != aRepeatHeaderCB
.GetState() ||
1374 aDontSplitCB
.GetSavedValue() != aDontSplitCB
.GetState() ||
1375 aBorderCB
.GetSavedValue() != aBorderCB
.GetState())
1377 pModOpt
->SetInsTblFlags(bHTMLMode
, aInsOpts
);
1380 if (aNumFormattingCB
.GetSavedValue() != aNumFormattingCB
.GetState())
1382 pModOpt
->SetInsTblFormatNum(bHTMLMode
, aNumFormattingCB
.IsChecked());
1386 if (aNumFmtFormattingCB
.GetSavedValue() != aNumFmtFormattingCB
.GetState())
1388 pModOpt
->SetInsTblChangeNumFormat(bHTMLMode
, aNumFmtFormattingCB
.IsChecked());
1392 if (aNumAlignmentCB
.GetSavedValue() != aNumAlignmentCB
.GetState())
1394 pModOpt
->SetInsTblAlignNum(bHTMLMode
, aNumAlignmentCB
.IsChecked());
1400 /*-----------------18.01.97 12.42-------------------
1402 --------------------------------------------------*/
1403 void SwTableOptionsTabPage::Reset( const SfxItemSet
& rSet
)
1405 const SwModuleOptions
* pModOpt
= SW_MOD()->GetModuleConfig();
1406 if ( rSet
.GetItemState( SID_ATTR_METRIC
) >= SFX_ITEM_AVAILABLE
)
1408 const SfxUInt16Item
& rItem
= (SfxUInt16Item
&)rSet
.Get( SID_ATTR_METRIC
);
1409 FieldUnit eFieldUnit
= (FieldUnit
)rItem
.GetValue();
1410 ::SetFieldUnit( aRowMoveMF
, eFieldUnit
);
1411 ::SetFieldUnit( aColMoveMF
, eFieldUnit
);
1412 ::SetFieldUnit( aRowInsertMF
, eFieldUnit
);
1413 ::SetFieldUnit( aColInsertMF
, eFieldUnit
);
1416 aRowMoveMF
.SetValue(aRowMoveMF
.Normalize(pModOpt
->GetTblHMove()), FUNIT_TWIP
);
1417 aColMoveMF
.SetValue(aColMoveMF
.Normalize(pModOpt
->GetTblVMove()), FUNIT_TWIP
);
1418 aRowInsertMF
.SetValue(aRowInsertMF
.Normalize(pModOpt
->GetTblHInsert()), FUNIT_TWIP
);
1419 aColInsertMF
.SetValue(aColInsertMF
.Normalize(pModOpt
->GetTblVInsert()), FUNIT_TWIP
);
1421 switch(pModOpt
->GetTblMode())
1423 case TBLFIX_CHGABS
: aFixRB
.Check(); break;
1424 case TBLFIX_CHGPROP
: aFixPropRB
.Check(); break;
1425 case TBLVAR_CHGABS
: aVarRB
.Check(); break;
1427 const SfxPoolItem
* pItem
;
1428 if(SFX_ITEM_SET
== rSet
.GetItemState(SID_HTML_MODE
, FALSE
, &pItem
))
1430 bHTMLMode
= 0 != (((const SfxUInt16Item
*)pItem
)->GetValue() & HTMLMODE_ON
);
1433 //bestimmte Controls fuer HTML verstecken
1436 /* Point aPos(aCaptionFL.GetPosPixel());
1437 long nYDiff = aTableFL.GetPosPixel().Y() - aPos.Y();
1438 aTableFL.SetPosPixel(aPos);
1440 aPos = aHeaderCB.GetPosPixel();
1442 aHeaderCB.SetPosPixel(aPos);
1444 aPos = aRepeatHeaderCB.GetPosPixel();
1446 aRepeatHeaderCB.SetPosPixel(aPos);
1448 aPos = aDontSplitCB.GetPosPixel(); // hier muss eine Luecke geschlossen werden
1450 aBorderCB.SetPosPixel(aPos);
1452 aPos = aTableInsertFL.GetPosPixel();
1454 aTableInsertFL.SetPosPixel(aPos);
1456 aPos = aNumFormattingCB.GetPosPixel();
1458 aNumFormattingCB.SetPosPixel(aPos);
1460 aPos = aNumFmtFormattingCB.GetPosPixel();
1462 aNumFmtFormattingCB.SetPosPixel(aPos);
1464 aPos = aNumAlignmentCB.GetPosPixel();
1466 aNumAlignmentCB.SetPosPixel(aPos);
1473 aDontSplitCB
.Hide();
1476 SwInsertTableOptions aInsOpts
= pModOpt
->GetInsTblFlags(bHTMLMode
);
1477 USHORT nInsTblFlags
= aInsOpts
.mnInsMode
;
1479 aHeaderCB
.Check(0 != (nInsTblFlags
& tabopts::HEADLINE
));
1480 aRepeatHeaderCB
.Check(aInsOpts
.mnRowsToRepeat
> 0);
1481 aDontSplitCB
.Check(!(nInsTblFlags
& tabopts::SPLIT_LAYOUT
));
1482 aBorderCB
.Check(0 != (nInsTblFlags
& tabopts::DEFAULT_BORDER
));
1484 aNumFormattingCB
.Check(pModOpt
->IsInsTblFormatNum(bHTMLMode
));
1485 aNumFmtFormattingCB
.Check(pModOpt
->IsInsTblChangeNumFormat(bHTMLMode
));
1486 aNumAlignmentCB
.Check(pModOpt
->IsInsTblAlignNum(bHTMLMode
));
1488 aHeaderCB
.SaveValue();
1489 aRepeatHeaderCB
.SaveValue();
1490 aDontSplitCB
.SaveValue();
1491 aBorderCB
.SaveValue();
1492 aNumFormattingCB
.SaveValue();
1493 aNumFmtFormattingCB
.SaveValue();
1494 aNumAlignmentCB
.SaveValue();
1498 /*-----------------18.01.97 12.42-------------------
1500 --------------------------------------------------*/
1501 IMPL_LINK(SwTableOptionsTabPage
, CheckBoxHdl
, CheckBox
*, EMPTYARG
)
1503 aNumFmtFormattingCB
.Enable(aNumFormattingCB
.IsChecked());
1504 aNumAlignmentCB
.Enable(aNumFormattingCB
.IsChecked());
1505 aRepeatHeaderCB
.Enable(aHeaderCB
.IsChecked());
1508 void SwTableOptionsTabPage::PageCreated (SfxAllItemSet aSet
)
1510 SFX_ITEMSET_ARG (&aSet
,pWrtSh
,SwWrtShellItem
,SID_WRT_SHELL
,sal_False
);
1512 SetWrtShell(pWrtSh
->GetValue());
1516 /*-----------------31.10.97 17:55-------------------
1517 TabPage fuer ShadowCrsr
1518 --------------------------------------------------*/
1520 SwShdwCrsrOptionsTabPage::SwShdwCrsrOptionsTabPage( Window
* pParent
,
1521 const SfxItemSet
& rSet
)
1522 : SfxTabPage(pParent
, SW_RES(TP_OPTSHDWCRSR
), rSet
),
1523 aUnprintFL ( this, SW_RES( FL_NOPRINT
) ),
1524 aParaCB ( this, SW_RES( CB_PARA
) ),
1525 aSHyphCB ( this, SW_RES( CB_SHYPH
) ),
1526 aSpacesCB ( this, SW_RES( CB_SPACE
) ),
1527 aHSpacesCB ( this, SW_RES( CB_HSPACE
) ),
1528 aTabCB ( this, SW_RES( CB_TAB
) ),
1529 aBreakCB ( this, SW_RES( CB_BREAK
) ),
1530 aCharHiddenCB ( this, SW_RES( CB_CHAR_HIDDEN
) ),
1531 aFldHiddenCB ( this, SW_RES( CB_FLD_HIDDEN
) ),
1532 aFldHiddenParaCB ( this, SW_RES( CB_FLD_HIDDEN_PARA
) ),
1534 aSeparatorFL( this, SW_RES( FL_SEPARATOR_SHDW
)),
1536 aFlagFL( this, SW_RES( FL_SHDWCRSFLAG
)),
1537 aOnOffCB( this, SW_RES( CB_SHDWCRSONOFF
)),
1539 aFillModeFT( this, SW_RES( FT_SHDWCRSFILLMODE
)),
1540 aFillMarginRB( this, SW_RES( RB_SHDWCRSFILLMARGIN
)),
1541 aFillIndentRB( this, SW_RES( RB_SHDWCRSFILLINDENT
)),
1542 aFillTabRB( this, SW_RES( RB_SHDWCRSFILLTAB
)),
1543 aFillSpaceRB( this, SW_RES( RB_SHDWCRSFILLSPACE
)),
1544 aCrsrOptFL ( this, SW_RES( FL_CRSR_OPT
)),
1545 aCrsrInProtCB( this, SW_RES( CB_ALLOW_IN_PROT
))
1548 const SfxPoolItem
* pItem
= 0;
1549 SwShadowCursorItem aOpt
;
1551 if( SFX_ITEM_SET
== rSet
.GetItemState( FN_PARAM_SHADOWCURSOR
, FALSE
, &pItem
))
1552 aOpt
= *(SwShadowCursorItem
*)pItem
;
1554 aOnOffCB
.Check( aOpt
.IsOn() );
1556 BYTE eMode
= aOpt
.GetMode();
1557 aFillIndentRB
.Check( FILL_INDENT
== eMode
);
1558 aFillMarginRB
.Check( FILL_MARGIN
== eMode
);
1559 aFillTabRB
.Check( FILL_TAB
== eMode
);
1560 aFillSpaceRB
.Check( FILL_SPACE
== eMode
);
1562 if(SFX_ITEM_SET
== rSet
.GetItemState(SID_HTML_MODE
, FALSE
, &pItem
)
1563 && ((SfxUInt16Item
*)pItem
)->GetValue() & HTMLMODE_ON
)
1566 aCharHiddenCB
.Hide();
1567 aFldHiddenCB
.Hide();
1568 aFldHiddenParaCB
.Hide();
1569 aBreakCB
.SetPosPixel(aTabCB
.GetPosPixel());
1572 aFillModeFT
.Hide();
1573 aFillMarginRB
.Hide();
1574 aFillIndentRB
.Hide();
1576 aFillSpaceRB
.Hide();
1578 aCrsrInProtCB
.Hide();
1579 aSeparatorFL
.Hide();
1580 long nWidth
= aFlagFL
.GetSizePixel().Width() + aFlagFL
.GetPosPixel().X()
1581 - aUnprintFL
.GetPosPixel().X();
1582 Size
aSize(aUnprintFL
.GetSizePixel());
1583 aSize
.Width() = nWidth
;
1584 aUnprintFL
.SetSizePixel(aSize
);
1588 SwShdwCrsrOptionsTabPage::~SwShdwCrsrOptionsTabPage()
1593 SfxTabPage
* SwShdwCrsrOptionsTabPage::Create( Window
* pParent
, const SfxItemSet
& rSet
)
1595 return new SwShdwCrsrOptionsTabPage( pParent
, rSet
);
1598 BOOL
SwShdwCrsrOptionsTabPage::FillItemSet( SfxItemSet
& rSet
)
1600 SwShadowCursorItem aOpt
;
1601 aOpt
.SetOn( aOnOffCB
.IsChecked() );
1604 if( aFillIndentRB
.IsChecked() )
1606 else if( aFillMarginRB
.IsChecked() )
1607 eMode
= FILL_MARGIN
;
1608 else if( aFillTabRB
.IsChecked() )
1612 aOpt
.SetMode( eMode
);
1615 const SfxPoolItem
* pItem
= 0;
1616 if( SFX_ITEM_SET
!= rSet
.GetItemState( FN_PARAM_SHADOWCURSOR
, FALSE
, &pItem
)
1617 || ((SwShadowCursorItem
&)*pItem
) != aOpt
)
1623 if( aCrsrInProtCB
.IsChecked() != aCrsrInProtCB
.GetSavedValue())
1625 rSet
.Put(SfxBoolItem(FN_PARAM_CRSR_IN_PROTECTED
, aCrsrInProtCB
.IsChecked()));
1629 const SwDocDisplayItem
* pOldAttr
= (const SwDocDisplayItem
*)
1630 GetOldItem(GetItemSet(), FN_PARAM_DOCDISP
);
1632 SwDocDisplayItem aDisp
;
1636 aDisp
.bParagraphEnd
= aParaCB
.IsChecked();
1637 aDisp
.bTab
= aTabCB
.IsChecked();
1638 aDisp
.bSpace
= aSpacesCB
.IsChecked();
1639 aDisp
.bNonbreakingSpace
= aHSpacesCB
.IsChecked();
1640 aDisp
.bSoftHyphen
= aSHyphCB
.IsChecked();
1641 aDisp
.bFldHiddenText
= aFldHiddenCB
.IsChecked();
1642 aDisp
.bCharHiddenText
= aCharHiddenCB
.IsChecked();
1643 aDisp
.bShowHiddenPara
= aFldHiddenParaCB
.IsChecked();
1644 aDisp
.bManualBreak
= aBreakCB
.IsChecked();
1646 bRet
|= (!pOldAttr
|| aDisp
!= *pOldAttr
);
1648 bRet
= 0 != rSet
.Put(aDisp
);
1653 void SwShdwCrsrOptionsTabPage::Reset( const SfxItemSet
& rSet
)
1655 const SfxPoolItem
* pItem
= 0;
1656 SwShadowCursorItem aOpt
;
1658 if( SFX_ITEM_SET
== rSet
.GetItemState( FN_PARAM_SHADOWCURSOR
, FALSE
, &pItem
))
1659 aOpt
= *(SwShadowCursorItem
*)pItem
;
1661 aOnOffCB
.Check( aOpt
.IsOn() );
1663 BYTE eMode
= aOpt
.GetMode();
1664 aFillIndentRB
.Check( FILL_INDENT
== eMode
);
1665 aFillMarginRB
.Check( FILL_MARGIN
== eMode
);
1666 aFillTabRB
.Check( FILL_TAB
== eMode
);
1667 aFillSpaceRB
.Check( FILL_SPACE
== eMode
);
1669 if( SFX_ITEM_SET
== rSet
.GetItemState( FN_PARAM_CRSR_IN_PROTECTED
, FALSE
, &pItem
))
1670 aCrsrInProtCB
.Check(((const SfxBoolItem
*)pItem
)->GetValue());
1671 aCrsrInProtCB
.SaveValue();
1673 const SwDocDisplayItem
* pDocDisplayAttr
= 0;
1675 rSet
.GetItemState( FN_PARAM_DOCDISP
, FALSE
,
1676 (const SfxPoolItem
**)&pDocDisplayAttr
);
1679 aParaCB
.Check (pDocDisplayAttr
->bParagraphEnd
);
1680 aTabCB
.Check (pDocDisplayAttr
->bTab
);
1681 aSpacesCB
.Check (pDocDisplayAttr
->bSpace
);
1682 aHSpacesCB
.Check (pDocDisplayAttr
->bNonbreakingSpace
);
1683 aSHyphCB
.Check (pDocDisplayAttr
->bSoftHyphen
);
1684 aCharHiddenCB
.Check (pDocDisplayAttr
->bCharHiddenText
);
1685 aFldHiddenCB
.Check (pDocDisplayAttr
->bFldHiddenText
);
1686 aFldHiddenParaCB
.Check (pDocDisplayAttr
->bShowHiddenPara
);
1687 aBreakCB
.Check (pDocDisplayAttr
->bManualBreak
);
1691 /*-----------------31.10.97 17:55-------------------
1692 TabPage fuer Redlining
1693 --------------------------------------------------*/
1701 // Editieren entspricht Einfuegen-Attributen
1702 static CharAttr __FAR_DATA aRedlineAttr
[] =
1704 { SID_ATTR_CHAR_CASEMAP
, SVX_CASEMAP_NOT_MAPPED
},
1705 { SID_ATTR_CHAR_WEIGHT
, WEIGHT_BOLD
},
1706 { SID_ATTR_CHAR_POSTURE
, ITALIC_NORMAL
},
1707 { SID_ATTR_CHAR_UNDERLINE
, UNDERLINE_SINGLE
},
1708 { SID_ATTR_CHAR_UNDERLINE
, UNDERLINE_DOUBLE
},
1709 { SID_ATTR_CHAR_STRIKEOUT
, STRIKEOUT_SINGLE
},
1710 { SID_ATTR_CHAR_CASEMAP
, SVX_CASEMAP_VERSALIEN
},
1711 { SID_ATTR_CHAR_CASEMAP
, SVX_CASEMAP_GEMEINE
},
1712 { SID_ATTR_CHAR_CASEMAP
, SVX_CASEMAP_KAPITAELCHEN
},
1713 { SID_ATTR_CHAR_CASEMAP
, SVX_CASEMAP_TITEL
},
1714 { SID_ATTR_BRUSH
, 0 }
1716 // Items from aRedlineAttr relevant for InsertAttr: strikethrough is
1718 static USHORT aInsertAttrMap
[] = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 };
1720 // Items from aRedlineAttr relevant for DeleteAttr: underline and
1721 // double underline is not used
1722 static USHORT aDeletedAttrMap
[] = { 0, 1, 2, 5, 6, 7, 8, 9, 10 };
1724 // Items from aRedlineAttr relevant for ChangeAttr: strikethrough is
1726 static USHORT aChangedAttrMap
[] = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 };
1728 /*-----------------------------------------------------------------------
1729 Beschreibung: Markierungsvorschau
1730 -----------------------------------------------------------------------*/
1732 SwMarkPreview::SwMarkPreview( Window
*pParent
, const ResId
& rResID
) :
1734 Window(pParent
, rResID
),
1735 m_aTransCol( COL_TRANSPARENT
),
1736 m_aMarkCol( COL_LIGHTRED
),
1741 SetMapMode(MAP_PIXEL
);
1743 const Size
aSz(GetOutputSizePixel());
1746 aPage
.SetSize(Size(aSz
.Width() - 3, aSz
.Height() - 3));
1748 ULONG nOutWPix
= aPage
.GetWidth();
1749 ULONG nOutHPix
= aPage
.GetHeight();
1757 aLeftPagePrtArea
= Rectangle(Point(nLBorder
, nTBorder
), Point((nOutWPix
- 1) - nRBorder
, (nOutHPix
- 1) - nBBorder
));
1758 USHORT nWidth
= (USHORT
)aLeftPagePrtArea
.GetWidth();
1759 USHORT nKorr
= (nWidth
& 1) != 0 ? 0 : 1;
1760 aLeftPagePrtArea
.SetSize(Size(nWidth
/ 2 - (nLBorder
+ nRBorder
) / 2 + nKorr
, aLeftPagePrtArea
.GetHeight()));
1762 aRightPagePrtArea
= aLeftPagePrtArea
;
1763 aRightPagePrtArea
.Move(aLeftPagePrtArea
.GetWidth() + nLBorder
+ nRBorder
+ 1, 0);
1766 SwMarkPreview::~SwMarkPreview()
1770 void SwMarkPreview::InitColors( void )
1772 // m_aTransCol and m_aMarkCol are _not_ changed because they are set from outside!
1774 const StyleSettings
& rSettings
= GetSettings().GetStyleSettings();
1775 m_aBgCol
= Color( rSettings
.GetWindowColor() );
1777 BOOL bHC
= m_aBgCol
.IsDark();
1778 m_aLineCol
= bHC
? SwViewOption::GetFontColor() : Color( COL_BLACK
);
1779 m_aShadowCol
= bHC
? m_aBgCol
: rSettings
.GetShadowColor();
1780 m_aTxtCol
= bHC
? SwViewOption::GetFontColor() : Color( COL_GRAY
);
1781 m_aPrintAreaCol
= m_aTxtCol
;
1784 void SwMarkPreview::DataChanged( const DataChangedEvent
& rDCEvt
)
1786 Window::DataChanged( rDCEvt
);
1788 if( rDCEvt
.GetType() == DATACHANGED_SETTINGS
&& ( rDCEvt
.GetFlags() & SETTINGS_STYLE
) )
1792 void SwMarkPreview::Paint(const Rectangle
&/*rRect*/)
1794 // Schatten zeichnen
1795 Rectangle
aShadow(aPage
);
1796 aShadow
+= Point(3, 3);
1797 DrawRect( aShadow
, m_aShadowCol
, m_aTransCol
);
1800 DrawRect( aPage
, m_aBgCol
, m_aLineCol
);
1802 // Separator zeichnen
1803 Rectangle
aPageSeparator(aPage
);
1804 aPageSeparator
.SetSize(Size(2, aPageSeparator
.GetHeight()));
1805 aPageSeparator
.Move(aPage
.GetWidth() / 2 - 1, 0);
1806 DrawRect( aPageSeparator
, m_aLineCol
, m_aTransCol
);
1808 PaintPage(aLeftPagePrtArea
);
1809 PaintPage(aRightPagePrtArea
);
1811 Rectangle
aLeftMark(Point(aPage
.Left() + 2, aLeftPagePrtArea
.Top() + 4), Size(aLeftPagePrtArea
.Left() - 4, 2));
1812 Rectangle
aRightMark(Point(aRightPagePrtArea
.Right() + 2, aRightPagePrtArea
.Bottom() - 6), Size(aLeftPagePrtArea
.Left() - 4, 2));
1817 aRightMark
.SetPos(Point(aRightPagePrtArea
.Left() - 2 - aRightMark
.GetWidth(), aRightMark
.Top()));
1821 aLeftMark
.SetPos(Point(aLeftPagePrtArea
.Right() + 2, aLeftMark
.Top()));
1828 aLeftMark
.SetPos(Point(aLeftPagePrtArea
.Right() + 2, aLeftMark
.Top()));
1829 aRightMark
.SetPos(Point(aRightPagePrtArea
.Left() - 2 - aRightMark
.GetWidth(), aRightMark
.Top()));
1836 DrawRect( aLeftMark
, m_aMarkCol
, m_aTransCol
);
1837 DrawRect( aRightMark
, m_aMarkCol
, m_aTransCol
);
1840 void SwMarkPreview::PaintPage(const Rectangle
&rRect
)
1842 // PrintArea zeichnen
1843 DrawRect(rRect
, m_aTransCol
, m_aPrintAreaCol
);
1845 // Testabsatz zeichnen
1846 ULONG nLTxtBorder
= 4;
1847 ULONG nRTxtBorder
= 4;
1848 ULONG nTTxtBorder
= 4;
1850 Rectangle aTextLine
= rRect
;
1851 aTextLine
.SetSize(Size(aTextLine
.GetWidth(), 2));
1852 aTextLine
.Left() += nLTxtBorder
;
1853 aTextLine
.Right() -= nRTxtBorder
;
1854 aTextLine
.Move(0, nTTxtBorder
);
1859 nStep
= aTextLine
.GetHeight() + 2;
1860 nLines
= (USHORT
)(rRect
.GetHeight() / (aTextLine
.GetHeight() + 2)) - 1;
1864 for (USHORT i
= 0; i
< nLines
; ++i
)
1866 if (i
== (nLines
- 1))
1867 aTextLine
.SetSize(Size(aTextLine
.GetWidth() / 2, aTextLine
.GetHeight()));
1869 if (aPage
.IsInside(aTextLine
))
1870 DrawRect(aTextLine
, m_aTxtCol
, m_aTransCol
);
1872 aTextLine
.Move(0, nStep
);
1874 aTextLine
.Move(0, -nStep
);
1877 void SwMarkPreview::DrawRect(const Rectangle
&rRect
, const Color
&rFillColor
, const Color
&rLineColor
)
1879 SetFillColor(rFillColor
);
1880 SetLineColor(rLineColor
);
1881 Window::DrawRect(rRect
);
1886 void lcl_FillRedlineAttrListBox(
1887 ListBox
& rLB
, const AuthorCharAttr
& rAttrToSelect
,
1888 const USHORT
* pAttrMap
, const USHORT nAttrMapSize
)
1890 for (USHORT i
= 0; i
!= nAttrMapSize
; ++i
)
1892 CharAttr
& rAttr(aRedlineAttr
[pAttrMap
[i
]]);
1893 rLB
.SetEntryData(i
, &rAttr
);
1894 if (rAttr
.nItemId
== rAttrToSelect
.nItemId
&&
1895 rAttr
.nAttr
== rAttrToSelect
.nAttr
)
1896 rLB
.SelectEntryPos(i
);
1901 SwRedlineOptionsTabPage::SwRedlineOptionsTabPage( Window
* pParent
,
1902 const SfxItemSet
& rSet
)
1903 : SfxTabPage(pParent
, SW_RES(TP_REDLINE_OPT
), rSet
),
1905 aInsertFL( this, SW_RES( FL_TE
)),
1907 aInsertFT( this, SW_RES( FT_CHG_INSERT
)),
1908 aInsertAttrFT( this, SW_RES( FT_INS_ATTR
)),
1909 aInsertLB( this, SW_RES( LB_INS_ATTR
)),
1910 aInsertColorFT( this, SW_RES( FT_INS_COL
)),
1911 aInsertColorLB( this, SW_RES( LB_INS_COL
)),
1912 aInsertedPreviewWN( this, SW_RES( WIN_INS
)),
1914 aDeletedFT( this, SW_RES( FT_CHG_DELETE
)),
1915 aDeletedAttrFT( this, SW_RES( FT_DEL_ATTR
)),
1916 aDeletedLB( this, SW_RES( LB_DEL_ATTR
)),
1917 aDeletedColorFT( this, SW_RES( FT_DEL_COL
)),
1918 aDeletedColorLB( this, SW_RES( LB_DEL_COL
)),
1919 aDeletedPreviewWN( this, SW_RES( WIN_DEL
)),
1921 aChangedFT( this, SW_RES( FT_CHG_CHANGE
)),
1922 aChangedAttrFT( this, SW_RES( FT_CHG_ATTR
)),
1923 aChangedLB( this, SW_RES( LB_CHG_ATTR
)),
1924 aChangedColorFT( this, SW_RES( FT_CHG_COL
)),
1925 aChangedColorLB( this, SW_RES( LB_CHG_COL
)),
1926 aChangedPreviewWN( this, SW_RES( WIN_CHG
)),
1928 aChangedFL ( this, SW_RES( FL_LC
)),
1930 aMarkPosFT ( this, SW_RES( FT_MARKPOS
)),
1931 aMarkPosLB ( this, SW_RES( LB_MARKPOS
)),
1932 aMarkColorFT ( this, SW_RES( FT_LC_COL
)),
1933 aMarkColorLB ( this, SW_RES( LB_LC_COL
)),
1934 aMarkPreviewWN ( this, SW_RES( WIN_MARK
)),
1936 sAuthor ( SW_RES( STR_AUTHOR
)),
1937 sNone ( SW_RES( STR_NOTHING
))
1942 for(USHORT i
= 0; i
< aInsertLB
.GetEntryCount(); i
++)
1944 String
sEntry(aInsertLB
.GetEntry(i
));
1945 aDeletedLB
.InsertEntry(sEntry
);
1946 aChangedLB
.InsertEntry(sEntry
);
1949 // remove strikethrough from insert and change and underline + double
1950 // underline from delete
1951 aInsertLB
.RemoveEntry(5);
1952 aChangedLB
.RemoveEntry(5);
1953 aDeletedLB
.RemoveEntry(4);
1954 aDeletedLB
.RemoveEntry(3);
1956 Link aLk
= LINK(this, SwRedlineOptionsTabPage
, AttribHdl
);
1957 aInsertLB
.SetSelectHdl( aLk
);
1958 aDeletedLB
.SetSelectHdl( aLk
);
1959 aChangedLB
.SetSelectHdl( aLk
);
1961 aLk
= LINK(this, SwRedlineOptionsTabPage
, ColorHdl
);
1962 aInsertColorLB
.SetSelectHdl( aLk
);
1963 aDeletedColorLB
.SetSelectHdl( aLk
);
1964 aChangedColorLB
.SetSelectHdl( aLk
);
1966 aLk
= LINK(this, SwRedlineOptionsTabPage
, ChangedMaskPrevHdl
);
1967 aMarkPosLB
.SetSelectHdl( aLk
);
1968 aMarkColorLB
.SetSelectHdl( aLk
);
1971 SwRedlineOptionsTabPage::~SwRedlineOptionsTabPage()
1975 SfxTabPage
* SwRedlineOptionsTabPage::Create( Window
* pParent
, const SfxItemSet
& rSet
)
1977 return new SwRedlineOptionsTabPage( pParent
, rSet
);
1980 BOOL
SwRedlineOptionsTabPage::FillItemSet( SfxItemSet
& )
1983 SwModuleOptions
*pOpt
= SW_MOD()->GetModuleConfig();
1985 AuthorCharAttr aInsertedAttr
;
1986 AuthorCharAttr aDeletedAttr
;
1987 AuthorCharAttr aChangedAttr
;
1989 AuthorCharAttr
aOldInsertAttr(pOpt
->GetInsertAuthorAttr());
1990 AuthorCharAttr
aOldDeletedAttr(pOpt
->GetDeletedAuthorAttr());
1991 AuthorCharAttr
aOldChangedAttr(pOpt
->GetFormatAuthorAttr());
1993 ColorData nOldMarkColor
= pOpt
->GetMarkAlignColor().GetColor();
1994 USHORT nOldMarkMode
= pOpt
->GetMarkAlignMode();
1996 USHORT nPos
= aInsertLB
.GetSelectEntryPos();
1997 if (nPos
!= LISTBOX_ENTRY_NOTFOUND
)
1999 pAttr
= (CharAttr
*)aInsertLB
.GetEntryData(nPos
);
2000 aInsertedAttr
.nItemId
= pAttr
->nItemId
;
2001 aInsertedAttr
.nAttr
= pAttr
->nAttr
;
2003 nPos
= aInsertColorLB
.GetSelectEntryPos();
2008 aInsertedAttr
.nColor
= COL_NONE
;
2011 case LISTBOX_ENTRY_NOTFOUND
:
2012 aInsertedAttr
.nColor
= COL_TRANSPARENT
;
2015 aInsertedAttr
.nColor
= aInsertColorLB
.GetEntryColor(nPos
).GetColor();
2019 pOpt
->SetInsertAuthorAttr(aInsertedAttr
);
2022 nPos
= aDeletedLB
.GetSelectEntryPos();
2023 if (nPos
!= LISTBOX_ENTRY_NOTFOUND
)
2025 pAttr
= (CharAttr
*)aDeletedLB
.GetEntryData(nPos
);
2026 aDeletedAttr
.nItemId
= pAttr
->nItemId
;
2027 aDeletedAttr
.nAttr
= pAttr
->nAttr
;
2029 nPos
= aDeletedColorLB
.GetSelectEntryPos();
2034 aDeletedAttr
.nColor
= COL_NONE
;
2037 case LISTBOX_ENTRY_NOTFOUND
:
2038 aDeletedAttr
.nColor
= COL_TRANSPARENT
;
2041 aDeletedAttr
.nColor
= aDeletedColorLB
.GetEntryColor(nPos
).GetColor();
2045 pOpt
->SetDeletedAuthorAttr(aDeletedAttr
);
2048 nPos
= aChangedLB
.GetSelectEntryPos();
2049 if (nPos
!= LISTBOX_ENTRY_NOTFOUND
)
2051 pAttr
= (CharAttr
*)aChangedLB
.GetEntryData(nPos
);
2052 aChangedAttr
.nItemId
= pAttr
->nItemId
;
2053 aChangedAttr
.nAttr
= pAttr
->nAttr
;
2055 nPos
= aChangedColorLB
.GetSelectEntryPos();
2060 aChangedAttr
.nColor
= COL_NONE
;
2063 case LISTBOX_ENTRY_NOTFOUND
:
2064 aChangedAttr
.nColor
= COL_TRANSPARENT
;
2067 aChangedAttr
.nColor
= aChangedColorLB
.GetEntryColor(nPos
).GetColor();
2071 pOpt
->SetFormatAuthorAttr(aChangedAttr
);
2075 switch (aMarkPosLB
.GetSelectEntryPos())
2077 case 0: nPos
= text::HoriOrientation::NONE
; break;
2078 case 1: nPos
= text::HoriOrientation::LEFT
; break;
2079 case 2: nPos
= text::HoriOrientation::RIGHT
; break;
2080 case 3: nPos
= text::HoriOrientation::OUTSIDE
; break;
2081 case 4: nPos
= text::HoriOrientation::INSIDE
; break;
2083 pOpt
->SetMarkAlignMode(nPos
);
2085 pOpt
->SetMarkAlignColor(aMarkColorLB
.GetSelectEntryColor());
2087 if (!(aInsertedAttr
== aOldInsertAttr
) ||
2088 !(aDeletedAttr
== aOldDeletedAttr
) ||
2089 !(aChangedAttr
== aOldChangedAttr
) ||
2090 nOldMarkColor
!= pOpt
->GetMarkAlignColor().GetColor() ||
2091 nOldMarkMode
!= pOpt
->GetMarkAlignMode())
2093 // Alle Dokumente aktualisieren
2094 TypeId
aType(TYPE(SwDocShell
));
2095 SwDocShell
* pDocShell
= (SwDocShell
*)SfxObjectShell::GetFirst(&aType
);
2099 pDocShell
->GetWrtShell()->UpdateRedlineAttr();
2100 pDocShell
= (SwDocShell
*)SfxObjectShell::GetNext(*pDocShell
, &aType
);
2107 void SwRedlineOptionsTabPage::Reset( const SfxItemSet
& )
2109 const SwModuleOptions
*pOpt
= SW_MOD()->GetModuleConfig();
2111 const AuthorCharAttr
&rInsertAttr
= pOpt
->GetInsertAuthorAttr();
2112 const AuthorCharAttr
&rDeletedAttr
= pOpt
->GetDeletedAuthorAttr();
2113 const AuthorCharAttr
&rChangedAttr
= pOpt
->GetFormatAuthorAttr();
2115 // Preview initialisieren
2116 InitFontStyle(aInsertedPreviewWN
);
2117 InitFontStyle(aDeletedPreviewWN
);
2118 InitFontStyle(aChangedPreviewWN
);
2120 // Farblistboxen initialisieren
2122 aInsertColorLB
.SetUpdateMode(FALSE
);
2123 aDeletedColorLB
.SetUpdateMode(FALSE
);
2124 aChangedColorLB
.SetUpdateMode(FALSE
);
2125 aMarkColorLB
.SetUpdateMode(FALSE
);
2127 aInsertColorLB
.InsertEntry(sNone
);
2128 aDeletedColorLB
.InsertEntry(sNone
);
2129 aChangedColorLB
.InsertEntry(sNone
);
2131 aInsertColorLB
.InsertEntry(sAuthor
);
2132 aDeletedColorLB
.InsertEntry(sAuthor
);
2133 aChangedColorLB
.InsertEntry(sAuthor
);
2135 XColorTable
* pColorTbl
= XColorTable::GetStdColorTable();
2137 for( i
= 0; i
< pColorTbl
->Count(); ++i
)
2139 XColorEntry
* pEntry
= pColorTbl
->GetColor( i
);
2140 Color aColor
= pEntry
->GetColor();
2141 String sName
= pEntry
->GetName();
2143 aInsertColorLB
.InsertEntry( aColor
, sName
);
2144 aDeletedColorLB
.InsertEntry( aColor
, sName
);
2145 aChangedColorLB
.InsertEntry( aColor
, sName
);
2146 aMarkColorLB
.InsertEntry( aColor
, sName
);
2148 aInsertColorLB
.SetUpdateMode( TRUE
);
2149 aDeletedColorLB
.SetUpdateMode( TRUE
);
2150 aChangedColorLB
.SetUpdateMode( TRUE
);
2151 aMarkColorLB
.SetUpdateMode( TRUE
);
2153 ColorData nColor
= rInsertAttr
.nColor
;
2157 case COL_TRANSPARENT
:
2158 aInsertColorLB
.SelectEntryPos(1);
2161 aInsertColorLB
.SelectEntryPos(0);
2164 aInsertColorLB
.SelectEntry(Color(nColor
));
2167 nColor
= rDeletedAttr
.nColor
;
2171 case COL_TRANSPARENT
:
2172 aDeletedColorLB
.SelectEntryPos(1);
2175 aDeletedColorLB
.SelectEntryPos(0);
2178 aDeletedColorLB
.SelectEntry(Color(nColor
));
2181 nColor
= rChangedAttr
.nColor
;
2185 case COL_TRANSPARENT
:
2186 aChangedColorLB
.SelectEntryPos(1);
2189 aChangedColorLB
.SelectEntryPos(0);
2192 aChangedColorLB
.SelectEntry(Color(nColor
));
2195 aMarkColorLB
.SelectEntry(pOpt
->GetMarkAlignColor());
2197 aInsertLB
.SelectEntryPos(0);
2198 aDeletedLB
.SelectEntryPos(0);
2199 aChangedLB
.SelectEntryPos(0);
2201 lcl_FillRedlineAttrListBox(aInsertLB
, rInsertAttr
, aInsertAttrMap
,
2202 sizeof(aInsertAttrMap
) / sizeof(USHORT
));
2203 lcl_FillRedlineAttrListBox(aDeletedLB
, rDeletedAttr
, aDeletedAttrMap
,
2204 sizeof(aDeletedAttrMap
) / sizeof(USHORT
));
2205 lcl_FillRedlineAttrListBox(aChangedLB
, rChangedAttr
, aChangedAttrMap
,
2206 sizeof(aChangedAttrMap
) / sizeof(USHORT
));
2209 switch (pOpt
->GetMarkAlignMode())
2211 case text::HoriOrientation::NONE
: nPos
= 0; break;
2212 case text::HoriOrientation::LEFT
: nPos
= 1; break;
2213 case text::HoriOrientation::RIGHT
: nPos
= 2; break;
2214 case text::HoriOrientation::OUTSIDE
: nPos
= 3; break;
2215 case text::HoriOrientation::INSIDE
: nPos
= 4; break;
2217 aMarkPosLB
.SelectEntryPos(nPos
);
2219 // Einstellungen in Preview anzeigen
2220 AttribHdl(&aInsertLB
);
2221 ColorHdl(&aInsertColorLB
);
2222 AttribHdl(&aDeletedLB
);
2223 ColorHdl(&aInsertColorLB
);
2224 AttribHdl(&aChangedLB
);
2225 ColorHdl(&aChangedColorLB
);
2227 ChangedMaskPrevHdl();
2230 IMPL_LINK( SwRedlineOptionsTabPage
, AttribHdl
, ListBox
*, pLB
)
2232 SvxFontPrevWindow
*pPrev
= 0;
2233 ColorListBox
*pColorLB
;
2235 if (pLB
== &aInsertLB
)
2237 pColorLB
= &aInsertColorLB
;
2238 pPrev
= &aInsertedPreviewWN
;
2240 else if (pLB
== &aDeletedLB
)
2242 pColorLB
= &aDeletedColorLB
;
2243 pPrev
= &aDeletedPreviewWN
;
2247 pColorLB
= &aChangedColorLB
;
2248 pPrev
= &aChangedPreviewWN
;
2251 SvxFont
& rFont
= pPrev
->GetFont();
2252 SvxFont
& rCJKFont
= pPrev
->GetCJKFont();
2254 rFont
.SetWeight(WEIGHT_NORMAL
);
2255 rCJKFont
.SetWeight(WEIGHT_NORMAL
);
2256 rFont
.SetItalic(ITALIC_NONE
);
2257 rCJKFont
.SetItalic(ITALIC_NONE
);
2258 rFont
.SetUnderline(UNDERLINE_NONE
);
2259 rCJKFont
.SetUnderline(UNDERLINE_NONE
);
2260 rFont
.SetStrikeout(STRIKEOUT_NONE
);
2261 rCJKFont
.SetStrikeout(STRIKEOUT_NONE
);
2262 rFont
.SetCaseMap(SVX_CASEMAP_NOT_MAPPED
);
2263 rCJKFont
.SetCaseMap(SVX_CASEMAP_NOT_MAPPED
);
2265 USHORT nPos
= pColorLB
->GetSelectEntryPos();
2270 rFont
.SetColor( Color( COL_BLACK
) );
2271 rCJKFont
.SetColor( Color( COL_BLACK
) );
2274 case LISTBOX_ENTRY_NOTFOUND
:
2275 rFont
.SetColor( Color( COL_RED
) );
2276 rCJKFont
.SetColor( Color( COL_RED
) );
2279 rFont
.SetColor( pColorLB
->GetEntryColor( nPos
) );
2280 rCJKFont
.SetColor( pColorLB
->GetEntryColor( nPos
) );
2284 nPos
= pLB
->GetSelectEntryPos();
2285 if( nPos
== LISTBOX_ENTRY_NOTFOUND
)
2288 CharAttr
* pAttr
= ( CharAttr
* ) pLB
->GetEntryData( nPos
);
2289 //switch off preview background color
2290 pPrev
->ResetColor();
2291 switch (pAttr
->nItemId
)
2293 case SID_ATTR_CHAR_WEIGHT
:
2294 rFont
.SetWeight( ( FontWeight
) pAttr
->nAttr
);
2295 rCJKFont
.SetWeight( ( FontWeight
) pAttr
->nAttr
);
2298 case SID_ATTR_CHAR_POSTURE
:
2299 rFont
.SetItalic( ( FontItalic
) pAttr
->nAttr
);
2300 rCJKFont
.SetItalic( ( FontItalic
) pAttr
->nAttr
);
2303 case SID_ATTR_CHAR_UNDERLINE
:
2304 rFont
.SetUnderline( ( FontUnderline
) pAttr
->nAttr
);
2305 rCJKFont
.SetUnderline( ( FontUnderline
) pAttr
->nAttr
);
2308 case SID_ATTR_CHAR_STRIKEOUT
:
2309 rFont
.SetStrikeout( ( FontStrikeout
) pAttr
->nAttr
);
2310 rCJKFont
.SetStrikeout( ( FontStrikeout
) pAttr
->nAttr
);
2313 case SID_ATTR_CHAR_CASEMAP
:
2314 rFont
.SetCaseMap( ( SvxCaseMap
) pAttr
->nAttr
);
2315 rCJKFont
.SetCaseMap( ( SvxCaseMap
) pAttr
->nAttr
);
2318 case SID_ATTR_BRUSH
:
2320 nPos
= pColorLB
->GetSelectEntryPos();
2322 pPrev
->SetColor( pColorLB
->GetSelectEntryColor() );
2324 pPrev
->SetColor( Color( COL_LIGHTGRAY
) );
2326 rFont
.SetColor( Color( COL_BLACK
) );
2327 rCJKFont
.SetColor( Color( COL_BLACK
) );
2332 pPrev
->Invalidate();
2337 IMPL_LINK( SwRedlineOptionsTabPage
, ColorHdl
, ColorListBox
*, pColorLB
)
2339 SvxFontPrevWindow
*pPrev
= 0;
2342 if (pColorLB
== &aInsertColorLB
)
2345 pPrev
= &aInsertedPreviewWN
;
2347 else if (pColorLB
== &aDeletedColorLB
)
2350 pPrev
= &aDeletedPreviewWN
;
2355 pPrev
= &aChangedPreviewWN
;
2358 SvxFont
& rFont
= pPrev
->GetFont();
2359 SvxFont
& rCJKFont
= pPrev
->GetCJKFont();
2360 USHORT nPos
= pLB
->GetSelectEntryPos();
2361 if( nPos
== LISTBOX_ENTRY_NOTFOUND
)
2364 CharAttr
* pAttr
= ( CharAttr
* ) pLB
->GetEntryData( nPos
);
2366 if( pAttr
->nItemId
== SID_ATTR_BRUSH
)
2368 rFont
.SetColor( Color( COL_BLACK
) );
2369 rCJKFont
.SetColor( Color( COL_BLACK
) );
2370 nPos
= pColorLB
->GetSelectEntryPos();
2371 if( nPos
&& nPos
!= LISTBOX_ENTRY_NOTFOUND
)
2372 pPrev
->SetColor( pColorLB
->GetSelectEntryColor() );
2374 pPrev
->SetColor( Color( COL_LIGHTGRAY
) );
2378 nPos
= pColorLB
->GetSelectEntryPos();
2383 rFont
.SetColor( Color( COL_BLACK
) );
2384 rCJKFont
.SetColor( Color( COL_BLACK
) );
2387 case LISTBOX_ENTRY_NOTFOUND
:
2388 rFont
.SetColor( Color( COL_RED
) );
2389 rCJKFont
.SetColor( Color( COL_RED
) );
2392 rFont
.SetColor( pColorLB
->GetEntryColor( nPos
) );
2393 rCJKFont
.SetColor( pColorLB
->GetEntryColor( nPos
) );
2398 pPrev
->Invalidate();
2403 IMPL_LINK( SwRedlineOptionsTabPage
, ChangedMaskPrevHdl
, ListBox
*, EMPTYARG
)
2405 aMarkPreviewWN
.SetMarkPos(aMarkPosLB
.GetSelectEntryPos());
2406 aMarkPreviewWN
.SetColor(aMarkColorLB
.GetSelectEntryColor().GetColor());
2408 aMarkPreviewWN
.Invalidate();
2413 void SwRedlineOptionsTabPage::InitFontStyle(SvxFontPrevWindow
& rExampleWin
)
2415 const AllSettings
& rAllSettings
= Application::GetSettings();
2416 LanguageType eLangType
= rAllSettings
.GetUILanguage();
2417 Color
aBackCol( rAllSettings
.GetStyleSettings().GetWindowColor() );
2418 SvxFont
& rFont
= rExampleWin
.GetFont();
2419 SvxFont
& rCJKFont
= rExampleWin
.GetCJKFont();
2420 SvxFont
& rCTLFont
= rExampleWin
.GetCTLFont();
2422 Font
aFont( OutputDevice::GetDefaultFont( DEFAULTFONT_SERIF
, eLangType
,
2423 DEFAULTFONT_FLAGS_ONLYONE
, &rExampleWin
) );
2424 Font
aCJKFont( OutputDevice::GetDefaultFont( DEFAULTFONT_CJK_TEXT
, eLangType
,
2425 DEFAULTFONT_FLAGS_ONLYONE
, &rExampleWin
) );
2426 Font
aCTLFont( OutputDevice::GetDefaultFont( DEFAULTFONT_CTL_TEXT
, eLangType
,
2427 DEFAULTFONT_FLAGS_ONLYONE
, &rExampleWin
) );
2428 const Size
aDefSize( 0, 12 );
2429 aFont
.SetSize( aDefSize
);
2430 aCJKFont
.SetSize( aDefSize
);
2431 aCTLFont
.SetSize( aDefSize
);
2433 aFont
.SetFillColor( aBackCol
);
2434 aCJKFont
.SetFillColor( aBackCol
);
2435 aCTLFont
.SetFillColor( aBackCol
);
2437 aFont
.SetWeight( WEIGHT_NORMAL
);
2438 aCJKFont
.SetWeight( WEIGHT_NORMAL
);
2439 aCTLFont
.SetWeight( WEIGHT_NORMAL
);
2442 rCJKFont
= aCJKFont
;
2443 rCTLFont
= aCTLFont
;
2445 const Size
aNewSize( 0, rExampleWin
.GetOutputSize().Height() * 2 / 3 );
2446 rFont
.SetSize( aNewSize
);
2447 rCJKFont
.SetSize( aNewSize
);
2449 rExampleWin
.SetFont( rFont
, rCJKFont
,rCTLFont
);
2451 rExampleWin
.UseResourceText();
2453 Wallpaper
aWall( aBackCol
);
2454 rExampleWin
.SetBackground( aWall
);
2455 rExampleWin
.Invalidate();
2460 /*******************************************************
2461 ******************************************************/
2462 /*----------------- OS 11.01.95 -----------------------
2463 TabPage Testeinstellungen
2464 -------------------------------------------------------*/
2466 void lcl_SetPosSize(Window
& rWin
, Point aPos
, Size aSize
)
2468 aPos
= rWin
.LogicToPixel(aPos
, MAP_APPFONT
);
2469 aSize
= rWin
.OutputDevice::LogicToPixel(aSize
, MAP_APPFONT
);
2470 rWin
.SetPosSizePixel(aPos
, aSize
);
2473 SwTestTabPage::SwTestTabPage( Window
* pParent
,
2474 const SfxItemSet
& rCoreSet
) :
2475 SfxTabPage( pParent
, WB_HIDE
, rCoreSet
),
2476 aTestFL ( this, WB_GROUP
),
2477 aTest1CBox ( this, 0 ),
2478 aTest2CBox ( this, 0 ),
2479 aTest3CBox ( this, 0 ),
2480 aTest4CBox ( this, 0 ),
2481 aTest5CBox ( this, 0 ),
2482 aTest6CBox ( this, 0 ),
2483 aTest7CBox ( this, 0 ),
2484 aTest8CBox ( this, 0 ),
2485 aTest9CBox ( this, 0 ),
2486 aTest10CBox ( this, 0 ),
2487 bAttrModified( FALSE
)
2489 lcl_SetPosSize(*this, Point(0,0), Size(260 , 135));
2490 lcl_SetPosSize(aTestFL
, Point(6,2), Size(209,8));
2491 lcl_SetPosSize(aTest1CBox
, Point(12 , 14), Size(74 , 10));
2492 lcl_SetPosSize(aTest2CBox
, Point(12 , 27), Size(74 , 10));
2493 lcl_SetPosSize(aTest3CBox
, Point(12 , 40), Size(74 , 10));
2494 lcl_SetPosSize(aTest4CBox
, Point(12 , 53), Size(74 , 10));
2495 lcl_SetPosSize(aTest5CBox
, Point(12 , 66), Size(74 , 10));
2496 lcl_SetPosSize(aTest6CBox
, Point(116, 14), Size(74 , 10));
2497 lcl_SetPosSize(aTest7CBox
, Point(116, 27), Size(74 , 10));
2498 lcl_SetPosSize(aTest8CBox
, Point(116, 40), Size(74 , 10));
2499 lcl_SetPosSize(aTest9CBox
, Point(116, 53), Size(74 , 10));
2500 lcl_SetPosSize(aTest10CBox
, Point(116, 66), Size(74 , 10));
2502 aTestFL
.SetText( String(ByteString("Einstellungen nur f\xFCr Testzwecke" ), RTL_TEXTENCODING_MS_1252
));
2503 aTest1CBox
.SetText( C2S("unused"));
2504 aTest2CBox
.SetText( C2S("dynamic"));
2505 aTest3CBox
.SetText( C2S("No calm" ));
2506 aTest4CBox
.SetText( C2S("WYSIWYG debug" ));
2507 aTest5CBox
.SetText( C2S("No idle format" ));
2508 aTest6CBox
.SetText( C2S("No screen adj" ));
2509 aTest7CBox
.SetText( C2S("win format" ));
2510 aTest8CBox
.SetText( C2S("No Scroll" ));
2511 aTest9CBox
.SetText( C2S("DrawingLayerNotLoading"));
2512 aTest10CBox
.SetText( C2S("AutoFormat by Input" ));
2529 //------------------------------------------------------------------------
2532 SfxTabPage
* SwTestTabPage::Create( Window
* pParent
,
2533 const SfxItemSet
& rAttrSet
)
2535 return ( new SwTestTabPage( pParent
, rAttrSet
) );
2537 //------------------------------------------------------------------------
2540 BOOL
SwTestTabPage::FillItemSet( SfxItemSet
& rCoreSet
)
2543 if ( bAttrModified
)
2545 SwTestItem
aTestItem(FN_PARAM_SWTEST
);
2546 aTestItem
.bTest1
=aTest1CBox
.IsChecked();
2547 aTestItem
.bTest2
=aTest2CBox
.IsChecked();
2548 aTestItem
.bTest3
=aTest3CBox
.IsChecked();
2549 aTestItem
.bTest4
=aTest4CBox
.IsChecked();
2550 aTestItem
.bTest5
=aTest5CBox
.IsChecked();
2551 aTestItem
.bTest6
=aTest6CBox
.IsChecked();
2552 aTestItem
.bTest7
=aTest7CBox
.IsChecked();
2553 aTestItem
.bTest8
=aTest8CBox
.IsChecked();
2554 aTestItem
.bTest9
=aTest9CBox
.IsChecked();
2555 aTestItem
.bTest10
=aTest10CBox
.IsChecked();
2556 rCoreSet
.Put(aTestItem
);
2558 return bAttrModified
;
2560 //------------------------------------------------------------------------
2563 void SwTestTabPage::Reset( const SfxItemSet
& )
2565 const SfxItemSet
& rSet
= GetItemSet();
2566 const SwTestItem
* pTestAttr
= 0;
2568 if( SFX_ITEM_SET
== rSet
.GetItemState( FN_PARAM_SWTEST
, FALSE
,
2569 (const SfxPoolItem
**)&pTestAttr
))
2571 aTest1CBox
.Check(pTestAttr
->bTest1
);
2572 aTest2CBox
.Check(pTestAttr
->bTest2
);
2573 aTest3CBox
.Check(pTestAttr
->bTest3
);
2574 aTest4CBox
.Check(pTestAttr
->bTest4
);
2575 aTest5CBox
.Check(pTestAttr
->bTest5
);
2576 aTest6CBox
.Check(pTestAttr
->bTest6
);
2577 aTest7CBox
.Check(pTestAttr
->bTest7
);
2578 aTest8CBox
.Check(pTestAttr
->bTest8
);
2579 aTest9CBox
.Check(pTestAttr
->bTest9
);
2580 aTest10CBox
.Check(pTestAttr
->bTest10
);
2583 //------------------------------------------------------------------------
2586 void SwTestTabPage::Init()
2589 Link aLk
= LINK( this, SwTestTabPage
, AutoClickHdl
);
2590 aTest1CBox
.SetClickHdl( aLk
);
2591 aTest2CBox
.SetClickHdl( aLk
);
2592 aTest3CBox
.SetClickHdl( aLk
);
2593 aTest4CBox
.SetClickHdl( aLk
);
2594 aTest5CBox
.SetClickHdl( aLk
);
2595 aTest6CBox
.SetClickHdl( aLk
);
2596 aTest7CBox
.SetClickHdl( aLk
);
2597 aTest8CBox
.SetClickHdl( aLk
);
2598 aTest9CBox
.SetClickHdl( aLk
);
2599 aTest10CBox
.SetClickHdl( aLk
);
2601 //------------------------------------------------------------------------
2604 IMPL_LINK_INLINE_START( SwTestTabPage
, AutoClickHdl
, CheckBox
*, EMPTYARG
)
2606 bAttrModified
= TRUE
;
2609 IMPL_LINK_INLINE_END( SwTestTabPage
, AutoClickHdl
, CheckBox
*, EMPTYARG
)