Does anybody know why the following code "works" on a Palm 3.0 device, but
not on a Palm 3.5 one.?

When I say it doesn't work, I mean, the repeating buttons, and field text
I try to redraw, and update depending on certain conditions are not
redrawn at all (under Palm 3.5) unless the entire form is redrawn.

Works perfectly under Palm 3.0. Under Palm 3.5, the "ScanPageField" is 
not redrawn, neither are the repeating buttons.

static void ScanDrawPagerInfo(Boolean on) {
        FormPtr form;
        FieldPtr field;

        form = FrmGetActiveForm();
        field = (FieldPtr)GetObjectPtr(ScanPageField);

        if (on) {
                field->attr.editable = true;
                FldDelete(field, 0, FldGetTextLength(field));
                FldEraseField(field);
                StrPrintF(pageField, "Item %d of %d", CurrentSearchResult + 1, 
NumSearchResults);

                FldInsert(field, pageField, StrLen(pageField) );
                FldDrawField(field);
                field->attr.editable = false;
                FrmShowObject(form, FrmGetObjectIndex(form, ScanPageField) 
);
                if (NumSearchResults == 1) {
                        ScanUpdatePagers(false, false);
                
                } else if (CurrentSearchResult == 0) {
                        ScanUpdatePagers(false, true);
                } else if ( CurrentSearchResult == (NumSearchResults -1) ) {
                        ScanUpdatePagers(true, false);
                } else {
                        ScanUpdatePagers(true, true);
                }
        } else {
                FldEraseField(field);
                ScanUpdatePagers(false, false);
        }
}

void ScanUpdatePagers(Boolean scrollableLeft, Boolean scrollableRight) {
        FormPtr form =3D FrmGetActiveForm();
        ControlPtr leftPager = (ControlPtr)GetObjectPtr(ScanResultsLeftRepeating);

        ControlPtr rightPager =3D (ControlPtr)GetObjectPtr(ScanResultsRightRepeating);

        UInt16 ScanResultsLeftIndex =3D FrmGetObjectIndex(form, 
ScanResultsLeftRepeating);

        UInt16 ScanResultsRightIndex =3D FrmGetObjectIndex(form, 
ScanResultsRightRepeating);

        if (scrollableLeft) {
                //CtlSetUsable(leftPager, true);
                //CtlSetEnabled(leftPager, true);
                //CtlSetLabel(leftPager, "\02");
                //if (leftPager->attr.visible == 0)
                //CtlDrawControl(leftPager);
                if (leftPager->attr.visible == 0) {
                        CtlDrawControl(leftPager);
                        FrmShowObject(form, ScanResultsLeftIndex);
                }
        } else {
                //CtlSetUsable(leftPager, false);
                //CtlSetEnabled(leftPager, false);
                if (leftPager->attr.visible == 1)
                        FrmHideObject(form, ScanResultsLeftIndex);
        }

        if (scrollableRight) {
                //CtlSetUsable(rightPager, true);
                //CtlSetEnabled(rightPager, true);
                //CtlSetLabel(rightPager, "\03");
                //if (rightPager->attr.visible == 0)
                //CtlDrawControl(rightPager);
                if (rightPager->attr.visible == 0) {
                        CtlDrawControl(rightPager);
                        FrmShowObject(form, ScanResultsRightIndex);
                }
        } else {
                //CtlSetUsable(rightPager, false);
                //CtlSetEnabled(rightPager, false);
                if (rightPager->attr.visible == 1)
                        FrmHideObject(form, ScanResultsRightIndex);
        }
}



--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to