examples/ForumNokia/Symbian_OS_End-to-End_Sockets_API_Example/SocketTaskManager/inc/TaskManagerAppView.h

00001 /*
00002  * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
00003  *    
00004  * Redistribution and use in source and binary forms, with or without
00005  * modification, are permitted provided that the following conditions are met:
00006  *    
00007  *  * Redistributions of source code must retain the above copyright notice, this
00008  *    list of conditions and the following disclaimer.
00009  *  * Redistributions in binary form must reproduce the above copyright notice,
00010  *    this list of conditions and the following disclaimer in the documentation
00011  *    and/or other materials provided with the distribution.
00012  *  * Neither the name of Nokia Corporation nor the names of its contributors
00013  *    may be used to endorse or promote products derived from this software
00014  *    without specific prior written permission.
00015  *    
00016  *    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00017  *    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00018  *    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00019  *    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00020  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00021  *    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00022  *    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00023  *    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00024  *    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00025  *    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026  *    
00027  *    Description:  
00028  */
00029 
00030 
00031 #ifndef __TASKMANAGER_APPVIEW_H__
00032 #define __TASKMANAGER_APPVIEW_H__
00033 
00034 // INCLUDE FILES
00035 #include "TaskManagerEngine.h"
00036 
00037 #include <eiklbo.h> // MEikListBoxObserver
00038 #include <coecntrl.h>
00039 
00040 // CONSTANTS
00041 const TInt KMaxStatusTextLength = 25;
00042 
00043 // FORWARD DECLARATIONS
00044 class CAknSingleStyleListBox;
00045 class CTaskManagerAppUi;
00046 class CResponse;
00047 
00048 // CLASS DECLARATION
00049 
00054 class CTaskManagerAppView : public CCoeControl, 
00055                                                         public MEikListBoxObserver, 
00056                                                         public MTransactionObserver
00057         {
00058 public: // Constructors and destructor
00059 
00063         static CTaskManagerAppView* NewL(const TRect& aRect, CTaskManagerAppUi& aAppUi);
00064 
00068      ~CTaskManagerAppView();
00069 
00070 
00071 public: // New functions
00072 
00079         TBool QueryIapL(TUint32& aId, const TUint32& aDefaultId);
00080 
00081 private: // Functions from base classes
00082 
00086     void Draw(const TRect& aRect) const;
00087     
00091     void SizeChanged();
00092     
00096         TInt CountComponentControls() const;
00097         
00101         CCoeControl* ComponentControl(TInt aIndex) const;
00102         
00106         TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
00107         
00111         void HandleListBoxEventL(CEikListBox* aListBox,
00112                                                          TListBoxEvent aListBoxEvent);
00113         
00117         void OpeningConnectionL();
00118                                                          
00123         void ConnectingToServerL(const TBool& aLoadingTasks);
00124         
00132         void SuccessL(const CResponse& aResponse);
00133         
00138         void FailedL(const TInt& aError);
00139         
00143         void CancelledL();
00144         
00150         void ErrorL(const TDesC& aErrorMsg);
00151         
00152 private:
00153 
00157         void ConstructL(const TRect& aRect);
00158     CTaskManagerAppView(CTaskManagerAppUi& aAppUi);
00159     
00160 private: // New functions
00161 
00166         void ReadTasksL( const CResponse& aResponse );
00167     
00174     void ShowStatus(const TDesC& aStatus);
00175     
00179     void CreateListL();
00180 
00184         void DeleteSelectedTaskL();    
00185     
00186         enum TTransactionStatus
00187                 {
00188                 EFetchingTasks = 0,
00189                 EMarkingTaskDone
00190                 };
00191     
00192 private: // Data members
00193     
00194     CAknSingleStyleListBox* iTaskList;
00195     CTaskManagerAppUi& iAppUi;
00196     TTransactionStatus iTransactionStatus;
00197     TBuf<KMaxStatusTextLength> iStatusText;
00198         };
00199 
00200 
00201 #endif // __TASKMANAGER_APPVIEW_H__
00202 
00203 // End of file

Generated by  doxygen 1.6.2