From 1fe0eb238a1e23d357c4c107798694955b13e7fe Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Thu, 26 Jan 2012 13:24:58 +0100 Subject: [PATCH] showboxes fixes --- qcsrc/menu/item.c | 37 ++++++++++++++++++++++++++++------- qcsrc/menu/item/borderimage.c | 4 ++++ qcsrc/menu/item/checkbox.c | 2 +- qcsrc/menu/item/container.c | 2 ++ qcsrc/menu/item/gecko.c | 1 + 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/qcsrc/menu/item.c b/qcsrc/menu/item.c index 32d1e4c65..d055b1a05 100644 --- a/qcsrc/menu/item.c +++ b/qcsrc/menu/item.c @@ -47,14 +47,37 @@ void Item_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOr float autocvar_menu_showboxes; void Item_draw(entity me) { - if(autocvar_menu_showboxes < 0) + if(autocvar_menu_showboxes) { - draw_Fill('0 0 0', '0.5 0.5 0', '1 0 1', -autocvar_menu_showboxes); - draw_Fill('0.5 0.5 0', '0.5 0.5 0', '1 0 1', -autocvar_menu_showboxes); - } - if(autocvar_menu_showboxes > 0) - { - draw_Fill('0 0 0', '1 1 0', '1 0 1', autocvar_menu_showboxes); + vector rgb = '1 0 1'; + float a = fabs(autocvar_menu_showboxes); + + // don't draw containers and border images + if(me.instanceOfContainer || me.instanceOfBorderImage) + { + rgb = '0 0 0'; + a = 0; + } + +#if 0 + // hack to detect multi drawing + float r = random() * 3; + if(r >= 2) + rgb = '1 0 0'; + else if(r >= 1) + rgb = '0 1 0'; + else + rgb = '0 0 1'; +#endif + if(autocvar_menu_showboxes < 0) + { + draw_Fill('0 0 0', '0.5 0.5 0', rgb, a); + draw_Fill('0.5 0.5 0', '0.5 0.5 0', rgb, a); + } + if(autocvar_menu_showboxes > 0) + { + draw_Fill('0 0 0', '1 1 0', rgb, a); + } } } diff --git a/qcsrc/menu/item/borderimage.c b/qcsrc/menu/item/borderimage.c index bdeed2bb1..b5dc52d05 100644 --- a/qcsrc/menu/item/borderimage.c +++ b/qcsrc/menu/item/borderimage.c @@ -85,5 +85,9 @@ void BorderImage_draw(entity me) draw_fontscale = df; } } + else + { + SUPER(BorderImage).draw(me); + } } #endif diff --git a/qcsrc/menu/item/checkbox.c b/qcsrc/menu/item/checkbox.c index 5ae92d612..94f67ba70 100644 --- a/qcsrc/menu/item/checkbox.c +++ b/qcsrc/menu/item/checkbox.c @@ -42,7 +42,7 @@ void CheckBox_draw(entity me) } else me.srcSuffix = (me.checked ? "1" : "0"); - SUPER(CheckBox).draw(me); me.pressed = s; + SUPER(CheckBox).draw(me); } #endif diff --git a/qcsrc/menu/item/container.c b/qcsrc/menu/item/container.c index 5e924a0ee..0e8fa9ea0 100644 --- a/qcsrc/menu/item/container.c +++ b/qcsrc/menu/item/container.c @@ -177,6 +177,8 @@ void Container_draw(entity me) e.draw(e); me.leaveSubitem(me); } + + SUPER(Container).draw(me); } void Container_focusLeave(entity me) diff --git a/qcsrc/menu/item/gecko.c b/qcsrc/menu/item/gecko.c index a47e5d6b4..5a69c3b87 100644 --- a/qcsrc/menu/item/gecko.c +++ b/qcsrc/menu/item/gecko.c @@ -48,6 +48,7 @@ void Gecko_draw(entity me) fontsize_z = 0.0; draw_Text( '0 0 0', _("Browser not initialized!"), fontsize, '1 1 1', 1.0, 0 ); } + SUPER(Gecko).draw(me); } float Gecko_keyDown(entity me, float scan, float ascii, float shift) -- 2.39.2