r4890 - in trunk/data: gfx/menu/default gfx/menu/silver gfx/menu/simplygray gfx/menu/wickedblack gfx/menu/wickedblue gfx/menu/wickedgreen gfx/menu/wickedred gfx/menu/wickedwhite gfx/menu/wickedyellow gfx/menu/wickedz gfx/menu/xaw qcsrc/menu qcsrc/menu/nexuiz
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sun Oct 26 12:45:56 EDT 2008
Author: div0
Date: 2008-10-26 12:45:55 -0400 (Sun, 26 Oct 2008)
New Revision: 4890
Added:
trunk/data/gfx/menu/default/skinpreview.jpg
trunk/data/gfx/menu/silver/skinpreview.jpg
trunk/data/gfx/menu/simplygray/skinpreview.jpg
trunk/data/gfx/menu/wickedblack/skinpreview.jpg
trunk/data/gfx/menu/wickedblue/skinpreview.jpg
trunk/data/gfx/menu/wickedgreen/skinpreview.jpg
trunk/data/gfx/menu/wickedred/skinpreview.jpg
trunk/data/gfx/menu/wickedwhite/skinpreview.jpg
trunk/data/gfx/menu/wickedyellow/skinpreview.jpg
trunk/data/gfx/menu/wickedz/skinpreview.jpg
trunk/data/gfx/menu/xaw/skinpreview.jpg
trunk/data/qcsrc/menu/nexuiz/dialog_settings_audio.c
trunk/data/qcsrc/menu/nexuiz/skinlist.c
Modified:
trunk/data/qcsrc/menu/classes.c
trunk/data/qcsrc/menu/gamecommand.qc
trunk/data/qcsrc/menu/menu.qc
trunk/data/qcsrc/menu/menu.qh
trunk/data/qcsrc/menu/nexuiz/dialog_settings.c
trunk/data/qcsrc/menu/nexuiz/dialog_settings_misc.c
Log:
skin selector by Ronan
Added: trunk/data/gfx/menu/default/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/default/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/silver/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/silver/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/simplygray/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/simplygray/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/wickedblack/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/wickedblack/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/wickedblue/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/wickedblue/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/wickedgreen/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/wickedgreen/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/wickedred/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/wickedred/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/wickedwhite/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/wickedwhite/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/wickedyellow/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/wickedyellow/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/wickedz/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/wickedz/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/data/gfx/menu/xaw/skinpreview.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/data/gfx/menu/xaw/skinpreview.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/data/qcsrc/menu/classes.c
===================================================================
--- trunk/data/qcsrc/menu/classes.c 2008-10-26 16:06:54 UTC (rev 4889)
+++ trunk/data/qcsrc/menu/classes.c 2008-10-26 16:45:55 UTC (rev 4890)
@@ -27,6 +27,7 @@
#include "nexuiz/dialog_settings.c"
#include "nexuiz/dialog_settings_video.c"
#include "nexuiz/dialog_settings_effects.c"
+#include "nexuiz/dialog_settings_audio.c"
#include "nexuiz/dialog_settings_misc.c"
#include "nexuiz/dialog_multiplayer.c"
#include "nexuiz/dialog_multiplayer_playersetup.c"
@@ -50,6 +51,7 @@
#include "nexuiz/dialog_multiplayer_create_mapinfo.c"
#include "nexuiz/gametypebutton.c"
#include "nexuiz/maplist.c"
+#include "nexuiz/skinlist.c"
#include "nexuiz/image.c"
#include "nexuiz/crosshairbutton.c"
#include "nexuiz/playermodel.c"
Modified: trunk/data/qcsrc/menu/gamecommand.qc
===================================================================
--- trunk/data/qcsrc/menu/gamecommand.qc 2008-10-26 16:06:54 UTC (rev 4889)
+++ trunk/data/qcsrc/menu/gamecommand.qc 2008-10-26 16:45:55 UTC (rev 4890)
@@ -61,6 +61,12 @@
return;
}
+ if(argv(0) == "skinselect")
+ {
+ m_goto_skin_selector();
+ return;
+ }
+
if(argv(0) == "dumptree")
{
_dumptree_space = "";
Modified: trunk/data/qcsrc/menu/menu.qc
===================================================================
--- trunk/data/qcsrc/menu/menu.qc 2008-10-26 16:06:54 UTC (rev 4889)
+++ trunk/data/qcsrc/menu/menu.qc 2008-10-26 16:45:55 UTC (rev 4890)
@@ -434,3 +434,14 @@
}
}
}
+
+void() m_goto_skin_selector =
+{
+ if(!menuInitialized)
+ return;
+ // TODO add code to switch back to the skin selector (no idea how to do it now)
+ m_hide();
+ //main.initializeDialog(main, main.firstChild);
+ //main.firstChild.setFocus(main.firstChild, findstring(NULL, name, "__skinselect_window"));
+ m_display();
+}
Modified: trunk/data/qcsrc/menu/menu.qh
===================================================================
--- trunk/data/qcsrc/menu/menu.qh 2008-10-26 16:06:54 UTC (rev 4889)
+++ trunk/data/qcsrc/menu/menu.qh 2008-10-26 16:45:55 UTC (rev 4890)
@@ -29,6 +29,7 @@
void m_hide();
void m_display();
void m_goto(string name);
+void m_goto_skin_selector();
.string name;
entity keyGrabber;
Modified: trunk/data/qcsrc/menu/nexuiz/dialog_settings.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_settings.c 2008-10-26 16:06:54 UTC (rev 4889)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_settings.c 2008-10-26 16:45:55 UTC (rev 4890)
@@ -6,6 +6,7 @@
ATTRIB(NexuizSettingsDialog, intendedWidth, float, 0.96)
ATTRIB(NexuizSettingsDialog, rows, float, 17)
ATTRIB(NexuizSettingsDialog, columns, float, 6)
+ ATTRIB(NexuizSettingsDialog, name, string, "__skinselect_window")
ENDCLASS(NexuizSettingsDialog)
#endif
@@ -18,6 +19,7 @@
me.TD(me, 1, 1, mc.makeTabButton(mc, "Input", makeNexuizInputSettingsTab()));
me.TD(me, 1, 1, mc.makeTabButton(mc, "Video", makeNexuizVideoSettingsTab()));
me.TD(me, 1, 1, mc.makeTabButton(mc, "Effects", makeNexuizEffectsSettingsTab()));
+ me.TD(me, 1, 1, mc.makeTabButton(mc, "Audio", makeNexuizAudioSettingsTab()));
me.TD(me, 1, 1, mc.makeTabButton(mc, "Misc", makeNexuizMiscSettingsTab()));
me.TR(me);
me.TR(me);
Added: trunk/data/qcsrc/menu/nexuiz/dialog_settings_audio.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_settings_audio.c (rev 0)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_settings_audio.c 2008-10-26 16:45:55 UTC (rev 4890)
@@ -0,0 +1,129 @@
+#ifdef INTERFACE
+CLASS(NexuizAudioSettingsTab) EXTENDS(NexuizTab)
+ METHOD(NexuizAudioSettingsTab, fill, void(entity))
+ ATTRIB(NexuizAudioSettingsTab, title, string, "Audio")
+ ATTRIB(NexuizAudioSettingsTab, intendedWidth, float, 0.9)
+ ATTRIB(NexuizAudioSettingsTab, rows, float, 15)
+ ATTRIB(NexuizAudioSettingsTab, columns, float, 6.5)
+ENDCLASS(NexuizAudioSettingsTab)
+entity makeNexuizAudioSettingsTab();
+#endif
+
+#ifdef IMPLEMENTATION
+entity makeNexuizAudioSettingsTab()
+{
+ entity me;
+ me = spawnNexuizAudioSettingsTab();
+ me.configureDialog(me);
+ return me;
+}
+
+void fillNexuizAudioSettingsTab(entity me)
+{
+ entity e, s;
+
+ me.TR(me);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "bgmvolume");
+ me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Music:"));
+ me.TD(me, 1, 2, s);
+ me.TR(me);
+ me.TR(me);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "volume");
+ me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Master:"));
+ me.TD(me, 1, 2, s);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_staticvolume");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Ambient:"));
+ makeMulti(s, "snd_entchannel2volume");
+ me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "volume", "0");
+ setDependentStringNotEqual(s, "volume", "0");
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_worldchannel0volume");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Info:"));
+ me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "volume", "0");
+ setDependentStringNotEqual(s, "volume", "0");
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_entchannel3volume");
+ makeMulti(s, "snd_playerchannel0volume snd_playerchannel3volume");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Items:"));
+ me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "volume", "0");
+ setDependentStringNotEqual(s, "volume", "0");
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_playerchannel6volume");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Pain:"));
+ me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "volume", "0");
+ setDependentStringNotEqual(s, "volume", "0");
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_playerchannel7volume");
+ makeMulti(s, "snd_entchannel7volume");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Player:"));
+ me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "volume", "0");
+ setDependentStringNotEqual(s, "volume", "0");
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_entchannel4volume");
+ makeMulti(s, "snd_playerchannel4volume");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Shots:"));
+ me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "volume", "0");
+ setDependentStringNotEqual(s, "volume", "0");
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_playerchannel2volume");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Voice:"));
+ me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "volume", "0");
+ setDependentStringNotEqual(s, "volume", "0");
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_playerchannel1volume");
+ makeMulti(s, "snd_playerchannel5volume snd_entchannel1volume snd_entchannel5volume");
+ me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Weapons:"));
+ me.TD(me, 1, 2, s);
+ setDependentStringNotEqual(e, "volume", "0");
+ setDependentStringNotEqual(s, "volume", "0");
+
+ me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
+ me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Frequency:"));
+ me.TD(me, 1, 2, e = makeNexuizTextSlider("snd_speed"));
+ e.addValue(e, "8 kHz", "8000");
+ e.addValue(e, "11.025 kHz", "11025");
+ e.addValue(e, "16 kHz", "16000");
+ e.addValue(e, "22.05 kHz", "22050");
+ e.addValue(e, "24 kHz", "24000");
+ e.addValue(e, "32 kHz", "32000");
+ e.addValue(e, "44.1 kHz", "44100");
+ e.addValue(e, "48 kHz", "48000");
+ e.configureNexuizTextSliderValues(e);
+ me.TR(me);
+ me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Channels:"));
+ me.TD(me, 1, 2, e = makeNexuizTextSlider("snd_channels"));
+ e.addValue(e, "Mono", "1");
+ e.addValue(e, "Stereo", "2");
+ e.addValue(e, "2.1", "3");
+ e.addValue(e, "3.1", "4");
+ e.addValue(e, "4.1", "5");
+ e.addValue(e, "5.1", "6");
+ e.addValue(e, "6.1", "7");
+ e.addValue(e, "7.1", "8");
+ e.configureNexuizTextSliderValues(e);
+ me.TR(me);
+ me.TDempty(me, 0.2);
+ me.TD(me, 1, 2.8, e = makeNexuizCheckBox(0, "snd_swapstereo", "Swap Stereo"));
+ me.TR(me);
+
+
+ me.gotoRC(me, me.rows - 1, 0);
+ me.TD(me, 1, me.columns, makeNexuizCommandButton("Apply immediately", '0 0 0', "snd_restart", COMMANDBUTTON_APPLY));
+}
+#endif
Modified: trunk/data/qcsrc/menu/nexuiz/dialog_settings_misc.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/dialog_settings_misc.c 2008-10-26 16:06:54 UTC (rev 4889)
+++ trunk/data/qcsrc/menu/nexuiz/dialog_settings_misc.c 2008-10-26 16:45:55 UTC (rev 4890)
@@ -5,6 +5,7 @@
ATTRIB(NexuizMiscSettingsTab, intendedWidth, float, 0.9)
ATTRIB(NexuizMiscSettingsTab, rows, float, 15)
ATTRIB(NexuizMiscSettingsTab, columns, float, 6.5)
+
ENDCLASS(NexuizMiscSettingsTab)
entity makeNexuizMiscSettingsTab();
#endif
@@ -17,117 +18,26 @@
me.configureDialog(me);
return me;
}
-entity makeNexuizDemoListbox()
-{
- entity me;
- me = spawnListBox();
- me.configureListBox(me, 16, 0.1);
- return me;
-}
void fillNexuizMiscSettingsTab(entity me)
{
- entity e, s;
+ entity e;
+ entity sk;
me.TR(me);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "bgmvolume");
- me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Music:"));
- me.TD(me, 1, 2, s);
+ me.TD(me, 1, 3, e = makeNexuizTextLabel(0, "Menu skins:"));
me.TR(me);
- me.TR(me);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "volume");
- me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Master:"));
- me.TD(me, 1, 2, s);
- me.TR(me);
- me.TDempty(me, 0.2);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_staticvolume");
- me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Ambient:"));
- makeMulti(s, "snd_entchannel2volume");
- me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
- me.TR(me);
- me.TDempty(me, 0.2);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_worldchannel0volume");
- me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Info:"));
- me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
- me.TR(me);
- me.TDempty(me, 0.2);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_entchannel3volume");
- makeMulti(s, "snd_playerchannel0volume snd_playerchannel3volume");
- me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Items:"));
- me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
- me.TR(me);
- me.TDempty(me, 0.2);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_playerchannel6volume");
- me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Pain:"));
- me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
- me.TR(me);
- me.TDempty(me, 0.2);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_playerchannel7volume");
- makeMulti(s, "snd_entchannel7volume");
- me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Player:"));
- me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
- me.TR(me);
- me.TDempty(me, 0.2);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_entchannel4volume");
- makeMulti(s, "snd_playerchannel4volume");
- me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Shots:"));
- me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
- me.TR(me);
- me.TDempty(me, 0.2);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_playerchannel2volume");
- me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Voice:"));
- me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
- me.TR(me);
- me.TDempty(me, 0.2);
- s = makeNexuizDecibelsSlider(-20, 0, 0.5, "snd_playerchannel1volume");
- makeMulti(s, "snd_playerchannel5volume snd_entchannel1volume snd_entchannel5volume");
- me.TD(me, 1, 0.8, e = makeNexuizSliderCheckBox(-1000000, 1, s, "Weapons:"));
- me.TD(me, 1, 2, s);
- setDependentStringNotEqual(e, "volume", "0");
- setDependentStringNotEqual(s, "volume", "0");
-
+ me.TD(me, me.rows - 2, 3, sk = makeNexuizSkinList());
+ me.gotoRC(me, me.rows - 1, 0);
+ me.TDempty(me, 0.5);
+ me.TD(me, 1, 2, e = makeNexuizButton("Apply", '0 0 0'));
+ e.onClick = setSkin;
+ e.onClickEntity = sk;
+ me.TDempty(me, 0.5);
+
+
+
me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
- me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Frequency:"));
- me.TD(me, 1, 2, e = makeNexuizTextSlider("snd_speed"));
- e.addValue(e, "8 kHz", "8000");
- e.addValue(e, "11.025 kHz", "11025");
- e.addValue(e, "16 kHz", "16000");
- e.addValue(e, "22.05 kHz", "22050");
- e.addValue(e, "24 kHz", "24000");
- e.addValue(e, "32 kHz", "32000");
- e.addValue(e, "44.1 kHz", "44100");
- e.addValue(e, "48 kHz", "48000");
- e.configureNexuizTextSliderValues(e);
- me.TR(me);
- me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Channels:"));
- me.TD(me, 1, 2, e = makeNexuizTextSlider("snd_channels"));
- e.addValue(e, "Mono", "1");
- e.addValue(e, "Stereo", "2");
- e.addValue(e, "2.1", "3");
- e.addValue(e, "3.1", "4");
- e.addValue(e, "4.1", "5");
- e.addValue(e, "5.1", "6");
- e.addValue(e, "6.1", "7");
- e.addValue(e, "7.1", "8");
- e.configureNexuizTextSliderValues(e);
- me.TR(me);
- me.TDempty(me, 0.2);
- me.TD(me, 1, 2.8, e = makeNexuizCheckBox(0, "snd_swapstereo", "Swap Stereo"));
- me.TR(me);
- me.TR(me);
+
me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "cl_autodemo", "Demo recording"));
me.TR(me);
me.TR(me);
@@ -149,7 +59,6 @@
me.TD(me, 1, 2.8/3, e = makeNexuizRadioButton(1, "showspeed", "4", "mph"));
me.TD(me, 1, 2.8/3, e = makeNexuizRadioButton(1, "showspeed", "5", "knots"));
- me.gotoRC(me, me.rows - 1, 0);
- me.TD(me, 1, me.columns, makeNexuizCommandButton("Apply immediately", '0 0 0', "snd_restart", COMMANDBUTTON_APPLY));
+
}
#endif
Added: trunk/data/qcsrc/menu/nexuiz/skinlist.c
===================================================================
--- trunk/data/qcsrc/menu/nexuiz/skinlist.c (rev 0)
+++ trunk/data/qcsrc/menu/nexuiz/skinlist.c 2008-10-26 16:45:55 UTC (rev 4890)
@@ -0,0 +1,130 @@
+#ifdef INTERFACE
+CLASS(NexuizSkinList) EXTENDS(NexuizListBox)
+ METHOD(NexuizSkinList, configureNexuizSkinList, void(entity))
+ ATTRIB(NexuizSkinList, rowsPerItem, float, 4)
+ METHOD(NexuizMapList, resizeNotify, void(entity, vector, vector, vector, vector))
+ METHOD(NexuizSkinList, draw, void(entity))
+ METHOD(NexuizSkinList, drawListBoxItem, void(entity, float, vector, float))
+ METHOD(NexuizSkinList, getSkins, void(entity))
+
+ ATTRIB(NexuizSkinList, currentskin, string, "")
+ ATTRIB(NexuizSkinList, skinlist, string, "")
+ ATTRIB(NexuizSkinList, realFontSize, vector, '0 0 0')
+ ATTRIB(NexuizSkinList, columnPreviewOrigin, float, 0)
+ ATTRIB(NexuizSkinList, columnPreviewSize, float, 0)
+ ATTRIB(NexuizSkinList, columnNameOrigin, float, 0)
+ ATTRIB(NexuizSkinList, columnNameSize, float, 0)
+ ATTRIB(NexuizSkinList, checkMarkOrigin, vector, '0 0 0')
+ ATTRIB(NexuizSkinList, checkMarkSize, vector, '0 0 0')
+ ATTRIB(NexuizSkinList, realUpperMargin1, float, 0)
+ ATTRIB(NexuizSkinList, origin, vector, '0 0 0')
+ ATTRIB(NexuizSkinList, itemAbsSize, vector, '0 0 0')
+ENDCLASS(NexuizSkinList)
+
+entity makeNexuizSkinList();
+void setSkin(entity btn, entity me);
+#endif
+
+#ifdef IMPLEMENTATION
+
+entity makeNexuizSkinList()
+{
+ entity me;
+ me = spawnNexuizSkinList();
+ me.configureNexuizSkinList(me);
+ return me;
+}
+
+void configureNexuizSkinListNexuizSkinList(entity me)
+{
+ me.configureNexuizListBox(me);
+ me.getSkins(me);
+ me.currentskin = strzone(cvar_string("menu_skin"));
+}
+
+void getSkinsNexuizSkinList(entity me)
+{
+ float glob,i;
+ string s,_skinlist;
+
+ glob = search_begin("gfx/menu/*/skinvalues.txt", TRUE, TRUE);
+ if(glob < 0)
+ return;
+ for (i=0 ; i < search_getsize(glob) ; ++i)
+ {
+ s=search_getfilename(glob, i);
+ // s contain gfx/menu/skinname/skinvalues.txt
+ if ( tokenizebyseparator(s, "/") == 4 )
+ // add skinname to _skinlist, manage skinname with separates words
+ _skinlist=strcat(_skinlist, "\"", argv(2), "\"", " ");
+ }
+
+ me.nItems = i;
+ me.skinlist = strzone(_skinlist);
+
+ search_end(glob);
+}
+
+void resizeNotifyNexuizSkinList(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+{
+ me.origin = absOrigin;
+ me.itemAbsSize = '0 0 0';
+ resizeNotifyNexuizListBox(me, relOrigin, relSize, absOrigin, absSize);
+
+ me.realFontSize_y = me.fontSize / (me.itemAbsSize_y = (absSize_y * me.itemHeight));
+ me.realFontSize_x = me.fontSize / (me.itemAbsSize_x = (absSize_x * (1 - me.controlWidth)));
+ me.realUpperMargin1 = 0.5 * (1 - 2.5 * me.realFontSize_y);
+ me.realUpperMargin2 = me.realUpperMargin1 + 1.5 * me.realFontSize_y;
+
+ me.columnPreviewOrigin = 0;
+ me.columnPreviewSize = me.itemAbsSize_y / me.itemAbsSize_x * 4 / 3;
+ me.columnNameOrigin = me.columnPreviewOrigin + me.columnPreviewSize + me.realFontSize_x;
+ me.columnNameSize = 1 - me.columnPreviewSize - 2 * me.realFontSize_x;
+
+ me.checkMarkSize = (eX * (me.itemAbsSize_y / me.itemAbsSize_x) + eY) * 0.5;
+ me.checkMarkOrigin = eY + eX * (me.columnPreviewOrigin + me.columnPreviewSize) - me.checkMarkSize;
+}
+
+void drawNexuizSkinList(entity me)
+{
+ drawListBox(me);
+}
+
+void drawListBoxItemNexuizSkinList(entity me, float i, vector absSize, float isSelected)
+{
+
+ string s;
+ float theAlpha;
+
+ tokenize_sane(me.skinlist);
+
+ if(isSelected)
+ draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
+
+ if( me.currentskin == argv(i) )
+ draw_Fill('0 0 0', '1 1 0', SKINCOLOR_MAPLIST_INCLUDEDBG, SKINALPHA_MAPLIST_INCLUDEDBG);
+
+ theAlpha = SKINALPHA_MAPLIST_INCLUDEDFG;
+
+ draw_Picture(me.columnPreviewOrigin * eX, strcat("/gfx/menu/", argv(i), "/skinpreview"), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
+
+ s = draw_TextShortenToWidth(argv(i), me.columnNameSize / me.realFontSize_x, 0);
+ draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 0) * me.realFontSize_x)) * eX, s, me.realFontSize, SKINCOLOR_MAPLIST_TITLE, theAlpha, 0);
+
+}
+
+void setSkin(entity btn, entity me)
+{
+ float i;
+
+ i = me.selectedItem;
+
+ if(i >= me.nItems || i < 0)
+ return;
+
+ tokenize_sane(me.skinlist);
+ cvar_set("menu_skin", argv(i));
+ localcmd("\nmenu_restart\ntogglemenu\ndefer 1 \"menu_cmd skinselect\"\n");
+
+}
+#endif
More information about the nexuiz-commits
mailing list