This repository has been archived by the owner on Feb 8, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMainWindow.xaml.cs
148 lines (132 loc) · 4.28 KB
/
MainWindow.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
using System;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Input;
namespace RocketLeagueGarage
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private NotifyIcon notifyIcon = null;
public MainWindow()
{
InitializeComponent();
}
//exit app
private void ExitClicked(object sender, RoutedEventArgs e)
{
System.Windows.Application.Current.Shutdown();
}
//minimize app
private void MinimizeClicked(object sender, RoutedEventArgs e)
{
try
{
initialTray();
}
catch
{
}
}
//move system window
private void Window_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
this.DragMove();
}
}
// Minimize the system tray
private void initialTray()
{
try
{
notifyIcon = new NotifyIcon();
// Hide the main form
this.Visibility = Visibility.Hidden;
// Set the various properties of the tray
// tray bubble display content
notifyIcon.BalloonTipText = "Rocket League Garage is running...";
notifyIcon.Text = "Rocket League Garage";
//The tray button is visible
notifyIcon.Visible = true;
//The icon displayed in the tray
notifyIcon.Icon = new System.Drawing.Icon("RocketLeagueGarage.ico");
//Tray bubble display time
notifyIcon.ShowBalloonTip(1000);
//mouse click event
notifyIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(notifyIcon_MouseClick);
// triggered when the form state changes
this.StateChanged += MainWindow_StateChanged;
}
catch
{
}
}
// tray icon mouse click event
private void notifyIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
{
try
{
// left mouse button to minimize the form to hide or display the form
if (e.Button == MouseButtons.Left)
{
if (this.Visibility == Visibility.Visible)
{
this.Visibility = Visibility.Hidden;
}
else
{
notifyIcon.Dispose();
this.Visibility = Visibility.Visible;
this.Activate();
}
}
if (e.Button == MouseButtons.Right)
{
//object sender = new object();
// EventArgs e = new EventArgs();
exit_Click(sender, e);// Trigger click to exit the event
}
}
catch
{
}
}
// exit option
private void exit_Click(object sender, EventArgs e)
{
try
{
if (System.Windows.MessageBox.Show("Are you sure to quit?",
"RLG",
MessageBoxButton.YesNo,
MessageBoxImage.Question,
MessageBoxResult.Yes) == MessageBoxResult.Yes)
{
//System.Windows.Application.Current.Shutdown();
System.Environment.Exit(0);
}
}
catch
{
}
}
// window state changes, minimize tray
private void MainWindow_StateChanged(object sender, EventArgs e)
{
try
{
if (this.WindowState == WindowState.Minimized)
{
this.Visibility = Visibility.Hidden;
}
}
catch
{
}
}
}
}