diff -r 25fce757be94 -r e02eb84a14d2 usbuis/usbui/USBClassChangeUIPlugin/inc/USBClassChangeUIPluginView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usbuis/usbui/USBClassChangeUIPlugin/inc/USBClassChangeUIPluginView.h Wed Sep 01 12:20:49 2010 +0100 @@ -0,0 +1,242 @@ +/* +* Copyright (c) 2005-2009 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: Declares container control for application. +* +*/ + + +#ifndef USBCLASSCHANGEUIPLUGINVIEW_H +#define USBCLASSCHANGEUIPLUGINVIEW_H + +// INCLUDES + +#include // AVKON components +#include // AVKON component +#include // Menu pane definitions +#include // General Settings plugin +#include +#include + +#include "USBClassChangeUIPluginModel.h" +#include "USBClassChangeUIPluginInterface.h" + +// CONSTANTS +/** implementation uid */ +const TUid KGsUSBUIPluginUid = { 0x1020E472 }; + +_LIT(KFileDrive,"z:"); +_LIT(KResourceFileName, "USBClassChangeUIPlugin.rsc"); +_LIT(KUSBUIconFileName, "usbui.mif"); + +/** USB modes are listed in the setting page */ +const TInt KSettingPageItemsGranularity = 3; + +// FORWARD DECLARATIONS +class CUSBClassChangeUIPluginContainer; + +// CLASS DECLARATION + +/** +* Main view of the application. Handles view activation, +* deactivation, commands and dynamic options menus. +*/ +class CUSBClassChangeUIPluginView : + public CUSBClassChangeUIPluginInterface, + public MUSBUIObserver + { + public: // Constructors and destructor + + /** + * Entry point for General Settings + */ + static CUSBClassChangeUIPluginView* NewPluginL(); + + /** + * Entry point for USBClassChangeUIAppUi + */ + static CUSBClassChangeUIPluginView* NewL(); + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL(); + + /** + * Destructor. + */ + virtual ~CUSBClassChangeUIPluginView(); + + public: // Functions from base classes + + /** + * From CAknView Returns view id. + * @param None. + * @return View id. + */ + TUid Id() const; + + /** + * From CAknView Handles user commands. + * @param aCommand A command id. + * @return None. + */ + void HandleCommandL( TInt aCommand ); + + /** + * From CGSPluginInterface + * Method for getting caption of this plugin. This should be the + * localized name of the settings view to be shown in parent view. + * + * @param aCaption pointer to Caption variable + */ + void GetCaptionL( TDes& aCaption ) const; + + /** + * From CGSPluginInterface. + * Function for getting plugin's value for a certain key. + * + * @param aKey Key for the value to be retrieved. + * @parem aValue Value for the given gey in TDes format. + */ + void GetValue(const TGSPluginValueKeys aKey, TDes& aValue ); + + /** + * From CGSPluginInterface + * Creates a new icon of desired type. + * + * @param aIconType UID Icon type UID of the icon to be created. + * @return Pointer of the icon. NOTE: Ownership of this icon is + * transferred to the caller. + */ + CGulIcon* CreateIconL( const TUid aIconType ); + + /** + * Initialize options menu. + * Remove help option, if the feature is not supported. + * @param aResId Resource Id + * @param aMenu The menu pane. + */ + void DynInitMenuPaneL( TInt aResId, CEikMenuPane* aMenu ); + + /** + * From MUSBUIObserver. + * Informs the observer that a setting has been changed. + */ + void SettingChanged(); + + /** + * From MUSBUIObserver/MUSBDeviceStateObserver. + * Informs the observer that USB device state has changed. + * @param aState current device state. + */ + void DeviceStateChanged(TUsbDeviceState aPrevState, + TUsbDeviceState aState); + + /** + * From MUSBUIObserver/MUSBOtgHostStateObserver. + * @see MUSBOtgHostStateObserver::OtgHostIdPinStateChanged + */ + void OtgHostIdPinStateChanged(TBool aIsIdPinOn); + + /** + * From MUSBOtgHostStateObserver + * @see MUSBOtgHostStateObserver::OtgHostIdPinStateChanged + */ + void HostEventNotify(TDeviceEventInformation aEventInfo); + + // New functions + + /** + * Gets the USB mode (from model) + * @param None. + * @return the value of the personality ID + */ + TInt USBMode() const; + + /** + * Sets the USB mode (through model) + * @param The value of the personality ID. + * @return None. + */ + void SetUSBModeL( TInt ); + + /** + * Checks whether USB device is connected. + */ + TBool IsUSBDeviceConnected(); + + private: + + + /** + * Updates parent view if we are loaded by GS plugin. + */ + void UpdateParentView(); + + /** + * Handle change command for USB mode + * @param aMode usb mode id + */ + void HandleCmdChangeUSBModeL(TInt aMode); + + private: // Functions from base classes + + /** + * From CAknView Activates view. + * @param aPrevViewId Id of previous view. + * @param aCustomMessageId Custom message id. + * @param aCustomMessage Custom message. + * @return None. + */ + void DoActivateL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * From CAknView Deactivates view. + * @param None. + * @return None. + */ + void DoDeactivate(); + + private: // Data + //Reference to the UI container + //owned by this class + CUSBClassChangeUIPluginContainer* iContainer; + + //reference to the AppUI + //not owned + CAknViewAppUi* iAppUIRef; + + //Reference to the Model + //owned by this class + CUSBClassChangeUIPluginModel* iModelRef; + + // Flag used if it is needed to load + // the UI plugin + TBool iLoadAsGSPlugin; + + CEikonEnv* iEikEnv; + // Flag for eikon env. + TInt iResourceFileFlag; + // Previous view of GS ap + TVwsViewId iPrevViewId; + + TBool iHelpSupported; + + }; + +#endif // USBCLASSCHANGEUIPLUGINVIEW_H + +// End of File