diff -urN cui121/cui_test.c cui122/cui_test.c --- cui121/cui_test.c 2014-04-18 23:00:00.000000000 +0900 +++ cui122/cui_test.c 2014-04-19 00:00:00.000000000 +0900 @@ -537,7 +537,7 @@ cui_termin_new(bs_termin, 0, 0, bs_termin->w, bs_termin->h, sock); } - cui_w_set(bs_view, cui_x2(tab)); + cui_w_set(bs_view, cui_x2(((cui_tab)tab)->scl)); cui_wh_set(bs, cui_x2(bs_view)+1, cui_y2(bs_view)+1); cui_xy_set(((cui_scpanel)bs)->rszbox, bs->w-1, bs->h-1); diff -urN cui121/num.c cui122/num.c --- cui121/num.c 2014-04-10 23:00:00.000000000 +0900 +++ cui122/num.c 2014-04-19 00:00:00.000000000 +0900 @@ -3,6 +3,7 @@ #include "fillbtn.h" #include "scbar.h" #include "handler.h" +#include "key.h" #include #include #include @@ -16,6 +17,37 @@ return obj; } +static int +bar_key_hdr(cui obj, int evt, int val, void *prm) +{ + /* CUI_EVT_KEY */ + + cui num = (cui)prm; + cui_num p = (cui_num)num; + cui_scbar scb = (cui_scbar)p->bar; + + if(scb->thumb_drag) return FALSE; + switch(val){ + case CUI_KEY_ESC: + case CUI_KEY_LEFT: + case CUI_KEY_RIGHT: + cui_quit(); + return TRUE; + } + return FALSE; +} + +static void +bar_key_bind(cui bar, cui_handler hdr, void *prm) +{ + cui_scbar scb = (cui_scbar)bar; + cui_bind(scb->dec, CUI_EVT_KEY, hdr, prm); + cui_bind(scb->dec_pg, CUI_EVT_KEY, hdr, prm); + cui_bind(scb->thumb, CUI_EVT_KEY, hdr, prm); + cui_bind(scb->inc_pg, CUI_EVT_KEY, hdr, prm); + cui_bind(scb->inc, CUI_EVT_KEY, hdr, prm); +} + void cui_num_init(cui obj, cui parent, int x, int y, int w, int init_v, int min_v, int max_v, int bar_h) { @@ -61,6 +93,7 @@ cui_bind(p->fb_inc, CUI_EVT_BUTTON, cui_num_hdr, obj); cui_bind(p->fb_bar, CUI_EVT_BUTTON, cui_num_hdr, obj); + bar_key_bind(p->bar, bar_key_hdr, obj); cui_bind(p->bar, CUI_EVT_BUTTON, cui_num_hdr, obj); cui_bind(p->fb_x, CUI_EVT_BUTTON, cui_num_hdr, obj); }