]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add an input box near the "Save current skin" button to insert a custom filename
authorterencehill <piuntn@gmail.com>
Fri, 27 Nov 2015 14:40:43 +0000 (15:40 +0100)
committerterencehill <piuntn@gmail.com>
Fri, 27 Nov 2015 14:40:43 +0000 (15:40 +0100)
qcsrc/menu/xonotic/dialog_hudsetup_exit.qc
qcsrc/menu/xonotic/hudskinlist.qc

index 63c5e42ec0164ef7b66d556682aff28dbb79443e..bb24a1994b05a761596db035c2370a09ba394f02 100644 (file)
@@ -40,10 +40,12 @@ void XonoticHUDExitDialog_fill(entity me)
                        e.onClick = SetHUDSkin_Click;
                        e.onClickEntity = hudskinlist;
        me.gotoRC(me, me.rows - 2.5, 0);
-               me.TDempty(me, 0.75);
-               me.TD(me, 1, 2.5, e = makeXonoticButton(_("Save current skin"), '0 0 0'));
+               me.TD(me, 1, 2, e = makeXonoticButton(_("Save current skin"), '0 0 0'));
                        e.onClick = SaveHUDSkin_Click;
                        e.onClickEntity = hudskinlist;
+               me.TD(me, 1, 2, e = makeXonoticInputBox(0, string_null));
+                       e.onChange = HUDSkinList_SavedName_Change;
+                       e.onChangeEntity = hudskinlist;
 
        me.gotoRC(me, 0, 4.2); me.setFirstColumn(me, me.currentColumn);
                me.TD(me, 1, 4, makeXonoticTextLabel(0, _("Panel background defaults:")));
index ddb5acd9d33ec47f06e24560a6c1a4c0f5bfe18f..65bdba128c37bfa31b96a06a94310f88f14f91a3 100644 (file)
@@ -28,6 +28,7 @@ CLASS(XonoticHUDSkinList, XonoticListBox)
 
        ATTRIB(XonoticHUDSkinList, filterString, string, string_null)
        ATTRIB(XonoticHUDSkinList, delayedRefreshTime, float, 0)
+       ATTRIB(XonoticHUDSkinList, savedName, string, string_null)
 ENDCLASS(XonoticHUDSkinList)
 
 #ifndef IMPLEMENTATION
@@ -39,6 +40,7 @@ void SetHUDSkin_Click(entity btn, entity me);
 #endif
 void HUDSkinList_Refresh_Click(entity btn, entity me);
 void HUDSkinList_Filter_Change(entity box, entity me);
+void HUDSkinList_SavedName_Change(entity box, entity me);
 #endif
 
 #ifdef IMPLEMENTATION
@@ -189,6 +191,17 @@ void HUDSkinList_Refresh_Click(entity btn, entity me)
        me.setSelected(me, 0); //always select the first element after a list update
 }
 
+void HUDSkinList_SavedName_Change(entity box, entity me)
+{
+       if(me.savedName)
+               strunzone(me.savedName);
+
+       if(box.text != "")
+               me.savedName = strzone(box.text);
+       else
+               me.savedName = string_null;
+}
+
 void HUDSkinList_Filter_Change(entity box, entity me)
 {
        if(me.filterString)
@@ -209,7 +222,10 @@ void HUDSkinList_Filter_Change(entity box, entity me)
 
 void SaveHUDSkin_Click(entity btn, entity me)
 {
-       localcmd("hud save myconfig\n");
+       string s = me.savedName;
+       if(s == "")
+               s = "myconfig";
+       localcmd(sprintf("hud save \"%s\"\n", s));
        me.delayedRefreshTime = time + 1;
 }