/SnapShooter/MainWindow.xaml.cs
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
using Microsoft.WindowsAPICodePack.Taskbar;
using Microsoft.WindowsAPICodePack.Shell;
using DominionOfAwesome;
namespace SnapShooter {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
DispatcherTimer dt;
StockIcon foundstuff;
public MainWindow() {
InitializeComponent();
dt = new DispatcherTimer();
foundstuff = new StockIcon(StockIconIdentifier.Info, StockIconSizes.ShellSize, false, false);
}
private void Window_Loaded(object sender, RoutedEventArgs e) {
dt.Interval = new TimeSpan(0, 0, 1);
dt.Tick += new EventHandler(dt_Tick);
dt.Start();
}
void dt_Tick(object sender, EventArgs e) {
if (Clipboard.ContainsImage()) {
TaskbarManager.Instance.SetOverlayIcon(foundstuff.Icon, "Found Image");
string filename = System.IO.Path.Combine(
Environment.GetEnvironmentVariable("TEMP"),
"SnapShoot.jpg"
);
Action localCleanup = new Action(delegate {
File.Delete(filename);
TaskbarManager.Instance.SetOverlayIcon(null, "");
});
BitmapSource b = Clipboard.GetImage();
FileStream s = new FileStream(filename, FileMode.Create);
JpegBitmapEncoder j = new JpegBitmapEncoder();
j.QualityLevel = 85;
j.Frames.Add(BitmapFrame.Create(b));
j.Save(s);
s.Close();
Transit t = new Transit();
try {
t.Create();
} catch (WebException we) {
MessageBox.Show("Could not connect to Transit: " + we.Message + "\nThe Clipboard has been cleared.", "FFFFFFFUUUUUUUUUUUUUU-");
Clipboard.Clear();
localCleanup();
return;
}
t.TransferProgress += delegate(object sender2, TransferProgressArgs tpe) {
TaskbarManager.Instance.SetProgressValue((int)tpe.PercentComplete, 100);
};
t.TransferComplete += delegate {
TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.NoProgress);
Dispatcher.Invoke(new Action(delegate {
Clipboard.SetText(t.Url);
localCleanup();
SnapShotItem i = new SnapShotItem();
i.TransitURL = t.Url;
SnapShots.Items.Add(i);
}), null);
};
t.UploadAsync(filename);
Clipboard.Clear();
}
}
private void Enabled_Checked(object sender, RoutedEventArgs e) {
if (dt == null) return;
dt.Start();
}
private void Enabled_Unchecked(object sender, RoutedEventArgs e) {
if (dt == null) return;
dt.Stop();
}
private void Help_Click(object sender, RoutedEventArgs e) {
HelpWindow helpWindow = new HelpWindow();
helpWindow.ShowDialog();
}
}
}