?? simplegridgamesgrid.cpp
字號:
/**
*
* @brief Definition of CSimpleGridGamesGrid
*
* Copyright (c) EMCC Software Ltd 2003
* @version 1.0
*/
// INCLUDE FILES
// Class include
#include "SimpleGridGamesGrid.h"
// System includes
#include <akniconarray.h> // CAknIconArray
#include <aknlists.h> // AknListBoxLayouts
#include <barsread.h> // TResourceReader
#include <simplegrid.mbg> // contains icon enumeration
#include <stringloader.h> // StringLoader
// CONSTANTS
const TInt KNumberOfIcons(7);
const TInt KGraphicsHeight = 50;
const TInt KTextColor = 215;
// ================= MEMBER FUNCTIONS =======================
/**
* Symbian OS 2nd phase constructor. Constructs the grd from aGridResource
* sets up the icons container in the file in aIconFileResource and draws itself.
* @param aGridResource The GRID resource
* @param aIconFileResource The resource defining the icon file name
*/
void CSimpleGridGamesGrid::ConstructL(TInt aGridResource, TInt aIconFileResource)
{
// Construct the grid from resource
TResourceReader reader;
CEikonEnv::Static()->CreateResourceReaderLC(reader, aGridResource);
ConstructFromResourceL(reader);
CleanupStack::PopAndDestroy(); // reader
// Set up the icons
SetupGridIconsL (aIconFileResource);
// Draw the grid
SizeChanged();
}
/**
*
* Sets up the grid's icons, which are contained in a file.
*
* @param aIconFileResource the file name resource
*/
void CSimpleGridGamesGrid::SetupGridIconsL(TInt aIconFileResource)
{
// Get the name of the file containing the icons
HBufC* iconFileName;
iconFileName = StringLoader::LoadLC(aIconFileResource); // Pushes iconFileName onto the Cleanup Stack.
// Create an array of icons, reading them from the file
CArrayPtr<CGulIcon>* icons = new(ELeave) CAknIconArray(KNumberOfIcons);
CleanupStack::PushL(icons);
icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmSimplegridSnap, EMbmSimplegridCard_mask));
icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmSimplegridGolf, EMbmSimplegridCard_mask));
icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmSimplegridClock, EMbmSimplegridCard_mask));
icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmSimplegridAces, EMbmSimplegridCard_mask));
icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmSimplegridHearts, EMbmSimplegridCard_mask));
icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmSimplegridRummy, EMbmSimplegridCard_mask));
icons->AppendL(iEikonEnv->CreateIconL(*iconFileName, EMbmSimplegridPoker, EMbmSimplegridCard_mask));
CleanupStack::Pop(icons);
CleanupStack::PopAndDestroy(iconFileName);
ItemDrawer()->FormattedCellData()->SetIconArray(icons); // passing ownership of icons
}
/**
*
* Sets up colors, and subcells for the grid.
*
*/
void CSimpleGridGamesGrid::SetupGrid()
{
// Setup text foreground and background colours to default
AknListBoxLayouts::SetupStandardGrid(*this);
// Get local copies of data we will need
CFormattedCellListBoxItemDrawer* itemDrawer = this->ItemDrawer();
TInt cellWidth = ColumnWidth();
TInt cellHeight = ItemHeight();
// Set up graphics subcells
AknListBoxLayouts::SetupFormGfxCell(*this, //the grid
itemDrawer, // the grid's drawer
0, // index of the graphic within item strings
0, // left position
0, // top position
0, // right - unused
0, // bottom - unused
cellWidth, // width of graphic
KGraphicsHeight, // height of graphic
TPoint (0, 0), // start position
TPoint (cellWidth , KGraphicsHeight)); // end position
// Set up text subcells
const CFont* KFont = LatinBold12();
TInt baseline = cellHeight - KFont->DescentInPixels() - 1;
AknListBoxLayouts::SetupFormTextCell(*this, // the grid
itemDrawer, // the grid's drawer
1, // index of text within item strings
KFont, // the font for the text
KTextColor, // the color of the text - N.B. although commented out in the header file, this is still used!
0, // left margin
0, // right margin - unused
baseline, // Baseline
cellWidth, // text width (would need to take margin into account if set, i.e. - lm)
CGraphicsContext::ECenter, // Alignment
TPoint (0, KGraphicsHeight), // start position
TPoint(cellWidth, cellHeight)); // end position
}
/**
*
* Called by framework when the view size is changed and by ConstructL to intialise the grid.
*
*/
void CSimpleGridGamesGrid::SizeChanged()
{
CAknGrid::SizeChanged();
SetupGrid();
}
// End of File
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -