LCOV - code coverage report
Current view: top level - basctl/source/dlged - managelang.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 217 0.0 %
Date: 2012-08-25 Functions: 0 23 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 0 -

           Branch data     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 "basidesh.hxx"
      21                 :            : #include "basobj.hxx"
      22                 :            : #include "iderdll.hxx"
      23                 :            : #include "iderid.hxx"
      24                 :            : #include "localizationmgr.hxx"
      25                 :            : #include "managelang.hxx"
      26                 :            : 
      27                 :            : #include "dlgresid.hrc"
      28                 :            : #include "helpid.hrc"
      29                 :            : #include "managelang.hrc"
      30                 :            : 
      31                 :            : #include <com/sun/star/i18n/Boundary.hpp>
      32                 :            : #include <com/sun/star/i18n/WordType.hpp>
      33                 :            : #include <com/sun/star/i18n/XBreakIterator.hpp>
      34                 :            : #include <editeng/unolingu.hxx>
      35                 :            : #include <sfx2/bindings.hxx>
      36                 :            : #include <svtools/langtab.hxx>
      37                 :            : #include <svx/langbox.hxx>
      38                 :            : #include <vcl/unohelp.hxx>
      39                 :            : #include <vcl/svapp.hxx>
      40                 :            : #include <vcl/msgbox.hxx>
      41                 :            : 
      42                 :            : using namespace ::com::sun::star::i18n;
      43                 :            : using namespace ::com::sun::star::lang;
      44                 :            : using namespace ::com::sun::star::resource;
      45                 :            : using namespace ::com::sun::star::uno;
      46                 :            : 
      47                 :          0 : bool localesAreEqual( const Locale& rLocaleLeft, const Locale& rLocaleRight )
      48                 :            : {
      49                 :          0 :     bool bRet = ( rLocaleLeft.Language.equals( rLocaleRight.Language ) &&
      50                 :          0 :                   rLocaleLeft.Country.equals( rLocaleRight.Country ) &&
      51                 :          0 :                   rLocaleLeft.Variant.equals( rLocaleRight.Variant ) );
      52                 :          0 :     return bRet;
      53                 :            : }
      54                 :            : 
      55                 :            : namespace {
      56                 :          0 :     long getLongestWordWidth( const ::rtl::OUString& rText, const Window& rWin )
      57                 :            :     {
      58                 :          0 :         long nWidth = 0;
      59                 :          0 :         Reference< XBreakIterator > xBreakIter( vcl::unohelper::CreateBreakIterator() );
      60                 :          0 :         sal_Int32 nStartPos = 0;
      61                 :          0 :         const Locale aLocale = Application::GetSettings().GetUILocale();
      62                 :          0 :         Boundary aBoundary = xBreakIter->getWordBoundary(
      63                 :          0 :             rText, nStartPos, aLocale, WordType::ANYWORD_IGNOREWHITESPACES, true );
      64                 :            : 
      65                 :          0 :         while ( aBoundary.startPos != aBoundary.endPos )
      66                 :            :         {
      67                 :          0 :             nStartPos = aBoundary.endPos;
      68                 :          0 :             ::rtl::OUString sWord(rText.copy(aBoundary.startPos, aBoundary.endPos - aBoundary.startPos));
      69                 :          0 :             long nTemp = rWin.GetCtrlTextWidth( sWord );
      70                 :          0 :             if ( nTemp > nWidth )
      71                 :          0 :                 nWidth = nTemp;
      72                 :          0 :             aBoundary = xBreakIter->nextWord(
      73                 :          0 :                 rText, nStartPos, aLocale, WordType::ANYWORD_IGNOREWHITESPACES );
      74                 :          0 :         }
      75                 :            : 
      76                 :          0 :         return nWidth;
      77                 :            :     }
      78                 :            : }
      79                 :            : 
      80                 :          0 : ManageLanguageDialog::ManageLanguageDialog( Window* pParent, boost::shared_ptr<LocalizationMgr> _pLMgr ) :
      81                 :            :     ModalDialog( pParent, IDEResId( RID_DLG_MANAGE_LANGUAGE ) ),
      82                 :            :     m_aLanguageFT       ( this, IDEResId( FT_LANGUAGE ) ),
      83                 :            :     m_aLanguageLB       ( this, IDEResId( LB_LANGUAGE ) ),
      84                 :            :     m_aAddPB            ( this, IDEResId( PB_ADD_LANG ) ),
      85                 :            :     m_aDeletePB         ( this, IDEResId( PB_DEL_LANG ) ),
      86                 :            :     m_aMakeDefPB        ( this, IDEResId( PB_MAKE_DEFAULT ) ),
      87                 :            :     m_aInfoFT           ( this, IDEResId( FT_INFO ) ),
      88                 :            :     m_aBtnLine          ( this, IDEResId( FL_BUTTONS ) ),
      89                 :            :     m_aHelpBtn          ( this, IDEResId( PB_HELP ) ),
      90                 :            :     m_aCloseBtn         ( this, IDEResId( PB_CLOSE ) ),
      91                 :            :     m_pLocalizationMgr  ( _pLMgr ),
      92                 :            :     m_sDefLangStr       (IDE_RESSTR(STR_DEF_LANG)),
      93                 :            :     m_sDeleteStr        (IDE_RESSTR(STR_DELETE)),
      94                 :          0 :     m_sCreateLangStr    (IDE_RESSTR(STR_CREATE_LANG))
      95                 :            : {
      96                 :          0 :     FreeResource();
      97                 :            : 
      98                 :          0 :     Init();
      99                 :          0 :     FillLanguageBox();
     100                 :          0 :     SelectHdl( NULL );
     101                 :          0 : }
     102                 :            : 
     103                 :          0 : ManageLanguageDialog::~ManageLanguageDialog()
     104                 :            : {
     105                 :          0 :     ClearLanguageBox();
     106                 :          0 : }
     107                 :            : 
     108                 :          0 : void ManageLanguageDialog::Init()
     109                 :            : {
     110                 :            :     // get current IDE
     111                 :          0 :     BasicIDEShell* pIDEShell = BasicIDEGlobals::GetShell();
     112                 :          0 :     ::rtl::OUString sLibName = pIDEShell->GetCurLibName();
     113                 :            :     // set dialog title with library name
     114                 :          0 :     ::rtl::OUString sText = GetText();
     115                 :          0 :     sText = sText.replaceAll("$1", sLibName);
     116                 :          0 :     SetText( sText );
     117                 :            :     // set handler
     118                 :          0 :     m_aAddPB.SetClickHdl( LINK( this, ManageLanguageDialog, AddHdl ) );
     119                 :          0 :     m_aDeletePB.SetClickHdl( LINK( this, ManageLanguageDialog, DeleteHdl ) );
     120                 :          0 :     m_aMakeDefPB.SetClickHdl( LINK( this, ManageLanguageDialog, MakeDefHdl ) );
     121                 :          0 :     m_aLanguageLB.SetSelectHdl( LINK( this, ManageLanguageDialog, SelectHdl ) );
     122                 :            : 
     123                 :          0 :     m_aLanguageLB.EnableMultiSelection( true );
     124                 :          0 :     CalcInfoSize();
     125                 :          0 : }
     126                 :            : 
     127                 :          0 : void ManageLanguageDialog::CalcInfoSize()
     128                 :            : {
     129                 :          0 :     ::rtl::OUString sInfoStr = m_aInfoFT.GetText();
     130                 :          0 :     long nInfoWidth = m_aInfoFT.GetSizePixel().Width();
     131                 :          0 :     long nLongWord = getLongestWordWidth( sInfoStr, m_aInfoFT );
     132                 :          0 :     long nTxtWidth = m_aInfoFT.GetCtrlTextWidth( sInfoStr ) + nLongWord;
     133                 :          0 :     long nLines = ( nTxtWidth / nInfoWidth ) + 1;
     134                 :          0 :     if ( nLines > INFO_LINES_COUNT )
     135                 :            :     {
     136                 :          0 :         Size aFTSize = m_aLanguageFT.GetSizePixel();
     137                 :          0 :         Size aSize = m_aInfoFT.GetSizePixel();
     138                 :          0 :         long nNewHeight = aFTSize.Height() * nLines;
     139                 :          0 :         long nDelta = nNewHeight - aSize.Height();
     140                 :          0 :         aSize.Height() = nNewHeight;
     141                 :          0 :         m_aInfoFT.SetSizePixel( aSize );
     142                 :            : 
     143                 :          0 :         aSize = m_aLanguageLB.GetSizePixel();
     144                 :          0 :         aSize.Height() -= nDelta;
     145                 :          0 :         m_aLanguageLB.SetSizePixel( aSize );
     146                 :            : 
     147                 :          0 :         Point aNewPos = m_aInfoFT.GetPosPixel();
     148                 :          0 :         aNewPos.Y() -= nDelta;
     149                 :          0 :         m_aInfoFT.SetPosPixel( aNewPos );
     150                 :          0 :         aNewPos = m_aMakeDefPB.GetPosPixel();
     151                 :          0 :         aNewPos.Y() -= nDelta;
     152                 :          0 :         m_aMakeDefPB.SetPosPixel( aNewPos );
     153                 :          0 :     }
     154                 :          0 : }
     155                 :            : 
     156                 :          0 : void ManageLanguageDialog::FillLanguageBox()
     157                 :            : {
     158                 :            :     DBG_ASSERT( m_pLocalizationMgr, "ManageLanguageDialog::FillLanguageBox(): no localization manager" );
     159                 :            : 
     160                 :          0 :     if ( m_pLocalizationMgr->isLibraryLocalized() )
     161                 :            :     {
     162                 :          0 :         SvtLanguageTable aLangTable;
     163                 :          0 :         Locale aDefaultLocale = m_pLocalizationMgr->getStringResourceManager()->getDefaultLocale();
     164                 :          0 :         Sequence< Locale > aLocaleSeq = m_pLocalizationMgr->getStringResourceManager()->getLocales();
     165                 :          0 :         const Locale* pLocale = aLocaleSeq.getConstArray();
     166                 :          0 :         sal_Int32 i, nCount = aLocaleSeq.getLength();
     167                 :          0 :         for ( i = 0;  i < nCount;  ++i )
     168                 :            :         {
     169                 :          0 :             bool bIsDefault = localesAreEqual( aDefaultLocale, pLocale[i] );
     170                 :          0 :             LanguageType eLangType = SvxLocaleToLanguage( pLocale[i] );
     171                 :          0 :             ::rtl::OUStringBuffer sLanguageBuf(aLangTable.GetString( eLangType ));
     172                 :          0 :             if ( bIsDefault )
     173                 :            :             {
     174                 :          0 :                 sLanguageBuf.append(' ');
     175                 :          0 :                 sLanguageBuf.append(m_sDefLangStr);
     176                 :            :             }
     177                 :          0 :             ::rtl::OUString sLanguage(sLanguageBuf.makeStringAndClear());
     178                 :          0 :             sal_uInt16 nPos = m_aLanguageLB.InsertEntry( sLanguage );
     179                 :          0 :             m_aLanguageLB.SetEntryData( nPos, new LanguageEntry( sLanguage, pLocale[i], bIsDefault ) );
     180                 :          0 :         }
     181                 :            :     }
     182                 :            :     else
     183                 :          0 :         m_aLanguageLB.InsertEntry( m_sCreateLangStr );
     184                 :          0 : }
     185                 :            : 
     186                 :          0 : void ManageLanguageDialog::ClearLanguageBox()
     187                 :            : {
     188                 :          0 :     sal_uInt16 i, nCount = m_aLanguageLB.GetEntryCount();
     189                 :          0 :     for ( i = 0; i < nCount; ++i )
     190                 :            :     {
     191                 :          0 :         LanguageEntry* pEntry = (LanguageEntry*)( m_aLanguageLB.GetEntryData(i) );
     192                 :          0 :         delete pEntry;
     193                 :            :     }
     194                 :          0 :     m_aLanguageLB.Clear();
     195                 :          0 : }
     196                 :            : 
     197                 :          0 : IMPL_LINK_NOARG(ManageLanguageDialog, AddHdl)
     198                 :            : {
     199                 :          0 :     SetDefaultLanguageDialog aDlg( this, m_pLocalizationMgr );
     200                 :          0 :     if ( RET_OK == aDlg.Execute() )
     201                 :            :     {
     202                 :            :         // add new locales
     203                 :          0 :         Sequence< Locale > aLocaleSeq = aDlg.GetLocales();
     204                 :          0 :         m_pLocalizationMgr->handleAddLocales( aLocaleSeq );
     205                 :            :         // update listbox
     206                 :          0 :         ClearLanguageBox();
     207                 :          0 :         FillLanguageBox();
     208                 :            : 
     209                 :          0 :         SfxBindings* pBindings = BasicIDE::GetBindingsPtr();
     210                 :          0 :         if ( pBindings )
     211                 :          0 :             pBindings->Invalidate( SID_BASICIDE_CURRENT_LANG );
     212                 :            :     }
     213                 :          0 :     return 1;
     214                 :            : }
     215                 :            : 
     216                 :          0 : IMPL_LINK_NOARG(ManageLanguageDialog, DeleteHdl)
     217                 :            : {
     218                 :          0 :     QueryBox aQBox( this, IDEResId( RID_QRYBOX_LANGUAGE ) );
     219                 :          0 :     aQBox.SetButtonText( RET_OK, m_sDeleteStr );
     220                 :          0 :     if ( aQBox.Execute() == RET_OK )
     221                 :            :     {
     222                 :          0 :         sal_uInt16 i, nCount = m_aLanguageLB.GetSelectEntryCount();
     223                 :          0 :         sal_uInt16 nPos = m_aLanguageLB.GetSelectEntryPos();
     224                 :            :         // remove locales
     225                 :          0 :         Sequence< Locale > aLocaleSeq( nCount );
     226                 :          0 :         for ( i = 0; i < nCount; ++i )
     227                 :            :         {
     228                 :          0 :             sal_uInt16 nSelPos = m_aLanguageLB.GetSelectEntryPos(i);
     229                 :          0 :             LanguageEntry* pEntry = (LanguageEntry*)( m_aLanguageLB.GetEntryData( nSelPos ) );
     230                 :          0 :             if ( pEntry )
     231                 :          0 :                 aLocaleSeq[i] = pEntry->m_aLocale;
     232                 :            :         }
     233                 :          0 :         m_pLocalizationMgr->handleRemoveLocales( aLocaleSeq );
     234                 :            :         // update listbox
     235                 :          0 :         ClearLanguageBox();
     236                 :          0 :         FillLanguageBox();
     237                 :            :         // reset selection
     238                 :          0 :         nCount = m_aLanguageLB.GetEntryCount();
     239                 :          0 :         if ( nCount <= nPos )
     240                 :          0 :             nPos = nCount - 1;
     241                 :          0 :         m_aLanguageLB.SelectEntryPos( nPos );
     242                 :          0 :         SelectHdl( NULL );
     243                 :            :     }
     244                 :          0 :     return 1;
     245                 :            : }
     246                 :            : 
     247                 :          0 : IMPL_LINK_NOARG(ManageLanguageDialog, MakeDefHdl)
     248                 :            : {
     249                 :          0 :     sal_uInt16 nPos = m_aLanguageLB.GetSelectEntryPos();
     250                 :          0 :     LanguageEntry* pSelectEntry = (LanguageEntry*)( m_aLanguageLB.GetEntryData( nPos ) );
     251                 :          0 :     if ( pSelectEntry && !pSelectEntry->m_bIsDefault )
     252                 :            :     {
     253                 :            :         // set new default entry
     254                 :          0 :         m_pLocalizationMgr->handleSetDefaultLocale( pSelectEntry->m_aLocale );
     255                 :            :         // update Listbox
     256                 :          0 :         ClearLanguageBox();
     257                 :          0 :         FillLanguageBox();
     258                 :            :         // reset selection
     259                 :          0 :         m_aLanguageLB.SelectEntryPos( nPos );
     260                 :          0 :         SelectHdl( NULL );
     261                 :            :     }
     262                 :            : 
     263                 :          0 :     return 1;
     264                 :            : }
     265                 :            : 
     266                 :          0 : IMPL_LINK_NOARG(ManageLanguageDialog, SelectHdl)
     267                 :            : {
     268                 :          0 :     sal_uInt16 nCount = m_aLanguageLB.GetEntryCount();
     269                 :            :     bool bEmpty = ( !nCount ||
     270                 :          0 :                     m_aLanguageLB.GetEntryPos( m_sCreateLangStr ) != LISTBOX_ENTRY_NOTFOUND );
     271                 :          0 :     bool bSelect = ( m_aLanguageLB.GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND );
     272                 :          0 :     bool bEnable = ( !bEmpty && bSelect != false );
     273                 :            : 
     274                 :          0 :     m_aDeletePB.Enable( bEnable != false );
     275                 :          0 :     m_aMakeDefPB.Enable( bEnable != false && nCount > 1 && m_aLanguageLB.GetSelectEntryCount() == 1 );
     276                 :            : 
     277                 :          0 :     return 1;
     278                 :            : }
     279                 :            : 
     280                 :            : // class SetDefaultLanguageDialog -----------------------------------------------
     281                 :            : 
     282                 :          0 : SetDefaultLanguageDialog::SetDefaultLanguageDialog( Window* pParent, boost::shared_ptr<LocalizationMgr> _pLMgr ) :
     283                 :            : 
     284                 :            :     ModalDialog( pParent, IDEResId( RID_DLG_SETDEF_LANGUAGE ) ),
     285                 :            :     m_aLanguageFT   ( this, IDEResId( FT_DEF_LANGUAGE ) ),
     286                 :          0 :     m_pLanguageLB   ( new SvxLanguageBox( this, IDEResId( LB_DEF_LANGUAGE ) ) ),
     287                 :            :     m_pCheckLangLB  ( NULL ),
     288                 :            :     m_aInfoFT       ( this, IDEResId( FT_DEF_INFO ) ),
     289                 :            :     m_aBtnLine      ( this, IDEResId( FL_DEF_BUTTONS ) ),
     290                 :            :     m_aOKBtn        ( this, IDEResId( PB_DEF_OK ) ),
     291                 :            :     m_aCancelBtn    ( this, IDEResId( PB_DEF_CANCEL ) ),
     292                 :            :     m_aHelpBtn      ( this, IDEResId( PB_DEF_HELP ) ),
     293                 :          0 :     m_pLocalizationMgr( _pLMgr )
     294                 :            : {
     295                 :          0 :     if ( m_pLocalizationMgr->isLibraryLocalized() )
     296                 :            :     {
     297                 :            :         // change to "Add Interface Language" mode
     298                 :          0 :         SetHelpId( HID_BASICIDE_ADDNEW_LANGUAGE );
     299                 :          0 :         m_pCheckLangLB = new SvxCheckListBox( this, IDEResId( LB_ADD_LANGUAGE ) );
     300                 :          0 :         SetText( IDE_RESSTR(STR_ADDLANG_TITLE) );
     301                 :          0 :         m_aLanguageFT.SetText( IDE_RESSTR(STR_ADDLANG_LABEL) );
     302                 :          0 :         m_aInfoFT.SetText( IDE_RESSTR(STR_ADDLANG_INFO) );
     303                 :            :     }
     304                 :            : 
     305                 :          0 :     FreeResource();
     306                 :            : 
     307                 :          0 :     FillLanguageBox();
     308                 :          0 :     CalcInfoSize();
     309                 :          0 : }
     310                 :            : 
     311                 :          0 : SetDefaultLanguageDialog::~SetDefaultLanguageDialog()
     312                 :            : {
     313                 :          0 :     delete m_pLanguageLB;
     314                 :          0 :     delete m_pCheckLangLB;
     315                 :          0 : }
     316                 :            : 
     317                 :          0 : void SetDefaultLanguageDialog::FillLanguageBox()
     318                 :            : {
     319                 :            :     // fill list with all languages
     320                 :          0 :     m_pLanguageLB->SetLanguageList( LANG_LIST_ALL, false );
     321                 :            :     // remove the already localized languages
     322                 :          0 :     Sequence< Locale > aLocaleSeq = m_pLocalizationMgr->getStringResourceManager()->getLocales();
     323                 :          0 :     const Locale* pLocale = aLocaleSeq.getConstArray();
     324                 :          0 :     sal_Int32 i, nCount = aLocaleSeq.getLength();
     325                 :          0 :     for ( i = 0;  i < nCount;  ++i )
     326                 :          0 :         m_pLanguageLB->RemoveLanguage( SvxLocaleToLanguage( pLocale[i] ) );
     327                 :            : 
     328                 :            :     // fill checklistbox if not in default mode
     329                 :          0 :     if ( m_pLocalizationMgr->isLibraryLocalized() )
     330                 :            :     {
     331                 :          0 :         sal_uInt16 j, nCount_ = m_pLanguageLB->GetEntryCount();
     332                 :          0 :         for ( j = 0;  j < nCount_;  ++j )
     333                 :            :         {
     334                 :            :             m_pCheckLangLB->InsertEntry(
     335                 :          0 :                 m_pLanguageLB->GetEntry(j), LISTBOX_APPEND, m_pLanguageLB->GetEntryData(j) );
     336                 :            :         }
     337                 :          0 :         delete m_pLanguageLB;
     338                 :          0 :         m_pLanguageLB = NULL;
     339                 :            :     }
     340                 :            :     else
     341                 :            :         // preselect current UI language
     342                 :          0 :         m_pLanguageLB->SelectLanguage( Application::GetSettings().GetUILanguage() );
     343                 :          0 : }
     344                 :            : 
     345                 :          0 : void SetDefaultLanguageDialog::CalcInfoSize()
     346                 :            : {
     347                 :          0 :     ::rtl::OUString sInfoStr = m_aInfoFT.GetText();
     348                 :          0 :     long nInfoWidth = m_aInfoFT.GetSizePixel().Width();
     349                 :          0 :     long nLongWord = getLongestWordWidth( sInfoStr, m_aInfoFT );
     350                 :          0 :     long nTxtWidth = m_aInfoFT.GetCtrlTextWidth( sInfoStr ) + nLongWord;
     351                 :          0 :     long nLines = ( nTxtWidth / nInfoWidth ) + 1;
     352                 :          0 :     if ( nLines > INFO_LINES_COUNT )
     353                 :            :     {
     354                 :          0 :         Size aFTSize = m_aLanguageFT.GetSizePixel();
     355                 :          0 :         Size aSize = m_aInfoFT.GetSizePixel();
     356                 :          0 :         long nNewHeight = aFTSize.Height() * nLines;
     357                 :          0 :         long nDelta = nNewHeight - aSize.Height();
     358                 :          0 :         aSize.Height() = nNewHeight;
     359                 :          0 :         m_aInfoFT.SetSizePixel( aSize );
     360                 :            : 
     361                 :            :         Window* pWin = ( m_pLanguageLB != NULL ) ? dynamic_cast< Window* >( m_pLanguageLB )
     362                 :          0 :                                                  : dynamic_cast< Window* >( m_pCheckLangLB );
     363                 :          0 :         aSize = pWin->GetSizePixel();
     364                 :          0 :         aSize.Height() -= nDelta;
     365                 :          0 :         pWin->SetSizePixel( aSize );
     366                 :            : 
     367                 :          0 :         Point aNewPos = m_aInfoFT.GetPosPixel();
     368                 :          0 :         aNewPos.Y() -= nDelta;
     369                 :          0 :         m_aInfoFT.SetPosPixel( aNewPos );
     370                 :          0 :     }
     371                 :          0 : }
     372                 :            : 
     373                 :          0 : Sequence< Locale > SetDefaultLanguageDialog::GetLocales() const
     374                 :            : {
     375                 :          0 :     bool bNotLocalized = !m_pLocalizationMgr->isLibraryLocalized();
     376                 :          0 :     sal_Int32 nSize = bNotLocalized ? 1 : m_pCheckLangLB->GetCheckedEntryCount();
     377                 :          0 :     Sequence< Locale > aLocaleSeq( nSize );
     378                 :          0 :     if ( bNotLocalized )
     379                 :            :     {
     380                 :          0 :         Locale aLocale;
     381                 :          0 :         SvxLanguageToLocale( aLocale, m_pLanguageLB->GetSelectLanguage() );
     382                 :          0 :         aLocaleSeq[0] = aLocale;
     383                 :            :     }
     384                 :            :     else
     385                 :            :     {
     386                 :          0 :         sal_uInt16 i, nCount = static_cast< sal_uInt16 >( m_pCheckLangLB->GetEntryCount() );
     387                 :          0 :         sal_Int32 j = 0;
     388                 :          0 :         for ( i = 0; i < nCount; ++i )
     389                 :            :         {
     390                 :          0 :             if ( m_pCheckLangLB->IsChecked(i) )
     391                 :            :             {
     392                 :          0 :                 LanguageType eType = LanguageType( (sal_uLong)m_pCheckLangLB->GetEntryData(i) );
     393                 :          0 :                 Locale aLocale;
     394                 :          0 :                 SvxLanguageToLocale( aLocale, eType );
     395                 :          0 :                 aLocaleSeq[j++] = aLocale;
     396                 :            :             }
     397                 :            :         }
     398                 :            :         DBG_ASSERT( nSize == j, "SetDefaultLanguageDialog::GetLocales(): invalid indexes" );
     399                 :            :     }
     400                 :          0 :     return aLocaleSeq;
     401                 :            : }
     402                 :            : 
     403                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10