⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filelistappui.cpp

📁 基于SYMBIAN 列表的开发,很不错,欢迎下载学习!!!支持一下本站
💻 CPP
字号:
/*
 * ============================================================================
 *  Name       : CFileListAppUi from FileListAppUi.cpp
 *  Part of    : FileList
 *  Created    : 04/11/2006 by Forum Nokia
 *  Description:
 *    Implementation of the UI class of the application.
 *  Version    : 2.1.0
 * ============================================================================
 */

// INCLUDE FILES
#include "FileListAppUi.h"
#include "FileListContainer.h"
#include <FileList.rsg>
#include "filelist.hrh"
#include <avkon.hrh>
#include <eikmenup.h>

#define KEnableSkinFlag 0x1000
#define KLayoutAwareFlag 0x08

// ================= MEMBER FUNCTIONS =======================


// ----------------------------------------------------------
// CFileListAppUi::ConstructL()
// KEnableSkinFlag and KLayoutAwareFlag (passed to the constructor of
// the base class) are manual definitions for EAknEnableSkin and
// ELayoutAwareAppFlag flags.
// EAknEnableSkin is needed from S60 2nd Edition onwards to support skins.
// ELayoutAwareAppFlag is only needed in S60 2nd Edition, Feature Pack 3.
// If the flag is not defined, the application is run in 176x208 compatibility
// mode in that release. By using the manual definitions it is possible
// for an application built on an older SDK to show correctly on the GUI
// of S60 2nd Edition devices (including 2nd Edition, Feature Pack 3).
// This approach could be considered if there are no other reasons
// to create different builds for different releases of S60 1st and 2nd Edition.
// ----------------------------------------------------------
//
void CFileListAppUi::ConstructL()
    {
    // CodeScanner gives a false positive on this:
    // No leaving function is called before BaseConstructL.
    #ifdef __SERIES60_3X__
      #ifdef __SERIES60_30__
        BaseConstructL(EAknEnableSkin);
      #else
        BaseConstructL(EAknEnableSkin | EAknEnableMSK);   // CSI: 9 #
      #endif
    #else
      // Manual definitions for EAknEnableSkin and ELayoutAwareAppFlag flags.
      BaseConstructL(KEnableSkinFlag | KLayoutAwareFlag); // CSI: 9 #
    #endif

    iAppContainer = new (ELeave) CFileListContainer;
    iAppContainer->SetMopParent(this);
    iAppContainer->ConstructL( ClientRect() );
    AddToStackL( iAppContainer );
    }

// ----------------------------------------------------
// CFileListAppUi::~CFileListAppUi()
// Destructor
// Frees reserved resources
// ----------------------------------------------------
//
CFileListAppUi::~CFileListAppUi()
    {
    if (iAppContainer)
        {
        RemoveFromStack( iAppContainer );
        delete iAppContainer;
        }
   }

// ------------------------------------------------------------------------------
// CFileListAppUi::::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
//  This function is called by the EIKON framework just before it displays
//  a menu pane. Its default implementation is empty, and by overriding it,
//  the application can set the state of menu items dynamically according
//  to the state of application data.
// ------------------------------------------------------------------------------
//
void CFileListAppUi::DynInitMenuPaneL(
    TInt aResourceId,CEikMenuPane* aMenuPane)
    {
      if (aResourceId == R_FILELIST_MENU)
      {
        if(iAppContainer->iAppEngine->IsDirListEmpty())
        {
        aMenuPane->SetItemDimmed(EFileListCmdAppTest1, ETrue);
        }
      }
    }

// ----------------------------------------------------
// CFileListAppUi::HandleKeyEventL(
//     const TKeyEvent& aKeyEvent,TEventCode /*aType*/)
// Handles keyevents. In this application keyevents are
// caught in CFileListContainer::OfferKeyEventL()
// ----------------------------------------------------
//
TKeyResponse CFileListAppUi::HandleKeyEventL(
    const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/)
    {
    return EKeyWasNotConsumed;
    }

// ----------------------------------------------------
// CFileListAppUi::HandleCommandL(TInt aCommand)
// Handles menu commands
// ----------------------------------------------------
//
void CFileListAppUi::HandleCommandL(TInt aCommand)
    {
    switch ( aCommand )
        {
        case EAknSoftkeyBack:
        case EAknSoftkeyExit:
        case EEikCmdExit:
            {
            Exit();
            break;
            }
        case EFileListCmdAppTest1:
            {
            iAppContainer->SetFileListL(EFileListDirNoChange, EFileListToggle);
            break;
            }
        case EFileListCmdAppTest2:
            {
            iAppContainer->SetFileListL(EFileListSounds, EFileListSizeDateNoChange);
            break;
            }
        case EFileListCmdAppTest3:
            {
            iAppContainer->SetFileListL(EFileListPictures, EFileListSizeDateNoChange);
            break;
            }
        case EFileListCmdAppTest4:
            {
            iAppContainer->SetFileListL(EFileListVideos, EFileListSizeDateNoChange);
            break;
            }
        case EAknSoftkeySelect:
            {
            iAppContainer->LaunchCurrentL();
            break;
            }
        default:
            break;
        }
    }

// ---------------------------------------------------------
// CFileListAppUi::HandleStatusPaneSizeChange()
// Called by framework when resource is changed.
// ---------------------------------------------------------
//
void CFileListAppUi::HandleStatusPaneSizeChange()
  {
  CAknAppUi::HandleStatusPaneSizeChange(); //call to upper class
  iAppContainer->SetRect( ClientRect());
  }

// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -