예제 #1
0
        public LibraryWindow(SidebarWindow longbar)
        {
            InitializeComponent();

            this.longbar = longbar;

            ItemsCount.Text = string.Format((string)Application.Current.TryFindResource("ElementsCount"), "0");
        }
예제 #2
0
        private void Window_LocationChanged(object sender, EventArgs e)
        {
            int index = SidebarWindow.GetElementIndexByYCoord(panel, this.Top); //берем индекс элемента по координате

            //Txt.Text = currentIndex.ToString() + "|" + index.ToString();
            if (index != currentIndex) //и не равен текущему, то суем сплиттер перед элементом с этим индексом
            {
                if (((index == -1 && currentIndex == 0) || (index == 100500 && currentIndex == panel.Children.Count - 1) &&
                     panel.Children.Contains(splitter)))
                {
                    return;
                }
                if (index > 0 && index < 100500 && panel.Children.IndexOf(splitter) == index - 1)
                {
                    return;
                }
                if (panel.Children.Contains(splitter)) //если сплиттер уже на панели,
                {
                    panel.Children.Remove(splitter);   //убираем его нафиг
                }
                switch (index)
                {
                case -1:                                //если индекс равен -1
                    panel.Children.Insert(0, splitter); //втыкаем сплиттер в начало
                    break;

                case 100500:                      //если индекс равен стопицот
                    panel.Children.Add(splitter); //втыкаем сплиттер в конец
                    break;

                default:                                    //а иначе
                    panel.Children.Insert(index, splitter); //втыкаем сплиттер перед индексом
                    break;
                }
                splitter.Reload();
                currentIndex = panel.Children.IndexOf(splitter);
            }
        }
예제 #3
0
 public OptionsWindow(SidebarWindow wnd)
 {
     InitializeComponent();
     SidebarWindow = wnd;
     SidebarHandle = new WindowInteropHelper(wnd).Handle;
 }
예제 #4
0
        private void App_Startup(object sender, StartupEventArgs e)
        {
            Microsoft.Win32.SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingsChanged);
            SystemTray.IsRunning = false;
            if (Utils.PriorProcess() != null)
            {
                SystemTray.IsRunning = true;
            }
            SidebarWindow.ReadSettings();
            LocaleManager.LoadLocale(SidebarWindow.sett.path, SidebarWindow.sett.locale);

            if (SystemTray.IsRunning && e.Args.Length == 0)
            {
                MessageBox.Show((string)Application.Current.TryFindResource("AlreadyRunning"), "LongBar", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning);
                this.Shutdown();
            }
            if (e.Args.Length > 0)
            {
                switch (e.Args[0])
                {
                case @"/regext":
                    try
                    {
                        RegistryKey key;
                        key = Registry.ClassesRoot;
                        key = key.CreateSubKey(".tile", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        key.SetValue(null, "LongBar.Tile", RegistryValueKind.String);
                        key = Registry.ClassesRoot;
                        key = key.CreateSubKey("LongBar.Tile", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        key.SetValue(null, "LongBar Tile", RegistryValueKind.String);
                        key = key.CreateSubKey("DefaultIcon", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        key.SetValue(null, path + @"\Slate.dll,0", RegistryValueKind.ExpandString);
                        key = Registry.ClassesRoot;
                        key = key.OpenSubKey("LongBar.Tile", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        key = key.CreateSubKey("shell", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        key = key.CreateSubKey("Install", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        key = key.CreateSubKey("command", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        key.SetValue(null, path + @"\" + Assembly.GetExecutingAssembly().GetName().Name + @".exe %1", RegistryValueKind.String);
                        key.Close();
                    }
                    catch { }
                    break;

                case @"/unregext":
                    try
                    {
                        RegistryKey key;
                        key = Registry.ClassesRoot.OpenSubKey(".tile", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        if (key != null)
                        {
                            Registry.ClassesRoot.DeleteSubKeyTree(".tile");
                        }
                        key = Registry.ClassesRoot.OpenSubKey("LongBar.Tile", RegistryKeyPermissionCheck.ReadWriteSubTree);
                        if (key != null)
                        {
                            Registry.ClassesRoot.DeleteSubKeyTree("LongBar.Tile");
                        }
                        key.Close();
                    }
                    catch { }
                    break;

                case "/debug":
                    if (e.Args.Length > 1 && e.Args[1].EndsWith(".dll") && File.Exists(e.Args[1]))
                    {
                        SidebarWindow.sett.debug       = true;
                        SidebarWindow.sett.tileToDebug = e.Args[1];
                    }
                    break;


                default:
                    foreach (string file in e.Args)
                    {
                        try
                        {
                            string longFile = Path.GetFullPath(file);
                            if (File.Exists(longFile) && Path.GetExtension(longFile) == ".tile")
                            {
                                FileInfo info = new FileInfo(longFile);
                                TaskDialogs.TileInstallDialog.ShowDialog(null, info.Name, longFile);
                            }
                        }
                        catch (Exception ex) { MessageBox.Show(ex.Message); }
                    }
                    break;
                }
                if (SystemTray.IsRunning)
                {
                    this.Shutdown();
                }
            }
        }