Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
chatinputmenu.c
Go to the documentation of this file.
1 class ChatInputMenu extends UIScriptedMenu
2 {
3  private EditBoxWidget m_edit_box;
4  private TextWidget m_channel_text;
6  private ref Timer m_close_timer;
7 
8  void ChatInputMenu()
9  {
10  m_close_timer = new Timer();
11  }
12 
13  override Widget Init()
14  {
15  m_BackInputWrapper = GetUApi().GetInputByID(UAUIBack).GetPersistentWrapper();
16  layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/day_z_chat_input.layout");
17  m_edit_box = EditBoxWidget.Cast(layoutRoot.FindAnyWidget("InputEditBoxWidget"));
18  m_channel_text = TextWidget.Cast(layoutRoot.FindAnyWidget("ChannelText"));
19 
20  UpdateChannel();
21  return layoutRoot;
22  }
23 
24  override bool UseKeyboard()
25  {
26  return true;
27  }
28 
29  override bool OnChange(Widget w, int x, int y, bool finished)
30  {
31  super.OnChange(w, x, y, finished);
32 
33  if (!finished) return false;
34 
35  string text = m_edit_box.GetText();
36 
37  if (text != "")
38  {
39  GetGame().ChatPlayer(text);
40  if (!GetGame().IsMultiplayer())
41  {
42  string name;
43  GetGame().GetPlayerName(name);
44  ChatMessageEventParams chat_params = new ChatMessageEventParams(CCDirect, name, text, "");
45  MissionGameplay.Cast(GetGame().GetMission()).m_Chat.Add(chat_params);
46  }
47  }
48 
49  m_close_timer.Run(0.1, this, "Close");
50 
51  GetUApi().GetInputByID(UAPersonView).Supress();
52 
53  return true;
54  }
55 
56  override void OnShow()
57  {
58  SetFocus(m_edit_box);
59  }
60 
61  override void OnHide()
62  {
63  super.OnHide();
64  GetGame().GetMission().HideChat();
65 
66  if (!GetGame().GetMission().IsVoNActive())
67  GetGame().GetMission().HideVoiceLevelWidgets();
68  }
69 
70  override void Refresh()
71  {
72  }
73 
74  override void Update(float timeslice)
75  {
76  if (m_BackInputWrapper.InputP().LocalPress())
77  {
78  Close();
79  }
80  }
81 
82  void UpdateChannel()
83  {
84  m_channel_text.SetText(GetChannelName(/*GetGame().ChatGetChannel()*/0));
85  }
86 
87  static string GetChannelName(ChatChannel channel)
88  {
89  switch (channel)
90  {
91  case CCSystem:
92  return "System";
93  case CCAdmin:
94  return "Admin";
95  case CCDirect:
96  return "Direct";
97  case CCMegaphone:
98  return "Megaphone";
99  case CCTransmitter:
100  return "Radio";
101  case CCPublicAddressSystem:
102  return "PAS";
103  }
104 
105  return "";
106  }
107 }
GetGame
proto native CGame GetGame()
UIScriptedMenu
Definition: dayzgame.c:63
UAIDWrapper
Definition: uainput.c:14
EditBoxWidget
Definition: enwidgets.c:353
Close
void Close()
OnHide
override void OnHide()
Definition: inventorymenu.c:141
y
Icon y
ChatMessageEventParams
Param4< int, string, string, string > ChatMessageEventParams
channel, from, text, color config class
Definition: gameplay.c:396
m_BackInputWrapper
private UAIDWrapper m_BackInputWrapper
Definition: radialmenu.c:32
Refresh
void Refresh()
Definition: sizetochild.c:108
Param3
Definition: entityai.c:95
Init
class InventoryGridController extends ScriptedWidgetEventHandler Init
Definition: uihintpanel.c:46
TextWidget
Definition: enwidgets.c:219
Update
proto native volatile void Update()
Definition: playersoundmanager.c:125
SetFocus
proto native void SetFocus(Widget w)
name
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
x
Icon x
Timer
Definition: dayzplayerimplement.c:62
OnChange
bool OnChange(Widget w, int x, int y, bool finished)
Definition: huddebug.c:336
OnShow
override void OnShow()
Definition: controlsxbox.c:349
Widget
Definition: enwidgets.c:189
GetUApi
proto native UAInputAPI GetUApi()