KeyDescriptor(SpecialKey specialKey, char keyChar, ModifierKeys modifierKeys, object nativeKeyChar) { SpecialKey = specialKey; KeyChar = keyChar; ModifierKeys = modifierKeys; NativeKeyChar = nativeKeyChar; }
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0 && (wParam == (IntPtr)WM_KEYDOWN) | (wParam == (IntPtr)WM_KEYUP)) { int vkCode = Marshal.ReadInt32(lParam); if (specialkey.HasFlag((SpecialKey)vkCode)) { checkspecialkey = true; special = (SpecialKey)vkCode; } else if (fnumberkey.HasFlag((FnumberKey)vkCode)) { checkfnumberkey = true; fnumber = (FnumberKey)vkCode; } if (checkspecialkey && checkfnumberkey) { input = special.ToString() + "+" + fnumber.ToString(); checkspecialkey = false; checkfnumberkey = false; } } return(CallNextHookEx(_hookID, nCode, wParam, lParam)); }
public static KeyInfo Make(SpecialKey spc) { var key_info = new KeyInfo(); key_info.SpecialKey = spc; return(key_info); }
KeyDescriptor (SpecialKey specialKey, char keyChar, ModifierKeys modifierKeys, object nativeKeyChar) { SpecialKey = specialKey; KeyChar = keyChar; ModifierKeys = modifierKeys; NativeKeyChar = nativeKeyChar; }
internal string GetFirstSpecialKey(SpecialKey key) { if (!SpecialKeys.ContainsKey(key)) { return(string.Empty); } return(SpecialKeys[key].FirstOrDefault()); }
public override Pickup Clone() { //Debug.Log("HealthPotion cloning"); SpecialKey specialKey = Instantiate <GameObject>(this.gameObject).GetComponent <SpecialKey>(); return(specialKey); }
void OnRespawnKey(int player, SpecialKey key) { if (key != SpecialKey.Respawn) { return; } Respawn(player); m.SendMessage(player, "&7Respawn"); }
public KeyboardClickRoutedEvtArgs(RoutedEventArgs innerArgs, SpecialKey flags) { this.RoutedEvent = innerArgs.RoutedEvent; this.Handled = false; this.Source = innerArgs.Source; this.SpecialKeyFlags = flags; this.Key = (string)((Button)this.Source).Tag; }
public override string ToString() { string str = string.Empty; if (SpecialKey != 0) { str += SpecialKey.ToString() + " + "; } str += MainKey.ToString(); return(str); }
internal void AddSpecialKey(SpecialKey key, string keyName) { if (SpecialKeys == null) { SpecialKeys = new Dictionary <SpecialKey, List <string> >(); } if (!SpecialKeys.ContainsKey(key)) { SpecialKeys.Add(key, new List <string>()); } SpecialKeys[key].Add(keyName); }
void OnSelectTeamKey(int player, SpecialKey key) { if (key != SpecialKey.SelectTeam) { return; } if (warmode == WarMode.Edit) { return; } ShowTeamSelectionDialog(player); }
void OnSetSpawnKey(int player, SpecialKey key) { if (key != SpecialKey.SetSpawn) { return; } float[] pos = new float[3]; pos[0] = m.GetPlayerPositionX(player); pos[1] = m.GetPlayerPositionY(player); pos[2] = m.GetPlayerPositionZ(player); spawnPositions[m.GetPlayerName(player)] = pos; m.SendMessage(player, "&7Spawn position set"); }
public override bool Key(SpecialKey key, bool up, string keyString) { if (!Enabled) { return(true); } if (m_contentView.Key(key, up, keyString)) { return(true); } return(false); }
void DoPreInsertionSmartIndent(SpecialKey key) { switch (key) { case SpecialKey.BackSpace: SafeUpdateIndentEngine(Editor.CaretOffset); HandleStringConcatinationDeletion(Editor.CaretOffset - 1, 0); break; case SpecialKey.Delete: SafeUpdateIndentEngine(Editor.CaretOffset); HandleStringConcatinationDeletion(Editor.CaretOffset, Editor.Length); break; } }
public bool Key(int code, bool up, char character) { SpecialKey key = (SpecialKey)code; for (int i = Windows.Count - 1; i >= 0; /*i--*/) { if (Windows[i].Key(key, up, character)) { return(true); } break; } return(false); }
public override bool Key(SpecialKey key, bool up, string keyString) { if (key == SpecialKey.Back) { HandleButtonPress(1); return(true); } else if (key == SpecialKey.Enter) { HandleButtonPress(0); return(true); } return(base.Key(key, up, keyString)); }
/// <summary> /// Subscribes an event to a keystroke + special key. /// </summary> /// <remarks>The special key must be helt down prior to the keystroke to fire one of these events.</remarks> public static void SubscribeChord(char Key, SpecialKey Special, Event Event) { Key = (char)(Key & 0x7f); // Alt operates over the range from 0x80-0x9f if (Special == SpecialKey.Alt) { Key = (char)(Key & 0x3f | 0x80); } // Control operates over the range from 0xc0-0xff else if (Special == SpecialKey.Control) { Key = (char)(Key | 0xc0); } Subscribe(Key, Event); }
void RespawnKey(int player, SpecialKey key) { if (key != SpecialKey.Respawn) { return; } if (warmode == WarMode.Edit) { return; } if (players[player].isdead) { return; //Don't allow dead players to respawn } m.SendMessage(player, "Respawn."); Die(player); }
public bool Key(SpecialKey key, bool up, string keyString) { T[] array = EnsureArray(); for (int i = array.Length - 1; i >= 0; i--) { if (array[i] != null && array[i].Visible) { if (array[i].Key(key, up, keyString)) { return(true); } } } return(false); }
public bool Key(SpecialKey key, bool up, string keyString) { if (Windows.Count > 0 && Windows[Windows.Count - 1].Key(key, up, keyString)) { return(true); } /* * for (int i = Windows.Count - 1; i >= 0; i--) * { * if (Windows[i].Key(key, up, keyString)) * return true; * * break; * }*/ return(false); }
public override bool Key(SpecialKey key, bool up, char character) { if (!Controlling) { return(true); } if (m_children.Key(key, up, character)) { return(true); } if (Modal && key == SpecialKey.Back && up) { Remove(); return(true); } if (IsFocusable && up) { if (key == SpecialKey.Left) { return(FocusNext(false)); } else if (key == SpecialKey.Right) { return(FocusNext(true)); } else if ((key == SpecialKey.Select || key == SpecialKey.Enter)) { foreach (WindowObject child in m_children.List) { if (child is IFocusable && ((IFocusable)child).IsFocusable && ((IFocusable)child).IsFocused) { ((IFocusable)child).Press(); return(true); } } } } return(false); }
private void Button_Click(object sender, RoutedEventArgs e) { SpecialKey flags = 0; if (Keyboard.IsKeyDown(Key.LeftCtrl)) { flags |= SpecialKey.Ctrl; } if (Keyboard.IsKeyDown(Key.LeftShift)) { flags |= SpecialKey.Shift; } if (Keyboard.IsKeyDown(Key.LeftAlt)) { flags |= SpecialKey.Alt; } this.OnKeyboardKeyDown?.Invoke(this, new KeyboardClickRoutedEvtArgs(e, flags)); }
public override bool Key(SpecialKey key, bool up, char character) { if (!Enabled) { return(true); } if (m_children.Key(key, up, character)) { return(true); } if (m_background.Key(key, up, character)) { return(true); } return(false); }
static char TranslateKeyCharForIndenter(SpecialKey key, char keyChar, char docChar) { switch (key) { case SpecialKey.Return: return('\n'); case SpecialKey.Tab: return('\t'); default: if (docChar == keyChar) { return(keyChar); } break; } return('\0'); }
public override bool Key(SpecialKey key, bool up, string keyString) { if (!Enabled) { return(true); } if (m_children.Key(key, up, keyString)) { return(true); } if (m_background.Key(key, up, keyString)) { return(true); } return(false); }
private Gdk.FilterReturn FilterKey(IntPtr xeventPtr, Gdk.Event gdkEvent) { Console.WriteLine("filter " + gdkEvent.Type); if (DateTime.Now - last_raise < raise_delay) { return(Gdk.FilterReturn.Continue); } last_raise = DateTime.Now; XKeyEvent xevent = (XKeyEvent)Marshal.PtrToStructure(xeventPtr, typeof(XKeyEvent)); if (xevent.type != XEventName.KeyPress) { return(Gdk.FilterReturn.Continue); } int keycode = (int)xevent.keycode; object x = key_map[keycode]; Console.WriteLine("filter " + keycode); if (x == null) { return(Gdk.FilterReturn.Continue); } SpecialKey key = (SpecialKey)key_map[keycode]; if (key_registrations[keycode] != null) { x = key_registrations[keycode]; if (x is SpecialKeyPressedHandler) { ((SpecialKeyPressedHandler)x)(this, key); } return(Gdk.FilterReturn.Remove); } return(Gdk.FilterReturn.Continue); }
private void AddSpecialKey(SpecialKey specialKey) { KeyControl key; switch (specialKey.KeyType) { case SpecialKeyType.Shift: key = new ShiftKey(); break; case SpecialKeyType.Win: key = new WindowsKey(); break; case SpecialKeyType.Tab: key = new TabKey(); break; case SpecialKeyType.Captial: key = new CapsKey(); break; case SpecialKeyType.Return: key = new EnterKey(); break; case SpecialKeyType.Back: key = new BackKey(); break; default: return; } key.IsPressed = specialKey.IsDown; _currentKeyItem.InlineCollection.Add(key); }
public virtual Task<ICompletionDataList> HandleBackspaceOrDeleteCodeCompletionAsync (CodeCompletionContext completionContext, SpecialKey key, char triggerCharacter, CancellationToken token = default(CancellationToken)) { return Task.FromResult (emptyList); }
/// <summary> /// Types the keyboard key represented by the special key passed in /// </summary> /// <param name="key">the special key to send to the active window</param> public static void Type(SpecialKey key) { Type(_specialKeyValues[key]); }
void OnTabKey(int player, SpecialKey key) { if (key != SpecialKey.TabPlayerList) { return; } tabOpen[m.GetPlayerName(player)] = true; Dialog d = new Dialog(); d.IsModal = true; List <Widget> widgets = new List <Widget>(); // table alignment float tableX = xcenter(m.GetScreenResolution(player)[0], tableWidth); float tableY = tableMarginTop; // text to draw string row1 = m.GetServerName(); row1 = cutText(row1, HeadingFont, tableWidth - 2 * tablePadding); string row2 = m.GetServerMotd(); row2 = cutText(row2, SmallFontBold, tableWidth - 2 * tablePadding); string row3_1 = "IP: " + m.GetServerIp() + ":" + m.GetServerPort(); string row3_2 = (int)(m.GetPlayerPing(player) * 1000) + "ms"; string row4_1 = "Players: " + m.AllPlayers().Length; string row4_2 = "Page: " + (page + 1) + "/" + (pageCount + 1); string row5_1 = "ID"; string row5_2 = "Player"; string row5_3 = "Ping"; // row heights float row1Height = textHeight(row1, HeadingFont) + 2 * tablePadding; float row2Height = textHeight(row2, SmallFontBold) + 2 * tablePadding; float row3Height = textHeight(row3_1, SmallFont) + 2 * tablePadding; float row4Height = textHeight(row4_1, SmallFont) + 2 * tablePadding; float row5Height = textHeight(row5_1, NormalFontBold) + 2 * tablePadding; float listEntryHeight = textHeight("Player", NormalFont) + 2 * listEntryPaddingTopBottom; float heightOffset = 0; // determine how many entries can be displayed tableHeight = m.GetScreenResolution(player)[1] - tableMarginTop - tableMarginBottom; float availableEntrySpace = tableHeight - row1Height - row2Height - row3Height - row4Height - (row5Height + tableLineWidth); int entriesPerPage = (int)(availableEntrySpace / listEntryHeight); pageCount = (int)Math.Ceiling((float)(m.AllPlayers().Length / entriesPerPage)); if (page > pageCount) { page = 0; } // 1 - heading: Servername widgets.Add(Widget.MakeSolid(tableX, tableY, tableWidth, row1Height, Color.DarkGreen.ToArgb())); widgets.Add(Widget.MakeText(row1, HeadingFont, tableX + xcenter(tableWidth, textWidth(row1, HeadingFont)), tableY + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row1Height; // 2 - MOTD widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row2Height, Color.ForestGreen.ToArgb())); widgets.Add(Widget.MakeText(row2, SmallFontBold, tableX + xcenter(tableWidth, textWidth(row2, SmallFontBold)), tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row2Height; // 3 - server info: IP Motd Serverping widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row3Height, Color.DarkSeaGreen.ToArgb())); // row3_1 - IP align left widgets.Add(Widget.MakeText(row3_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row3_2 - Serverping align right widgets.Add(Widget.MakeText(row3_2, SmallFont, tableX + tableWidth - textWidth(row3_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row3Height; // 4 - infoline: Playercount, Page widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row4Height, Color.DimGray.ToArgb())); // row4_1 PlayerCount widgets.Add(Widget.MakeText(row4_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_2 PlayerCount widgets.Add(Widget.MakeText(row4_2, SmallFont, tableX + tableWidth - textWidth(row4_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row4Height; // 5 - playerlist heading: ID | Player | Ping widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableIdColumnWidth, row5Height, Color.DarkGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tablePlayerColumnWidth, row5Height, Color.DarkGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth, tableY + heightOffset, tablePingColumnWidth, row5Height, Color.DarkGray.ToArgb())); // separation lines widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tableLineWidth, row5Height, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth - tableLineWidth, tableY + heightOffset, tableLineWidth, row5Height, Color.DimGray.ToArgb())); // row4_1 ID - align center widgets.Add(Widget.MakeText(row5_1, NormalFontBold, tableX + xcenter(tableIdColumnWidth, textWidth(row5_1, NormalFontBold)), tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_2 Player - align center widgets.Add(Widget.MakeText(row5_2, NormalFontBold, tableX + tableIdColumnWidth + tablePlayerColumnWidth / 2 - textWidth(row5_2, NormalFontBold) / 2, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_3 Ping - align center widgets.Add(Widget.MakeText(row5_3, NormalFontBold, tableX + tableIdColumnWidth + tablePlayerColumnWidth + tablePingColumnWidth / 2 - textWidth(row5_3, NormalFontBold) / 2, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row5Height; // horizontal line widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, tableLineWidth, Color.DimGray.ToArgb())); heightOffset += tableLineWidth; // 6 - actual playerlist // entries: Color entryRowColor; int[] AllPlayers = m.AllPlayers(); for (int i = page * entriesPerPage; i < Math.Min(AllPlayers.Length, page * entriesPerPage + entriesPerPage); i++) { if (i % 2 == 0) { entryRowColor = Color.Gainsboro; } else { entryRowColor = Color.Honeydew; } widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableIdColumnWidth, listEntryHeight, entryRowColor.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tablePlayerColumnWidth, listEntryHeight, entryRowColor.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth, tableY + heightOffset, tablePingColumnWidth, listEntryHeight, entryRowColor.ToArgb())); // separation lines widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tableLineWidth, listEntryHeight, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth - tableLineWidth, tableY + heightOffset, tableLineWidth, listEntryHeight, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeText(AllPlayers[i].ToString(), NormalFont, tableX + tableIdColumnWidth - textWidth(AllPlayers[i].ToString(), NormalFont) - tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); widgets.Add(Widget.MakeText(getPrefix(AllPlayers[i]) + m.GetPlayerName(AllPlayers[i]), NormalFont, tableX + tableIdColumnWidth + tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); string pingString; if (m.IsBot(AllPlayers[i])) { pingString = "BOT"; } else { pingString = ((int)(m.GetPlayerPing(AllPlayers[i]) * 1000)).ToString(); } widgets.Add(Widget.MakeText(pingString, NormalFont, tableX + tableIdColumnWidth + tablePlayerColumnWidth + tablePingColumnWidth - textWidth(pingString, NormalFont) - tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); heightOffset += listEntryHeight; } var wtab = Widget.MakeSolid(0, 0, 0, 0, 0); wtab.ClickKey = '\t'; wtab.Id = "Tab"; widgets.Add(wtab); var wesc = Widget.MakeSolid(0, 0, 0, 0, 0); wesc.ClickKey = (char)27; wesc.Id = "Esc"; widgets.Add(wesc); d.Width = m.GetScreenResolution(player)[0]; d.Height = m.GetScreenResolution(player)[1]; d.Widgets = widgets.ToArray(); m.SendDialog(player, "PlayerList", d); }
void OnTabKey(int player, SpecialKey key) { if (key != SpecialKey.TabPlayerList) { return; } tabOpen[m.GetPlayerName(player)] = true; Dialog d = new Dialog(); d.IsModal = true; List<Widget> widgets = new List<Widget>(); // table alignment float tableX = xcenter(m.GetScreenResolution(player)[0], tableWidth); float tableY = tableMarginTop; // text to draw string row1 = m.GetServerName(); row1 = cutText(row1, HeadingFont, tableWidth - 2 * tablePadding); string row2 = m.GetServerMotd(); row2 = cutText(row2, SmallFontBold, tableWidth - 2 * tablePadding); string row3_1 = "IP: " + m.GetServerIp() + ":" + m.GetServerPort(); string row3_2 = (int)(m.GetPlayerPing(player) * 1000) + "ms"; string row4_1 = "Players: " + m.AllPlayers().Length; string row4_2 = "Page: " + (page + 1) + "/" + (pageCount + 1); string row5_1 = "ID"; string row5_2 = "Player"; string row5_3 = "Ping"; // row heights float row1Height = textHeight(row1, HeadingFont) + 2 * tablePadding; float row2Height = textHeight(row2, SmallFontBold) + 2 * tablePadding; float row3Height = textHeight(row3_1, SmallFont) + 2 * tablePadding; float row4Height = textHeight(row4_1, SmallFont) + 2 * tablePadding; float row5Height = textHeight(row5_1, NormalFontBold) + 2 * tablePadding; float listEntryHeight = textHeight("Player", NormalFont) + 2 * listEntryPaddingTopBottom; float heightOffset = 0; // determine how many entries can be displayed tableHeight = m.GetScreenResolution(player)[1] - tableMarginTop - tableMarginBottom; float availableEntrySpace = tableHeight - row1Height - row2Height - row3Height - row4Height - (row5Height + tableLineWidth); int entriesPerPage = (int)(availableEntrySpace / listEntryHeight); pageCount = (int)Math.Ceiling((float)(m.AllPlayers().Length / entriesPerPage)); if (page > pageCount) { page = 0; } // 1 - heading: Servername widgets.Add(Widget.MakeSolid(tableX, tableY, tableWidth, row1Height, Color.DarkGreen.ToArgb())); widgets.Add(Widget.MakeText(row1, HeadingFont, tableX + xcenter(tableWidth, textWidth(row1, HeadingFont)), tableY + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row1Height; // 2 - MOTD widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row2Height, Color.ForestGreen.ToArgb())); widgets.Add(Widget.MakeText(row2, SmallFontBold, tableX + xcenter(tableWidth, textWidth(row2, SmallFontBold)), tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row2Height; // 3 - server info: IP Motd Serverping widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row3Height, Color.DarkSeaGreen.ToArgb())); // row3_1 - IP align left widgets.Add(Widget.MakeText(row3_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row3_2 - Serverping align right widgets.Add(Widget.MakeText(row3_2, SmallFont, tableX + tableWidth - textWidth(row3_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row3Height; // 4 - infoline: Playercount, Page widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row4Height, Color.DimGray.ToArgb())); // row4_1 PlayerCount widgets.Add(Widget.MakeText(row4_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_2 PlayerCount widgets.Add(Widget.MakeText(row4_2, SmallFont, tableX + tableWidth - textWidth(row4_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row4Height; // 5 - playerlist heading: ID | Player | Ping widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableIdColumnWidth, row5Height, Color.DarkGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tablePlayerColumnWidth, row5Height, Color.DarkGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth, tableY + heightOffset, tablePingColumnWidth, row5Height, Color.DarkGray.ToArgb())); // separation lines widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tableLineWidth, row5Height, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth - tableLineWidth, tableY + heightOffset, tableLineWidth, row5Height, Color.DimGray.ToArgb())); // row4_1 ID - align center widgets.Add(Widget.MakeText(row5_1, NormalFontBold, tableX + xcenter(tableIdColumnWidth, textWidth(row5_1, NormalFontBold)), tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_2 Player - align center widgets.Add(Widget.MakeText(row5_2, NormalFontBold, tableX + tableIdColumnWidth + tablePlayerColumnWidth / 2 - textWidth(row5_2, NormalFontBold) / 2, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_3 Ping - align center widgets.Add(Widget.MakeText(row5_3, NormalFontBold, tableX + tableIdColumnWidth + tablePlayerColumnWidth + tablePingColumnWidth / 2 - textWidth(row5_3, NormalFontBold) / 2, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row5Height; // horizontal line widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, tableLineWidth, Color.DimGray.ToArgb())); heightOffset += tableLineWidth; // 6 - actual playerlist // entries: Color entryRowColor; int[] AllPlayers = m.AllPlayers(); for (int i = page * entriesPerPage; i < Math.Min(AllPlayers.Length, page * entriesPerPage + entriesPerPage); i++) { if (i % 2 == 0) { entryRowColor = Color.Gainsboro; } else { entryRowColor = Color.Honeydew; } widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableIdColumnWidth, listEntryHeight, entryRowColor.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tablePlayerColumnWidth, listEntryHeight, entryRowColor.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth, tableY + heightOffset, tablePingColumnWidth, listEntryHeight, entryRowColor.ToArgb())); // separation lines widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth, tableY + heightOffset, tableLineWidth, listEntryHeight, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeSolid(tableX + tableIdColumnWidth + tablePlayerColumnWidth - tableLineWidth, tableY + heightOffset, tableLineWidth, listEntryHeight, Color.DimGray.ToArgb())); widgets.Add(Widget.MakeText(AllPlayers[i].ToString(), NormalFont, tableX + tableIdColumnWidth - textWidth(AllPlayers[i].ToString(), NormalFont) - tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); widgets.Add(Widget.MakeText(getPrefix(AllPlayers[i]) + m.GetPlayerName(AllPlayers[i]), NormalFont, tableX + tableIdColumnWidth + tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); string pingString; if (m.IsBot(AllPlayers[i])) { pingString = "BOT"; } else { pingString = ((int)(m.GetPlayerPing(AllPlayers[i]) * 1000)).ToString(); } widgets.Add(Widget.MakeText(pingString, NormalFont, tableX + tableIdColumnWidth + tablePlayerColumnWidth + tablePingColumnWidth - textWidth(pingString, NormalFont) - tablePadding, tableY + heightOffset + listEntryPaddingTopBottom, TEXT_COLOR.ToArgb())); heightOffset += listEntryHeight; } var wtab = Widget.MakeSolid(0, 0, 0, 0, 0); wtab.ClickKey = '\t'; wtab.Id = "Tab"; widgets.Add(wtab); var wesc = Widget.MakeSolid(0, 0, 0, 0, 0); wesc.ClickKey = (char)27; wesc.Id = "Esc"; widgets.Add(wesc); d.Width = m.GetScreenResolution(player)[0]; d.Height = m.GetScreenResolution(player)[1]; d.Widgets = widgets.ToArray(); m.SendDialog(player, "PlayerList", d); }
public KeyItem(string itemName, SpecialKey keyType) : base(ItemType.KEY, itemName) { this.KeyType = keyType; }
public override bool Key(SpecialKey key, bool up, string keyString) { if (!IsFocused) { return(false); } if (up && key == SpecialKey.Back) { //SetFocused(false); if (OnTextEntered != null) { OnTextEntered(this, string.Empty); } return(true); } if (up && (key == SpecialKey.Enter || key == SpecialKey.Joystick_Start)) { //SetFocused(false); if (OnTextEntered != null) { OnTextEntered(this, m_text); } return(true); } if (up && key == SpecialKey.Tab) { if (WidgetManager.FocusNext(this) && OnFocusLost != null) { OnFocusLost(this, m_text); } return(true); } if ((key == SpecialKey.Letter || key == SpecialKey.Paste) /* && Font.HaveSymbol(character)*/) { StringBuilder stringToAdd = new StringBuilder(keyString.Length); for (int i = 0; i < keyString.Length; i++) { if (Font.HaveSymbol(keyString[i])) { stringToAdd.Append(keyString[i]); } } if (stringToAdd.Length > 0) { string toAdd = stringToAdd.ToString(); if (m_cursorPosition == m_text.Length) { m_text += toAdd; } else { m_text = m_text.Insert(m_cursorPosition, toAdd); } if (OnTextChanged != null) { OnTextChanged(this, m_text); } m_cursorPosition += toAdd.Length; m_cursorLinePosition += toAdd.Length; Relayout(); return(true); } } if (!up) { switch (key) { case SpecialKey.Backspace: if (m_cursorPosition > 0) { m_text = m_text.Substring(0, m_cursorPosition - 1) + m_text.Substring(m_cursorPosition); if (OnTextChanged != null) { OnTextChanged(this, m_text); } m_cursorPosition--; m_cursorLinePosition--; Relayout(); } break; case SpecialKey.Delete: if (m_cursorPosition <= m_text.Length - 1) { m_text = m_text.Substring(0, m_cursorPosition) + m_text.Substring(m_cursorPosition + 1); if (OnTextChanged != null) { OnTextChanged(this, m_text); } Relayout(); } break; case SpecialKey.Enter: { if (m_cursorPosition == m_text.Length) { m_text += "\n"; } else { m_text = m_text.Insert(m_cursorPosition, "\n"); } if (OnTextChanged != null) { OnTextChanged(this, m_text); } m_cursorPosition++; m_cursorLine++; m_cursorLinePosition = 0; Relayout(); } break; case SpecialKey.Left: if (m_cursorPosition > 0) { UpdateCursor(-1, 0); } break; case SpecialKey.Right: if (m_cursorPosition <= m_text.Length - 1) { UpdateCursor(1, 0); } break; case SpecialKey.Home: if (m_cursorLinePosition > 0) { UpdateCursor(-m_cursorLinePosition, 0); } break; case SpecialKey.End: UpdateCursor(int.MaxValue, 0); break; case SpecialKey.Up: if (m_cursorLine > 0) { UpdateCursor(0, -1); } break; case SpecialKey.Down: if (m_cursorLine < m_lines.Length - 1) { UpdateCursor(0, 1); } break; } } return(true); }
private void OnSpecialKeysPressed(object o, SpecialKey key) { switch (key) { case SpecialKey.AudioPlay: if(Driver.player.Playing == true) { // We are playing so stop playing Driver.player.Stop(); toggle_play_button.Active = false; artist_label.Markup = ""; song_label.Markup = ""; this.Title = "Last Exit"; trayicon.CanShowPopup = false; // FIXME: Need a blank cover. //Gdk.Pixbuf cover = new Gdk.Pixbuf (null, "unknown-cover.png", 66, 66); //cover_image.ChangePixbuf (cover); cover_image.ChangePixbuf(null); } else { // We were paused so play TreeIter iter; if (station_combo.GetActiveIter (out iter)) { string path = (string) station_combo.Model.GetValue (iter, (int) Column.Path); if (path != null) { Driver.connection.ChangeStation (path); } else { FindStation dialog = new FindStation (this); dialog.Visible = true; } } } break; case SpecialKey.AudioNext: Driver.connection.Skip(); break; } }
void DoPreInsertionSmartIndent (SpecialKey key) { switch (key) { case SpecialKey.BackSpace: SafeUpdateIndentEngine (Editor.CaretOffset); HandleStringConcatinationDeletion (Editor.CaretOffset - 1, 0); break; case SpecialKey.Delete: SafeUpdateIndentEngine (Editor.CaretOffset); HandleStringConcatinationDeletion (Editor.CaretOffset, Editor.Length); break; } }
public static void KeyboardWrite(string ks) { ks = ks.ToUpper(); for (int i = 0; i < ks.Length; i++) { List <byte> Keys = new List <byte>(); if (ks[i] == '{') { int iof; if ((iof = ks.Substring(i).IndexOf('}')) != -1) { Console.WriteLine("i : " + i + ", iof : " + iof); string content = ks.Substring(i + 1, iof - 1); string[] SpecialKeys = content.Contains("+") ? content.Split('+') : new string[] { content }; foreach (string SpecialKey in SpecialKeys) { byte?CurrentKey = null; switch (SpecialKey) { case "ENTER": CurrentKey = 0x0D; break; case "ALT": CurrentKey = 0x12; break; case "CTRL": CurrentKey = 0x11; break; case "TAB": CurrentKey = 0x09; break; case "START": CurrentKey = 0x5B; break; case "ESC": CurrentKey = 0x1B; break; } if (SpecialKey.StartsWith("F")) { string fnum = SpecialKey.Substring(1); try { CurrentKey = (byte)(0x70 + (byte)Int32.Parse(fnum) - 1); } catch { } Console.WriteLine("FNUM : " + fnum); } if (!CurrentKey.HasValue) { if (content.EndsWith("MS") && !content.Contains("+")) { int ms = Int32.Parse(SpecialKey.Substring(0, SpecialKey.Length - 2)); Console.WriteLine("Waiting " + ms); Thread.Sleep(ms); continue; } else { CurrentKey = (byte)SpecialKey[0]; } } Keys.Add(CurrentKey.Value); Console.WriteLine("Special Key: " + SpecialKey); } i += iof; } } else { Keys.Add((byte)ks[i]); } foreach (byte b in Keys) { Console.WriteLine("Pressed: " + b); KeyDown(b); } foreach (byte b in Keys) { Console.WriteLine("Released: " + b); KeyUp(b); } } }
private static extern int XKeysymToKeycode(IntPtr display, SpecialKey keysym);
void OnTabKey(int player, SpecialKey key) { if (key != SpecialKey.TabPlayerList) { return; } tabOpen[m.GetPlayerName(player)] = true; Dialog d = new Dialog(); d.IsModal = true; List<Widget> widgets = new List<Widget>(); // table alignment float tableX = xcenter(m.GetScreenResolution(player)[0], tableWidth); float tableY = tableMarginTop; // text to draw string row1 = m.GetServerName(); row1 = cutText(row1, HeadingFont, tableWidth - 2 * tablePadding); string row2 = m.GetServerMotd(); row2 = cutText(row2, SmallFontBold, tableWidth - 2 * tablePadding); string row3_1 = "IP: " + m.GetServerIp() + ":" + m.GetServerPort(); string row3_2 = (int)(m.GetPlayerPing(player) * 1000) + "ms"; string row4_1 = "Players: " + m.AllPlayers().Length; string row4_2 = "Page: " + (page + 1) + "/" + (pageCount + 1); string row5_1 = "ID"; //string row5_2 = "Player"; //string row5_3 = "Ping"; // row heights float row1Height = textHeight(row1, HeadingFont) + 2 * tablePadding; float row2Height = textHeight(row2, SmallFontBold) + 2 * tablePadding; float row3Height = textHeight(row3_1, SmallFont) + 2 * tablePadding; float row4Height = textHeight(row4_1, SmallFont) + 2 * tablePadding; float row5Height = textHeight(row5_1, NormalFontBold) + 2 * tablePadding; float listEntryHeight = textHeight("Player", NormalFont) + 2 * listEntryPaddingTopBottom; float heightOffset = 0; // determine how many entries can be displayed tableHeight = m.GetScreenResolution(player)[1] - tableMarginTop - tableMarginBottom; float availableEntrySpace = tableHeight - row1Height - row2Height - row3Height - row4Height - (row5Height + tableLineWidth); int entriesPerPage = (int)(availableEntrySpace / listEntryHeight); pageCount = (int)Math.Ceiling((float)(m.AllPlayers().Length / entriesPerPage)); if (page > pageCount) { page = 0; } // 1 - heading: Servername widgets.Add(Widget.MakeSolid(tableX, tableY, tableWidth, row1Height, Color.DarkGreen.ToArgb())); widgets.Add(Widget.MakeText(row1, HeadingFont, tableX + xcenter(tableWidth, textWidth(row1, HeadingFont)), tableY + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row1Height; // 2 - MOTD widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row2Height, Color.ForestGreen.ToArgb())); widgets.Add(Widget.MakeText(row2, SmallFontBold, tableX + xcenter(tableWidth, textWidth(row2, SmallFontBold)), tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row2Height; // 3 - server info: IP Motd Serverping widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row3Height, Color.DarkSeaGreen.ToArgb())); // row3_1 - IP align left widgets.Add(Widget.MakeText(row3_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row3_2 - Serverping align right widgets.Add(Widget.MakeText(row3_2, SmallFont, tableX + tableWidth - textWidth(row3_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row3Height; // 4 - infoline: Playercount, Page widgets.Add(Widget.MakeSolid(tableX, tableY + heightOffset, tableWidth, row4Height, Color.DimGray.ToArgb())); // row4_1 PlayerCount widgets.Add(Widget.MakeText(row4_1, SmallFont, tableX + tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); // row4_2 PlayerCount widgets.Add(Widget.MakeText(row4_2, SmallFont, tableX + tableWidth - textWidth(row4_2, SmallFont) - tablePadding, tableY + heightOffset + tablePadding, TEXT_COLOR.ToArgb())); heightOffset += row4Height; Dictionary<Team, List<int>> playersByTeam = new Dictionary<Team, List<int>>(); playersByTeam[Team.Blue] = new List<int>(); playersByTeam[Team.Spectator] = new List<int>(); playersByTeam[Team.Green] = new List<int>(); int[] AllPlayers = m.AllPlayers(); foreach (int p in AllPlayers) { playersByTeam[players[p].team].Add(p); } Team[] allteams = new Team[] { Team.Blue, Team.Spectator, Team.Green }; for (int t = 0; t < allteams.Length; t++) { List<int> players = playersByTeam[allteams[t]]; players.Sort((a, b) => (this.players[b].kills.CompareTo(this.players[a].kills))); for (int i = 0; i < players.Count; i++) { string s = string.Format("{0} {1}ms {2} kills", m.GetPlayerName(players[i]), (int)(m.GetPlayerPing(players[i]) * 1000), this.players[players[i]].kills); widgets.Add(Widget.MakeText(s, NormalFont, tableX + 200 * t, tableY + heightOffset + listEntryHeight * i, Color.White.ToArgb())); } } var wtab = Widget.MakeSolid(0, 0, 0, 0, 0); wtab.ClickKey = '\t'; wtab.Id = "Tab"; widgets.Add(wtab); var wesc = Widget.MakeSolid(0, 0, 0, 0, 0); wesc.ClickKey = (char)27; wesc.Id = "Esc"; widgets.Add(wesc); d.Width = m.GetScreenResolution(player)[0]; d.Height = m.GetScreenResolution(player)[1]; d.Widgets = widgets.ToArray(); m.SendDialog(player, "PlayerList", d); }
static char TranslateKeyCharForIndenter (SpecialKey key, char keyChar, char docChar) { switch (key) { case SpecialKey.Return: return '\n'; case SpecialKey.Tab: return '\t'; default: if (docChar == keyChar) return keyChar; break; } return '\0'; }
public bool HasKey(SpecialKey key) { foreach (Item item in Inventory) { if (item is KeyItem) { KeyItem keyItem = item as KeyItem; if (keyItem.KeyType == key) { return true; } } } return false; }