// OpenTween - Client of Twitter // Copyright (c) 2012 kim_upsilon (@kim_upsilon) // All rights reserved. // // This file is part of OpenTween. // // This program is free software; you can redistribute it and/or modify it // under the terms of the GNU General public License as published by the Free // Software Foundation; either version 3 of the License, or (at your option) // any later version. // // This program is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General public License // for more details. // // You should have received a copy of the GNU General public License along // with this program. If not, see , or write to // the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, // Boston, MA 02110-1301, USA. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace OpenTween { /// /// OAuth認証のPINコードの入力を求めるダイアログ /// public partial class AuthDialog : OTBaseForm { public AuthDialog() { InitializeComponent(); // PinTextBox のフォントを OTBaseForm.GlobalFont に変更 this.PinTextBox.Font = this.ReplaceToGlobalFont(this.PinTextBox.Font); } public string AuthUrl { get => AuthLinkLabel.Text; set => AuthLinkLabel.Text = value; } public string Pin { get => PinTextBox.Text.Trim(); set => PinTextBox.Text = value; } private void AuthLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { AuthLinkLabel.LinkVisited = true; try { System.Diagnostics.Process.Start(AuthUrl); } catch (Win32Exception ex) { MessageBox.Show(this, string.Format(Properties.Resources.BrowserStartFailed, ex.ErrorCode), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } /// /// 指定されたURLにユーザーがアクセスするように指示してPINを入力させるだけ /// /// 親ウィンドウ /// 認証URL /// PIN文字列 public static string DoAuth(IWin32Window owner, Uri authUri) { using (var dialog = new AuthDialog()) { dialog.AuthUrl = authUri.AbsoluteUri; dialog.ShowDialog(owner); if (dialog.DialogResult == DialogResult.OK) return dialog.Pin; else return null; } } } }