]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
showboxes fixes
authorRudolf Polzer <divverent@alientrap.org>
Thu, 26 Jan 2012 12:24:58 +0000 (13:24 +0100)
committerRudolf Polzer <divverent@alientrap.org>
Thu, 26 Jan 2012 12:24:58 +0000 (13:24 +0100)
qcsrc/menu/item.c
qcsrc/menu/item/borderimage.c
qcsrc/menu/item/checkbox.c
qcsrc/menu/item/container.c
qcsrc/menu/item/gecko.c

index 32d1e4c653d77e80669e09a9273f849b3e328c92..d055b1a051d535dbfd18736751eb2357c25003a0 100644 (file)
@@ -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);
+               }
        }
 }
 
index bdeed2bb16dd941b2c4ec008e63e5448b77f2c01..b5dc52d05107eeacccec166b60cdd0c37f424bf8 100644 (file)
@@ -85,5 +85,9 @@ void BorderImage_draw(entity me)
                        draw_fontscale = df;
                }
        }
+       else
+       {
+               SUPER(BorderImage).draw(me);
+       }
 }
 #endif
index 5ae92d6122f097bf2d9b4e6060f6377d27229cad..94f67ba709ef7422b1d0b3a76e488b1b9f8f5acf 100644 (file)
@@ -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
index 5e924a0eebf7726cc10825984f6e3563e352b312..0e8fa9ea0a6d1d627e780759e33edb3dac1fa557 100644 (file)
@@ -177,6 +177,8 @@ void Container_draw(entity me)
                e.draw(e);
                me.leaveSubitem(me);
        }
+
+       SUPER(Container).draw(me);
 }
 
 void Container_focusLeave(entity me)
index a47e5d6b4d89df9b42086d692fc9d24d5022d17b..5a69c3b87c17ffa7e032ea2ef0b0768a486cd361 100644 (file)
@@ -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)