r3169 - in trunk/data: gfx/menu/default gfx/menu/xaw qcsrc/menu-div0test qcsrc/menu-div0test/item qcsrc/menu-div0test/nexuiz
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Fri Jan 18 06:39:59 EST 2008
Author: div0
Date: 2008-01-18 06:39:59 -0500 (Fri, 18 Jan 2008)
New Revision: 3169
Modified:
trunk/data/gfx/menu/default/skinvalues.txt
trunk/data/gfx/menu/xaw/skinvalues.txt
trunk/data/qcsrc/menu-div0test/item/checkbox.c
trunk/data/qcsrc/menu-div0test/item/inputbox.c
trunk/data/qcsrc/menu-div0test/menu.qc
trunk/data/qcsrc/menu-div0test/nexuiz/campaign.c
trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c
trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c
trunk/data/qcsrc/menu-div0test/nexuiz/maplist.c
trunk/data/qcsrc/menu-div0test/nexuiz/serverlist.c
trunk/data/qcsrc/menu-div0test/skin-customizables.inc
trunk/data/qcsrc/menu-div0test/skin.qh
Log:
make menu more keyboard aware; improve skinnability
Modified: trunk/data/gfx/menu/default/skinvalues.txt
===================================================================
--- trunk/data/gfx/menu/default/skinvalues.txt 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/gfx/menu/default/skinvalues.txt 2008-01-18 11:39:59 UTC (rev 3169)
@@ -1,50 +1,122 @@
-ALPHAS_MAINMENU '0.6 0.8 0.9'
+// font sizes (used for everything)
+FONTSIZE_NORMAL 12
+HEIGHT_NORMAL 1.5
+FONTSIZE_TITLE 24
+HEIGHT_TITLE 1.5
+
+// the individual dialog background colors
+COLOR_DIALOG_MULTIPLAYER '0.7 0.7 1'
+COLOR_DIALOG_SETTINGS '0.7 0.7 1'
+COLOR_DIALOG_TEAMSELECT '1 1 1'
+COLOR_DIALOG_QUIT '1 0 0'
+COLOR_DIALOG_MUTATORS '0.7 0.7 1'
+COLOR_DIALOG_MAPINFO '0.7 0.7 1'
+COLOR_DIALOG_USERBIND '0.7 0.7 1'
+COLOR_DIALOG_SINGLEPLAYER '1 1 0.7'
+
+// mouse
+// uses "cursor" images
+SIZE_CURSOR '32 32 0'
+OFFSET_CURSOR '0 0 0'
+ALPHA_CURSOR_INTRO 0
+
+// general
+// uses "background" images
ALPHA_DISABLED 0.2
-ALPHA_BEHIND 0.3
+ALPHA_BEHIND 0.5
+
+// item: button
+// uses "button" images
+// uses "buttongray" images
+COLOR_BUTTON_N '1 1 1'
COLOR_BUTTON_C '1 1 1'
+COLOR_BUTTON_F '1 1 1'
COLOR_BUTTON_D '1 1 1'
-COLOR_BUTTON_F '1 1 1'
-COLOR_BUTTON_N '1 1 1'
+
+// item: campaign
+ALPHA_CAMPAIGN_SELECTABLE 0.8
+COLOR_CAMPAIGN_SELECTABLE '1 1 1'
+ALPHA_CAMPAIGN_CURRENT 1
+COLOR_CAMPAIGN_CURRENT '1 1 0'
+ALPHA_CAMPAIGN_FUTURE 0.2
+COLOR_CAMPAIGN_FUTURE '1 1 1'
+ALPHA_CAMPAIGN_DESCRIPTION 0.7
+
+// item: checkbox
+// uses "checkbox" images
+COLOR_CHECKBOX_N '1 1 1'
COLOR_CHECKBOX_C '1 1 1'
+COLOR_CHECKBOX_F '1 1 1'
COLOR_CHECKBOX_D '1 1 1'
-COLOR_CHECKBOX_F '1 1 1'
-COLOR_CHECKBOX_N '1 1 1'
-COLOR_DIALOG_MAPINFO '0.7 0.7 1'
-COLOR_DIALOG_MULTIPLAYER '0.7 0.7 1'
-COLOR_DIALOG_MUTATORS '0.7 0.7 1'
-COLOR_DIALOG_QUIT '1 0 0'
-COLOR_DIALOG_SETTINGS '0.7 0.7 1'
-COLOR_DIALOG_TEAMSELECT '1 1 1'
-COLOR_DIALOG_USERBIND '0.7 0.7 1'
-COLOR_DIALOG_SINGLEPLAYER '1 1 0.7'
+
+// item: crosshair button
+// uses "crosshairbutton" images
+
+// item: dialog
+// uses "border" images
+// uses "closebutton" images
+MARGIN_TOP 8
+MARGIN_LEFT 8
+MARGIN_COLUMNS 4
+MARGIN_ROWS 4
+
+// item: input box
+// uses "inputbox" images
+COLOR_INPUTBOX_N '1 1 1'
COLOR_INPUTBOX_F '1 1 1'
-COLOR_INPUTBOX_N '1 1 1'
+MARGIN_INPUTBOX 0.02
+
+// item: list box
+COLOR_LISTBOX_SELECTED '0 0 1'
+ALPHA_LISTBOX_SELECTED 0.5
+
+// item: map list
+COLOR_MAPLIST_TITLE '1 1 1'
COLOR_MAPLIST_AUTHOR '0.4 0.4 0.7'
-COLOR_MAPLIST_TITLE '1 1 1'
+COLOR_MAPLIST_INCLUDEDBG '0 0 0'
+ALPHA_MAPLIST_INCLUDEDFG 1
+ALPHA_MAPLIST_INCLUDEDBG 0.5
+ALPHA_MAPLIST_NOTINCLUDEDFG 0.4
+
+// item: nexposee
+ALPHAS_MAINMENU '0.6 0.8 0.9'
+
+// item: player color button
+// uses "colorbutton" images
+// uses "color" images
+
+// item: player name editor
+// uses "charmap" images
+// uses "charmapbutton" images
+
+// item: radio button
+// uses "radiobutton" images
+COLOR_RADIOBUTTON_N '1 1 1'
COLOR_RADIOBUTTON_C '1 1 1'
+COLOR_RADIOBUTTON_F '1 1 1'
COLOR_RADIOBUTTON_D '1 1 1'
-COLOR_RADIOBUTTON_F '1 1 1'
-COLOR_RADIOBUTTON_N '1 1 1'
+
+// item: scrollbar
+// uses "scrollbar" images
+COLOR_SCROLLBAR_N '1 1 1'
COLOR_SCROLLBAR_F '1 1 1'
-COLOR_SCROLLBAR_N '1 1 1'
COLOR_SCROLLBAR_S '1 1 1'
+WIDTH_SCROLLBAR 16
+
+// item: server list
+ALPHA_SERVERLIST_FULL 0.2
+ALPHA_SERVERLIST_EMPTY 0.5
+COLOR_SERVERLIST_LOWPING '0 1 0'
+COLOR_SERVERLIST_MEDPING '1 1 0'
+COLOR_SERVERLIST_HIGHPING '1 0 0'
+ALPHA_SERVERLIST_HIGHPING 0.2
+
+// item: slider
+// uses "slider" images
+COLOR_SLIDER_N '1 1 1'
COLOR_SLIDER_C '1 1 1'
+COLOR_SLIDER_F '1 1 1'
COLOR_SLIDER_D '1 1 1'
-COLOR_SLIDER_F '1 1 1'
-COLOR_SLIDER_N '1 1 1'
COLOR_SLIDER_S '1 1 1'
-FONTSIZE_NORMAL 12
-FONTSIZE_TITLE 24
-HEIGHT_NORMAL 1.5
-HEIGHT_TITLE 1.5
-MARGIN_COLUMNS 4
-MARGIN_INPUTBOX 0.02
-MARGIN_LEFT 8
-MARGIN_ROWS 4
-MARGIN_TOP 8
+WIDTH_SLIDERTEXT 0.333333333333
TOLERANCE_SLIDER '0.2 2 0'
-WIDTH_SCROLLBAR 16
-WIDTH_SLIDERTEXT 0.333333333333
-SIZE_CURSOR '32 32 0'
-OFFSET_CURSOR '0 0 0'
-ALPHA_CURSOR_INTRO 0
Modified: trunk/data/gfx/menu/xaw/skinvalues.txt
===================================================================
--- trunk/data/gfx/menu/xaw/skinvalues.txt 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/gfx/menu/xaw/skinvalues.txt 2008-01-18 11:39:59 UTC (rev 3169)
@@ -1,14 +1,10 @@
-ALPHAS_MAINMENU '1 1 1'
-ALPHA_DISABLED 0.2
-ALPHA_BEHIND 1
-COLOR_BUTTON_C '1 1 1'
-COLOR_BUTTON_D '1 1 1'
-COLOR_BUTTON_F '1 1 1'
-COLOR_BUTTON_N '1 1 1'
-COLOR_CHECKBOX_C '1 1 1'
-COLOR_CHECKBOX_D '1 1 1'
-COLOR_CHECKBOX_F '1 1 1'
-COLOR_CHECKBOX_N '1 1 1'
+// font sizes (used for everything)
+FONTSIZE_NORMAL 12
+HEIGHT_NORMAL 1.5
+FONTSIZE_TITLE 24
+HEIGHT_TITLE 1.5
+
+// the individual dialog background colors
COLOR_DIALOG_MAPINFO '1 1 1'
COLOR_DIALOG_MULTIPLAYER '1 1 1'
COLOR_DIALOG_MUTATORS '1 1 1'
@@ -17,34 +13,110 @@
COLOR_DIALOG_TEAMSELECT '1 1 1'
COLOR_DIALOG_USERBIND '1 1 1'
COLOR_DIALOG_SINGLEPLAYER '1 1 1'
+
+// mouse
+// uses cursor.tga
+SIZE_CURSOR '32 32 0'
+OFFSET_CURSOR '0 0 0'
+ALPHA_CURSOR_INTRO 1
+
+// general
+// uses background.tga
+ALPHA_DISABLED 0.2
+ALPHA_BEHIND 1
+
+// item: button
+// uses button.tga
+// uses buttongray.tga
+COLOR_BUTTON_N '1 1 1'
+COLOR_BUTTON_C '1 1 1'
+COLOR_BUTTON_F '1 1 1'
+COLOR_BUTTON_D '1 1 1'
+
+// item: campaign
+ALPHA_CAMPAIGN_SELECTABLE 0.8
+COLOR_CAMPAIGN_SELECTABLE '1 1 1'
+ALPHA_CAMPAIGN_CURRENT 1
+COLOR_CAMPAIGN_CURRENT '1 1 0'
+ALPHA_CAMPAIGN_FUTURE 0.2
+COLOR_CAMPAIGN_FUTURE '1 1 1'
+ALPHA_CAMPAIGN_DESCRIPTION 0.7
+
+// item: checkbox
+// uses checkbox.tga
+COLOR_CHECKBOX_N '1 1 1'
+COLOR_CHECKBOX_C '1 1 1'
+COLOR_CHECKBOX_F '1 1 1'
+COLOR_CHECKBOX_D '1 1 1'
+
+// item: crosshair button
+// uses crosshairbutton.tga
+
+// item: dialog
+// uses border.tga
+// uses closebutton.tga
+MARGIN_TOP 8
+MARGIN_LEFT 8
+MARGIN_COLUMNS 4
+MARGIN_ROWS 4
+
+// item: input box
+// uses inputbox.tga
+COLOR_INPUTBOX_N '1 1 1'
COLOR_INPUTBOX_F '1 1 1'
-COLOR_INPUTBOX_N '1 1 1'
+MARGIN_INPUTBOX 0.02
+
+// item: list box
+COLOR_LISTBOX_SELECTED '0 0 1'
+ALPHA_LISTBOX_SELECTED 0.5
+
+// item: map list
+COLOR_MAPLIST_TITLE '1 1 1'
COLOR_MAPLIST_AUTHOR '0.5 0.5 0.5'
-COLOR_MAPLIST_TITLE '1 1 1'
+COLOR_MAPLIST_INCLUDEDBG '0 0 0'
+ALPHA_MAPLIST_INCLUDEDFG 1
+ALPHA_MAPLIST_INCLUDEDBG 0.5
+ALPHA_MAPLIST_NOTINCLUDEDFG 0.4
+
+// item: nexposee
+ALPHAS_MAINMENU '1 1 1'
+
+// item: player color button
+// uses colorbutton.tga
+// uses color.tga
+
+// item: player name editor
+// uses charmap.tga
+// uses charmapbutton.tga
+
+// item: radio button
+// uses radiobutton.tga
+COLOR_RADIOBUTTON_N '1 1 1'
COLOR_RADIOBUTTON_C '1 1 1'
+COLOR_RADIOBUTTON_F '1 1 1'
COLOR_RADIOBUTTON_D '1 1 1'
-COLOR_RADIOBUTTON_F '1 1 1'
-COLOR_RADIOBUTTON_N '1 1 1'
+
+// item: scrollbar
+// uses scrollbar.tga
+COLOR_SCROLLBAR_N '1 1 1'
COLOR_SCROLLBAR_F '1 1 1'
-COLOR_SCROLLBAR_N '1 1 1'
COLOR_SCROLLBAR_S '1 1 1'
+WIDTH_SCROLLBAR 16
+
+// item: server list
+ALPHA_SERVERLIST_FULL 0.2
+ALPHA_SERVERLIST_EMPTY 0.5
+COLOR_SERVERLIST_LOWPING '0 1 0'
+COLOR_SERVERLIST_MEDPING '1 1 0'
+COLOR_SERVERLIST_HIGHPING '1 0 0'
+ALPHA_SERVERLIST_HIGHPING 0.2
+
+// item: slider
+// uses slider.tga
+COLOR_SLIDER_N '1 1 1'
COLOR_SLIDER_C '1 1 1'
+COLOR_SLIDER_F '1 1 1'
COLOR_SLIDER_D '1 1 1'
-COLOR_SLIDER_F '1 1 1'
-COLOR_SLIDER_N '1 1 1'
COLOR_SLIDER_S '1 1 1'
-FONTSIZE_NORMAL 12
-FONTSIZE_TITLE 24
-HEIGHT_NORMAL 1.5
-HEIGHT_TITLE 1.5
-MARGIN_COLUMNS 4
-MARGIN_INPUTBOX 0.02
-MARGIN_LEFT 8
-MARGIN_ROWS 4
-MARGIN_TOP 8
+WIDTH_SLIDERTEXT 0.333333333333
TOLERANCE_SLIDER '0.2 2 0'
-WIDTH_SCROLLBAR 16
-WIDTH_SLIDERTEXT 0.333333333333
-SIZE_CURSOR '32 32 0'
-OFFSET_CURSOR '0.5 0.5 0'
-ALPHA_CURSOR_INTRO 1
Modified: trunk/data/qcsrc/menu-div0test/item/checkbox.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/item/checkbox.c 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/item/checkbox.c 2008-01-18 11:39:59 UTC (rev 3169)
@@ -31,10 +31,6 @@
me.configureButton(me, txt, sz, gfx);
me.align = 0;
}
-void showNotifyCheckBox(entity me)
-{
- me.focusable = !me.disabled;
-}
void drawCheckBox(entity me)
{
float s;
Modified: trunk/data/qcsrc/menu-div0test/item/inputbox.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/item/inputbox.c 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/item/inputbox.c 2008-01-18 11:39:59 UTC (rev 3169)
@@ -8,6 +8,7 @@
METHOD(InputBox, mouseRelease, float(entity, vector))
METHOD(InputBox, mousePress, float(entity, vector))
METHOD(InputBox, mouseDrag, float(entity, vector))
+ METHOD(InputBox, showNotify, void(entity))
ATTRIB(InputBox, src, string, string_null)
@@ -15,6 +16,7 @@
ATTRIB(InputBox, scrollPos, float, 0) // widths
ATTRIB(InputBox, focusable, float, 1)
+ ATTRIB(InputBox, disabled, float, 0)
ATTRIB(InputBox, lastChangeTime, float, 0)
ATTRIB(InputBox, dragScrollTimer, float, 0)
ATTRIB(InputBox, dragScrollPos, vector, '0 0 0')
@@ -131,9 +133,13 @@
if(me.pressed)
me.mouseDrag(me, me.dragScrollPos); // simulate mouseDrag event
+ me.focusable = !me.disabled;
+ if(me.disabled)
+ draw_alpha *= me.disabledAlpha;
+
if(me.src)
{
- if(me.focused)
+ if(me.focused && !me.disabled)
draw_ButtonPicture('0 0 0', strcat(me.src, "_f"), '1 1 0', me.colorF, 1);
else
draw_ButtonPicture('0 0 0', strcat(me.src, "_n"), '1 1 0', me.color, 1);
@@ -222,4 +228,9 @@
draw_ClearClip();
}
+
+void showNotifyInputBox(entity me)
+{
+ me.focusable = !me.disabled;
+}
#endif
Modified: trunk/data/qcsrc/menu-div0test/menu.qc
===================================================================
--- trunk/data/qcsrc/menu-div0test/menu.qc 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/menu.qc 2008-01-18 11:39:59 UTC (rev 3169)
@@ -79,7 +79,7 @@
Skin_ApplySetting(argv(0), argv(1));
fclose(fh);
- draw_setMousePointer("cursor", SKINSIZE_CURSOR, SKINOFFSET_CURSOR);
+ draw_setMousePointer(SKINGFX_CURSOR, SKINSIZE_CURSOR, SKINOFFSET_CURSOR);
conwidth = conheight = -1;
draw_reset();
Modified: trunk/data/qcsrc/menu-div0test/nexuiz/campaign.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/campaign.c 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/campaign.c 2008-01-18 11:39:59 UTC (rev 3169)
@@ -7,6 +7,7 @@
METHOD(NexuizCampaignList, clickListBoxItem, void(entity, float, vector))
METHOD(NexuizCampaignList, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(NexuizCampaignList, setSelected, void(entity, float))
+ METHOD(NexuizCampaignList, keyDown, float(entity, float, float, float))
ATTRIB(NexuizCampaignList, realFontSize, vector, '0 0 0')
ATTRIB(NexuizCampaignList, columnPreviewOrigin, float, 0)
@@ -193,22 +194,22 @@
if(i < me.campaignIndex)
{
- theAlpha = 1;
- theColor = '1 1 1';
+ theAlpha = SKINALPHA_CAMPAIGN_SELECTABLE;
+ theColor = SKINCOLOR_CAMPAIGN_SELECTABLE;
}
else if(i == me.campaignIndex)
{
- theAlpha = 1;
- theColor = '1 1 0';
+ theAlpha = SKINALPHA_CAMPAIGN_CURRENT;
+ theColor = SKINCOLOR_CAMPAIGN_CURRENT;
}
else
{
- theAlpha = 0.2;
- theColor = '1 1 1';
+ theAlpha = SKINALPHA_CAMPAIGN_FUTURE;
+ theColor = SKINCOLOR_CAMPAIGN_FUTURE;
}
if(isSelected)
- draw_Fill('0 0 0', '1 1 0', '0 0 1', 0.5);
+ draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
s = ftos(p);
draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", campaign_mapname[i]), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
@@ -229,7 +230,7 @@
for(j = 0; j < n; ++j)
if(argv(j) != "")
{
- draw_Text(o, argv(j), me.realFontSize, theColor, theAlpha * 0.7, 0);
+ draw_Text(o, argv(j), me.realFontSize, theColor, theAlpha * SKINALPHA_CAMPAIGN_DESCRIPTION, 0);
o_y += me.realFontSize_y;
}
else
@@ -248,4 +249,13 @@
// prevent too late items from being played
setSelectedListBox(me, min(i, me.campaignIndex));
}
+
+float keyDownNexuizCampaignList(entity me, float scan, float ascii, float shift)
+{
+ if(scan == K_ENTER || scan == K_SPACE)
+ CampaignList_LoadMap(me, me);
+ else
+ return keyDownListBox(me, scan, ascii, shift);
+ return 1;
+}
#endif
Modified: trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create.c 2008-01-18 11:39:59 UTC (rev 3169)
@@ -140,8 +140,11 @@
me.TDempty(me, 0.2);
me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Bot names:"));
me.TD(me, 1, 0.7, e = makeNexuizInputBox(1, "bot_prefix"));
+ setDependent(e, "bot_number", 0, -1);
me.TD(me, 1, 0.6, e = makeNexuizTextLabel(0.5, "Spellbinder"));
+ setDependent(e, "bot_number", 0, -1);
me.TD(me, 1, 0.7, e = makeNexuizInputBox(1, "bot_suffix"));
+ setDependent(e, "bot_number", 0, -1);
me.TR(me);
me.TR(me);
me.TD(me, 1, 1, e = makeNexuizButton("Mutators...", '0 0 0'));
Modified: trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/dialog_multiplayer_create_mutators.c 2008-01-18 11:39:59 UTC (rev 3169)
@@ -85,10 +85,11 @@
me.TD(me, 1, 2, e = makeNexuizRadioButton(1, "g_rocketarena", string_null, "Rocket launcher arena"));
me.gotoXY(me, me.rows - 2, 0);
- s = makeNexuizSlider(80, 400, 40, "sv_gravity");
+ s = makeNexuizSlider(80, 400, 8, "sv_gravity");
s.valueDigits = 0;
s.valueDisplayMultiplier = 0.125; // show gravity in percent
me.TD(me, 1, 1, e = makeNexuizSliderCheckBox(800, 1, s, "Low gravity"));
+ e.savedValue = 200; // good on silvercity
me.TD(me, 1, 3, s);
me.gotoXY(me, me.rows - 1, 0);
Modified: trunk/data/qcsrc/menu-div0test/nexuiz/maplist.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/maplist.c 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/maplist.c 2008-01-18 11:39:59 UTC (rev 3169)
@@ -7,6 +7,7 @@
METHOD(NexuizMapList, clickListBoxItem, void(entity, float, vector))
METHOD(NexuizMapList, resizeNotify, void(entity, vector, vector, vector, vector))
METHOD(NexuizMapList, refilter, void(entity))
+ METHOD(NexuizMapList, keyDown, float(entity, float, float, float))
ATTRIB(NexuizMapList, realFontSize, vector, '0 0 0')
ATTRIB(NexuizMapList, columnPreviewOrigin, float, 0)
@@ -153,25 +154,22 @@
// layout: Ping, Map name, Map name, NP, TP, MP
string s;
float p;
- vector theColor;
float theAlpha;
float included;
- theColor = '1 1 1';
-
if(!MapInfo_Get_ByID(i))
return;
included = me.g_maplistCacheQuery(me, i);
if(included)
- theAlpha = 1;
+ theAlpha = SKINALPHA_MAPLIST_INCLUDEDFG;
else
- theAlpha = 0.4;
+ theAlpha = SKINALPHA_MAPLIST_NOTINCLUDEDFG;
if(isSelected)
- draw_Fill('0 0 0', '1 1 0', '0 0 1', 0.5);
+ draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
else if(included)
- draw_Fill('0 0 0', '1 1 0', '0 0 0', 0.5);
+ draw_Fill('0 0 0', '1 1 0', SKINCOLOR_MAPLIST_INCLUDEDBG, SKINALPHA_MAPLIST_INCLUDEDBG);
s = ftos(p);
draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", MapInfo_Map_bspname), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
@@ -253,4 +251,31 @@
me.refilter(me);
}
}
+
+float keyDownNexuizMapList(entity me, float scan, float ascii, float shift)
+{
+ if(scan == K_ENTER)
+ {
+ // pop up map info screen
+ main.mapInfoDialog.loadMapInfo(main.mapInfoDialog, me.selectedItem);
+ DialogOpenButton_Click_withCoords(NULL, main.mapInfoDialog, me.origin + eX * (me.columnNameOrigin * me.size_x) + eY * ((me.itemHeight * me.selectedItem - me.scrollPos) * me.size_y), eY * me.itemAbsSize_y + eX * (me.itemAbsSize_x * me.columnNameSize));
+ }
+ else if(scan == K_SPACE)
+ {
+ me.g_maplistCacheToggle(me, me.selectedItem);
+ }
+ else if(ascii == 43) // +
+ {
+ if not(me.g_maplistCacheQuery(me, me.selectedItem))
+ me.g_maplistCacheToggle(me, me.selectedItem);
+ }
+ else if(ascii == 45) // -
+ {
+ if(me.g_maplistCacheQuery(me, me.selectedItem))
+ me.g_maplistCacheToggle(me, me.selectedItem);
+ }
+ else
+ return keyDownListBox(me, scan, ascii, shift);
+ return 1;
+}
#endif
Modified: trunk/data/qcsrc/menu-div0test/nexuiz/serverlist.c
===================================================================
--- trunk/data/qcsrc/menu-div0test/nexuiz/serverlist.c 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/nexuiz/serverlist.c 2008-01-18 11:39:59 UTC (rev 3169)
@@ -6,6 +6,7 @@
METHOD(NexuizServerList, drawListBoxItem, void(entity, float, vector, float))
METHOD(NexuizServerList, clickListBoxItem, void(entity, float, vector))
METHOD(NexuizServerList, resizeNotify, void(entity, vector, vector, vector, vector))
+ METHOD(NexuizServerList, keyDown, float(entity, float, float, float))
ATTRIB(NexuizServerList, realFontSize, vector, '0 0 0')
ATTRIB(NexuizServerList, realUpperMargin, float, 0)
@@ -323,29 +324,29 @@
float theAlpha;
if(isSelected)
- draw_Fill('0 0 0', '1 1 0', '0 0 1', 0.5);
+ draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
if(gethostcachenumber(SLIST_FIELD_NUMPLAYERS, i) >= gethostcachenumber(SLIST_FIELD_MAXPLAYERS, i))
- theAlpha = 0.2;
+ theAlpha = SKINALPHA_SERVERLIST_FULL;
else if not(gethostcachenumber(SLIST_FIELD_NUMHUMANS, i))
- theAlpha = 0.5;
+ theAlpha = SKINALPHA_SERVERLIST_EMPTY;
else
theAlpha = 1;
p = gethostcachenumber(SLIST_FIELD_PING, i);
if(p < 50)
- theColor = eX * (p / 50) + eY;
+ theColor = SKINCOLOR_SERVERLIST_LOWPING + (SKINCOLOR_SERVERLIST_MEDPING - SKINCOLOR_SERVERLIST_LOWPING) * (p / 50);
else if(p < 150)
- theColor = eX + eY * ((150 - p) / 100);
+ theColor = SKINCOLOR_SERVERLIST_MEDPING + (SKINCOLOR_SERVERLIST_HIGHPING - SKINCOLOR_SERVERLIST_MEDPING) * ((p - 50) / 100);
else if(p < 650)
{
- theColor = eX;
- theAlpha *= 0.1 + 0.9 * (650 - p) / 500;
+ theColor = SKINCOLOR_SERVERLIST_HIGHPING;
+ theAlpha *= 1 + (SKINALPHA_SERVERLIST_HIGHPING - 1) * ((p - 150) / 500);
}
else
{
theColor = eX;
- theAlpha *= 0.1;
+ theAlpha *= SKINALPHA_SERVERLIST_HIGHPING;
}
s = ftos(p);
@@ -357,4 +358,13 @@
s = strcat(ftos(gethostcachenumber(SLIST_FIELD_NUMHUMANS, i)), "/", ftos(gethostcachenumber(SLIST_FIELD_MAXPLAYERS, i)));
draw_Text(me.realUpperMargin * eY + (me.columnPlayersOrigin + (me.columnPlayersSize - draw_TextWidth(s, 0) * me.realFontSize_x) * 0.5) * eX, s, me.realFontSize, theColor, theAlpha, 0);
}
+
+float keyDownNexuizServerList(entity me, float scan, float ascii, float shift)
+{
+ if(scan == K_ENTER || scan == K_SPACE)
+ ServerList_Connect_Click(NULL, me);
+ else
+ return keyDownListBox(me, scan, ascii, shift);
+ return 1;
+}
#endif
Modified: trunk/data/qcsrc/menu-div0test/skin-customizables.inc
===================================================================
--- trunk/data/qcsrc/menu-div0test/skin-customizables.inc 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/skin-customizables.inc 2008-01-18 11:39:59 UTC (rev 3169)
@@ -1,82 +1,155 @@
+#if 0
+"Perl code to convert this to a skinvalues.txt file.";
+while(<DATA>)
+{
+ chomp;
+ if(/^\s*(?:SKINFLOAT|SKINVECTOR)\(([A-Z_]+), ([-'0-9. ]+)\);$/)
+ {
+ printf "%-31s %s\n", $1, $2;
+ }
+ elsif(/^\s*SKINSTRING\(([A-Z_]+), "(.*)"\);$/)
+ {
+ printf "// uses \"$2\" images\n";
+ }
+ elsif(/^$/)
+ {
+ print "\n";
+ }
+ elsif(/^\s+\/\/ (.*)$/)
+ {
+ print "// $1\n";
+ }
+ elsif(/^SKINBEGIN$|^SKINEND$|^#endif$/)
+ {
+ }
+ else
+ {
+ print "!!! $_\n";
+ }
+}
+__DATA__
+#endif
SKINBEGIN
+ // font sizes (used for everything)
SKINFLOAT(FONTSIZE_NORMAL, 12);
SKINFLOAT(HEIGHT_NORMAL, 1.5);
-
SKINFLOAT(FONTSIZE_TITLE, 24);
SKINFLOAT(HEIGHT_TITLE, 1.5);
+ // the individual dialog background colors
+ SKINVECTOR(COLOR_DIALOG_MULTIPLAYER, '0.7 0.7 1');
+ SKINVECTOR(COLOR_DIALOG_SETTINGS, '0.7 0.7 1');
+ SKINVECTOR(COLOR_DIALOG_TEAMSELECT, '1 1 1');
+ SKINVECTOR(COLOR_DIALOG_QUIT, '1 0 0');
+ SKINVECTOR(COLOR_DIALOG_MUTATORS, '0.7 0.7 1');
+ SKINVECTOR(COLOR_DIALOG_MAPINFO, '0.7 0.7 1');
+ SKINVECTOR(COLOR_DIALOG_USERBIND, '0.7 0.7 1');
+ SKINVECTOR(COLOR_DIALOG_SINGLEPLAYER, '1 1 0.7');
+
+ // mouse
+ SKINSTRING(GFX_CURSOR, "cursor");
+ SKINVECTOR(SIZE_CURSOR, '32 32 0');
+ SKINVECTOR(OFFSET_CURSOR, '0 0 0');
+ SKINFLOAT(ALPHA_CURSOR_INTRO, 0);
+
+ // general
+ SKINSTRING(GFX_BACKGROUND, "background");
+ SKINFLOAT(ALPHA_DISABLED, 0.2);
+ SKINFLOAT(ALPHA_BEHIND, 0.5);
+
+ // item: button
SKINSTRING(GFX_BUTTON, "button");
+ SKINSTRING(GFX_BUTTON_GRAY, "buttongray");
SKINVECTOR(COLOR_BUTTON_N, '1 1 1');
SKINVECTOR(COLOR_BUTTON_C, '1 1 1');
SKINVECTOR(COLOR_BUTTON_F, '1 1 1');
SKINVECTOR(COLOR_BUTTON_D, '1 1 1');
- SKINSTRING(GFX_BUTTON_GRAY, "buttongray");
+ // item: campaign
+ SKINFLOAT(ALPHA_CAMPAIGN_SELECTABLE, 0.8);
+ SKINVECTOR(COLOR_CAMPAIGN_SELECTABLE, '1 1 1');
+ SKINFLOAT(ALPHA_CAMPAIGN_CURRENT, 1);
+ SKINVECTOR(COLOR_CAMPAIGN_CURRENT, '1 1 0');
+ SKINFLOAT(ALPHA_CAMPAIGN_FUTURE, 0.2);
+ SKINVECTOR(COLOR_CAMPAIGN_FUTURE, '1 1 1');
+ SKINFLOAT(ALPHA_CAMPAIGN_DESCRIPTION, 0.7);
+ // item: checkbox
SKINSTRING(GFX_CHECKBOX, "checkbox");
SKINVECTOR(COLOR_CHECKBOX_N, '1 1 1');
SKINVECTOR(COLOR_CHECKBOX_C, '1 1 1');
SKINVECTOR(COLOR_CHECKBOX_F, '1 1 1');
SKINVECTOR(COLOR_CHECKBOX_D, '1 1 1');
+ // item: crosshair button
+ SKINSTRING(GFX_CROSSHAIRBUTTON, "crosshairbutton");
+
+ // item: dialog
SKINSTRING(GFX_DIALOGBORDER, "border");
SKINSTRING(GFX_CLOSEBUTTON, "closebutton");
SKINFLOAT(MARGIN_TOP, 8);
SKINFLOAT(MARGIN_LEFT, 8);
SKINFLOAT(MARGIN_COLUMNS, 4);
SKINFLOAT(MARGIN_ROWS, 4);
- SKINVECTOR(COLOR_DIALOG_MULTIPLAYER, '0.7 0.7 1');
- SKINVECTOR(COLOR_DIALOG_SETTINGS, '0.7 0.7 1');
- SKINVECTOR(COLOR_DIALOG_TEAMSELECT, '1 1 1');
- SKINVECTOR(COLOR_DIALOG_QUIT, '1 0 0');
- SKINVECTOR(COLOR_DIALOG_MUTATORS, '0.7 0.7 1');
- SKINVECTOR(COLOR_DIALOG_MAPINFO, '0.7 0.7 1');
- SKINVECTOR(COLOR_DIALOG_USERBIND, '0.7 0.7 1');
- SKINVECTOR(COLOR_DIALOG_SINGLEPLAYER, '1 1 0.7');
- SKINSTRING(GFX_SLIDER, "slider");
- SKINVECTOR(COLOR_SLIDER_N, '1 1 1');
- SKINVECTOR(COLOR_SLIDER_C, '1 1 1');
- SKINVECTOR(COLOR_SLIDER_F, '1 1 1');
- SKINVECTOR(COLOR_SLIDER_D, '1 1 1');
- SKINVECTOR(COLOR_SLIDER_S, '1 1 1');
- SKINFLOAT(WIDTH_SLIDERTEXT, 0.333333333333);
- SKINVECTOR(TOLERANCE_SLIDER, '0.2 2 0');
+ // item: input box
+ SKINSTRING(GFX_INPUTBOX, "inputbox");
+ SKINVECTOR(COLOR_INPUTBOX_N, '1 1 1');
+ SKINVECTOR(COLOR_INPUTBOX_F, '1 1 1');
+ SKINFLOAT(MARGIN_INPUTBOX, 0.02);
+ // item: list box
+ SKINVECTOR(COLOR_LISTBOX_SELECTED, '0 0 1');
+ SKINFLOAT(ALPHA_LISTBOX_SELECTED, 0.5);
+
+ // item: map list
+ SKINVECTOR(COLOR_MAPLIST_TITLE, '1 1 1');
+ SKINVECTOR(COLOR_MAPLIST_AUTHOR, '0.4 0.4 0.7');
+ SKINVECTOR(COLOR_MAPLIST_INCLUDEDBG, '0 0 0');
+ SKINFLOAT(ALPHA_MAPLIST_INCLUDEDFG, 1);
+ SKINFLOAT(ALPHA_MAPLIST_INCLUDEDBG, 0.5);
+ SKINFLOAT(ALPHA_MAPLIST_NOTINCLUDEDFG, 0.4);
+
+ // item: nexposee
+ SKINVECTOR(ALPHAS_MAINMENU, '0.6 0.8 0.9');
+
+ // item: player color button
+ SKINSTRING(GFX_COLORBUTTON, "colorbutton");
+ SKINSTRING(GFX_COLORBUTTON_COLOR, "color");
+
+ // item: player name editor
+ SKINSTRING(GFX_CHARMAP, "charmap");
+ SKINSTRING(GFX_CHARMAP_SELECTED, "charmapbutton");
+
+ // item: radio button
SKINSTRING(GFX_RADIOBUTTON, "radiobutton");
SKINVECTOR(COLOR_RADIOBUTTON_N, '1 1 1');
SKINVECTOR(COLOR_RADIOBUTTON_C, '1 1 1');
SKINVECTOR(COLOR_RADIOBUTTON_F, '1 1 1');
SKINVECTOR(COLOR_RADIOBUTTON_D, '1 1 1');
- SKINSTRING(GFX_COLORBUTTON, "colorbutton");
- SKINSTRING(GFX_COLORBUTTON_COLOR, "color");
- SKINSTRING(GFX_CROSSHAIRBUTTON, "crosshairbutton");
+ // item: scrollbar
SKINSTRING(GFX_SCROLLBAR, "scrollbar");
SKINVECTOR(COLOR_SCROLLBAR_N, '1 1 1');
SKINVECTOR(COLOR_SCROLLBAR_F, '1 1 1');
SKINVECTOR(COLOR_SCROLLBAR_S, '1 1 1');
SKINFLOAT(WIDTH_SCROLLBAR, 16);
- SKINSTRING(GFX_INPUTBOX, "inputbox");
- SKINVECTOR(COLOR_INPUTBOX_N, '1 1 1');
- SKINVECTOR(COLOR_INPUTBOX_F, '1 1 1');
- SKINFLOAT(MARGIN_INPUTBOX, 0.02);
+ // item: server list
+ SKINFLOAT(ALPHA_SERVERLIST_FULL, 0.2);
+ SKINFLOAT(ALPHA_SERVERLIST_EMPTY, 0.5);
+ SKINVECTOR(COLOR_SERVERLIST_LOWPING, '0 1 0');
+ SKINVECTOR(COLOR_SERVERLIST_MEDPING, '1 1 0');
+ SKINVECTOR(COLOR_SERVERLIST_HIGHPING, '1 0 0');
+ SKINFLOAT(ALPHA_SERVERLIST_HIGHPING, 0.2);
- SKINVECTOR(COLOR_MAPLIST_TITLE, '1 1 1');
- SKINVECTOR(COLOR_MAPLIST_AUTHOR, '0.4 0.4 0.7');
-
- SKINFLOAT(ALPHA_DISABLED, 0.2);
- SKINFLOAT(ALPHA_BEHIND, 0.5);
-
- SKINSTRING(GFX_CHARMAP, "charmap");
- SKINSTRING(GFX_CHARMAP_SELECTED, "charmapbutton");
-
- SKINSTRING(GFX_BACKGROUND, "background");
-
- SKINVECTOR(ALPHAS_MAINMENU, '0.6 0.8 0.9');
-
- SKINVECTOR(SIZE_CURSOR, '32 32 0');
- SKINVECTOR(OFFSET_CURSOR, '0 0 0');
- SKINFLOAT(ALPHA_CURSOR_INTRO, 0);
+ // item: slider
+ SKINSTRING(GFX_SLIDER, "slider");
+ SKINVECTOR(COLOR_SLIDER_N, '1 1 1');
+ SKINVECTOR(COLOR_SLIDER_C, '1 1 1');
+ SKINVECTOR(COLOR_SLIDER_F, '1 1 1');
+ SKINVECTOR(COLOR_SLIDER_D, '1 1 1');
+ SKINVECTOR(COLOR_SLIDER_S, '1 1 1');
+ SKINFLOAT(WIDTH_SLIDERTEXT, 0.333333333333);
+ SKINVECTOR(TOLERANCE_SLIDER, '0.2 2 0');
SKINEND
Modified: trunk/data/qcsrc/menu-div0test/skin.qh
===================================================================
--- trunk/data/qcsrc/menu-div0test/skin.qh 2008-01-18 09:18:10 UTC (rev 3168)
+++ trunk/data/qcsrc/menu-div0test/skin.qh 2008-01-18 11:39:59 UTC (rev 3169)
@@ -14,7 +14,7 @@
#define SKINVECTOR(name,def) case #name: SKIN##name = stov(value); break
#define SKINFLOAT(name,def) case #name: SKIN##name = stof(value); break
#define SKINSTRING(name,def) break
-#define SKINEND default: print("Invalid key in skin file: ", key, "\n"); } }
+#define SKINEND case "": break; case "//": break; default: print("Invalid key in skin file: ", key, "\n"); } }
#include "skin-customizables.inc"
#undef SKINEND
#undef SKINSTRING
More information about the nexuiz-commits
mailing list