#include "ui/menudef.h" { \\ Server Join \\ #define W 640 #define H 480 #define BORDER 10 #define PREVIEW_W 112 #define PREVIEW_H 84 #define TOP_W (W-((2*BORDER)+PREVIEW_W)) #define TOP_H PREVIEW_H #define TOP_X BORDER #define TOP_Y BORDER #define TOPBUTT_W (TOP_W/3) #define TOPBUTT_H (TOP_H/2) #define TOP_TOFF_X 20 #define TOP_TOFF_Y 0 #define BCJ_W (W-(2*BORDER)) #define BCJ_H 50 #define BCJ_X BORDER #define BCJ_Y (H-(BCJ_H+BORDER)) #define ARROW_W 50 #define ARROW_H BCJ_H #define BOT_W (W-(2*BORDER)) #define BOT_H 45 #define BOT_X BORDER #define BOT_Y (BCJ_Y-BOT_H) #define BOTBUTT_W (BOT_W/5) #define BOTBUTT_H BOT_H #define SERVER_C 0.45 #define GAME_C 0.15 #define MAP_C 0.2 #define PLAYERS_C 0.1 #define PING_C 0.1 #define LIST_W (W-(2*BORDER)) #define LIST_H (H-((3*BORDER)+TOP_H+BOT_H+BCJ_H)) #define LIST_X BORDER #define LIST_Y ((2*BORDER)+TOP_H) #define LIST_TOFF 5 #define HEADFOOT_H 25 menuDef { name "joinserver" visible MENU_FALSE fullscreen MENU_TRUE rect 0 0 W H focusColor 1 .75 0 1 outOfBoundsClick style WINDOW_STYLE_EMPTY aspectBias ASPECT_NONE onOpen { uiScript InitServerList 3; hide accept_alt; show accept; hide back_alt; show back; uiScript UpdateFilter } onEsc { uiScript closeJoin } itemDef { name background rect 0 0 W H style WINDOW_STYLE_FILLED backcolor 0 0 0 1 visible MENU_TRUE decoration } // VIEW OPTIONS // itemDef { name gametypefield text "Source:" style WINDOW_STYLE_EMPTY ownerdraw UI_NETSOURCE rect TOP_X TOP_Y TOPBUTT_W TOPBUTT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx TOP_TOFF_X textaligny TOP_TOFF_Y textscale .4 forecolor 1 1 1 1 backcolor .5 .5 .5 .5 visible MENU_TRUE action { play "sound/misc/menu1.wav" } } // BUTTONS // itemDef { name refreshSource text "Get New List" type ITEM_TYPE_BUTTON textscale .4 style WINDOW_STYLE_EMPTY rect (TOP_X+TOPBUTT_W) TOP_Y TOPBUTT_W TOPBUTT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx TOP_TOFF_X textaligny TOP_TOFF_Y backcolor .5 .5 .5 .5 forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript RefreshServers } } itemDef { name refreshFilter text "Refresh List" textscale .4 style WINDOW_STYLE_EMPTY type ITEM_TYPE_BUTTON rect (TOP_X+(2*TOPBUTT_W)) TOP_Y TOPBUTT_W TOPBUTT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx TOP_TOFF_X textaligny TOP_TOFF_Y backcolor .5 .5 .5 .5 forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript RefreshFilter } } itemDef { name viewEmpty style WINDOW_STYLE_EMPTY type ITEM_TYPE_YESNO text "View Empty:" cvar "ui_browserShowEmpty" textscale .4 rect TOP_X (TOP_Y+TOPBUTT_H) TOPBUTT_W TOPBUTT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx TOP_TOFF_X textaligny TOP_TOFF_Y forecolor 1 1 1 1 backcolor .5 .5 .5 .5 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript RefreshFilter } } itemDef { name viewFull style WINDOW_STYLE_EMPTY type ITEM_TYPE_YESNO text "View Full:" cvar "ui_browserShowFull" textscale .4 rect (TOP_X+TOPBUTT_W) (TOP_Y+TOPBUTT_H) TOPBUTT_W TOPBUTT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx TOP_TOFF_X textaligny TOP_TOFF_Y forecolor 1 1 1 1 backcolor .5 .5 .5 .5 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript RefreshFilter } } // LEGEND // itemDef { name legend type ITEM_TYPE_TEXT text "[official] = Official Server\n[featured] = Featured Server" style WINDOW_STYLE_EMPTY textstyle ITEM_TEXTSTYLE_NORMAL textscale .25 wrapped rect (TOP_X+(2*TOPBUTT_W)) (TOP_Y+TOPBUTT_H) (TOPBUTT_W) (TOPBUTT_H) textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx TOP_TOFF_X forecolor 1 1 1 1 visible MENU_TRUE decoration } // MAP PREVIEW // itemDef { name mappreview style WINDOW_STYLE_EMPTY ownerdraw UI_NETMAPPREVIEW rect (W-(PREVIEW_W+BORDER)) BORDER PREVIEW_W PREVIEW_H border WINDOW_BORDER_FULL bordercolor .5 .5 .5 1 visible MENU_TRUE } // COLUMNS // itemDef { name server group grpTabs text "Server Name" type ITEM_TYPE_BUTTON textscale .33 style WINDOW_STYLE_FILLED rect LIST_X LIST_Y (SERVER_C*LIST_W) HEADFOOT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx LIST_TOFF border WINDOW_BORDER_FULL bordercolor 0.5 0.5 0.5 1 forecolor 1 1 1 1 backcolor 0 0 0 0 outlinecolor 0.1 0.1 0.1 0.5 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript ServerSort 0; setitemcolor grpColumn backcolor 0 0 0 0; setitemcolor grpTabs backcolor 0 0 0 0; setitemcolor server backcolor 0.3 1 1 0.3; setitemcolor serverColumn backcolor 0.2 0.6 0.6 0.1; } } itemDef { name serverColumn group grpColumn rect LIST_X (LIST_Y+HEADFOOT_H) (SERVER_C*LIST_W) (LIST_H-(2*HEADFOOT_H)) style WINDOW_STYLE_FILLED border WINDOW_BORDER_FULL backcolor 0 0 0 0 bordersize 1 bordercolor .5 .5 .5 1 visible MENU_TRUE decoration } itemDef { name game group grpTabs type ITEM_TYPE_BUTTON text "Game Type" textscale .33 style WINDOW_STYLE_FILLED rect (LIST_X+(SERVER_C*LIST_W)) LIST_Y (GAME_C*LIST_W) HEADFOOT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx LIST_TOFF border WINDOW_BORDER_FULL bordercolor 0.5 0.5 0.5 1 forecolor 1 1 1 1 backcolor 0 0 0 0 outlinecolor 0.1 0.1 0.1 0.5 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript ServerSort 4; setitemcolor grpColumn backcolor 0 0 0 0; setitemcolor grpTabs backcolor 0 0 0 0; setitemcolor game backcolor 0.3 1 1 0.3; setitemcolor gameColumn backcolor 0.2 0.6 0.6 0.1; } } itemDef { name gameColumn group grpColumn rect (LIST_X+(SERVER_C*LIST_W)) (LIST_Y+HEADFOOT_H) (GAME_C*LIST_W) (LIST_H-(2*HEADFOOT_H)) style WINDOW_STYLE_FILLED border WINDOW_BORDER_FULL backcolor 0 0 0 0 bordersize 1 bordercolor .5 .5 .5 1 visible MENU_TRUE decoration } itemDef { name map group grpTabs type ITEM_TYPE_BUTTON text "Map Name" textscale .33 style WINDOW_STYLE_FILLED rect (LIST_X+((SERVER_C+GAME_C)*LIST_W)) LIST_Y (MAP_C*LIST_W) HEADFOOT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx LIST_TOFF border WINDOW_BORDER_FULL bordercolor 0.5 0.5 0.5 1 forecolor 1 1 1 1 backcolor 0 0 0 0 outlinecolor 0.1 0.1 0.1 0.5 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript ServerSort 1; setitemcolor grpColumn backcolor 0 0 0 0; setitemcolor grpTabs backcolor 0 0 0 0; setitemcolor map backcolor 0.3 1 1 0.3; setitemcolor mapColumn backcolor 0.2 0.6 0.6 0.1; } } itemDef { name mapColumn group grpColumn rect (LIST_X+((SERVER_C+GAME_C)*LIST_W)) (LIST_Y+HEADFOOT_H) (MAP_C*LIST_W) (LIST_H-(2*HEADFOOT_H)) style WINDOW_STYLE_FILLED border WINDOW_BORDER_FULL backcolor 0 0 0 0 bordersize 1 bordercolor .5 .5 .5 1 visible MENU_TRUE decoration } itemDef { name players group grpTabs text "Players" type ITEM_TYPE_BUTTON textscale .33 style WINDOW_STYLE_FILLED rect (LIST_X+((SERVER_C+GAME_C+MAP_C)*LIST_W)) LIST_Y (PLAYERS_C*LIST_W) HEADFOOT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx LIST_TOFF border WINDOW_BORDER_FULL bordercolor 0.5 0.5 0.5 1 forecolor 1 1 1 1 backcolor 0 0 0 0 outlinecolor 0.1 0.1 0.1 0.5 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript ServerSort 2; setitemcolor grpColumn backcolor 0 0 0 0; setitemcolor grpTabs backcolor 0 0 0 0; setitemcolor players backcolor 0.3 1 1 0.3; setitemcolor playerColumn backcolor 0.2 0.6 0.6 0.1; } } itemDef { name playerColumn group grpColumn rect (LIST_X+((SERVER_C+GAME_C+MAP_C)*LIST_W)) (LIST_Y+HEADFOOT_H) (PLAYERS_C*LIST_W) (LIST_H-(2*HEADFOOT_H)) style WINDOW_STYLE_FILLED border WINDOW_BORDER_FULL backcolor 0 0 0 0 bordersize 1 bordercolor .5 .5 .5 1 visible MENU_TRUE decoration } itemDef { name Ping group grpTabs text "Ping" type ITEM_TYPE_BUTTON textscale .33 style WINDOW_STYLE_FILLED rect (LIST_X+((SERVER_C+GAME_C+MAP_C+PLAYERS_C)*LIST_W)) LIST_Y (PING_C*LIST_W) HEADFOOT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx LIST_TOFF border WINDOW_BORDER_FULL bordercolor 0.5 0.5 0.5 1 forecolor 1 1 1 1 backcolor 0.3 1 1 0.3 outlinecolor 0.1 0.1 0.1 0.5 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript ServerSort 3; setitemcolor grpColumn backcolor 0 0 0 0; setitemcolor grpTabs backcolor 0 0 0 0; setitemcolor ping backcolor 0.3 1 1 0.3; setitemcolor pingColumn backcolor 0.2 0.6 0.6 0.1; } } itemDef { name pingColumn group grpColumn rect (LIST_X+((SERVER_C+GAME_C+MAP_C+PLAYERS_C)*LIST_W)) (LIST_Y+HEADFOOT_H) (PING_C*LIST_W) (LIST_H-(2*HEADFOOT_H)) style WINDOW_STYLE_FILLED border WINDOW_BORDER_FULL backcolor 0.2 0.6 0.6 0.1 bordersize 1 bordercolor .5 .5 .5 1 visible MENU_TRUE decoration } // SERVER LIST // itemDef { name serverlist rect LIST_X (LIST_Y+HEADFOOT_H) LIST_W (LIST_H-(2*HEADFOOT_H)) type ITEM_TYPE_LISTBOX style WINDOW_STYLE_EMPTY elementwidth 120 elementheight 20 textscale .33 elementtype LISTBOX_TEXT feeder FEEDER_SERVERS border WINDOW_BORDER_FULL bordercolor 0.5 0.5 0.5 1 forecolor 1 1 1 1 backcolor 0.2 0.2 0.2 1 outlinecolor 0.1 0.3 0.3 0.4 visible MENU_TRUE columns 5 LIST_TOFF ((SERVER_C*LIST_W)-(3*LIST_TOFF)) ALIGN_LEFT (LIST_TOFF+((SERVER_C+GAME_C)*LIST_W)) ((MAP_C*LIST_W)-(3*LIST_TOFF)) ALIGN_LEFT (LIST_TOFF+((SERVER_C+GAME_C+MAP_C)*LIST_W)) ((PLAYERS_C*LIST_W)-(3*LIST_TOFF)) ALIGN_LEFT (LIST_TOFF+((SERVER_C+GAME_C+MAP_C+PLAYERS_C)*LIST_W)) ((PING_C*LIST_W)-(3*LIST_TOFF)) ALIGN_LEFT (LIST_TOFF+((SERVER_C)*LIST_W)) ((GAME_C*LIST_W)-(3*LIST_TOFF)) ALIGN_LEFT doubleClick { uiScript JoinServer } } // DATE AND MESSAGE OF THE DAY // itemDef { name refreshdate ownerdraw UI_SERVERREFRESHDATE textscale .33 rect LIST_X (LIST_Y+(LIST_H-HEADFOOT_H)) (LIST_W/2) HEADFOOT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx LIST_TOFF forecolor 1 1 1 1 border WINDOW_BORDER_FULL bordercolor .5 .5 .5 1 visible MENU_TRUE decoration } itemDef { name messageoftheday ownerdraw UI_SERVERMOTD textscale .33 rect (LIST_X+(LIST_W/2)) (LIST_Y+(LIST_H-HEADFOOT_H)) (LIST_W/2) HEADFOOT_H textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx LIST_TOFF forecolor 1 1 1 1 border WINDOW_BORDER_FULL bordercolor .5 .5 .5 1 visible MENU_TRUE decoration } // BOTTOM BUTTONS // itemDef { name password text "Set Password" type ITEM_TYPE_BUTTON textscale .4 style WINDOW_STYLE_EMPTY rect BOT_X BOT_Y BOTBUTT_W BOTBUTT_H textalign ALIGN_CENTER textvalign VALIGN_CENTER forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; open password_popmenu } } itemDef { name createFavorite text "Create Favorite" type ITEM_TYPE_BUTTON textscale .4 style WINDOW_STYLE_EMPTY rect (BOT_X+BOTBUTT_W) BOT_Y BOTBUTT_W BOTBUTT_H textalign ALIGN_CENTER textvalign VALIGN_CENTER forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; open createfavorite_popmenu } } itemDef { name addFavorite text "Add Favorite" type ITEM_TYPE_BUTTON textscale .4 style WINDOW_STYLE_EMPTY ownerdrawFlag UI_SHOW_NOTFAVORITESERVERS rect (BOT_X+(2*BOTBUTT_W)) BOT_Y BOTBUTT_W BOTBUTT_H textalign ALIGN_CENTER textvalign VALIGN_CENTER forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript addFavorite } } itemDef { name delfavorite text "Delete Favorite" type ITEM_TYPE_BUTTON textscale .4 style WINDOW_STYLE_EMPTY ownerdrawFlag UI_SHOW_FAVORITESERVERS rect (BOT_X+(2*BOTBUTT_W)) BOT_Y BOTBUTT_W BOTBUTT_H textalign ALIGN_CENTER textvalign VALIGN_CENTER forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; uiScript DeleteFavorite; uiScript UpdateFilter } } itemDef { name serverinfo text "Server Info" type ITEM_TYPE_BUTTON textscale .4 style WINDOW_STYLE_EMPTY rect (BOT_X+(3*BOTBUTT_W)) BOT_Y BOTBUTT_W BOTBUTT_H textalign ALIGN_CENTER textvalign VALIGN_CENTER forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; open serverinfo_popmenu } } itemDef { name findplayer text "Find a Friend" type ITEM_TYPE_BUTTON textscale .4 style WINDOW_STYLE_EMPTY rect (BOT_X+(4*BOTBUTT_W)) BOT_Y BOTBUTT_W BOTBUTT_H textalign ALIGN_CENTER textvalign VALIGN_CENTER forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; open findplayer_popmenu } } // BACK CREATE JOIN // itemDef { name createServer text "Create Server" textscale .5 style WINDOW_STYLE_EMPTY type ITEM_TYPE_BUTTON rect (BCJ_X+ARROW_W) BCJ_Y (BCJ_W-(2*ARROW_W)) BCJ_H textalign ALIGN_CENTER textvalign VALIGN_CENTER forecolor 1 1 1 1 visible MENU_TRUE action { play "sound/misc/menu1.wav"; open createserver } } itemDef { name back style WINDOW_STYLE_SHADER background "ui/assets/backarrow.tga" rect BCJ_X BCJ_Y ARROW_H ARROW_W aspectBias ALIGN_LEFT visible MENU_TRUE action { play "sound/misc/menu4.wav"; close joinserver } mouseEnter { hide back; show back_alt } } itemDef { name back_alt style WINDOW_STYLE_SHADER background "ui/assets/backarrow_alt.tga" rect BCJ_X BCJ_Y ARROW_H ARROW_W aspectBias ALIGN_LEFT backcolor 0 0 0 0 forecolor 1 1 1 1 visible MENU_FALSE type ITEM_TYPE_BUTTON text "Back" textalign ALIGN_LEFT textvalign VALIGN_CENTER textalignx ARROW_W textscale .6 mouseExit { hide back_alt; show back } action { play "sound/misc/menu4.wav"; close joinserver } } itemDef { name accept style WINDOW_STYLE_SHADER rect ((BCJ_X+BCJ_W)-ARROW_W) BCJ_Y ARROW_H ARROW_W aspectBias ALIGN_RIGHT background "ui/assets/forwardarrow.tga" backcolor 0 0 0 0 forecolor 1 1 1 1 visible MENU_TRUE mouseEnter { hide accept; show accept_alt } action { play "sound/misc/menu1.wav"; uiScript JoinServer } } itemDef { name accept_alt style WINDOW_STYLE_SHADER rect ((BCJ_X+BCJ_W)-ARROW_W) BCJ_Y ARROW_H ARROW_W aspectBias ALIGN_RIGHT background "ui/assets/forwardarrow_alt.tga" backcolor 0 0 0 0 type ITEM_TYPE_BUTTON forecolor 1 1 1 1 visible MENU_FALSE text "Join" textalign ALIGN_RIGHT textvalign VALIGN_CENTER textalignx -ARROW_W textscale .6 mouseExit { hide accept_alt; show accept } action { play "sound/misc/menu1.wav"; uiScript JoinServer } } } }