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