diff -urN cui135/ckbox.c cui136/ckbox.c --- cui135/ckbox.c Sun Feb 9 01:00:00 2014 +++ cui136/ckbox.c Mon Apr 28 22:00:00 2014 @@ -20,8 +20,7 @@ if(evt == CUI_EVT_KEY){ if(val == CUI_KEY_ENTER){ - p->v = !p->v; - cui_draw(obj); + cui_ckbox_val_set(obj, !p->v); cui_handler_call(obj, CUI_EVT_BUTTON, p->v); return TRUE; } @@ -48,6 +47,7 @@ obj->flags |= CUI_FLG_CAN_FOCUS; cui_bind(obj, CUI_EVT_DRAW | CUI_EVT_KEY, cui_ckbox_hdr, NULL); p->v = v; + p->vp = NULL; } char * @@ -77,7 +77,16 @@ { cui_ckbox p = (cui_ckbox)obj; p->v = v; + if(p->vp) *p->vp = p->v; cui_draw(obj); +} + +void +cui_ckbox_vp_set(cui obj, int *vp) +{ + cui_ckbox p = (cui_ckbox)obj; + p->vp = vp; + if(p->vp) cui_ckbox_val_set(obj, *p->vp); } /* EOF */ diff -urN cui135/ckbox.h cui136/ckbox.h --- cui135/ckbox.h Sun Feb 2 23:50:00 2014 +++ cui136/ckbox.h Mon Apr 28 22:00:00 2014 @@ -7,6 +7,7 @@ struct cui_base base; cui lb1, lb2; int v; + int *vp; } *cui_ckbox; cui cui_ckbox_new(cui parent, int x, int y, char *s, int v); @@ -16,6 +17,7 @@ void cui_ckbox_str_set(cui obj, char *s); int cui_ckbox_val_get(cui obj); void cui_ckbox_val_set(cui obj, int v); +void cui_ckbox_vp_set(cui obj, int *vp); #endif diff -urN cui135/scpanel.c cui136/scpanel.c --- cui135/scpanel.c Sun Apr 27 22:00:00 2014 +++ cui136/scpanel.c Mon Apr 28 22:00:00 2014 @@ -20,11 +20,11 @@ p->view = cui_base_new(obj, 1, 1, w-2, h-2); p->sheet = cui_base_new(p->view, 0, 0, w-2, h-2); - p->vbar = cui_scbar_new(obj, w-1, 1, 1, h-2, 1, 0); + p->vbar = cui_scbar_new(obj, w-1, 1, 1, h-2>1 ? h-2 : 2, 1, 0); cui_hide(p->vbar); cui_bind(p->vbar, CUI_EVT_BUTTON, cui_scpanel_scbar_hdr, obj); - p->hbar = cui_scbar_new(obj, 1, h-1, w-2, 1, 1, 0); + p->hbar = cui_scbar_new(obj, 1, h-1, w-2>1 ? w-2 : 2, 1, 1, 0); cui_hide(p->hbar); cui_bind(p->hbar, CUI_EVT_BUTTON, cui_scpanel_scbar_hdr, obj);