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