Пример #1
0
        private void OnSeekbarValueChanged(int value)
        {
            int index = value - 1;

            if (index != ImgContainerManager.CurrentImageIndex)
            {
                var t = ImgContainerManager.ChangeCurrentIndex(index);
            }
        }
Пример #2
0
        // 行列設定ダイアログ
        private void MatrixSelecter_MatrixSelected(object sender, EventArgs e)
        {
            MatrixSelecter ms = sender as MatrixSelecter;

            if (ms != null)
            {
                this.MenuItem_Matrix.IsSubmenuOpen    = false;
                Setting.TempProfile.NumofMatrix.Value = new int[] { ms.ColValue, ms.RowValue };

                ImgContainerManager.ApplyGridDifinition();
                this.Focus();
            }
        }
Пример #3
0
        // グリッドのアスペクト比 選択時
        private void Toolbar_AspectRate_Click(object sender, RoutedEventArgs e)
        {
            MenuItem item = sender as MenuItem;

            if (item != null)
            {
                // 非固定を選択
                if (item.Tag.ToString() == "FREE")
                {
                    if (Setting.TempProfile.NonFixAspectRatio.Value)
                    {
                        // 非固定解除
                        Setting.TempProfile.NonFixAspectRatio.Value = false;
                    }
                    else
                    {
                        // 非固定にする
                        Setting.TempProfile.NonFixAspectRatio.Value = true;
                    }
                    UpdateToolbarViewing();
                    return;
                }

                // 固定値を選択
                else
                {
                    Setting.TempProfile.NonFixAspectRatio.Value = false;
                    string[] str = item.Tag.ToString().Split('_');
                    int      w   = int.Parse(str[0]);
                    int      h   = int.Parse(str[1]);

                    Setting.TempProfile.AspectRatio.Value = new int[] { w, h };
                    ImgContainerManager.ApplyAspectRatio(true);
                }
            }
        }
Пример #4
0
        private void InitEvent()
        {
            this.SourceInitialized += (s, e) =>
            {
                // ウインドウ位置復元が正常に行われたかチェック
                Win32.SetWindowPosProperly(new WindowInteropHelper(this).Handle, (int)this.Left, (int)this.Top, true, 0, true);
            };

            this.SizeChanged += (s, e) =>
            {
                // 以下の処理は、ウインドウ枠ドラッグでのサイズ変更時のみ有効
                if (IgnoreResizeEvent)
                {
                    return;
                }

                // 画像拡大パネルのサイズ更新、拡大中ならリセット
                if (TileExpantionPanel.IsShowing)
                {
                    TileExpantionPanel.FitToMainWindow();
                }

                // アス比非固定時
                if (Setting.TempProfile.NonFixAspectRatio.Value)
                {
                    // 現在のプロファイル
                    Profile pf = Setting.TempProfile;

                    // タイルサイズ(アス比)の決定
                    double w         = (this.Width - MainContent.Margin.Left * 2) / pf.NumofMatrix.Col;
                    double h         = (this.Height - MainContent.Margin.Left * 2) / pf.NumofMatrix.Row;
                    double gridRatio = h / w;

                    int gridWidth  = ImgContainer.StandardInnerTileWidth + pf.TilePadding.Value * 2;
                    int gridHeight = (int)(gridWidth * gridRatio);
                    pf.AspectRatio.Value = new int[] { ImgContainer.StandardInnerTileWidth, gridHeight - pf.TilePadding.Value * 2 };

                    // コンテナサイズの決定
                    ImgContainerManager.InitContainerSize();
                    ImgContainerManager.InitWrapPoint(pf.SlideDirection.Value);

                    // BitmapDecodePixelOfTilewを更新
                    ImgContainerManager.InitBitmapDecodePixelOfTile();

                    // 位置を正規化
                    ImgContainerManager.InitContainerPos();
                }

                // アス比固定・非固定に関わらず拡大縮小
                FitMainContentToWindow();
            };

            this.Closing += (s, e) =>
            {
                ShortcutManager.UnhookWindowsHook();
            };

            this.PreviewDragOver += (s, e) =>
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop, true))
                {
                    e.Effects = DragDropEffects.All;
                }
                else
                {
                    e.Effects = DragDropEffects.None;
                }
                e.Handled = true;
            };

            this.Drop += (s, e) =>
            {
                SaveHistoryItem();

                // メインウインドウをアクティブに
                this.Activate();

                string[] files = e.Data.GetData(DataFormats.FileDrop) as string[];

                if (IsCtrlOrShiftKeyPressed)
                {
                    // 追加読み込み
                    ReadFiles(files, true);
                    var t = ImgContainerManager.InitAllContainer(0);
                }
                else
                {
                    // 通常読み込み
                    DropNewFiles(files);
                }
            };


            // end of method
        }
Пример #5
0
        // ツールバーボタン(読み込み)
        private void MenuItem_Load_SubmenuOpened(object sender, RoutedEventArgs e)
        {
            // イベントの発生元チェック(子要素からのイベントなら無視)
            MenuItem miSrc = e.OriginalSource as MenuItem;

            if (miSrc == null || miSrc.Name != MenuItem_Load.Name)
            {
                return;
            }

            // 項目追加前に、基本メニュー以外を削除
            for (int i = MenuItem_Load.Items.Count - 1; i >= 0; i--)
            {
                MenuItem mi = MenuItem_Load.Items[i] as MenuItem;
                if (mi != null && (string)mi.Tag == "BasicItemLast")
                {
                    break;
                }
                MenuItem_Load.Items.RemoveAt(i);
            }

            // 追加読み込み
            if (Setting.ShowMenuItem_AdditionalRead)
            {
                MenuItem_Load.Items.Add(new Separator());
                MenuItem mi_addFolder = new MenuItem();
                mi_addFolder.Header = "フォルダを追加読み込み";
                mi_addFolder.Click += Toolbar_Add_Folder_Click;
                MenuItem_Load.Items.Add(mi_addFolder);

                MenuItem mi_addFile = new MenuItem();
                mi_addFile.Header = "ファイルを追加読み込み";
                mi_addFile.Click += Toolbar_Add_File_Click;
                MenuItem_Load.Items.Add(mi_addFile);
            }

            // 再読込み(必ず表示)
            MenuItem_Load.Items.Add(new Separator());
            MenuItem mi_reload = new MenuItem();

            mi_reload.Header = "再読み込み";
            mi_reload.Click += Toolbar_Load_Reload_Click;
            MenuItem_Load.Items.Add(mi_reload);

            // エクスプローラーでフォルダを開く(必ず表示)
            MenuItem mi_openFolder = new MenuItem();

            mi_openFolder.Header = "エクスプローラーでフォルダを開く";
            mi_openFolder.Click += (s, ev) => { OpenCurrentFolderByExplorer(); };
            MenuItem_Load.Items.Add(mi_openFolder);


            // ヒストリーなし
            Action addHistorySettingMenu = () =>
            {
                MenuItem_Load.Items.Add(new Separator());
                MenuItem m0 = new MenuItem();
                m0.Header = "履歴設定...";
                m0.Click += (s, ev) => ShowAppSettingDialog((int)AppSettingDialogTabIndex.History);
                MenuItem_Load.Items.Add(m0);
            };

            if (Setting.History.Count < 1)
            {
                addHistorySettingMenu.Invoke();
                return;
            }

            // セパレータ
            MenuItem_Load.Items.Add(new Separator());

            // ヒストリーの右クリックメニュー
            ContextMenu contextMenu = new ContextMenu();
            MenuItem    cmi1        = new MenuItem();
            MenuItem    cmi2        = new MenuItem();
            MenuItem    cmi3        = new MenuItem();

            cmi1.Header = "追加読み込み";
            cmi2.Header = "エクスプローラーで開く";
            cmi3.Header = "削除";

            // 追加読み込み
            cmi1.Click += (se, ev) =>
            {
                MenuItem mi = ((ev.Source as MenuItem).Parent as ContextMenu).PlacementTarget as MenuItem;
                if (mi == null)
                {
                    return;
                }

                string[] path = { mi.ToolTip.ToString() };
                ReadFiles(path, true);
                var t = ImgContainerManager.InitAllContainer(0);
            };

            // エクスプローラーで開く
            cmi2.Click += (se, ev) =>
            {
                MenuItem mi = ((ev.Source as MenuItem).Parent as ContextMenu).PlacementTarget as MenuItem;
                if (mi == null)
                {
                    return;
                }

                string path = mi.ToolTip.ToString();
                //Process.Start(path);
                Process.Start("explorer.exe", "/select,\"" + path + "\"");
            };

            // 削除
            cmi3.Click += (se, ev) =>
            {
                MenuItem mi = ((ev.Source as MenuItem).Parent as ContextMenu).PlacementTarget as MenuItem;
                if (mi == null)
                {
                    return;
                }

                string path = mi.ToolTip.ToString();
                Setting.History.RemoveAll(h => h.ArchiverPath == path);
                MenuItem_Load_SubmenuOpened(this, new RoutedEventArgs(null, MenuItem_Load));
            };
            contextMenu.Items.Add(cmi1);
            contextMenu.Items.Add(cmi2);
            contextMenu.Items.Add(cmi3);

            // メインヒストリー追加
            for (int i = 0; i < Setting.NumofHistoryInMainMenu; i++)
            {
                if (i < Setting.History.Count)
                {
                    MenuItem mi = new MenuItem();
                    mi.Header      = System.IO.Path.GetFileName(Setting.History[i].ArchiverPath).Replace("_", "__");
                    mi.ToolTip     = Setting.History[i].ArchiverPath;
                    mi.Click      += OnHistoryItemSelected;
                    mi.ContextMenu = contextMenu;
                    MenuItem_Load.Items.Add(mi);
                }
            }

            // サブヒストリー追加
            if (Setting.History.Count > Setting.NumofHistoryInMainMenu && Setting.NumofHistoryInMenu > Setting.NumofHistoryInMainMenu)
            {
                MenuItem continuation = new MenuItem();
                continuation.Header = "フォルダ履歴の続き";
                MenuItem_Load.Items.Add(continuation);

                for (int i = Setting.NumofHistoryInMainMenu; i < Setting.NumofHistoryInMenu; i++)
                {
                    if (i > Setting.History.Count - 1)
                    {
                        break;
                    }
                    MenuItem mi = new MenuItem();
                    mi.Header      = System.IO.Path.GetFileName(Setting.History[i].ArchiverPath).Replace("_", "__");
                    mi.ToolTip     = Setting.History[i].ArchiverPath;
                    mi.Click      += OnHistoryItemSelected;
                    mi.ContextMenu = contextMenu;
                    continuation.Items.Add(mi);
                }
            }

            // 履歴設定
            addHistorySettingMenu.Invoke();
        }