3 private bool m_IsFilterChanged;
4 private bool m_IsFilterFocused;
5 protected bool m_MouseKeyboardControlled
7 private Widget m_WidgetNavFilters;
8 private Widget m_WidgetNavServers;
26 private bool m_IsDetailsFocused;
28 protected override void Construct(Widget parent, ServerBrowserMenuNew menu,
TabType type)
30 m_Root =
GetGame().GetWorkspace().CreateWidgets(
"gui/layouts/new_ui/server_browser/xbox/server_browser_tab_console_pages.layout", parent);
61 m_WidgetNavFilters =
m_Root.FindAnyWidget(
"filters_root_nav_wrapper");
62 m_WidgetNavServers =
m_Root.FindAnyWidget(
"server_list_root_nav_wrapper");
68 m_ButtonPageLeftImg =
m_Root.FindAnyWidget(
"servers_navigation_page_prev_icon_ps4");
69 m_ButtonPageRightImg =
m_Root.FindAnyWidget(
"servers_navigation_page_next_icon_ps4");
70 m_Root.FindAnyWidget(
"servers_navigation_page_prev_icon_xbox").Show(
false);
71 m_Root.FindAnyWidget(
"servers_navigation_page_next_icon_xbox").Show(
false);
73 m_ButtonPageLeftImg =
m_Root.FindAnyWidget(
"servers_navigation_page_prev_icon_xbox");
74 m_ButtonPageRightImg =
m_Root.FindAnyWidget(
"servers_navigation_page_next_icon_xbox");
75 m_Root.FindAnyWidget(
"servers_navigation_page_prev_icon_ps4" ).Show(
false);
76 m_Root.FindAnyWidget(
"servers_navigation_page_next_icon_ps4" ).Show(
false);
86 ShowHideConsoleWidgets();
88 m_Filters =
new ServerBrowserFilterContainer(
m_Root.FindAnyWidget(
"filters_content"),
this);
90 m_PnlPagesPanel =
m_Root.FindAnyWidget(
"servers_navigation_spacer" );
93 m_PnlPagesPanel.Show(
true);
106 m_Details =
new ServerBrowserDetailsContainer(
m_Root.FindAnyWidget(
"details_content"),
this);
117 m_Root.FindAnyWidget(
"filters_root_nav_img_lb_xbox" ).Show( is_xbox );
118 m_Root.FindAnyWidget(
"filters_root_nav_img_rb_xbox" ).Show( is_xbox );
119 m_Root.FindAnyWidget(
"server_list_root_nav_img_lb_xbox" ).Show( is_xbox );
120 m_Root.FindAnyWidget(
"server_list_root_nav_img_rb_xbox" ).Show( is_xbox );
122 m_Root.FindAnyWidget(
"filters_root_nav_img_l1_ps4" ).Show( !is_xbox );
123 m_Root.FindAnyWidget(
"filters_root_nav_img_r1_ps4" ).Show( !is_xbox );
124 m_Root.FindAnyWidget(
"server_list_root_nav_img_l1_ps4" ).Show( !is_xbox );
125 m_Root.FindAnyWidget(
"server_list_root_nav_img_r1_ps4" ).Show( !is_xbox );
130 switch (pInputDeviceType)
133 ShowHideConsoleWidgets();
135 m_WidgetNavFilters.Show(m_IsFilterFocused || m_IsDetailsFocused);
138 m_WidgetNavServers.Show((!m_IsFilterFocused && !m_IsDetailsFocused));
143 m_Root.FindAnyWidget(
"spacer2").Show(
false);
144 m_Root.FindAnyWidget(
"spacer5").Show(
false);
145 m_Menu.GetLayoutRoot().FindAnyWidget(
"play_panel_root").Show(
false);
146 m_Menu.GetLayoutRoot().FindAnyWidget(
"MouseAndKeyboardWarning").Show(
false);
147 m_MouseKeyboardControlled =
false;
151 if (
GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer())
154 m_WidgetNavFilters.Show(
false);
155 m_WidgetNavServers.Show(
false);
156 m_ButtonPageLeftImg.Show(
false);
157 m_ButtonPageRightImg.Show(
false);
161 m_Root.FindAnyWidget(
"spacer").Show(!isFavoriteTab);
162 m_Root.FindAnyWidget(
"spacer2").Show(
true);
163 m_Root.FindAnyWidget(
"spacer5").Show(!isFavoriteTab);
164 m_Menu.GetLayoutRoot().FindAnyWidget(
"play_panel_root").Show(
true);
165 m_Menu.GetLayoutRoot().FindAnyWidget(
"MouseAndKeyboardWarning").Show(
true);
166 m_MouseKeyboardControlled =
true;
183 m_PagesCount = result_list.m_Pages;
184 m_TotalServersCount = result_list.m_NumServers;
186 LoadEntries( result_list.m_Page, result_list.m_Results );
196 msg =
"#server_browser_tab_unable_to_get_server";
203 if (m_ServerListEntiers && m_ServerListEntiers.Count() &&
m_SelectedPanel == SelectedPanel.BROWSER)
205 ServerBrowserEntry entry = m_ServerListEntiers[0];
208 entry.Darken(entry.GetRoot(), 0, 0);
210 SetFocus(entry.GetRoot());
218 ServerBrowserEntry entry;
232 if ( m_PagesCount && page_entries )
238 string ipPort = result.GetIpPort();
239 bool isFavorited =
m_Menu.IsFavorited(ipPort);
241 entry = GetServerEntryByIndex( index );
242 entry.SetIsOnline(
true);
243 entry.FillInfo( result );
244 entry.SetFavorite(isFavorited);
271 if (
m_Filters.m_PreviouslyPlayedFilter.IsSet())
273 bool is_visited =
g_Game.IsVisited(result.m_HostIp, result.m_HostPort);
274 if (!is_visited &&
m_Filters.m_PreviouslyPlayedFilter.IsEnabled())
277 if (is_visited && !
m_Filters.m_PreviouslyPlayedFilter.IsEnabled())
281 return super.PassFilter(result);
286 ServerBrowserEntry entry;
290 if ( index < m_ServerListEntiers.Count() )
292 entry = m_ServerListEntiers[index];
296 entry =
new ServerBrowserEntry(
m_ServerList, index,
this );
297 m_ServerListEntiers.Insert(entry);
312 m_IsFilterChanged =
true;
322 for (
int i = 0; i < m_ServerListEntiers.Count(); i++ )
324 m_ServerListEntiers[i].Show(
false);
337 m_IsFilterChanged =
false;
349 super.ResetFilters();
351 m_IsFilterChanged =
false;
356 if ( m_IsFilterChanged )
361 m_IsFilterChanged =
false;
382 if (m_IsFilterChanged)
399 case SelectedPanel.BROWSER:
407 case SelectedPanel.FILTERS:
420 if (!m_IsFilterFocused && !m_IsDetailsFocused)
423 m_PreviousPage = curr_page;
434 if (!m_IsFilterFocused && !m_IsDetailsFocused)
436 if ( (
GetGame().
GetTime() - m_TimeLastServerRefreshHoldButton) > 100 )
454 if (!m_IsFilterFocused && !m_IsDetailsFocused)
457 m_PreviousPage = curr_page;
458 if ( curr_page < m_PagesCount )
468 if (!m_IsFilterFocused && !m_IsDetailsFocused)
470 if ( (
GetGame().
GetTime() - m_TimeLastServerRefreshHoldButton) > 100 )
480 if ((!m_IsFilterFocused && !m_IsDetailsFocused) &&
GetCurrentPage() != m_PreviousPage)
503 case SelectedPanel.BROWSER:
515 case SelectedPanel.DETAILS:
516 case SelectedPanel.FILTERS:
538 super.ShowServerDetails();
549 SetEnableFilters(
true);
550 SetEnableServers(
false);
553 if (!m_MouseKeyboardControlled)
555 m_WidgetNavFilters.Show(
true);
556 m_WidgetNavServers.Show(
false);
560 m_IsFilterFocused =
true;
561 m_IsDetailsFocused =
false;
570 SetEnableFilters(
false);
571 SetEnableServers(
false);
573 if (!m_MouseKeyboardControlled)
575 m_WidgetNavFilters.Show(
true);
576 m_WidgetNavServers.Show(
false);
580 m_IsDetailsFocused =
true;
581 m_IsFilterFocused =
false;
587 SetEnableServers(
true);
588 SetEnableFilters(
false);
590 if (!m_MouseKeyboardControlled)
592 m_WidgetNavFilters.Show(
false);
595 m_WidgetNavServers.Show(
true);
600 if (entries && entries.Count() > 0)
602 string entryKey = entries.Get(0).GetIpPort();
610 m_Menu.UpdateAButtonLabel(
"#str_serverbrowserroot_toolbar_bg_consoletoolbar_connect_connecttext0");
611 m_Menu.ShowThumbRButton(
true);
616 m_Menu.ShowAButton(
false);
617 m_Menu.ShowThumbRButton(
false);
620 m_IsFilterFocused =
false;
621 m_IsDetailsFocused =
false;
629 Widget w_filters =
m_Root.FindAnyWidget(
"filters_content");
630 Widget w_content =
m_Root.FindAnyWidget(
"server_list_scroller");
631 w_content.Enable( !enable );
635 SetFocus( ButtonWidget.Cast(w_filters.FindWidget(
"sort_button")) );
641 Widget w_filters =
m_Root.FindAnyWidget(
"filters_content");
642 Widget w_content =
m_Root.FindAnyWidget(
"server_list_scroller");
643 w_content.Enable( enable );
648 TextWidget wgt_page_stat = TextWidget.Cast(
m_Root.FindAnyWidget(
"servers_navigation_page_status" ) );
652 if ( (!m_IsFilterFocused && !m_IsDetailsFocused) && (m_PagesCount > 1) && !m_MouseKeyboardControlled )
655 m_ButtonPageLeftImg.Show( can_left );
659 m_ButtonPageRightImg.Show( can_right );
664 m_ButtonPageLeftImg.Show(
false );
666 m_ButtonPageRightImg.Show(
false );
671 override bool OnClick(Widget w,
int x,
int y,
int button)
673 super.OnClick(w,
x,
y, button);
731 w.SetColor(
ARGB( 255, 200, 0, 0) );
746 if ( w.IsInherited( ButtonWidget ) )
748 ButtonWidget button = ButtonWidget.Cast( w );
749 button.SetTextColor(
ARGB( 255, 255, 255, 255 ) );
751 else if ( !w.IsInherited( EditBoxWidget ) )
753 w.SetColor(
ARGB( 0, 255, 255, 255 ) );
756 TextWidget text1 = TextWidget.Cast(w.FindAnyWidget( w.GetName() +
"_text" ) );
757 TextWidget text2 = TextWidget.Cast(w.FindAnyWidget( w.GetName() +
"_text_1" ) );
758 TextWidget text3 = TextWidget.Cast(w.FindAnyWidget( w.GetName() +
"_label" ) );
759 ImageWidget image = ImageWidget.Cast( w.FindAnyWidget( w.GetName() +
"_image" ) );
761 Widget option = Widget.Cast( w.FindAnyWidget( w.GetName() +
"_option_wrapper" ) );
765 text1.SetColor(
ARGB( 255, 255, 255, 255 ) );
770 text2.SetColor(
ARGB( 255, 255, 255, 255 ) );
775 text3.SetColor(
ARGB( 255, 255, 255, 255 ) );
781 image.SetColor(
ARGB( 255, 255, 255, 255 ) );
786 option.SetColor(
ARGB( 150, 255, 255, 255 ) );
792 #ifdef PLATFORM_WINDOWS
796 ButtonWidget button = ButtonWidget.Cast( w );
799 button.SetTextColor(
ColorManager.COLOR_DISABLED_TEXT );
810 m_Menu.UpdateYButtonLabel(
"#server_browser_tab_server #STR_server_browser_menu_server_filters");
826 m_Menu.UpdateYButtonLabel(
"#server_details_header");
void OnInputDeviceChanged(EInputDeviceType pInputDeviceType)
EBiosError
Possible Error codes for bios API. This is the list of errors that can be returned from bios API....
proto int GetTime()
returns mission time in milliseconds
The error handler itself, for managing and distributing errors to modules Manages the ErrorHandlerMod...
GetServersResult the output structure of the GetServers operation.
GetServersResultRow the output structure of the GetServers operation that represents one game server.
override void RefreshServerList()
override bool PassFilter(GetServersResultRow result)
override void RefreshList()
override void LoadExtraEntries(int index)
override void OnLoadServersAsyncFinished()
override void SetFocusFilters()
override void LoadEntries(int cur_page_index, GetServersResultRowArray page_entries)
ref array< ref ServerBrowserEntry > m_ServerListEntiers
override void PressThumbRight()
override void PressSholderRight()
override void ShowServerDetails()
override void ColorDisable(Widget w)
override void ApplyFilters()
override bool OnClick(Widget w, int x, int y, int button)
override void SwitchToDetails(bool focus=true)
ServerBrowserEntry GetServerEntryByIndex(int index)
TextWidget m_PnlPagesLoadingText
override void SwitchToFilters(bool focus=true)
int m_TimeLastServerRefresh
Widget m_ButtonPageRightImg
override void ColorNormal(Widget w)
override void ResetFilters()
int m_ServersEstimateCount
override bool PassFilter(GetServersResultRow result)
Widget m_ButtonPageLeftImg
int m_TimeLastServerRefreshHoldButton
override void RefreshList()
override void OnLoadServersAsyncConsole(GetServersResult result_list, EBiosError error, string response)
override void PressSholderLeft()
override void OnFilterChanged()
void LoadEntries(int cur_page_index, GetServersResultRowArray page_entries)
void SetEnableServers(bool enable)
override void OnPressShoulder()
override void RightRelease()
void OnInputDeviceChanged(EInputDeviceType pInputDeviceType)
void SetEnableFilters(bool enable)
override void Construct(Widget parent, ServerBrowserMenuNew menu, TabType type)
void ShowHideConsoleWidgets()
override void ColorHighlight(Widget w)
void OnLoadServersAsyncFinished()
override void RightHold()
bool CanRefreshServerList()
override void LeftRelease()
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
ErrorCategory
ErrorCategory - To decide what ErrorHandlerModule needs to be called and easily identify where it cam...
proto native CGame GetGame()
int ARGB(int a, int r, int g, int b)
ref ServerBrowserFilterContainer m_Filters
ref map< ESortType, ref array< ref GetServersResultRow > > m_EntriesSorted
Widget m_FilterSearchText
TextWidget m_RightAreaHeaderText
ServerBrowserEntry m_SelectedServer
ref GetServersInput m_CurrentFilterInput
void SwitchRightAreaView()
ButtonWidget m_BtnPageNext
ButtonWidget m_BtnShowFilters
ref map< string, ref ServerBrowserEntry > m_EntryWidgets
void SwitchToDetails(bool focus=true)
ScrollWidget m_ServerListScroller
ServerBrowserMenuNew m_Menu
void SwitchToFilters(bool focus=true)
SelectedPanel m_SelectedPanel
ButtonWidget m_BtnPagePrev
SpacerBaseWidget m_ServerList
Widget m_FilterSearchTextBox
ref ServerBrowserDetailsContainer m_Details
ref set< string > m_OnlineFavServers
void SetCurrentPage(int page_num)
ButtonWidget m_BtnShowDetails