Esempio n. 1
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();
        }
Esempio n. 2
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;
				}
				splitContainerWriteField.SplitterDistance = ViewerSettings.WriteFieldDistance;
			};

			// 終了処理
			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.WriteFieldDistance = splitContainerWriteField.SplitterDistance;
				ViewerSettings.Save();
			};

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

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