idlehomescreen/widgetmanager/src/wmportalbutton.cpp
changeset 4 4d54b72983ae
parent 2 08c6ee43b396
child 5 c743ef5928ba
--- a/idlehomescreen/widgetmanager/src/wmportalbutton.cpp	Fri Jan 22 09:35:14 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmportalbutton.cpp	Tue Jan 26 11:48:23 2010 +0200
@@ -111,12 +111,6 @@
         {
         User::Leave( KErrArgument );
         }
-    else if ( iPortalButtonIndex != 0 )
-        {
-        // operator button not supported until layout available.
-        User::Leave( KErrNotSupported );
-        }
-
     SetContainerWindowL( *aParent );
     
     // Obtain pointer to main container.
@@ -208,7 +202,7 @@
 // Runs WIDGET method: (launches given widget with parameters)
 // ---------------------------------------------------------------------------
 //
-void TryRunWidgetL( const TDesC& aParam, const TDesC& aBundleId )
+void TryRunWidgetL( const TDesC& aBundleId, const TDesC& aParam )
     {
     RApaLsSession session;
     User::LeaveIfError( session.Connect() );
@@ -240,22 +234,34 @@
     }
 
 // ---------------------------------------------------------------------------
+// Runs APPLICATION method: (launches given application with parameters)
+// ---------------------------------------------------------------------------
+//
+void TryRunApplicationL( const TDesC& /*aApplication*/, const TDesC& /*aParam*/ )
+    {
+    // This method has not been implemented
+    User::Leave( KErrNotSupported );
+    }
+
+// ---------------------------------------------------------------------------
 // Tries to open a portal with given method and parameters.
 // this method may be called twice on a portal button, if a primary
 // method fails.
 // ---------------------------------------------------------------------------
 //
 void TryOpenPortalL(
-        CWmConfiguration::TMethod aMethod, const TDesC& aParam,
-        const TDesC& aBundleId )
+        CWmConfiguration::TMethod aMethod, const TDesC& aService,
+        const TDesC& aParam )
     {
     // open portal according to the method.
     if ( aMethod == CWmConfiguration::EHttp )
         { TryRunHttpL( aParam ); }
     else if ( aMethod == CWmConfiguration::EWidget )
-        { TryRunWidgetL( aParam, aBundleId ); }
+        { TryRunWidgetL( aService, aParam ); }
+    else if ( aMethod == CWmConfiguration::EApplication )
+        { TryRunApplicationL( aService, aParam ); }
     else
-        { /* do nothing */ }
+        { User::Leave( KErrNotSupported ); }
     }
 
 // ---------------------------------------------------------------------------
@@ -270,15 +276,15 @@
     TRAPD( err,
         TryOpenPortalL(
             aConfiguration.PortalButtonPrimaryMethod( aPortalIndex ),
-            aConfiguration.PortalButtonPrimaryParams( aPortalIndex ),
-            aConfiguration.PortalButtonBundleId( aPortalIndex ) ); );
+            aConfiguration.PortalButtonPrimaryService( aPortalIndex ),
+            aConfiguration.PortalButtonPrimaryParams( aPortalIndex ) ); );
     if ( err != KErrNone )
         {
         // if secondary method fails, leave will be propagated.
         TryOpenPortalL(
             aConfiguration.PortalButtonSecondaryMethod( aPortalIndex ),
-            aConfiguration.PortalButtonSecondaryParams( aPortalIndex ),
-            aConfiguration.PortalButtonBundleId( aPortalIndex ) );
+            aConfiguration.PortalButtonSecondaryService( aPortalIndex ),
+            aConfiguration.PortalButtonSecondaryParams( aPortalIndex ) );
         }
     }
 
@@ -429,18 +435,13 @@
         {
         TBool landscape = Layout_Meta_Data::IsLandscapeOrientation();
         
-        
         // draw image if one exists
         if ( iButtonIcon && iButtonIconMask )
             {
             TAknLayoutRect imageLayout;
-            // todo: 2-button layout
-            if ( iWmMainContainer->Configuration().PortalButtonCount() == 1 )
-                {
-                imageLayout.LayoutRect( rect,
-                        AknLayoutScalable_Apps::wgtman_btn_pane_g1(
-                                landscape ? 1 : 0).LayoutLine() );
-                }
+            imageLayout.LayoutRect( rect,
+                    AknLayoutScalable_Apps::wgtman_btn_pane_g1(
+                            landscape ? 1 : 0).LayoutLine() );
             imageLayout.DrawImage( gc, iButtonIcon, iButtonIconMask );
             }
         
@@ -448,12 +449,8 @@
         if ( !landscape )
             {
             TAknTextComponentLayout leftLayout;
-            // todo: 2-button layout
-            if ( iWmMainContainer->Configuration().PortalButtonCount() == 1 )
-                {
-                leftLayout = AknLayoutScalable_Apps::wgtman_btn_pane_t1( 
-                                                    landscape ? 1 : 0  );
-                }
+            leftLayout = AknLayoutScalable_Apps::wgtman_btn_pane_t1( 
+                                                landscape ? 1 : 0  );
             DrawText( gc, state->Text(), leftLayout, 1 );
             }
         }