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: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef __AKN_LIST_QUERY_CONTROL_H williamr@2: #define __AKN_LIST_QUERY_CONTROL_H williamr@2: williamr@2: #include williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: class CEikFormattedCellListBox; williamr@2: struct TAknPopupWindowLayoutDef; williamr@2: williamr@2: /** williamr@2: * List query control class. williamr@2: */ williamr@2: class CAknListQueryControl : public CAknControl williamr@2: { williamr@2: public: williamr@2: /** williamr@2: * Constructor williamr@2: */ williamr@2: IMPORT_C CAknListQueryControl(); williamr@2: williamr@2: /** williamr@2: * Constructs control from resources williamr@2: */ williamr@2: IMPORT_C void ConstructFromResourceL(TResourceReader& aRes); williamr@2: williamr@2: /** williamr@2: * Destructor williamr@2: */ williamr@2: IMPORT_C virtual ~CAknListQueryControl(); williamr@2: williamr@2: /** williamr@2: * From CCoeControl williamr@2: * williamr@2: * @return Minimum size of the control williamr@2: */ williamr@2: IMPORT_C TSize MinimumSize(); williamr@2: williamr@2: /** williamr@2: * From CCoeControl williamr@2: * Returns number of controls inside the query control williamr@2: * @return Number of component controls williamr@2: */ williamr@2: IMPORT_C TInt CountComponentControls() const; williamr@2: williamr@2: /** williamr@2: * From CCoeControl williamr@2: * Returns a control determined by control id williamr@2: * @param anIndex Index of a control to be returned williamr@2: * @return CCoeControl Pointer to control williamr@2: */ williamr@2: IMPORT_C CCoeControl* ComponentControl(TInt anIndex) const; williamr@2: williamr@2: /** williamr@2: * From CCoeControl williamr@2: * Handles key events - Gets called by CONE williamr@2: * @param aKeyEvent The key event williamr@2: * @param aType The type of the event williamr@2: * @return Indicates whether or not the key event was williamr@2: * used by this control williamr@2: */ williamr@2: IMPORT_C TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType); williamr@2: williamr@2: /** williamr@2: * From CCoeControl williamr@2: * Draws the control williamr@2: * @param aRect The region of the control to be redrawn williamr@2: */ williamr@2: IMPORT_C void Draw(const TRect& aRect) const; williamr@2: williamr@2: /** williamr@2: * Sets layout for list query control williamr@2: * @param aLayout Layout to be set williamr@2: */ williamr@2: IMPORT_C void SetLayout(TAknPopupWindowLayoutDef* aLayout); williamr@2: williamr@2: IMPORT_C void FocusChanged(TDrawNow aDrawNow); williamr@2: williamr@2: /** williamr@2: * Returns pointer to listbox williamr@2: * @return Pointer to CEikFormattedCellListBox williamr@2: */ williamr@2: inline CEikFormattedCellListBox* Listbox() const; williamr@2: williamr@2: /** williamr@2: * Returns pointer to heading williamr@2: * @return Pointer to CAknPopupHeadingPane williamr@2: */ williamr@2: inline CAknPopupHeadingPane* Heading() const; williamr@2: williamr@2: /** williamr@2: * Return type of the list williamr@2: * @return Type of the list williamr@2: */ williamr@2: inline TInt Listtype() const; 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: /** williamr@2: * Get pointer to messageControl if such exists. williamr@2: * @since 3.0 williamr@2: */ williamr@2: CAknMessageQueryControl* MessageBox() const; 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: CEikFormattedCellListBox* iListBox; williamr@2: CAknPopupHeadingPane* iHeading; williamr@2: TInt iListType; williamr@2: TAknPopupWindowLayoutDef* iLayout; williamr@2: CAknMessageQueryControl* iMessageBox; williamr@2: williamr@2: TInt iSpare[1]; williamr@2: williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Deprecated - do not use williamr@2: */ williamr@2: inline CEikFormattedCellListBox* listbox() const; williamr@2: }; williamr@2: williamr@2: inline CEikFormattedCellListBox *CAknListQueryControl::Listbox() const williamr@2: { williamr@2: return iListBox; williamr@2: } williamr@2: williamr@2: inline CAknPopupHeadingPane *CAknListQueryControl::Heading() const williamr@2: { williamr@2: if ( iHeading && iHeading->Prompt() ) williamr@2: return iHeading; williamr@2: return 0; williamr@2: } williamr@2: williamr@2: inline TInt CAknListQueryControl::Listtype() const williamr@2: { williamr@2: return iListType; williamr@2: } williamr@2: williamr@2: /** williamr@2: * Deprecated methods williamr@2: */ williamr@2: inline CEikFormattedCellListBox* CAknListQueryControl::listbox() const williamr@2: { williamr@2: return Listbox(); williamr@2: } williamr@2: williamr@2: #endif