Made changes to fix N_SE-49371 - maintaining footer item highlight during navigation.
authormamata pattanaik <mamata.p@samsung.com>
Wed, 21 Aug 2013 15:03:04 +0000 (20:33 +0530)
committermamata pattanaik <mamata.p@samsung.com>
Wed, 21 Aug 2013 15:11:03 +0000 (20:41 +0530)
Change-Id: I472c0efa97df3a4220b1401d9780074ae08df74b
Signed-off-by: mamata pattanaik <mamata.p@samsung.com>
project/inc/MultiForm.h
project/src/MultiForm.cpp

index 806dbbe..9082f4a 100644 (file)
@@ -145,6 +145,8 @@ private:
        int __stepIndex;
        int __prevIndex;
        int __nextIndex;
+       bool __prevDisabled;
+       bool __nextDisabled;
        int __allocMem[2];
        String __name;
 };
index 8494a93..961d443 100644 (file)
@@ -1135,6 +1135,15 @@ MultiForm::SetStepInfo(int stepCount, int currIndex, int prevIndex, int nextInde
        __prevIndex = prevIndex;
        __nextIndex = nextIndex;
        __stepIndex = currIndex;
+       __prevDisabled = true;
+       if (__stepCount > 1)
+       {
+               __nextDisabled = false;
+       }
+       else
+       {
+               __nextDisabled = true;
+       }
 
        if (__stepCount > 0)
        {
@@ -1166,31 +1175,59 @@ MultiForm::SetStepInfo(int stepCount, int currIndex, int prevIndex, int nextInde
 result
 MultiForm::SetStepIndex(int index)
 {
-       __stepIndex = index;
 
        if (__stepCount > 0)
        {
-               SetHeaderSuffix("(%d/%d)", __stepIndex + 1, __stepCount);
+               SetHeaderSuffix("(%d/%d)", index + 1, __stepCount);
        }
 
-       if (__stepCount > 1 && __stepIndex != 0)
-       {
-               ShowFooterItem(__prevIndex, true);
-       }
-       else
+       if (__stepIndex > index) // moved prev
        {
-               ShowFooterItem(__prevIndex, false);
-       }
+               if (__stepCount > 1 && index != 0)
+               {
+                       if (__prevDisabled == true)
+                       {
+                               ShowFooterItem(__prevIndex, true);
+                               __prevDisabled = false;
+                       }
+               }
+               else
+               {
+                       ShowFooterItem(__prevIndex, false);
+                       __prevDisabled = true;
+               }
 
-       if (__stepCount > 1 && __stepIndex + 1 < __stepCount)
-       {
-               ShowFooterItem(__nextIndex, true);
+               if (__nextDisabled == true)
+               {
+                       ShowFooterItem(__nextIndex, true);
+                       __nextDisabled = false;
+               }
        }
-       else
+       else // if __stepIndex < index // moved next
        {
-               ShowFooterItem(__nextIndex, false);
+               if (__stepCount > 1 && index + 1 < __stepCount)
+               {
+                       if (__nextDisabled == true)
+                       {
+                               ShowFooterItem(__nextIndex, true);
+                               __nextDisabled = false;
+                       }
+               }
+               else
+               {
+                       ShowFooterItem(__nextIndex, false);
+                       __nextDisabled = true;
+               }
+
+               if (__prevDisabled == true)
+               {
+                       ShowFooterItem(__prevIndex, true);
+                       __prevDisabled = false;
+               }
        }
 
+       __stepIndex = index;
+
        return E_SUCCESS;
 }