summaryrefslogtreecommitdiff
path: root/forms/source/solar/control/navtoolbar.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
commit2e626373db2412ac22e8c5c27a60d11cd29e875b (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /forms/source/solar/control/navtoolbar.cxx
parentf7ee7bbd5174b084f018c2ec94d8c70c98ee04da (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'forms/source/solar/control/navtoolbar.cxx')
-rw-r--r--forms/source/solar/control/navtoolbar.cxx732
1 files changed, 0 insertions, 732 deletions
diff --git a/forms/source/solar/control/navtoolbar.cxx b/forms/source/solar/control/navtoolbar.cxx
deleted file mode 100644
index 5112bb442..000000000
--- a/forms/source/solar/control/navtoolbar.cxx
+++ /dev/null
@@ -1,732 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_forms.hxx"
-
-#include "navtoolbar.hxx"
-#include "frm_resource.hxx"
-#include "featuredispatcher.hxx"
-#include "frm_resource.hrc"
-#include "commandimageprovider.hxx"
-#include "commanddescriptionprovider.hxx"
-
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/form/runtime/FormFeature.hpp>
-
-#include <sfx2/imgmgr.hxx>
-#include <vcl/fixed.hxx>
-
-#include <memory>
-#include <sal/macros.h>
-
-#define LID_RECORD_LABEL 1000
-#define LID_RECORD_FILLER 1001
-
-//.........................................................................
-namespace frm
-{
-//.........................................................................
-
- using ::com::sun::star::uno::makeAny;
- namespace FormFeature = ::com::sun::star::form::runtime::FormFeature;
-
- //=====================================================================
- //.....................................................................
- namespace
- {
- static bool isArtificialItem( sal_Int16 _nFeatureId )
- {
- return ( _nFeatureId == LID_RECORD_LABEL )
- || ( _nFeatureId == LID_RECORD_FILLER );
- }
-
- static String getLabelString( sal_uInt16 _nResId )
- {
- String sLabel = String::CreateFromAscii( " " );
- sLabel += String( FRM_RES_STRING( _nResId ) );
- sLabel += String::CreateFromAscii( " " );
- return sLabel;
- }
-
- ::rtl::OUString lcl_getCommandURL( const sal_Int16 _nFormFeature )
- {
- const sal_Char* pAsciiCommandName = NULL;
- switch ( _nFormFeature )
- {
- case FormFeature::MoveAbsolute : pAsciiCommandName = "AbsoluteRecord"; break;
- case FormFeature::TotalRecords : pAsciiCommandName = "RecTotal"; break;
- case FormFeature::MoveToFirst : pAsciiCommandName = "FirstRecord"; break;
- case FormFeature::MoveToPrevious : pAsciiCommandName = "PrevRecord"; break;
- case FormFeature::MoveToNext : pAsciiCommandName = "NextRecord"; break;
- case FormFeature::MoveToLast : pAsciiCommandName = "LastRecord"; break;
- case FormFeature::SaveRecordChanges : pAsciiCommandName = "RecSave"; break;
- case FormFeature::UndoRecordChanges : pAsciiCommandName = "RecUndo"; break;
- case FormFeature::MoveToInsertRow : pAsciiCommandName = "NewRecord"; break;
- case FormFeature::DeleteRecord : pAsciiCommandName = "DeleteRecord"; break;
- case FormFeature::ReloadForm : pAsciiCommandName = "Refresh"; break;
- case FormFeature::RefreshCurrentControl : pAsciiCommandName = "RefreshFormControl"; break;
- case FormFeature::SortAscending : pAsciiCommandName = "Sortup"; break;
- case FormFeature::SortDescending : pAsciiCommandName = "SortDown"; break;
- case FormFeature::InteractiveSort : pAsciiCommandName = "OrderCrit"; break;
- case FormFeature::AutoFilter : pAsciiCommandName = "AutoFilter"; break;
- case FormFeature::InteractiveFilter : pAsciiCommandName = "FilterCrit"; break;
- case FormFeature::ToggleApplyFilter : pAsciiCommandName = "FormFiltered"; break;
- case FormFeature::RemoveFilterAndSort : pAsciiCommandName = "RemoveFilterSort"; break;
- }
- if ( pAsciiCommandName != NULL )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:" ) ) + ::rtl::OUString::createFromAscii( pAsciiCommandName );
-
- OSL_FAIL( "lcl_getCommandURL: unknown FormFeature!" );
- return ::rtl::OUString();
- }
- }
-
- //=====================================================================
- //= ImplNavToolBar
- //=====================================================================
- class ImplNavToolBar : public ToolBox
- {
- protected:
- const IFeatureDispatcher* m_pDispatcher;
-
- public:
- ImplNavToolBar( Window* _pParent )
- :ToolBox( _pParent, WB_3DLOOK )
- ,m_pDispatcher( NULL )
- {
- }
-
- void setDispatcher( const IFeatureDispatcher* _pDispatcher )
- {
- m_pDispatcher = _pDispatcher;
- }
-
- protected:
- // ToolBox overridables
- virtual void Select();
-
- };
-
- //---------------------------------------------------------------------
- void ImplNavToolBar::Select()
- {
- if ( m_pDispatcher )
- {
- if ( !m_pDispatcher->isEnabled( GetCurItemId() ) )
- // the toolbox is a little bit buggy: With TIB_REPEAT, it sometimes
- // happens that a select is reported, even though the respective
- // item has just been disabled.
- return;
- m_pDispatcher->dispatch( GetCurItemId() );
- }
- }
-
- //=====================================================================
- //= NavigationToolBar
- //=====================================================================
- DBG_NAME( NavigationToolBar )
- //---------------------------------------------------------------------
- NavigationToolBar::NavigationToolBar( Window* _pParent, WinBits _nStyle, const PCommandImageProvider& _pImageProvider,
- const PCommandDescriptionProvider& _pDescriptionProvider )
- :Window( _pParent, _nStyle )
- ,m_pDispatcher( NULL )
- ,m_pImageProvider( _pImageProvider )
- ,m_pDescriptionProvider( _pDescriptionProvider )
- ,m_eImageSize( eSmall )
- ,m_pToolbar( NULL )
- {
- DBG_CTOR( NavigationToolBar, NULL );
- implInit( );
- }
-
- //---------------------------------------------------------------------
- NavigationToolBar::~NavigationToolBar( )
- {
- for ( ::std::vector< Window* >::iterator loopChildWins = m_aChildWins.begin();
- loopChildWins != m_aChildWins.end();
- ++loopChildWins
- )
- {
- delete *loopChildWins;
- }
- delete m_pToolbar;
- DBG_DTOR( NavigationToolBar, NULL );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::setDispatcher( const IFeatureDispatcher* _pDispatcher )
- {
- m_pDispatcher = _pDispatcher;
-
- m_pToolbar->setDispatcher( _pDispatcher );
-
- RecordPositionInput* pPositionWindow = static_cast< RecordPositionInput* >( m_pToolbar->GetItemWindow( FormFeature::MoveAbsolute ) );
- OSL_ENSURE( pPositionWindow, "NavigationToolBar::setDispatcher: can't forward the dispatcher to the position window!" );
- if ( pPositionWindow )
- pPositionWindow->setDispatcher( _pDispatcher );
-
- updateFeatureStates( );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::updateFeatureStates( )
- {
- for ( sal_uInt16 nPos = 0; nPos < m_pToolbar->GetItemCount(); ++nPos )
- {
- sal_uInt16 nItemId = m_pToolbar->GetItemId( nPos );
-
- if ( ( nItemId == LID_RECORD_LABEL ) || ( nItemId == LID_RECORD_FILLER ) )
- continue;
-
- // is this item enabled?
- bool bEnabled = m_pDispatcher ? m_pDispatcher->isEnabled( nItemId ) : false;
- implEnableItem( nItemId, bEnabled );
- }
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::implEnableItem( sal_uInt16 _nItemId, bool _bEnabled )
- {
- m_pToolbar->EnableItem( _nItemId, _bEnabled );
-
- if ( _nItemId == FormFeature::MoveAbsolute )
- m_pToolbar->EnableItem( LID_RECORD_LABEL, _bEnabled );
-
- if ( _nItemId == FormFeature::TotalRecords )
- m_pToolbar->EnableItem( LID_RECORD_FILLER, _bEnabled );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::enableFeature( sal_Int16 _nFeatureId, bool _bEnabled )
- {
- DBG_ASSERT( m_pToolbar->GetItemPos( (sal_uInt16)_nFeatureId ) != TOOLBOX_ITEM_NOTFOUND,
- "NavigationToolBar::enableFeature: invalid id!" );
-
- implEnableItem( (sal_uInt16)_nFeatureId, _bEnabled );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::checkFeature( sal_Int16 _nFeatureId, bool _bEnabled )
- {
- DBG_ASSERT( m_pToolbar->GetItemPos( (sal_uInt16)_nFeatureId ) != TOOLBOX_ITEM_NOTFOUND,
- "NavigationToolBar::checkFeature: invalid id!" );
-
- m_pToolbar->CheckItem( (sal_uInt16)_nFeatureId, _bEnabled );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::setFeatureText( sal_Int16 _nFeatureId, const ::rtl::OUString& _rText )
- {
- DBG_ASSERT( m_pToolbar->GetItemPos( (sal_uInt16)_nFeatureId ) != TOOLBOX_ITEM_NOTFOUND,
- "NavigationToolBar::checkFeature: invalid id!" );
-
- Window* pItemWindow = m_pToolbar->GetItemWindow( (sal_uInt16)_nFeatureId );
- if ( pItemWindow )
- pItemWindow->SetText( _rText );
- else
- m_pToolbar->SetItemText( (sal_uInt16)_nFeatureId, _rText );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::implInit( )
- {
- m_pToolbar = new ImplNavToolBar( this );
- m_pToolbar->SetOutStyle( TOOLBOX_STYLE_FLAT );
- m_pToolbar->Show();
-
- // need the SfxApplication for retrieving informations about our
- // items. We could duplicate all the information here in our lib
- // (such as the item text and the image), but why should we?
-
- struct FeatureDescription
- {
- sal_uInt16 nId;
- bool bRepeat;
- bool bItemWindow;
- } aSupportedFeatures[] =
- {
- { LID_RECORD_LABEL, false, true },
- { FormFeature::MoveAbsolute, false, true },
- { LID_RECORD_FILLER, false, true },
- { FormFeature::TotalRecords, false, true },
- { FormFeature::MoveToFirst, true, false },
- { FormFeature::MoveToPrevious, true, false },
- { FormFeature::MoveToNext, true, false },
- { FormFeature::MoveToLast, true, false },
- { FormFeature::MoveToInsertRow, false, false },
- { 0, false, false },
- { FormFeature::SaveRecordChanges, false, false },
- { FormFeature::UndoRecordChanges, false, false },
- { FormFeature::DeleteRecord, false, false },
- { FormFeature::ReloadForm, false, false },
- { FormFeature::RefreshCurrentControl, false, false },
- { 0, false, false },
- { FormFeature::SortAscending, false, false },
- { FormFeature::SortDescending, false, false },
- { FormFeature::InteractiveSort, false, false },
- { FormFeature::AutoFilter, false, false },
- { FormFeature::InteractiveFilter, false, false },
- { FormFeature::ToggleApplyFilter, false, false },
- { FormFeature::RemoveFilterAndSort, false, false },
- };
-
- size_t nSupportedFeatures = SAL_N_ELEMENTS( aSupportedFeatures );
- FeatureDescription* pSupportedFeatures = aSupportedFeatures;
- FeatureDescription* pSupportedFeaturesEnd = aSupportedFeatures + nSupportedFeatures;
- for ( ; pSupportedFeatures < pSupportedFeaturesEnd; ++pSupportedFeatures )
- {
- if ( pSupportedFeatures->nId )
- { // it's _not_ a separator
-
- // insert the entry
- m_pToolbar->InsertItem( pSupportedFeatures->nId, String(), pSupportedFeatures->bRepeat ? TIB_REPEAT : 0 );
- m_pToolbar->SetQuickHelpText( pSupportedFeatures->nId, String() ); // TODO
-
- if ( !isArtificialItem( pSupportedFeatures->nId ) )
- {
- ::rtl::OUString sCommandURL( lcl_getCommandURL( pSupportedFeatures->nId ) );
- m_pToolbar->SetItemCommand( pSupportedFeatures->nId, sCommandURL );
- if ( m_pDescriptionProvider )
- m_pToolbar->SetQuickHelpText( pSupportedFeatures->nId, m_pDescriptionProvider->getCommandDescription( sCommandURL ) );
- }
-
- if ( pSupportedFeatures->bItemWindow )
- {
- Window* pItemWindow = NULL;
- if ( FormFeature::MoveAbsolute == pSupportedFeatures->nId )
- {
- pItemWindow = new RecordPositionInput( m_pToolbar );
- static_cast< RecordPositionInput* >( pItemWindow )->setDispatcher( m_pDispatcher );
- }
- else if ( LID_RECORD_FILLER == pSupportedFeatures->nId )
- {
- pItemWindow = new FixedText( m_pToolbar, WB_CENTER | WB_VCENTER );
- pItemWindow->SetBackground(Wallpaper(Color(COL_TRANSPARENT)));
- }
- else
- {
- pItemWindow = new FixedText( m_pToolbar, WB_VCENTER );
- pItemWindow->SetBackground();
- pItemWindow->SetPaintTransparent(sal_True);
- }
- m_aChildWins.push_back( pItemWindow );
-
- switch ( pSupportedFeatures->nId )
- {
- case LID_RECORD_LABEL:
- pItemWindow->SetText( getLabelString( RID_STR_LABEL_RECORD ) );
- break;
-
- case LID_RECORD_FILLER:
- pItemWindow->SetText( getLabelString( RID_STR_LABEL_OF ) );
- break;
- }
-
- m_pToolbar->SetItemWindow( pSupportedFeatures->nId, pItemWindow );
- }
- }
- else
- { // a separator
- m_pToolbar->InsertSeparator( );
- }
- }
-
- forEachItemWindow( &NavigationToolBar::adjustItemWindowWidth, NULL );
-
- implUpdateImages();
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::implUpdateImages()
- {
- OSL_ENSURE( m_pImageProvider, "NavigationToolBar::implUpdateImages: no image provider => no images!" );
- if ( !m_pImageProvider )
- return;
-
- const sal_uInt16 nItemCount = m_pToolbar->GetItemCount();
-
- // collect the FormFeatures in the toolbar
- typedef ::std::vector< sal_Int16 > FormFeatures;
- FormFeatures aFormFeatures;
- aFormFeatures.reserve( nItemCount );
-
- for ( sal_uInt16 i=0; i<nItemCount; ++i )
- {
- sal_uInt16 nId = m_pToolbar->GetItemId( i );
- if ( ( TOOLBOXITEM_BUTTON == m_pToolbar->GetItemType( i ) ) && !isArtificialItem( nId ) )
- aFormFeatures.push_back( nId );
- }
-
- // translate them into command URLs
- CommandURLs aCommandURLs( aFormFeatures.size() );
- for ( FormFeatures::const_iterator formFeature = aFormFeatures.begin();
- formFeature != aFormFeatures.end();
- ++formFeature
- )
- {
- aCommandURLs[ formFeature - aFormFeatures.begin() ] = lcl_getCommandURL( *formFeature );
- }
-
- // retrieve the images for the command URLs
- CommandImages aCommandImages = m_pImageProvider->getCommandImages( aCommandURLs, m_eImageSize == eLarge );
-
- // and set them at the toolbar
- CommandImages::const_iterator commandImage = aCommandImages.begin();
- for ( FormFeatures::const_iterator formFeature = aFormFeatures.begin();
- formFeature != aFormFeatures.end();
- ++formFeature, ++commandImage
- )
- {
- m_pToolbar->SetItemImage( *formFeature, *commandImage );
- }
-
- // parts of our layout is dependent on the size of our icons
- Resize();
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::implSetImageSize( ImageSize _eSize )
- {
- if ( _eSize != m_eImageSize )
- {
- m_eImageSize = _eSize;
- implUpdateImages();
- }
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::SetImageSize( ImageSize _eSize )
- {
- implSetImageSize( _eSize );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::ShowFunctionGroup( FunctionGroup _eGroup, bool _bShow )
- {
- const sal_uInt16* pGroupIds = NULL;
-
- switch ( _eGroup )
- {
- case ePosition:
- {
- static const sal_uInt16 aPositionIds[] = {
- LID_RECORD_LABEL, FormFeature::MoveAbsolute, LID_RECORD_FILLER, FormFeature::TotalRecords, 0
- };
- pGroupIds = aPositionIds;
- }
- break;
- case eNavigation:
- {
- static const sal_uInt16 aNavigationIds[] = {
- FormFeature::MoveToFirst, FormFeature::MoveToPrevious, FormFeature::MoveToNext, FormFeature::MoveToLast, FormFeature::MoveToInsertRow, 0
- };
- pGroupIds = aNavigationIds;
- }
- break;
- case eRecordActions:
- {
- static const sal_uInt16 aActionIds[] = {
- FormFeature::SaveRecordChanges, FormFeature::UndoRecordChanges, FormFeature::DeleteRecord, FormFeature::ReloadForm, FormFeature::RefreshCurrentControl, 0
- };
- pGroupIds = aActionIds;
- }
- break;
- case eFilterSort:
- {
- static const sal_uInt16 aFilterSortIds[] = {
- FormFeature::SortAscending, FormFeature::SortDescending, FormFeature::InteractiveSort, FormFeature::AutoFilter, FormFeature::InteractiveFilter, FormFeature::ToggleApplyFilter, FormFeature::RemoveFilterAndSort, 0
- };
- pGroupIds = aFilterSortIds;
- }
- break;
- default:
- OSL_FAIL( "NavigationToolBar::ShowFunctionGroup: invalid group id!" );
- }
-
- if ( pGroupIds )
- while ( *pGroupIds )
- m_pToolbar->ShowItem( *pGroupIds++, _bShow );
- }
-
- //---------------------------------------------------------------------
- bool NavigationToolBar::IsFunctionGroupVisible( FunctionGroup _eGroup )
- {
- sal_uInt16 nIndicatorItem = 0;
- switch ( _eGroup )
- {
- case ePosition : nIndicatorItem = LID_RECORD_LABEL; break;
- case eNavigation : nIndicatorItem = FormFeature::MoveToFirst; break;
- case eRecordActions : nIndicatorItem = FormFeature::SaveRecordChanges; break;
- case eFilterSort : nIndicatorItem = FormFeature::SortAscending; break;
- default:
- OSL_FAIL( "NavigationToolBar::IsFunctionGroupVisible: invalid group id!" );
- }
-
- return m_pToolbar->IsItemVisible( nIndicatorItem );
- }
-
- //------------------------------------------------------------------------------
- void NavigationToolBar::StateChanged( StateChangedType nType )
- {
- Window::StateChanged( nType );
-
- switch ( nType )
- {
- case STATE_CHANGE_ZOOM:
-// m_pToolbar->SetZoom( GetZoom() );
-// forEachItemWindow( setItemWindowZoom, NULL );
- // the ToolBox class is not zoomable at the moment, so
- // we better have no zoom at all instead of only half a zoom ...
- break;
-
- case STATE_CHANGE_CONTROLFONT:
- forEachItemWindow( &NavigationToolBar::setItemControlFont, NULL );
- forEachItemWindow( &NavigationToolBar::adjustItemWindowWidth, NULL );
- break;
-
- case STATE_CHANGE_CONTROLFOREGROUND:
- forEachItemWindow( &NavigationToolBar::setItemControlForeground, NULL );
- break;
-
- case STATE_CHANGE_MIRRORING:
- {
- sal_Bool bIsRTLEnabled( IsRTLEnabled() );
- m_pToolbar->EnableRTL( bIsRTLEnabled );
- forEachItemWindow( &NavigationToolBar::enableItemRTL, &bIsRTLEnabled );
- Resize();
- }
- break;
- }
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::Resize()
- {
- // resize/position the toolbox as a whole
- sal_Int32 nToolbarHeight = m_pToolbar->CalcWindowSizePixel().Height();
-
- sal_Int32 nMyHeight = GetOutputSizePixel().Height();
- m_pToolbar->SetPosSizePixel( Point( 0, ( nMyHeight - nToolbarHeight ) / 2 ),
- Size( GetSizePixel().Width(), nToolbarHeight ) );
-
- Window::Resize();
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::SetControlBackground()
- {
- Window::SetControlBackground();
- m_pToolbar->SetControlBackground();
- forEachItemWindow( &NavigationToolBar::setItemBackground, NULL );
-
- implUpdateImages();
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::SetControlBackground( const Color& _rColor )
- {
- Window::SetControlBackground( _rColor );
- m_pToolbar->SetControlBackground( _rColor );
- forEachItemWindow( &NavigationToolBar::setItemBackground, &_rColor );
-
- implUpdateImages();
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::SetTextLineColor( )
- {
- Window::SetTextLineColor( );
- m_pToolbar->SetTextLineColor( );
- forEachItemWindow( &NavigationToolBar::setTextLineColor, NULL );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::SetTextLineColor( const Color& _rColor )
- {
- Window::SetTextLineColor( _rColor );
- m_pToolbar->SetTextLineColor( _rColor );
- forEachItemWindow( &NavigationToolBar::setTextLineColor, &_rColor );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::forEachItemWindow( ItemWindowHandler _handler, const void* _pParam )
- {
- for ( sal_uInt16 item = 0; item < m_pToolbar->GetItemCount(); ++item )
- {
- sal_uInt16 nItemId = m_pToolbar->GetItemId( item );
- Window* pItemWindow = m_pToolbar->GetItemWindow( nItemId );
- if ( pItemWindow )
- (this->*_handler)( nItemId, pItemWindow, _pParam );
- }
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::setItemBackground( sal_uInt16 /* _nItemId */, Window* _pItemWindow, const void* _pColor ) const
- {
- if ( _pColor )
- _pItemWindow->SetControlBackground( *static_cast< const Color* >( _pColor ) );
- else
- _pItemWindow->SetControlBackground();
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::setTextLineColor( sal_uInt16 /* _nItemId */, Window* _pItemWindow, const void* _pColor ) const
- {
- if ( _pColor )
- _pItemWindow->SetTextLineColor( *static_cast< const Color* >( _pColor ) );
- else
- _pItemWindow->SetTextLineColor();
- }
-#if 0
- //---------------------------------------------------------------------
- void NavigationToolBar::setItemWindowZoom( sal_uInt16 /* _nItemId */, Window* _pItemWindow, const void* /* _pParam */ ) const
- {
- _pItemWindow->SetZoom( GetZoom() );
- _pItemWindow->SetZoomedPointFont( IsControlFont() ? GetControlFont() : GetPointFont() );
- }
-#endif
- //---------------------------------------------------------------------
- void NavigationToolBar::setItemControlFont( sal_uInt16 /* _nItemId */, Window* _pItemWindow, const void* /* _pParam */ ) const
- {
- if ( IsControlFont() )
- _pItemWindow->SetControlFont( GetControlFont() );
- else
- _pItemWindow->SetControlFont( );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::setItemControlForeground( sal_uInt16 /* _nItemId */, Window* _pItemWindow, const void* /* _pParam */ ) const
- {
- if ( IsControlForeground() )
- _pItemWindow->SetControlForeground( GetControlForeground() );
- else
- _pItemWindow->SetControlForeground( );
- _pItemWindow->SetTextColor( GetTextColor() );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::adjustItemWindowWidth( sal_uInt16 _nItemId, Window* _pItemWindow, const void* /* _pParam */ ) const
- {
- String sItemText;
- switch ( _nItemId )
- {
- case LID_RECORD_LABEL:
- sItemText = getLabelString( RID_STR_LABEL_RECORD );
- break;
-
- case LID_RECORD_FILLER:
- sItemText = getLabelString( RID_STR_LABEL_OF );
- break;
-
- case FormFeature::MoveAbsolute:
- sItemText = String::CreateFromAscii( "12345678" );
- break;
-
- case FormFeature::TotalRecords:
- sItemText = String::CreateFromAscii( "123456" );
- break;
- }
-
- Size aSize( _pItemWindow->GetTextWidth( sItemText ), /* _pItemWindow->GetSizePixel( ).Height() */ _pItemWindow->GetTextHeight() + 4 );
- aSize.Width() += 6;
- _pItemWindow->SetSizePixel( aSize );
-
- m_pToolbar->SetItemWindow( _nItemId, _pItemWindow );
- }
-
- //---------------------------------------------------------------------
- void NavigationToolBar::enableItemRTL( sal_uInt16 /*_nItemId*/, Window* _pItemWindow, const void* _pIsRTLEnabled ) const
- {
- _pItemWindow->EnableRTL( *static_cast< const sal_Bool* >( _pIsRTLEnabled ) );
- }
-
- //=====================================================================
- //= RecordPositionInput
- //=====================================================================
- //---------------------------------------------------------------------
- RecordPositionInput::RecordPositionInput( Window* _pParent )
- :NumericField( _pParent, WB_BORDER | WB_VCENTER )
- ,m_pDispatcher( NULL )
- {
- SetMin( 1 );
- SetFirst( 1 );
- SetSpinSize( 1 );
- SetDecimalDigits( 0 );
- SetStrictFormat( sal_True );
- SetBorderStyle( WINDOW_BORDER_MONO );
- }
-
- //---------------------------------------------------------------------
- RecordPositionInput::~RecordPositionInput()
- {
- }
-
- //---------------------------------------------------------------------
- void RecordPositionInput::setDispatcher( const IFeatureDispatcher* _pDispatcher )
- {
- m_pDispatcher = _pDispatcher;
- }
-
- //---------------------------------------------------------------------
- void RecordPositionInput::FirePosition( sal_Bool _bForce )
- {
- if ( _bForce || ( GetText() != GetSavedValue() ) )
- {
- sal_Int64 nRecord = GetValue();
- if ( nRecord < GetMin() || nRecord > GetMax() )
- return;
-
- if ( m_pDispatcher )
- m_pDispatcher->dispatchWithArgument( FormFeature::MoveAbsolute, "Position", makeAny( (sal_Int32)nRecord ) );
-
- SaveValue();
- }
- }
-
- //---------------------------------------------------------------------
- void RecordPositionInput::LoseFocus()
- {
- FirePosition( sal_False );
- }
-
- //---------------------------------------------------------------------
- void RecordPositionInput::KeyInput( const KeyEvent& rKeyEvent )
- {
- if( rKeyEvent.GetKeyCode() == KEY_RETURN && GetText().Len() )
- FirePosition( sal_True );
- else
- NumericField::KeyInput( rKeyEvent );
- }
-
-
-//.........................................................................
-} // namespace frm
-//.........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */