]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/item/dialog.c
Merge remote-tracking branch 'origin/cbrutail/morpheds_minstaanimfix'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / item / dialog.c
index 7733a60302e59c3cfea156a7b7e393bcb9082f5f..da6a4013cecd772051b12c76aac0f0a74a681a1c 100644 (file)
@@ -59,6 +59,7 @@ CLASS(Dialog) EXTENDS(InputContainer)
        ATTRIB(Dialog, zoomedOutTitleBar, float, 0)
 
        ATTRIB(Dialog, backgroundImage, string, string_null)
+       ATTRIB(Dialog, borderLines, float, 1)
        ATTRIB(Dialog, closeButtonImage, string, string_null)
 
        ATTRIB(Dialog, frame, entity, NULL)
@@ -71,13 +72,12 @@ void Dialog_Close(entity button, entity me)
        me.close(me);
 }
 
-void fillDialog(entity me)
+void Dialog_fill(entity me)
 {
 }
 
-void addItemSimpleDialog(entity me, float row, float col, float rowspan, float colspan, entity e, vector v)
+void Dialog_addItemSimple(entity me, float row, float col, float rowspan, float colspan, entity e, vector v)
 {
-       //print(vtos(me.itemSpacing), " ", vtos(me.itemSize), "\n");
        vector o, s;
        o = me.itemOrigin + eX * ( col          * me.itemSpacing_x) + eY * ( row          * me.itemSpacing_y);
        s = me.itemSize   + eX * ((colspan - 1) * me.itemSpacing_x) + eY * ((rowspan - 1) * me.itemSpacing_y);
@@ -88,47 +88,47 @@ void addItemSimpleDialog(entity me, float row, float col, float rowspan, float c
        me.addItem(me, e, o, s, 1);
 }
 
-void gotoRCDialog(entity me, float row, float col)
+void Dialog_gotoRC(entity me, float row, float col)
 {
        me.currentRow = row;
        me.currentColumn = col;
 }
 
-void TRDialog(entity me)
+void Dialog_TR(entity me)
 {
        me.currentRow += 1;
        me.currentColumn = me.firstColumn;
 }
 
-void TDDialog(entity me, float rowspan, float colspan, entity e)
+void Dialog_TD(entity me, float rowspan, float colspan, entity e)
 {
        me.addItemSimple(me, me.currentRow, me.currentColumn, rowspan, colspan, e, '0 0 0');
        me.currentColumn += colspan;
 }
 
-void TDNoMarginDialog(entity me, float rowspan, float colspan, entity e, vector v)
+void Dialog_TDNoMargin(entity me, float rowspan, float colspan, entity e, vector v)
 {
        me.addItemSimple(me, me.currentRow, me.currentColumn, rowspan, colspan, e, v);
        me.currentColumn += colspan;
 }
 
-void setFirstColumnDialog(entity me, float col)
+void Dialog_setFirstColumn(entity me, float col)
 {
        me.firstColumn = col;
 }
 
-void TDemptyDialog(entity me, float colspan)
+void Dialog_TDempty(entity me, float colspan)
 {
        me.currentColumn += colspan;
 }
 
-void configureDialogDialog(entity me)
+void Dialog_configureDialog(entity me)
 {
        entity closebutton;
        float absWidth, absHeight;
 
        me.frame = spawnBorderImage();
-       me.frame.configureBorderImage(me.frame, me.title, me.titleFontSize, me.color, me.backgroundImage, me.titleHeight);
+       me.frame.configureBorderImage(me.frame, me.title, me.titleFontSize, me.color, me.backgroundImage, me.borderLines * me.titleHeight);
        me.frame.zoomedOutTitleBarPosition = me.zoomedOutTitleBarPosition;
        me.frame.zoomedOutTitleBar = me.zoomedOutTitleBar;
        me.frame.alpha = me.alpha;
@@ -138,9 +138,9 @@ void configureDialogDialog(entity me)
                me.titleHeight = 0; // no title bar
 
        absWidth = me.intendedWidth * conwidth;
-       absHeight = me.titleHeight + me.marginTop + me.rows * me.rowHeight + (me.rows - 1) * me.rowSpacing + me.marginBottom;
+       absHeight = me.borderLines * me.titleHeight + me.marginTop + me.rows * me.rowHeight + (me.rows - 1) * me.rowSpacing + me.marginBottom;
        me.itemOrigin  = eX * (me.marginLeft / absWidth)
-                      + eY * ((me.titleHeight + me.marginTop) / absHeight);
+                      + eY * ((me.borderLines * me.titleHeight + me.marginTop) / absHeight);
        me.itemSize    = eX * ((1 - (me.marginLeft + me.marginRight + me.columnSpacing * (me.columns - 1)) / absWidth) / me.columns)
                       + eY * (me.rowHeight / absHeight);
        me.itemSpacing = me.itemSize
@@ -152,10 +152,10 @@ void configureDialogDialog(entity me)
 
        me.fill(me);
 
-       if(me.closable)
+       if(me.closable && me.borderLines > 0)
        {
                closebutton = me.closeButton = spawnButton();
-               closebutton.configureButton(closebutton, "Close", 0, me.closeButtonImage);
+               closebutton.configureButton(closebutton, "", 0, me.closeButtonImage);
                closebutton.onClick = Dialog_Close; closebutton.onClickEntity = me;
                closebutton.srcMulti = 0;
                me.addItem(me, closebutton, '0 0 0', '1 1 0', 1); // put it as LAST
@@ -164,7 +164,7 @@ void configureDialogDialog(entity me)
        me.frame.closeButton = closebutton;
 }
 
-void closeDialog(entity me)
+void Dialog_close(entity me)
 {
        if(me.parent.instanceOfNexposee)
        {
@@ -176,7 +176,7 @@ void closeDialog(entity me)
        }
 }
 
-float keyDownDialog(entity me, float key, float ascii, float shift)
+float Dialog_keyDown(entity me, float key, float ascii, float shift)
 {
        if(me.closable)
        {
@@ -186,6 +186,6 @@ float keyDownDialog(entity me, float key, float ascii, float shift)
                        return 1;
                }
        }
-       return keyDownInputContainer(me, key, ascii, shift);
+       return SUPER(Dialog).keyDown(me, key, ascii, shift);
 }
 #endif