wvuing/IMPSConnectionUI/UISrc/CCnUiQueryContainer.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSConnectionUI/UISrc/CCnUiQueryContainer.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,154 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Query container implementation.
+*
+*/
+
+#ifndef __CCNUIQUERYCONTAINER_H
+#define __CCNUIQUERYCONTAINER_H
+
+//  INCLUDES
+#include <E32Base.h>
+#include <AknQueryDialog.h>
+#include "MCnUiUiFacade.h"
+
+// FORWARD DECLARATIONS
+class MCnUiConnQueryObserver;
+
+
+/**
+ * Supported query types.
+ *
+ * @since 2.1
+ */
+enum TNonBlockingQueryType
+    {
+    ENBConfirmationQuery = 1,
+    ENBConfirmedErrorNote
+    };
+
+
+// CLASS DECLARATION
+/**
+ * Query container implementation.
+ *
+ * @since 2.1
+ */
+NONSHARABLE_CLASS( CCnUiQueryContainer ) : public CBase,
+        public MCnUiConnQuery
+    {
+    /**
+     * Helper derivation from CAknDialog.
+     * Offers non waiting dialog features.
+     * Reports events to observer and self pointer
+     * NULLing. (Self pointer NULLing needed to ease
+     * MCnUiConnQuery client usage.)
+     *
+     * @since 2.1
+     */
+    NONSHARABLE_CLASS( CCnUiNonWaitingQueryDialog ) : public CAknQueryDialog
+        {
+public:  // Two-phased constructors and destructor
+
+        /**
+         * Two-phased constructor.
+         *
+         * @since 2.1
+         * @param aType The query type.
+         * @param aLabelText The label text to show in UI.
+         * @param aObserver The observer to notify from dialog selections.
+         * @param aSelfPtr Self pointer. Nulled when dialog is destroyed.
+         */
+        static CCnUiNonWaitingQueryDialog* NewL( TNonBlockingQueryType aType,
+        const TDesC& aLabelText,
+        MCnUiConnQueryObserver& aObserver,
+        CCnUiNonWaitingQueryDialog** aSelfPtr );
+
+        /**
+         * Destructor.
+         */
+        virtual ~CCnUiNonWaitingQueryDialog();
+
+private:
+        /**
+         * C++ constructor.
+         */
+        CCnUiNonWaitingQueryDialog( MCnUiConnQueryObserver& aObserver,
+                                    CCnUiNonWaitingQueryDialog** aSelfPtr );
+
+        /**
+         * Symbian OS constructor.
+         */
+        void LaunchQueryLD( TNonBlockingQueryType aType, const TDesC& aLabelText );
+
+
+private: //From CEikDialog.
+
+        /**
+         * From CEikDialog.
+         * Overridden to report the selection to observer.
+         * @since 2.1
+         */
+        TBool OkToExitL( TInt aButtonId );
+
+
+private: // data
+
+        ///<The observer, not owned.
+        MCnUiConnQueryObserver&             iObserver;
+
+        ///< Self pointer reference.
+        ///< Used to NULL self pointer in deletion. Not owned.
+        CCnUiNonWaitingQueryDialog**        iSelfPtr;
+        };
+
+
+
+public:  // Two-phased constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     *
+     * @since 2.1
+     * @param aType query type
+     * @param aLabelText The label text to show in UI.
+     * @param aObserver The observer to notify.
+     */
+    static CCnUiQueryContainer* NewL( TNonBlockingQueryType aType,
+                                      const TDesC& aLabelText,
+                                      MCnUiConnQueryObserver& aObserver );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CCnUiQueryContainer();
+
+private:
+
+    /**
+     * C++ constructor.
+     */
+    CCnUiQueryContainer();
+
+
+private: // data
+
+    ///<Used query dialog. Owned.
+    CCnUiNonWaitingQueryDialog*      iDlg;
+    };
+
+#endif      //  __CCNUIQUERYCONTAINER_H
+
+//  End of File
+