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 { /// /// Interaction logic for MainWindow.xaml /// 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(); } } }