00001 /* ============================================================================ 00002 * Name : AknListQueryControl.h 00003 * Part of : Avkon 00004 * Implementation notes: 00005 * Declaration of Avkon list query control. 00006 * Copyright © 2002 Nokia Corporation. 00007 * This material, including documentation and any related 00008 * computer programs, is protected by copyright controlled by 00009 * Nokia Corporation. All rights are reserved. Copying, 00010 * including reproducing, storing, adapting or translating, any 00011 * or all of this material requires the prior written consent of 00012 * Nokia Corporation. This material also contains confidential 00013 * information which may not be disclosed to others without the 00014 * prior written consent of Nokia Corporation. 00015 */ 00016 00017 00018 #ifndef __AKN_LIST_QUERY_CONTROL_H 00019 #define __AKN_LIST_QUERY_CONTROL_H 00020 00021 #include <AknControl.h> 00022 00023 #include <aknpopupheadingpane.h> 00024 #include <aknmessagequerycontrol.h> 00025 00026 class CEikFormattedCellListBox; 00027 struct TAknPopupWindowLayoutDef; 00028 00032 class CAknListQueryControl : public CAknControl 00033 { 00034 public: 00038 IMPORT_C CAknListQueryControl(); 00039 00043 IMPORT_C void ConstructFromResourceL(TResourceReader& aRes); 00044 00048 IMPORT_C virtual ~CAknListQueryControl(); 00049 00055 IMPORT_C TSize MinimumSize(); 00056 00062 IMPORT_C TInt CountComponentControls() const; 00063 00070 IMPORT_C CCoeControl* ComponentControl(TInt anIndex) const; 00071 00080 IMPORT_C TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType); 00081 00087 IMPORT_C void Draw(const TRect& aRect) const; 00088 00093 IMPORT_C void SetLayout(TAknPopupWindowLayoutDef* aLayout); 00094 00095 IMPORT_C void FocusChanged(TDrawNow aDrawNow); 00096 00101 inline CEikFormattedCellListBox* Listbox() const; 00102 00107 inline CAknPopupHeadingPane* Heading() const; 00108 00113 inline TInt Listtype() const; 00114 00119 IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 00120 00125 CAknMessageQueryControl* MessageBox() const; 00126 00127 private: 00131 IMPORT_C void* ExtensionInterface( TUid aInterface ); 00132 00133 private: 00134 CEikFormattedCellListBox* iListBox; 00135 CAknPopupHeadingPane* iHeading; 00136 TInt iListType; 00137 TAknPopupWindowLayoutDef* iLayout; 00138 CAknMessageQueryControl* iMessageBox; 00139 00140 TInt iSpare[1]; 00141 00142 public: 00143 00147 inline CEikFormattedCellListBox* listbox() const; 00148 }; 00149 00150 inline CEikFormattedCellListBox *CAknListQueryControl::Listbox() const 00151 { 00152 return iListBox; 00153 } 00154 00155 inline CAknPopupHeadingPane *CAknListQueryControl::Heading() const 00156 { 00157 if ( iHeading && iHeading->Prompt() ) 00158 return iHeading; 00159 return 0; 00160 } 00161 00162 inline TInt CAknListQueryControl::Listtype() const 00163 { 00164 return iListType; 00165 } 00166 00170 inline CEikFormattedCellListBox* CAknListQueryControl::listbox() const 00171 { 00172 return Listbox(); 00173 } 00174 00175 #endif