Skip to content

Commit bb4eea7

Browse files
committed
add monitor pause & resume function & demo
1 parent 9f09f97 commit bb4eea7

File tree

6 files changed

+101
-8
lines changed

6 files changed

+101
-8
lines changed

src/Flow.Launcher.Plugin.ClipboardPlus.Core/Data/Models/Clipboard/ClipboardHandle.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public ClipboardHandle()
3636

3737
#region Fields
3838

39-
const int WM_CLIPBOARDUPDATE = 0x031D;
39+
private const int WM_CLIPBOARDUPDATE = 0x031D;
4040

4141
private bool _ready;
4242

@@ -113,7 +113,6 @@ protected override CreateParams CreateParams
113113
/// <param name="m">The processed window-reference message.</param>
114114
protected override void WndProc(ref Message m)
115115
{
116-
Console.WriteLine(m.ToString());
117116
switch (m.Msg)
118117
{
119118
case WM_CLIPBOARDUPDATE:
@@ -134,6 +133,8 @@ private void OnDrawClipboardChanged()
134133
{
135134
return;
136135
}
136+
137+
// Retrieves the current clipboard data object.
137138
var dataObj = TaskUtils.Do(Clipboard.GetDataObject, 100, 5);
138139
if (dataObj is null)
139140
{

src/Flow.Launcher.Plugin.ClipboardPlus.Core/Data/Models/Clipboard/ClipboardHandleW.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ internal class ClipboardHandleW : IDisposable
1717
{
1818
#region Fields
1919

20-
const int WM_CLIPBOARDUPDATE = 0x031D;
20+
private const int WM_CLIPBOARDUPDATE = 0x031D;
2121

2222
private HwndSource _hwndSource = null!;
2323

src/Flow.Launcher.Plugin.ClipboardPlus.Core/Data/Models/Clipboard/ClipboardMonitor.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,22 @@ public void StartMonitoring()
116116
}
117117
}
118118

119+
/// <summary>
120+
/// Pauses the clipboard-monitoring process.
121+
/// </summary>
122+
public void PauseMonitoring()
123+
{
124+
MonitorClipboard = false;
125+
}
126+
127+
/// <summary>
128+
/// Resumes the clipboard-monitoring process.
129+
/// </summary>
130+
public void ResumeMonitoring()
131+
{
132+
MonitorClipboard = true;
133+
}
134+
119135
/// <summary>
120136
/// Ends the clipboard-monitoring process and
121137
/// shuts the system clipboard-access handle.

src/Flow.Launcher.Plugin.ClipboardPlus.Core/Data/Models/Clipboard/ClipboardMonitorW.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,22 @@ public void StartMonitoring()
109109
}
110110
}
111111

112+
/// <summary>
113+
/// Pauses the clipboard-monitoring process.
114+
/// </summary>
115+
public void PauseMonitoring()
116+
{
117+
MonitorClipboard = false;
118+
}
119+
120+
/// <summary>
121+
/// Resumes the clipboard-monitoring process.
122+
/// </summary>
123+
public void ResumeMonitoring()
124+
{
125+
MonitorClipboard = true;
126+
}
127+
112128
/// <summary>
113129
/// Ends the clipboard-monitoring process and
114130
/// shuts the system clipboard-access handle.

src/Flow.Launcher.Plugin.ClipboardPlus.Panels.Test/MainWindow.xaml

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,40 @@
3737
Text="Wait something copyed to clipboard..." />
3838
<TextBox x:Name="TextBox" Grid.Row="3" />
3939
<RichTextBox x:Name="RichTextBox" Grid.Row="4" />
40+
<Grid Grid.Row="5">
41+
<Grid.ColumnDefinitions>
42+
<ColumnDefinition Width="1*" />
43+
<ColumnDefinition Width="1*" />
44+
<ColumnDefinition Width="1*" />
45+
<ColumnDefinition Width="1*" />
46+
</Grid.ColumnDefinitions>
47+
<Button
48+
x:Name="Button1"
49+
Grid.Column="0"
50+
Click="Button_Click3"
51+
Content="Start Monitor" />
52+
<Button
53+
x:Name="Button2"
54+
Grid.Column="1"
55+
Click="Button_Click4"
56+
Content="Pause Monitor" />
57+
<Button
58+
x:Name="Button3"
59+
Grid.Column="2"
60+
Click="Button_Click5"
61+
Content="Resume Monitor" />
62+
<Button
63+
x:Name="Button4"
64+
Grid.Column="3"
65+
Click="Button_Click6"
66+
Content="Stop Monitor" />
67+
</Grid>
4068
<Image
4169
x:Name="Image"
4270
Grid.Row="6"
4371
HorizontalAlignment="Center"
4472
VerticalAlignment="Center" />
45-
<Button
46-
Grid.Row="5"
47-
Click="Button_Click3"
48-
Content="Stop Monitor" />
73+
4974
</Grid>
5075
</TabItem>
5176
</TabControl>

src/Flow.Launcher.Plugin.ClipboardPlus.Panels.Test/MainWindow.xaml.cs

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,14 +321,49 @@ private void Button_Click2(object sender, RoutedEventArgs e)
321321
}
322322

323323
private void Button_Click3(object sender, RoutedEventArgs e)
324+
{
325+
ClipboardMonitor.ClipboardChanged += OnClipboardChange;
326+
ClipboardMonitor.StartMonitoring();
327+
TextBlock1.Text = "";
328+
TextBlock2.Text = "";
329+
TextBlock3.Text = "Wait something copyed to clipboard...";
330+
TextBox.Text = "";
331+
RichTextBox.SetUnicodeText("");
332+
}
333+
334+
private void Button_Click4(object sender, RoutedEventArgs e)
335+
{
336+
ClipboardMonitor.PauseMonitoring();
337+
TextBlock1.Text = "";
338+
TextBlock2.Text = "";
339+
TextBlock3.Text = "Clipboard monitor is paused.";
340+
TextBox.Text = "";
341+
RichTextBox.SetUnicodeText("");
342+
}
343+
344+
private void Button_Click5(object sender, RoutedEventArgs e)
345+
{
346+
ClipboardMonitor.ResumeMonitoring();
347+
TextBlock1.Text = "";
348+
TextBlock2.Text = "";
349+
TextBlock3.Text = "Wait something copyed to clipboard...";
350+
TextBox.Text = "";
351+
RichTextBox.SetUnicodeText("");
352+
}
353+
354+
private void Button_Click6(object sender, RoutedEventArgs e)
324355
{
325356
ClipboardMonitor.ClipboardChanged -= OnClipboardChange;
326357
ClipboardMonitor.Dispose();
327358
TextBlock1.Text = "";
328359
TextBlock2.Text = "";
329-
TextBlock3.Text = "Clipboard Monitor is Stopped.";
360+
TextBlock3.Text = "Clipboard monitor is Stopped.";
330361
TextBox.Text = "";
331362
RichTextBox.SetUnicodeText("");
363+
Button1.IsEnabled = false;
364+
Button2.IsEnabled = false;
365+
Button3.IsEnabled = false;
366+
Button4.IsEnabled = false;
332367
}
333368

334369
#endregion

0 commit comments

Comments
 (0)