Fixed enable bug in progress bar

ugfx_release_2.6
inmarket 2014-05-01 16:45:55 +10:00
parent b37370bdb5
commit 763fd061ec
1 changed files with 9 additions and 14 deletions

View File

@ -43,7 +43,7 @@ static const gwidgetVMT progressbarVMT = {
{ {
"Progressbar", // The classname "Progressbar", // The classname
sizeof(GProgressbarObject), // The object size sizeof(GProgressbarObject), // The object size
_destroy, // The destroy routine _destroy, // The destroy routine
_gwidgetRedraw, // The redraw routine _gwidgetRedraw, // The redraw routine
0, // The after-clear routine 0, // The after-clear routine
}, },
@ -180,7 +180,7 @@ void gwinProgressbarDecrement(GHandle gh) {
} }
// used by gwinProgressbarStart(); // used by gwinProgressbarStart();
void _progressbarCallback(void *param) { static void _progressbarCallback(void *param) {
#define gsw ((GProgressbarObject *)gh) #define gsw ((GProgressbarObject *)gh)
GHandle gh = (GHandle)param; GHandle gh = (GHandle)param;
@ -206,11 +206,13 @@ void gwinProgressbarStart(GHandle gh, delaytime_t delay) {
gtimerInit(&(gsw->gt)); gtimerInit(&(gsw->gt));
gtimerStart(&(gsw->gt), _progressbarCallback, gh, FALSE, gsw->delay); gtimerStart(&(gsw->gt), _progressbarCallback, gh, FALSE, gsw->delay);
// if this is not made, the progressbar will not start when the it's already visible #if 0
if (gsw->w.g.flags & GWIN_FLG_VISIBLE) { // if this is not made, the progressbar will not start when it's already visible
gwinSetVisible(gh, FALSE); if (gsw->w.g.flags & GWIN_FLG_VISIBLE) {
gwinSetVisible(gh, TRUE); gwinSetVisible(gh, FALSE);
} gwinSetVisible(gh, TRUE);
}
#endif
#undef gsw #undef gsw
} }
@ -239,13 +241,6 @@ void gwinProgressbarDraw_Std(GWidgetObject *gw, void *param) {
if (gw->g.vmt != (gwinVMT *)&progressbarVMT) if (gw->g.vmt != (gwinVMT *)&progressbarVMT)
return; return;
// disable the auto-update timer if any
#if GFX_USE_GTIMER
if (gtimerIsActive(&(gsw->gt)) && !(gw->g.flags & GWIN_FLG_ENABLED)) {
gtimerStop(&(gsw->gt));
}
#endif
// get the colors right // get the colors right
if ((gw->g.flags & GWIN_FLG_ENABLED)) if ((gw->g.flags & GWIN_FLG_ENABLED))
pcol = &gw->pstyle->pressed; pcol = &gw->pstyle->pressed;