Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ UIVirtualKeyboard()

Terraria.GameContent.UI.States.UIVirtualKeyboard.UIVirtualKeyboard ( string labelText,
string startingText,
KeyboardSubmitEvent submitAction,
Action cancelAction,
int inputMode = 0,
bool allowEmpty = false )
inline

Definition at line 161 of file UIVirtualKeyboard.cs.

162 {
163 _keyboardContext = inputMode;
164 _allowEmpty = allowEmpty;
165 OffsetDown = 0;
166 ShouldHideText = false;
167 _lastOffsetDown = 0;
170 _currentInstance = this;
171 _submitAction = submitAction;
172 _cancelAction = cancelAction;
173 _textureShift = Main.Assets.Request<Texture2D>("Images/UI/VK_Shift", (AssetRequestMode)1);
174 _textureBackspace = Main.Assets.Request<Texture2D>("Images/UI/VK_Backspace", (AssetRequestMode)1);
175 Top.Pixels = _lastOffsetDown;
176 float num = 0.5f;
177 float num2 = -20f;
178 float num3 = -5000 * _edittingSign.ToInt();
179 num2 = 270f;
180 num = 0f;
181 float num4 = 516f;
182 UIElement uIElement = new UIElement();
183 uIElement.Width.Pixels = num4 + 8f + 16f;
184 uIElement.Top.Precent = num;
185 uIElement.Top.Pixels = num2;
186 uIElement.Height.Pixels = 266f;
187 uIElement.HAlign = 0.5f;
188 uIElement.SetPadding(0f);
189 outerLayer1 = uIElement;
190 UIElement uIElement2 = new UIElement();
191 uIElement2.Width.Pixels = num4 + 8f + 16f;
192 uIElement2.Top.Precent = num;
193 uIElement2.Top.Pixels = num2;
194 uIElement2.Height.Pixels = 266f;
195 uIElement2.HAlign = 0.5f;
196 uIElement2.SetPadding(0f);
197 outerLayer2 = uIElement2;
198 UIPanel uIPanel = new UIPanel
199 {
200 Width =
201 {
202 Precent = 1f
203 },
204 Height =
205 {
206 Pixels = 225f
207 },
208 BackgroundColor = new Color(23, 33, 69) * 0.7f
209 };
210 uIElement.Append(uIPanel);
211 float num5 = -50f;
212 _textBox = new UITextBox("", 0.78f, large: true);
213 _textBox.BackgroundColor = Color.Transparent;
214 _textBox.BorderColor = Color.Transparent;
215 _textBox.HAlign = 0.5f;
216 _textBox.Width.Pixels = num4;
217 _textBox.Top.Pixels = num5 + num2 - 10f + num3;
218 _textBox.Top.Precent = num;
219 _textBox.Height.Pixels = 37f;
221 for (int i = 0; i < 10; i++)
222 {
223 for (int j = 0; j < 4; j++)
224 {
225 int index = j * 10 + i;
226 UITextPanel<object> uITextPanel = CreateKeyboardButton("1234567890qwertyuiopasdfghjkl'zxcvbnm,.?"[index].ToString(), i, j);
227 uITextPanel.OnLeftClick += TypeText;
228 uIPanel.Append(uITextPanel);
229 }
230 }
231 _shiftButton = CreateKeyboardButton("", 0, 4, 1, style: false);
232 _shiftButton.PaddingLeft = 0f;
233 _shiftButton.PaddingRight = 0f;
234 _shiftButton.PaddingBottom = (_shiftButton.PaddingTop = 0f);
235 _shiftButton.BackgroundColor = new Color(63, 82, 151) * 0.7f;
236 _shiftButton.BorderColor = _internalBorderColor * 0.7f;
237 _shiftButton.OnMouseOver += delegate
238 {
239 _shiftButton.BorderColor = _internalBorderColorSelected;
240 if (_keyState != KeyState.Shift)
241 {
242 _shiftButton.BackgroundColor = new Color(73, 94, 171);
243 }
244 };
245 _shiftButton.OnMouseOut += delegate
246 {
247 _shiftButton.BorderColor = _internalBorderColor * 0.7f;
248 if (_keyState != KeyState.Shift)
249 {
250 _shiftButton.BackgroundColor = new Color(63, 82, 151) * 0.7f;
251 }
252 };
253 _shiftButton.OnLeftClick += delegate
254 {
256 SetKeyState((_keyState != KeyState.Shift) ? KeyState.Shift : KeyState.Default);
257 };
258 UIImage element = new UIImage(_textureShift)
259 {
260 HAlign = 0.5f,
261 VAlign = 0.5f,
262 ImageScale = 0.85f
263 };
264 _shiftButton.Append(element);
265 uIPanel.Append(_shiftButton);
266 _symbolButton = CreateKeyboardButton("@%", 1, 4, 1, style: false);
267 _symbolButton.PaddingLeft = 0f;
268 _symbolButton.PaddingRight = 0f;
269 _symbolButton.BackgroundColor = new Color(63, 82, 151) * 0.7f;
270 _symbolButton.BorderColor = _internalBorderColor * 0.7f;
271 _symbolButton.OnMouseOver += delegate
272 {
273 _symbolButton.BorderColor = _internalBorderColorSelected;
274 if (_keyState != KeyState.Symbol)
275 {
276 _symbolButton.BackgroundColor = new Color(73, 94, 171);
277 }
278 };
279 _symbolButton.OnMouseOut += delegate
280 {
281 _symbolButton.BorderColor = _internalBorderColor * 0.7f;
282 if (_keyState != KeyState.Symbol)
283 {
284 _symbolButton.BackgroundColor = new Color(63, 82, 151) * 0.7f;
285 }
286 };
287 _symbolButton.OnLeftClick += delegate
288 {
290 SetKeyState((_keyState != KeyState.Symbol) ? KeyState.Symbol : KeyState.Default);
291 };
292 uIPanel.Append(_symbolButton);
293 BuildSpaceBarArea(uIPanel);
294 _submitButton = new UITextPanel<LocalizedText>((_edittingSign || _edittingChest) ? Language.GetText("UI.Save") : Language.GetText("UI.Submit"), 0.4f, large: true);
295 _submitButton.Height.Pixels = 37f;
296 _submitButton.Width.Precent = 0.4f;
297 _submitButton.HAlign = 1f;
298 _submitButton.VAlign = 1f;
299 _submitButton.PaddingLeft = 0f;
300 _submitButton.PaddingRight = 0f;
301 ValidateText();
302 _submitButton.OnMouseOver += FadedMouseOver;
303 _submitButton.OnMouseOut += FadedMouseOut;
304 _submitButton.OnMouseOver += delegate
305 {
306 ValidateText();
307 };
308 _submitButton.OnMouseOut += delegate
309 {
310 ValidateText();
311 };
312 _submitButton.OnLeftClick += delegate
313 {
314 Submit();
315 };
316 uIElement.Append(_submitButton);
317 _cancelButton = new UITextPanel<LocalizedText>(Language.GetText("UI.Cancel"), 0.4f, large: true);
318 StyleKey(_cancelButton, external: true);
319 _cancelButton.Height.Pixels = 37f;
320 _cancelButton.Width.Precent = 0.4f;
321 _cancelButton.VAlign = 1f;
322 _cancelButton.OnLeftClick += delegate
323 {
326 };
327 _cancelButton.OnMouseOver += FadedMouseOver;
328 _cancelButton.OnMouseOut += FadedMouseOut;
329 uIElement.Append(_cancelButton);
330 _submitButton2 = new UITextPanel<LocalizedText>((_edittingSign || _edittingChest) ? Language.GetText("UI.Save") : Language.GetText("UI.Submit"), 0.72f, large: true);
331 _submitButton2.TextColor = Color.Silver;
332 _submitButton2.DrawPanel = false;
333 _submitButton2.Height.Pixels = 60f;
334 _submitButton2.Width.Precent = 0.4f;
335 _submitButton2.HAlign = 0.5f;
336 _submitButton2.VAlign = 0f;
337 _submitButton2.OnMouseOver += delegate(UIMouseEvent a, UIElement b)
338 {
339 ((UITextPanel<LocalizedText>)b).TextScale = 0.85f;
340 ((UITextPanel<LocalizedText>)b).TextColor = Color.White;
341 };
342 _submitButton2.OnMouseOut += delegate(UIMouseEvent a, UIElement b)
343 {
344 ((UITextPanel<LocalizedText>)b).TextScale = 0.72f;
345 ((UITextPanel<LocalizedText>)b).TextColor = Color.Silver;
346 };
347 _submitButton2.Top.Pixels = 50f;
348 _submitButton2.PaddingLeft = 0f;
349 _submitButton2.PaddingRight = 0f;
350 ValidateText();
351 _submitButton2.OnMouseOver += delegate
352 {
353 ValidateText();
354 };
355 _submitButton2.OnMouseOut += delegate
356 {
357 ValidateText();
358 };
359 _submitButton2.OnMouseOver += FadedMouseOver;
360 _submitButton2.OnMouseOut += FadedMouseOut;
361 _submitButton2.OnLeftClick += delegate
362 {
364 {
366 _submitAction(Text.Trim());
367 }
368 };
370 _cancelButton2 = new UITextPanel<LocalizedText>(Language.GetText("UI.Cancel"), 0.72f, large: true);
371 _cancelButton2.TextColor = Color.Silver;
372 _cancelButton2.DrawPanel = false;
373 _cancelButton2.OnMouseOver += delegate(UIMouseEvent a, UIElement b)
374 {
375 ((UITextPanel<LocalizedText>)b).TextScale = 0.85f;
376 ((UITextPanel<LocalizedText>)b).TextColor = Color.White;
377 };
378 _cancelButton2.OnMouseOut += delegate(UIMouseEvent a, UIElement b)
379 {
380 ((UITextPanel<LocalizedText>)b).TextScale = 0.72f;
381 ((UITextPanel<LocalizedText>)b).TextColor = Color.Silver;
382 };
383 _cancelButton2.Height.Pixels = 60f;
384 _cancelButton2.Width.Precent = 0.4f;
385 _cancelButton2.Top.Pixels = 114f;
386 _cancelButton2.VAlign = 0f;
387 _cancelButton2.HAlign = 0.5f;
388 _cancelButton2.OnLeftClick += delegate
389 {
392 };
394 UITextPanel<object> uITextPanel2 = CreateKeyboardButton("", 8, 4, 2);
395 uITextPanel2.OnLeftClick += delegate
396 {
399 ValidateText();
400 };
401 uITextPanel2.PaddingLeft = 0f;
402 uITextPanel2.PaddingRight = 0f;
403 uITextPanel2.PaddingBottom = (uITextPanel2.PaddingTop = 0f);
404 uITextPanel2.Append(new UIImage(_textureBackspace)
405 {
406 HAlign = 0.5f,
407 VAlign = 0.5f,
408 ImageScale = 0.92f
409 });
410 uIPanel.Append(uITextPanel2);
411 UIText uIText = new UIText(labelText, 0.75f, large: true)
412 {
413 HAlign = 0.5f,
414 Width =
415 {
416 Pixels = num4
417 },
418 Top =
419 {
420 Pixels = num5 - 37f - 4f + num2 + num3,
421 Precent = num
422 },
423 Height =
424 {
425 Pixels = 37f
426 }
427 };
428 Append(uIText);
429 _label = uIText;
430 Append(uIElement);
431 int textMaxLength = (_edittingSign ? 1200 : 20);
432 _textBox.SetTextMaxLength(textMaxLength);
433 Text = startingText;
434 if (Text.Length == 0)
435 {
436 SetKeyState(KeyState.Shift);
437 }
438 ShouldHideText = true;
439 OffsetDown = 9999;
441 }
static void PlaySound(int type, Vector2 position, int style=1)
void FadedMouseOver(UIMouseEvent evt, UIElement listeningElement)
void FadedMouseOut(UIMouseEvent evt, UIElement listeningElement)
void TypeText(UIMouseEvent evt, UIElement listeningElement)
UITextPanel< object > CreateKeyboardButton(object text, int x, int y, int width=1, bool style=true)
static LocalizedText GetText(string key)
Definition Language.cs:10
StyleDimension Height
Definition UIElement.cs:29
void Append(UIElement element)
Definition UIElement.cs:166
StyleDimension Width
Definition UIElement.cs:27
void SetPadding(float pixels)
Definition UIElement.cs:361
StyleDimension Top
Definition UIElement.cs:23
static Color Transparent
Definition Color.cs:76

References Terraria.UI.UIElement.UIElement(), Terraria.GameContent.UI.States.UIVirtualKeyboard._allowEmpty, Terraria.GameContent.UI.States.UIVirtualKeyboard._cancelAction, Terraria.GameContent.UI.States.UIVirtualKeyboard._cancelButton, Terraria.GameContent.UI.States.UIVirtualKeyboard._cancelButton2, Terraria.GameContent.UI.States.UIVirtualKeyboard._currentInstance, Terraria.GameContent.UI.States.UIVirtualKeyboard._edittingChest, Terraria.GameContent.UI.States.UIVirtualKeyboard._edittingSign, Terraria.GameContent.UI.States.UIVirtualKeyboard._internalBorderColor, Terraria.GameContent.UI.States.UIVirtualKeyboard._internalBorderColorSelected, Terraria.GameContent.UI.States.UIVirtualKeyboard._keyboardContext, Terraria.GameContent.UI.States.UIVirtualKeyboard._keyState, Terraria.GameContent.UI.States.UIVirtualKeyboard._label, Terraria.GameContent.UI.States.UIVirtualKeyboard._lastOffsetDown, Terraria.GameContent.UI.States.UIVirtualKeyboard._shiftButton, Terraria.GameContent.UI.States.UIVirtualKeyboard._submitAction, Terraria.GameContent.UI.States.UIVirtualKeyboard._submitButton, Terraria.GameContent.UI.States.UIVirtualKeyboard._submitButton2, Terraria.GameContent.UI.States.UIVirtualKeyboard._symbolButton, Terraria.GameContent.UI.States.UIVirtualKeyboard._textBox, Terraria.GameContent.UI.States.UIVirtualKeyboard._textureBackspace, Terraria.GameContent.UI.States.UIVirtualKeyboard._textureShift, Terraria.UI.UIElement.Append(), Terraria.Main.Assets, Terraria.GameContent.UI.Elements.UITextBox.Backspace(), Terraria.GameContent.UI.States.UIVirtualKeyboard.BuildSpaceBarArea(), Microsoft.Xna.Framework.Graphics.Color, Terraria.GameContent.UI.States.UIVirtualKeyboard.CreateKeyboardButton(), Terraria.GameContent.UI.States.UIVirtualKeyboard.FadedMouseOut(), Terraria.GameContent.UI.States.UIVirtualKeyboard.FadedMouseOver(), Terraria.Localization.Language.GetText(), Terraria.UI.UIElement.HAlign, Terraria.UI.UIElement.Height, System.index, Terraria.GameContent.UI.States.UIVirtualKeyboard.OffsetDown, Terraria.GameContent.UI.States.UIVirtualKeyboard.outerLayer1, Terraria.GameContent.UI.States.UIVirtualKeyboard.outerLayer2, Terraria.Audio.SoundEngine.PlaySound(), Terraria.GameContent.UI.States.UIVirtualKeyboard.SetKeyState(), Terraria.UI.UIElement.SetPadding(), Terraria.GameContent.UI.Elements.UITextBox.SetTextMaxLength(), Terraria.GameContent.UI.States.UIVirtualKeyboard.ShouldHideText, Microsoft.Xna.Framework.Color.Silver, Terraria.GameContent.UI.States.UIVirtualKeyboard.Submit(), Terraria.GameContent.UI.States.UIVirtualKeyboard.TextIsValidForSubmit(), Terraria.UI.UIElement.Top, System.ToString, Microsoft.Xna.Framework.Color.Transparent, Terraria.GameContent.UI.States.UIVirtualKeyboard.TypeText(), Terraria.GameContent.UI.States.UIVirtualKeyboard.UpdateOffsetDown(), Terraria.GameContent.UI.States.UIVirtualKeyboard.ValidateText(), Terraria.UI.UIElement.VAlign, Microsoft.Xna.Framework.Color.White, and Terraria.UI.UIElement.Width.