LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/cui/source/tabpages - macroass.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 242 0.0 %
Date: 2013-07-09 Functions: 0 31 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 "macroass.hxx"
      21             : 
      22             : #include <basic/basmgr.hxx>
      23             : #include <comphelper/string.hxx>
      24             : #include <dialmgr.hxx>
      25             : #include <svl/macitem.hxx>
      26             : #include <svx/dialogs.hrc>
      27             : #include <svtools/svmedit.hxx>
      28             : #include "cfgutil.hxx"
      29             : #include <sfx2/app.hxx>
      30             : #include <sfx2/evntconf.hxx>
      31             : #include <sfx2/objsh.hxx>
      32             : #include "macroass.hrc"
      33             : #include "cuires.hrc"
      34             : #include <vcl/fixed.hxx>
      35             : #include "headertablistbox.hxx"
      36             : #include "svtools/svlbitm.hxx"
      37             : #include "svtools/treelistentry.hxx"
      38             : 
      39             : using ::com::sun::star::uno::Reference;
      40             : using ::com::sun::star::frame::XFrame;
      41             : 
      42             : class _SfxMacroTabPage_Impl
      43             : {
      44             : public:
      45             :     _SfxMacroTabPage_Impl( void );
      46             :     ~_SfxMacroTabPage_Impl();
      47             : 
      48             :     String                          maStaticMacroLBLabel;
      49             :     PushButton*                     pAssignPB;
      50             :     PushButton*                     pDeletePB;
      51             :     String*                         pStrEvent;
      52             :     String*                         pAssignedMacro;
      53             :     _HeaderTabListBox*              pEventLB;
      54             :     SfxConfigGroupListBox_Impl*     pGroupLB;
      55             :     FixedText*                      pFT_MacroLBLabel;
      56             :     SfxConfigFunctionListBox_Impl*  pMacroLB;
      57             : 
      58             :     FixedText*                      pMacroFT;
      59             :     String*                         pMacroStr;
      60             : 
      61             :     sal_Bool                            bReadOnly;
      62             :     Timer                           maFillGroupTimer;
      63             :     sal_Bool                            bGotEvents;
      64             :     bool m_bDummyActivated; ///< has this tab page already been activated
      65             : };
      66             : 
      67           0 : _SfxMacroTabPage_Impl::_SfxMacroTabPage_Impl( void ) :
      68             :     pAssignPB( NULL ),
      69             :     pDeletePB( NULL ),
      70             :     pStrEvent( NULL ),
      71             :     pAssignedMacro( NULL ),
      72             :     pEventLB( NULL ),
      73             :     pGroupLB( NULL ),
      74             :     pFT_MacroLBLabel( NULL ),
      75             :     pMacroLB( NULL ),
      76             :     pMacroFT( NULL ),
      77             :     pMacroStr( NULL ),
      78             :     bReadOnly( sal_False ),
      79             :     bGotEvents( sal_False )
      80           0 :     , m_bDummyActivated(false)
      81             : {
      82           0 : }
      83             : 
      84           0 : _SfxMacroTabPage_Impl::~_SfxMacroTabPage_Impl()
      85             : {
      86           0 :     delete pAssignPB;
      87           0 :     delete pDeletePB;
      88           0 :     delete pStrEvent;
      89           0 :     delete pAssignedMacro;
      90           0 :     delete pEventLB;
      91           0 :     delete pGroupLB;
      92           0 :     delete pMacroLB;
      93           0 :     delete pFT_MacroLBLabel;
      94           0 :     delete pMacroFT;
      95           0 :     delete pMacroStr;
      96           0 : }
      97             : 
      98             : 
      99             : static sal_uInt16 aPageRg[] = {
     100             :     SID_ATTR_MACROITEM, SID_ATTR_MACROITEM,
     101             :     0
     102             : };
     103             : 
     104             : // attention, this array is indexed directly (0, 1, ...) in the code
     105             : static long nTabs[] =
     106             :     {
     107             :         2, // Number of Tabs
     108             :         0, 90
     109             :     };
     110             : 
     111             : // IDs for items in HeaderBar of EventLB
     112             : #define ITEMID_EVENT        1
     113             : #define ITMEID_ASSMACRO     2
     114             : 
     115             : 
     116             : #define LB_MACROS_ITEMPOS   2
     117             : 
     118           0 : String ConvertToUIName_Impl( SvxMacro *pMacro )
     119             : {
     120           0 :     String aName( pMacro->GetMacName() );
     121           0 :     String aEntry;
     122           0 :     if ( pMacro->GetLanguage() != "JavaScript" )
     123             :     {
     124           0 :         sal_uInt16 nCount = comphelper::string::getTokenCount(aName, '.');
     125           0 :         aEntry = aName.GetToken( nCount-1, '.' );
     126           0 :         if ( nCount > 2 )
     127             :         {
     128           0 :             aEntry += '(';
     129           0 :             aEntry += aName.GetToken( 0, '.' );
     130           0 :             aEntry += '.';
     131           0 :             aEntry += aName.GetToken( nCount-2, '.' );
     132           0 :             aEntry += ')';
     133             :         }
     134           0 :         return aEntry;
     135             :     }
     136             :     else
     137           0 :         return aName;
     138             : }
     139             : 
     140           0 : void _SfxMacroTabPage::EnableButtons()
     141             : {
     142             :     // don't do anything as long as the eventbox is empty
     143           0 :     const SvTreeListEntry* pE = mpImpl->pEventLB->GetListBox().FirstSelected();
     144           0 :     if ( pE )
     145             :     {
     146             :         // get bound macro
     147           0 :         const SvxMacro* pM = aTbl.Get( (sal_uInt16)(sal_uLong) pE->GetUserData() );
     148           0 :         mpImpl->pDeletePB->Enable( 0 != pM && !mpImpl->bReadOnly );
     149             : 
     150           0 :         String sEventMacro;
     151           0 :         sEventMacro = ((SvLBoxString*)pE->GetItem( LB_MACROS_ITEMPOS ))->GetText();
     152             : 
     153           0 :         String sScriptURI = mpImpl->pMacroLB->GetSelectedScriptURI();
     154           0 :         mpImpl->pAssignPB->Enable( !mpImpl->bReadOnly && !sScriptURI.EqualsIgnoreCaseAscii( sEventMacro ) );
     155             :     }
     156             :     else
     157           0 :         mpImpl->pAssignPB->Enable( sal_False );
     158           0 : }
     159             : 
     160           0 : _SfxMacroTabPage::_SfxMacroTabPage( Window* pParent, const ResId& rResId, const SfxItemSet& rAttrSet )
     161           0 :     : SfxTabPage( pParent, rResId, rAttrSet )
     162             : 
     163             : {
     164           0 :     mpImpl = new _SfxMacroTabPage_Impl;
     165           0 : }
     166             : 
     167           0 : _SfxMacroTabPage::~_SfxMacroTabPage()
     168             : {
     169           0 :     DELETEZ( mpImpl );
     170           0 : }
     171             : 
     172           0 : void _SfxMacroTabPage::AddEvent( const String & rEventName, sal_uInt16 nEventId )
     173             : {
     174           0 :     String sTmp( rEventName );
     175           0 :     sTmp += '\t';
     176             : 
     177             :     // if the table is valid already
     178           0 :     SvxMacro* pM = aTbl.Get( nEventId );
     179           0 :     if( pM )
     180             :     {
     181           0 :         String sNew( ConvertToUIName_Impl( pM ) );
     182           0 :         sTmp += sNew;
     183             :     }
     184             : 
     185           0 :     SvTreeListEntry* pE = mpImpl->pEventLB->GetListBox().InsertEntry( sTmp );
     186           0 :     pE->SetUserData( reinterpret_cast< void* >( sal::static_int_cast< sal_IntPtr >( nEventId )) );
     187           0 : }
     188             : 
     189           0 : void _SfxMacroTabPage::ScriptChanged()
     190             : {
     191             :     // get new areas and their functions
     192             :     {
     193           0 :         mpImpl->pGroupLB->Show();
     194           0 :         mpImpl->pMacroLB->Show();
     195           0 :         mpImpl->pMacroFT->SetText( *mpImpl->pMacroStr );
     196             :     }
     197             : 
     198           0 :     EnableButtons();
     199           0 : }
     200             : 
     201           0 : sal_Bool _SfxMacroTabPage::FillItemSet( SfxItemSet& rSet )
     202             : {
     203           0 :     SvxMacroItem aItem( GetWhich( aPageRg[0] ) );
     204           0 :     ((SvxMacroTableDtor&)aItem.GetMacroTable()) = aTbl;
     205             : 
     206             :     const SfxPoolItem* pItem;
     207           0 :     if( SFX_ITEM_SET != GetItemSet().GetItemState( aItem.Which(), sal_True, &pItem )
     208           0 :         || aItem != *(SvxMacroItem*)pItem )
     209             :     {
     210           0 :         rSet.Put( aItem );
     211           0 :         return sal_True;
     212             :     }
     213           0 :     return sal_False;
     214             : }
     215             : 
     216           0 : void _SfxMacroTabPage::LaunchFillGroup()
     217             : {
     218           0 :     if (!mpImpl->maFillGroupTimer.GetTimeoutHdl().IsSet())
     219             :     {
     220           0 :         mpImpl->maFillGroupTimer.SetTimeoutHdl( STATIC_LINK( this, _SfxMacroTabPage, TimeOut_Impl ) );
     221           0 :         mpImpl->maFillGroupTimer.SetTimeout( 0 );
     222           0 :         mpImpl->maFillGroupTimer.Start();
     223             :     }
     224           0 : }
     225             : 
     226           0 : void _SfxMacroTabPage::ActivatePage( const SfxItemSet& )
     227             : {
     228             :     // fdo#57553 lazily init script providers, because it is annoying if done
     229             :     // on dialog open (SfxTabDialog::Start_Impl activates all tab pages once!)
     230           0 :     if (!mpImpl->m_bDummyActivated)
     231             :     {
     232           0 :         mpImpl->m_bDummyActivated = true;
     233           0 :         return;
     234             :     }
     235           0 :     LaunchFillGroup();
     236             : }
     237             : 
     238           0 : void _SfxMacroTabPage::PageCreated (SfxAllItemSet aSet)
     239             : {
     240             :     const SfxPoolItem* pEventsItem;
     241           0 :     if( !mpImpl->bGotEvents && SFX_ITEM_SET == aSet.GetItemState( SID_EVENTCONFIG, sal_True, &pEventsItem ) )
     242             :     {
     243           0 :         mpImpl->bGotEvents = sal_True;
     244           0 :         const SfxEventNamesList& rList = ((SfxEventNamesItem*)pEventsItem)->GetEvents();
     245           0 :         for ( size_t nNo = 0, nCnt = rList.size(); nNo < nCnt; ++nNo )
     246             :         {
     247           0 :             const SfxEventName *pOwn = rList.at(nNo);
     248           0 :             AddEvent( pOwn->maUIName, pOwn->mnId );
     249             :         }
     250             :     }
     251           0 : }
     252             : 
     253           0 : void _SfxMacroTabPage::Reset( const SfxItemSet& rSet )
     254             : {
     255             :     const SfxPoolItem* pItem;
     256           0 :     if( SFX_ITEM_SET == rSet.GetItemState( GetWhich( aPageRg[0] ), sal_True, &pItem ))
     257           0 :         aTbl = ((SvxMacroItem*)pItem)->GetMacroTable();
     258             : 
     259             :     const SfxPoolItem* pEventsItem;
     260           0 :     if( !mpImpl->bGotEvents && SFX_ITEM_SET == rSet.GetItemState( SID_EVENTCONFIG, sal_True, &pEventsItem ) )
     261             :     {
     262           0 :         mpImpl->bGotEvents = sal_True;
     263           0 :         const SfxEventNamesList& rList = ((SfxEventNamesItem*)pEventsItem)->GetEvents();
     264           0 :         for ( size_t nNo = 0, nCnt = rList.size(); nNo < nCnt; ++nNo )
     265             :         {
     266           0 :             const SfxEventName *pOwn = rList.at(nNo);
     267           0 :             AddEvent( pOwn->maUIName, pOwn->mnId );
     268             :         }
     269             :     }
     270             : 
     271           0 :     FillEvents();
     272             : 
     273           0 :     SvHeaderTabListBox& rListBox = mpImpl->pEventLB->GetListBox();
     274           0 :     SvTreeListEntry* pE = rListBox.GetEntry( 0 );
     275           0 :     if( pE )
     276           0 :         rListBox.SetCurEntry( pE );
     277           0 : }
     278             : 
     279           0 : sal_Bool _SfxMacroTabPage::IsReadOnly() const
     280             : {
     281           0 :     return mpImpl->bReadOnly;
     282             : }
     283             : 
     284           0 : IMPL_STATIC_LINK( _SfxMacroTabPage, SelectEvent_Impl, SvTabListBox*, EMPTYARG )
     285             : {
     286           0 :     _SfxMacroTabPage_Impl*  pImpl = pThis->mpImpl;
     287           0 :     SvHeaderTabListBox&     rListBox = pImpl->pEventLB->GetListBox();
     288           0 :     SvTreeListEntry*            pE = rListBox.FirstSelected();
     289             :     sal_uLong                   nPos;
     290           0 :     if( !pE || LISTBOX_ENTRY_NOTFOUND ==
     291           0 :         ( nPos = rListBox.GetModel()->GetAbsPos( pE ) ) )
     292             :     {
     293             :         DBG_ASSERT( pE, "wo kommt der leere Eintrag her?" );
     294           0 :         return 0;
     295             :     }
     296             : 
     297           0 :     pThis->ScriptChanged();
     298           0 :     pThis->EnableButtons();
     299           0 :     return 0;
     300             : }
     301             : 
     302           0 : IMPL_STATIC_LINK( _SfxMacroTabPage, SelectGroup_Impl, ListBox*, EMPTYARG )
     303             : {
     304           0 :     _SfxMacroTabPage_Impl*  pImpl = pThis->mpImpl;
     305           0 :     pImpl->pGroupLB->GroupSelected();
     306           0 :     const String sScriptURI = pImpl->pMacroLB->GetSelectedScriptURI();
     307           0 :     String          aLabelText;
     308           0 :     if( sScriptURI.Len() > 0 )
     309           0 :         aLabelText = pImpl->maStaticMacroLBLabel;
     310           0 :     pImpl->pFT_MacroLBLabel->SetText( aLabelText );
     311             : 
     312           0 :     pThis->EnableButtons();
     313           0 :     return 0;
     314             : }
     315             : 
     316           0 : IMPL_STATIC_LINK( _SfxMacroTabPage, SelectMacro_Impl, ListBox*, EMPTYARG )
     317             : {
     318           0 :     _SfxMacroTabPage_Impl*  pImpl = pThis->mpImpl;
     319           0 :     pImpl->pMacroLB->FunctionSelected();
     320           0 :     pThis->EnableButtons();
     321           0 :     return 0;
     322             : }
     323             : 
     324           0 : IMPL_STATIC_LINK( _SfxMacroTabPage, AssignDeleteHdl_Impl, PushButton*, pBtn )
     325             : {
     326           0 :     _SfxMacroTabPage_Impl*  pImpl = pThis->mpImpl;
     327           0 :     SvHeaderTabListBox& rListBox = pImpl->pEventLB->GetListBox();
     328           0 :     SvTreeListEntry* pE = rListBox.FirstSelected();
     329             :     sal_uLong nPos;
     330           0 :     if( !pE || LISTBOX_ENTRY_NOTFOUND ==
     331           0 :         ( nPos = rListBox.GetModel()->GetAbsPos( pE ) ) )
     332             :     {
     333             :         DBG_ASSERT( pE, "wo kommt der leere Eintrag her?" );
     334           0 :         return 0;
     335             :     }
     336             : 
     337           0 :     const sal_Bool bAssEnabled = pBtn != pImpl->pDeletePB && pImpl->pAssignPB->IsEnabled();
     338             : 
     339             :     // remove from the table
     340           0 :     sal_uInt16 nEvent = (sal_uInt16)(sal_uLong)pE->GetUserData();
     341           0 :     pThis->aTbl.Erase( nEvent );
     342             : 
     343           0 :     String sScriptURI;
     344           0 :     if( bAssEnabled )
     345             :     {
     346           0 :         sScriptURI = pImpl->pMacroLB->GetSelectedScriptURI();
     347           0 :         if( sScriptURI.CompareToAscii( "vnd.sun.star.script:", 20 ) == COMPARE_EQUAL )
     348             :         {
     349             :             pThis->aTbl.Insert(
     350           0 :                 nEvent, SvxMacro( sScriptURI, OUString( SVX_MACRO_LANGUAGE_SF ) ) );
     351             :         }
     352             :         else
     353             :         {
     354             :             OSL_ENSURE( false, "_SfxMacroTabPage::AssignDeleteHdl_Impl: this branch is *not* dead? (out of interest: tell fs, please!)" );
     355             :             pThis->aTbl.Insert(
     356           0 :                 nEvent, SvxMacro( sScriptURI, OUString( SVX_MACRO_LANGUAGE_STARBASIC ) ) );
     357             :         }
     358             :     }
     359             : 
     360           0 :     pImpl->pEventLB->SetUpdateMode( sal_False );
     361           0 :     pE->ReplaceItem( new SvLBoxString( pE, 0, sScriptURI ), LB_MACROS_ITEMPOS );
     362           0 :     rListBox.GetModel()->InvalidateEntry( pE );
     363           0 :     rListBox.Select( pE );
     364           0 :     rListBox.MakeVisible( pE );
     365           0 :     rListBox.SetUpdateMode( sal_True );
     366             : 
     367           0 :     pThis->EnableButtons();
     368           0 :     return 0;
     369             : }
     370             : 
     371           0 : IMPL_STATIC_LINK( _SfxMacroTabPage, TimeOut_Impl, Timer*, EMPTYARG )
     372             : {
     373             :     // FillMacroList() can take a long time -> show wait cursor and disable input
     374           0 :     SfxTabDialog* pTabDlg = pThis->GetTabDialog();
     375             :     // perhaps the tabpage is part of a SingleTabDialog then pTabDlg == NULL
     376           0 :     if ( pTabDlg )
     377             :     {
     378           0 :         pTabDlg->EnterWait();
     379           0 :         pTabDlg->EnableInput( sal_False );
     380             :     }
     381           0 :     pThis->FillMacroList();
     382           0 :     if ( pTabDlg )
     383             :     {
     384           0 :         pTabDlg->EnableInput( sal_True );
     385           0 :         pTabDlg->LeaveWait();
     386             :     }
     387           0 :     return 0;
     388             : }
     389             : 
     390           0 : void _SfxMacroTabPage::InitAndSetHandler()
     391             : {
     392           0 :     SvHeaderTabListBox& rListBox = mpImpl->pEventLB->GetListBox();
     393           0 :     HeaderBar&          rHeaderBar = mpImpl->pEventLB->GetHeaderBar();
     394           0 :     Link                aLnk(STATIC_LINK(this, _SfxMacroTabPage, AssignDeleteHdl_Impl ));
     395           0 :     mpImpl->pMacroLB->SetDoubleClickHdl( aLnk );
     396           0 :     mpImpl->pDeletePB->SetClickHdl( aLnk );
     397           0 :     mpImpl->pAssignPB->SetClickHdl( aLnk );
     398           0 :     rListBox.SetDoubleClickHdl( aLnk );
     399             : 
     400           0 :     rListBox.SetSelectHdl( STATIC_LINK( this, _SfxMacroTabPage, SelectEvent_Impl ));
     401           0 :     mpImpl->pGroupLB->SetSelectHdl( STATIC_LINK( this, _SfxMacroTabPage, SelectGroup_Impl ));
     402           0 :     mpImpl->pMacroLB->SetSelectHdl( STATIC_LINK( this, _SfxMacroTabPage, SelectMacro_Impl ));
     403             : 
     404           0 :     rListBox.SetSelectionMode( SINGLE_SELECTION );
     405           0 :     rListBox.SetTabs( &nTabs[0], MAP_APPFONT );
     406           0 :     Size aSize( nTabs[ 2 ], 0 );
     407           0 :     rHeaderBar.InsertItem( ITEMID_EVENT, *mpImpl->pStrEvent, LogicToPixel( aSize, MapMode( MAP_APPFONT ) ).Width() );
     408           0 :     aSize.Width() = 1764;       // don't know what, so 42^2 is best to use...
     409           0 :     rHeaderBar.InsertItem( ITMEID_ASSMACRO, *mpImpl->pAssignedMacro, LogicToPixel( aSize, MapMode( MAP_APPFONT ) ).Width() );
     410           0 :     rListBox.SetSpaceBetweenEntries( 0 );
     411             : 
     412           0 :     mpImpl->pEventLB->Show();
     413           0 :     mpImpl->pEventLB->ConnectElements();
     414             : 
     415           0 :     mpImpl->pEventLB->Enable( sal_True );
     416           0 :     mpImpl->pGroupLB->Enable( sal_True );
     417           0 :     mpImpl->pMacroLB->Enable( sal_True );
     418             : 
     419           0 :     mpImpl->pGroupLB->SetFunctionListBox( mpImpl->pMacroLB );
     420             : 
     421           0 : }
     422             : 
     423           0 : void _SfxMacroTabPage::FillMacroList()
     424             : {
     425             :     mpImpl->pGroupLB->Init(
     426             :         ::com::sun::star::uno::Reference<
     427             :             ::com::sun::star::uno::XComponentContext >(),
     428             :         GetFrame(),
     429           0 :         OUString() );
     430           0 : }
     431             : 
     432           0 : void _SfxMacroTabPage::FillEvents()
     433             : {
     434           0 :     SvHeaderTabListBox& rListBox = mpImpl->pEventLB->GetListBox();
     435             : 
     436           0 :     sal_uLong       nEntryCnt = rListBox.GetEntryCount();
     437             : 
     438             :     // get events from the table and fill the EventListBox respectively
     439           0 :     for( sal_uLong n = 0 ; n < nEntryCnt ; ++n )
     440             :     {
     441           0 :         SvTreeListEntry*    pE = rListBox.GetEntry( n );
     442           0 :         if( pE )
     443             :         {
     444           0 :             SvLBoxString*   pLItem = ( SvLBoxString* ) pE->GetItem( LB_MACROS_ITEMPOS );
     445             :             DBG_ASSERT( pLItem && SV_ITEM_ID_LBOXSTRING == pLItem->GetType(), "_SfxMacroTabPage::FillEvents(): no LBoxString" );
     446             : 
     447           0 :             String          sOld( pLItem->GetText() );
     448           0 :             String          sNew;
     449           0 :             sal_uInt16          nEventId = ( sal_uInt16 ) ( sal_uLong ) pE->GetUserData();
     450           0 :             if( aTbl.IsKeyValid( nEventId ) )
     451           0 :                 sNew = ConvertToUIName_Impl( aTbl.Get( nEventId ) );
     452             : 
     453           0 :             if( sOld != sNew )
     454             :             {
     455           0 :                 pE->ReplaceItem( new SvLBoxString( pE, 0, sNew ), LB_MACROS_ITEMPOS );
     456           0 :                 rListBox.GetModel()->InvalidateEntry( pE );
     457           0 :             }
     458             :         }
     459             :     }
     460           0 : }
     461             : 
     462           0 : SfxMacroTabPage::SfxMacroTabPage( Window* pParent, const ResId& rResId, const Reference< XFrame >& rxDocumentFrame, const SfxItemSet& rSet )
     463           0 :     : _SfxMacroTabPage( pParent, rResId, rSet )
     464             : {
     465           0 :     mpImpl->pStrEvent           = new String(                   CUI_RES( STR_EVENT ) );
     466           0 :     mpImpl->pAssignedMacro      = new String(                   CUI_RES( STR_ASSMACRO ) );
     467           0 :     mpImpl->pEventLB            = new _HeaderTabListBox( this,  CUI_RES( LB_EVENT ) );
     468           0 :     mpImpl->pAssignPB           = new PushButton( this,         CUI_RES( PB_ASSIGN ) );
     469           0 :     mpImpl->pDeletePB           = new PushButton( this,         CUI_RES( PB_DELETE ) );
     470           0 :     mpImpl->pMacroFT            = new FixedText( this,          CUI_RES( FT_MACRO ) );
     471           0 :     mpImpl->pGroupLB            = new SfxConfigGroupListBox_Impl( this,     CUI_RES( LB_GROUP ) );
     472           0 :     mpImpl->pFT_MacroLBLabel    = new FixedText( this,          CUI_RES( FT_LABEL4LB_MACROS ) );
     473           0 :     mpImpl->maStaticMacroLBLabel= mpImpl->pFT_MacroLBLabel->GetText();
     474           0 :     mpImpl->pMacroLB            = new SfxConfigFunctionListBox_Impl( this,  CUI_RES( LB_MACROS ) );
     475           0 :     mpImpl->pMacroStr           = new String(                   CUI_RES( STR_MACROS ) );
     476             : 
     477           0 :     FreeResource();
     478             : 
     479           0 :     SetFrame( rxDocumentFrame );
     480             : 
     481           0 :     InitAndSetHandler();
     482             : 
     483           0 :     ScriptChanged();
     484           0 : }
     485             : 
     486             : namespace
     487             : {
     488           0 :     SfxMacroTabPage* CreateSfxMacroTabPage( Window* pParent, const SfxItemSet& rAttrSet )
     489             :     {
     490           0 :         return new SfxMacroTabPage( pParent, CUI_RES( RID_SVXPAGE_EVENTASSIGN ), NULL, rAttrSet );
     491             :     }
     492             : }
     493             : 
     494           0 : SfxTabPage* SfxMacroTabPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
     495             : {
     496           0 :     return CreateSfxMacroTabPage(pParent, rAttrSet);
     497             : }
     498             : 
     499           0 : SfxMacroAssignDlg::SfxMacroAssignDlg( Window* pParent, const Reference< XFrame >& rxDocumentFrame, const SfxItemSet& rSet )
     500           0 :     : SfxNoLayoutSingleTabDialog( pParent, rSet, 0 )
     501             : {
     502           0 :     SfxMacroTabPage* pPage = CreateSfxMacroTabPage(this, rSet);
     503           0 :     pPage->SetFrame( rxDocumentFrame );
     504           0 :     SetTabPage( pPage );
     505           0 :     pPage->LaunchFillGroup();
     506           0 : }
     507             : 
     508           0 : SfxMacroAssignDlg::~SfxMacroAssignDlg()
     509             : {
     510           0 : }
     511             : 
     512             : 
     513             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10