Beispiel #1
0
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            ConfigClass config = Config.GetConfig();

            dmoveinfo.Text             = dmoveinfo.Text.Replace("{filepos}", Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Tiels\\temp");
            AutostartCB.IsChecked      = File.Exists(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup), "Tiels.lnk"));
            HideafterstartCB.IsChecked = config.HideAfterStart;
            EffectsCB.IsChecked        = config.SpecialEffects;

            TielsUILib.MainControl control  = ((TielsUILib.MainControl)((Microsoft.Toolkit.Wpf.UI.XamlHost.WindowsXamlHost)host).Child);
            SettingsPage           settings = control.GetSettingsPage();

            settings.autostart_tg.IsOn     = File.Exists(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup), "Tiels.lnk"));
            settings.autostart_tg.Toggled += (sender, args) =>
            {
                if (settings.autostart_tg.IsOn)
                {
                    CreateShortcut(System.Reflection.Assembly.GetEntryAssembly().Location);
                }
                else
                {
                    File.Delete(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Startup), "Tiels.lnk"));
                }
            };

            ManagePage manage = control.GetManagePage();

            MainWindow mw = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();

            foreach (var tile in mw.tilesw)
            {
                manage.AddTileToList(tile.name, tile.path);
            }

            // Add create tile event on "createTileBtn" button click
            manage.createTileBtn.Click += (sender, e) =>
            {
                string tileName = "tt";
                //"/[<>/\\*:\?\|]/g
                if (!Regex.IsMatch(tileName, @"\<|\>|\\|\/|\*|\?|\||:"))
                {
                    Directory.CreateDirectory(path + "\\" + tileName);
                    string dir = path + "\\" + tileName + "\\desktop.ini";
                    File.WriteAllText(dir,
                                      "[.ShellClassInfo]\r\n" +
                                      "IconResource=" + Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Tiels\\directoryicon.ico,0\r\n" +
                                      "[ViewState]\r\n" +
                                      "Mode =\r\n" +
                                      "Vid =\r\n" +
                                      "FolderType = Generic"
                                      );

                    File.SetAttributes(path + "\\" + tileName + "\\desktop.ini", FileAttributes.Hidden | FileAttributes.Archive | FileAttributes.System | FileAttributes.ReadOnly);
                    //RefreshIconCache();

                    MainWindow mw = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();
                    foreach (TileWindow tile in mw.tilesw)
                    {
                        tile.Close();
                    }
                    mw.tilesw.Clear();
                    tilelist.Items.Clear();
                    mw.Load();
                }
            };

            foreach (object item in manage.tileList.Items)
            {
                if (item is ListViewItem)
                {
                    // -> button
                    ((ListViewItem)item).Selected += (sender, e) =>
                    {
                        ListViewItem tmp_item = null;
                        foreach (ListViewItem item in tilelist.Items)
                        {
                            if (item.IsSelected)
                            {
                                string itempath = item.Tag + "\\" + item.Content;
                                if (File.Exists(itempath))
                                {
                                    string[] files = Directory.EnumerateFiles(itempath).ToArray();
                                    Directory.Move(itempath, Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Tiels\\temp\\" + item.Content);
                                    Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Tiels\\temp\\");
                                }
                                MainWindow mw = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();
                                foreach (var tile in mw.tilesw)
                                {
                                    if (tile.name == (string)item.Content)
                                    {
                                        tile.Close();
                                    }
                                }
                                tmp_item = item;
                            }
                        }
                        if (tmp_item != null)
                        {
                            tilelist.Items.Remove(tmp_item);
                        }
                    };
                }
            }
        }