LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/sd/source/ui/dlg - headerfooterdlg.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 375 0.0 %
Date: 2013-07-09 Functions: 0 41 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <svx/dialogs.hrc>
      21             : #include <editeng/eeitem.hxx>
      22             : #include <editeng/flditem.hxx>
      23             : #include <editeng/langitem.hxx>
      24             : #include <svx/langbox.hxx>
      25             : #include <svx/svdotext.hxx>
      26             : #include <editeng/editeng.hxx>
      27             : #include <sfx2/viewfrm.hxx>
      28             : 
      29             : #include "sdresid.hxx"
      30             : 
      31             : #include <vcl/fixed.hxx>
      32             : #include <vcl/button.hxx>
      33             : #include <vcl/edit.hxx>
      34             : #include <vcl/combobox.hxx>
      35             : 
      36             : #include "helpids.h"
      37             : #include "Outliner.hxx"
      38             : #include "dialogs.hrc"
      39             : #include "headerfooterdlg.hxx"
      40             : #include "DrawDocShell.hxx"
      41             : #include "drawdoc.hxx"
      42             : #include "ViewShell.hxx"
      43             : 
      44             : ///////////////////////////////////////////////////////////////////////
      45             : // preview control for presentation layout
      46             : ///////////////////////////////////////////////////////////////////////
      47             : #include <vcl/ctrl.hxx>
      48             : #include <tools/color.hxx>
      49             : #include <i18nlangtag/mslangid.hxx>
      50             : #include <svtools/colorcfg.hxx>
      51             : #include <svx/xlndsit.hxx>
      52             : #include <svx/xlineit0.hxx>
      53             : #include <svx/xlnclit.hxx>
      54             : #include <vcl/decoview.hxx>
      55             : 
      56             : #include "undoheaderfooter.hxx"
      57             : #include "sdundogr.hxx"
      58             : 
      59             : #include <basegfx/matrix/b2dhommatrix.hxx>
      60             : #include <basegfx/polygon/b2dpolygontools.hxx>
      61             : #include <basegfx/polygon/b2dpolypolygontools.hxx>
      62             : 
      63             : namespace sd
      64             : {
      65             : 
      66             : class PresLayoutPreview : public Control
      67             : {
      68             : private:
      69             :     SdPage* mpMaster;
      70             :     HeaderFooterSettings maSettings;
      71             :     Size maPageSize;
      72             :     Rectangle maOutRect;
      73             : 
      74             : private:
      75             :     void Paint( OutputDevice& aOut, SdrTextObj* pObj, bool bVisible, bool bDotted = false );
      76             : 
      77             : public:
      78             :     PresLayoutPreview( ::Window* pParent, const ResId& rResId, SdPage* pMaster );
      79             :     ~PresLayoutPreview();
      80             : 
      81             :     virtual void Paint( const Rectangle& rRect );
      82             : 
      83             :     void update( HeaderFooterSettings& rSettings );
      84             : };
      85             : 
      86             : }
      87             : 
      88             : ///////////////////////////////////////////////////////////////////////
      89             : // tab page for slide & header'n'notes
      90             : ///////////////////////////////////////////////////////////////////////
      91             : 
      92             : namespace sd
      93             : {
      94             : 
      95             : const int nDateTimeFormatsCount = 12;
      96             : int nDateTimeFormats[nDateTimeFormatsCount] =
      97             : {
      98             :     SVXDATEFORMAT_A,
      99             :     SVXDATEFORMAT_B,
     100             :     SVXDATEFORMAT_C,
     101             :     SVXDATEFORMAT_D,
     102             :     SVXDATEFORMAT_E,
     103             :     SVXDATEFORMAT_F,
     104             : 
     105             :     SVXDATEFORMAT_A | (SVXTIMEFORMAT_24_HM << 4),
     106             :     SVXDATEFORMAT_A | (SVXTIMEFORMAT_12_HM << 4),
     107             : 
     108             :     (SVXTIMEFORMAT_24_HM << 4),
     109             :     (SVXTIMEFORMAT_24_HMS <<4),
     110             : 
     111             :     (SVXTIMEFORMAT_12_HM << 4 ),
     112             :     (SVXTIMEFORMAT_12_HMS << 4 )
     113             : };
     114             : 
     115             : class HeaderFooterTabPage : public TabPage
     116             : {
     117             : private:
     118             :     FixedLine   maFLIncludeOnPage;
     119             : 
     120             :     CheckBox    maCBHeader;
     121             :     FixedText   maFTHeader;
     122             :     Edit        maTBHeader;
     123             : 
     124             :     FixedLine   maFLDateTime;
     125             :     CheckBox    maCBDateTime;
     126             :     RadioButton maRBDateTimeFixed;
     127             :     RadioButton maRBDateTimeAutomatic;
     128             :     Edit        maTBDateTimeFixed;
     129             :     ListBox     maCBDateTimeFormat;
     130             :     FixedText   maFTDateTimeLanguage;
     131             :     SvxLanguageBox  maCBDateTimeLanguage;
     132             : 
     133             :     FixedLine   maFLFooter;
     134             :     CheckBox    maCBFooter;
     135             :     FixedText   maFTFooter;
     136             :     Edit        maTBFooter;
     137             : 
     138             :     FixedLine   maFLSlideNumber;
     139             :     CheckBox    maCBSlideNumber;
     140             : 
     141             :     FixedLine   maFLNotOnTitle;
     142             :     CheckBox    maCBNotOnTitle;
     143             : 
     144             :     PushButton      maPBApplyToAll;
     145             :     PushButton      maPBApply;
     146             :     CancelButton    maPBCancel;
     147             :     HelpButton      maPBHelp;
     148             : 
     149             :     PresLayoutPreview   maCTPreview;
     150             : 
     151             :     SdPage*             mpCurrentPage;
     152             :     SdDrawDocument *    mpDoc;
     153             :     HeaderFooterDialog* mpDialog;
     154             :     LanguageType        meOldLanguage;
     155             : 
     156             :     bool            mbHandoutMode;
     157             : 
     158             :     DECL_LINK( UpdateOnClickHdl, void * );
     159             : 
     160             :     DECL_LINK( ClickApplyToAllHdl, void * );
     161             :     DECL_LINK( ClickApplyHdl, void * );
     162             :     DECL_LINK( ClickCancelHdl, void * );
     163             : 
     164             :     DECL_LINK( LanguageChangeHdl, void * );
     165             : 
     166             :     void FillFormatList(int eFormat);
     167             :     void GetOrSetDateTimeLanguage( LanguageType &rLanguage, bool bSet );
     168             :     void GetOrSetDateTimeLanguage( LanguageType &rLanguage, bool bSet, SdPage* pPage );
     169             : 
     170             : public:
     171             :     HeaderFooterTabPage( HeaderFooterDialog* pDialog, ::Window* pParent, SdDrawDocument* pDoc, SdPage* pActualPage, bool bHandoutMode );
     172             :     ~HeaderFooterTabPage();
     173             : 
     174             :     static  SfxTabPage* Create( ::Window*, const SfxItemSet& );
     175             :     static  sal_uInt16*    GetRanges();
     176             : 
     177             :     void    init( const HeaderFooterSettings& rSettings, bool bNotOnTitle, bool bHasApply );
     178             :     void    getData( HeaderFooterSettings& rSettings, bool& rNotOnTitle );
     179             :     void    update();
     180             : };
     181             : 
     182             : }
     183             : 
     184             : ///////////////////////////////////////////////////////////////////////
     185             : 
     186             : using namespace ::sd;
     187             : 
     188             : 
     189           0 : HeaderFooterDialog::HeaderFooterDialog( ViewShell* pViewShell, ::Window* pParent, SdDrawDocument* pDoc, SdPage* pCurrentPage ) :
     190             :         TabDialog ( pParent, SdResId( RID_SD_DLG_HEADERFOOTER ) ),
     191             :         maTabCtrl( this, SdResId( 1 ) ),
     192             :         mpDoc( pDoc ),
     193             :         mpCurrentPage( pCurrentPage ),
     194           0 :         mpViewShell( pViewShell )
     195             : {
     196           0 :     FreeResource();
     197             : 
     198             :     SdPage* pSlide;
     199             :     SdPage* pNotes;
     200           0 :     if( pCurrentPage->GetPageKind() == PK_STANDARD )
     201             :     {
     202           0 :         pSlide = pCurrentPage;
     203           0 :         pNotes = (SdPage*)pDoc->GetPage( pCurrentPage->GetPageNum() + 1 );
     204             :     }
     205           0 :     else if( pCurrentPage->GetPageKind() == PK_NOTES )
     206             :     {
     207           0 :         pNotes = pCurrentPage;
     208           0 :         pSlide = (SdPage*)pDoc->GetPage( pCurrentPage->GetPageNum() -1 );
     209           0 :         mpCurrentPage = pSlide;
     210             :     }
     211             :     else
     212             :     {
     213             :         // handout
     214           0 :         pSlide = pDoc->GetSdPage( 0, PK_STANDARD );
     215           0 :         pNotes = pDoc->GetSdPage( 0, PK_NOTES );
     216           0 :         mpCurrentPage = NULL;
     217             :     }
     218             : 
     219             : //  maTabCtrl.SetHelpId( HID_XML_FILTER_TABPAGE_CTRL );
     220           0 :     maTabCtrl.Show();
     221             : 
     222           0 :     mpSlideTabPage = new HeaderFooterTabPage( this, &maTabCtrl, pDoc, pSlide, false );
     223           0 :     mpSlideTabPage->SetHelpId( HID_SD_TABPAGE_HEADERFOOTER_SLIDE );
     224           0 :     maTabCtrl.SetTabPage( RID_SD_TABPAGE_HEADERFOOTER_SLIDE, mpSlideTabPage );
     225             : 
     226           0 :     Size aSiz = mpSlideTabPage->GetSizePixel();
     227           0 :     Size aCtrlSiz = maTabCtrl.GetOutputSizePixel();
     228             :     // set size on TabControl only if smaller than TabPage
     229           0 :     if ( aCtrlSiz.Width() < aSiz.Width() || aCtrlSiz.Height() < aSiz.Height() )
     230             :     {
     231           0 :         maTabCtrl.SetOutputSizePixel( aSiz );
     232           0 :         aCtrlSiz = aSiz;
     233             :     }
     234             : 
     235           0 :     mpNotesHandoutsTabPage = new HeaderFooterTabPage( this, &maTabCtrl, pDoc, pNotes, true );
     236           0 :     mpNotesHandoutsTabPage->SetHelpId( HID_SD_TABPAGE_HEADERFOOTER_NOTESHANDOUT );
     237           0 :     maTabCtrl.SetTabPage( RID_SD_TABPAGE_HEADERFOOTER_NOTESHANDOUT, mpNotesHandoutsTabPage );
     238             : 
     239           0 :     aSiz = mpNotesHandoutsTabPage->GetSizePixel();
     240           0 :     if ( aCtrlSiz.Width() < aSiz.Width() || aCtrlSiz.Height() < aSiz.Height() )
     241             :     {
     242           0 :         maTabCtrl.SetOutputSizePixel( aSiz );
     243           0 :         aCtrlSiz = aSiz;
     244             :     }
     245             : 
     246           0 :     ActivatePageHdl( &maTabCtrl );
     247             : 
     248           0 :     AdjustLayout();
     249             : 
     250           0 :     maTabCtrl.SetActivatePageHdl( LINK( this, HeaderFooterDialog, ActivatePageHdl ) );
     251           0 :     maTabCtrl.SetDeactivatePageHdl( LINK( this, HeaderFooterDialog, DeactivatePageHdl ) );
     252             : 
     253           0 :     maSlideSettings = pSlide->getHeaderFooterSettings();
     254             : 
     255           0 :     const HeaderFooterSettings& rTitleSettings = mpDoc->GetSdPage(0, PK_STANDARD)->getHeaderFooterSettings();
     256           0 :     bool bNotOnTitle = !rTitleSettings.mbFooterVisible && !rTitleSettings.mbSlideNumberVisible && !rTitleSettings.mbDateTimeVisible;
     257             : 
     258           0 :     mpSlideTabPage->init( maSlideSettings, bNotOnTitle, mpCurrentPage != NULL );
     259             : 
     260           0 :     maNotesHandoutSettings = pNotes->getHeaderFooterSettings();
     261           0 :     mpNotesHandoutsTabPage->init( maNotesHandoutSettings, false, false );
     262           0 : }
     263             : 
     264             : // -----------------------------------------------------------------------
     265             : 
     266           0 : HeaderFooterDialog::~HeaderFooterDialog()
     267             : {
     268           0 :     delete mpSlideTabPage;
     269           0 :     delete mpNotesHandoutsTabPage;
     270           0 : }
     271             : 
     272             : // -----------------------------------------------------------------------
     273             : 
     274           0 : IMPL_LINK( HeaderFooterDialog, ActivatePageHdl, TabControl *, pTabCtrl )
     275             : {
     276           0 :     const sal_uInt16 nId = pTabCtrl->GetCurPageId();
     277           0 :     TabPage* pTabPage = pTabCtrl->GetTabPage( nId );
     278           0 :     pTabPage->Show();
     279             : 
     280           0 :     return 0;
     281             : }
     282             : 
     283             : // -----------------------------------------------------------------------
     284             : 
     285           0 : IMPL_LINK_NOARG(HeaderFooterDialog, DeactivatePageHdl)
     286             : {
     287           0 :     return sal_True;
     288             : }
     289             : 
     290             : // -----------------------------------------------------------------------
     291             : 
     292           0 : short HeaderFooterDialog::Execute()
     293             : {
     294           0 :     sal_uInt16 nRet = TabDialog::Execute();
     295           0 :     if( nRet )
     296           0 :         mpViewShell->GetDocSh()->SetModified();
     297           0 :     return nRet;
     298             : }
     299             : 
     300             : // -----------------------------------------------------------------------
     301             : 
     302           0 : void HeaderFooterDialog::ApplyToAll( TabPage* pPage )
     303             : {
     304           0 :     apply( true, pPage == mpSlideTabPage );
     305           0 :     EndDialog(1);
     306           0 : }
     307             : 
     308             : // -----------------------------------------------------------------------
     309             : 
     310           0 : void HeaderFooterDialog::Apply( TabPage* pPage )
     311             : {
     312           0 :     apply( false, pPage == mpSlideTabPage );
     313           0 :     EndDialog(1);
     314           0 : }
     315             : 
     316             : // -----------------------------------------------------------------------
     317             : 
     318           0 : void HeaderFooterDialog::Cancel( TabPage* )
     319             : {
     320           0 :     EndDialog();
     321           0 : }
     322             : 
     323             : // -----------------------------------------------------------------------
     324             : 
     325           0 : void HeaderFooterDialog::apply( bool bToAll, bool bForceSlides )
     326             : {
     327           0 :     SdUndoGroup* pUndoGroup = new SdUndoGroup(mpDoc);
     328           0 :     String aComment( GetText() );
     329           0 :     pUndoGroup->SetComment( aComment );
     330             : 
     331           0 :     HeaderFooterSettings aNewSettings;
     332             :     bool bNewNotOnTitle;
     333             : 
     334             :     // change slide settings first ...
     335             : 
     336           0 :     mpSlideTabPage->getData( aNewSettings, bNewNotOnTitle );
     337             : 
     338             :     // only if we pressed apply or apply all on the slide tab page or if the slide settings
     339             :     // have been changed
     340           0 :     if( bForceSlides || !(aNewSettings == maSlideSettings) )
     341             :     {
     342             :         // apply to all slides
     343           0 :         if( bToAll )
     344             :         {
     345           0 :             int nPageCount = mpDoc->GetSdPageCount( PK_STANDARD );
     346             :             int nPage;
     347           0 :             for( nPage = 0; nPage < nPageCount; nPage++ )
     348             :             {
     349           0 :                 SdPage* pPage = mpDoc->GetSdPage( (sal_uInt16)nPage, PK_STANDARD );
     350           0 :                 change( pUndoGroup, pPage, aNewSettings );
     351             :             }
     352             :         }
     353             :         else
     354             :         {
     355             :             // apply only to the current slide
     356             :             DBG_ASSERT( mpCurrentPage && mpCurrentPage->GetPageKind() == PK_STANDARD, "no current page to apply to!" );
     357           0 :             if( mpCurrentPage && (mpCurrentPage->GetPageKind() == PK_STANDARD) )
     358             :             {
     359           0 :                 change( pUndoGroup, mpCurrentPage, aNewSettings );
     360             :             }
     361             :         }
     362             :     }
     363             : 
     364             :     // if we don't want to have header&footer on the first slide
     365           0 :     if( bNewNotOnTitle )
     366             :     {
     367             :         // just hide them, plain simple UI feature
     368           0 :         HeaderFooterSettings aTempSettings = mpDoc->GetSdPage( 0, PK_STANDARD )->getHeaderFooterSettings();
     369             : 
     370           0 :         aTempSettings.mbFooterVisible = false;
     371           0 :         aTempSettings.mbSlideNumberVisible = false;
     372           0 :         aTempSettings.mbDateTimeVisible = false;
     373             : 
     374           0 :         change( pUndoGroup, mpDoc->GetSdPage( 0, PK_STANDARD ), aTempSettings );
     375             :     }
     376             : 
     377             :     // now notes settings
     378             : 
     379           0 :     mpNotesHandoutsTabPage->getData( aNewSettings, bNewNotOnTitle );
     380             : 
     381             :     // only if we pressed apply or apply all on the notes tab page or if the notes settings
     382             :     // have been changed
     383           0 :     if( !bForceSlides || !(aNewSettings == maNotesHandoutSettings) )
     384             :     {
     385             :         // first set to all notes pages
     386           0 :         int nPageCount = mpDoc->GetSdPageCount( PK_NOTES );
     387             :         int nPage;
     388           0 :         for( nPage = 0; nPage < nPageCount; nPage++ )
     389             :         {
     390           0 :             SdPage* pPage = mpDoc->GetSdPage( (sal_uInt16)nPage, PK_NOTES );
     391             : 
     392           0 :             change( pUndoGroup, pPage, aNewSettings );
     393             :         }
     394             : 
     395             :         // and last but not least to the handout page
     396           0 :         change( pUndoGroup, mpDoc->GetMasterSdPage( 0, PK_HANDOUT ), aNewSettings );
     397             :     }
     398             : 
     399             :     // give the undo group to the undo manager
     400           0 :     mpViewShell->GetViewFrame()->GetObjectShell()->GetUndoManager()->AddUndoAction(pUndoGroup);
     401           0 : }
     402             : 
     403             : // -----------------------------------------------------------------------
     404             : 
     405           0 : void HeaderFooterDialog::change( SdUndoGroup* pUndoGroup, SdPage* pPage, const HeaderFooterSettings& rNewSettings )
     406             : {
     407           0 :     pUndoGroup->AddAction(new SdHeaderFooterUndoAction(mpDoc, pPage, rNewSettings ));
     408           0 :     pPage->setHeaderFooterSettings( rNewSettings );
     409           0 : }
     410             : 
     411             : ///////////////////////////////////////////////////////////////////////
     412             : 
     413           0 : inline void moveY( ::Window& rWin, int deltaY )
     414             : {
     415           0 :     Point aPos = rWin.GetPosPixel();
     416           0 :     aPos.Y() += deltaY;
     417           0 :     rWin.SetPosPixel( aPos );
     418           0 : }
     419             : 
     420           0 : HeaderFooterTabPage::HeaderFooterTabPage( HeaderFooterDialog* pDialog, ::Window* pWindow, SdDrawDocument* pDoc, SdPage* pActualPage, bool bHandoutMode ) :
     421             :         TabPage( pWindow, SdResId( RID_SD_TABPAGE_HEADERFOOTER ) ),
     422             :         maFLIncludeOnPage( this, SdResId( FL_INCLUDE_ON_PAGE ) ),
     423             :         maCBHeader( this, SdResId( CB_HEADER ) ),
     424             :         maFTHeader( this, SdResId( FT_HEADER ) ),
     425             :         maTBHeader( this, SdResId( TB_HEADER_FIXED ) ),
     426             :         maFLDateTime( this, SdResId( FL_DATETIME ) ),
     427             :         maCBDateTime( this, SdResId( CB_DATETIME ) ),
     428             :         maRBDateTimeFixed( this, SdResId( RB_DATETIME_FIXED ) ),
     429             :         maRBDateTimeAutomatic( this, SdResId( RB_DATETIME_AUTOMATIC ) ),
     430             :         maTBDateTimeFixed( this, SdResId( TB_DATETIME_FIXED ) ),
     431             :         maCBDateTimeFormat( this, SdResId( CB_DATETIME_FORMAT ) ),
     432             :         maFTDateTimeLanguage( this, SdResId( FT_DATETIME_LANGUAGE ) ),
     433             :         maCBDateTimeLanguage( this, SdResId( CB_DATETIME_LANGUAGE ) ),
     434             : 
     435             :         maFLFooter( this, SdResId( FL_FOOTER ) ),
     436             :         maCBFooter( this, SdResId( CB_FOOTER ) ),
     437             :         maFTFooter( this, SdResId( FT_FOOTER ) ),
     438             :         maTBFooter( this, SdResId( TB_FOOTER_FIXED ) ),
     439             : 
     440             :         maFLSlideNumber( this, SdResId( FL_SLIDENUMBER ) ),
     441             :         maCBSlideNumber( this, SdResId( CB_SLIDENUMBER ) ),
     442             : 
     443             :         maFLNotOnTitle( this, SdResId( FL_NOTONTITLE ) ),
     444             :         maCBNotOnTitle( this, SdResId( CB_NOTONTITLE ) ),
     445             : 
     446             :         maPBApplyToAll( this, SdResId( BT_APPLYTOALL ) ),
     447             :         maPBApply( this, SdResId( BT_APPLY ) ),
     448             :         maPBCancel( this, SdResId( BT_CANCEL ) ),
     449             :         maPBHelp( this, SdResId( BT_HELP ) ),
     450             : 
     451             :         maCTPreview( this, SdResId( CT_PREVIEW ),
     452             :             pActualPage ?
     453           0 :                 (pActualPage->IsMasterPage() ? pActualPage : (SdPage*)(&(pActualPage->TRG_GetMasterPage()))) :
     454           0 :                 (pDoc->GetMasterSdPage( 0, bHandoutMode ? PK_NOTES : PK_STANDARD )) ),
     455             :         mpCurrentPage(pActualPage),
     456             :         mpDoc(pDoc),
     457             :         mpDialog(pDialog),
     458           0 :         mbHandoutMode( bHandoutMode )
     459             : 
     460             : {
     461           0 :     pDoc->StopWorkStartupDelay();
     462             : 
     463           0 :     if( !mbHandoutMode )
     464             :     {
     465           0 :         int deltaY = maCBHeader.GetPosPixel().Y() - maCBDateTime.GetPosPixel().Y();
     466             : 
     467           0 :         moveY( maCBDateTime, deltaY );
     468           0 :         moveY( maRBDateTimeFixed, deltaY );
     469           0 :         moveY( maRBDateTimeAutomatic, deltaY );
     470           0 :         moveY( maTBDateTimeFixed, deltaY );
     471           0 :         moveY( maCBDateTimeFormat, deltaY );
     472           0 :         moveY( maFTDateTimeLanguage, deltaY );
     473           0 :         moveY( maCBDateTimeLanguage, deltaY );
     474           0 :         moveY( maFLFooter, deltaY );
     475           0 :         moveY( maCBFooter, deltaY );
     476           0 :         moveY( maFTFooter, deltaY );
     477           0 :         moveY( maTBFooter, deltaY );
     478           0 :         moveY( maFLSlideNumber, deltaY );
     479           0 :         moveY( maCBSlideNumber, deltaY );
     480           0 :         moveY( maFLNotOnTitle, deltaY );
     481           0 :         moveY( maCBNotOnTitle, deltaY );
     482             :     }
     483             :     else
     484             :     {
     485           0 :         int deltaY = maPBApply.GetPosPixel().Y() - maPBCancel.GetPosPixel().Y();
     486             : 
     487           0 :         moveY( maPBCancel, deltaY );
     488           0 :         moveY( maPBHelp, deltaY );
     489             : 
     490           0 :         String aPageNumberStr( SdResId( STR_PAGE_NUMBER ) );
     491           0 :         maCBSlideNumber.SetText( aPageNumberStr );
     492             : 
     493           0 :         String aIncludeOnPageStr( SdResId( STR_INCLUDE_ON_PAGE ) );
     494           0 :         maFLIncludeOnPage.SetText( aIncludeOnPageStr );
     495             :     }
     496             : 
     497           0 :     FreeResource();
     498             : 
     499           0 :     maPBApply.Show( !mbHandoutMode );
     500           0 :     maCBHeader.Show( mbHandoutMode );
     501           0 :     maFTHeader.Show( mbHandoutMode );
     502           0 :     maTBHeader.Show( mbHandoutMode );
     503           0 :     maFLDateTime.Show( mbHandoutMode );
     504           0 :     maFLNotOnTitle.Show( !mbHandoutMode );
     505           0 :     maCBNotOnTitle.Show( !mbHandoutMode );
     506             : 
     507           0 :     maCBDateTime.SetClickHdl( LINK( this, HeaderFooterTabPage, UpdateOnClickHdl ) );
     508           0 :     maRBDateTimeFixed.SetClickHdl( LINK( this, HeaderFooterTabPage, UpdateOnClickHdl ) );
     509           0 :     maRBDateTimeAutomatic.SetClickHdl( LINK( this, HeaderFooterTabPage, UpdateOnClickHdl ) );
     510           0 :     maCBFooter.SetClickHdl( LINK( this, HeaderFooterTabPage, UpdateOnClickHdl ) );
     511           0 :     maCBHeader.SetClickHdl( LINK( this, HeaderFooterTabPage, UpdateOnClickHdl ) );
     512           0 :     maCBSlideNumber.SetClickHdl( LINK( this, HeaderFooterTabPage, UpdateOnClickHdl ) );
     513             : 
     514           0 :     maPBApplyToAll.SetClickHdl( LINK( this, HeaderFooterTabPage, ClickApplyToAllHdl ) );
     515           0 :     maPBApply.SetClickHdl( LINK( this, HeaderFooterTabPage, ClickApplyHdl ) );
     516           0 :     maPBCancel.SetClickHdl( LINK( this, HeaderFooterTabPage, ClickCancelHdl ) );
     517             : 
     518           0 :     maCBDateTimeLanguage.SetLanguageList( LANG_LIST_ALL|LANG_LIST_ONLY_KNOWN, false );
     519           0 :     maCBDateTimeLanguage.SetSelectHdl( LINK( this, HeaderFooterTabPage, LanguageChangeHdl ) );
     520             : 
     521           0 :     GetOrSetDateTimeLanguage( meOldLanguage, false );
     522           0 :     meOldLanguage = MsLangId::getRealLanguage( meOldLanguage );
     523           0 :     maCBDateTimeLanguage.SelectLanguage( meOldLanguage );
     524             : 
     525           0 :     FillFormatList(SVXDATEFORMAT_A);
     526             : 
     527           0 :     maTBHeader.SetAccessibleRelationMemberOf(&maCBHeader);
     528           0 :     maRBDateTimeFixed.SetAccessibleRelationMemberOf(&maCBDateTime);
     529           0 :     maRBDateTimeAutomatic.SetAccessibleRelationMemberOf(&maCBDateTime);
     530           0 :     maTBDateTimeFixed.SetAccessibleName(maRBDateTimeFixed.GetText());
     531           0 :     maTBDateTimeFixed.SetAccessibleRelationMemberOf(&maCBDateTime);
     532           0 :     maTBDateTimeFixed.SetAccessibleRelationLabeledBy(&maRBDateTimeFixed);
     533           0 :     maCBDateTimeFormat.SetAccessibleRelationMemberOf(&maCBDateTime);
     534           0 :     maCBDateTimeFormat.SetAccessibleName(maRBDateTimeAutomatic.GetText());
     535           0 :     maCBDateTimeFormat.SetAccessibleRelationLabeledBy(&maRBDateTimeAutomatic);
     536           0 :     maCBDateTimeLanguage.SetAccessibleRelationMemberOf(&maCBDateTime);
     537           0 :     maTBFooter.SetAccessibleRelationMemberOf(&maCBFooter);
     538           0 :     maCBSlideNumber.SetAccessibleRelationMemberOf(&maFLIncludeOnPage);
     539           0 :     maCBFooter.SetAccessibleRelationMemberOf(&maFLIncludeOnPage);
     540           0 : }
     541             : // -----------------------------------------------------------------------
     542             : 
     543           0 : HeaderFooterTabPage::~HeaderFooterTabPage()
     544             : {
     545           0 : }
     546             : 
     547             : // -----------------------------------------------------------------------
     548             : 
     549           0 : IMPL_LINK_NOARG(HeaderFooterTabPage, LanguageChangeHdl)
     550             : {
     551           0 :     FillFormatList( (int)(sal_IntPtr)maCBDateTimeFormat.GetEntryData( maCBDateTimeFormat.GetSelectEntryPos() ) );
     552             : 
     553             : 
     554           0 :     return 0L;
     555             : }
     556             : 
     557             : // -----------------------------------------------------------------------
     558             : 
     559           0 : void HeaderFooterTabPage::FillFormatList( int eFormat )
     560             : {
     561           0 :     LanguageType eLanguage = maCBDateTimeLanguage.GetSelectLanguage();
     562             : 
     563           0 :     maCBDateTimeFormat.Clear();
     564             : 
     565           0 :     Date aDate( Date::SYSTEM );
     566           0 :     Time aTime( Time::SYSTEM );
     567             : 
     568             :     int nFormat;
     569           0 :     for( nFormat = 0; nFormat < nDateTimeFormatsCount; nFormat++ )
     570             :     {
     571           0 :         String aStr( SvxDateTimeField::GetFormatted( aDate, aTime, nDateTimeFormats[nFormat], *(SD_MOD()->GetNumberFormatter()), eLanguage ) );
     572           0 :         sal_uInt16 nEntry = maCBDateTimeFormat.InsertEntry( aStr );
     573           0 :         maCBDateTimeFormat.SetEntryData( nEntry, (void*)(sal_IntPtr)nDateTimeFormats[nFormat] );
     574           0 :         if( nDateTimeFormats[nFormat] == eFormat )
     575             :         {
     576           0 :             maCBDateTimeFormat.SelectEntryPos( nEntry );
     577           0 :             maCBDateTimeFormat.SetText( aStr );
     578             :         }
     579           0 :     }
     580           0 : }
     581             : 
     582             : // -----------------------------------------------------------------------
     583             : 
     584           0 : void HeaderFooterTabPage::init( const HeaderFooterSettings& rSettings, bool bNotOnTitle, bool bHasApply )
     585             : {
     586           0 :     maCBDateTime.Check( rSettings.mbDateTimeVisible );
     587           0 :     maRBDateTimeFixed.Check( rSettings.mbDateTimeIsFixed );
     588           0 :     maRBDateTimeAutomatic.Check( !rSettings.mbDateTimeIsFixed );
     589           0 :     maTBDateTimeFixed.SetText( rSettings.maDateTimeText );
     590             : 
     591           0 :     maCBHeader.Check( rSettings.mbHeaderVisible );
     592           0 :     maTBHeader.SetText( rSettings.maHeaderText );
     593             : 
     594           0 :     maCBFooter.Check( rSettings.mbFooterVisible );
     595           0 :     maTBFooter.SetText( rSettings.maFooterText );
     596             : 
     597           0 :     maCBSlideNumber.Check( rSettings.mbSlideNumberVisible );
     598             : 
     599           0 :     maCBNotOnTitle.Check( bNotOnTitle );
     600           0 :     maPBApply.Enable( bHasApply );
     601             : 
     602           0 :     maCBDateTimeLanguage.SelectLanguage( meOldLanguage );
     603             : 
     604             :     sal_uInt16 nPos;
     605           0 :     for( nPos = 0; nPos < maCBDateTimeFormat.GetEntryCount(); nPos++ )
     606             :     {
     607           0 :         int nFormat = (int)(sal_IntPtr)maCBDateTimeFormat.GetEntryData( nPos );
     608           0 :         if( nFormat == rSettings.meDateTimeFormat )
     609             :         {
     610           0 :             maCBDateTimeFormat.SelectEntryPos( nPos );
     611           0 :             maCBDateTimeFormat.SetText( maCBDateTimeFormat.GetEntry(nPos) );
     612           0 :             break;
     613             :         }
     614             :     }
     615             : 
     616           0 :     update();
     617           0 : }
     618             : 
     619             : // -----------------------------------------------------------------------
     620             : 
     621           0 : void HeaderFooterTabPage::getData( HeaderFooterSettings& rSettings, bool& rNotOnTitle )
     622             : {
     623           0 :     rSettings.mbDateTimeVisible = maCBDateTime.IsChecked();
     624           0 :     rSettings.mbDateTimeIsFixed = maRBDateTimeFixed.IsChecked();
     625           0 :     rSettings.maDateTimeText = maTBDateTimeFixed.GetText();
     626           0 :     rSettings.mbFooterVisible = maCBFooter.IsChecked();
     627           0 :     rSettings.maFooterText = maTBFooter.GetText();
     628           0 :     rSettings.mbSlideNumberVisible = maCBSlideNumber.IsChecked();
     629           0 :     rSettings.mbHeaderVisible = maCBHeader.IsChecked();
     630           0 :     rSettings.maHeaderText = maTBHeader.GetText();
     631             : 
     632           0 :     if( maCBDateTimeFormat.GetSelectEntryCount() == 1 )
     633           0 :         rSettings.meDateTimeFormat = (int)(sal_IntPtr)maCBDateTimeFormat.GetEntryData( maCBDateTimeFormat.GetSelectEntryPos() );
     634             : 
     635           0 :     LanguageType eLanguage = maCBDateTimeLanguage.GetSelectLanguage();
     636           0 :     if( eLanguage != meOldLanguage )
     637           0 :         GetOrSetDateTimeLanguage( eLanguage, true );
     638             : 
     639           0 :     rNotOnTitle = maCBNotOnTitle.IsChecked();
     640           0 : }
     641             : 
     642             : // -----------------------------------------------------------------------
     643             : 
     644           0 : void HeaderFooterTabPage::update()
     645             : {
     646           0 :     maRBDateTimeFixed.Enable( maCBDateTime.IsChecked() );
     647           0 :     maTBDateTimeFixed.Enable( maRBDateTimeFixed.IsChecked() && maCBDateTime.IsChecked() );
     648           0 :     maRBDateTimeAutomatic.Enable( maCBDateTime.IsChecked() );
     649           0 :     maCBDateTimeFormat.Enable( maCBDateTime.IsChecked() && maRBDateTimeAutomatic.IsChecked() );
     650           0 :     maFTDateTimeLanguage.Enable( maCBDateTime.IsChecked() && maRBDateTimeAutomatic.IsChecked() );
     651           0 :     maCBDateTimeLanguage.Enable( maCBDateTime.IsChecked() && maRBDateTimeAutomatic.IsChecked() );
     652             : 
     653           0 :     maFTFooter.Enable( maCBFooter.IsChecked() );
     654           0 :     maTBFooter.Enable( maCBFooter.IsChecked() );
     655             : 
     656           0 :     maFTHeader.Enable( maCBHeader.IsChecked() );
     657           0 :     maTBHeader.Enable( maCBHeader.IsChecked() );
     658             : 
     659           0 :     HeaderFooterSettings aSettings;
     660             :     bool bNotOnTitle;
     661           0 :     getData( aSettings, bNotOnTitle );
     662           0 :     maCTPreview.update( aSettings );
     663           0 : }
     664             : 
     665             : // -----------------------------------------------------------------------
     666             : 
     667           0 : IMPL_LINK_NOARG(HeaderFooterTabPage, UpdateOnClickHdl)
     668             : {
     669           0 :     update();
     670             : 
     671           0 :     return 0;
     672             : }
     673             : 
     674             : // -----------------------------------------------------------------------
     675             : 
     676           0 : IMPL_LINK_NOARG(HeaderFooterTabPage, ClickApplyToAllHdl)
     677             : {
     678           0 :     mpDialog->ApplyToAll( this );
     679           0 :     return 0;
     680             : }
     681             : 
     682             : // -----------------------------------------------------------------------
     683             : 
     684           0 : IMPL_LINK_NOARG(HeaderFooterTabPage, ClickApplyHdl)
     685             : {
     686           0 :     mpDialog->Apply( this );
     687           0 :     return 0;
     688             : }
     689             : 
     690             : // -----------------------------------------------------------------------
     691             : 
     692           0 : IMPL_LINK_NOARG(HeaderFooterTabPage, ClickCancelHdl)
     693             : {
     694           0 :     mpDialog->Cancel( this );
     695           0 :     return 0;
     696             : }
     697             : 
     698             : // -----------------------------------------------------------------------
     699             : 
     700           0 : void HeaderFooterTabPage::GetOrSetDateTimeLanguage( LanguageType &rLanguage, bool bSet )
     701             : {
     702           0 :     if( mbHandoutMode )
     703             :     {
     704             :         // if set, set it on all notes master pages
     705           0 :         if( bSet )
     706             :         {
     707           0 :             sal_uInt16 nPageCount = mpDoc->GetMasterSdPageCount( PK_NOTES );
     708             :             sal_uInt16 nPage;
     709           0 :             for( nPage = 0; nPage < nPageCount; nPage++ )
     710             :             {
     711           0 :                 GetOrSetDateTimeLanguage( rLanguage, bSet, mpDoc->GetMasterSdPage( nPage, PK_NOTES ) );
     712             :             }
     713             :         }
     714             : 
     715             :         // and set it, or just get it from the handout master page
     716           0 :         GetOrSetDateTimeLanguage( rLanguage, bSet, mpDoc->GetMasterSdPage( 0, PK_HANDOUT ) );
     717             :     }
     718             :     else
     719             :     {
     720             :         // get the language from the first master page
     721             :         // or set it to all master pages
     722           0 :         sal_uInt16 nPageCount = bSet ? mpDoc->GetMasterSdPageCount( PK_NOTES ) : 1;
     723             :         sal_uInt16 nPage;
     724           0 :         for( nPage = 0; nPage < nPageCount; nPage++ )
     725             :         {
     726           0 :             GetOrSetDateTimeLanguage( rLanguage, bSet, mpDoc->GetMasterSdPage( nPage, PK_STANDARD ) );
     727             :         }
     728             :     }
     729           0 : }
     730             : 
     731             : // -----------------------------------------------------------------------
     732             : 
     733           0 : void HeaderFooterTabPage::GetOrSetDateTimeLanguage( LanguageType &rLanguage, bool bSet, SdPage* pPage )
     734             : {
     735           0 :     if( pPage )
     736             :     {
     737           0 :         SdrTextObj* pObj = (SdrTextObj*)pPage->GetPresObj( PRESOBJ_DATETIME );
     738           0 :         if( pObj )
     739             :         {
     740           0 :             Outliner* pOutl = mpDoc->GetInternalOutliner();
     741           0 :             pOutl->Init( OUTLINERMODE_TEXTOBJECT );
     742           0 :             sal_uInt16 nOutlMode = pOutl->GetMode();
     743             : 
     744           0 :             EditEngine* pEdit = const_cast< EditEngine* >(&pOutl->GetEditEngine());
     745             : 
     746           0 :             OutlinerParaObject* pOPO = pObj->GetOutlinerParaObject();
     747           0 :             if( pOPO )
     748           0 :                 pOutl->SetText( *pOPO );
     749             : 
     750           0 :             EFieldInfo aFieldInfo;
     751           0 :             aFieldInfo.pFieldItem = NULL;
     752             : 
     753           0 :             sal_Int32 nParaCount = pEdit->GetParagraphCount();
     754             :             sal_Int32 nPara;
     755           0 :             for( nPara = 0; (nPara < nParaCount) && (aFieldInfo.pFieldItem == NULL); nPara++ )
     756             :             {
     757           0 :                 sal_uInt16 nFieldCount = pEdit->GetFieldCount( nPara );
     758             :                 sal_uInt16 nField;
     759           0 :                 for( nField = 0; (nField < nFieldCount) && (aFieldInfo.pFieldItem == NULL); nField++ )
     760             :                 {
     761           0 :                     aFieldInfo = pEdit->GetFieldInfo( nPara, nField );
     762           0 :                     if( aFieldInfo.pFieldItem )
     763             :                     {
     764           0 :                         const SvxFieldData* pFieldData = aFieldInfo.pFieldItem->GetField();
     765           0 :                         if( pFieldData && pFieldData->ISA( SvxDateTimeField ) )
     766             :                         {
     767           0 :                             break;
     768             :                         }
     769             :                     }
     770           0 :                     aFieldInfo.pFieldItem = NULL;
     771             :                 }
     772             :             }
     773             : 
     774             : 
     775           0 :             if( aFieldInfo.pFieldItem != NULL )
     776             :             {
     777           0 :                 if( bSet )
     778             :                 {
     779           0 :                     SfxItemSet aSet( pEdit->GetAttribs( aFieldInfo.aPosition.nPara, aFieldInfo.aPosition.nIndex, aFieldInfo.aPosition.nIndex+1, bSet ? GETATTRIBS_CHARATTRIBS : GETATTRIBS_ALL ) );
     780             : 
     781           0 :                     SvxLanguageItem aItem( rLanguage, EE_CHAR_LANGUAGE );
     782           0 :                     aSet.Put( aItem );
     783             : 
     784           0 :                     SvxLanguageItem aItemCJK( rLanguage, EE_CHAR_LANGUAGE_CJK );
     785           0 :                     aSet.Put( aItemCJK );
     786             : 
     787           0 :                     SvxLanguageItem aItemCTL( rLanguage, EE_CHAR_LANGUAGE_CTL );
     788           0 :                     aSet.Put( aItemCTL );
     789             : 
     790           0 :                     ESelection aSel( aFieldInfo.aPosition.nPara, aFieldInfo.aPosition.nIndex, aFieldInfo.aPosition.nPara, aFieldInfo.aPosition.nIndex+1 );
     791           0 :                     pEdit->QuickSetAttribs( aSet, aSel );
     792             : 
     793           0 :                     pObj->SetOutlinerParaObject( pOutl->CreateParaObject() );
     794           0 :                     pOutl->UpdateFields();
     795             :                 }
     796             :                 else
     797             :                 {
     798           0 :                     rLanguage =  pOutl->GetLanguage( aFieldInfo.aPosition.nPara, aFieldInfo.aPosition.nIndex );
     799             :                 }
     800             :             }
     801             : 
     802           0 :             pOutl->Clear();
     803           0 :             pOutl->Init( nOutlMode );
     804             :         }
     805             :     }
     806           0 : }
     807             : 
     808             : ///////////////////////////////////////////////////////////////////////
     809             : 
     810           0 : PresLayoutPreview::PresLayoutPreview( ::Window* pParent, const ResId& rResId, SdPage* pMaster )
     811           0 : :Control( pParent, rResId ), mpMaster( pMaster ), maPageSize( pMaster->GetSize() )
     812             : {
     813           0 : }
     814             : 
     815             : // -----------------------------------------------------------------------
     816             : 
     817           0 : PresLayoutPreview::~PresLayoutPreview()
     818             : {
     819           0 : }
     820             : 
     821             : // -----------------------------------------------------------------------
     822             : 
     823           0 : void PresLayoutPreview::update( HeaderFooterSettings& rSettings )
     824             : {
     825           0 :     maSettings = rSettings;
     826           0 :     Invalidate();
     827           0 : }
     828             : 
     829             : // -----------------------------------------------------------------------
     830             : 
     831           0 : void PresLayoutPreview::Paint( OutputDevice& aOut, SdrTextObj* pObj, bool bVisible, bool bDotted /* = false*/ )
     832             : {
     833             :     // get object transformation
     834           0 :     basegfx::B2DHomMatrix aObjectTransform;
     835           0 :     basegfx::B2DPolyPolygon aObjectPolyPolygon;
     836           0 :     pObj->TRGetBaseGeometry(aObjectTransform, aObjectPolyPolygon);
     837             : 
     838             :     // build complete transformation by adding view transformation from
     839             :     // logic page coordinates to local pixel coordinates
     840           0 :     const double fScaleX((double)maOutRect.getWidth() / (double)maPageSize.Width());
     841           0 :     const double fScaleY((double)maOutRect.getHeight() / (double)maPageSize.Height());
     842           0 :     aObjectTransform.scale(fScaleX, fScaleY);
     843           0 :     aObjectTransform.translate(maOutRect.TopLeft().X(), maOutRect.TopLeft().Y());
     844             : 
     845             :     // create geometry using unit range and object transform
     846           0 :     basegfx::B2DPolyPolygon aGeometry(basegfx::tools::createUnitPolygon());
     847           0 :     aGeometry.transform(aObjectTransform);
     848             : 
     849             :     // apply line pattern if wanted
     850           0 :     if(bDotted)
     851             :     {
     852           0 :         ::std::vector<double> aPattern;
     853             :         static double fFactor(1.0);
     854           0 :         aPattern.push_back(3.0 * fFactor);
     855           0 :         aPattern.push_back(1.0 * fFactor);
     856             : 
     857           0 :         basegfx::B2DPolyPolygon aDashed;
     858           0 :         basegfx::tools::applyLineDashing(aGeometry, aPattern, &aDashed);
     859           0 :         aGeometry = aDashed;
     860             :     }
     861             : 
     862             :     // determine line color
     863           0 :     svtools::ColorConfig aColorConfig;
     864           0 :     svtools::ColorConfigValue aColor( aColorConfig.GetColorValue( bVisible ? svtools::FONTCOLOR : svtools::OBJECTBOUNDARIES ) );
     865             : 
     866             :     // paint at OutDev
     867           0 :     aOut.SetLineColor(Color(aColor.nColor));
     868           0 :     aOut.SetFillColor();
     869             : 
     870           0 :     for(sal_uInt32 a(0); a < aGeometry.count(); a++)
     871             :     {
     872           0 :         aOut.DrawPolyLine(aGeometry.getB2DPolygon(a));
     873           0 :     }
     874           0 : }
     875             : 
     876             : // -----------------------------------------------------------------------
     877             : 
     878           0 : void PresLayoutPreview::Paint( const Rectangle& )
     879             : {
     880           0 :     Push();
     881             : 
     882           0 :     maOutRect = Rectangle( Point(0,0), GetOutputSize() );
     883             : 
     884             :     // calculate page size with correct aspect ratio
     885             :     int nWidth, nHeight;
     886           0 :     if( maPageSize.Width() > maPageSize.Height() )
     887             :     {
     888           0 :         nWidth = maOutRect.GetWidth();
     889           0 :         nHeight = long( (double)(nWidth * maPageSize.Height()) / (double)maPageSize.Width() );
     890             :     }
     891             :     else
     892             :     {
     893           0 :         nHeight = maOutRect.GetHeight();
     894           0 :         nWidth = long( (double)(nHeight * maPageSize.Width()) / (double)maPageSize.Height() );
     895             :     }
     896             : 
     897           0 :     maOutRect.Left() += (maOutRect.GetWidth() - nWidth) >> 1;
     898           0 :     maOutRect.Right() = maOutRect.Left() + nWidth - 1;
     899           0 :     maOutRect.Top() += (maOutRect.GetHeight() - nHeight) >> 1;
     900           0 :     maOutRect.Bottom() = maOutRect.Top() + nHeight - 1;
     901             : 
     902             :     // draw decoration frame
     903           0 :     DecorationView aDecoView( this );
     904           0 :     maOutRect = aDecoView.DrawFrame( maOutRect, FRAME_HIGHLIGHT_IN );
     905             : 
     906             :     // draw page background
     907           0 :     SetFillColor( Color(COL_WHITE) );
     908           0 :     DrawRect( maOutRect );
     909             : 
     910             :     // paint presentation objects from masterpage
     911           0 :     SdrTextObj* pMasterTitle = (SdrTextObj*)mpMaster->GetPresObj( PRESOBJ_TITLE );
     912           0 :     SdrTextObj* pMasterOutline = (SdrTextObj*)mpMaster->GetPresObj( mpMaster->GetPageKind()==PK_NOTES ? PRESOBJ_NOTES : PRESOBJ_OUTLINE );
     913           0 :     SdrTextObj* pHeader = (SdrTextObj*)mpMaster->GetPresObj( PRESOBJ_HEADER );
     914           0 :     SdrTextObj* pFooter = (SdrTextObj*)mpMaster->GetPresObj( PRESOBJ_FOOTER );
     915           0 :     SdrTextObj* pDate   = (SdrTextObj*)mpMaster->GetPresObj( PRESOBJ_DATETIME );
     916           0 :     SdrTextObj* pNumber = (SdrTextObj*)mpMaster->GetPresObj( PRESOBJ_SLIDENUMBER );
     917             : 
     918           0 :     if( pMasterTitle )
     919           0 :         Paint( *this, pMasterTitle, true, true );
     920           0 :     if( pMasterOutline )
     921           0 :         Paint( *this, pMasterOutline, true, true );
     922           0 :     if( pHeader )
     923           0 :         Paint( *this, pHeader, maSettings.mbHeaderVisible );
     924           0 :     if( pFooter )
     925           0 :         Paint( *this, pFooter, maSettings.mbFooterVisible );
     926           0 :     if( pDate )
     927           0 :         Paint( *this, pDate, maSettings.mbDateTimeVisible );
     928           0 :     if( pNumber )
     929           0 :         Paint( *this, pNumber, maSettings.mbSlideNumberVisible );
     930             : 
     931           0 :     Pop();
     932           0 : }
     933             : 
     934             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10