--- a/filebrowser/src/FBToolbar.cpp Thu Aug 19 09:55:38 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,369 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-// INCLUDE FILES
-#include "FBToolbar.h"
-
-#include <aknappui.h>
-#include <akntoolbar.h>
-#include <AknsUtils.h>
-#include <aknbutton.h>
-#include <akntouchpane.h>
-#include <gulicon.h>
-#include <eikapp.h>
-#include <StringLoader.h>
-#include <data_caging_path_literals.hrh>
-#include <layoutmetadata.cdl.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <filebrowser.rsg>
-#include <AknInfoPopupNoteController.h>
-
-#include "FB.hrh"
-#include "FBDocument.h"
-#include "FBModel.h"
-#include "FBFileUtils.h"
-#include "FBFileListContainer.h"
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CFileBrowserToolbar::NewL(const TRect& aRect)
-// EPOC two-phased constructor
-// ---------------------------------------------------------
-//
-CFileBrowserToolbar* CFileBrowserToolbar::NewL(/* CAknView& aView*/ )
- {
- CFileBrowserToolbar* self = CFileBrowserToolbar::NewLC();
- CleanupStack::Pop(self);
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileBrowserToolbar::NewLC()
-// Creates and leaves on failure.
-// -----------------------------------------------------------------------------
-//
-CFileBrowserToolbar* CFileBrowserToolbar::NewLC()
- {
- CFileBrowserToolbar* self = new ( ELeave )CFileBrowserToolbar();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileBrowserToolbar::~CFileBrowserToolbar()
-// removes the toolbar items when it leaves Editor/viewer plugin.
-// -----------------------------------------------------------------------------
-//
-CFileBrowserToolbar::~CFileBrowserToolbar()
- {
- delete iInfoPopup;
- if ( AknLayoutUtils::PenEnabled() )
- {
- if ( iViewerToolbar )
- {
- iViewerToolbar->SetToolbarVisibility( EFalse );
- TRAP_IGNORE( iViewerToolbar->DisableToolbarL(ETrue) );
- }
- }
-
- if ( iViewerToolbar )
- {
- iViewerToolbar->HideItem( EFileBrowserCmdFileBack, ETrue, EFalse );
- iViewerToolbar->HideItem( EFileBrowserCmdFileSearch, ETrue, EFalse );
- iViewerToolbar->HideItem( EFileBrowserCmdEditSelect, ETrue, EFalse );
- }
- }
-// -----------------------------------------------------------------------------
-// CFileBrowserToolbar::CFileBrowserToolbar()
-// C++ construct function add items the toolbar.
-// -----------------------------------------------------------------------------
-//
-CFileBrowserToolbar::CFileBrowserToolbar() :
- iFirstSelectionIndex( KErrNotFound ),
- iLastSelectionIndex( KErrNotFound )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileBrowserToolbar::ConstructL()
-// C++ construct function add items the toolbar.
-// -----------------------------------------------------------------------------
-//
-void CFileBrowserToolbar::ConstructL()
- {
- CAknAppUi* appUi = (CAknAppUi*)CEikonEnv::Static()->EikAppUi();
- iModel = static_cast<CFileBrowserDocument*>(appUi->Document())->Model();
-
- iViewerToolbar = appUi->CurrentFixedToolbar();
- iSelectbutton = static_cast<CAknButton*>( iViewerToolbar->ControlOrNull( EFileBrowserCmdEditSelect ) );
-
- if ( iViewerToolbar )
- {
- iShown = ETrue;
- iViewerToolbar->SetObserver( this );
- iViewerToolbar->SetToolbarObserver( this );
- iViewerToolbar->SetWithSliding( ETrue );
- iViewerToolbar->SetCloseOnAllCommands( EFalse );
- iViewerToolbar->SetFocusing( EFalse );
- }
- iInfoPopup = CAknInfoPopupNoteController::NewL();
- iInfoPopup->SetTimePopupInView(5000);
- iInfoPopup->SetTimeDelayBeforeShow(500);
- }
-
-// ---------------------------------------------------------------------------
-// CFileBrowserToolbar::ResetState
-// Updates the toolbar
-// ---------------------------------------------------------------------------
-//
-void CFileBrowserToolbar::ResetState()
- {
- if ( AknLayoutUtils::PenEnabled() )
- {
- iSelectbutton->SetCurrentState( 0, ETrue );
- iFirstSelectionIndex = KErrNotFound;
- iLastSelectionIndex = KErrNotFound;
- }
- if ( iInfoPopup )
- {
- iInfoPopup->HideInfoPopupNote();
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileBrowserToolbar::DynInitToolbarL
-// Initialise before the display of the toolbar
-// ---------------------------------------------------------------------------
-//
-void CFileBrowserToolbar::DynInitToolbarL( TInt /*aResourceId*/, CAknToolbar* /*aToolbar*/ )
- {
- ResetState();
- iViewerToolbar->SetFocusing(EFalse);
- }
-
-// ---------------------------------------------------------------------------
-// CFileBrowserToolbar::ShowToolbar
-// Shows the toolbar
-// ---------------------------------------------------------------------------
-//
-void CFileBrowserToolbar::ShowToolbarL()
- {
- if(AknLayoutUtils::PenEnabled() )
- {
- TRAP_IGNORE( iViewerToolbar->DisableToolbarL(EFalse) );
- iViewerToolbar->SetToolbarVisibility(ETrue);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileBrowserToolbar::ShowToolbar
-// Hides the Toolbar
-// ---------------------------------------------------------------------------
-//
-void CFileBrowserToolbar::HideToolbarL()
- {
- // Undim the toolbar if dimmed
- if(AknLayoutUtils::PenEnabled() )
- {
- TRAP_IGNORE( iViewerToolbar->DisableToolbarL(ETrue) );
- iViewerToolbar->SetToolbarVisibility(EFalse);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileBrowserToolbar::OfferToolbarEventL
-// Handling toolbar key events
-// ---------------------------------------------------------------------------
-//
-void CFileBrowserToolbar::OfferToolbarEventL( TInt aCommand )
- {
- switch ( aCommand )
- {
- case EFileBrowserCmdFileBack:
- {
- iModel->FileUtils()->MoveUpOneLevelL();
- break;
- }
- case EFileBrowserCmdFileSearch:
- {
- TBool emptyListBox = iModel->FileListContainer()->ListBoxNumberOfVisibleItems() == 0;
- TBool searchFieldEnabled = iModel->FileListContainer()->IsSearchFieldEnabled();
- if ( !emptyListBox && !searchFieldEnabled )
- {
- iModel->FileListContainer()->EnableSearchFieldL();
- }
- else if ( searchFieldEnabled )
- {
- iModel->FileListContainer()->DisableSearchFieldL();
- }
- break;
- }
- case EFileBrowserCmdEditSelect:
- {
- TBool emptyListBox = iModel->FileListContainer()->ListBoxNumberOfVisibleItems() == 0;
- TBool driveListActive = iModel->FileUtils()->IsDriveListViewActive();
- TBool allSelected = iModel->FileListContainer()->ListBox()->SelectionIndexes()->Count() == iModel->FileListContainer()->ListBox()->Model()->NumberOfItems();
- TBool noneSelected = iModel->FileListContainer()->ListBox()->SelectionIndexes()->Count() == 0;
-
- if ( iViewerToolbar->EventModifiers() == CAknToolbar::ELongPressEnded )
- {
- // handle long tap event
- iFirstSelectionIndex = KErrNotFound;
- iLastSelectionIndex = KErrNotFound;
- iSelectbutton->SetCurrentState( 0, ETrue );
-
- if ( !( driveListActive || allSelected || emptyListBox ) )
- {
- AknSelectionService::HandleMarkableListProcessCommandL( EAknMarkAll, iModel->FileListContainer()->ListBox() );
- }
- else if ( !( driveListActive || noneSelected || emptyListBox ) )
- {
- AknSelectionService::HandleMarkableListProcessCommandL( EAknUnmarkAll, iModel->FileListContainer()->ListBox() );
- }
- }
- else if ( iViewerToolbar->EventModifiers() != CAknToolbar::ELongPress )
- {
- // handle single tap event
- TBool currentSelected = iModel->FileListContainer()->ListBox()->View()->ItemIsSelected(iModel->FileListContainer()->ListBox()->View()->CurrentItemIndex());
-
- if ( !( driveListActive || emptyListBox ) )
- {
- if ( noneSelected && iFirstSelectionIndex == KErrNotFound )
- {
- iLastSelectionIndex = KErrNotFound;
- }
-
- if ( iFirstSelectionIndex == KErrNotFound )
- {
- // first item selected
- iFirstSelectionIndex = iModel->FileListContainer()->ListBox()->CurrentItemIndex();
- if ( currentSelected )
- {
- AknSelectionService::HandleMarkableListProcessCommandL( EAknCmdUnmark, iModel->FileListContainer()->ListBox() );
- }
- else
- {
- AknSelectionService::HandleMarkableListProcessCommandL( EAknCmdMark, iModel->FileListContainer()->ListBox() );
- }
- // Toolbar button updates its state (icon)
- iInfoPopup->SetTextL( _L("Select the last item.") );
- iInfoPopup->ShowInfoPopupNote();
- }
- else
- {
- iInfoPopup->HideInfoPopupNote();
- iLastSelectionIndex = iModel->FileListContainer()->ListBox()->CurrentItemIndex();
- if ( iLastSelectionIndex == iFirstSelectionIndex )
- {
- // the same item selected second time
- iFirstSelectionIndex = KErrNotFound;
- iLastSelectionIndex = KErrNotFound;
- if ( currentSelected )
- {
- AknSelectionService::HandleMarkableListProcessCommandL( EAknCmdUnmark, iModel->FileListContainer()->ListBox() );
- }
- else
- {
- AknSelectionService::HandleMarkableListProcessCommandL( EAknCmdMark, iModel->FileListContainer()->ListBox() );
- }
- // Toolbar button updates its state (icon)
- }
- else
- {
- // the last item selected, toggle the item selection between first and last
- TInt skipFirstToggle(1);
- TInt skipLastToggle(0);
- TInt finalFocus = iLastSelectionIndex;
- if ( iFirstSelectionIndex > iLastSelectionIndex )
- {
- TInt tmp = iFirstSelectionIndex;
- iFirstSelectionIndex = iLastSelectionIndex;
- iLastSelectionIndex = tmp;
- skipFirstToggle = 0;
- skipLastToggle = 1;
- }
- for ( TInt i = iFirstSelectionIndex+skipFirstToggle; i <= iLastSelectionIndex-skipLastToggle ; i++ )
- {
- iModel->FileListContainer()->ListBox()->SetCurrentItemIndexAndDraw( i );
- TBool itemSelected = iModel->FileListContainer()->ListBox()->View()->ItemIsSelected(iModel->FileListContainer()->ListBox()->View()->CurrentItemIndex());
- if ( itemSelected )
- {
- TRAP_IGNORE( AknSelectionService::HandleMarkableListProcessCommandL( EAknCmdUnmark, iModel->FileListContainer()->ListBox() ) );
- }
- else
- {
- TRAP_IGNORE( AknSelectionService::HandleMarkableListProcessCommandL( EAknCmdMark, iModel->FileListContainer()->ListBox() ) );
- }
- }
- iFirstSelectionIndex = KErrNotFound;
- iLastSelectionIndex = KErrNotFound;
- iModel->FileListContainer()->ListBox()->SetCurrentItemIndexAndDraw( finalFocus );
- // Toolbar button updates its state (icon)
- }
- }
- }
- else
- {
- iSelectbutton->SetCurrentState( 0, ETrue );
- }
- }
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CFileBrowserToolbar::HandleControlEventL
-// Handles toolbar event cannot contain any code
-// ---------------------------------------------------------------------------
-//
-void CFileBrowserToolbar::HandleControlEventL( CCoeControl* /*aControl*/,
- TCoeEvent /*aEventType*/ )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CFileBrowserToolbar::IsShown
-// Returns whether the toolbar is shown or not
-// ---------------------------------------------------------------------------
-//
-TBool CFileBrowserToolbar::IsShown()
- {
- return iShown;
- }
-
-// ---------------------------------------------------------------------------
-// CFileBrowserToolbar::Rect
-//
-// ---------------------------------------------------------------------------
-//
-const TRect CFileBrowserToolbar::Rect() const
- {
- return iViewerToolbar->Rect();
- }
-
-// End of File
-