LCOV - code coverage report
Current view: top level - sw/source/ui/config - optload.cxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 0 502 0.0 %
Date: 2014-11-03 Functions: 0 39 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 <officecfg/Office/Writer.hxx>
      21             : #include <comphelper/string.hxx>
      22             : #include <swtypes.hxx>
      23             : #include <helpid.h>
      24             : #include <uiitems.hxx>
      25             : #include <modcfg.hxx>
      26             : #include "swmodule.hxx"
      27             : #include "usrpref.hxx"
      28             : #include "wrtsh.hxx"
      29             : #include "linkenum.hxx"
      30             : #include <uitool.hxx>
      31             : #include <view.hxx>
      32             : 
      33             : #include "globals.hrc"
      34             : #include "cmdid.h"
      35             : 
      36             : #include "optload.hxx"
      37             : #include <svx/dlgutil.hxx>
      38             : #include <sfx2/htmlmode.hxx>
      39             : #include <fldmgr.hxx>
      40             : #include <poolfmt.hxx>
      41             : #include <expfld.hxx>
      42             : #include <com/sun/star/document/PrinterIndependentLayout.hpp>
      43             : 
      44             : #include <svtools/insdlg.hxx>
      45             : #include <svtools/treelistentry.hxx>
      46             : #include <vcl/builder.hxx>
      47             : #include <vcl/settings.hxx>
      48             : 
      49             : #include <comphelper/classids.hxx>
      50             : #include <unotools/configmgr.hxx>
      51             : #include <docsh.hxx>
      52             : #include <app.hrc>
      53             : #include <config.hrc>
      54             : #include <SwStyleNameMapper.hxx>
      55             : #include <numrule.hxx>
      56             : #include <SwNodeNum.hxx>
      57             : 
      58             : #include <doc.hxx>
      59             : #include <svl/cjkoptions.hxx>
      60             : 
      61             : using namespace ::com::sun::star;
      62             : 
      63             : #include <svl/eitem.hxx>
      64             : 
      65           0 : SwLoadOptPage::SwLoadOptPage(vcl::Window* pParent, const SfxItemSet& rSet)
      66             :     : SfxTabPage(pParent, "OptGeneralPage",
      67             :         "modules/swriter/ui/optgeneralpage.ui", &rSet)
      68             :     , m_pWrtShell(NULL)
      69             :     , m_nLastTab(0)
      70           0 :     , m_nOldLinkMode(MANUAL)
      71             : {
      72           0 :     get(m_pAlwaysRB, "always");
      73           0 :     get(m_pRequestRB, "onrequest");
      74           0 :     get(m_pNeverRB, "never");
      75           0 :     get(m_pAutoUpdateFields, "updatefields");
      76           0 :     get(m_pAutoUpdateCharts, "updatecharts");
      77           0 :     get(m_pMetricLB, "metric");
      78           0 :     get(m_pTabFT, "tablabel");
      79           0 :     get(m_pTabMF, "tab");
      80           0 :     get(m_pUseSquaredPageMode, "squaremode");
      81           0 :     get(m_pUseCharUnit, "usecharunit");
      82           0 :     get(m_pWordCountED, "wordcount");
      83           0 :     get(m_pShowStandardizedPageCount, "standardizedpageshow");
      84           0 :     get(m_pStandardizedPageSizeNF, "standardpagesize");
      85             : 
      86           0 :     SvxStringArray aMetricArr( SW_RES( STR_ARR_METRIC ) );
      87           0 :     for ( sal_uInt32 i = 0; i < aMetricArr.Count(); ++i )
      88             :     {
      89           0 :         const OUString sMetric = aMetricArr.GetStringByPos( i );
      90           0 :         FieldUnit eFUnit = (FieldUnit)aMetricArr.GetValue( i );
      91             : 
      92           0 :         switch ( eFUnit )
      93             :         {
      94             :             case FUNIT_MM:
      95             :             case FUNIT_CM:
      96             :             case FUNIT_POINT:
      97             :             case FUNIT_PICA:
      98             :             case FUNIT_INCH:
      99             :             {
     100             :                 // use only these metrics
     101           0 :                 sal_Int32 nPos = m_pMetricLB->InsertEntry( sMetric );
     102           0 :                 m_pMetricLB->SetEntryData( nPos, (void*)(sal_IntPtr)eFUnit );
     103             :             }
     104             :             default:; //prevent warning
     105             :         }
     106           0 :     }
     107           0 :     m_pMetricLB->SetSelectHdl(LINK(this, SwLoadOptPage, MetricHdl));
     108             : 
     109             :     const SfxPoolItem* pItem;
     110           0 :     if(SfxItemState::SET == rSet.GetItemState(SID_HTML_MODE, false, &pItem )
     111           0 :         && ((SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON)
     112             :     {
     113           0 :         m_pTabFT->Hide();
     114           0 :         m_pTabMF->Hide();
     115             :     }
     116             : 
     117           0 :     SvtCJKOptions aCJKOptions;
     118           0 :     if(!aCJKOptions.IsAsianTypographyEnabled())
     119             :     {
     120           0 :         m_pUseSquaredPageMode->Hide();
     121           0 :         m_pUseCharUnit->Hide();
     122             :     }
     123             : 
     124           0 :     Link aLink = LINK(this, SwLoadOptPage, StandardizedPageCountCheckHdl);
     125           0 :     m_pShowStandardizedPageCount->SetClickHdl(aLink);
     126           0 : }
     127             : 
     128           0 : SfxTabPage* SwLoadOptPage::Create( vcl::Window* pParent,
     129             :                                 const SfxItemSet* rAttrSet )
     130             : {
     131           0 :     return new SwLoadOptPage(pParent, *rAttrSet );
     132             : }
     133             : 
     134           0 : IMPL_LINK_NOARG(SwLoadOptPage, StandardizedPageCountCheckHdl)
     135             : {
     136           0 :     m_pStandardizedPageSizeNF->Enable(m_pShowStandardizedPageCount->IsChecked());
     137           0 :     return 0;
     138             : }
     139             : 
     140           0 : bool SwLoadOptPage::FillItemSet( SfxItemSet* rSet )
     141             : {
     142           0 :     bool bRet = false;
     143           0 :     SwModule* pMod = SW_MOD();
     144             : 
     145           0 :     sal_Int32 nNewLinkMode = AUTOMATIC;
     146           0 :     if (m_pNeverRB->IsChecked())
     147           0 :         nNewLinkMode = NEVER;
     148           0 :     else if (m_pRequestRB->IsChecked())
     149           0 :         nNewLinkMode = MANUAL;
     150             : 
     151           0 :     SwFldUpdateFlags eFldFlags = m_pAutoUpdateFields->IsChecked() ?
     152           0 :         m_pAutoUpdateCharts->IsChecked() ? AUTOUPD_FIELD_AND_CHARTS : AUTOUPD_FIELD_ONLY : AUTOUPD_OFF;
     153             : 
     154           0 :     if(m_pAutoUpdateFields->IsValueChangedFromSaved() ||
     155           0 :        m_pAutoUpdateCharts->IsValueChangedFromSaved())
     156             :     {
     157           0 :         pMod->ApplyFldUpdateFlags(eFldFlags);
     158           0 :         if(m_pWrtShell)
     159             :         {
     160           0 :             m_pWrtShell->SetFldUpdateFlags(eFldFlags);
     161           0 :             m_pWrtShell->SetModified();
     162             :         }
     163             :     }
     164             : 
     165           0 :     if (nNewLinkMode != m_nOldLinkMode)
     166             :     {
     167           0 :         pMod->ApplyLinkMode(nNewLinkMode);
     168           0 :         if (m_pWrtShell)
     169             :         {
     170           0 :             m_pWrtShell->SetLinkUpdMode( nNewLinkMode );
     171           0 :             m_pWrtShell->SetModified();
     172             :         }
     173             : 
     174           0 :         bRet = true;
     175             :     }
     176             : 
     177           0 :     const sal_Int32 nMPos = m_pMetricLB->GetSelectEntryPos();
     178           0 :     if ( m_pMetricLB->IsValueChangedFromSaved() )
     179             :     {
     180             :         // Double-Cast for VA3.0
     181           0 :         const sal_uInt16 nFieldUnit = (sal_uInt16)(sal_IntPtr)m_pMetricLB->GetEntryData( nMPos );
     182           0 :         rSet->Put( SfxUInt16Item( SID_ATTR_METRIC, nFieldUnit ) );
     183           0 :         bRet = true;
     184             :     }
     185             : 
     186           0 :     if(m_pTabMF->IsVisible() && m_pTabMF->IsValueChangedFromSaved())
     187             :     {
     188             :         rSet->Put(SfxUInt16Item(SID_ATTR_DEFTABSTOP,
     189           0 :                     (sal_uInt16)m_pTabMF->Denormalize(m_pTabMF->GetValue(FUNIT_TWIP))));
     190           0 :         bRet = true;
     191             :     }
     192             : 
     193           0 :     bool bIsUseCharUnitFlag = m_pUseCharUnit->IsChecked();
     194           0 :     SvtCJKOptions aCJKOptions;
     195           0 :     bIsUseCharUnitFlag = bIsUseCharUnitFlag && aCJKOptions.IsAsianTypographyEnabled();
     196           0 :     if( (bIsUseCharUnitFlag ? 1 : 0) != m_pUseCharUnit->GetSavedValue())
     197             :     {
     198           0 :         rSet->Put(SfxBoolItem(SID_ATTR_APPLYCHARUNIT, bIsUseCharUnitFlag ));
     199           0 :         bRet = true;
     200             :     }
     201             : 
     202           0 :     if( m_pWordCountED->IsValueChangedFromSaved() )
     203             :     {
     204             :         boost::shared_ptr< comphelper::ConfigurationChanges > batch(
     205           0 :             comphelper::ConfigurationChanges::create());
     206           0 :         officecfg::Office::Writer::WordCount::AdditionalSeparators::set(m_pWordCountED->GetText(), batch);
     207           0 :         batch->commit();
     208           0 :         bRet = true;
     209             :     }
     210             : 
     211           0 :     if (m_pShowStandardizedPageCount->GetState() != m_pShowStandardizedPageCount->GetSavedValue())
     212             :     {
     213             :         boost::shared_ptr< comphelper::ConfigurationChanges > batch(
     214           0 :             comphelper::ConfigurationChanges::create());
     215             :         officecfg::Office::Writer::WordCount::ShowStandardizedPageCount::set(
     216           0 :           m_pShowStandardizedPageCount->IsChecked(),
     217           0 :           batch);
     218           0 :         batch->commit();
     219           0 :         bRet = true;
     220             :     }
     221             : 
     222           0 :     if (m_pStandardizedPageSizeNF->GetText() != m_pStandardizedPageSizeNF->GetSavedValue())
     223             :     {
     224             :         boost::shared_ptr< comphelper::ConfigurationChanges > batch(
     225           0 :             comphelper::ConfigurationChanges::create());
     226             :         officecfg::Office::Writer::WordCount::StandardizedPageSize::set(
     227           0 :           m_pStandardizedPageSizeNF->GetValue(),
     228           0 :           batch);
     229           0 :         batch->commit();
     230           0 :         bRet = true;
     231             :     }
     232             : 
     233           0 :     bool bIsSquaredPageModeFlag = m_pUseSquaredPageMode->IsChecked();
     234           0 :     if ( bIsSquaredPageModeFlag != static_cast<bool>(m_pUseSquaredPageMode->GetSavedValue()) )
     235             :     {
     236           0 :         pMod->ApplyDefaultPageMode( bIsSquaredPageModeFlag );
     237           0 :         if ( m_pWrtShell )
     238             :         {
     239           0 :             SwDoc* pDoc = m_pWrtShell->GetDoc();
     240           0 :             pDoc->SetDefaultPageMode( bIsSquaredPageModeFlag );
     241           0 :             m_pWrtShell->SetModified();
     242             :         }
     243           0 :         bRet = true;
     244             :     }
     245             : 
     246           0 :     return bRet;
     247             : }
     248             : 
     249           0 : void SwLoadOptPage::Reset( const SfxItemSet* rSet)
     250             : {
     251           0 :     const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref(false);
     252             :     const SfxPoolItem* pItem;
     253             : 
     254           0 :     if(SfxItemState::SET == rSet->GetItemState(FN_PARAM_WRTSHELL, false, &pItem))
     255           0 :         m_pWrtShell = (SwWrtShell*)((const SwPtrItem*)pItem)->GetValue();
     256             : 
     257           0 :     SwFldUpdateFlags eFldFlags = AUTOUPD_GLOBALSETTING;
     258           0 :     m_nOldLinkMode = GLOBALSETTING;
     259           0 :     if (m_pWrtShell)
     260             :     {
     261           0 :         eFldFlags = m_pWrtShell->GetFldUpdateFlags(true);
     262           0 :         m_nOldLinkMode = m_pWrtShell->GetLinkUpdMode(true);
     263             :     }
     264           0 :     if(GLOBALSETTING == m_nOldLinkMode)
     265           0 :         m_nOldLinkMode = pUsrPref->GetUpdateLinkMode();
     266           0 :     if(AUTOUPD_GLOBALSETTING == eFldFlags)
     267           0 :         eFldFlags = pUsrPref->GetFldUpdateFlags();
     268             : 
     269           0 :     m_pAutoUpdateFields->Check(eFldFlags != AUTOUPD_OFF);
     270           0 :     m_pAutoUpdateCharts->Check(eFldFlags == AUTOUPD_FIELD_AND_CHARTS);
     271             : 
     272           0 :     switch (m_nOldLinkMode)
     273             :     {
     274           0 :         case NEVER:     m_pNeverRB->Check();   break;
     275           0 :         case MANUAL:    m_pRequestRB->Check(); break;
     276           0 :         case AUTOMATIC: m_pAlwaysRB->Check();  break;
     277             :     }
     278             : 
     279           0 :     m_pAutoUpdateFields->SaveValue();
     280           0 :     m_pAutoUpdateCharts->SaveValue();
     281           0 :     m_pMetricLB->SetNoSelection();
     282           0 :     if ( rSet->GetItemState( SID_ATTR_METRIC ) >= SfxItemState::DEFAULT )
     283             :     {
     284           0 :         const SfxUInt16Item& rItem = (SfxUInt16Item&)rSet->Get( SID_ATTR_METRIC );
     285           0 :         FieldUnit eFieldUnit = (FieldUnit)rItem.GetValue();
     286             : 
     287           0 :         for ( sal_Int32 i = 0; i < m_pMetricLB->GetEntryCount(); ++i )
     288             :         {
     289           0 :             if ( (int)(sal_IntPtr)m_pMetricLB->GetEntryData( i ) == (int)eFieldUnit )
     290             :             {
     291           0 :                 m_pMetricLB->SelectEntryPos( i );
     292           0 :                 break;
     293             :             }
     294             :         }
     295           0 :         ::SetFieldUnit(*m_pTabMF, eFieldUnit);
     296             :     }
     297           0 :     m_pMetricLB->SaveValue();
     298           0 :     if(SfxItemState::SET == rSet->GetItemState(SID_ATTR_DEFTABSTOP, false, &pItem))
     299             :     {
     300           0 :         m_nLastTab = ((SfxUInt16Item*)pItem)->GetValue();
     301           0 :         m_pTabMF->SetValue(m_pTabMF->Normalize(m_nLastTab), FUNIT_TWIP);
     302             :     }
     303           0 :     m_pTabMF->SaveValue();
     304             : 
     305             :     //default page mode loading
     306           0 :     if(m_pWrtShell)
     307             :     {
     308           0 :         bool bSquaredPageMode = m_pWrtShell->GetDoc()->IsSquaredPageMode();
     309           0 :         m_pUseSquaredPageMode->Check( bSquaredPageMode );
     310           0 :         m_pUseSquaredPageMode->SaveValue();
     311             :     }
     312             : 
     313           0 :     if(SfxItemState::SET == rSet->GetItemState(SID_ATTR_APPLYCHARUNIT, false, &pItem))
     314             :     {
     315           0 :         bool bUseCharUnit = ((const SfxBoolItem*)pItem)->GetValue();
     316           0 :         m_pUseCharUnit->Check(bUseCharUnit);
     317             :     }
     318             :     else
     319             :     {
     320           0 :         m_pUseCharUnit->Check(pUsrPref->IsApplyCharUnit());
     321             :     }
     322           0 :     m_pUseCharUnit->SaveValue();
     323             : 
     324           0 :     m_pWordCountED->SetText(officecfg::Office::Writer::WordCount::AdditionalSeparators::get());
     325           0 :     m_pWordCountED->SaveValue();
     326           0 :     m_pShowStandardizedPageCount->Check(officecfg::Office::Writer::WordCount::ShowStandardizedPageCount::get());
     327           0 :     m_pShowStandardizedPageCount->SaveValue();
     328           0 :     m_pStandardizedPageSizeNF->SetValue(officecfg::Office::Writer::WordCount::StandardizedPageSize::get());
     329           0 :     m_pStandardizedPageSizeNF->SaveValue();
     330           0 :     m_pStandardizedPageSizeNF->Enable(m_pShowStandardizedPageCount->IsChecked());
     331           0 : }
     332             : 
     333           0 : IMPL_LINK_NOARG(SwLoadOptPage, MetricHdl)
     334             : {
     335           0 :     const sal_Int32 nMPos = m_pMetricLB->GetSelectEntryPos();
     336           0 :     if(nMPos != LISTBOX_ENTRY_NOTFOUND)
     337             :     {
     338             :         // Double-Cast for VA3.0
     339           0 :         FieldUnit eFieldUnit = (FieldUnit)(sal_IntPtr)m_pMetricLB->GetEntryData( nMPos );
     340           0 :         bool bModified = m_pTabMF->IsModified();
     341             :         long nVal = bModified ?
     342           0 :             sal::static_int_cast<sal_Int32, sal_Int64 >( m_pTabMF->Denormalize( m_pTabMF->GetValue( FUNIT_TWIP ) )) :
     343           0 :                 m_nLastTab;
     344           0 :         ::SetFieldUnit( *m_pTabMF, eFieldUnit );
     345           0 :         m_pTabMF->SetValue( m_pTabMF->Normalize( nVal ), FUNIT_TWIP );
     346           0 :         if(!bModified)
     347           0 :             m_pTabMF->ClearModifyFlag();
     348             :     }
     349             : 
     350           0 :     return 0;
     351             : }
     352             : 
     353           0 : SwCaptionOptDlg::SwCaptionOptDlg(vcl::Window* pParent, const SfxItemSet& rSet)
     354             :     : SfxSingleTabDialog(pParent, rSet, "CaptionDialog",
     355           0 :         "modules/swriter/ui/captiondialog.ui")
     356             : {
     357             :     // create TabPage
     358           0 :     SetTabPage(SwCaptionOptPage::Create(get_content_area(), &rSet));
     359           0 : }
     360             : 
     361           0 : SwCaptionPreview::SwCaptionPreview( vcl::Window* pParent, WinBits nStyle )
     362           0 :     : Window( pParent, nStyle )
     363             : {
     364           0 :     Init();
     365           0 : }
     366             : 
     367           0 : extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makeSwCaptionPreview(vcl::Window *pParent, VclBuilder::stringmap &rMap)
     368             : {
     369           0 :     WinBits nBits = 0;
     370           0 :     OString sBorder = VclBuilder::extractCustomProperty(rMap);
     371           0 :     if (!sBorder.isEmpty())
     372           0 :        nBits |= WB_BORDER;
     373           0 :     return new SwCaptionPreview(pParent, nBits);
     374             : }
     375             : 
     376           0 : void SwCaptionPreview::Init()
     377             : {
     378           0 :     maDrawPos = Point( 4, 6 );
     379             : 
     380           0 :     Wallpaper   aBack( GetSettings().GetStyleSettings().GetWindowColor() );
     381           0 :     SetBackground( aBack );
     382           0 :     SetFillColor( aBack.GetColor() );
     383           0 :     SetLineColor( aBack.GetColor() );
     384           0 :     SetBorderStyle( WindowBorderStyle::MONO );
     385           0 :     vcl::Font aFont(GetFont());
     386           0 :     aFont.SetHeight(aFont.GetHeight() * 120 / 100 );
     387           0 :     SetFont(aFont);
     388           0 : }
     389             : 
     390           0 : void SwCaptionPreview::SetPreviewText( const OUString& rText )
     391             : {
     392           0 :     if( rText != maText )
     393             :     {
     394           0 :         maText = rText;
     395           0 :         Invalidate();
     396             :     }
     397           0 : }
     398             : 
     399           0 : Size SwCaptionPreview::GetOptimalSize() const
     400             : {
     401           0 :     return LogicToPixel(Size(106 , 20), MapMode(MAP_APPFONT));
     402             : }
     403             : 
     404           0 : void SwCaptionPreview::Paint( const Rectangle& rRect )
     405             : {
     406           0 :     Window::Paint( rRect );
     407             : 
     408           0 :     DrawRect( Rectangle( Point( 0, 0 ), GetSizePixel() ) );
     409           0 :     DrawText( Point( 4, 6 ), maText );
     410           0 : }
     411             : 
     412           0 : SwCaptionOptPage::SwCaptionOptPage( vcl::Window* pParent, const SfxItemSet& rSet )
     413             :     : SfxTabPage(pParent, "OptCaptionPage", "modules/swriter/ui/optcaptionpage.ui", &rSet)
     414             :     , m_sSWTable(SW_RESSTR(STR_CAPTION_TABLE))
     415             :     , m_sSWFrame(SW_RESSTR(STR_CAPTION_FRAME))
     416             :     , m_sSWGraphic(SW_RESSTR(STR_CAPTION_GRAPHIC))
     417             :     , m_sOLE(SW_RESSTR(STR_CAPTION_OLE))
     418             :     , m_sBegin(SW_RESSTR(STR_CAPTION_BEGINNING))
     419             :     , m_sEnd(SW_RESSTR(STR_CAPTION_END))
     420             :     , m_sAbove(SW_RESSTR(STR_CAPTION_ABOVE))
     421             :     , m_sBelow(SW_RESSTR(STR_CAPTION_BELOW))
     422             :     , m_sNone(SW_RESSTR(SW_STR_NONE))
     423           0 :     , pMgr(new SwFldMgr())
     424           0 :     , bHTMLMode(false)
     425             : {
     426           0 :     get(m_pCheckLB, "objects");
     427           0 :     get(m_pLbCaptionOrder, "captionorder");
     428           0 :     get(m_pPreview, "preview");
     429           0 :     get(m_pSettingsGroup, "settings");
     430           0 :     get(m_pCategoryBox, "category");
     431           0 :     get(m_pFormatText, "numberingft");
     432           0 :     get(m_pFormatBox, "numbering");
     433           0 :     get(m_pNumberingSeparatorFT, "numseparatorft");
     434           0 :     get(m_pNumberingSeparatorED, "numseparator");
     435           0 :     get(m_pTextText, "separatorft");
     436           0 :     get(m_pTextEdit, "separator");
     437           0 :     get(m_pPosBox, "position");
     438           0 :     get(m_pNumCapt, "numcaption");
     439           0 :     get(m_pLbLevel, "level");
     440           0 :     get(m_pEdDelim, "chapseparator");
     441           0 :     get(m_pCategory, "categoryformat");
     442           0 :     get(m_pCharStyleLB, "charstyle");
     443           0 :     get(m_pApplyBorderCB, "applyborder");
     444             : 
     445           0 :     Wallpaper   aBack( GetSettings().GetStyleSettings().GetWindowColor() );
     446           0 :     m_pPreview->SetBackground( aBack );
     447             : 
     448           0 :     SwStyleNameMapper::FillUIName(RES_POOLCOLL_LABEL_ABB, m_sIllustration);
     449           0 :     SwStyleNameMapper::FillUIName(RES_POOLCOLL_LABEL_TABLE, m_sTable);
     450           0 :     SwStyleNameMapper::FillUIName(RES_POOLCOLL_LABEL_FRAME, m_sText);
     451           0 :     SwStyleNameMapper::FillUIName(RES_POOLCOLL_LABEL_DRAWING, m_sDrawing);
     452             : 
     453           0 :     SwWrtShell *pSh = ::GetActiveWrtShell();
     454             : 
     455             :     // m_pFormatBox
     456           0 :     sal_uInt16 nSelFmt = SVX_NUM_ARABIC;
     457           0 :     if (pSh)
     458             :     {
     459             :         SwFieldType* pFldType;
     460           0 :         for ( sal_uInt16 i = pMgr->GetFldTypeCount(); i; )
     461             :         {
     462           0 :             pFldType = pMgr->GetFldType(USHRT_MAX, --i);
     463           0 :             if (pFldType->GetName().equals(m_pCategoryBox->GetText()))
     464             :             {
     465           0 :                 nSelFmt = (sal_uInt16)((SwSetExpFieldType*)pFldType)->GetSeqFormat();
     466           0 :                 break;
     467             :             }
     468             :         }
     469             : 
     470           0 :         ::FillCharStyleListBox( *m_pCharStyleLB, pSh->GetView().GetDocShell(), true, true );
     471             :     }
     472             : 
     473           0 :     const sal_uInt16 nCount = pMgr->GetFormatCount(TYP_SEQFLD, false);
     474           0 :     for ( sal_uInt16 i = 0; i < nCount; ++i )
     475             :     {
     476           0 :         m_pFormatBox->InsertEntry( pMgr->GetFormatStr(TYP_SEQFLD, i) );
     477           0 :         const sal_uInt16 nFmtId = pMgr->GetFormatId(TYP_SEQFLD, i);
     478           0 :         m_pFormatBox->SetEntryData( i, reinterpret_cast<void*>(nFmtId) );
     479           0 :         if( nFmtId == nSelFmt )
     480           0 :             m_pFormatBox->SelectEntryPos( i );
     481             :     }
     482             : 
     483           0 :     for (int i = 0; i < MAXLEVEL; ++i)
     484           0 :         m_pLbLevel->InsertEntry(OUString::number(i + 1));
     485             : 
     486           0 :     sal_Unicode nLvl = MAXLEVEL;
     487           0 :     OUString sDelim(": ");
     488             : 
     489           0 :     if (pSh)
     490             :     {
     491             :         SwSetExpFieldType* pFldType = (SwSetExpFieldType*)pMgr->GetFldType(
     492           0 :                                             RES_SETEXPFLD, m_pCategoryBox->GetText() );
     493           0 :         if( pFldType )
     494             :         {
     495           0 :             sDelim = pFldType->GetDelimiter();
     496           0 :             nLvl = pFldType->GetOutlineLvl();
     497             :         }
     498             :     }
     499             : 
     500           0 :     m_pLbLevel->SelectEntryPos( nLvl < MAXLEVEL ? nLvl + 1 : 0 );
     501           0 :     m_pEdDelim->SetText( sDelim );
     502             : 
     503           0 :     Link aLk = LINK( this, SwCaptionOptPage, ModifyHdl );
     504           0 :     m_pCategoryBox->SetModifyHdl( aLk );
     505           0 :     m_pNumberingSeparatorED->SetModifyHdl( aLk );
     506           0 :     m_pTextEdit->SetModifyHdl( aLk );
     507             : 
     508           0 :     aLk = LINK(this, SwCaptionOptPage, SelectHdl);
     509           0 :     m_pCategoryBox->SetSelectHdl( aLk );
     510           0 :     m_pFormatBox->SetSelectHdl( aLk );
     511             : 
     512           0 :     m_pLbCaptionOrder->SetSelectHdl( LINK(this, SwCaptionOptPage, OrderHdl));
     513             : 
     514           0 :     m_pCheckLB->SetSelectHdl( LINK(this, SwCaptionOptPage, ShowEntryHdl) );
     515           0 :     m_pCheckLB->SetCheckButtonHdl( LINK(this, SwCaptionOptPage, ShowEntryHdl) );
     516           0 :     m_pCheckLB->SetDeselectHdl( LINK(this, SwCaptionOptPage, SaveEntryHdl) );
     517           0 : }
     518             : 
     519           0 : SwCaptionOptPage::~SwCaptionOptPage()
     520             : {
     521           0 :     DelUserData();
     522           0 :     delete pMgr;
     523           0 : }
     524             : 
     525           0 : SfxTabPage* SwCaptionOptPage::Create( vcl::Window* pParent,
     526             :                                 const SfxItemSet* rAttrSet )
     527             : {
     528           0 :     return new SwCaptionOptPage(pParent, *rAttrSet );
     529             : }
     530             : 
     531           0 : bool SwCaptionOptPage::FillItemSet( SfxItemSet*  )
     532             : {
     533           0 :     bool bRet = false;
     534           0 :     SwModuleOptions* pModOpt = SW_MOD()->GetModuleConfig();
     535             : 
     536           0 :     SaveEntry(m_pCheckLB->FirstSelected());    // apply current entry
     537             : 
     538           0 :     SvTreeListEntry* pEntry = m_pCheckLB->First();
     539             : 
     540           0 :     while (pEntry)
     541             :     {
     542           0 :         InsCaptionOpt* pData = (InsCaptionOpt*)pEntry->GetUserData();
     543           0 :         bRet |= pModOpt->SetCapOption(bHTMLMode, pData);
     544           0 :         pEntry = m_pCheckLB->Next(pEntry);
     545             :     }
     546             : 
     547           0 :     sal_uLong nCheckCount = m_pCheckLB->GetCheckedEntryCount();
     548           0 :     pModOpt->SetInsWithCaption( bHTMLMode, nCheckCount > 0 );
     549             : 
     550           0 :     sal_Int32 nPos = m_pLbCaptionOrder->GetSelectEntryPos();
     551           0 :     pModOpt->SetCaptionOrderNumberingFirst(nPos == 1 ? sal_True : sal_False );
     552             : 
     553           0 :     return bRet;
     554             : }
     555             : 
     556           0 : void SwCaptionOptPage::Reset( const SfxItemSet* rSet)
     557             : {
     558             :     const SfxPoolItem* pItem;
     559           0 :     if(SfxItemState::SET == rSet->GetItemState(SID_HTML_MODE, false, &pItem))
     560             :     {
     561           0 :         bHTMLMode = 0 != (((const SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON);
     562             :     }
     563             : 
     564           0 :     DelUserData();
     565           0 :     m_pCheckLB->GetModel()->Clear();   // remove all entries
     566             : 
     567             :     // Writer objects
     568           0 :     sal_uLong nPos = 0;
     569           0 :     m_pCheckLB->InsertEntry(m_sSWTable);
     570           0 :     SetOptions(nPos++, TABLE_CAP);
     571           0 :     m_pCheckLB->InsertEntry(m_sSWFrame);
     572           0 :     SetOptions(nPos++, FRAME_CAP);
     573           0 :     m_pCheckLB->InsertEntry(m_sSWGraphic);
     574           0 :     SetOptions(nPos++, GRAPHIC_CAP);
     575             : 
     576             :     // get Productname and -version
     577           0 :     const OUString sWithoutVersion( utl::ConfigManager::getProductName() );
     578             :     const OUString sComplete(
     579           0 :         sWithoutVersion + " " +
     580           0 :         utl::ConfigManager::getProductVersion() );
     581             : 
     582           0 :     SvObjectServerList aObjS;
     583           0 :     aObjS.FillInsertObjects();
     584           0 :     aObjS.Remove( SvGlobalName( SO3_SW_CLASSID ) ); // remove Writer-ID
     585             : 
     586           0 :     for ( sal_uLong i = 0; i < aObjS.Count(); ++i )
     587             :     {
     588           0 :         const SvGlobalName &rOleId = aObjS[i].GetClassName();
     589           0 :         OUString sClass;
     590           0 :         if (rOleId == SvGlobalName(SO3_OUT_CLASSID))
     591           0 :             sClass = aObjS[i].GetHumanName();
     592             :         else
     593           0 :             sClass = m_sOLE;
     594             :         // don't show product version
     595           0 :         sClass = sClass.replaceFirst( sComplete, sWithoutVersion );
     596           0 :         m_pCheckLB->InsertEntry( sClass );
     597           0 :         SetOptions( nPos++, OLE_CAP, &rOleId );
     598           0 :     }
     599             :     m_pLbCaptionOrder->SelectEntryPos(
     600           0 :         SW_MOD()->GetModuleConfig()->IsCaptionOrderNumberingFirst() ? 1 : 0);
     601           0 :     ModifyHdl();
     602           0 : }
     603             : 
     604           0 : void SwCaptionOptPage::SetOptions(const sal_uLong nPos,
     605             :         const SwCapObjType eObjType, const SvGlobalName *pOleId)
     606             : {
     607           0 :     SwModuleOptions* pModOpt = SW_MOD()->GetModuleConfig();
     608           0 :     const InsCaptionOpt* pOpt = pModOpt->GetCapOption(bHTMLMode, eObjType, pOleId);
     609             : 
     610           0 :     if (pOpt)
     611             :     {
     612           0 :         m_pCheckLB->SetEntryData(nPos, new InsCaptionOpt(*pOpt));
     613           0 :         m_pCheckLB->CheckEntryPos(nPos, pOpt->UseCaption());
     614             :     }
     615             :     else
     616           0 :         m_pCheckLB->SetEntryData(nPos, new InsCaptionOpt(eObjType, pOleId));
     617           0 : }
     618             : 
     619           0 : void SwCaptionOptPage::DelUserData()
     620             : {
     621           0 :     SvTreeListEntry* pEntry = m_pCheckLB->First();
     622             : 
     623           0 :     while (pEntry)
     624             :     {
     625           0 :         delete (InsCaptionOpt*)pEntry->GetUserData();
     626           0 :         pEntry->SetUserData(0);
     627           0 :         pEntry = m_pCheckLB->Next(pEntry);
     628             :     }
     629           0 : }
     630             : 
     631           0 : IMPL_LINK_NOARG(SwCaptionOptPage, ShowEntryHdl)
     632             : {
     633           0 :     SvTreeListEntry* pSelEntry = m_pCheckLB->FirstSelected();
     634             : 
     635           0 :     if (pSelEntry)
     636             :     {
     637           0 :         bool bChecked = m_pCheckLB->IsChecked(m_pCheckLB->GetModel()->GetAbsPos(pSelEntry));
     638             : 
     639           0 :         m_pSettingsGroup->Enable(bChecked);
     640           0 :         bool bNumSep = bChecked && m_pLbCaptionOrder->GetSelectEntryPos() == 1;
     641           0 :         m_pNumberingSeparatorED->Enable( bNumSep );
     642           0 :         m_pNumberingSeparatorFT->Enable( bNumSep );
     643             : 
     644           0 :         m_pNumCapt->Enable(bChecked);
     645           0 :         m_pCategory->Enable(bChecked);
     646           0 :         m_pPreview->Enable(bChecked);
     647             : 
     648           0 :         SwWrtShell *pSh = ::GetActiveWrtShell();
     649             : 
     650           0 :         InsCaptionOpt* pOpt = (InsCaptionOpt*)pSelEntry->GetUserData();
     651             : 
     652           0 :         m_pCategoryBox->Clear();
     653           0 :         m_pCategoryBox->InsertEntry(m_sNone);
     654           0 :         if (pSh)
     655             :         {
     656           0 :             const sal_uInt16 nCount = pMgr->GetFldTypeCount();
     657             : 
     658           0 :             for (sal_uInt16 i = 0; i < nCount; i++)
     659             :             {
     660           0 :                 SwFieldType *pType = pMgr->GetFldType( USHRT_MAX, i );
     661           0 :                 if( pType->Which() == RES_SETEXPFLD &&
     662           0 :                     ((SwSetExpFieldType *) pType)->GetType() & nsSwGetSetExpType::GSE_SEQ )
     663           0 :                     m_pCategoryBox->InsertSwEntry(SwBoxEntry(pType->GetName()));
     664             :             }
     665             :         }
     666             :         else
     667             :         {
     668           0 :             m_pCategoryBox->InsertSwEntry(SwBoxEntry(m_sIllustration));
     669           0 :             m_pCategoryBox->InsertSwEntry(SwBoxEntry(m_sTable));
     670           0 :             m_pCategoryBox->InsertSwEntry(SwBoxEntry(m_sText));
     671           0 :             m_pCategoryBox->InsertSwEntry(SwBoxEntry(m_sDrawing));
     672             :         }
     673             : 
     674           0 :         if(!pOpt->GetCategory().isEmpty())
     675           0 :             m_pCategoryBox->SetText(pOpt->GetCategory());
     676             :         else
     677           0 :             m_pCategoryBox->SetText(m_sNone);
     678           0 :         if (!pOpt->GetCategory().isEmpty() &&
     679           0 :             m_pCategoryBox->GetEntryPos(pOpt->GetCategory()) == COMBOBOX_ENTRY_NOTFOUND)
     680           0 :             m_pCategoryBox->InsertEntry(pOpt->GetCategory());
     681           0 :         if (m_pCategoryBox->GetText().isEmpty())
     682             :         {
     683           0 :             sal_Int32 nPos = 0;
     684           0 :             switch(pOpt->GetObjType())
     685             :             {
     686             :                 case OLE_CAP:
     687           0 :                 case GRAPHIC_CAP:       nPos = 1;   break;
     688           0 :                 case TABLE_CAP:         nPos = 2;   break;
     689           0 :                 case FRAME_CAP:         nPos = 3;   break;
     690             :             }
     691           0 :             m_pCategoryBox->SetText(m_pCategoryBox->GetSwEntry(nPos).GetName());
     692             :         }
     693             : 
     694           0 :         for (sal_Int32 i = 0; i < m_pFormatBox->GetEntryCount(); i++)
     695             :         {
     696           0 :             if (pOpt->GetNumType() == (sal_uInt16)(sal_uLong)m_pFormatBox->GetEntryData(i))
     697             :             {
     698           0 :                 m_pFormatBox->SelectEntryPos(i);
     699           0 :                 break;
     700             :             }
     701             :         }
     702           0 :         m_pTextEdit->SetText(pOpt->GetCaption());
     703             : 
     704           0 :         m_pPosBox->Clear();
     705           0 :         switch (pOpt->GetObjType())
     706             :         {
     707             :             case GRAPHIC_CAP:
     708             :             case TABLE_CAP:
     709             :             case OLE_CAP:
     710           0 :                 m_pPosBox->InsertEntry(m_sAbove);
     711           0 :                 m_pPosBox->InsertEntry(m_sBelow);
     712           0 :                 break;
     713             :             case FRAME_CAP:
     714           0 :                 m_pPosBox->InsertEntry(m_sBegin);
     715           0 :                 m_pPosBox->InsertEntry(m_sEnd);
     716           0 :                 break;
     717             :         }
     718           0 :         m_pPosBox->SelectEntryPos(pOpt->GetPos());
     719           0 :         m_pPosBox->Enable( pOpt->GetObjType() != GRAPHIC_CAP &&
     720           0 :                 pOpt->GetObjType() != OLE_CAP &&
     721           0 :                 m_pPosBox->IsEnabled() );
     722           0 :         m_pPosBox->SelectEntryPos(pOpt->GetPos());
     723             : 
     724           0 :         sal_Int32 nLevelPos = ( pOpt->GetLevel() < MAXLEVEL ) ? pOpt->GetLevel() + 1 : 0;
     725           0 :         m_pLbLevel->SelectEntryPos( nLevelPos );
     726           0 :         m_pEdDelim->SetText(pOpt->GetSeparator());
     727           0 :         m_pNumberingSeparatorED->SetText( pOpt->GetNumSeparator() );
     728           0 :         if(!pOpt->GetCharacterStyle().isEmpty())
     729           0 :             m_pCharStyleLB->SelectEntry( pOpt->GetCharacterStyle() );
     730             :         else
     731           0 :             m_pCharStyleLB->SelectEntryPos( 0 );
     732           0 :         m_pApplyBorderCB->Enable( m_pCategoryBox->IsEnabled() &&
     733           0 :                 pOpt->GetObjType() != TABLE_CAP && pOpt->GetObjType() != FRAME_CAP );
     734           0 :         m_pApplyBorderCB->Check( pOpt->CopyAttributes() );
     735             :     }
     736             : 
     737           0 :     ModifyHdl();
     738             : 
     739           0 :     return 0;
     740             : }
     741             : 
     742           0 : IMPL_LINK_NOARG(SwCaptionOptPage, SaveEntryHdl)
     743             : {
     744           0 :     SvTreeListEntry* pEntry = m_pCheckLB->GetHdlEntry();
     745             : 
     746           0 :     if (pEntry) // save all
     747           0 :         SaveEntry(pEntry);
     748             : 
     749           0 :     return 0;
     750             : }
     751             : 
     752           0 : void SwCaptionOptPage::SaveEntry(SvTreeListEntry* pEntry)
     753             : {
     754           0 :     if (pEntry)
     755             :     {
     756           0 :         InsCaptionOpt* pOpt = (InsCaptionOpt*)pEntry->GetUserData();
     757             : 
     758           0 :         pOpt->UseCaption() = m_pCheckLB->IsChecked(m_pCheckLB->GetModel()->GetAbsPos(pEntry));
     759           0 :         const OUString aName( m_pCategoryBox->GetText() );
     760           0 :         if (aName == m_sNone)
     761           0 :             pOpt->SetCategory("");
     762             :         else
     763           0 :             pOpt->SetCategory(comphelper::string::strip(aName, ' '));
     764           0 :         pOpt->SetNumType((sal_uInt16)(sal_uLong)m_pFormatBox->GetEntryData(m_pFormatBox->GetSelectEntryPos()));
     765           0 :         pOpt->SetCaption(m_pTextEdit->IsEnabled() ? m_pTextEdit->GetText() : OUString() );
     766           0 :         pOpt->SetPos(m_pPosBox->GetSelectEntryPos());
     767           0 :         sal_Int32 nPos = m_pLbLevel->GetSelectEntryPos();
     768           0 :         sal_Int32 nLevel = ( nPos > 0 && nPos != LISTBOX_ENTRY_NOTFOUND ) ? nPos - 1 : MAXLEVEL;
     769           0 :         pOpt->SetLevel(nLevel);
     770           0 :         pOpt->SetSeparator(m_pEdDelim->GetText());
     771           0 :         pOpt->SetNumSeparator( m_pNumberingSeparatorED->GetText());
     772           0 :         if(!m_pCharStyleLB->GetSelectEntryPos())
     773           0 :             pOpt->SetCharacterStyle("");
     774             :         else
     775           0 :             pOpt->SetCharacterStyle(m_pCharStyleLB->GetSelectEntry());
     776           0 :         pOpt->CopyAttributes() = m_pApplyBorderCB->IsChecked();
     777             :     }
     778           0 : }
     779             : 
     780           0 : IMPL_LINK_NOARG(SwCaptionOptPage, ModifyHdl)
     781             : {
     782           0 :     const OUString sFldTypeName = m_pCategoryBox->GetText();
     783             : 
     784           0 :     SfxSingleTabDialog *pDlg = dynamic_cast<SfxSingleTabDialog*>(GetParentDialog());
     785           0 :     PushButton *pBtn = pDlg ? pDlg->GetOKButton() : NULL;
     786           0 :     if (pBtn)
     787           0 :         pBtn->Enable(!sFldTypeName.isEmpty());
     788           0 :     bool bEnable = m_pCategoryBox->IsEnabled() && sFldTypeName != m_sNone;
     789             : 
     790           0 :     m_pFormatText->Enable(bEnable);
     791           0 :     m_pFormatBox->Enable(bEnable);
     792           0 :     m_pTextText->Enable(bEnable);
     793           0 :     m_pTextEdit->Enable(bEnable);
     794             : 
     795           0 :     DrawSample();
     796           0 :     return 0;
     797             : }
     798             : 
     799           0 : IMPL_LINK_NOARG_INLINE_START(SwCaptionOptPage, SelectHdl)
     800             : {
     801           0 :     DrawSample();
     802           0 :     return 0;
     803             : }
     804           0 : IMPL_LINK_NOARG_INLINE_END(SwCaptionOptPage, SelectHdl)
     805             : 
     806           0 : IMPL_LINK( SwCaptionOptPage, OrderHdl, ListBox*, pBox )
     807             : {
     808           0 :     DrawSample();
     809             : 
     810           0 :     SvTreeListEntry* pSelEntry = m_pCheckLB->FirstSelected();
     811           0 :     bool bChecked = false;
     812           0 :     if (pSelEntry)
     813             :     {
     814           0 :         bChecked = m_pCheckLB->IsChecked(m_pCheckLB->GetModel()->GetAbsPos(pSelEntry));
     815             :     }
     816             : 
     817           0 :     sal_Int32 nPos = pBox->GetSelectEntryPos();
     818           0 :     m_pNumberingSeparatorFT->Enable( bChecked && nPos == 1 );
     819           0 :     m_pNumberingSeparatorED->Enable( bChecked && nPos == 1 );
     820           0 :     return 0;
     821             : }
     822             : 
     823           0 : void SwCaptionOptPage::DrawSample()
     824             : {
     825           0 :     OUString aStr;
     826             : 
     827           0 :     if( m_pCategoryBox->GetText() != m_sNone)
     828             :     {
     829             :         //#i61007# order of captions
     830           0 :         bool bOrderNumberingFirst = m_pLbCaptionOrder->GetSelectEntryPos() == 1;
     831             :         // number
     832             :         const sal_uInt16 nNumFmt = (sal_uInt16)(sal_uLong)m_pFormatBox->GetEntryData(
     833           0 :                                         m_pFormatBox->GetSelectEntryPos() );
     834           0 :         if( SVX_NUM_NUMBER_NONE != nNumFmt )
     835             :         {
     836             :             //#i61007# order of captions
     837           0 :             if( !bOrderNumberingFirst )
     838             :             {
     839             :                 // category
     840           0 :                 aStr += m_pCategoryBox->GetText() + " ";
     841             :             }
     842             : 
     843           0 :             SwWrtShell *pSh = ::GetActiveWrtShell();
     844           0 :             if (pSh)
     845             :             {
     846             :                 SwSetExpFieldType* pFldType = (SwSetExpFieldType*)pMgr->GetFldType(
     847           0 :                                                 RES_SETEXPFLD, m_pCategoryBox->GetText() );
     848           0 :                 if( pFldType && pFldType->GetOutlineLvl() < MAXLEVEL )
     849             :                 {
     850           0 :                     sal_uInt8 nLvl = pFldType->GetOutlineLvl();
     851           0 :                     SwNumberTree::tNumberVector aNumVector;
     852           0 :                     for( sal_uInt8 i = 0; i <= nLvl; ++i )
     853           0 :                         aNumVector.push_back(1);
     854             : 
     855             :                     const OUString sNumber( pSh->GetOutlineNumRule()->MakeNumString(
     856           0 :                                                             aNumVector, false ));
     857           0 :                     if( !sNumber.isEmpty() )
     858           0 :                         aStr += sNumber + pFldType->GetDelimiter();
     859             :                 }
     860             :             }
     861             : 
     862           0 :             switch( nNumFmt )
     863             :             {
     864           0 :                 case SVX_NUM_CHARS_UPPER_LETTER:    aStr += "A"; break;
     865           0 :                 case SVX_NUM_CHARS_UPPER_LETTER_N:  aStr += "A"; break;
     866           0 :                 case SVX_NUM_CHARS_LOWER_LETTER:    aStr += "a"; break;
     867           0 :                 case SVX_NUM_CHARS_LOWER_LETTER_N:  aStr += "a"; break;
     868           0 :                 case SVX_NUM_ROMAN_UPPER:           aStr += "I"; break;
     869           0 :                 case SVX_NUM_ROMAN_LOWER:           aStr += "i"; break;
     870             :                 //case ARABIC:
     871           0 :                 default:                    aStr += "1"; break;
     872             :             }
     873             :         }
     874             :         //#i61007# order of captions
     875           0 :         if( bOrderNumberingFirst )
     876             :         {
     877           0 :             aStr += m_pNumberingSeparatorED->GetText() + m_pCategoryBox->GetText();
     878             :         }
     879           0 :         aStr += m_pTextEdit->GetText();
     880             :     }
     881           0 :     m_pPreview->SetPreviewText( aStr );
     882           0 : }
     883             : 
     884             : // Description: ComboBox without Spaces
     885           0 : void CaptionComboBox::KeyInput(const KeyEvent& rEvt)
     886             : {
     887           0 :     if( rEvt.GetKeyCode().GetCode() != KEY_SPACE )
     888           0 :         SwComboBox::KeyInput(rEvt);
     889           0 : }
     890             : 
     891           0 : extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL makeCaptionComboBox(vcl::Window *pParent, VclBuilder::stringmap &rMap)
     892             : {
     893           0 :     WinBits nBits = WB_CLIPCHILDREN|WB_LEFT|WB_VCENTER|WB_3DLOOK;
     894           0 :     bool bDropdown = VclBuilder::extractDropdown(rMap);
     895           0 :     if (bDropdown)
     896           0 :         nBits |= WB_DROPDOWN;
     897           0 :     CaptionComboBox* pComboBox = new CaptionComboBox(pParent, nBits);
     898           0 :     pComboBox->EnableAutoSize(true);
     899           0 :     return pComboBox;
     900           0 : }
     901             : 
     902             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10