diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/akngmsstylegrid.h --- a/epoc32/include/mw/akngmsstylegrid.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/akngmsstylegrid.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,230 @@ -akngmsstylegrid.h +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Contains the View and the Component of the photoalbum picture grid +* component. +* +* +*/ + + +#ifndef __CAknGMSStyleGrid_h +#define __CAknGMSStyleGrid_h + +#include +#include +#include + +class CGulIcon; + +// ============================================================================ +// CAknGMSStyleGridView +// ============================================================================ + +/** + the view for the grid component. +*/ +class CAknGMSStyleGridView : public CAknGridView + { +public: // from CAknGridView + IMPORT_C CAknGMSStyleGridView(); +public: // from CAknGridView + /** + draws the hor. and vert. lines. + */ + IMPORT_C void Draw(const TRect* aClipRect = NULL) const; +public: // new methods + /** + sets the rectangle for the drawing operations. + This method is called when the grid is constructed. + */ + IMPORT_C void SetupLayout(const TRect& aRect, TBool aIsPopup = EFalse, TInt aNum = -1); +private: // overridden from CListBoxView + IMPORT_C virtual TAny* Reserved_1(); + +private: // new methods + /** + Calculate maximum number of horizontal lines + */ + TInt MaxNumOfHorLines() const; + + /** + Calculate maximum number of vertical lines + */ + TInt MaxNumOfVerLines() const; + +private: // data + TAknLayoutRect iHorLine[5]; + TAknLayoutRect iVerLine[3]; + const TRect* iRect; + }; + + +// ============================================================================ +// CAknGMSStyleGrid +// ============================================================================ +/** + implements the grid for the PhotoAlbum + A markable grid_large_graphic_pane, with 2 columns. The cell displays + 80x32 bitmaps. +*/ + +class CAknGMSStyleGrid : public CAknSelectionGridTypedef + { +public: + /** + * Creates a gms grid + * @param aParent A parent used to find a window for the grid. + * @param aIsPopup Whether a popup layout or main pane layout is used + */ + IMPORT_C static CAknGMSStyleGrid* NewL(const CCoeControl* aParent, TBool aIsPopup = EFalse); + /** + do not use this, use NewL + aIsPopup = EFalse is default. + */ + IMPORT_C CAknGMSStyleGrid(); + /** + * @param aIsPopup Whether a popup layout is used or not + */ + IMPORT_C CAknGMSStyleGrid(TBool aIsPopup); + /** + * 2nd phase of construction. + * @param aParent the parent compound control + * @param aRows desired rows of grid + * @param aCols desired cols of grid + */ + IMPORT_C void ConstructL(const CCoeControl* aParent, TInt aRows=4, TInt aCols=2); + + /** + the destructor + */ + IMPORT_C ~CAknGMSStyleGrid(); + + /** + * Sets the layout of the grid view + */ + IMPORT_C void SetupLayout(); + + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +public: // from CAknGrid + /** + * layouts and repaints the grid + */ + IMPORT_C void SizeChanged(); + + /** + * Decides size of the grid for dialogs. + */ + IMPORT_C TSize MinimumSize(); + + /** + * Offers key events to parent class. + * @param aKeyEvent kind of key event + * @param aType key typed + */ + IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + /** + * Defines a grid cell size + * @return size of a grid cell + */ + static TSize KCELL_SIZE(); + + /** + * Redraw the grid. + * @param aRect the rectangle to draw. + */ + IMPORT_C void Draw(const TRect& aRect) const; + + /** + * Overriden from CAknGrid. Create the grid view for thus grid class. + * @ return the grid view + */ + IMPORT_C CListBoxView* MakeViewClassInstanceL(); + +protected: + /** + * Are we a popup window or main pane window, ETrue = popup window. + */ + TBool iIsPopup; + +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); + +private: + /** + * a helper method for logging calls + */ + static void _LOG(const TDesC& aText); + +private: // data + +}; + +/** + * The window part of a gms grid. + */ +class CAknGMSPopupGrid : public CAknPopupList + { +public: + /** + * Creates a window for the grid. + * @param aListBox The grid used. + * @param aCbaResource The softkeys used. + * @param aType The layout used + */ + IMPORT_C static CAknGMSPopupGrid* NewL(CEikListBox* aListBox, TInt aCbaResource, AknPopupLayouts::TAknPopupLayouts aType=AknPopupLayouts::EMenuWindow); +public: + /** + * Setup the whole window layout; window position, grid and heading position, shadow for the window. + * @param aLayoutId A choice of layout -- not used by the implementation. + */ + IMPORT_C void SetupWindowLayout(AknPopupLayouts::TAknPopupLayouts); + /** + * Calculate grid window position + */ + IMPORT_C static void CalcPopupGridLargeGraphicWindow(TAknPopupWindowLayoutDef &aDef, TRect aClientRect, TInt aNumberOfLinesInListBox); + /** + * Calculate grid and heading position + */ + IMPORT_C static void SetupPopupGridLargeGraphicWindow(TAknPopupWindowLayoutDef &aDef, + TInt aNumberOfLinesInListBox, + TBool aHeading); + /** + * Setup shadow for the window. + */ + IMPORT_C static void PopupGridLargeGraphicGraphics(TAknPopupWindowLayoutDef &aDef); + + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); + }; + +#endif // __CAknGMSStyleGrid_h