示例#1
0
        public void SaveRecentFilePaths(string[] files)
        {
            var all = new HashSet <string>(GetReceintFiles());

            foreach (var p in files)
            {
                if (File.Exists(p))
                {
                    all.Add(p);
                }
            }
            settings.RecentFilePaths.Clear();
            settings.RecentFilePaths.AddRange(all.ToArray());
            settings.Save();
        }
        /// <summary>
        /// 保存ボタン押下
        /// </summary>
        private void saveButton_Click(object sender, EventArgs e)
        {
            // ビューワー設定
            ViewerSettings.OpenLinkBrowser           = openLinkBrowserCheckBox.Checked;
            ViewerSettings.ReturnPositionOnStart     = returnPositionOnStartCheckBox.Checked;
            ViewerSettings.ReturnSizeOnStart         = returnSizeOnStartCheckBox.Checked;
            ViewerSettings.SaveReturnPositionOnClose = saveReturnPositionCheckBox.Checked;
            ViewerSettings.SaveReturnSizeOnClose     = saveReturnSizeCheckBox.Checked;

            // 設定を保存
            ViewerSettings.Save();
            Close();
        }
示例#3
0
        public ThreadViewerView()
        {
            Logger.Instance.Debug("ThreadViewerView[]");
            InitializeComponent();

            Init();

            // 設定の読み込み
            LoadSetting();

            //---------------------------------------------------
            // データバインド設定
            //---------------------------------------------------

            textBoxUrl.DataBindings.Add("Text", viewModel, "ThreadUrl");
            textBoxMessage.DataBindings.Add("Text", viewModel, "Message");

            //---------------------------------------------------
            // ボタン押下
            //---------------------------------------------------

            // 更新ボタン押下
            toolStripButtonUpdate.Click += (sender, e) => viewModel.UpdateThread();

            // スクロールボタン押下
            toolStripButtonTop.Click    += (sender, e) => threadViewer.ScrollToTop();
            toolStripButtonBottom.Click += (sender, e) => threadViewer.ScrollToBottom();

            // スレッド一覧表示ボタン押下
            toolStripButtonThreadList.MouseDown += (sender, e) => ToggleThreadList();

            // 書き込み欄表示ボタン押下
            toolStripButtonWriteField.MouseDown += (sender, e) => ToggleWriteField();

            // 設定ボタン押下
            toolStripButtonSetting.MouseDown += (sender, e) =>
            {
                var view = new ViewerSettingView();
                view.TopMost = TopMost;
                view.ShowDialog();
            };

            // 書き込みボタン押下
            buttonWrite.Click += (sender, e) => viewModel.WriteRes(textBoxName.Text, textBoxMail.Text, textBoxMessage.Text);

            //---------------------------------------------------
            // イベント登録
            //---------------------------------------------------

            viewModel.PropertyChanged += (sender, e) => PropertyChanged(e);

            // 自動更新
            autoUpdateTimer.Tick += (sender, e) => viewModel.UpdateThread();

            // レス書き込み
            textBoxMessage.KeyDown += (sender, e) =>
            {
                if (((e.Modifiers == Keys.Control) && (e.KeyCode == Keys.Enter)) ||
                    ((e.Modifiers == Keys.Shift) && (e.KeyCode == Keys.Enter)))
                {
                    e.SuppressKeyPress = true;
                    viewModel.WriteRes(textBoxName.Text, textBoxMail.Text, textBoxMessage.Text);
                }
            };

            // URL欄キー押下
            textBoxUrl.KeyDown += (sender, e) =>
            {
                if (e.KeyCode == Keys.Enter)
                {
                    viewModel.ChangeUrl(textBoxUrl.Text);
                }
            };

            // スレッド選択変更
            threadListView.SelectedIndexChanged += (sender, e) =>
            {
                if (threadListView.SelectedItems.Count <= 0)
                {
                    return;
                }
                viewModel.ChangeThread(threadListView.Items[threadListView.SelectedItems[0].Index].Tag as string);
            };

            // 起動時に最下位にスクロールする
            toolStripButtonBottom.Checked   = true;
            threadViewer.DocumentCompleted += (sender, e) =>
            {
                threadViewer.DocumentScroll += (sender_, e_) =>
                {
                    // スクロール位置が最上位か
                    toolStripButtonTop.Checked = threadViewer.IsScrollTop;

                    // スクロールイ位置が最下位か
                    toolStripButtonBottom.Checked = threadViewer.IsScrollBottom;
                };
            };

            // 初期化
            Load += (sender, args) =>
            {
                // 起動時にウィンドウサイズを復帰する
                if (ViewerSettings.ReturnSizeOnStart)
                {
                    Width  = ViewerSettings.ReturnSize.Width;
                    Height = ViewerSettings.ReturnSize.Height;
                }

                // ここでやらないとウィンドウ位置が復帰できない?
                // 起動時にウィンドウ位置を復帰する
                if (ViewerSettings.ReturnPositionOnStart)
                {
                    Location = ViewerSettings.ReturnPosition;
                }
            };

            // 終了処理
            FormClosed += (sender, e) =>
            {
                WINDOWPLACEMENT placement;
                Win32API.GetWindowPlacement(Handle, out placement);

                // 終了時の位置とサイズを保存
                if (ViewerSettings.SaveReturnPositionOnClose)
                {
                    ViewerSettings.ReturnPosition = new Point(placement.normalPosition.left,
                                                              placement.normalPosition.top);
                }
                if (ViewerSettings.SaveReturnSizeOnClose)
                {
                    ViewerSettings.ReturnSize = new Size(
                        placement.normalPosition.right - placement.normalPosition.left,
                        placement.normalPosition.bottom - placement.normalPosition.top);
                }
                ViewerSettings.Save();
            };

            // URLの設定
            textBoxUrl.Text = viewModel.ThreadUrl;

            // スレッド一覧更新
            viewModel.UpdateThreadList();
        }