windows statusicon: implement error state icons
This commit is contained in:
parent
435603a80c
commit
3284f2947e
|
@ -18,6 +18,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
using System.Windows.Interop;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Controls.Primitives;
|
using System.Windows.Controls.Primitives;
|
||||||
|
@ -61,7 +63,10 @@ namespace SparkleShare {
|
||||||
|
|
||||||
Controller.UpdateIconEvent += delegate (int icon_frame) {
|
Controller.UpdateIconEvent += delegate (int icon_frame) {
|
||||||
Dispatcher.Invoke ((Action) delegate {
|
Dispatcher.Invoke ((Action) delegate {
|
||||||
this.notify_icon.Icon = animation_frames [icon_frame];
|
if (icon_frame > -1)
|
||||||
|
this.notify_icon.Icon = animation_frames [icon_frame];
|
||||||
|
else
|
||||||
|
this.notify_icon.Icon = this.error_icon;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -175,8 +180,6 @@ namespace SparkleShare {
|
||||||
Header = folder_name
|
Header = folder_name
|
||||||
};
|
};
|
||||||
|
|
||||||
// FIXME: can't click items. probably has something to do
|
|
||||||
// with SparkleNotifyIcon
|
|
||||||
subfolder_item.Click += OpenFolderDelegate (folder_name);
|
subfolder_item.Click += OpenFolderDelegate (folder_name);
|
||||||
|
|
||||||
Image subfolder_image = new Image () {
|
Image subfolder_image = new Image () {
|
||||||
|
@ -185,15 +188,20 @@ namespace SparkleShare {
|
||||||
Height = 16
|
Height = 16
|
||||||
};
|
};
|
||||||
|
|
||||||
subfolder_item.Icon = subfolder_image;
|
if (Program.Controller.UnsyncedFolders.Contains (folder_name)) {
|
||||||
this.context_menu.Items.Add (subfolder_item);
|
subfolder_item.Icon = new Image () {
|
||||||
|
Source = (BitmapSource) Imaging.CreateBitmapSourceFromHIcon (
|
||||||
|
System.Drawing.SystemIcons.Exclamation.Handle,
|
||||||
|
Int32Rect.Empty,
|
||||||
|
BitmapSizeOptions.FromWidthAndHeight (16,16)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
} else {
|
||||||
|
subfolder_item.Icon = subfolder_image;
|
||||||
|
}
|
||||||
|
|
||||||
/* TODO
|
this.context_menu.Items.Add (subfolder_item);
|
||||||
if (Program.Controller.UnsyncedFolders.Contains (folder_name))
|
|
||||||
subfolder_item.Icon = Icons.dialog_error_16;
|
|
||||||
else
|
|
||||||
subfolder_item.Icon = Icons.sparkleshare_windows_status;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SparkleMenuItem more_item = new SparkleMenuItem () {
|
SparkleMenuItem more_item = new SparkleMenuItem () {
|
||||||
|
@ -213,15 +221,20 @@ namespace SparkleShare {
|
||||||
Height = 16
|
Height = 16
|
||||||
};
|
};
|
||||||
|
|
||||||
subfolder_item.Icon = subfolder_image;
|
if (Program.Controller.UnsyncedFolders.Contains (folder_name)) {
|
||||||
more_item.Items.Add (subfolder_item);
|
subfolder_item.Icon = new Image () {
|
||||||
|
Source = (BitmapSource) Imaging.CreateBitmapSourceFromHIcon (
|
||||||
|
System.Drawing.SystemIcons.Exclamation.Handle,
|
||||||
|
Int32Rect.Empty,
|
||||||
|
BitmapSizeOptions.FromWidthAndHeight (16,16)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
} else {
|
||||||
|
subfolder_item.Icon = subfolder_image;
|
||||||
|
}
|
||||||
|
|
||||||
/* TODO
|
more_item.Items.Add (subfolder_item);
|
||||||
if (Program.Controller.UnsyncedFolders.Contains (folder_name))
|
|
||||||
subfolder_item.Icon = Icons.dialog_error_16;
|
|
||||||
else
|
|
||||||
subfolder_item.Icon = Icons.sparkleshare_windows_status;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (more_item.Items.Count > 0) {
|
if (more_item.Items.Count > 0) {
|
||||||
|
|
Loading…
Reference in a new issue