/// <summary> /// Checks if a new table should be moved to the active spot /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void moveTables_Tick(object sender, System.EventArgs e) { // Check for lobby minimizing if (Settings.KeepLobbyMinimized) { foreach (PartyLobby lobby in pokerLobbies.Values) { lobby.MinimizeWindow(); } } // Check for lobby opening if (Settings.KeepLobbyOpened) { foreach (PartyLobby lobby in pokerLobbies.Values) { lobby.OpenWindow(); } } // Update tables try { foreach (PokerTable table in pokerTables.Values) { table.InvokeActionTick(); } } catch { } // Check if any tables are unpositioned, and if autoarrange is on if (Settings.AutoArrangeTables) { foreach (PokerTable table in pokerTables.Values) { if (!disabledTables.ContainsKey(table.Handle)) { if (table.Quadrant == 0 || (table.IsSittingOut && table.Quadrant != Settings.NonSeatedTableQuadrant && Settings.PlaceUnseatedTablesAtSpecialLocation) || (!table.IsSittingOut && table.Quadrant == Settings.NonSeatedTableQuadrant && Settings.PlaceUnseatedTablesAtSpecialLocation)) { // Don't arrange tables while SNG Opener is open if (!SuspendMovement) { if ((!table.IsSeated() || table.IsSittingOut) && Settings.PlaceUnseatedTablesAtSpecialLocation) { table.MoveToQuadrant(Settings.GetQuad(Settings.NonSeatedTableQuadrant), false); } else { moveTableToFreeQuadrant(table.Handle, 0); } } } } } } // If there isn't an active table righ now if (!pokerTables.ContainsKey(activeTable) && actionQueue.Count > 0) { // Get the first in line table PokerTable table = pokerTables[actionQueue[0]]; // Move any tables currently occupying the active location, unless it's the table that's now active if (Settings.MoveActiveTable && table.Quadrant != Settings.ActiveTableQuadrant) { removeTableFromActiveQuadrant(table.Quadrant); } // Remove it from the queue if (actionQueue.Count > 0) { actionQueue.RemoveAt(0); } // Move it to the active quadrant if (Settings.MoveActiveTable) { table.MoveToQuadrant(Settings.GetQuad(Settings.ActiveTableQuadrant), true); } // Update activeTable activeTable = table.Handle; // Log table activation Log.Write(table.Name); // Start forceActivation timer if (Settings.ForceActiveTableToBeTopmost) { tableOnTopTimer.Enabled = true; } // Move mouse to table if wanted if (Settings.MoveCursorToActiveTable) { // Get the current table position Point pos = table.GetPosition(); // Only move the mouse if it's outside the table area if (Cursor.Position.X < pos.X || Cursor.Position.X > pos.X + table.Width || Cursor.Position.Y < pos.Y || Cursor.Position.Y > pos.Y + table.Height) { table.MoveCursorToTable(); } } // Notify the table that it's been activated table.HasBeenActivated(); } }
// Fires when a key has been pressed, used in conjunction with keyboard controls private void MyKeyDown(object sender, KeyEventArgs e) { if (Settings.RequireNumLock) { if (!Win32.NumLock()) { return; } } if (Settings.RequireCapsLock) { if (!Win32.CapsLock()) { return; } } if (Settings.UseKeyboardControls) { string keyCode = GetKeyCode(e); // Do we have an active table? if (pokerTables.ContainsKey(activeTable)) { PokerTable table = (PokerTable)pokerTables[activeTable]; switch (keyCode) { case "back": string txt = table.GetRaiseValue(); if (txt.Length > 0) { table.SetRaiseValue(txt.Substring(0, txt.Length - 1)); } break; case "0": table.SetRaiseValue(table.GetRaiseValue() + "0"); break; case "1": table.SetRaiseValue(table.GetRaiseValue() + "1"); break; case "2": table.SetRaiseValue(table.GetRaiseValue() + "2"); break; case "3": table.SetRaiseValue(table.GetRaiseValue() + "3"); break; case "4": table.SetRaiseValue(table.GetRaiseValue() + "4"); break; case "5": table.SetRaiseValue(table.GetRaiseValue() + "5"); break; case "6": table.SetRaiseValue(table.GetRaiseValue() + "6"); break; case "7": table.SetRaiseValue(table.GetRaiseValue() + "7"); break; case "8": table.SetRaiseValue(table.GetRaiseValue() + "8"); break; case "9": table.SetRaiseValue(table.GetRaiseValue() + "9"); break; case ".": table.SetRaiseValue(table.GetRaiseValue() + "."); break; } // Check / call if (keyCode == Settings.CheckCallKeyCode) { table.CheckCall(); } // Bet / raise if (keyCode == Settings.BetRaiseKeyCode) { table.BetRaise(); } // Fold if (keyCode == Settings.FoldKeyCode) { table.Fold(); } // Auto push if (keyCode == Settings.AutoPushKeyCode) { table.AutoPush(); } // Move cursor to active table if (keyCode == Settings.MoveCursorToActiveTableKeyCode) { table.MoveCursorToTable(); } } // Generic keyboard control functions // Rearrange tables if (keyCode == Settings.RearrangeTablesKeyCode) { rearrangeTables(); } // Toggle force table to top if (keyCode == Settings.ForceActiveTableTopmostKeyCode) { Settings.ForceActiveTableToBeTopmost = !Settings.ForceActiveTableToBeTopmost; } // Toggle lobby opened/minimized if (keyCode == Settings.ToggleLobbyKeyCode) { if (Settings.KeepLobbyMinimized || (!Settings.KeepLobbyOpened)) { Settings.KeepLobbyMinimized = false; Settings.KeepLobbyOpened = true; } else if (Settings.KeepLobbyOpened) { Settings.KeepLobbyMinimized = true; Settings.KeepLobbyOpened = false; } } } }