aknselectionlist.h

Go to the documentation of this file.
00001 /*
00002 * ============================================================================
00003 * Name        : AknSelectionList.h
00004 * Part of     : Avkon
00005 * Description : Dialogs for selection service implementation.
00006 * Version     : %version: e003sa01#15 %
00007 *
00008 *  Copyright © 2002-2006 Nokia Corporation.
00009 *  This material, including documentation and any related 
00010 *  computer programs, is protected by copyright controlled by 
00011 *  Nokia Corporation. All rights are reserved. Copying, 
00012 *  including reproducing, storing,  adapting or translating, any 
00013 *  or all of this material requires the prior written consent of 
00014 *  Nokia Corporation. This material also contains confidential 
00015 *  information which may not be disclosed to others without the 
00016 *  prior written consent of Nokia Corporation.
00017 * ============================================================================
00018 */
00019 
00020 #ifndef __AKNSELECTIONLIST_H__
00021 #define __AKNSELECTIONLIST_H__
00022 
00023 #include <aknform.h>
00024 #include <aknview.h>
00025 #include <aknutils.h>
00026 #include <aknpopup.h>
00027 #include <avkon.rsg>
00028 
00029 class CAknSelectionListDialogExtension;
00030 class CAknMarkableListDialogExtension;
00031 
00146 class CAknSelectionListDialog : public CAknDialog, public MEikListBoxObserver
00147     {
00148 public:
00159     IMPORT_C static CAknSelectionListDialog *NewL( TInt &aOpenedItem, MDesCArray *aArray, TInt aMenuBarResourceId, MEikCommandObserver *aCommand = 0 );
00160 
00171     IMPORT_C static CAknSelectionListDialog *NewLC( TInt &aOpenedItem, MDesCArray *aArray, TInt aMenuBarResourceId, MEikCommandObserver *aCommand = 0 );
00172 
00178     IMPORT_C void ConstructL(TInt aMenuTitleResourceId);
00179 
00180 public:
00185     enum TFindType
00186         {
00188         ENoFind,
00190         EFixedFind,
00192         EPopupFind
00193         };
00194         
00203     IMPORT_C void SetupFind(TFindType aType);
00204 
00217     IMPORT_C CArrayPtr<CGulIcon>* IconArray() const;
00218 
00231     IMPORT_C void SetIconArrayL(CArrayPtr<CGulIcon>* aIcons);
00232 
00238     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00239         
00240 protected:
00244     IMPORT_C CAknSelectionListDialog( TInt &aIndex, MDesCArray *aArray, MEikCommandObserver *aCommand );
00248     IMPORT_C ~CAknSelectionListDialog();
00249         
00250 protected: // Customisation from derived classes
00257     IMPORT_C virtual void SelectionListProcessCommandL(TInt aCommand);
00258 
00319     IMPORT_C virtual TBool IsAcceptableListBoxType(TInt aControlType, TBool &aIsFormattedCellList) const;
00320 protected:
00325     IMPORT_C void ProcessCommandL( TInt aCommandId );
00326 
00330     IMPORT_C void PreLayoutDynInitL();
00331 
00335     IMPORT_C void PostLayoutDynInitL();
00336 
00342     IMPORT_C void SetSizeAndPosition(const TSize &aSize);
00343 
00349     IMPORT_C TBool OkToExitL( TInt aButtonId );
00350 
00357     IMPORT_C void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
00358 
00362     IMPORT_C TInt CountComponentControls() const;
00363 
00367     IMPORT_C CCoeControl* ComponentControl( TInt aIndex ) const;
00368 
00372     IMPORT_C TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
00373 
00394     IMPORT_C SEikControlInfo CreateCustomControlL(TInt aControlType);
00395 protected:
00400     IMPORT_C virtual CEikListBox *ListBox() const;
00401 
00406     IMPORT_C CAknSearchField *FindBox() const;
00407 
00414     IMPORT_C TBool IsFormattedCellListBox() const;
00415 
00419     IMPORT_C void Draw(const TRect&) const;
00420 private: 
00424     IMPORT_C void* ExtensionInterface( TUid aInterface );
00425 private: 
00426     IMPORT_C virtual void CEikDialog_Reserved_1();
00427     IMPORT_C virtual void CEikDialog_Reserved_2();
00428 private: 
00429     IMPORT_C virtual void CAknDialog_Reserved();
00430 private: // new function 
00431     IMPORT_C virtual void CAknSelectionListDialog_Reserved();
00432 protected:
00437     TBool iEnterKeyPressed;
00438 protected:
00446     static TInt ExitViaIdle(TAny* aSelectionList );    
00447 private:
00448     CAknSelectionListDialogExtension *iExtension;
00449 private:
00450     CAknSearchField *iFindBox;
00451     TFindType iFindType;
00452     TInt *iSelectedItem;
00453     MDesCArray *iArray;
00454     MEikCommandObserver *iCmdObserver;
00455     TInt iDialogResourceId;
00456     TInt iSpare[4];
00457     };
00458 
00565 class CAknMarkableListDialog : public CAknSelectionListDialog
00566     {
00567 public:
00584     IMPORT_C static CAknMarkableListDialog *NewL( TInt &aOpenedItem,
00585                                                   CArrayFix<TInt> *aSelectedItems,
00586                                                   MDesCArray *aArray,
00587                                                   TInt aMenuBarResourceId,
00588                                                   TInt aOkMenuBarId,
00589                                                   MEikCommandObserver *aObserver =0 );
00590         
00608     IMPORT_C static CAknMarkableListDialog *NewLC( TInt &aOpenedItem,
00609                                                    CArrayFix<TInt> *aSelectedItems,
00610                                                    MDesCArray *aArray,
00611                                                    TInt aMenuBarResourceId,
00612                                                    TInt aOkMenuBarId,
00613                                                    MEikCommandObserver *aObserver =0 );
00614 
00619     IMPORT_C void ConstructL( TInt aMenuTitleResourceId );
00620 
00621     /* ~CAknMarkableListDialog()
00622     * Destructor.
00623     */
00624     IMPORT_C ~CAknMarkableListDialog();
00625 
00626 public: // From CCoeControl
00631     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00632 
00633 protected:
00649     IMPORT_C CAknMarkableListDialog( TInt &aOpenedItem,
00650                                      CArrayFix<TInt> *aSelectedItems,
00651                                      MDesCArray *aArray,
00652                                      TInt aMenuBarResourceId,
00653                                      TInt aOkMenuBarResourceId,
00654                                      MEikCommandObserver *aObserver );
00658     IMPORT_C void PreLayoutDynInitL();
00659 
00663     IMPORT_C void PostLayoutDynInitL();
00664 
00671     IMPORT_C void SelectionListProcessCommandL(TInt aCommand);
00672 
00677     IMPORT_C void ProcessCommandL(TInt aCommand);
00678 
00684     IMPORT_C void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane);
00685 
00692     IMPORT_C void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
00693 
00697     IMPORT_C TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
00698 
00704     IMPORT_C TBool OkToExitL(TInt aButtonId);
00705 
00706 private:
00707     CArrayFix<TInt> *iSelectionIndexArray; // Not owned
00708 
00709 protected:
00713     TInt iMenuBarResourceId;
00714 
00718     TInt iOkMenuBarResourceId;
00719 
00720 public: // DEPRECATED METHODS, DO NOT USE
00724     IMPORT_C static CAknMarkableListDialog *NewL(TInt &aOpenedItem, CArrayFix<TInt> *aSelectedItems,
00725                                                  MDesCArray *aArray, TInt aMenuBarResourceId, MEikCommandObserver *aObserver =0);
00729     IMPORT_C static CAknMarkableListDialog *NewLC(TInt &aOpenedItem, CArrayFix<TInt> *aSelectedItems,
00730                                                   MDesCArray *aArray, TInt aMenuBarResourceId, MEikCommandObserver *aObserver =0);
00731 protected: // DEPRECATED METHODS, DO NOT USE
00735     IMPORT_C CAknMarkableListDialog(TInt &aValue, CArrayFix<TInt> *aSelectedItems, MDesCArray *aArray, MEikCommandObserver *aObserver);
00736 
00737 private: 
00741     IMPORT_C void* ExtensionInterface( TUid aInterface );
00742 private: 
00743     IMPORT_C virtual void CEikDialog_Reserved_1();
00744     IMPORT_C virtual void CEikDialog_Reserved_2();
00745 private: 
00746     IMPORT_C virtual void CAknDialog_Reserved();
00747 private: 
00748     IMPORT_C virtual void CAknSelectionListDialog_Reserved();
00749 private:  
00750     CAknMarkableListDialogExtension *iMarkableExtension;
00751 private:
00752     TInt iSpare[2];
00753     };
00754 
00755 
00756 typedef CAknSelectionListDialog CAknSelectionGridDialog;
00757 typedef CAknMarkableListDialog CAknMarkableGridDialog;
00758 
00759 
00760 #endif

Copyright © Nokia Corporation 2001-2008
Back to top