Skip to content
This repository was archived by the owner on Jan 10, 2022. It is now read-only.

Commit f05d623

Browse files
author
F1F7Y
committed
Arrow nav + UI improvements
1 parent 2cffd31 commit f05d623

File tree

3 files changed

+59
-16
lines changed

3 files changed

+59
-16
lines changed

mod.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"Name" : "Better.Serverbrowser",
3-
"Description" : "Improves the northstar serverbrowser\n\nReport issues at: https://github.com/F1F7Y/Better.Serverbrowser/issues",
4-
"Version": "1.2.1",
3+
"Description" : "Improves the northstar serverbrowser\n\nReport issues at: https://github.com/F1F7Y/Better.Serverbrowser/issues\nor on discord: Fifty#8113",
4+
"Version": "1.2.0",
55
"LoadPriority": 1,
66
"ConVars": [
77
{

mod/resource/ui/menus/server_browser.menu

+24-8
Original file line numberDiff line numberDiff line change
@@ -1573,6 +1573,7 @@ resource/ui/menus/mods_browse.menu
15731573
pin_to_sibling ButtonRowAnchor
15741574
pin_corner_to_sibling TOP_LEFT
15751575
pin_to_sibling_corner TOP_LEFT
1576+
navRight BtnServerJoin
15761577
}
15771578
BtnServer2
15781579
{
@@ -1587,6 +1588,7 @@ resource/ui/menus/mods_browse.menu
15871588
pin_to_sibling_corner BOTTOM_LEFT
15881589
navUp BtnServer1
15891590
navDown BtnServer3
1591+
navRight BtnServerJoin
15901592
}
15911593
BtnServer3
15921594
{
@@ -1601,6 +1603,7 @@ resource/ui/menus/mods_browse.menu
16011603
pin_to_sibling_corner BOTTOM_LEFT
16021604
navUp BtnServer2
16031605
navDown BtnServer4
1606+
navRight BtnServerJoin
16041607
}
16051608
BtnServer4
16061609
{
@@ -1616,6 +1619,7 @@ resource/ui/menus/mods_browse.menu
16161619
//ypos 11
16171620
navUp BtnServer3
16181621
navDown BtnServer5
1622+
navRight BtnServerJoin
16191623
}
16201624
BtnServer5
16211625
{
@@ -1630,6 +1634,7 @@ resource/ui/menus/mods_browse.menu
16301634
pin_to_sibling_corner BOTTOM_LEFT
16311635
navUp BtnServer4
16321636
navDown BtnServer6
1637+
navRight BtnServerJoin
16331638
}
16341639
BtnServer6
16351640
{
@@ -1644,6 +1649,7 @@ resource/ui/menus/mods_browse.menu
16441649
pin_to_sibling_corner BOTTOM_LEFT
16451650
navUp BtnServer5
16461651
navDown BtnServer7
1652+
navRight BtnServerJoin
16471653
}
16481654
BtnServer7
16491655
{
@@ -1658,6 +1664,7 @@ resource/ui/menus/mods_browse.menu
16581664
pin_to_sibling_corner BOTTOM_LEFT
16591665
navUp BtnServer6
16601666
navDown BtnServer8
1667+
navRight BtnServerJoin
16611668
}
16621669
BtnServer8
16631670
{
@@ -1672,6 +1679,7 @@ resource/ui/menus/mods_browse.menu
16721679
pin_to_sibling_corner BOTTOM_LEFT
16731680
navUp BtnServer7
16741681
navDown BtnServer9
1682+
navRight BtnServerJoin
16751683
}
16761684
BtnServer9
16771685
{
@@ -1686,6 +1694,7 @@ resource/ui/menus/mods_browse.menu
16861694
pin_to_sibling_corner BOTTOM_LEFT
16871695
navUp BtnServer8
16881696
navDown BtnServer10
1697+
navRight BtnServerJoin
16891698
}
16901699
BtnServer10
16911700
{
@@ -1700,6 +1709,7 @@ resource/ui/menus/mods_browse.menu
17001709
pin_to_sibling_corner BOTTOM_LEFT
17011710
navUp BtnServer9
17021711
navDown BtnServer11
1712+
navRight BtnServerJoin
17031713
}
17041714
BtnServer11
17051715
{
@@ -1714,6 +1724,7 @@ resource/ui/menus/mods_browse.menu
17141724
pin_to_sibling_corner BOTTOM_LEFT
17151725
navUp BtnServer10
17161726
navDown BtnServer12
1727+
navRight BtnServerJoin
17171728
}
17181729
BtnServer12
17191730
{
@@ -1728,6 +1739,7 @@ resource/ui/menus/mods_browse.menu
17281739
pin_to_sibling_corner BOTTOM_LEFT
17291740
navUp BtnServer11
17301741
navDown BtnServer13
1742+
navRight BtnServerJoin
17311743
}
17321744
BtnServer13
17331745
{
@@ -1742,6 +1754,7 @@ resource/ui/menus/mods_browse.menu
17421754
pin_to_sibling_corner BOTTOM_LEFT
17431755
navUp BtnServer12
17441756
navDown BtnServer14
1757+
navRight BtnServerJoin
17451758
}
17461759
BtnServer14
17471760
{
@@ -1756,6 +1769,7 @@ resource/ui/menus/mods_browse.menu
17561769
pin_to_sibling_corner BOTTOM_LEFT
17571770
navUp BtnServer13
17581771
navDown BtnServer15
1772+
navRight BtnServerJoin
17591773
}
17601774
BtnServer15
17611775
{
@@ -1769,6 +1783,7 @@ resource/ui/menus/mods_browse.menu
17691783
pin_corner_to_sibling TOP_LEFT
17701784
pin_to_sibling_corner BOTTOM_LEFT
17711785
navUp BtnServer14
1786+
navRight BtnServerJoin
17721787
}
17731788

17741789
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1928,11 +1943,12 @@ resource/ui/menus/mods_browse.menu
19281943
pin_to_sibling_corner TOP_LEFT
19291944
}
19301945

1931-
SearchLabel
1946+
BtnSearchLabel
19321947
{
19331948
ControlName RuiButton
19341949
InheritProperties RuiSmallButton
1935-
labelText "Search: "
1950+
labelText "Search"
1951+
textAlignment east
19361952
wide 500
19371953
xpos -23
19381954
ypos -16
@@ -1949,11 +1965,10 @@ resource/ui/menus/mods_browse.menu
19491965
BtnServerSearch
19501966
{
19511967
ControlName TextEntry
1952-
keyboardTitle "Search"
19531968
zpos 100 // This works around input weirdness when the control is constructed by code instead of VGUI blackbox.
1954-
xpos -400
1969+
xpos -490
19551970
ypos -5
1956-
wide 380
1971+
wide 390
19571972
tall 30
19581973
scriptID 19
19591974
textHidden 0
@@ -1963,7 +1978,7 @@ resource/ui/menus/mods_browse.menu
19631978
allowSpecialCharacters 0
19641979
unicode 0
19651980

1966-
pin_to_sibling SearchLabel
1981+
pin_to_sibling BtnSearchLabel
19671982
pin_corner_to_sibling TOP_LEFT
19681983
pin_to_sibling_corner TOP_RIGHT
19691984
}
@@ -1976,7 +1991,7 @@ resource/ui/menus/mods_browse.menu
19761991
ConVar "filter_map"
19771992
wide 500
19781993

1979-
pin_to_sibling SearchLabel
1994+
pin_to_sibling BtnSearchLabel
19801995
pin_corner_to_sibling TOP_LEFT
19811996
pin_to_sibling_corner BOTTOM_LEFT
19821997

@@ -2010,7 +2025,7 @@ resource/ui/menus/mods_browse.menu
20102025
"YES" 1
20112026
}
20122027

2013-
pin_to_sibling SearchLabel
2028+
pin_to_sibling BtnSearchLabel
20142029
pin_corner_to_sibling TOP_LEFT
20152030
pin_to_sibling_corner TOP_RIGHT
20162031

@@ -2268,6 +2283,7 @@ resource/ui/menus/mods_browse.menu
22682283
pin_to_sibling ServerDetailsPanel
22692284
pin_corner_to_sibling TOP_RIGHT
22702285
pin_to_sibling_corner BOTTOM_RIGHT
2286+
navLeft BtnServer1
22712287
}
22722288

22732289
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

mod/scripts/vscripts/ui/menu_ns_serverbrowser.nut

+33-6
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ struct {
7474
float serverSelectedTime = 0
7575
float serverSelectedTimeLast = 0
7676
//array<string> serverButtons
77+
int serverButtonFocusedID = 0
7778
} file
7879

7980

@@ -240,6 +241,7 @@ void function InitServerBrowserMenu()
240241
foreach ( var button in GetElementsByClassname( GetMenu( "ServerBrowserMenu" ), "ServerButton" ) )
241242
{
242243
AddButtonEventHandler( button, UIE_CLICK, OnServerFocused )
244+
AddButtonEventHandler( button, UIE_GET_FOCUS, OnServerButtonFocused )
243245
Hud_SetWidth( button , width )
244246
}
245247

@@ -266,6 +268,7 @@ void function InitServerBrowserMenu()
266268
AddButtonEventHandler( Hud_GetChild( file.menu, "SwtBtnHideFull"), UIE_CLICK, FilterAndUpdateList )
267269
AddButtonEventHandler( Hud_GetChild( file.menu, "SwtBtnHideEmpty"), UIE_CLICK, FilterAndUpdateList )
268270
AddButtonEventHandler( Hud_GetChild( file.menu, "SwtBtnHideProtected"), UIE_CLICK, FilterAndUpdateList )
271+
AddButtonEventHandler( Hud_GetChild( file.menu, "BtnSearchLabel"), UIE_CLICK, FilterAndUpdateList )
269272

270273
AddButtonEventHandler( Hud_GetChild( file.menu, "BtnServerDescription"), UIE_CLICK, ShowServerDescription )
271274
AddButtonEventHandler( Hud_GetChild( file.menu, "BtnServerMods"), UIE_CLICK, ShowServerMods )
@@ -318,9 +321,28 @@ void function OnCloseServerBrowserMenu()
318321
{
319322
DeregisterButtonPressedCallback(MOUSE_WHEEL_UP , OnScrollUp)
320323
DeregisterButtonPressedCallback(MOUSE_WHEEL_DOWN , OnScrollDown)
321-
DeregisterButtonPressedCallback(KEY_ENTER , FilterAndUpdateList)
322-
//DeregisterButtonPressedCallback(KEY_UP , OnKeyUpArrowSelected)
323-
//DeregisterButtonPressedCallback(KEY_DOWN , OnKeyDownArrowSelected)
324+
//DeregisterButtonPressedCallback(KEY_ENTER , FilterAndUpdateList)
325+
DeregisterButtonPressedCallback(KEY_UP , OnKeyUpArrowSelected)
326+
DeregisterButtonPressedCallback(KEY_DOWN , OnKeyDownArrowSelected)
327+
}
328+
329+
void function OnKeyUpArrowSelected( var button )
330+
{
331+
if ( file.serverButtonFocusedID != 0) return
332+
file.scrollOffset -= 1
333+
if (file.scrollOffset < 0) file.scrollOffset = 0
334+
UpdateShownPage()
335+
UpdateListSliderPosition( serversArrayFiltered.len() )
336+
}
337+
338+
void function OnKeyDownArrowSelected( var button )
339+
{
340+
if ( file.serverButtonFocusedID != 14) return
341+
if (serversArrayFiltered.len() <= 15) return
342+
file.scrollOffset += 1
343+
if (file.scrollOffset + BUTTONS_PER_PAGE > serversArrayFiltered.len()) file.scrollOffset = serversArrayFiltered.len() - BUTTONS_PER_PAGE
344+
UpdateShownPage()
345+
UpdateListSliderPosition( serversArrayFiltered.len() )
324346
}
325347

326348

@@ -447,9 +469,9 @@ void function OnServerBrowserMenuOpened()
447469
// Scroll wheel scrolling is fucky af
448470
RegisterButtonPressedCallback(MOUSE_WHEEL_UP , OnScrollUp)
449471
RegisterButtonPressedCallback(MOUSE_WHEEL_DOWN , OnScrollDown)
450-
RegisterButtonPressedCallback(KEY_ENTER , FilterAndUpdateList)
451-
//RegisterButtonPressedCallback(KEY_UP , OnKeyUpArrowSelected)
452-
//RegisterButtonPressedCallback(KEY_DOWN , OnKeyDownArrowSelected)
472+
//RegisterButtonPressedCallback(KEY_ENTER , FilterAndUpdateList)
473+
RegisterButtonPressedCallback(KEY_UP , OnKeyUpArrowSelected)
474+
RegisterButtonPressedCallback(KEY_DOWN , OnKeyDownArrowSelected)
453475
}
454476

455477

@@ -802,6 +824,11 @@ void function UpdateShownPage()
802824
UpdateListSliderHeight( float( serversArrayFiltered.len() ) )
803825
}
804826

827+
void function OnServerButtonFocused( var button )
828+
{
829+
int scriptID = int ( Hud_GetScriptID( button ) )
830+
file.serverButtonFocusedID = scriptID
831+
}
805832

806833
void function OnServerFocused( var button )
807834
{

0 commit comments

Comments
 (0)