00001 /* 00002 * ============================================================================ 00003 * Name : AknListQueryDialog.h 00004 * Part of : Avkon 00005 * 00006 * Description: 00007 * Implementation of CAknListQueryDialog 00008 * Version: 00009 * 00010 * Copyright © 2002 Nokia Corporation. 00011 * This material, including documentation and any related 00012 * computer programs, is protected by copyright controlled by 00013 * Nokia Corporation. All rights are reserved. Copying, 00014 * including reproducing, storing, adapting or translating, any 00015 * or all of this material requires the prior written consent of 00016 * Nokia Corporation. This material also contains confidential 00017 * information which may not be disclosed to others without the 00018 * prior written consent of Nokia Corporation. 00019 */ 00020 00021 #ifndef AKNLISTQUERYDIALOG_H 00022 #define AKNLISTQUERYDIALOG_H 00023 00024 #include <aknquerydialog.h> 00025 00026 class CAknMessageQueryControl; 00027 #start_since SINCE_3_1_SDK 00028 class CAknListQueryMediatorObserver; 00029 #end_since SINCE_3_1_SDK 00030 00036 class CAknListQueryDialog : public CAknQueryDialog, 00037 public MEikListBoxObserver, 00038 public MAknIntermediateState 00039 { 00040 public: 00047 IMPORT_C CAknListQueryDialog(TInt* aIndex); 00048 00055 IMPORT_C CAknListQueryDialog( 00056 CListBoxView::CSelectionIndexArray* aSelectionIndexArray); 00057 00061 IMPORT_C virtual ~CAknListQueryDialog(); 00062 00070 IMPORT_C void SetSizeAndPosition(const TSize &aSize); 00071 00086 IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, 00087 TEventCode aType); 00088 00097 IMPORT_C void HandleListBoxEventL(CEikListBox* aListBox, 00098 TListBoxEvent aEventType); 00099 00105 IMPORT_C void SetItemTextArray(MDesCArray* aItemTextArray); 00106 00112 IMPORT_C void SetOwnershipType( 00113 TListBoxModelItemArrayOwnership aOwnershipType); 00114 00121 IMPORT_C void SetIconArrayL(CArrayPtr<CGulIcon>* aIcons); 00122 00128 IMPORT_C CEikListBox* ListBox() const; 00129 00136 IMPORT_C CAknListQueryControl* ListControl() const; 00137 00144 IMPORT_C CAknMessageQueryControl* MessageBox() const; 00145 00152 IMPORT_C CAknPopupHeadingPane* QueryHeading() const; 00153 00159 IMPORT_C void ActivateL(); 00160 00180 IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 00181 00182 protected: 00190 IMPORT_C void PreLayoutDynInitL(void); 00191 00199 IMPORT_C void PostLayoutDynInitL(); 00200 00213 IMPORT_C TBool OkToExitL(TInt aButtonId); 00214 00220 IMPORT_C TInt BorderStyle(); 00221 00222 protected: 00228 IMPORT_C void CloseState(); 00229 00230 private: 00239 static TInt ClosePopup(TAny *aObj); 00240 00249 static TInt ClosePopupAcceptingChanges(TAny *aObj); 00250 00251 private: 00255 IMPORT_C void* ExtensionInterface( TUid aInterface ); 00256 private: 00257 IMPORT_C virtual void CEikDialog_Reserved_1(); 00258 IMPORT_C virtual void CEikDialog_Reserved_2(); 00259 private: 00260 IMPORT_C virtual void CAknDialog_Reserved(); 00261 private: 00262 IMPORT_C virtual void CAknQueryDialog_Reserved(); 00263 private: 00264 // Will hold the index of the selected item 00265 TInt *iIndex; 00266 // Will hold the selected items' indexes 00267 CListBoxView::CSelectionIndexArray *iSelectionIndexArray; 00268 // Was the enter key pressed 00269 TBool iEnterKeyPressed; 00270 // Idle object to close the query if it there's no items to show 00271 CIdle *iIdle; 00272 // Layout for List query control 00273 TAknPopupWindowLayoutDef iLayout; 00274 00275 CAknListQueryMediatorObserver* iMediatorObs; 00276 00277 TInt iSpare; 00278 00279 protected: 00286 IMPORT_C CAknSearchField* FindBox() const; 00287 00288 public: 00294 IMPORT_C void SetTone(TInt aTone); 00295 00296 #start_since SINCE_3_1_SDK 00297 00300 IMPORT_C void HandleResourceChange(TInt aType); 00301 #end_since SINCE_3_1_SDK 00302 00303 #start_since SINCE_3_1_SDK 00304 00317 IMPORT_C void PublishDialogL(TInt aDialogIndex, TUid aCatUid = KNullUid, CArrayFixFlat<TInt>* aItemIds = 0); 00318 #end_since SINCE_3_1_SDK 00319 00320 #start_since SINCE_3_1_SDK 00321 /* 00322 * Public since 3rd Ed FP1 00323 * Instantiates mediator support and passes possible feedback to given intance. 00324 * If no observer is set, dialog tries to handle feedback by it self. 00325 * 00326 * Please note that no commands will be instantiated unless command identifiers are 00327 * are set using PublishDialogL 00328 * 00329 * @param aObserver pointer to instance implementing MAknDialogMediatorObserver API 00330 * Can be NULL 00331 * @return void 00332 */ 00333 IMPORT_C void SetMediatorObserver(MAknDialogMediatorObserver* aObserver); 00334 #end_since SINCE_3_1_SDK 00335 }; 00336 00337 // AKNLISTQUERYDIALOG_H 00338 #endif 00339 00340 00341 // End of File