__prevIndex = prevIndex;
__nextIndex = nextIndex;
__stepIndex = currIndex;
+ __prevDisabled = true;
+ if (__stepCount > 1)
+ {
+ __nextDisabled = false;
+ }
+ else
+ {
+ __nextDisabled = true;
+ }
if (__stepCount > 0)
{
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;
}