diff --git a/Basketball Scoreboard System.sln b/Basketball Scoreboard System.sln
new file mode 100644
index 0000000..531eaa2
--- /dev/null
+++ b/Basketball Scoreboard System.sln
@@ -0,0 +1,50 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32929.385
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basketball Scoreboard System", "Basketball Scoreboard System\Basketball Scoreboard System.csproj", "{6DBE2316-C761-4B9D-9E59-26F9D9429BA1}"
+EndProject
+Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Setup", "Setup\Setup.vdproj", "{EA4348AD-06AE-4267-BFA2-CB1CCD84865E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Debug|x64.ActiveCfg = Debug|x64
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Debug|x64.Build.0 = Debug|x64
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Debug|x86.ActiveCfg = Debug|x86
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Debug|x86.Build.0 = Debug|x86
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Release|x64.ActiveCfg = Release|x64
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Release|x64.Build.0 = Release|x64
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Release|x86.ActiveCfg = Release|x86
+ {6DBE2316-C761-4B9D-9E59-26F9D9429BA1}.Release|x86.Build.0 = Release|x86
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Debug|Any CPU.ActiveCfg = Debug
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Debug|x64.ActiveCfg = Debug
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Debug|x64.Build.0 = Debug
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Debug|x86.ActiveCfg = Debug
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Debug|x86.Build.0 = Debug
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Release|Any CPU.ActiveCfg = Release
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Release|Any CPU.Build.0 = Release
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Release|x64.ActiveCfg = Release
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Release|x64.Build.0 = Release
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Release|x86.ActiveCfg = Release
+ {EA4348AD-06AE-4267-BFA2-CB1CCD84865E}.Release|x86.Build.0 = Release
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {2D258A86-CAE7-4F55-9DDF-44C688EF9273}
+ EndGlobalSection
+EndGlobal
diff --git a/Basketball Scoreboard System/App.config b/Basketball Scoreboard System/App.config
new file mode 100644
index 0000000..ad085f0
--- /dev/null
+++ b/Basketball Scoreboard System/App.config
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+ HOME
+
+
+ AWAY
+
+
+ 600000
+
+
+ 24000
+
+
+ True
+
+
+ 5
+
+
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/Basketball Scoreboard System.csproj b/Basketball Scoreboard System/Basketball Scoreboard System.csproj
new file mode 100644
index 0000000..ac4a820
--- /dev/null
+++ b/Basketball Scoreboard System/Basketball Scoreboard System.csproj
@@ -0,0 +1,55 @@
+
+
+
+ WinExe
+ net6.0-windows
+ Basketball_Scoreboard_System
+ enable
+ true
+ enable
+ AnyCPU;x64;x86
+
+
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PublicSettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ True
+ Settings.settings
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/Program.cs b/Basketball Scoreboard System/Program.cs
new file mode 100644
index 0000000..acd08e1
--- /dev/null
+++ b/Basketball Scoreboard System/Program.cs
@@ -0,0 +1,53 @@
+using Basketball_Scoreboard_System.classes;
+using Basketball_Scoreboard_System.forms;
+using System.Drawing.Text;
+
+namespace Basketball_Scoreboard_System
+{
+ internal static class Program
+ {
+ public static AudienceWindow AudienceWindow = new();
+ public static ControlPanel ControlPanel = new();
+
+ public static Team HomeTeam = new(true, false, true);
+ public static Team AwayTeam = new(false, true, false);
+
+ public static Clock MainClock = new(Settings.Default.MainClockDefaultTime, false, true);
+ public static Clock ShotClock = new(Settings.Default.ShotClockDefaultTime, true, false);
+
+ public static int Period = 1;
+
+ [STAThread]
+ private static void Main()
+ {
+ if (!IsFontInstalled("DSEG7 Classic") || !IsFontInstalled("DSEG14 Classic") || !IsFontInstalled("Fira Mono")) MessageBox.Show("Required fonts are not installed.\nThey can be found in:\n" + Path.Combine(Application.StartupPath, "fonts\\"), "Warning", MessageBoxButtons.OK);
+ ApplicationConfiguration.Initialize();
+ Application.Run(AudienceWindow);
+ }
+
+ public static bool IsFontInstalled(string FontName)
+ {
+ InstalledFontCollection AllFonts = new();
+ foreach (FontFamily Font in AllFonts.Families)
+ {
+ if (Font.Name == FontName) return true;
+ }
+ return false;
+ }
+
+ public static Font GetFontSize(Graphics Graphics, string Text, Size MaxStringSize, Font LabelFont)
+ {
+ Font Font = new(LabelFont.Name, LabelFont.Size);
+ SizeF Size = Graphics.MeasureString(Text, Font);
+
+ while (Size.Width != MaxStringSize.Width)
+ {
+ float NewSize = Font.Size * (MaxStringSize.Width / Size.Width);
+ Font = new(LabelFont.Name, NewSize);
+ Size = Graphics.MeasureString(Text, Font);
+ }
+
+ return Font;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/Properties/Resources.Designer.cs b/Basketball Scoreboard System/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..409f3cb
--- /dev/null
+++ b/Basketball Scoreboard System/Properties/Resources.Designer.cs
@@ -0,0 +1,81 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Basketball_Scoreboard_System.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Basketball_Scoreboard_System.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
+ ///
+ internal static System.IO.UnmanagedMemoryStream BuzzerMainClock {
+ get {
+ return ResourceManager.GetStream("BuzzerMainClock", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
+ ///
+ internal static System.IO.UnmanagedMemoryStream BuzzerShotClock {
+ get {
+ return ResourceManager.GetStream("BuzzerShotClock", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/Basketball Scoreboard System/Properties/Resources.resx b/Basketball Scoreboard System/Properties/Resources.resx
new file mode 100644
index 0000000..a28ae3c
--- /dev/null
+++ b/Basketball Scoreboard System/Properties/Resources.resx
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\assets\buzzer-main.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\assets\buzzer-shotclock.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/Settings.Designer.cs b/Basketball Scoreboard System/Settings.Designer.cs
new file mode 100644
index 0000000..1fe56ce
--- /dev/null
+++ b/Basketball Scoreboard System/Settings.Designer.cs
@@ -0,0 +1,98 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Basketball_Scoreboard_System {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")]
+ public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("HOME")]
+ public string HomeTeamName {
+ get {
+ return ((string)(this["HomeTeamName"]));
+ }
+ set {
+ this["HomeTeamName"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("AWAY")]
+ public string AwayTeamName {
+ get {
+ return ((string)(this["AwayTeamName"]));
+ }
+ set {
+ this["AwayTeamName"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("600000")]
+ public int MainClockDefaultTime {
+ get {
+ return ((int)(this["MainClockDefaultTime"]));
+ }
+ set {
+ this["MainClockDefaultTime"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("24000")]
+ public int ShotClockDefaultTime {
+ get {
+ return ((int)(this["ShotClockDefaultTime"]));
+ }
+ set {
+ this["ShotClockDefaultTime"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("True")]
+ public bool ShotClockEnabled {
+ get {
+ return ((bool)(this["ShotClockEnabled"]));
+ }
+ set {
+ this["ShotClockEnabled"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("5")]
+ public int BonusFoulThreshold {
+ get {
+ return ((int)(this["BonusFoulThreshold"]));
+ }
+ set {
+ this["BonusFoulThreshold"] = value;
+ }
+ }
+ }
+}
diff --git a/Basketball Scoreboard System/Settings.settings b/Basketball Scoreboard System/Settings.settings
new file mode 100644
index 0000000..3ea321a
--- /dev/null
+++ b/Basketball Scoreboard System/Settings.settings
@@ -0,0 +1,24 @@
+
+
+
+
+
+ HOME
+
+
+ AWAY
+
+
+ 600000
+
+
+ 24000
+
+
+ True
+
+
+ 5
+
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/assets/buzzer-main.wav b/Basketball Scoreboard System/assets/buzzer-main.wav
new file mode 100644
index 0000000..fa185b4
Binary files /dev/null and b/Basketball Scoreboard System/assets/buzzer-main.wav differ
diff --git a/Basketball Scoreboard System/assets/buzzer-shotclock.wav b/Basketball Scoreboard System/assets/buzzer-shotclock.wav
new file mode 100644
index 0000000..b2940eb
Binary files /dev/null and b/Basketball Scoreboard System/assets/buzzer-shotclock.wav differ
diff --git a/Basketball Scoreboard System/assets/icon.ico b/Basketball Scoreboard System/assets/icon.ico
new file mode 100644
index 0000000..985b7a3
Binary files /dev/null and b/Basketball Scoreboard System/assets/icon.ico differ
diff --git a/Basketball Scoreboard System/classes/Clock.cs b/Basketball Scoreboard System/classes/Clock.cs
new file mode 100644
index 0000000..3da83bf
--- /dev/null
+++ b/Basketball Scoreboard System/classes/Clock.cs
@@ -0,0 +1,67 @@
+namespace Basketball_Scoreboard_System.classes
+{
+ public class Clock
+ {
+ public int DefaultTime { get; set; }
+ public int Time { get; set; }
+ public bool IsShotClock { get; set; }
+ public bool IsMainClock { get; set; }
+
+ public Clock(int DefaultTime, bool IsSC, bool IsMC)
+ {
+ this.DefaultTime = DefaultTime;
+ Time = DefaultTime;
+ IsMainClock = IsMC;
+ IsShotClock = IsSC;
+ if (!((IsMainClock && !IsShotClock) || (!IsMainClock && IsShotClock))) MessageBox.Show("Clock not initialized properly", "Error", MessageBoxButtons.AbortRetryIgnore);
+ }
+
+ public void DisplayTime()
+ {
+ if (IsMainClock)
+ {
+ Program.AudienceWindow.LabelClock.Text = FormatTimeMC();
+ Program.ControlPanel.LabelClock.Text = FormatTimeMC();
+ }
+ else if (IsShotClock)
+ {
+ Program.AudienceWindow.LabelShotClock.Text = FormatTimeSC();
+ Program.ControlPanel.LabelShotClock.Text = FormatTimeSC();
+ }
+ }
+
+ public string FormatTimeMC()
+ {
+ TimeSpan ParsedTime = TimeSpan.FromMilliseconds(Time);
+
+ if (ParsedTime.Minutes == 0)
+ {
+ string MS = (ParsedTime.Milliseconds / 10).ToString();
+ string Seconds = ParsedTime.Seconds.ToString();
+ if (ParsedTime.Seconds < 10) Seconds = "0" + ParsedTime.Seconds;
+ if (ParsedTime.Milliseconds / 100 == 0) MS = "00";
+ return Seconds + "." + MS;
+ }
+ else
+ {
+ string Minutes = ParsedTime.Minutes.ToString();
+ string Seconds = ParsedTime.Seconds.ToString();
+ if (ParsedTime.Minutes < 10) Minutes = "0" + ParsedTime.Minutes;
+ if (ParsedTime.Seconds < 10) Seconds = "0" + ParsedTime.Seconds;
+ return Minutes + ":" + Seconds;
+ }
+ }
+
+ public string FormatTimeSC()
+ {
+ TimeSpan ParsedTime = TimeSpan.FromMilliseconds(Time);
+ return ParsedTime.Seconds.ToString();
+ }
+
+ public void SCUpdateButtonLabel()
+ {
+ TimeSpan SCS = TimeSpan.FromMilliseconds(DefaultTime);
+ Program.ControlPanel.ButtonSCSetToDefault.Text = "Shot Clock\nSet " + SCS.Seconds.ToString() + "s";
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/classes/Player.cs b/Basketball Scoreboard System/classes/Player.cs
new file mode 100644
index 0000000..96255f4
--- /dev/null
+++ b/Basketball Scoreboard System/classes/Player.cs
@@ -0,0 +1,22 @@
+namespace Basketball_Scoreboard_System.classes
+{
+ public class Player
+ {
+ public string Name { get; set; }
+ public int Number { get; set; }
+ public int Points { get; set; }
+ public int Rebounds { get; set; }
+ public int Assists { get; set; }
+ public int Blocks { get; set; }
+ public int Steals { get; set; }
+ public int Turnovers { get; set; }
+ public int TotalShots { get; set; }
+ public int ShotsMade { get; set; }
+
+ public Player(int Number, string Name)
+ {
+ this.Number = Number;
+ this.Name = Name;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/classes/Team.cs b/Basketball Scoreboard System/classes/Team.cs
new file mode 100644
index 0000000..921ea81
--- /dev/null
+++ b/Basketball Scoreboard System/classes/Team.cs
@@ -0,0 +1,94 @@
+namespace Basketball_Scoreboard_System.classes
+{
+ public class Team
+ {
+ public string Name { get; set; }
+ public int Score { get; set; }
+ public int Fouls { get; set; }
+ public bool Bonus { get; set; }
+ public bool IsHome { get; set; }
+ public bool IsAway { get; set; }
+ public bool Possession { get; set; }
+ public List Players { get; set; }
+
+ public Team(bool IsHomeTeam, bool IsAwayTeam, bool HasPossession)
+ {
+ Players = new List();
+ Score = 0;
+ Fouls = 0;
+ Bonus = false;
+
+ IsAway = IsAwayTeam;
+ IsHome = IsHomeTeam;
+ Possession = HasPossession;
+
+ if (IsHome && !IsAway)
+ {
+ Name = Settings.Default.HomeTeamName ?? "HOME";
+ Program.AudienceWindow.LabelHomeTeamName.Text = Name;
+ }
+ else if (!IsHome && IsAway)
+ {
+ Name = Settings.Default.AwayTeamName ?? "AWAY";
+ Program.AudienceWindow.LabelAwayTeamName.Text = Name;
+ }
+ else
+ {
+ Name = "ERROR";
+ MessageBox.Show("Team not initialized properly", "Error", MessageBoxButtons.AbortRetryIgnore);
+ }
+ }
+
+ public void ChangeTeamName(string NewName)
+ {
+ Name = NewName;
+ if (IsHome && !IsAway)
+ {
+ Settings.Default.HomeTeamName = NewName;
+ Settings.Default.Save();
+ Program.AudienceWindow.LabelHomeTeamName.Text = Settings.Default.HomeTeamName;
+ Program.ControlPanel.TeamsMenuHome.Text = Settings.Default.HomeTeamName;
+ Program.ControlPanel.LabelHomeTitle.Text = Settings.Default.HomeTeamName;
+ }
+ else if (!IsHome && IsAway)
+ {
+ Settings.Default.AwayTeamName = NewName;
+ Settings.Default.Save();
+ Program.AudienceWindow.LabelAwayTeamName.Text = Settings.Default.AwayTeamName;
+ Program.ControlPanel.TeamsMenuAway.Text = Settings.Default.AwayTeamName;
+ Program.ControlPanel.LabelAwayTitle.Text = Settings.Default.AwayTeamName;
+ }
+ }
+
+ public void ChangeScore(int Amount)
+ {
+ if (Score + Amount < 0 || Score + Amount > 999) MessageBox.Show("Score cannot be less than 0 or greater than 999", "Warning", MessageBoxButtons.OK);
+ else
+ {
+ Score += Amount;
+ if (IsHome && !IsAway)
+ {
+ Program.AudienceWindow.LabelHomeScore.Text = Score.ToString();
+ Program.ControlPanel.LabelHomeScore.Text = Score.ToString();
+ }
+ else if (!IsHome && IsAway)
+ {
+ Program.AudienceWindow.LabelAwayScore.Text = Score.ToString();
+ Program.ControlPanel.LabelAwayScore.Text = Score.ToString();
+ }
+ }
+ }
+
+ public static string FormatFouls(int Fouls)
+ {
+ if (Fouls < 10) return "0" + Fouls.ToString();
+ else return Fouls.ToString();
+ }
+
+ public static string FormatScore(int Score)
+ {
+ if (Score < 10) return "0" + Score.ToString();
+ else return Score.ToString();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/fonts/DSEG14Classic-Regular.ttf b/Basketball Scoreboard System/fonts/DSEG14Classic-Regular.ttf
new file mode 100644
index 0000000..7c28934
Binary files /dev/null and b/Basketball Scoreboard System/fonts/DSEG14Classic-Regular.ttf differ
diff --git a/Basketball Scoreboard System/fonts/DSEG7Classic-Regular.ttf b/Basketball Scoreboard System/fonts/DSEG7Classic-Regular.ttf
new file mode 100644
index 0000000..5e02edc
Binary files /dev/null and b/Basketball Scoreboard System/fonts/DSEG7Classic-Regular.ttf differ
diff --git a/Basketball Scoreboard System/fonts/fira-mono-bold.ttf b/Basketball Scoreboard System/fonts/fira-mono-bold.ttf
new file mode 100644
index 0000000..6d4ffb0
Binary files /dev/null and b/Basketball Scoreboard System/fonts/fira-mono-bold.ttf differ
diff --git a/Basketball Scoreboard System/forms/AudienceWindow.Designer.cs b/Basketball Scoreboard System/forms/AudienceWindow.Designer.cs
new file mode 100644
index 0000000..4733d7d
--- /dev/null
+++ b/Basketball Scoreboard System/forms/AudienceWindow.Designer.cs
@@ -0,0 +1,364 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ partial class AudienceWindow
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null)) components.Dispose();
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ PanelParent = new Panel();
+ LabelHomeTeamFouls = new Label();
+ LabelHomeTeamFoulsTitle = new Label();
+ LabelAwayTeamFouls = new Label();
+ LabelAwayTeamFoulsTitle = new Label();
+ LabelHomeTeamBonus = new Label();
+ LabelAwayTeamBonus = new Label();
+ LabelAwayTeamPossession = new Label();
+ LabelHomeTeamPossession = new Label();
+ LabelPeriod = new Label();
+ LabelPeriodTitle = new Label();
+ LabelAwayScore = new Label();
+ LabelHomeScore = new Label();
+ LabelShotClockTitle = new Label();
+ LabelShotClock = new Label();
+ PanelScoreAway = new Panel();
+ LabelAwayTeamName = new Label();
+ PanelScoreHome = new Panel();
+ LabelHomeTeamName = new Label();
+ LabelClock = new Label();
+ MainClockTimer = new System.Timers.Timer();
+ ShotClockTimer = new System.Timers.Timer();
+ PanelParent.SuspendLayout();
+ PanelScoreAway.SuspendLayout();
+ PanelScoreHome.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)MainClockTimer).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)ShotClockTimer).BeginInit();
+ SuspendLayout();
+ //
+ // PanelParent
+ //
+ PanelParent.Anchor = AnchorStyles.None;
+ PanelParent.Controls.Add(LabelHomeTeamFouls);
+ PanelParent.Controls.Add(LabelHomeTeamFoulsTitle);
+ PanelParent.Controls.Add(LabelAwayTeamFouls);
+ PanelParent.Controls.Add(LabelAwayTeamFoulsTitle);
+ PanelParent.Controls.Add(LabelHomeTeamBonus);
+ PanelParent.Controls.Add(LabelAwayTeamBonus);
+ PanelParent.Controls.Add(LabelAwayTeamPossession);
+ PanelParent.Controls.Add(LabelHomeTeamPossession);
+ PanelParent.Controls.Add(LabelPeriod);
+ PanelParent.Controls.Add(LabelPeriodTitle);
+ PanelParent.Controls.Add(LabelAwayScore);
+ PanelParent.Controls.Add(LabelHomeScore);
+ PanelParent.Controls.Add(LabelShotClockTitle);
+ PanelParent.Controls.Add(LabelShotClock);
+ PanelParent.Controls.Add(PanelScoreAway);
+ PanelParent.Controls.Add(PanelScoreHome);
+ PanelParent.Controls.Add(LabelClock);
+ PanelParent.Location = new Point(12, 12);
+ PanelParent.Margin = new Padding(8);
+ PanelParent.Name = "PanelParent";
+ PanelParent.Size = new Size(1410, 752);
+ PanelParent.TabIndex = 0;
+ //
+ // LabelHomeTeamFouls
+ //
+ LabelHomeTeamFouls.BackColor = Color.Transparent;
+ LabelHomeTeamFouls.Font = new Font("DSEG7 Classic", 72F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelHomeTeamFouls.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelHomeTeamFouls.Location = new Point(192, 512);
+ LabelHomeTeamFouls.Name = "LabelHomeTeamFouls";
+ LabelHomeTeamFouls.Size = new Size(108, 154);
+ LabelHomeTeamFouls.TabIndex = 15;
+ LabelHomeTeamFouls.Text = "-";
+ LabelHomeTeamFouls.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelHomeTeamFoulsTitle
+ //
+ LabelHomeTeamFoulsTitle.Font = new Font("Fira Mono", 27.7499962F, FontStyle.Bold, GraphicsUnit.Point);
+ LabelHomeTeamFoulsTitle.Location = new Point(154, 460);
+ LabelHomeTeamFoulsTitle.Name = "LabelHomeTeamFoulsTitle";
+ LabelHomeTeamFoulsTitle.Size = new Size(185, 52);
+ LabelHomeTeamFoulsTitle.TabIndex = 14;
+ LabelHomeTeamFoulsTitle.Text = "FOULS";
+ LabelHomeTeamFoulsTitle.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelAwayTeamFouls
+ //
+ LabelAwayTeamFouls.BackColor = Color.Transparent;
+ LabelAwayTeamFouls.Font = new Font("DSEG7 Classic", 72F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelAwayTeamFouls.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelAwayTeamFouls.Location = new Point(1109, 512);
+ LabelAwayTeamFouls.Name = "LabelAwayTeamFouls";
+ LabelAwayTeamFouls.Size = new Size(108, 154);
+ LabelAwayTeamFouls.TabIndex = 13;
+ LabelAwayTeamFouls.Text = "-";
+ LabelAwayTeamFouls.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelAwayTeamFoulsTitle
+ //
+ LabelAwayTeamFoulsTitle.Font = new Font("Fira Mono", 27.7499962F, FontStyle.Bold, GraphicsUnit.Point);
+ LabelAwayTeamFoulsTitle.Location = new Point(1071, 460);
+ LabelAwayTeamFoulsTitle.Name = "LabelAwayTeamFoulsTitle";
+ LabelAwayTeamFoulsTitle.Size = new Size(185, 52);
+ LabelAwayTeamFoulsTitle.TabIndex = 12;
+ LabelAwayTeamFoulsTitle.Text = "FOULS";
+ LabelAwayTeamFoulsTitle.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelHomeTeamBonus
+ //
+ LabelHomeTeamBonus.BackColor = Color.Transparent;
+ LabelHomeTeamBonus.Font = new Font("DSEG14 Classic", 47.9999924F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelHomeTeamBonus.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelHomeTeamBonus.Location = new Point(393, 391);
+ LabelHomeTeamBonus.Name = "LabelHomeTeamBonus";
+ LabelHomeTeamBonus.Size = new Size(91, 121);
+ LabelHomeTeamBonus.TabIndex = 11;
+ LabelHomeTeamBonus.Text = "B";
+ LabelHomeTeamBonus.TextAlign = ContentAlignment.MiddleCenter;
+ LabelHomeTeamBonus.Visible = false;
+ //
+ // LabelAwayTeamBonus
+ //
+ LabelAwayTeamBonus.BackColor = Color.Transparent;
+ LabelAwayTeamBonus.Font = new Font("DSEG14 Classic", 47.9999924F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelAwayTeamBonus.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelAwayTeamBonus.Location = new Point(926, 391);
+ LabelAwayTeamBonus.Name = "LabelAwayTeamBonus";
+ LabelAwayTeamBonus.Size = new Size(91, 121);
+ LabelAwayTeamBonus.TabIndex = 10;
+ LabelAwayTeamBonus.Text = "B";
+ LabelAwayTeamBonus.TextAlign = ContentAlignment.MiddleCenter;
+ LabelAwayTeamBonus.Visible = false;
+ //
+ // LabelAwayTeamPossession
+ //
+ LabelAwayTeamPossession.BackColor = Color.Transparent;
+ LabelAwayTeamPossession.Font = new Font("DSEG14 Classic", 47.9999924F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelAwayTeamPossession.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelAwayTeamPossession.Location = new Point(790, 512);
+ LabelAwayTeamPossession.Name = "LabelAwayTeamPossession";
+ LabelAwayTeamPossession.Size = new Size(91, 121);
+ LabelAwayTeamPossession.TabIndex = 9;
+ LabelAwayTeamPossession.Text = ">";
+ LabelAwayTeamPossession.TextAlign = ContentAlignment.MiddleCenter;
+ LabelAwayTeamPossession.Visible = false;
+ //
+ // LabelHomeTeamPossession
+ //
+ LabelHomeTeamPossession.BackColor = Color.Transparent;
+ LabelHomeTeamPossession.Font = new Font("DSEG14 Classic", 47.9999924F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelHomeTeamPossession.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelHomeTeamPossession.Location = new Point(529, 512);
+ LabelHomeTeamPossession.Name = "LabelHomeTeamPossession";
+ LabelHomeTeamPossession.Size = new Size(91, 121);
+ LabelHomeTeamPossession.TabIndex = 8;
+ LabelHomeTeamPossession.Text = "<";
+ LabelHomeTeamPossession.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelPeriod
+ //
+ LabelPeriod.BackColor = Color.Transparent;
+ LabelPeriod.Font = new Font("DSEG7 Classic", 72F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelPeriod.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelPeriod.Location = new Point(651, 512);
+ LabelPeriod.Name = "LabelPeriod";
+ LabelPeriod.Size = new Size(108, 154);
+ LabelPeriod.TabIndex = 7;
+ LabelPeriod.Text = "-";
+ LabelPeriod.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelPeriodTitle
+ //
+ LabelPeriodTitle.Font = new Font("Fira Mono", 27.7499962F, FontStyle.Bold, GraphicsUnit.Point);
+ LabelPeriodTitle.Location = new Point(613, 460);
+ LabelPeriodTitle.Name = "LabelPeriodTitle";
+ LabelPeriodTitle.Size = new Size(185, 52);
+ LabelPeriodTitle.TabIndex = 4;
+ LabelPeriodTitle.Text = "PERIOD";
+ LabelPeriodTitle.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelAwayScore
+ //
+ LabelAwayScore.BackColor = Color.Transparent;
+ LabelAwayScore.Font = new Font("DSEG7 Classic", 120F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelAwayScore.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelAwayScore.Location = new Point(926, 223);
+ LabelAwayScore.Name = "LabelAwayScore";
+ LabelAwayScore.Size = new Size(475, 160);
+ LabelAwayScore.TabIndex = 6;
+ LabelAwayScore.Text = "0";
+ LabelAwayScore.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelHomeScore
+ //
+ LabelHomeScore.BackColor = Color.Transparent;
+ LabelHomeScore.Font = new Font("DSEG7 Classic", 120F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelHomeScore.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelHomeScore.Location = new Point(9, 223);
+ LabelHomeScore.Name = "LabelHomeScore";
+ LabelHomeScore.Size = new Size(475, 160);
+ LabelHomeScore.TabIndex = 5;
+ LabelHomeScore.Text = "0";
+ LabelHomeScore.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelShotClockTitle
+ //
+ LabelShotClockTitle.Font = new Font("Fira Mono", 36F, FontStyle.Bold, GraphicsUnit.Point);
+ LabelShotClockTitle.Location = new Point(529, 223);
+ LabelShotClockTitle.Name = "LabelShotClockTitle";
+ LabelShotClockTitle.Size = new Size(352, 77);
+ LabelShotClockTitle.TabIndex = 4;
+ LabelShotClockTitle.Text = "SHOT CLOCK";
+ LabelShotClockTitle.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelShotClock
+ //
+ LabelShotClock.BackColor = Color.Transparent;
+ LabelShotClock.Font = new Font("DSEG7 Classic", 95.99998F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelShotClock.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelShotClock.Location = new Point(567, 300);
+ LabelShotClock.Name = "LabelShotClock";
+ LabelShotClock.Size = new Size(277, 160);
+ LabelShotClock.TabIndex = 3;
+ LabelShotClock.Text = "--";
+ LabelShotClock.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // PanelScoreAway
+ //
+ PanelScoreAway.Controls.Add(LabelAwayTeamName);
+ PanelScoreAway.Location = new Point(1061, 3);
+ PanelScoreAway.Name = "PanelScoreAway";
+ PanelScoreAway.Size = new Size(346, 212);
+ PanelScoreAway.TabIndex = 2;
+ //
+ // LabelAwayTeamName
+ //
+ LabelAwayTeamName.AutoSize = true;
+ LabelAwayTeamName.Font = new Font("Fira Mono", 32F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelAwayTeamName.Location = new Point(0, 0);
+ LabelAwayTeamName.MaximumSize = new Size(340, 212);
+ LabelAwayTeamName.MinimumSize = new Size(340, 212);
+ LabelAwayTeamName.Name = "LabelAwayTeamName";
+ LabelAwayTeamName.Size = new Size(340, 212);
+ LabelAwayTeamName.TabIndex = 3;
+ LabelAwayTeamName.Text = "----";
+ LabelAwayTeamName.TextAlign = ContentAlignment.MiddleCenter;
+ LabelAwayTeamName.Paint += LabelAwayTeamName_Paint;
+ //
+ // PanelScoreHome
+ //
+ PanelScoreHome.Controls.Add(LabelHomeTeamName);
+ PanelScoreHome.Location = new Point(3, 3);
+ PanelScoreHome.Name = "PanelScoreHome";
+ PanelScoreHome.Size = new Size(346, 212);
+ PanelScoreHome.TabIndex = 1;
+ //
+ // LabelHomeTeamName
+ //
+ LabelHomeTeamName.AutoSize = true;
+ LabelHomeTeamName.Font = new Font("Fira Mono", 32F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelHomeTeamName.Location = new Point(6, 0);
+ LabelHomeTeamName.MaximumSize = new Size(340, 212);
+ LabelHomeTeamName.MinimumSize = new Size(340, 212);
+ LabelHomeTeamName.Name = "LabelHomeTeamName";
+ LabelHomeTeamName.Size = new Size(340, 212);
+ LabelHomeTeamName.TabIndex = 0;
+ LabelHomeTeamName.Text = "----";
+ LabelHomeTeamName.TextAlign = ContentAlignment.MiddleCenter;
+ LabelHomeTeamName.Paint += LabelHomeTeamName_Paint;
+ //
+ // LabelClock
+ //
+ LabelClock.BackColor = Color.Transparent;
+ LabelClock.Font = new Font("DSEG7 Classic", 128F, FontStyle.Regular, GraphicsUnit.Point);
+ LabelClock.ForeColor = Color.FromArgb(255, 128, 128);
+ LabelClock.Location = new Point(355, 0);
+ LabelClock.Name = "LabelClock";
+ LabelClock.Size = new Size(700, 215);
+ LabelClock.TabIndex = 0;
+ LabelClock.Text = "--:--";
+ LabelClock.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // MainClockTimer
+ //
+ MainClockTimer.Interval = 25D;
+ MainClockTimer.SynchronizingObject = this;
+ MainClockTimer.Elapsed += MainClockTimer_Elapsed;
+ //
+ // ShotClockTimer
+ //
+ ShotClockTimer.Interval = 1000D;
+ ShotClockTimer.SynchronizingObject = this;
+ ShotClockTimer.Elapsed += ShotClockTimer_Elapsed;
+ //
+ // AudienceWindow
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ BackColor = Color.Black;
+ ClientSize = new Size(1434, 776);
+ Controls.Add(PanelParent);
+ ForeColor = Color.White;
+ MinimumSize = new Size(1450, 815);
+ Name = "AudienceWindow";
+ ShowIcon = false;
+ StartPosition = FormStartPosition.CenterScreen;
+ Text = "Audience Window";
+ FormClosing += AudienceWindow_FormClosing;
+ Load += AudienceWindow_Load;
+ PanelParent.ResumeLayout(false);
+ PanelScoreAway.ResumeLayout(false);
+ PanelScoreAway.PerformLayout();
+ PanelScoreHome.ResumeLayout(false);
+ PanelScoreHome.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)MainClockTimer).EndInit();
+ ((System.ComponentModel.ISupportInitialize)ShotClockTimer).EndInit();
+ ResumeLayout(false);
+ }
+
+ #endregion
+
+ private Panel PanelParent;
+ private Panel PanelScoreAway;
+ private Panel PanelScoreHome;
+ public Label LabelHomeTeamName;
+ public Label LabelAwayTeamName;
+ public System.Timers.Timer MainClockTimer;
+ public Label LabelClock;
+ public System.Timers.Timer ShotClockTimer;
+ public Label LabelShotClock;
+ public Label LabelShotClockTitle;
+ public Label LabelHomeScore;
+ public Label LabelAwayScore;
+ public Label LabelPeriodTitle;
+ public Label LabelPeriod;
+ public Label LabelAwayTeamPossession;
+ public Label LabelHomeTeamPossession;
+ public Label LabelHomeTeamBonus;
+ public Label LabelAwayTeamBonus;
+ public Label LabelAwayTeamFouls;
+ public Label LabelAwayTeamFoulsTitle;
+ public Label LabelHomeTeamFouls;
+ public Label LabelHomeTeamFoulsTitle;
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/AudienceWindow.cs b/Basketball Scoreboard System/forms/AudienceWindow.cs
new file mode 100644
index 0000000..894fd1c
--- /dev/null
+++ b/Basketball Scoreboard System/forms/AudienceWindow.cs
@@ -0,0 +1,52 @@
+using System.Media;
+
+namespace Basketball_Scoreboard_System.forms
+{
+ public partial class AudienceWindow : Form
+ {
+ private readonly SoundPlayer BuzzerMainClock = new(Properties.Resources.BuzzerMainClock);
+ private readonly SoundPlayer BuzzerShotClock = new(Properties.Resources.BuzzerShotClock);
+
+ public AudienceWindow() => InitializeComponent();
+
+ private void LabelHomeTeamName_Paint(object sender, PaintEventArgs e) => LabelHomeTeamName.Font = Program.GetFontSize(e.Graphics, LabelHomeTeamName.Text, new Size(LabelHomeTeamName.Width - 12, LabelHomeTeamName.Height), LabelHomeTeamName.Font);
+
+ private void LabelAwayTeamName_Paint(object sender, PaintEventArgs e) => LabelAwayTeamName.Font = Program.GetFontSize(e.Graphics, LabelAwayTeamName.Text, new Size(LabelAwayTeamName.MaximumSize.Width - 12, LabelAwayTeamName.MaximumSize.Height), LabelAwayTeamName.Font);
+
+ private void AudienceWindow_Load(object sender, EventArgs e) => Program.ControlPanel.Show();
+
+ private void AudienceWindow_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ DialogResult Confirmation = MessageBox.Show("Are you sure you want to exit?\nGame progress will not be saved.", "Confirm", MessageBoxButtons.YesNo);
+ if (Confirmation == DialogResult.No) e.Cancel = true;
+ }
+
+ private void MainClockTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
+ {
+ if (Program.MainClock.Time > 0)
+ {
+ Program.MainClock.Time -= (int)Program.AudienceWindow.MainClockTimer.Interval;
+ Program.MainClock.DisplayTime();
+ }
+ else
+ {
+ Program.AudienceWindow.MainClockTimer.Stop();
+ BuzzerMainClock.Play();
+ }
+ }
+
+ private void ShotClockTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
+ {
+ if (Program.ShotClock.Time > 0)
+ {
+ Program.ShotClock.Time -= (int)Program.AudienceWindow.ShotClockTimer.Interval;
+ Program.ShotClock.DisplayTime();
+ }
+ else
+ {
+ Program.AudienceWindow.ShotClockTimer.Stop();
+ BuzzerShotClock.Play();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/AudienceWindow.resx b/Basketball Scoreboard System/forms/AudienceWindow.resx
new file mode 100644
index 0000000..6269f60
--- /dev/null
+++ b/Basketball Scoreboard System/forms/AudienceWindow.resx
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 163, 24
+
+
+ 72
+
+
+ 31, 23
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/ControlPanel.Designer.cs b/Basketball Scoreboard System/forms/ControlPanel.Designer.cs
new file mode 100644
index 0000000..7659e28
--- /dev/null
+++ b/Basketball Scoreboard System/forms/ControlPanel.Designer.cs
@@ -0,0 +1,647 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ partial class ControlPanel
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ ControlPanelMenuStrip = new MenuStrip();
+ GameMenu = new ToolStripMenuItem();
+ GameMenuSetPeriod = new ToolStripMenuItem();
+ GameMenuSwitchPossession = new ToolStripMenuItem();
+ TeamsMenu = new ToolStripMenuItem();
+ TeamsMenuHome = new ToolStripMenuItem();
+ TeamsMenuHomeChangeName = new ToolStripMenuItem();
+ TeamsMenuHomeSetFouls = new ToolStripMenuItem();
+ TeamsMenuAway = new ToolStripMenuItem();
+ TeamsMenuAwayChangeName = new ToolStripMenuItem();
+ TeamsMenuAwaySetFouls = new ToolStripMenuItem();
+ SetBonusFoulThresholdMenuButton = new ToolStripMenuItem();
+ MainClockMenu = new ToolStripMenuItem();
+ MainClockMenuSetTime = new ToolStripMenuItem();
+ MainClockMenuSetDefaultTime = new ToolStripMenuItem();
+ ShotClockMenu = new ToolStripMenuItem();
+ ShotClockMenuSetTime = new ToolStripMenuItem();
+ ShotClockMenuSetDefaultTime = new ToolStripMenuItem();
+ ShotClockMenuToggleShotClock = new ToolStripMenuItem();
+ ButtonStartClocks = new Button();
+ ButtonStopClocks = new Button();
+ ButtonSCSetToDefault = new Button();
+ ButtonSCSet14S = new Button();
+ LabelHomeTitle = new Label();
+ LabelAwayTitle = new Label();
+ Line = new Label();
+ ButtonHomeScoreAdd1 = new Button();
+ ButtonHomeScoreAdd2 = new Button();
+ ButtonHomeScoreAdd3 = new Button();
+ ButtonHomeScoreSubtract1 = new Button();
+ ButtonHomeScoreSubtract2 = new Button();
+ ButtonHomeScoreSubtract3 = new Button();
+ ButtonAwayScoreAdd1 = new Button();
+ ButtonAwayScoreAdd2 = new Button();
+ ButtonAwayScoreSubtract1 = new Button();
+ ButtonAwayScoreSubtract2 = new Button();
+ ButtonAwayScoreAdd3 = new Button();
+ ButtonAwayScoreSubtract3 = new Button();
+ LabelClock = new Label();
+ LabelShotClock = new Label();
+ LabelPeriod = new Label();
+ LabelAwayPossession = new Label();
+ LabelHomePossession = new Label();
+ LabelAwayBonus = new Label();
+ LabelHomeBonus = new Label();
+ LabelAwayFouls = new Label();
+ LabelAwayScore = new Label();
+ LabelHomeFouls = new Label();
+ LabelHomeScore = new Label();
+ ControlPanelMenuStrip.SuspendLayout();
+ SuspendLayout();
+ //
+ // ControlPanelMenuStrip
+ //
+ ControlPanelMenuStrip.Items.AddRange(new ToolStripItem[] { GameMenu, TeamsMenu, MainClockMenu, ShotClockMenu });
+ ControlPanelMenuStrip.Location = new Point(0, 0);
+ ControlPanelMenuStrip.Name = "ControlPanelMenuStrip";
+ ControlPanelMenuStrip.RenderMode = ToolStripRenderMode.System;
+ ControlPanelMenuStrip.Size = new Size(490, 24);
+ ControlPanelMenuStrip.TabIndex = 1;
+ ControlPanelMenuStrip.Text = "Control Panel Menu";
+ //
+ // GameMenu
+ //
+ GameMenu.DropDownItems.AddRange(new ToolStripItem[] { GameMenuSetPeriod, GameMenuSwitchPossession });
+ GameMenu.Name = "GameMenu";
+ GameMenu.Size = new Size(50, 20);
+ GameMenu.Text = "Game";
+ //
+ // GameMenuSetPeriod
+ //
+ GameMenuSetPeriod.Name = "GameMenuSetPeriod";
+ GameMenuSetPeriod.Size = new Size(169, 22);
+ GameMenuSetPeriod.Text = "Set Period";
+ GameMenuSetPeriod.Click += GameMenuSetPeriod_Click;
+ //
+ // GameMenuSwitchPossession
+ //
+ GameMenuSwitchPossession.Name = "GameMenuSwitchPossession";
+ GameMenuSwitchPossession.Size = new Size(169, 22);
+ GameMenuSwitchPossession.Text = "Switch Possession";
+ GameMenuSwitchPossession.Click += GameMenuSwitchPossession_Click;
+ //
+ // TeamsMenu
+ //
+ TeamsMenu.DropDownItems.AddRange(new ToolStripItem[] { TeamsMenuHome, TeamsMenuAway, SetBonusFoulThresholdMenuButton });
+ TeamsMenu.Name = "TeamsMenu";
+ TeamsMenu.Size = new Size(52, 20);
+ TeamsMenu.Text = "Teams";
+ //
+ // TeamsMenuHome
+ //
+ TeamsMenuHome.DropDownItems.AddRange(new ToolStripItem[] { TeamsMenuHomeChangeName, TeamsMenuHomeSetFouls });
+ TeamsMenuHome.Name = "TeamsMenuHome";
+ TeamsMenuHome.Size = new Size(207, 22);
+ TeamsMenuHome.Text = "Home";
+ //
+ // TeamsMenuHomeChangeName
+ //
+ TeamsMenuHomeChangeName.Name = "TeamsMenuHomeChangeName";
+ TeamsMenuHomeChangeName.Size = new Size(150, 22);
+ TeamsMenuHomeChangeName.Text = "Change Name";
+ TeamsMenuHomeChangeName.Click += TeamsMenuHomeChangeName_Click;
+ //
+ // TeamsMenuHomeSetFouls
+ //
+ TeamsMenuHomeSetFouls.Name = "TeamsMenuHomeSetFouls";
+ TeamsMenuHomeSetFouls.Size = new Size(150, 22);
+ TeamsMenuHomeSetFouls.Text = "Set Fouls";
+ TeamsMenuHomeSetFouls.Click += TeamsMenuHomeSetFouls_Click;
+ //
+ // TeamsMenuAway
+ //
+ TeamsMenuAway.DropDownItems.AddRange(new ToolStripItem[] { TeamsMenuAwayChangeName, TeamsMenuAwaySetFouls });
+ TeamsMenuAway.Name = "TeamsMenuAway";
+ TeamsMenuAway.Size = new Size(207, 22);
+ TeamsMenuAway.Text = "Away";
+ //
+ // TeamsMenuAwayChangeName
+ //
+ TeamsMenuAwayChangeName.Name = "TeamsMenuAwayChangeName";
+ TeamsMenuAwayChangeName.Size = new Size(150, 22);
+ TeamsMenuAwayChangeName.Text = "Change Name";
+ TeamsMenuAwayChangeName.Click += TeamsMenuAwayChangeName_Click;
+ //
+ // TeamsMenuAwaySetFouls
+ //
+ TeamsMenuAwaySetFouls.Name = "TeamsMenuAwaySetFouls";
+ TeamsMenuAwaySetFouls.Size = new Size(150, 22);
+ TeamsMenuAwaySetFouls.Text = "Set Fouls";
+ TeamsMenuAwaySetFouls.Click += TeamsMenuAwaySetFouls_Click;
+ //
+ // SetBonusFoulThresholdMenuButton
+ //
+ SetBonusFoulThresholdMenuButton.Name = "SetBonusFoulThresholdMenuButton";
+ SetBonusFoulThresholdMenuButton.Size = new Size(207, 22);
+ SetBonusFoulThresholdMenuButton.Text = "Set Bonus Foul Threshold";
+ SetBonusFoulThresholdMenuButton.Click += SetBonusFoulThresholdMenuButton_Click;
+ //
+ // MainClockMenu
+ //
+ MainClockMenu.DropDownItems.AddRange(new ToolStripItem[] { MainClockMenuSetTime, MainClockMenuSetDefaultTime });
+ MainClockMenu.Name = "MainClockMenu";
+ MainClockMenu.Size = new Size(79, 20);
+ MainClockMenu.Text = "Main Clock";
+ //
+ // MainClockMenuSetTime
+ //
+ MainClockMenuSetTime.Name = "MainClockMenuSetTime";
+ MainClockMenuSetTime.Size = new Size(160, 22);
+ MainClockMenuSetTime.Text = "Set Time";
+ MainClockMenuSetTime.Click += MainClockMenuSetTime_Click;
+ //
+ // MainClockMenuSetDefaultTime
+ //
+ MainClockMenuSetDefaultTime.Name = "MainClockMenuSetDefaultTime";
+ MainClockMenuSetDefaultTime.Size = new Size(160, 22);
+ MainClockMenuSetDefaultTime.Text = "Set Default Time";
+ MainClockMenuSetDefaultTime.Click += MainClockMenuSetDefaultTime_Click;
+ //
+ // ShotClockMenu
+ //
+ ShotClockMenu.DropDownItems.AddRange(new ToolStripItem[] { ShotClockMenuSetTime, ShotClockMenuSetDefaultTime, ShotClockMenuToggleShotClock });
+ ShotClockMenu.Name = "ShotClockMenu";
+ ShotClockMenu.Size = new Size(76, 20);
+ ShotClockMenu.Text = "Shot Clock";
+ //
+ // ShotClockMenuSetTime
+ //
+ ShotClockMenuSetTime.Name = "ShotClockMenuSetTime";
+ ShotClockMenuSetTime.Size = new Size(169, 22);
+ ShotClockMenuSetTime.Text = "Set Time";
+ ShotClockMenuSetTime.Click += ShotClockMenuSetTime_Click;
+ //
+ // ShotClockMenuSetDefaultTime
+ //
+ ShotClockMenuSetDefaultTime.Name = "ShotClockMenuSetDefaultTime";
+ ShotClockMenuSetDefaultTime.Size = new Size(169, 22);
+ ShotClockMenuSetDefaultTime.Text = "Set Default Time";
+ ShotClockMenuSetDefaultTime.Click += ShotClockMenuSetDefaultTime_Click;
+ //
+ // ShotClockMenuToggleShotClock
+ //
+ ShotClockMenuToggleShotClock.Name = "ShotClockMenuToggleShotClock";
+ ShotClockMenuToggleShotClock.Size = new Size(169, 22);
+ ShotClockMenuToggleShotClock.Text = "Toggle Shot Clock";
+ ShotClockMenuToggleShotClock.Click += ShotClockMenuToggleShotClock_Click;
+ //
+ // ButtonStartClocks
+ //
+ ButtonStartClocks.BackColor = Color.FromArgb(192, 255, 192);
+ ButtonStartClocks.FlatStyle = FlatStyle.Flat;
+ ButtonStartClocks.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonStartClocks.Location = new Point(12, 35);
+ ButtonStartClocks.Name = "ButtonStartClocks";
+ ButtonStartClocks.Size = new Size(128, 64);
+ ButtonStartClocks.TabIndex = 2;
+ ButtonStartClocks.Text = "Start Clocks";
+ ButtonStartClocks.UseVisualStyleBackColor = false;
+ ButtonStartClocks.Click += ButtonStartClocks_Click;
+ //
+ // ButtonStopClocks
+ //
+ ButtonStopClocks.BackColor = Color.FromArgb(255, 192, 192);
+ ButtonStopClocks.FlatStyle = FlatStyle.Flat;
+ ButtonStopClocks.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonStopClocks.Location = new Point(146, 35);
+ ButtonStopClocks.Name = "ButtonStopClocks";
+ ButtonStopClocks.Size = new Size(128, 64);
+ ButtonStopClocks.TabIndex = 3;
+ ButtonStopClocks.Text = "Stop Clocks";
+ ButtonStopClocks.UseVisualStyleBackColor = false;
+ ButtonStopClocks.Click += ButtonStopClocks_Click;
+ //
+ // ButtonSCSetToDefault
+ //
+ ButtonSCSetToDefault.FlatStyle = FlatStyle.Flat;
+ ButtonSCSetToDefault.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonSCSetToDefault.Location = new Point(280, 35);
+ ButtonSCSetToDefault.Name = "ButtonSCSetToDefault";
+ ButtonSCSetToDefault.Size = new Size(96, 64);
+ ButtonSCSetToDefault.TabIndex = 4;
+ ButtonSCSetToDefault.Text = "Shot Clock\r\nSet XXs";
+ ButtonSCSetToDefault.UseVisualStyleBackColor = true;
+ ButtonSCSetToDefault.Click += ButtonSCSetToDefault_Click;
+ //
+ // ButtonSCSet14S
+ //
+ ButtonSCSet14S.FlatStyle = FlatStyle.Flat;
+ ButtonSCSet14S.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonSCSet14S.Location = new Point(382, 35);
+ ButtonSCSet14S.Name = "ButtonSCSet14S";
+ ButtonSCSet14S.Size = new Size(96, 64);
+ ButtonSCSet14S.TabIndex = 5;
+ ButtonSCSet14S.Text = "Shot Clock\r\nSet 14s";
+ ButtonSCSet14S.UseVisualStyleBackColor = true;
+ ButtonSCSet14S.Click += ButtonSCSet14S_Click;
+ //
+ // LabelHomeTitle
+ //
+ LabelHomeTitle.Font = new Font("Segoe UI", 27.75F, FontStyle.Bold, GraphicsUnit.Point);
+ LabelHomeTitle.Location = new Point(12, 106);
+ LabelHomeTitle.Name = "LabelHomeTitle";
+ LabelHomeTitle.Size = new Size(227, 65);
+ LabelHomeTitle.TabIndex = 6;
+ LabelHomeTitle.Text = "Home";
+ LabelHomeTitle.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelAwayTitle
+ //
+ LabelAwayTitle.Font = new Font("Segoe UI", 27.75F, FontStyle.Bold, GraphicsUnit.Point);
+ LabelAwayTitle.Location = new Point(252, 106);
+ LabelAwayTitle.Name = "LabelAwayTitle";
+ LabelAwayTitle.Size = new Size(226, 65);
+ LabelAwayTitle.TabIndex = 8;
+ LabelAwayTitle.Text = "Away";
+ LabelAwayTitle.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // Line
+ //
+ Line.BorderStyle = BorderStyle.Fixed3D;
+ Line.Location = new Point(245, 106);
+ Line.Name = "Line";
+ Line.Size = new Size(1, 291);
+ Line.TabIndex = 9;
+ //
+ // ButtonHomeScoreAdd1
+ //
+ ButtonHomeScoreAdd1.FlatStyle = FlatStyle.Flat;
+ ButtonHomeScoreAdd1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonHomeScoreAdd1.Location = new Point(128, 174);
+ ButtonHomeScoreAdd1.Name = "ButtonHomeScoreAdd1";
+ ButtonHomeScoreAdd1.Size = new Size(64, 67);
+ ButtonHomeScoreAdd1.TabIndex = 10;
+ ButtonHomeScoreAdd1.Text = "+1";
+ ButtonHomeScoreAdd1.UseVisualStyleBackColor = true;
+ ButtonHomeScoreAdd1.Click += ButtonHomeScoreAdd1_Click;
+ //
+ // ButtonHomeScoreAdd2
+ //
+ ButtonHomeScoreAdd2.FlatStyle = FlatStyle.Flat;
+ ButtonHomeScoreAdd2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonHomeScoreAdd2.Location = new Point(128, 244);
+ ButtonHomeScoreAdd2.Name = "ButtonHomeScoreAdd2";
+ ButtonHomeScoreAdd2.Size = new Size(64, 67);
+ ButtonHomeScoreAdd2.TabIndex = 10;
+ ButtonHomeScoreAdd2.Text = "+2";
+ ButtonHomeScoreAdd2.UseVisualStyleBackColor = true;
+ ButtonHomeScoreAdd2.Click += ButtonHomeScoreAdd2_Click;
+ //
+ // ButtonHomeScoreAdd3
+ //
+ ButtonHomeScoreAdd3.FlatStyle = FlatStyle.Flat;
+ ButtonHomeScoreAdd3.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonHomeScoreAdd3.Location = new Point(128, 314);
+ ButtonHomeScoreAdd3.Name = "ButtonHomeScoreAdd3";
+ ButtonHomeScoreAdd3.Size = new Size(64, 67);
+ ButtonHomeScoreAdd3.TabIndex = 10;
+ ButtonHomeScoreAdd3.Text = "+3";
+ ButtonHomeScoreAdd3.UseVisualStyleBackColor = true;
+ ButtonHomeScoreAdd3.Click += ButtonHomeScoreAdd3_Click;
+ //
+ // ButtonHomeScoreSubtract1
+ //
+ ButtonHomeScoreSubtract1.FlatStyle = FlatStyle.Flat;
+ ButtonHomeScoreSubtract1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonHomeScoreSubtract1.Location = new Point(58, 174);
+ ButtonHomeScoreSubtract1.Name = "ButtonHomeScoreSubtract1";
+ ButtonHomeScoreSubtract1.Size = new Size(64, 67);
+ ButtonHomeScoreSubtract1.TabIndex = 10;
+ ButtonHomeScoreSubtract1.Text = "-1";
+ ButtonHomeScoreSubtract1.UseVisualStyleBackColor = true;
+ ButtonHomeScoreSubtract1.Click += ButtonHomeScoreSubtract1_Click;
+ //
+ // ButtonHomeScoreSubtract2
+ //
+ ButtonHomeScoreSubtract2.FlatStyle = FlatStyle.Flat;
+ ButtonHomeScoreSubtract2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonHomeScoreSubtract2.Location = new Point(58, 244);
+ ButtonHomeScoreSubtract2.Name = "ButtonHomeScoreSubtract2";
+ ButtonHomeScoreSubtract2.Size = new Size(64, 67);
+ ButtonHomeScoreSubtract2.TabIndex = 10;
+ ButtonHomeScoreSubtract2.Text = "-2";
+ ButtonHomeScoreSubtract2.UseVisualStyleBackColor = true;
+ ButtonHomeScoreSubtract2.Click += ButtonHomeScoreSubtract2_Click;
+ //
+ // ButtonHomeScoreSubtract3
+ //
+ ButtonHomeScoreSubtract3.FlatStyle = FlatStyle.Flat;
+ ButtonHomeScoreSubtract3.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonHomeScoreSubtract3.Location = new Point(58, 314);
+ ButtonHomeScoreSubtract3.Name = "ButtonHomeScoreSubtract3";
+ ButtonHomeScoreSubtract3.Size = new Size(64, 67);
+ ButtonHomeScoreSubtract3.TabIndex = 10;
+ ButtonHomeScoreSubtract3.Text = "-3";
+ ButtonHomeScoreSubtract3.UseVisualStyleBackColor = true;
+ ButtonHomeScoreSubtract3.Click += ButtonHomeScoreSubtract3_Click;
+ //
+ // ButtonAwayScoreAdd1
+ //
+ ButtonAwayScoreAdd1.FlatStyle = FlatStyle.Flat;
+ ButtonAwayScoreAdd1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonAwayScoreAdd1.Location = new Point(368, 174);
+ ButtonAwayScoreAdd1.Name = "ButtonAwayScoreAdd1";
+ ButtonAwayScoreAdd1.Size = new Size(64, 67);
+ ButtonAwayScoreAdd1.TabIndex = 10;
+ ButtonAwayScoreAdd1.Text = "+1";
+ ButtonAwayScoreAdd1.UseVisualStyleBackColor = true;
+ ButtonAwayScoreAdd1.Click += ButtonAwayScoreAdd1_Click;
+ //
+ // ButtonAwayScoreAdd2
+ //
+ ButtonAwayScoreAdd2.FlatStyle = FlatStyle.Flat;
+ ButtonAwayScoreAdd2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonAwayScoreAdd2.Location = new Point(368, 244);
+ ButtonAwayScoreAdd2.Name = "ButtonAwayScoreAdd2";
+ ButtonAwayScoreAdd2.Size = new Size(64, 67);
+ ButtonAwayScoreAdd2.TabIndex = 10;
+ ButtonAwayScoreAdd2.Text = "+2";
+ ButtonAwayScoreAdd2.UseVisualStyleBackColor = true;
+ ButtonAwayScoreAdd2.Click += ButtonAwayScoreAdd2_Click;
+ //
+ // ButtonAwayScoreSubtract1
+ //
+ ButtonAwayScoreSubtract1.FlatStyle = FlatStyle.Flat;
+ ButtonAwayScoreSubtract1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonAwayScoreSubtract1.Location = new Point(298, 174);
+ ButtonAwayScoreSubtract1.Name = "ButtonAwayScoreSubtract1";
+ ButtonAwayScoreSubtract1.Size = new Size(64, 67);
+ ButtonAwayScoreSubtract1.TabIndex = 10;
+ ButtonAwayScoreSubtract1.Text = "-1";
+ ButtonAwayScoreSubtract1.UseVisualStyleBackColor = true;
+ ButtonAwayScoreSubtract1.Click += ButtonAwayScoreSubtract1_Click;
+ //
+ // ButtonAwayScoreSubtract2
+ //
+ ButtonAwayScoreSubtract2.FlatStyle = FlatStyle.Flat;
+ ButtonAwayScoreSubtract2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonAwayScoreSubtract2.Location = new Point(298, 244);
+ ButtonAwayScoreSubtract2.Name = "ButtonAwayScoreSubtract2";
+ ButtonAwayScoreSubtract2.Size = new Size(64, 67);
+ ButtonAwayScoreSubtract2.TabIndex = 10;
+ ButtonAwayScoreSubtract2.Text = "-2";
+ ButtonAwayScoreSubtract2.UseVisualStyleBackColor = true;
+ ButtonAwayScoreSubtract2.Click += ButtonAwayScoreSubtract2_Click;
+ //
+ // ButtonAwayScoreAdd3
+ //
+ ButtonAwayScoreAdd3.FlatStyle = FlatStyle.Flat;
+ ButtonAwayScoreAdd3.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonAwayScoreAdd3.Location = new Point(368, 314);
+ ButtonAwayScoreAdd3.Name = "ButtonAwayScoreAdd3";
+ ButtonAwayScoreAdd3.Size = new Size(64, 67);
+ ButtonAwayScoreAdd3.TabIndex = 10;
+ ButtonAwayScoreAdd3.Text = "+3";
+ ButtonAwayScoreAdd3.UseVisualStyleBackColor = true;
+ ButtonAwayScoreAdd3.Click += ButtonAwayScoreAdd3_Click;
+ //
+ // ButtonAwayScoreSubtract3
+ //
+ ButtonAwayScoreSubtract3.FlatStyle = FlatStyle.Flat;
+ ButtonAwayScoreSubtract3.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point);
+ ButtonAwayScoreSubtract3.Location = new Point(298, 314);
+ ButtonAwayScoreSubtract3.Name = "ButtonAwayScoreSubtract3";
+ ButtonAwayScoreSubtract3.Size = new Size(64, 67);
+ ButtonAwayScoreSubtract3.TabIndex = 10;
+ ButtonAwayScoreSubtract3.Text = "-3";
+ ButtonAwayScoreSubtract3.UseVisualStyleBackColor = true;
+ ButtonAwayScoreSubtract3.Click += ButtonAwayScoreSubtract3_Click;
+ //
+ // LabelClock
+ //
+ LabelClock.Location = new Point(212, 400);
+ LabelClock.Name = "LabelClock";
+ LabelClock.Size = new Size(66, 23);
+ LabelClock.TabIndex = 11;
+ LabelClock.Text = "--:--";
+ LabelClock.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelShotClock
+ //
+ LabelShotClock.Location = new Point(229, 425);
+ LabelShotClock.Name = "LabelShotClock";
+ LabelShotClock.Size = new Size(33, 23);
+ LabelShotClock.TabIndex = 12;
+ LabelShotClock.Text = "--";
+ LabelShotClock.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelPeriod
+ //
+ LabelPeriod.Location = new Point(229, 448);
+ LabelPeriod.Name = "LabelPeriod";
+ LabelPeriod.Size = new Size(33, 23);
+ LabelPeriod.TabIndex = 13;
+ LabelPeriod.Text = "-";
+ LabelPeriod.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelAwayPossession
+ //
+ LabelAwayPossession.Location = new Point(268, 448);
+ LabelAwayPossession.Name = "LabelAwayPossession";
+ LabelAwayPossession.Size = new Size(33, 23);
+ LabelAwayPossession.TabIndex = 14;
+ LabelAwayPossession.Text = ">";
+ LabelAwayPossession.TextAlign = ContentAlignment.MiddleCenter;
+ LabelAwayPossession.Visible = false;
+ //
+ // LabelHomePossession
+ //
+ LabelHomePossession.Location = new Point(190, 448);
+ LabelHomePossession.Name = "LabelHomePossession";
+ LabelHomePossession.Size = new Size(33, 23);
+ LabelHomePossession.TabIndex = 14;
+ LabelHomePossession.Text = "<";
+ LabelHomePossession.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelAwayBonus
+ //
+ LabelAwayBonus.Location = new Point(268, 425);
+ LabelAwayBonus.Name = "LabelAwayBonus";
+ LabelAwayBonus.Size = new Size(33, 23);
+ LabelAwayBonus.TabIndex = 14;
+ LabelAwayBonus.Text = "B";
+ LabelAwayBonus.TextAlign = ContentAlignment.MiddleCenter;
+ LabelAwayBonus.Visible = false;
+ //
+ // LabelHomeBonus
+ //
+ LabelHomeBonus.Location = new Point(190, 425);
+ LabelHomeBonus.Name = "LabelHomeBonus";
+ LabelHomeBonus.Size = new Size(33, 23);
+ LabelHomeBonus.TabIndex = 14;
+ LabelHomeBonus.Text = "B";
+ LabelHomeBonus.TextAlign = ContentAlignment.MiddleCenter;
+ LabelHomeBonus.Visible = false;
+ //
+ // LabelAwayFouls
+ //
+ LabelAwayFouls.Location = new Point(307, 448);
+ LabelAwayFouls.Name = "LabelAwayFouls";
+ LabelAwayFouls.Size = new Size(33, 23);
+ LabelAwayFouls.TabIndex = 14;
+ LabelAwayFouls.Text = "-";
+ LabelAwayFouls.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelAwayScore
+ //
+ LabelAwayScore.Location = new Point(307, 425);
+ LabelAwayScore.Name = "LabelAwayScore";
+ LabelAwayScore.Size = new Size(33, 23);
+ LabelAwayScore.TabIndex = 14;
+ LabelAwayScore.Text = "0";
+ LabelAwayScore.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelHomeFouls
+ //
+ LabelHomeFouls.Location = new Point(151, 448);
+ LabelHomeFouls.Name = "LabelHomeFouls";
+ LabelHomeFouls.Size = new Size(33, 23);
+ LabelHomeFouls.TabIndex = 14;
+ LabelHomeFouls.Text = "-";
+ LabelHomeFouls.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // LabelHomeScore
+ //
+ LabelHomeScore.Location = new Point(151, 425);
+ LabelHomeScore.Name = "LabelHomeScore";
+ LabelHomeScore.Size = new Size(33, 23);
+ LabelHomeScore.TabIndex = 14;
+ LabelHomeScore.Text = "0";
+ LabelHomeScore.TextAlign = ContentAlignment.MiddleCenter;
+ //
+ // ControlPanel
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
+ AutoScaleMode = AutoScaleMode.Font;
+ BackColor = Color.White;
+ ClientSize = new Size(490, 483);
+ Controls.Add(LabelHomeBonus);
+ Controls.Add(LabelHomeScore);
+ Controls.Add(LabelAwayScore);
+ Controls.Add(LabelAwayBonus);
+ Controls.Add(LabelHomePossession);
+ Controls.Add(LabelHomeFouls);
+ Controls.Add(LabelAwayFouls);
+ Controls.Add(LabelAwayPossession);
+ Controls.Add(LabelPeriod);
+ Controls.Add(LabelShotClock);
+ Controls.Add(LabelClock);
+ Controls.Add(ButtonAwayScoreSubtract3);
+ Controls.Add(ButtonHomeScoreSubtract3);
+ Controls.Add(ButtonAwayScoreAdd3);
+ Controls.Add(ButtonAwayScoreSubtract2);
+ Controls.Add(ButtonHomeScoreAdd3);
+ Controls.Add(ButtonAwayScoreSubtract1);
+ Controls.Add(ButtonHomeScoreSubtract2);
+ Controls.Add(ButtonAwayScoreAdd2);
+ Controls.Add(ButtonHomeScoreSubtract1);
+ Controls.Add(ButtonAwayScoreAdd1);
+ Controls.Add(ButtonHomeScoreAdd2);
+ Controls.Add(ButtonHomeScoreAdd1);
+ Controls.Add(Line);
+ Controls.Add(LabelAwayTitle);
+ Controls.Add(LabelHomeTitle);
+ Controls.Add(ButtonSCSet14S);
+ Controls.Add(ButtonSCSetToDefault);
+ Controls.Add(ButtonStopClocks);
+ Controls.Add(ButtonStartClocks);
+ Controls.Add(ControlPanelMenuStrip);
+ ForeColor = Color.Black;
+ MainMenuStrip = ControlPanelMenuStrip;
+ MaximumSize = new Size(506, 522);
+ MinimumSize = new Size(506, 522);
+ Name = "ControlPanel";
+ ShowIcon = false;
+ StartPosition = FormStartPosition.CenterScreen;
+ Text = "Control Panel";
+ FormClosing += ControlPanel_FormClosing;
+ Load += ControlPanel_Load;
+ ControlPanelMenuStrip.ResumeLayout(false);
+ ControlPanelMenuStrip.PerformLayout();
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+ private MenuStrip ControlPanelMenuStrip;
+ private ToolStripMenuItem TeamsMenu;
+ private ToolStripMenuItem TeamsMenuHomeChangeName;
+ private ToolStripMenuItem TeamsMenuAwayChangeName;
+ private ToolStripMenuItem MainClockMenu;
+ private ToolStripMenuItem ShotClockMenu;
+ private ToolStripMenuItem MainClockMenuSetTime;
+ private ToolStripMenuItem MainClockMenuSetDefaultTime;
+ private ToolStripMenuItem ShotClockMenuSetTime;
+ private ToolStripMenuItem ShotClockMenuSetDefaultTime;
+ private Button ButtonStartClocks;
+ private Button ButtonStopClocks;
+ private ToolStripMenuItem ShotClockMenuToggleShotClock;
+ public Button ButtonSCSetToDefault;
+ public Button ButtonSCSet14S;
+ private ToolStripMenuItem SetBonusFoulThresholdMenuButton;
+ private Label Line;
+ private Button ButtonHomeScoreAdd1;
+ private Button ButtonHomeScoreAdd2;
+ private Button ButtonHomeScoreAdd3;
+ private Button ButtonHomeScoreSubtract1;
+ private Button ButtonHomeScoreSubtract2;
+ private Button ButtonHomeScoreSubtract3;
+ private Button ButtonAwayScoreAdd1;
+ private Button ButtonAwayScoreAdd2;
+ private Button ButtonAwayScoreSubtract1;
+ private Button ButtonAwayScoreSubtract2;
+ private Button ButtonAwayScoreAdd3;
+ private Button ButtonAwayScoreSubtract3;
+ private ToolStripMenuItem GameMenu;
+ private ToolStripMenuItem GameMenuSetPeriod;
+ public ToolStripMenuItem TeamsMenuHome;
+ public ToolStripMenuItem TeamsMenuAway;
+ private ToolStripMenuItem GameMenuSwitchPossession;
+ public Label LabelHomeTitle;
+ public Label LabelAwayTitle;
+ private ToolStripMenuItem TeamsMenuHomeSetFouls;
+ private ToolStripMenuItem TeamsMenuAwaySetFouls;
+ public Label LabelClock;
+ public Label LabelShotClock;
+ public Label LabelPeriod;
+ public Label LabelAwayPossession;
+ public Label LabelHomePossession;
+ public Label LabelAwayBonus;
+ public Label LabelHomeBonus;
+ public Label LabelAwayFouls;
+ public Label LabelAwayScore;
+ public Label LabelHomeFouls;
+ public Label LabelHomeScore;
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/ControlPanel.cs b/Basketball Scoreboard System/forms/ControlPanel.cs
new file mode 100644
index 0000000..8cefd26
--- /dev/null
+++ b/Basketball Scoreboard System/forms/ControlPanel.cs
@@ -0,0 +1,366 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ public partial class ControlPanel : Form
+ {
+ public ControlPanel() => InitializeComponent();
+
+ private void ControlPanel_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ MessageBox.Show("This window can be closed by closing the audience window");
+ e.Cancel = true;
+ }
+
+ private void TeamsMenuHomeChangeName_Click(object sender, EventArgs e)
+ {
+ TeamNameInput TeamNameInput = new(Program.HomeTeam.Name);
+ if (TeamNameInput.ShowDialog() == DialogResult.OK) Program.HomeTeam.ChangeTeamName(TeamNameInput.TeamName);
+ }
+
+ private void TeamsMenuAwayChangeName_Click(object sender, EventArgs e)
+ {
+ TeamNameInput TeamNameInput = new(Program.AwayTeam.Name);
+ if (TeamNameInput.ShowDialog() == DialogResult.OK) Program.AwayTeam.ChangeTeamName(TeamNameInput.TeamName);
+ }
+
+ private void ControlPanel_Load(object sender, EventArgs e)
+ {
+ Program.MainClock.DisplayTime();
+ Program.ShotClock.DisplayTime();
+ Program.AudienceWindow.LabelPeriod.Text = Program.Period.ToString();
+ LabelPeriod.Text = Program.Period.ToString();
+ Program.AudienceWindow.LabelHomeTeamFouls.Text = Program.HomeTeam.Fouls.ToString();
+ LabelHomeFouls.Text = Program.HomeTeam.Fouls.ToString();
+ Program.AudienceWindow.LabelAwayTeamFouls.Text = Program.AwayTeam.Fouls.ToString();
+ LabelAwayFouls.Text = Program.AwayTeam.Fouls.ToString();
+
+ TeamsMenuHome.Text = Settings.Default.HomeTeamName;
+ TeamsMenuAway.Text = Settings.Default.AwayTeamName;
+ LabelHomeTitle.Text = Settings.Default.HomeTeamName;
+ LabelAwayTitle.Text = Settings.Default.AwayTeamName;
+
+ if (Settings.Default.ShotClockEnabled) Program.ShotClock.SCUpdateButtonLabel();
+ else
+ {
+ Program.AudienceWindow.LabelShotClock.Hide();
+ Program.AudienceWindow.LabelShotClockTitle.Hide();
+ ButtonSCSetToDefault.Hide();
+ ButtonSCSet14S.Hide();
+ }
+ }
+
+ private void MainClockMenuSetTime_Click(object sender, EventArgs e)
+ {
+ if (Program.AudienceWindow.MainClockTimer.Enabled) MessageBox.Show("Clock must be stopped", "", MessageBoxButtons.OK);
+ else
+ {
+ TimeSpan CurrentTime = TimeSpan.FromMilliseconds(Program.MainClock.Time);
+
+ MainClockTimeSet MainClockTimeSet = new();
+
+ MainClockTimeSet.MinutesSelector.Value = CurrentTime.Minutes;
+ MainClockTimeSet.SecondsSelector.Value = CurrentTime.Seconds;
+ MainClockTimeSet.MSSelector.Value = CurrentTime.Milliseconds;
+
+ if (MainClockTimeSet.ShowDialog() == DialogResult.OK)
+ {
+ TimeSpan NewTime = TimeSpan.FromMinutes(MainClockTimeSet.M) + TimeSpan.FromSeconds(MainClockTimeSet.S) + TimeSpan.FromMilliseconds(MainClockTimeSet.MS);
+
+ Program.MainClock.Time = (int)NewTime.TotalMilliseconds;
+ Program.MainClock.DisplayTime();
+ }
+ }
+ }
+
+ private void MainClockMenuSetDefaultTime_Click(object sender, EventArgs e)
+ {
+ if (Program.AudienceWindow.MainClockTimer.Enabled) MessageBox.Show("Clock must be stopped", "", MessageBoxButtons.OK);
+ else
+ {
+ TimeSpan CurrentTime = TimeSpan.FromMilliseconds(Program.MainClock.Time);
+
+ MainClockTimeSet MainClockTimeSet = new();
+
+ MainClockTimeSet.MinutesSelector.Value = CurrentTime.Minutes;
+ MainClockTimeSet.SecondsSelector.Value = CurrentTime.Seconds;
+ MainClockTimeSet.MSSelector.Value = CurrentTime.Milliseconds;
+
+ if (MainClockTimeSet.ShowDialog() == DialogResult.OK)
+ {
+ TimeSpan NewTime = TimeSpan.FromMinutes(MainClockTimeSet.M) + TimeSpan.FromSeconds(MainClockTimeSet.S) + TimeSpan.FromMilliseconds(MainClockTimeSet.MS);
+
+ Settings.Default.MainClockDefaultTime = (int)NewTime.TotalMilliseconds;
+ Settings.Default.Save();
+
+ Program.MainClock.Time = (int)NewTime.TotalMilliseconds;
+ Program.MainClock.DisplayTime();
+ }
+ }
+ }
+
+ private void ShotClockMenuSetTime_Click(object sender, EventArgs e)
+ {
+ if (!Settings.Default.ShotClockEnabled) MessageBox.Show("Shot Clock is disabled", "", MessageBoxButtons.OK);
+ else
+ {
+ if (Program.AudienceWindow.ShotClockTimer.Enabled) MessageBox.Show("Shot Clock must be stopped", "", MessageBoxButtons.OK);
+ else
+ {
+ TimeSpan CurrentTime = TimeSpan.FromMilliseconds(Program.ShotClock.Time);
+
+ ShotClockTimeSet ShotClockTimeSet = new();
+
+ ShotClockTimeSet.SecondsSelector.Value = CurrentTime.Seconds;
+
+ if (ShotClockTimeSet.ShowDialog() == DialogResult.OK)
+ {
+ TimeSpan NewTime = TimeSpan.FromSeconds(ShotClockTimeSet.S);
+
+ Program.ShotClock.Time = (int)NewTime.TotalMilliseconds;
+ Program.ShotClock.DisplayTime();
+ }
+ }
+ }
+ }
+
+ private void ShotClockMenuSetDefaultTime_Click(object sender, EventArgs e)
+ {
+ if (!Settings.Default.ShotClockEnabled) MessageBox.Show("Shot Clock is disabled", "", MessageBoxButtons.OK);
+ else
+ {
+ if (Program.AudienceWindow.ShotClockTimer.Enabled) MessageBox.Show("Shot Clock must be stopped", "", MessageBoxButtons.OK);
+ else
+ {
+ TimeSpan CurrentTime = TimeSpan.FromMilliseconds(Program.ShotClock.Time);
+
+ ShotClockTimeSet ShotClockTimeSet = new();
+
+ ShotClockTimeSet.SecondsSelector.Value = CurrentTime.Seconds;
+
+ if (ShotClockTimeSet.ShowDialog() == DialogResult.OK)
+ {
+ TimeSpan NewTime = TimeSpan.FromSeconds(ShotClockTimeSet.S);
+
+ Settings.Default.ShotClockDefaultTime = (int)NewTime.TotalMilliseconds;
+ Settings.Default.Save();
+
+ Program.ShotClock.Time = (int)NewTime.TotalMilliseconds;
+ Program.ShotClock.DisplayTime();
+ }
+ }
+ }
+ }
+
+ private void ButtonStartClocks_Click(object sender, EventArgs e)
+ {
+ Program.AudienceWindow.MainClockTimer.Start();
+ if (Settings.Default.ShotClockEnabled) Program.AudienceWindow.ShotClockTimer.Start();
+ }
+
+ private void ButtonStopClocks_Click(object sender, EventArgs e)
+ {
+ Program.AudienceWindow.MainClockTimer.Stop();
+ if (Settings.Default.ShotClockEnabled) Program.AudienceWindow.ShotClockTimer.Stop();
+ }
+
+ private void ShotClockMenuToggleShotClock_Click(object sender, EventArgs e)
+ {
+ Settings.Default.ShotClockEnabled = !Settings.Default.ShotClockEnabled;
+ Settings.Default.Save();
+ if (Settings.Default.ShotClockEnabled)
+ {
+ Program.AudienceWindow.LabelShotClock.Show();
+ Program.AudienceWindow.LabelShotClockTitle.Show();
+ ButtonSCSetToDefault.Show();
+ ButtonSCSet14S.Show();
+ LabelShotClock.Show();
+ Program.ShotClock.SCUpdateButtonLabel();
+ }
+ else
+ {
+ Program.AudienceWindow.LabelShotClock.Hide();
+ Program.AudienceWindow.LabelShotClockTitle.Hide();
+ ButtonSCSetToDefault.Hide();
+ ButtonSCSet14S.Hide();
+ LabelShotClock.Hide();
+ Program.AudienceWindow.ShotClockTimer.Stop();
+ }
+ }
+
+ private void ButtonSCSetToDefault_Click(object sender, EventArgs e)
+ {
+ Program.ShotClock.Time = Settings.Default.ShotClockDefaultTime;
+ Program.ShotClock.DisplayTime();
+ if (Program.AudienceWindow.ShotClockTimer.Enabled)
+ {
+ Program.AudienceWindow.ShotClockTimer.Stop();
+ Program.AudienceWindow.ShotClockTimer.Start();
+ }
+ }
+
+ private void ButtonSCSet14S_Click(object sender, EventArgs e)
+ {
+ Program.ShotClock.Time = (int)TimeSpan.FromSeconds(14).TotalMilliseconds;
+ Program.ShotClock.DisplayTime();
+ if (Program.AudienceWindow.ShotClockTimer.Enabled)
+ {
+ Program.AudienceWindow.ShotClockTimer.Stop();
+ Program.AudienceWindow.ShotClockTimer.Start();
+ }
+ }
+
+ private void SetBonusFoulThresholdMenuButton_Click(object sender, EventArgs e)
+ {
+ NumberInput NumberInput = new()
+ {
+ Number = Settings.Default.BonusFoulThreshold
+ };
+
+ NumberInput.NumberSelector.Value = Settings.Default.BonusFoulThreshold;
+ NumberInput.Text = "Enter New Threshold";
+
+ if (NumberInput.ShowDialog() == DialogResult.OK)
+ {
+ Settings.Default.BonusFoulThreshold = NumberInput.Number;
+ Settings.Default.Save();
+ }
+
+ if (Program.HomeTeam.Fouls >= Settings.Default.BonusFoulThreshold)
+ {
+ Program.AwayTeam.Bonus = true;
+ Program.AudienceWindow.LabelAwayTeamBonus.Visible = true;
+ LabelAwayBonus.Visible = true;
+ }
+ else
+ {
+ Program.AwayTeam.Bonus = false;
+ Program.AudienceWindow.LabelAwayTeamBonus.Visible = false;
+ LabelAwayBonus.Visible = false;
+ }
+
+ if (Program.AwayTeam.Fouls >= Settings.Default.BonusFoulThreshold)
+ {
+ Program.HomeTeam.Bonus = true;
+ Program.AudienceWindow.LabelHomeTeamBonus.Visible = true;
+ LabelHomeBonus.Visible = true;
+ }
+ else
+ {
+ Program.HomeTeam.Bonus = false;
+ Program.AudienceWindow.LabelHomeTeamBonus.Visible = false;
+ LabelHomeBonus.Visible = false;
+ }
+ }
+
+ private void ButtonHomeScoreAdd1_Click(object sender, EventArgs e) => Program.HomeTeam.ChangeScore(1);
+
+ private void ButtonHomeScoreAdd2_Click(object sender, EventArgs e) => Program.HomeTeam.ChangeScore(2);
+
+ private void ButtonHomeScoreAdd3_Click(object sender, EventArgs e) => Program.HomeTeam.ChangeScore(3);
+
+ private void ButtonHomeScoreSubtract1_Click(object sender, EventArgs e) => Program.HomeTeam.ChangeScore(-1);
+
+ private void ButtonHomeScoreSubtract2_Click(object sender, EventArgs e) => Program.HomeTeam.ChangeScore(-2);
+
+ private void ButtonHomeScoreSubtract3_Click(object sender, EventArgs e) => Program.HomeTeam.ChangeScore(-3);
+
+ private void ButtonAwayScoreAdd1_Click(object sender, EventArgs e) => Program.AwayTeam.ChangeScore(1);
+
+ private void ButtonAwayScoreAdd2_Click(object sender, EventArgs e) => Program.AwayTeam.ChangeScore(2);
+
+ private void ButtonAwayScoreAdd3_Click(object sender, EventArgs e) => Program.AwayTeam.ChangeScore(3);
+
+ private void ButtonAwayScoreSubtract1_Click(object sender, EventArgs e) => Program.AwayTeam.ChangeScore(-1);
+
+ private void ButtonAwayScoreSubtract2_Click(object sender, EventArgs e) => Program.AwayTeam.ChangeScore(-2);
+
+ private void ButtonAwayScoreSubtract3_Click(object sender, EventArgs e) => Program.AwayTeam.ChangeScore(-3);
+
+ private void GameMenuSetPeriod_Click(object sender, EventArgs e)
+ {
+ NumberInput NumberInput = new()
+ {
+ Number = Program.Period
+ };
+
+ NumberInput.NumberSelector.Value = Program.Period;
+ NumberInput.NumberSelector.Maximum = 9;
+ NumberInput.Text = "Enter Period";
+
+ if (NumberInput.ShowDialog() == DialogResult.OK) Program.Period = NumberInput.Number;
+ Program.AudienceWindow.LabelPeriod.Text = Program.Period.ToString();
+ LabelPeriod.Text = Program.Period.ToString();
+ }
+
+ private void GameMenuSwitchPossession_Click(object sender, EventArgs e)
+ {
+ Program.HomeTeam.Possession = !Program.HomeTeam.Possession;
+ Program.AwayTeam.Possession = !Program.AwayTeam.Possession;
+
+ Program.AudienceWindow.LabelHomeTeamPossession.Visible = Program.HomeTeam.Possession;
+ Program.AudienceWindow.LabelAwayTeamPossession.Visible = Program.AwayTeam.Possession;
+
+ LabelHomePossession.Visible = Program.HomeTeam.Possession;
+ LabelAwayPossession.Visible = Program.AwayTeam.Possession;
+ }
+
+ private void TeamsMenuHomeSetFouls_Click(object sender, EventArgs e)
+ {
+ NumberInput NumberInput = new()
+ {
+ Number = Program.HomeTeam.Fouls
+ };
+
+ NumberInput.NumberSelector.Maximum = 9;
+ NumberInput.NumberSelector.Minimum = 0;
+ NumberInput.NumberSelector.Value = Program.HomeTeam.Fouls;
+ NumberInput.Text = "Enter Fouls";
+
+ if (NumberInput.ShowDialog() == DialogResult.OK) Program.HomeTeam.Fouls = NumberInput.Number;
+ Program.AudienceWindow.LabelHomeTeamFouls.Text = Program.HomeTeam.Fouls.ToString();
+ LabelHomeFouls.Text = Program.HomeTeam.Fouls.ToString();
+
+ if (Program.HomeTeam.Fouls >= Settings.Default.BonusFoulThreshold)
+ {
+ Program.AwayTeam.Bonus = true;
+ Program.AudienceWindow.LabelAwayTeamBonus.Visible = true;
+ LabelAwayBonus.Visible = true;
+ }
+ else
+ {
+ Program.AwayTeam.Bonus = false;
+ Program.AudienceWindow.LabelAwayTeamBonus.Visible = false;
+ LabelAwayBonus.Visible = false;
+ }
+ }
+
+ private void TeamsMenuAwaySetFouls_Click(object sender, EventArgs e)
+ {
+ NumberInput NumberInput = new()
+ {
+ Number = Program.AwayTeam.Fouls
+ };
+
+ NumberInput.NumberSelector.Maximum = 9;
+ NumberInput.NumberSelector.Minimum = 0;
+ NumberInput.NumberSelector.Value = Program.AwayTeam.Fouls;
+ NumberInput.Text = "Enter Fouls";
+
+ if (NumberInput.ShowDialog() == DialogResult.OK) Program.AwayTeam.Fouls = NumberInput.Number;
+ Program.AudienceWindow.LabelAwayTeamFouls.Text = Program.AwayTeam.Fouls.ToString();
+ LabelAwayFouls.Text = Program.AwayTeam.Fouls.ToString();
+
+ if (Program.AwayTeam.Fouls >= Settings.Default.BonusFoulThreshold)
+ {
+ Program.HomeTeam.Bonus = true;
+ Program.AudienceWindow.LabelHomeTeamBonus.Visible = true;
+ LabelHomeBonus.Visible = true;
+ }
+ else
+ {
+ Program.HomeTeam.Bonus = false;
+ Program.AudienceWindow.LabelHomeTeamBonus.Visible = false;
+ LabelHomeBonus.Visible = false;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/ControlPanel.resx b/Basketball Scoreboard System/forms/ControlPanel.resx
new file mode 100644
index 0000000..0b61ded
--- /dev/null
+++ b/Basketball Scoreboard System/forms/ControlPanel.resx
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/MainClockTimeSet.Designer.cs b/Basketball Scoreboard System/forms/MainClockTimeSet.Designer.cs
new file mode 100644
index 0000000..23735c2
--- /dev/null
+++ b/Basketball Scoreboard System/forms/MainClockTimeSet.Designer.cs
@@ -0,0 +1,156 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ partial class MainClockTimeSet
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.ButtonCancel = new System.Windows.Forms.Button();
+ this.ButtonOK = new System.Windows.Forms.Button();
+ this.MinutesSelector = new System.Windows.Forms.NumericUpDown();
+ this.SecondsSelector = new System.Windows.Forms.NumericUpDown();
+ this.MSSelector = new System.Windows.Forms.NumericUpDown();
+ this.Colon = new System.Windows.Forms.Label();
+ this.Dot = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.MinutesSelector)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.SecondsSelector)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.MSSelector)).BeginInit();
+ this.SuspendLayout();
+ //
+ // ButtonCancel
+ //
+ this.ButtonCancel.Location = new System.Drawing.Point(12, 41);
+ this.ButtonCancel.Name = "ButtonCancel";
+ this.ButtonCancel.Size = new System.Drawing.Size(64, 24);
+ this.ButtonCancel.TabIndex = 2;
+ this.ButtonCancel.Text = "Cancel";
+ this.ButtonCancel.UseVisualStyleBackColor = true;
+ this.ButtonCancel.Click += new System.EventHandler(this.ButtonCancel_Click);
+ //
+ // ButtonOK
+ //
+ this.ButtonOK.Location = new System.Drawing.Point(83, 41);
+ this.ButtonOK.Name = "ButtonOK";
+ this.ButtonOK.Size = new System.Drawing.Size(64, 24);
+ this.ButtonOK.TabIndex = 3;
+ this.ButtonOK.Text = "OK";
+ this.ButtonOK.UseVisualStyleBackColor = true;
+ this.ButtonOK.Click += new System.EventHandler(this.ButtonOK_Click);
+ //
+ // MinutesSelector
+ //
+ this.MinutesSelector.Location = new System.Drawing.Point(12, 12);
+ this.MinutesSelector.Maximum = new decimal(new int[] {
+ 59,
+ 0,
+ 0,
+ 0});
+ this.MinutesSelector.Name = "MinutesSelector";
+ this.MinutesSelector.Size = new System.Drawing.Size(35, 23);
+ this.MinutesSelector.TabIndex = 4;
+ this.MinutesSelector.ValueChanged += new System.EventHandler(this.MinutesSelector_ValueChanged);
+ //
+ // SecondsSelector
+ //
+ this.SecondsSelector.Location = new System.Drawing.Point(57, 12);
+ this.SecondsSelector.Maximum = new decimal(new int[] {
+ 59,
+ 0,
+ 0,
+ 0});
+ this.SecondsSelector.Name = "SecondsSelector";
+ this.SecondsSelector.Size = new System.Drawing.Size(35, 23);
+ this.SecondsSelector.TabIndex = 5;
+ this.SecondsSelector.ValueChanged += new System.EventHandler(this.SecondsSelector_ValueChanged);
+ //
+ // MSSelector
+ //
+ this.MSSelector.Location = new System.Drawing.Point(103, 12);
+ this.MSSelector.Maximum = new decimal(new int[] {
+ 999,
+ 0,
+ 0,
+ 0});
+ this.MSSelector.Name = "MSSelector";
+ this.MSSelector.Size = new System.Drawing.Size(44, 23);
+ this.MSSelector.TabIndex = 6;
+ this.MSSelector.ValueChanged += new System.EventHandler(this.MSSelector_ValueChanged);
+ //
+ // Colon
+ //
+ this.Colon.Location = new System.Drawing.Point(47, 12);
+ this.Colon.Name = "Colon";
+ this.Colon.Size = new System.Drawing.Size(10, 23);
+ this.Colon.TabIndex = 7;
+ this.Colon.Text = ":";
+ this.Colon.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // Dot
+ //
+ this.Dot.Location = new System.Drawing.Point(92, 12);
+ this.Dot.Name = "Dot";
+ this.Dot.Size = new System.Drawing.Size(11, 23);
+ this.Dot.TabIndex = 8;
+ this.Dot.Text = ".";
+ this.Dot.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // MainClockTimeSet
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(159, 76);
+ this.ControlBox = false;
+ this.Controls.Add(this.Dot);
+ this.Controls.Add(this.Colon);
+ this.Controls.Add(this.MSSelector);
+ this.Controls.Add(this.SecondsSelector);
+ this.Controls.Add(this.MinutesSelector);
+ this.Controls.Add(this.ButtonCancel);
+ this.Controls.Add(this.ButtonOK);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.MaximumSize = new System.Drawing.Size(175, 115);
+ this.MinimumSize = new System.Drawing.Size(175, 115);
+ this.Name = "MainClockTimeSet";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Enter Time";
+ ((System.ComponentModel.ISupportInitialize)(this.MinutesSelector)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.SecondsSelector)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.MSSelector)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private Button ButtonCancel;
+ private Button ButtonOK;
+ private Label Colon;
+ private Label Dot;
+ public NumericUpDown MinutesSelector;
+ public NumericUpDown SecondsSelector;
+ public NumericUpDown MSSelector;
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/MainClockTimeSet.cs b/Basketball Scoreboard System/forms/MainClockTimeSet.cs
new file mode 100644
index 0000000..4f78209
--- /dev/null
+++ b/Basketball Scoreboard System/forms/MainClockTimeSet.cs
@@ -0,0 +1,41 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ public partial class MainClockTimeSet : Form
+ {
+ public int M { get; set; }
+ public int S { get; set; }
+ public int MS { get; set; }
+
+ public MainClockTimeSet() => InitializeComponent();
+
+ private void ButtonOK_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+
+ private void ButtonCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+
+ private void MinutesSelector_ValueChanged(object sender, EventArgs e)
+ {
+ M = (int)MinutesSelector.Value;
+ MinutesSelector.Text = M.ToString();
+ }
+
+ private void SecondsSelector_ValueChanged(object sender, EventArgs e)
+ {
+ S = (int)SecondsSelector.Value;
+ SecondsSelector.Text = S.ToString();
+ }
+
+ private void MSSelector_ValueChanged(object sender, EventArgs e)
+ {
+ MS = (int)MSSelector.Value;
+ MSSelector.Text = MS.ToString();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/MainClockTimeSet.resx b/Basketball Scoreboard System/forms/MainClockTimeSet.resx
new file mode 100644
index 0000000..f298a7b
--- /dev/null
+++ b/Basketball Scoreboard System/forms/MainClockTimeSet.resx
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/NumberInput.Designer.cs b/Basketball Scoreboard System/forms/NumberInput.Designer.cs
new file mode 100644
index 0000000..5bb5253
--- /dev/null
+++ b/Basketball Scoreboard System/forms/NumberInput.Designer.cs
@@ -0,0 +1,98 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ partial class NumberInput
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.NumberSelector = new System.Windows.Forms.NumericUpDown();
+ this.ButtonCancel = new System.Windows.Forms.Button();
+ this.ButtonOK = new System.Windows.Forms.Button();
+ ((System.ComponentModel.ISupportInitialize)(this.NumberSelector)).BeginInit();
+ this.SuspendLayout();
+ //
+ // NumberSelector
+ //
+ this.NumberSelector.Location = new System.Drawing.Point(12, 12);
+ this.NumberSelector.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NumberSelector.Name = "NumberSelector";
+ this.NumberSelector.Size = new System.Drawing.Size(135, 23);
+ this.NumberSelector.TabIndex = 14;
+ this.NumberSelector.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.NumberSelector.ValueChanged += new System.EventHandler(this.NumberSelector_ValueChanged);
+ //
+ // ButtonCancel
+ //
+ this.ButtonCancel.Location = new System.Drawing.Point(12, 41);
+ this.ButtonCancel.Name = "ButtonCancel";
+ this.ButtonCancel.Size = new System.Drawing.Size(64, 24);
+ this.ButtonCancel.TabIndex = 12;
+ this.ButtonCancel.Text = "Cancel";
+ this.ButtonCancel.UseVisualStyleBackColor = true;
+ this.ButtonCancel.Click += new System.EventHandler(this.ButtonCancel_Click);
+ //
+ // ButtonOK
+ //
+ this.ButtonOK.Location = new System.Drawing.Point(83, 41);
+ this.ButtonOK.Name = "ButtonOK";
+ this.ButtonOK.Size = new System.Drawing.Size(64, 24);
+ this.ButtonOK.TabIndex = 13;
+ this.ButtonOK.Text = "OK";
+ this.ButtonOK.UseVisualStyleBackColor = true;
+ this.ButtonOK.Click += new System.EventHandler(this.ButtonOK_Click);
+ //
+ // NumberInput
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(159, 76);
+ this.ControlBox = false;
+ this.Controls.Add(this.NumberSelector);
+ this.Controls.Add(this.ButtonCancel);
+ this.Controls.Add(this.ButtonOK);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Name = "NumberInput";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Enter Number";
+ ((System.ComponentModel.ISupportInitialize)(this.NumberSelector)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ public NumericUpDown NumberSelector;
+ private Button ButtonCancel;
+ private Button ButtonOK;
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/NumberInput.cs b/Basketball Scoreboard System/forms/NumberInput.cs
new file mode 100644
index 0000000..1cb917b
--- /dev/null
+++ b/Basketball Scoreboard System/forms/NumberInput.cs
@@ -0,0 +1,27 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ public partial class NumberInput : Form
+ {
+ public int Number { get; set; }
+
+ public NumberInput() => InitializeComponent();
+
+ private void ButtonOK_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+
+ private void ButtonCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+
+ private void NumberSelector_ValueChanged(object sender, EventArgs e)
+ {
+ Number = (int)NumberSelector.Value;
+ NumberSelector.Text = Number.ToString();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/NumberInput.resx b/Basketball Scoreboard System/forms/NumberInput.resx
new file mode 100644
index 0000000..f298a7b
--- /dev/null
+++ b/Basketball Scoreboard System/forms/NumberInput.resx
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/ShotClockTimeSet.Designer.cs b/Basketball Scoreboard System/forms/ShotClockTimeSet.Designer.cs
new file mode 100644
index 0000000..47ef642
--- /dev/null
+++ b/Basketball Scoreboard System/forms/ShotClockTimeSet.Designer.cs
@@ -0,0 +1,108 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ partial class ShotClockTimeSet
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.ButtonCancel = new System.Windows.Forms.Button();
+ this.ButtonOK = new System.Windows.Forms.Button();
+ this.LabelSeconds = new System.Windows.Forms.Label();
+ this.SecondsSelector = new System.Windows.Forms.NumericUpDown();
+ ((System.ComponentModel.ISupportInitialize)(this.SecondsSelector)).BeginInit();
+ this.SuspendLayout();
+ //
+ // ButtonCancel
+ //
+ this.ButtonCancel.Location = new System.Drawing.Point(12, 41);
+ this.ButtonCancel.Name = "ButtonCancel";
+ this.ButtonCancel.Size = new System.Drawing.Size(64, 24);
+ this.ButtonCancel.TabIndex = 4;
+ this.ButtonCancel.Text = "Cancel";
+ this.ButtonCancel.UseVisualStyleBackColor = true;
+ this.ButtonCancel.Click += new System.EventHandler(this.ButtonCancel_Click);
+ //
+ // ButtonOK
+ //
+ this.ButtonOK.Location = new System.Drawing.Point(83, 41);
+ this.ButtonOK.Name = "ButtonOK";
+ this.ButtonOK.Size = new System.Drawing.Size(64, 24);
+ this.ButtonOK.TabIndex = 5;
+ this.ButtonOK.Text = "OK";
+ this.ButtonOK.UseVisualStyleBackColor = true;
+ this.ButtonOK.Click += new System.EventHandler(this.ButtonOK_Click);
+ //
+ // LabelSeconds
+ //
+ this.LabelSeconds.Location = new System.Drawing.Point(95, 12);
+ this.LabelSeconds.Name = "LabelSeconds";
+ this.LabelSeconds.Size = new System.Drawing.Size(52, 23);
+ this.LabelSeconds.TabIndex = 11;
+ this.LabelSeconds.Text = "Seconds";
+ this.LabelSeconds.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ //
+ // SecondsSelector
+ //
+ this.SecondsSelector.Location = new System.Drawing.Point(12, 12);
+ this.SecondsSelector.Maximum = new decimal(new int[] {
+ 59,
+ 0,
+ 0,
+ 0});
+ this.SecondsSelector.Name = "SecondsSelector";
+ this.SecondsSelector.Size = new System.Drawing.Size(77, 23);
+ this.SecondsSelector.TabIndex = 9;
+ this.SecondsSelector.ValueChanged += new System.EventHandler(this.SecondsSelector_ValueChanged);
+ //
+ // ShotClockTimeSet
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(159, 76);
+ this.ControlBox = false;
+ this.Controls.Add(this.LabelSeconds);
+ this.Controls.Add(this.SecondsSelector);
+ this.Controls.Add(this.ButtonCancel);
+ this.Controls.Add(this.ButtonOK);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.MaximumSize = new System.Drawing.Size(175, 115);
+ this.MinimumSize = new System.Drawing.Size(175, 115);
+ this.Name = "ShotClockTimeSet";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Enter Time";
+ ((System.ComponentModel.ISupportInitialize)(this.SecondsSelector)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private Button ButtonCancel;
+ private Button ButtonOK;
+ private Label LabelSeconds;
+ public NumericUpDown SecondsSelector;
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/ShotClockTimeSet.cs b/Basketball Scoreboard System/forms/ShotClockTimeSet.cs
new file mode 100644
index 0000000..189d756
--- /dev/null
+++ b/Basketball Scoreboard System/forms/ShotClockTimeSet.cs
@@ -0,0 +1,27 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ public partial class ShotClockTimeSet : Form
+ {
+ public int S { get; set; }
+
+ public ShotClockTimeSet() => InitializeComponent();
+
+ private void ButtonOK_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+
+ private void ButtonCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+
+ private void SecondsSelector_ValueChanged(object sender, EventArgs e)
+ {
+ S = (int)SecondsSelector.Value;
+ SecondsSelector.Text = S.ToString();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/ShotClockTimeSet.resx b/Basketball Scoreboard System/forms/ShotClockTimeSet.resx
new file mode 100644
index 0000000..f298a7b
--- /dev/null
+++ b/Basketball Scoreboard System/forms/ShotClockTimeSet.resx
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/TeamNameInput.Designer.cs b/Basketball Scoreboard System/forms/TeamNameInput.Designer.cs
new file mode 100644
index 0000000..1804ac4
--- /dev/null
+++ b/Basketball Scoreboard System/forms/TeamNameInput.Designer.cs
@@ -0,0 +1,93 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ partial class TeamNameInput
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.TeamNameTextBox = new System.Windows.Forms.TextBox();
+ this.ButtonOK = new System.Windows.Forms.Button();
+ this.ButtonCancel = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // TeamNameTextBox
+ //
+ this.TeamNameTextBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.TeamNameTextBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
+ this.TeamNameTextBox.Location = new System.Drawing.Point(12, 12);
+ this.TeamNameTextBox.MaxLength = 7;
+ this.TeamNameTextBox.Name = "TeamNameTextBox";
+ this.TeamNameTextBox.Size = new System.Drawing.Size(135, 23);
+ this.TeamNameTextBox.TabIndex = 0;
+ this.TeamNameTextBox.TextChanged += new System.EventHandler(this.TeamNameTextBox_TextChanged);
+ //
+ // ButtonOK
+ //
+ this.ButtonOK.Location = new System.Drawing.Point(83, 41);
+ this.ButtonOK.Name = "ButtonOK";
+ this.ButtonOK.Size = new System.Drawing.Size(64, 24);
+ this.ButtonOK.TabIndex = 1;
+ this.ButtonOK.Text = "OK";
+ this.ButtonOK.UseVisualStyleBackColor = true;
+ this.ButtonOK.Click += new System.EventHandler(this.ButtonOK_Click);
+ //
+ // ButtonCancel
+ //
+ this.ButtonCancel.Location = new System.Drawing.Point(12, 41);
+ this.ButtonCancel.Name = "ButtonCancel";
+ this.ButtonCancel.Size = new System.Drawing.Size(64, 24);
+ this.ButtonCancel.TabIndex = 1;
+ this.ButtonCancel.Text = "Cancel";
+ this.ButtonCancel.UseVisualStyleBackColor = true;
+ this.ButtonCancel.Click += new System.EventHandler(this.ButtonCancel_Click);
+ //
+ // TeamNameInput
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(159, 76);
+ this.ControlBox = false;
+ this.Controls.Add(this.ButtonCancel);
+ this.Controls.Add(this.ButtonOK);
+ this.Controls.Add(this.TeamNameTextBox);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.MaximumSize = new System.Drawing.Size(175, 115);
+ this.MinimumSize = new System.Drawing.Size(175, 115);
+ this.Name = "TeamNameInput";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Enter Team Name";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ public TextBox TeamNameTextBox;
+ private Button ButtonOK;
+ private Button ButtonCancel;
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/TeamNameInput.cs b/Basketball Scoreboard System/forms/TeamNameInput.cs
new file mode 100644
index 0000000..e8158ef
--- /dev/null
+++ b/Basketball Scoreboard System/forms/TeamNameInput.cs
@@ -0,0 +1,32 @@
+namespace Basketball_Scoreboard_System.forms
+{
+ public partial class TeamNameInput : Form
+ {
+ public TeamNameInput(string Name)
+ {
+ InitializeComponent();
+ TeamName = Name;
+ }
+
+ public string TeamName { get; set; }
+
+ private void TeamNameTextBox_TextChanged(object sender, EventArgs e) => TeamName = TeamNameTextBox.Text;
+
+ private void ButtonOK_Click(object sender, EventArgs e)
+ {
+ if (TeamName.Length < 4) MessageBox.Show("Team name cannot be less than 4 characters", "Invalid Entry", MessageBoxButtons.OK);
+ else if (TeamName.Length > 7) MessageBox.Show("Team name cannot be more than 7 characters", "Invalid Entry", MessageBoxButtons.OK);
+ else
+ {
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+ }
+
+ private void ButtonCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Basketball Scoreboard System/forms/TeamNameInput.resx b/Basketball Scoreboard System/forms/TeamNameInput.resx
new file mode 100644
index 0000000..f298a7b
--- /dev/null
+++ b/Basketball Scoreboard System/forms/TeamNameInput.resx
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Setup/Setup.vdproj b/Setup/Setup.vdproj
new file mode 100644
index 0000000..cdb13fd
--- /dev/null
+++ b/Setup/Setup.vdproj
@@ -0,0 +1,1020 @@
+"DeployProject"
+{
+"VSVersion" = "3:800"
+"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
+"IsWebType" = "8:FALSE"
+"ProjectName" = "8:Setup"
+"LanguageId" = "3:1033"
+"CodePage" = "3:1252"
+"UILanguageId" = "3:1033"
+"SccProjectName" = "8:"
+"SccLocalPath" = "8:"
+"SccAuxPath" = "8:"
+"SccProvider" = "8:"
+ "Hierarchy"
+ {
+ "Entry"
+ {
+ "MsmKey" = "8:_165FE36E955740AC9A5CFCE51CB5E2EC"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_3478B7AB5C4F459287E0B80508E00F73"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_3F75EDB406644C9B86B12A8B06D78437"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_4D9CBF8D01D646169B59EE4761AA33AC"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_57A5BD3AD4BB438DBBC21F27E609D771"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_76A3A3D267474A608119A324D1A4F04F"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_97319369BF26445DB5A72E71B05D0846"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_B9F7A53D360846088087C9C53185A0D0"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_D74FF9A38CF74990A79AD85A93714E7E"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_E13718A18FAF4A6B88207CA2B7CDE378"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ }
+ "Configurations"
+ {
+ "Debug"
+ {
+ "DisplayName" = "8:Debug"
+ "IsDebugOnly" = "11:TRUE"
+ "IsReleaseOnly" = "11:FALSE"
+ "OutputFilename" = "8:Debug\\Setup.msi"
+ "PackageFilesAs" = "3:2"
+ "PackageFileSize" = "3:-2147483648"
+ "CabType" = "3:1"
+ "Compression" = "3:2"
+ "SignOutput" = "11:FALSE"
+ "CertificateFile" = "8:"
+ "PrivateKeyFile" = "8:"
+ "TimeStampServer" = "8:"
+ "InstallerBootstrapper" = "3:2"
+ "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+ {
+ "Enabled" = "11:TRUE"
+ "PromptEnabled" = "11:TRUE"
+ "PrerequisitesLocation" = "2:1"
+ "Url" = "8:"
+ "ComponentsUrl" = "8:"
+ "Items"
+ {
+ "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2"
+ {
+ "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)"
+ "ProductCode" = "8:.NETFramework,Version=v4.7.2"
+ }
+ }
+ }
+ }
+ "Release"
+ {
+ "DisplayName" = "8:Release"
+ "IsDebugOnly" = "11:FALSE"
+ "IsReleaseOnly" = "11:TRUE"
+ "OutputFilename" = "8:Release\\BSS-Setup.msi"
+ "PackageFilesAs" = "3:2"
+ "PackageFileSize" = "3:-2147483648"
+ "CabType" = "3:1"
+ "Compression" = "3:2"
+ "SignOutput" = "11:FALSE"
+ "CertificateFile" = "8:"
+ "PrivateKeyFile" = "8:"
+ "TimeStampServer" = "8:"
+ "InstallerBootstrapper" = "3:2"
+ "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
+ {
+ "Enabled" = "11:TRUE"
+ "PromptEnabled" = "11:TRUE"
+ "PrerequisitesLocation" = "2:1"
+ "Url" = "8:"
+ "ComponentsUrl" = "8:"
+ "Items"
+ {
+ "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2"
+ {
+ "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)"
+ "ProductCode" = "8:.NETFramework,Version=v4.7.2"
+ }
+ }
+ }
+ }
+ }
+ "Deployable"
+ {
+ "CustomAction"
+ {
+ }
+ "DefaultFeature"
+ {
+ "Name" = "8:DefaultFeature"
+ "Title" = "8:"
+ "Description" = "8:"
+ }
+ "ExternalPersistence"
+ {
+ "LaunchCondition"
+ {
+ "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_854C21D2433047CF81DBEEDF4BD6AAFA"
+ {
+ "Name" = "8:.NET Core"
+ "Message" = "8:[VSDNETCOREMSG]"
+ "AllowLaterVersions" = "11:FALSE"
+ "InstallUrl" = "8:https://dotnet.microsoft.com/download/dotnet-core/[NetCoreVerMajorDotMinor]"
+ "IsNETCore" = "11:TRUE"
+ "Architecture" = "2:0"
+ "Runtime" = "2:0"
+ }
+ }
+ }
+ "File"
+ {
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_165FE36E955740AC9A5CFCE51CB5E2EC"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\fonts\\DSEG14Classic-Regular.ttf"
+ "TargetName" = "8:DSEG14Classic-Regular.ttf"
+ "Tag" = "8:"
+ "Folder" = "8:_820919D3350A4FF6BC0958B193FDBDE4"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3478B7AB5C4F459287E0B80508E00F73"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\fonts\\fira-mono-bold.ttf"
+ "TargetName" = "8:fira-mono-bold.ttf"
+ "Tag" = "8:"
+ "Folder" = "8:_93740A828E174DF3A0EA1F9C6953F4AD"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:TRUE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:5"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3F75EDB406644C9B86B12A8B06D78437"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\fonts\\DSEG14Classic-Regular.ttf"
+ "TargetName" = "8:DSEG14Classic-Regular.ttf"
+ "Tag" = "8:"
+ "Folder" = "8:_93740A828E174DF3A0EA1F9C6953F4AD"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:TRUE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:5"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4D9CBF8D01D646169B59EE4761AA33AC"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\fonts\\DSEG7Classic-Regular.ttf"
+ "TargetName" = "8:DSEG7Classic-Regular.ttf"
+ "Tag" = "8:"
+ "Folder" = "8:_820919D3350A4FF6BC0958B193FDBDE4"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_76A3A3D267474A608119A324D1A4F04F"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\assets\\icon.ico"
+ "TargetName" = "8:icon.ico"
+ "Tag" = "8:"
+ "Folder" = "8:_375CFC78F18A4A6897911502E26CABF6"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_97319369BF26445DB5A72E71B05D0846"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\assets\\buzzer-main.wav"
+ "TargetName" = "8:buzzer-main.wav"
+ "Tag" = "8:"
+ "Folder" = "8:_375CFC78F18A4A6897911502E26CABF6"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B9F7A53D360846088087C9C53185A0D0"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\assets\\buzzer-shotclock.wav"
+ "TargetName" = "8:buzzer-shotclock.wav"
+ "Tag" = "8:"
+ "Folder" = "8:_375CFC78F18A4A6897911502E26CABF6"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D74FF9A38CF74990A79AD85A93714E7E"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\fonts\\fira-mono-bold.ttf"
+ "TargetName" = "8:fira-mono-bold.ttf"
+ "Tag" = "8:"
+ "Folder" = "8:_820919D3350A4FF6BC0958B193FDBDE4"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E13718A18FAF4A6B88207CA2B7CDE378"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\fonts\\DSEG7Classic-Regular.ttf"
+ "TargetName" = "8:DSEG7Classic-Regular.ttf"
+ "Tag" = "8:"
+ "Folder" = "8:_93740A828E174DF3A0EA1F9C6953F4AD"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:TRUE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:5"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ }
+ }
+ "FileType"
+ {
+ }
+ "Folder"
+ {
+ "{3C67513D-01DD-4637-8A68-80971EB9504F}:_41CF9708B5A94C64BA1F7BE89E47C63C"
+ {
+ "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]"
+ "Name" = "8:#1925"
+ "AlwaysCreate" = "11:TRUE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:TARGETDIR"
+ "Folders"
+ {
+ "{9EF0B969-E518-4E46-987F-47570745A589}:_375CFC78F18A4A6897911502E26CABF6"
+ {
+ "Name" = "8:assets"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:_DA02318C11684D29939524515AFF72F4"
+ "Folders"
+ {
+ }
+ }
+ "{9EF0B969-E518-4E46-987F-47570745A589}:_820919D3350A4FF6BC0958B193FDBDE4"
+ {
+ "Name" = "8:fonts"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:_2937719E7FF94F38B01394E8A42EF9AD"
+ "Folders"
+ {
+ }
+ }
+ }
+ }
+ "{1525181F-901A-416C-8A58-119130FE478E}:_915530E4846049C79CCF19D68E790F2E"
+ {
+ "Name" = "8:#1919"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:ProgramMenuFolder"
+ "Folders"
+ {
+ }
+ }
+ "{1525181F-901A-416C-8A58-119130FE478E}:_93740A828E174DF3A0EA1F9C6953F4AD"
+ {
+ "Name" = "8:#1911"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:FontsFolder"
+ "Folders"
+ {
+ }
+ }
+ "{1525181F-901A-416C-8A58-119130FE478E}:_9A3C2BEF62AD4B2D88CCC4CA27790BCC"
+ {
+ "Name" = "8:#1916"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:DesktopFolder"
+ "Folders"
+ {
+ }
+ }
+ }
+ "LaunchCondition"
+ {
+ }
+ "Locator"
+ {
+ }
+ "MsiBootstrapper"
+ {
+ "LangId" = "3:1033"
+ "RequiresElevation" = "11:FALSE"
+ }
+ "Product"
+ {
+ "Name" = "8:Microsoft Visual Studio"
+ "ProductName" = "8:Basketball Scoreboard System"
+ "ProductCode" = "8:{988E09D1-A6BB-4BB0-8BB6-36696082E19E}"
+ "PackageCode" = "8:{A7491C2F-F9CB-453A-A304-C5EAA9026E5F}"
+ "UpgradeCode" = "8:{5D333D15-943A-41F2-B436-F04F69C75730}"
+ "AspNetVersion" = "8:2.0.50727.0"
+ "RestartWWWService" = "11:FALSE"
+ "RemovePreviousVersions" = "11:FALSE"
+ "DetectNewerInstalledVersion" = "11:TRUE"
+ "InstallAllUsers" = "11:FALSE"
+ "ProductVersion" = "8:1.0.0"
+ "Manufacturer" = "8:Ahmed Al-Taiar"
+ "ARPHELPTELEPHONE" = "8:"
+ "ARPHELPLINK" = "8:"
+ "Title" = "8:Basketball Scoreboard System"
+ "Subject" = "8:"
+ "ARPCONTACT" = "8:Ahmed Al-Taiar"
+ "Keywords" = "8:Sports,Basketball,Timer,Score"
+ "ARPCOMMENTS" = "8:Scorekeep Basketball games!"
+ "ARPURLINFOABOUT" = "8:"
+ "ARPPRODUCTICON" = "8:"
+ "ARPIconIndex" = "3:0"
+ "SearchPath" = "8:"
+ "UseSystemSearchPath" = "11:TRUE"
+ "TargetPlatform" = "3:0"
+ "PreBuildEvent" = "8:"
+ "PostBuildEvent" = "8:"
+ "RunPostBuildEvent" = "3:0"
+ }
+ "Registry"
+ {
+ "HKLM"
+ {
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_3104CDA02A9C40ADB91A664CBC676A0F"
+ {
+ "Name" = "8:Software"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_4612303200CA4998BF313790D3608FB0"
+ {
+ "Name" = "8:[Manufacturer]"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ }
+ "HKCU"
+ {
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_640E4E8EC1BC453D90883F06B83D287E"
+ {
+ "Name" = "8:Software"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_C693EB02FA164446A29DC5F87B80AB16"
+ {
+ "Name" = "8:[Manufacturer]"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ }
+ "HKCR"
+ {
+ "Keys"
+ {
+ }
+ }
+ "HKU"
+ {
+ "Keys"
+ {
+ }
+ }
+ "HKPU"
+ {
+ "Keys"
+ {
+ }
+ }
+ }
+ "Sequences"
+ {
+ }
+ "Shortcut"
+ {
+ "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_29CE269E99D446CB9DD8CF12CA5DC6D6"
+ {
+ "Name" = "8:Basketball Scoreboard System"
+ "Arguments" = "8:"
+ "Description" = "8:"
+ "ShowCmd" = "3:1"
+ "IconIndex" = "3:0"
+ "Transitive" = "11:FALSE"
+ "Target" = "8:_57A5BD3AD4BB438DBBC21F27E609D771"
+ "Folder" = "8:_915530E4846049C79CCF19D68E790F2E"
+ "WorkingFolder" = "8:_41CF9708B5A94C64BA1F7BE89E47C63C"
+ "Icon" = "8:_76A3A3D267474A608119A324D1A4F04F"
+ "Feature" = "8:"
+ }
+ "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_5E2A60ABEA714F33BF7ABB125B9969CF"
+ {
+ "Name" = "8:Basketball Scoreboard System"
+ "Arguments" = "8:"
+ "Description" = "8:"
+ "ShowCmd" = "3:1"
+ "IconIndex" = "3:0"
+ "Transitive" = "11:FALSE"
+ "Target" = "8:_57A5BD3AD4BB438DBBC21F27E609D771"
+ "Folder" = "8:_9A3C2BEF62AD4B2D88CCC4CA27790BCC"
+ "WorkingFolder" = "8:_41CF9708B5A94C64BA1F7BE89E47C63C"
+ "Icon" = "8:_76A3A3D267474A608119A324D1A4F04F"
+ "Feature" = "8:"
+ }
+ }
+ "UserInterface"
+ {
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_0296CA903FE2499C96CA00A8258FAC4B"
+ {
+ "Name" = "8:#1900"
+ "Sequence" = "3:2"
+ "Attributes" = "3:1"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_4E169840E35F4B5C82EA48DE533C0A5F"
+ {
+ "Sequence" = "3:200"
+ "DisplayName" = "8:Installation Folder"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminFolderDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_829BF06AE52945DF95538BB73F32B1DC"
+ {
+ "Sequence" = "3:300"
+ "DisplayName" = "8:Confirm Installation"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminConfirmDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B3C678E977C24F15A04E63FCB822122D"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Welcome"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminWelcomeDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "CopyrightWarning"
+ {
+ "Name" = "8:CopyrightWarning"
+ "DisplayName" = "8:#1002"
+ "Description" = "8:#1102"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1202"
+ "DefaultValue" = "8:#1202"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Welcome"
+ {
+ "Name" = "8:Welcome"
+ "DisplayName" = "8:#1003"
+ "Description" = "8:#1103"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1203"
+ "DefaultValue" = "8:#1203"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_42859D1323DB43E49ED99A7972831CA5"
+ {
+ "UseDynamicProperties" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdUserInterface.wim"
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_48521A0702EB48B597A0773ADF6257B6"
+ {
+ "Name" = "8:#1901"
+ "Sequence" = "3:1"
+ "Attributes" = "3:2"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_2A21AA9A4F304ACB9F32FC23C9C4DC72"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Progress"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdProgressDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "ShowProgress"
+ {
+ "Name" = "8:ShowProgress"
+ "DisplayName" = "8:#1009"
+ "Description" = "8:#1109"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_90B087748C6341E89655F46D72FC4599"
+ {
+ "Name" = "8:#1902"
+ "Sequence" = "3:1"
+ "Attributes" = "3:3"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_98E4CECEFBF14540B8B7529D5D0AC1A0"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Finished"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdFinishedDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "UpdateText"
+ {
+ "Name" = "8:UpdateText"
+ "DisplayName" = "8:#1058"
+ "Description" = "8:#1158"
+ "Type" = "3:15"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1258"
+ "DefaultValue" = "8:#1258"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_9F3B6DE0980D4D5FBC25016F1CE0E52F"
+ {
+ "Name" = "8:#1901"
+ "Sequence" = "3:2"
+ "Attributes" = "3:2"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D4AB884A88F14F8988A71CFAA0CB03C0"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Progress"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminProgressDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "ShowProgress"
+ {
+ "Name" = "8:ShowProgress"
+ "DisplayName" = "8:#1009"
+ "Description" = "8:#1109"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_B30606D55A1945CF93F6E9EFDF2042CC"
+ {
+ "UseDynamicProperties" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdBasicDialogs.wim"
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F71AE6E600B64900A61C03423B278E97"
+ {
+ "Name" = "8:#1900"
+ "Sequence" = "3:1"
+ "Attributes" = "3:1"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_76DD2C9CFB0A435AB4492E716FE74B59"
+ {
+ "Sequence" = "3:200"
+ "DisplayName" = "8:Installation Folder"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdFolderDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "InstallAllUsersVisible"
+ {
+ "Name" = "8:InstallAllUsersVisible"
+ "DisplayName" = "8:#1059"
+ "Description" = "8:#1159"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9B91545AD6864B61BE27FCA400BEEB8A"
+ {
+ "Sequence" = "3:300"
+ "DisplayName" = "8:Confirm Installation"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdConfirmDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A33D7CB6648F497CABF9602C29C698B1"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Welcome"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdWelcomeDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "CopyrightWarning"
+ {
+ "Name" = "8:CopyrightWarning"
+ "DisplayName" = "8:#1002"
+ "Description" = "8:#1102"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1202"
+ "DefaultValue" = "8:#1202"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Welcome"
+ {
+ "Name" = "8:Welcome"
+ "DisplayName" = "8:#1003"
+ "Description" = "8:#1103"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1203"
+ "DefaultValue" = "8:#1203"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_FDDD4B17F554462792D37A72ACCD12F9"
+ {
+ "Name" = "8:#1902"
+ "Sequence" = "3:2"
+ "Attributes" = "3:3"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_62AAA925295C43FD9FE03207674B07DB"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Finished"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:\\VsdAdminFinishedDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ }
+ "MergeModule"
+ {
+ }
+ "ProjectOutput"
+ {
+ "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5BD3AD4BB438DBBC21F27E609D771"
+ {
+ "SourcePath" = "8:..\\Basketball Scoreboard System\\obj\\Release\\net6.0-windows\\apphost.exe"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_41CF9708B5A94C64BA1F7BE89E47C63C"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ "ProjectOutputGroupRegister" = "3:1"
+ "OutputConfiguration" = "8:"
+ "OutputGroupCanonicalName" = "8:PublishItems"
+ "OutputProjectGuid" = "8:{6DBE2316-C761-4B9D-9E59-26F9D9429BA1}"
+ "ShowKeyOutput" = "11:TRUE"
+ "ExcludeFilters"
+ {
+ }
+ }
+ }
+ }
+}