--- /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 <aknview.h> // AVKON components
+#include <AknQueryDialog.h> // AVKON component
+#include <eikmenup.h> // Menu pane definitions
+#include <gsplugininterface.h> // General Settings plugin
+#include <ConeResLoader.h>
+#include <data_caging_path_literals.hrh>
+
+#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