diff -urN cui43/button.c cui44/button.c --- cui43/button.c 2014-01-10 02:20:00.000000000 +0900 +++ cui44/button.c 2014-01-31 02:40:00.000000000 +0900 @@ -48,8 +48,8 @@ int n = strlen(s); cui_base_init(obj, parent, x, y, n+2, 1); p->lb1 = cui_label_new(obj, 0, 0, "("); - p->lb2 = cui_label_new(obj, 1, 0, s); - p->lb3 = cui_label_new(obj, 1+n, 0, ")"); + p->lb2 = cui_label_new(obj, cui_x2(p->lb1), 0, s); + p->lb3 = cui_label_new(obj, cui_x2(p->lb2), 0, ")"); obj->flags |= CUI_FLG_CAN_FOCUS; cui_bind(obj, CUI_EVT_DRAW | CUI_EVT_KEY, cui_button_hdr, NULL); } @@ -66,8 +66,8 @@ { cui_button p = (cui_button)obj; cui_label_str_set(p->lb2, s); - cui_x_set(p->lb3, p->lb1->w + p->lb2->w); - cui_w_set(obj, p->lb3->x + p->lb3->w); + cui_x_set(p->lb3, cui_x2(p->lb2)); + cui_w_set(obj, cui_x2(p->lb3)); } /* EOF */ diff -urN cui43/ckbox.c cui44/ckbox.c --- cui43/ckbox.c 2014-01-31 02:30:00.000000000 +0900 +++ cui44/ckbox.c 2014-01-31 02:40:00.000000000 +0900 @@ -43,8 +43,8 @@ cui_ckbox p = (cui_ckbox)obj; cui_base_init(obj, parent, x, y, 0, 1); p->lb1 = cui_label_new(obj, 0, 0, "[ ] "); - p->lb2 = cui_label_new(obj, 4, 0, s); - obj->w = p->lb2->x + p->lb2->w; + p->lb2 = cui_label_new(obj, cui_x2(p->lb1), 0, s); + obj->w = cui_x2(p->lb2); obj->flags |= CUI_FLG_CAN_FOCUS; cui_bind(obj, CUI_EVT_DRAW | CUI_EVT_KEY, cui_ckbox_hdr, NULL); p->v = v; @@ -62,7 +62,7 @@ { cui_ckbox p = (cui_ckbox)obj; cui_label_str_set(p->lb2, s); - cui_w_set(obj, p->lb2->x + p->lb2->w); + cui_w_set(obj, cui_x2(p->lb2)); } /* EOF */ diff -urN cui43/cui.c cui44/cui.c --- cui43/cui.c 2014-01-31 02:10:00.000000000 +0900 +++ cui44/cui.c 2014-01-31 02:40:00.000000000 +0900 @@ -171,6 +171,18 @@ return dx * dx + dy * dy; } +int +cui_x2(cui obj) +{ + return obj->x + obj->w; +} + +int +cui_y2(cui obj) +{ + return obj->y + obj->h; +} + void cui_draw(cui obj) { diff -urN cui43/cui.h cui44/cui.h --- cui43/cui.h 2014-01-31 01:40:00.000000000 +0900 +++ cui44/cui.h 2014-01-31 02:40:00.000000000 +0900 @@ -48,6 +48,8 @@ int cui_gx(cui obj); int cui_gy(cui obj); int cui_glen(cui o1, cui o2); +int cui_x2(cui obj); +int cui_y2(cui obj); void cui_draw(cui obj); void cui_draw_chain(cui obj); void cui_hide(cui obj); diff -urN cui43/cui_test.c cui44/cui_test.c --- cui43/cui_test.c 2014-01-31 02:30:00.000000000 +0900 +++ cui44/cui_test.c 2014-01-31 02:40:00.000000000 +0900 @@ -17,10 +17,10 @@ if(strcmp(s, "reboot") == 0 || strcmp(s, "power off") == 0){ cui_label_str_set(lb, "It's a joke"); cui_button_str_set(b1, "sorry"); - cui_x_set(b1, lb->w + 1); + cui_x_set(b1, cui_x2(lb) + 1); cui_hide(b2); cui_focus_set(b1); - cui_w_set(lb, b1->x + b1->w); + cui_w_set(lb, cui_x2(b1)); }else{ cui_hide(lb); cui_focus_set(NULL); @@ -35,8 +35,8 @@ { cui lb = cui_label_new(parent, x, y, "system panic!"); cui b1 = cui_button_new(lb, lb->w + 1, 0, "reboot"); - cui b2 = cui_button_new(lb, b1->x + b1->w + 1, 0, "power off"); - cui_w_set(lb, b2->x + b2->w); + cui b2 = cui_button_new(lb, cui_x2(b1) + 1, 0, "power off"); + cui_w_set(lb, cui_x2(b2)); cui_bind(b1, CUI_EVT_BUTTON, joke_hdr, lb); cui_bind(b2, CUI_EVT_BUTTON, joke_hdr, lb); return lb; @@ -98,10 +98,10 @@ { cui base = cui_base_new(parent, x, y, 0, 0); cui al = cui_button_new(base, 0, 1, "L"); - cui ad = cui_button_new(base, al->x + al->w, 1, "D"); - cui ar = cui_button_new(base, ad->x + ad->w, 1, "R"); + cui ad = cui_button_new(base, cui_x2(al), 1, "D"); + cui ar = cui_button_new(base, cui_x2(ad), 1, "R"); cui au = cui_button_new(base, ad->x, 0, "U"); - base->w = ar->x + ar->w; + base->w = cui_x2(ar); base->h = 2; cui_bind(al, CUI_EVT_BUTTON, arrow_hdr, prm); cui_bind(ad, CUI_EVT_BUTTON, arrow_hdr, prm); @@ -116,9 +116,9 @@ cui base = cui_panel_new(parent, x, y, 0, 0); cui dlg = cui_simple_dialog_new(base, 0, 0, "Are you sure ?", "OK", "Cancel"); cui_simple_dialog p = (cui_simple_dialog)dlg; - cui_simple_dialog_new(base, dlg->x + dlg->w, dlg->y, "Continue ?", "Yes", "No"); - cui_simple_dialog_new(base, dlg->x, dlg->y + dlg->h, "How are you ?", "^_^", "T_T"); - cui_simple_dialog_new(base, dlg->x + dlg->w, dlg->y + dlg->h, "(A1) (B2)", "C3", "D4"); + cui_simple_dialog_new(base, cui_x2(dlg), dlg->y, "Continue ?", "Yes", "No"); + cui_simple_dialog_new(base, dlg->x, cui_y2(dlg), "How are you ?", "^_^", "T_T"); + cui_simple_dialog_new(base, cui_x2(dlg), cui_y2(dlg), "(A1) (B2)", "C3", "D4"); base->w = dlg->w * 2; base->h = dlg->h * 2; cui_bind(p->btn1, CUI_EVT_BUTTON, my_hdr, p); @@ -131,15 +131,15 @@ { cui base = cui_panel_new(NULL, 0, 0, 40, 20); cui ck = cui_ckbox_new(base, 2, 1, "Show", FALSE); - cui mv_btn = cui_button_new(base, ck->x + ck->w + 2, ck->y, "move"); - cui mv_lb = cui_label_new(base, mv_btn->x + mv_btn->w + 2, mv_btn->y, ""); + cui mv_btn = cui_button_new(base, cui_x2(ck) + 2, ck->y, "move"); + cui mv_lb = cui_label_new(base, cui_x2(mv_btn) + 2, mv_btn->y, ""); cui_simple_dialog p; cui small = cui_panel_new(base, 2, 3, base->w - (2 * 2), base->h - (3 + 1)); cui small2 = cui_base_new(small, 1, 1, small->w - 2, small->h - 2); cui big = big_new(small2, 0, 0, &p); - arrow_new(base, mv_lb->x + mv_lb->w + 2, mv_lb->y, big); + arrow_new(base, cui_x2(mv_lb) + 2, mv_lb->y, big); small->flags |= CUI_FLG_HIDE; cui_bind(ck, CUI_EVT_BUTTON, my_hdr2, small);