aknlists.h

Go to the documentation of this file.
00001 /*
00002 * ============================================================================
00003 *  Name     : AknLists.h
00004 *  Part of  : Avkon
00005 *
00006 *  Description:
00007 *  Version:
00008 *
00009 *  Copyright © 2002 Nokia Corporation.
00010 *  This material, including documentation and any related 
00011 *  computer programs, is protected by copyright controlled by 
00012 *  Nokia Corporation. All rights are reserved. Copying, 
00013 *  including reproducing, storing,  adapting or translating, any 
00014 *  or all of this material requires the prior written consent of 
00015 *  Nokia Corporation. This material also contains confidential 
00016 *  information which may not be disclosed to others without the 
00017 *  prior written consent of Nokia Corporation.
00018 */
00019 #ifndef __AKNLISTS_H__
00020 #define __AKNLISTS_H__
00021 
00022 #include <eikclb.h>
00023 #include <eikfrlb.h>
00024 #include <eikslb.h>
00025 #include <AknGrid.h>
00026 #include <aknutils.h>
00027 
00028 #include <aknpanic.h>
00029 
00030 
00031 class TAknTextLineLayout;
00032 class MAknsSkinInstance;
00033 class MAknsControlContext;
00034 
00045 //
00046 //
00047 // Helper template definitions.
00048 // (these are before concrete listbox classes because they're needed for inheritance)
00049 //
00050 
00051 
00058 template<class T>
00059 class AknListBoxLinesTemplate : public T
00060     {
00061 public:
00076     IMPORT_C AknListBoxLinesTemplate(TInt aResourceId);
00081     IMPORT_C void SizeChanged();
00086     IMPORT_C void Draw(const TRect& aRect) const;
00091     IMPORT_C TInt CountComponentControls() const;
00096     IMPORT_C CCoeControl* ComponentControl(TInt aIndex) const;
00097 
00098 private:
00099     TInt iSpare0;                           // was iResourceId;
00100     TAknLayoutRect iVertLine1, iVertLine2;  // not used
00101     TAknLayoutRect iHoriLine;               // not used
00102     TBool iResized;
00103     TInt iSpare[2];
00104     };
00105 
00110 template<class T>
00111 class AknPopupListEmpty : public T
00112     {
00116     IMPORT_C virtual void Draw(const TRect &aRect) const;
00117     };
00118 
00119 
00145 class CAknColumnListBox : public CEikColumnListBox
00146     {
00147 public:
00153     IMPORT_C virtual CListBoxView* MakeViewClassInstanceL();
00154     
00158     IMPORT_C virtual void CreateModelL();
00159 
00167     IMPORT_C virtual TInt AdjustRectHeightToWholeNumberOfItems(TRect& aRect) const;
00168     
00173     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00174 private:
00178     IMPORT_C void* ExtensionInterface( TUid aInterface );
00179 private: // listbox use only
00180         IMPORT_C virtual void CEikListBox_Reserved(); 
00181     };
00182 
00183 
00184 //
00185 // These define what features are needed --> you can remove shortcuts from ALL lists by changing these..
00186 // Templates available: AknListBoxLinesTemplate<> AknListBoxShortCutTemplate<>
00187 typedef AknListBoxLinesTemplate<CAknColumnListBox > CEikColumnListBoxTypedef;
00188 typedef AknListBoxLinesTemplate<CEikFormattedCellListBox > CEikFormattedCellListBoxTypedef;
00189 typedef AknListBoxLinesTemplate<CEikSettingsListBox > CEikSettingsListBoxTypedef;
00190 typedef CAknGrid CAknSelectionGridTypedef;
00191 
00192 // Templates available: AknListBoxShortCutTemplate<> AknListBoxLinesTemplate<>
00193 #define AKNCOLUMNLISTBOXNAME(x) AknListBoxLinesTemplate<CAknColumnListBox >(x)
00194 #define AKNDOUBLELISTBOXNAME(x) AknListBoxLinesTemplate<CEikFormattedCellListBox >(x)
00195 #define AKNSETTINGLISTBOXNAME(x) AknListBoxLinesTemplate<CEikSettingsListBox >(x)
00196 
00197 // Templates available: AknListBoxLinesTemplate<>, AknListBoxShortCutTemplate<>
00198 #define AKNCOLUMNLISTBOX AknListBoxLinesTemplate<CAknColumnListBox >
00199 #define AKNFORMATTEDLISTBOX AknListBoxLinesTemplate<CEikFormattedCellListBox >
00200 #define AKNSETTINGSLISTBOX AknListBoxLinesTemplate<CEikSettingsListBox >
00201 #define AKNGRID CAknGrid
00202 
00203 
00204 
00205 
00206 
00207 
00208 
00209 //
00210 //
00211 // Derived listboxes (Use these in applications!)
00212 // These are only for full screen lists -- the Rect() of the list must be ClientRect()
00213 //
00214 //
00215 
00216 
00224 class CAknSingleStyleListBox : public CEikColumnListBoxTypedef
00225     {
00226 public:
00227     IMPORT_C CAknSingleStyleListBox();
00232     IMPORT_C void SizeChanged();
00237     IMPORT_C TSize MinimumSize();
00242     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
00243 private:
00244     void SizeChangedL();
00245     };
00246 
00254 class CAknSingleNumberStyleListBox : public CEikColumnListBoxTypedef
00255     {
00256 public:
00257     IMPORT_C CAknSingleNumberStyleListBox();
00262     IMPORT_C void SizeChanged();
00267     IMPORT_C TSize MinimumSize();
00272     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);   
00273 private:
00274     void SizeChangedL();
00275     };
00276 
00285 class CAknSingleHeadingStyleListBox : public CEikColumnListBoxTypedef
00286     {
00287 public:
00288     IMPORT_C CAknSingleHeadingStyleListBox();
00293     IMPORT_C void SizeChanged();
00298     IMPORT_C TSize MinimumSize();
00303     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00304 
00305 protected:
00310     IMPORT_C virtual void CreateItemDrawerL();
00311     
00316     IMPORT_C virtual CListBoxView* MakeViewClassInstanceL();
00317 private:
00318     void SizeChangedL();
00319     };
00320 
00321 
00329 class CAknSingleGraphicStyleListBox : public CEikColumnListBoxTypedef
00330     {
00331 public: 
00332     IMPORT_C CAknSingleGraphicStyleListBox();
00337     IMPORT_C void SizeChanged();
00342     IMPORT_C TSize MinimumSize();
00347     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00348 private:
00349     void SizeChangedL();
00350     };
00351 
00359 class CAknSingleGraphicHeadingStyleListBox : public CEikColumnListBoxTypedef
00360     {
00361 public:
00362     IMPORT_C CAknSingleGraphicHeadingStyleListBox();
00367     IMPORT_C void SizeChanged();
00372     IMPORT_C TSize MinimumSize();
00377     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);    
00378 protected:
00379     IMPORT_C virtual void CreateItemDrawerL();
00384     IMPORT_C virtual CListBoxView* MakeViewClassInstanceL();
00385 private:
00386     void SizeChangedL();
00387     };
00388 
00396 class CAknSingleNumberHeadingStyleListBox : public CEikColumnListBoxTypedef
00397     {
00398 public:
00399     IMPORT_C CAknSingleNumberHeadingStyleListBox();
00404     IMPORT_C void SizeChanged();
00409     IMPORT_C TSize MinimumSize();
00414     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00415 protected:
00416     IMPORT_C virtual void CreateItemDrawerL();
00421     IMPORT_C virtual CListBoxView* MakeViewClassInstanceL();
00422 private:
00423     void SizeChangedL();
00424     };
00425 
00433 class CAknSingleLargeStyleListBox : public CEikColumnListBoxTypedef
00434     {
00435 public:
00436     IMPORT_C CAknSingleLargeStyleListBox();
00441     IMPORT_C void SizeChanged();
00446     IMPORT_C TSize MinimumSize();
00451     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);   
00452 private:
00453     void SizeChangedL();
00454     };
00455 
00463 class CAknDoubleStyleListBox : public CEikFormattedCellListBoxTypedef
00464     {
00465 public:
00466     IMPORT_C CAknDoubleStyleListBox();
00471     IMPORT_C void SizeChanged();
00476     IMPORT_C TSize MinimumSize();
00481     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00482 private:
00483     void SizeChangedL();
00484     };
00485 
00493 class CAknDoubleStyle2ListBox : public CAknDoubleStyleListBox
00494     {
00495 public:
00500     IMPORT_C void SizeChanged();
00505     IMPORT_C void CreateItemDrawerL();
00510     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00511 private:
00512     void SizeChangedL();
00513     };
00514 
00524 class CAknDoubleNumberStyleListBox : public CEikFormattedCellListBoxTypedef
00525     {
00526 public:
00527     IMPORT_C CAknDoubleNumberStyleListBox();
00532     IMPORT_C void SizeChanged();
00537     IMPORT_C TSize MinimumSize();
00542     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00543 private:
00544     void SizeChangedL();
00545     };
00546 
00551 class CAknDoubleTimeStyleListBox : public CEikFormattedCellListBoxTypedef
00552     {
00553 public:
00554     IMPORT_C CAknDoubleTimeStyleListBox();
00559     IMPORT_C void SizeChanged();
00564     IMPORT_C TSize MinimumSize();
00569     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00570 private:
00571     void SizeChangedL();
00572     };
00573 
00586 class CAknDoubleLargeStyleListBox : public CEikFormattedCellListBoxTypedef
00587     {
00588 public:
00589     IMPORT_C CAknDoubleLargeStyleListBox();
00594     IMPORT_C void SizeChanged();
00599     IMPORT_C TSize MinimumSize();
00604     IMPORT_C virtual void CreateItemDrawerL();
00609     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00610 private:
00611     void SizeChangedL();
00612     };
00613 
00614 
00623 class CAknDoubleGraphicStyleListBox : public CEikFormattedCellListBoxTypedef
00624     {
00625 public:
00626     IMPORT_C CAknDoubleGraphicStyleListBox();
00631     IMPORT_C void SizeChanged();
00636     IMPORT_C TSize MinimumSize();
00641     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00642 private:
00643     void SizeChangedL();
00644     };
00645 
00646 
00655 class CAknDouble2GraphicStyleListBox : public CEikFormattedCellListBoxTypedef
00656     {
00657 public:
00658     IMPORT_C CAknDouble2GraphicStyleListBox();
00663     IMPORT_C void SizeChanged();
00668     IMPORT_C TSize MinimumSize();
00669 
00674     IMPORT_C void CreateItemDrawerL();
00679     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00680 private:
00681     void SizeChangedL();
00682     };
00683 
00684 
00695 class CAknDouble2LargeStyleListBox : public CEikFormattedCellListBoxTypedef
00696     {
00697 public:
00698     IMPORT_C CAknDouble2LargeStyleListBox();
00703     IMPORT_C void SizeChanged();
00708     IMPORT_C TSize MinimumSize();
00713     IMPORT_C virtual void CreateItemDrawerL();
00718     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00719 private:
00720     void SizeChangedL();
00721     };
00722 
00723 
00739 class CAknDouble2GraphicLargeGraphicStyleListBox : public CEikFormattedCellListBoxTypedef
00740     {
00741 public:
00742     IMPORT_C CAknDouble2GraphicLargeGraphicStyleListBox();
00747     IMPORT_C void SizeChanged();
00752     IMPORT_C TSize MinimumSize();
00757     IMPORT_C virtual void CreateItemDrawerL();
00762     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);   
00763 private:
00764     void SizeChangedL();
00765     };
00766 
00767 
00776 class CAknFormDoubleGraphicStyleListBox : public CAknDoubleGraphicStyleListBox
00777     {
00778 public:
00783     IMPORT_C void SizeChanged();
00788     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00789 private:
00790     void SizeChangedL();
00791     };
00792 typedef CAknFormDoubleGraphicStyleListBox CAknSingleBigHeadingGraphicListBox;
00793 
00801 class CAknFormDoubleStyleListBox : public CAknDoubleStyleListBox
00802     {
00803 public:
00808     IMPORT_C void SizeChanged();
00813     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00814 private:
00815     void SizeChangedL();
00816     };
00817 typedef CAknFormDoubleStyleListBox CAknSingleBigHeadingListBox;
00818 
00819 
00830 class CAknSettingStyleListBox : public CEikSettingsListBoxTypedef
00831     {
00832 public:
00833     IMPORT_C CAknSettingStyleListBox();
00838     IMPORT_C void SizeChanged();
00843     IMPORT_C TSize MinimumSize();
00848     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00849 private:
00850     void SizeChangedL();
00851     };
00852 
00863 class CAknSettingNumberStyleListBox : public CEikSettingsListBoxTypedef
00864     {
00865 public:
00866     IMPORT_C CAknSettingNumberStyleListBox();
00871     IMPORT_C void SizeChanged();
00876     IMPORT_C TSize MinimumSize();
00881     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
00882 private:
00883     void SizeChangedL();
00884     };
00885 
00886 
00887 //
00888 // Use the popup styles with CAknPopupList and CAknListQueryDialog
00889 //
00890 
00899 class CAknSinglePopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
00900     {
00901 public:
00906     IMPORT_C void SizeChanged();
00911     IMPORT_C TSize MinimumSize();
00912     protected:
00917     IMPORT_C virtual void CreateItemDrawerL();
00922     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00923 private:
00924     void SizeChangedL();
00925     };
00926 
00935 class CAknSingleGraphicPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
00936     {
00937 public:
00942     IMPORT_C void SizeChanged();
00947     IMPORT_C TSize MinimumSize();
00948     protected:
00953     IMPORT_C virtual void CreateItemDrawerL();
00958     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
00959 private:
00960     void SizeChangedL();
00961     };
00962 
00972 class CAknSingleGraphicBtPopupMenuStyleListBox : public CAknSingleGraphicPopupMenuStyleListBox
00973     {
00974 public:
00979     IMPORT_C virtual void SizeChanged();
00984     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);    
00985     };
00986 
00994 class CAknSingleHeadingPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
00995     {
00996 public:
00997     IMPORT_C CAknSingleHeadingPopupMenuStyleListBox();
01002     IMPORT_C void SizeChanged();
01007     IMPORT_C TSize MinimumSize();
01012     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);    
01013 protected:
01018     IMPORT_C virtual void CreateItemDrawerL();
01019 private:
01020     void SizeChangedL();
01021     };
01022 
01023 
01033 class CAknSingleGraphicHeadingPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01034 
01035     {
01036 public:
01037     IMPORT_C CAknSingleGraphicHeadingPopupMenuStyleListBox();
01042     IMPORT_C void SizeChanged();
01047     IMPORT_C TSize MinimumSize();
01052     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
01053 protected:
01058     IMPORT_C virtual void CreateItemDrawerL();
01059 private:
01060     void SizeChangedL();
01061     };
01062 
01070 class CAknDoublePopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01071     {
01072 public:
01077     IMPORT_C void SizeChanged();
01082     IMPORT_C TSize MinimumSize();
01087     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
01088 protected:
01093     IMPORT_C virtual void CreateItemDrawerL();
01094 private:
01095     void SizeChangedL();
01096     };
01097 
01105 class CAknSinglePopupSubmenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01106     {
01107 public:
01112     IMPORT_C void SizeChanged();
01117     IMPORT_C TSize MinimumSize();
01122     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
01123 private:
01124     void SizeChangedL();
01125     };
01126 
01127 
01137 class CAknDoubleLargeGraphicPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01138     {
01139 public:
01144     IMPORT_C void SizeChanged();
01149     IMPORT_C TSize MinimumSize();
01154     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
01155 protected:
01160     IMPORT_C virtual void CreateItemDrawerL();
01161 private:
01162     void SizeChangedL();
01163     };
01164 
01165 
01173 class CAknDouble2PopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01174     {
01175 public:
01180     IMPORT_C void SizeChanged();
01185     IMPORT_C TSize MinimumSize();
01190     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
01191 protected:
01196     IMPORT_C virtual void CreateItemDrawerL();
01197 private:
01198     void SizeChangedL();
01199     };
01200     
01201     
01210 class CAknSingle2GraphicPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01211     {
01212 public:
01213     IMPORT_C CAknSingle2GraphicPopupMenuStyleListBox();
01218     IMPORT_C void SizeChanged();
01223     IMPORT_C TSize MinimumSize();
01224     protected:
01229     IMPORT_C virtual void CreateItemDrawerL();
01234     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
01235 private:
01236     void SizeChangedL();
01237     };
01238 
01239 
01240 
01248 class CAknDoubleGraphicPopupMenuStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01249     {
01250 public:
01251     IMPORT_C CAknDoubleGraphicPopupMenuStyleListBox();
01256     IMPORT_C void SizeChanged();
01261     IMPORT_C TSize MinimumSize();
01262     protected:
01267     IMPORT_C virtual void CreateItemDrawerL();
01272     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
01273 private:
01274     void SizeChangedL();
01275     };
01276     
01277 // --- end of popup styles
01278 
01279 
01280 
01288 class CAknSetStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01289     {
01290 public:
01291     IMPORT_C void ConstructWithWindowL(const CCoeControl *aParent, TInt aFlags);
01296     IMPORT_C void SizeChanged();
01301     IMPORT_C TSize MinimumSize();
01302     IMPORT_C void Draw(const TRect& aRect) const;
01303     IMPORT_C TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
01304 
01309     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
01310 
01311 protected:
01316     IMPORT_C virtual void CreateItemDrawerL();
01321     IMPORT_C CListBoxView *MakeViewClassInstanceL();
01322 private:
01323     void SizeChangedL();
01324     };
01325 
01333 class CAknFormGraphicStyleListBox : public AknPopupListEmpty<CEikFormattedCellListBox>
01334     {
01335 public:
01336     IMPORT_C void ConstructWithWindowL(const CCoeControl *aParent, TInt aFlags);
01341     IMPORT_C void SizeChanged();
01346     IMPORT_C TSize MinimumSize();
01351     IMPORT_C virtual void CreateItemDrawerL();
01354     IMPORT_C virtual TInt AdjustRectHeightToWholeNumberOfItems(TRect &aRect) const;
01360     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
01361 private:
01362     void SizeChangedL();
01363         };
01364 
01365 class CAknFormGraphicWideStyleListBox : public CAknFormGraphicStyleListBox
01366     {
01367 public:
01368     IMPORT_C void SizeChanged();
01369     IMPORT_C TSize MinimumSize();
01370     // From CCoeControl
01371     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
01372 private:
01373     void SizeChangedL();
01374     };
01375 
01376 
01395 class CAknPinbStyleGrid : public CAknSelectionGridTypedef
01396     {
01397 public:
01402     IMPORT_C void SizeChanged();
01407     IMPORT_C TSize MinimumSize();
01408 
01413     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
01414 
01415 private:    
01416     void SizeChangedL();
01417     };
01418 
01419 
01424 class CAknQdialStyleGrid : public CAknSelectionGridTypedef
01425     {
01426 public:
01431     IMPORT_C virtual void SizeChanged();
01436     IMPORT_C TSize MinimumSize();
01437 
01442     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 
01443 
01444 private:
01445     void SizeChangedL();
01446     };
01447 
01452 class CAknCaleMonthStyleGrid : public CAknSelectionGridTypedef
01453     {
01454 public:
01459     IMPORT_C void SizeChanged();
01464     IMPORT_C TSize MinimumSize();
01469     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);  
01470 
01471 private:
01472     void SizeChangedL();
01473     };
01474 
01475 
01476 
01477 //
01478 //
01479 // Here we have itemdrawer/view modifications needed by the lists
01480 //
01481 //
01482 
01483 // This class is to keep drawing routines that depend on avkon and which we cannot place to
01484 // eikstd or uikon because of that.
01485 
01490 class CAknColumnListBoxView : public CColumnListBoxView
01491     {
01492 public:
01493 
01498     IMPORT_C void EnableFindEmptyList();
01499     
01504     IMPORT_C void SetFindEmptyListState(TBool aUsedWithFind);
01505     
01510     IMPORT_C void DrawEmptyList(const TRect &aClientRect) const;
01511     
01518     IMPORT_C virtual void CalcBottomItemIndex();
01519     TBool GetFindEmptyListState();    
01520 private: // overridden from CListBoxView
01521         IMPORT_C virtual TAny* Reserved_1();
01522 private:
01523     TBool iEmptyListWithFind;
01524     };
01525 
01530 class CAknSetStyleListBoxView : public CFormattedCellListBoxView
01531     {
01532 public:
01533     IMPORT_C void DrawEmptyList(const TRect &aClientRect) const ;
01534 private: // overridden from CListBoxView
01535         IMPORT_C virtual TAny* Reserved_1();
01536     };
01537 
01538 
01543 class CSingleHeadingStyleView : public CAknColumnListBoxView
01544     {
01545 public:
01546     IMPORT_C void Draw(const TRect* ) const;
01547     IMPORT_C void DrawEmptyList(const TRect& aClientRect) const;
01548 private: // overridden from CListBoxView
01549         IMPORT_C virtual TAny* Reserved_1();
01550     };
01551 
01555 class CSingleHeadingStyleItemDrawer : public CColumnListBoxItemDrawer 
01556     {
01557 public:
01558     IMPORT_C CSingleHeadingStyleItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CColumnListBoxData* aColumnData);
01559     IMPORT_C ~CSingleHeadingStyleItemDrawer();
01560 
01561     IMPORT_C virtual void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const;
01562 
01563 public:
01564     IMPORT_C void SetTopItemIndex(TInt aTop);
01565 
01566 private:
01567     TInt iTopItemIndex;
01568         CCoeEnv* iCoeEnv;
01569     };
01570 
01574 class CDoubleLargeStyleItemDrawer : public CFormattedCellListBoxItemDrawer
01575     {
01576 public:
01577     IMPORT_C CDoubleLargeStyleItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CFormattedCellListBoxData* aFormattedCellData, CEikListBox *aListBox);
01578     IMPORT_C void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const;
01579 private:
01580         IMPORT_C void CFormattedCellListBoxItemDrawer_Reserved();
01581 private:
01582     CEikListBox *iListBox_tmp;
01583     };
01584 
01585 
01589 class CWordWrappedFormattedCellItemDrawer : public CFormattedCellListBoxItemDrawer
01590     {
01591 public:
01592     IMPORT_C CWordWrappedFormattedCellItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CFormattedCellListBoxData* aFormattedCellData, CEikListBox *aListBox, TInt aSubCell, TInt aSubCell2);
01593     IMPORT_C void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const;
01594     IMPORT_C void DrawItemText(TInt aItemIndex,
01595                                const TRect &aItemTextRect,
01596                                TBool aItemIsCurrent,
01597                                TBool,
01598                                TBool aItemIsSelected) const;
01599 private:
01600         IMPORT_C void CFormattedCellListBoxItemDrawer_Reserved();
01601 private:
01602     TInt iSubCell, iSubCell2;
01603     };
01604 
01605 //
01606 //
01607 //  here starts section for building new listboxes.
01608 //
01609 
01610 //
01611 // This is helper class that makes the conversion between European LAF and
01612 // different listbox itemdrawer implementations.
01613 //
01614 // Notice, this CEikListBox is a good friend with this class.
01615 //
01616 // 
01617 
01637 class AknListBoxLayouts
01638     {
01639 public:
01643     IMPORT_C static void SetupStandardListBox(CEikListBox& aListBox);
01648     static void SetupGridPos(CAknGrid& aGrid,
01649                      const TAknWindowLineLayout &aLayout);
01653     IMPORT_C static void SetupGridPos(CAknGrid& aGrid,
01654                              TInt l, 
01655                              TInt t, 
01656                              TInt /*r*/, 
01657                              TInt /*b*/, 
01658                              TInt W, 
01659                              TInt H);
01663     IMPORT_C static void SetupListboxPos(CEikListBox& aListBox,
01664                                 TInt startx, 
01665                                 TInt starty, 
01666                                 TInt,
01667                                 TInt, 
01668                                 TInt /*width*/, 
01669                                 TInt height);
01670 
01671     /*
01672     * non-exported new internal version
01673     */
01674     static void SetupListboxPosL( CEikListBox& aListBox,
01675                                   const TAknWindowLineLayout& aLayout ); // layout of first item
01676         
01680     IMPORT_C static void SetupStandardColumnListbox(CColumnListBoxItemDrawer* aItemDrawer);     
01684     IMPORT_C static void SetupStandardFormListbox(CFormattedCellListBoxItemDrawer* aItemDrawer);
01688     IMPORT_C static void SetupStandardGrid(CAknGrid& aGrid);
01689     
01693     IMPORT_C static void SetupColumnGfxCell(CEikListBox& aListBox, 
01694                                    CColumnListBoxItemDrawer* aItemDrawer, 
01695                                    TInt index,
01696                                    TInt l, 
01697                                    TInt t, 
01698                                    TInt r, 
01699                                    TInt b, 
01700                                    TInt W, 
01701                                    TInt H, 
01702                                    TInt startx, 
01703                                    TInt endx);
01704     
01708     IMPORT_C static void SetupColumnTextCell(CEikListBox& aListBox, 
01709                                     CColumnListBoxItemDrawer* aItemDrawer, 
01710                                     TInt index,
01711                                     const CFont *font, 
01712                                     TInt /*C*/, 
01713                                     TInt lm, 
01714                                     TInt rm, 
01715                                     TInt B, 
01716                                     TInt /*W*/, 
01717                                     CGraphicsContext::TTextAlign aAlign, 
01718                                     TInt startx, 
01719                                     TInt endx);
01723     IMPORT_C static void SetupColumnTextCell(CEikListBox& aListBox, 
01724                                     CColumnListBoxItemDrawer* aItemDrawer, 
01725                                     TInt index,
01726                                     const TAknTextLineLayout &aLayout,
01727                                     TInt startx, 
01728                                     TInt endx); // use with aknlayoutcompiler
01729 
01733     IMPORT_C static void SetupFormGfxCell(CEikListBox& aListBox, 
01734                                  CFormattedCellListBoxItemDrawer* aItemDrawer, 
01735                                  TInt index,
01736                                  TInt l, 
01737                                  TInt t, 
01738                                  TInt /*r*/, 
01739                                  TInt /*b*/, 
01740                                  TInt W, 
01741                                  TInt H, 
01742                                  TPoint p1, 
01743                                  TPoint p2);
01744 
01745 
01753     IMPORT_C static void SetupGridFormGfxCell(CAknGrid& aListBox, 
01754                                  CFormattedCellListBoxItemDrawer* aItemDrawer, 
01755                                  TInt index,
01756                                  TInt l, 
01757                                  TInt t, 
01758                                  TInt /*r*/, 
01759                                  TInt /*b*/, 
01760                                  TInt W, 
01761                                  TInt H, 
01762                                  TPoint aP1, 
01763                                  TPoint aP2);
01773     IMPORT_C static void SetupGridFormGfxCell(CAknGrid& aGrid,
01774                  CFormattedCellListBoxItemDrawer* aItemDrawer, 
01775                  TInt aIndex,
01776                  const TAknWindowLineLayout& aLine,
01777                  TPoint& aP1, 
01778                  TPoint& aP2);         
01779 
01783     IMPORT_C static void SetupFormTextCell(CEikListBox& aListBox, 
01784                                   CFormattedCellListBoxItemDrawer* aItemDrawer, 
01785                                   TInt index,
01786                                   const CFont *font, 
01787                                   TInt /*C*/, 
01788                                   TInt lm,
01789                                   TInt /*rm*/, 
01790                                   TInt B, 
01791                                   TInt W, 
01792                                   CGraphicsContext::TTextAlign aAlign, 
01793                                   TPoint p1, 
01794                                   TPoint p2);
01801     IMPORT_C static void SetupFormAntiFlickerTextCell(CEikListBox& aListBox, 
01802                                   CFormattedCellListBoxItemDrawer* aItemDrawer, 
01803                                   TInt index,
01804                                   const CFont *font, 
01805                                   TInt /*C*/, 
01806                                   TInt lm,
01807                                   TInt /*rm*/, 
01808                                   TInt B, 
01809                                   TInt W, 
01810                                   CGraphicsContext::TTextAlign aAlign, 
01811                                   TPoint p1, 
01812                                   TPoint p2);
01813 
01817     IMPORT_C static void SetupFormTextCell(CEikListBox& aListBox, 
01818                                   CFormattedCellListBoxItemDrawer* aItemDrawer, 
01819                                   TInt index,
01820                                   const TAknTextLineLayout &aLayout,
01821                                   const TPoint &p1, 
01822                                   const TPoint &p2); // use with layout compiler
01828     IMPORT_C static void SetupFormAntiFlickerTextCell(CEikListBox& aListBox, 
01829                                   CFormattedCellListBoxItemDrawer* aItemDrawer, 
01830                                   TInt index,
01831                                   const TAknTextLineLayout &aLayout,
01832                                   const TPoint &p1, 
01833                                   const TPoint &p2); // use with layout compiler
01834 
01838     IMPORT_C static void SetupColumnGfxCell(CEikListBox& aListBox, 
01839                                    CColumnListBoxItemDrawer* aItemDrawer, 
01840                                    TInt aIndex,
01841                                    const TAknWindowLineLayout &aLayout,
01842                                    TInt startx, 
01843                                    TInt endx);
01844 
01848     IMPORT_C static void SetupFormGfxCell(CEikListBox& aListBox, 
01849                                  CFormattedCellListBoxItemDrawer* aItemDrawer, 
01850                                  TInt index,
01851                                  const TAknWindowLineLayout &aLayout,
01852                                  const TPoint &p1, 
01853                                  const TPoint &p2);
01854 
01855 
01859     IMPORT_C static void SetupListboxPos(CEikListBox& aListBox, 
01860                                    const TAknWindowLineLayout &aLayout);
01861 
01862     
01863     };
01864 
01870 class AknListBoxUtils
01871     {
01872 public:
01882     IMPORT_C static void HandleItemRemovalAndPositionHighlightL(CEikListBox *aListBox, TInt aValueOfCurrentItemIndexBeforeRemoval, TBool aCurrentItemWasRemoved);
01883     
01893     IMPORT_C static void HandleItemRemovalAndPositionHighlightL(CEikListBox *aListBox, TInt aValueOfCurrentItemIndexBeforeRemoval, CArrayFix<TInt> &aIndexesToRemovedItems);
01894 
01898     IMPORT_C static TBool ListBoxLinesShown(MAknsSkinInstance *aInstance, MAknsControlContext *aCc);
01899     };
01900 
01901 #endif
01902 
01903 
01904 
01905 
01906 
01907 

Copyright © Nokia Corporation 2001-2008
Back to top