Example #1
0
        private void UpdateIcon(AppIcon icon)
        {
            string tempPath = null;

            string path;

            if (icon == null || icon.Icons.Length == 0)
            {
                path = DefaultIconName;
            }
            else if (icon.Source == AppIcon.IconSource.File)
            {
                path = icon.DefaultIcon.Path;
            }
            else
            {
                tempPath = Path.GetTempFileName();
                using (var tmpStream = File.Open(tempPath, FileMode.Create))
                    using (var iconStream = icon.GetIconDataStream(icon.DefaultIcon))
                    {
                        iconStream.CopyTo(tmpStream);
                    }

                path = tempPath;
            }

            using (GLibString gpath = path)
            {
                AppIndicator.SetIcon(Handle, gpath);
            }

            ClearTempFile();
            tempIconFile = tempPath;
        }