]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/item/borderimage.c
Workaround to not draw a big closebutton when HEIGHT_DIALOGBORDER is 0
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / item / borderimage.c
index 1bb458ad1d1d365b4591d5eaeb372583bd12d5e3..1fdec60ef7f8ca9b100d0cd75a4a988e03530abe 100644 (file)
@@ -13,12 +13,11 @@ CLASS(BorderImage) EXTENDS(Label)
        ATTRIB(BorderImage, isNexposeeTitleBar, float, 0)
        ATTRIB(BorderImage, zoomedOutTitleBarPosition, float, 0)
        ATTRIB(BorderImage, zoomedOutTitleBar, float, 0)
-       ATTRIB(BorderImage, borderLines, float, 1)
 ENDCLASS(BorderImage)
 #endif
 
 #ifdef IMPLEMENTATION
-void resizeNotifyBorderImage(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+void BorderImage_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
        me.isNexposeeTitleBar = 0;
        if(me.zoomedOutTitleBar)
@@ -30,37 +29,38 @@ void resizeNotifyBorderImage(entity me, vector relOrigin, vector relSize, vector
        {
                vector scrs;
                scrs = eX * conwidth + eY * conheight;
-               resizeNotifyLabel(me, relOrigin, relSize, boxToGlobal(me.parent.Nexposee_smallOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_smallSize, scrs));
+               SUPER(BorderImage).resizeNotify(me, relOrigin, relSize, boxToGlobal(me.parent.Nexposee_smallOrigin, '0 0 0', scrs), boxToGlobalSize(me.parent.Nexposee_smallSize, scrs));
                me.realOrigin_y = me.realFontSize_y * me.zoomedOutTitleBarPosition;
                me.realOrigin_Nexposeed = me.realOrigin;
                me.realFontSize_Nexposeed = me.realFontSize;
        }
-       resizeNotifyLabel(me, relOrigin, relSize, absOrigin, absSize);
-       me.borderVec = me.borderHeight / absSize_y * (eY + eX * (absSize_y / absSize_x));
+       SUPER(BorderImage).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
+       me.borderVec_x = me.borderHeight / absSize_x;
+       me.borderVec_y = me.borderHeight / absSize_y;
        me.realOrigin_y = 0.5 * (me.borderVec_y - me.realFontSize_y);
        if(me.closeButton)
        {
                // move the close button to the right place
                me.closeButton.Container_origin = '1 0 0' * (1 - me.borderVec_x);
-               me.closeButton.Container_size = me.borderVec;
+               me.closeButton.Container_size = (me.borderHeight > 0) ? me.borderVec : 0.0001 * '1 1 0'; //workaround to not draw a big closebutton if borderHeight is 0
                me.closeButton.color = me.color;
                me.closeButton.colorC = me.color;
                me.closeButton.colorF = me.color;
        }
 }
-void configureBorderImageBorderImage(entity me, string theTitle, float sz, vector theColor, string path, float theBorderHeight)
+void BorderImage_configureBorderImage(entity me, string theTitle, float sz, vector theColor, string path, float theBorderHeight)
 {
        me.configureLabel(me, theTitle, sz, 0.5);
        me.src = path;
        me.color = theColor;
        me.borderHeight = theBorderHeight;
 }
-void drawBorderImage(entity me)
+void BorderImage_draw(entity me)
 {
        //print(vtos(me.borderVec), "\n");
 
        if(me.src)
-               draw_BorderPicture('0 0 0', me.src, '1 1 0', me.color, 1, me.borderLines * me.borderVec);
+               draw_BorderPicture('0 0 0', me.src, '1 1 0', me.color, 1, me.borderVec);
        if(me.fontSize > 0)
        {
                vector ro, rf, df;
@@ -76,7 +76,7 @@ void drawBorderImage(entity me)
                        draw_fontscale = globalToBoxSize(boxToGlobalSize(df, me.realFontSize), rf);
                }
 
-               drawLabel(me);
+               SUPER(BorderImage).draw(me);
 
                if(me.isNexposeeTitleBar)
                {