<Window x:Class="Hiyoko.Forms.SettingsForm" x:Name="this"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:c="clr-namespace:Hiyoko"
	xmlns:local="clr-namespace:Hiyoko.Forms"
	Title="設定" SizeToContent="WidthAndHeight"
	ShowInTaskbar="false"
	ResizeMode="NoResize"
	WindowStartupLocation="CenterOwner"
	Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
	FontSize="12">
	<Window.Resources>
		<ResourceDictionary>
			<ResourceDictionary.MergedDictionaries>
				<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
			</ResourceDictionary.MergedDictionaries>
			
			<c:ApplicationSettings x:Key="ApplicationSettings" />
			<Style TargetType="{x:Type TextBox}">
				<Setter Property="Validation.ErrorTemplate">
					<Setter.Value>
						<ControlTemplate>
							<DockPanel LastChildFill="True">
								<Border BorderBrush="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
									Background="{DynamicResource {x:Static SystemColors.InfoBrushKey}}"
									BorderThickness="1" DockPanel.Dock="Bottom">
									<TextBlock Text="{Binding ElementName=MyAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}" />
								</Border>
								<AdornedElementPlaceholder Name="MyAdorner" />
							</DockPanel>
						</ControlTemplate>
					</Setter.Value>
				</Setter>
				<Setter Property="local:TextBoxBehaviors.IsSelectAllOnFocus" Value="true" />
			</Style>
		</ResourceDictionary>
	</Window.Resources>
	<Window.CommandBindings>
		<CommandBinding Command="ApplicationCommands.Close" Executed="Close_Execute" CanExecute="Close_CanExecute"/>
		<CommandBinding Command="ApplicationCommands.Save" Executed="Save_Execute" CanExecute="Save_CanExecute"/>
		<CommandBinding Command="ApplicationCommands.Undo" Executed="Reset_Execute" CanExecute="Reset_CanExecute"/>
	</Window.CommandBindings>
	<Grid>
		<Grid.RowDefinitions>
			<RowDefinition Height="480" />
			<RowDefinition Height="auto" />
		</Grid.RowDefinitions>
		
		<TabControl Grid.Row="0" Width="480">
			<TabItem Header="OAuth認証">
				<StackPanel Orientation="Vertical" Margin="4">
					<TextBlock Margin="4" Text="本ソフトの使用にはOAuthによるあなたの認証が必要です。" FontWeight="Bold" />
					<Label Margin="4"><TextBlock Text="手順1: 下のボタンを押すとウェブブラウザでTwitterの認証画面が開かれます。" TextWrapping="Wrap"/></Label>
					<Button Margin="4" Padding="8" Click="OpenAuthPageClick"><AccessText Text="認証画面を開く(_O)" /></Button>
					<Label Margin="4"><TextBlock Text="手順2: Twitterにログインされていない場合はログインし、本ソフトによるTwitterアカウントの使用を許可する場合は「許可する」ボタンを押してください。" TextWrapping="Wrap"/></Label>
					<Label Margin="4"><TextBlock Text="手順3: 表示された認証番号を下欄に入力してください。" TextWrapping="Wrap"/></Label>
					<TextBox Name="accessTokenVerifierEdit" Margin="4" Text=""></TextBox>
					<Label Margin="4"><TextBlock Text="手順4: 認証番号を入力後、下のボタンを押して認証を完了してください。" TextWrapping="Wrap"/></Label>
					<Button Margin="4" Padding="8" Name="authRequestTokenButton" Click="AuthRequestTokenClick" IsEnabled="false"><AccessText Text="認証する(_A)" /></Button>
					<TextBlock Margin="8" Text="認証が成功した以降は有効期限が切れるまで認証し直す必要はありません。" TextWrapping="Wrap" />
				</StackPanel>
			</TabItem>
			<TabItem Header="アプリケーション">
				<StackPanel Orientation="Vertical" Margin="4">
					<CheckBox Name="isResidentBox" Margin="4" IsChecked="{Binding Path=IsResident, UpdateSourceTrigger=PropertyChanged}"><AccessText Text="常駐する(_R)" /></CheckBox>
					<GroupBox Margin="4">
						<GroupBox.Header>
							<Label Target="{Binding ElementName=startupScriptPathEdit}">スタートアップスクリプト(_S):</Label>
						</GroupBox.Header>
						<Grid Margin="4,0,4,4">
							<Grid.ColumnDefinitions>
								<ColumnDefinition Width="*" />
								<ColumnDefinition Width="auto" />
							</Grid.ColumnDefinitions>
							<TextBox Name="startupScriptPathEdit" Grid.Column="0" Text="{Binding Path=StartupScriptPath, UpdateSourceTrigger=PropertyChanged}"></TextBox>
							<Button Grid.Column="1" Click="OpenStartupScriptPath"><TextBlock Text="..." /></Button>
						</Grid>
					</GroupBox>
				</StackPanel>
			</TabItem>
			<!--<TabItem Header="通信">
				<StackPanel Orientation="Vertical" Margin="4">
					<CheckBox Margin="4" IsChecked="{Binding Path=IsUseWebProxy, UpdateSourceTrigger=PropertyChanged}"><AccessText Text="通信にプロクシを使用する(_U)" /></CheckBox>
					<Label Margin="4,4,4,0" Target="{Binding ElementName=webProxyUriEdit}">プロキシ(_P):</Label>
					<TextBox Name="webProxyUriEdit">
						<TextBox.Text>
							<Binding Path="WebProxyUri" UpdateSourceTrigger="PropertyChanged">
								<Binding.ValidationRules>
									<ExceptionValidationRule />
								</Binding.ValidationRules>
							</Binding>
						</TextBox.Text>
					</TextBox>
				</StackPanel>
			</TabItem>-->
			<TabItem Header="タイムライン">
				<StackPanel Orientation="Vertical" Margin="4">
					<CheckBox Name="isAutoRefreshTimelineBox" Margin="4,4,4,0" IsChecked="{Binding Path=IsAutoRefreshTimeline, UpdateSourceTrigger=PropertyChanged}">
						<AccessText Text="タイムラインを自動取得する(_A)" /></CheckBox>
					<TextBlock Margin="4,0,4,4" Text="※取得間隔はタイムラインから60秒以上の範囲で自動的に算出されます。" TextWrapping="Wrap" />
					<!--<Label Margin="4,4,4,0">タイムライン自動取得間隔(_I):</Label>
					<TextBox Name="autoRefreshTimelineIntervalEdit" Margin="4,0,4,4" Text="{Binding Path=AutoRefreshTimelineInterval, UpdateSourceTrigger=PropertyChanged}"></TextBox>-->
					<GroupBox Margin="4">
						<GroupBox.Header>
							<Label Target="{Binding ElementName=timelineCountEdit}">タイムライン取得件数(_C): 1～200件</Label>
						</GroupBox.Header>
						<TextBox Name="timelineCountEdit" Margin="4,0,4,4">
							<TextBox.Text>
								<Binding Path="TimelineCount" UpdateSourceTrigger="PropertyChanged">
									<Binding.ValidationRules>
										<local:Int32RangeRule Min="1" Max="200" />
									</Binding.ValidationRules>
								</Binding>
							</TextBox.Text>
						</TextBox>
					</GroupBox>
				</StackPanel>
			</TabItem>
			<TabItem Header="外観">
				<StackPanel Orientation="Vertical" Margin="4">
					<GroupBox>
						<GroupBox.Header>
							<Label Target="{Binding ElementName=dateTimeFormatEdit}">
								<StackPanel Orientation="Vertical">
									<AccessText Text="日時フォーマット(_F):" />
									<local:LinkText OpenUri="http://msdn.microsoft.com/ja-jp/library/8kb3ddd4.aspx" Text="カスタムの日付と時刻の書式指定文字列" />
								</StackPanel>
							</Label>
						</GroupBox.Header>
						<TextBox Name="dateTimeFormatEdit" Margin="4,0,4,4">
							<TextBox.Text>
								<Binding Path="DateTimeFormat" UpdateSourceTrigger="PropertyChanged">
									<Binding.ValidationRules>
										<ExceptionValidationRule />
									</Binding.ValidationRules>
								</Binding>
							</TextBox.Text>
						</TextBox>
					</GroupBox>
					
					<GroupBox>
						<GroupBox.Header>
							<Label Target="{Binding ElementName=outputItemLimitCountEdit}">アウトプットの最大行数(_O): 1以上</Label>
						</GroupBox.Header>
						<TextBox Name="outputItemLimitCountEdit" Margin="4,0,4,4">
							<TextBox.Text>
								<Binding Path="OutputItemLimitCount" UpdateSourceTrigger="PropertyChanged">
									<Binding.ValidationRules>
										<local:Int32RangeRule Min="1" />
									</Binding.ValidationRules>
								</Binding>
							</TextBox.Text>
						</TextBox>
					</GroupBox>
				</StackPanel>
			</TabItem>
			<TabItem Header="URL短縮">
				<StackPanel Orientation="Vertical" Margin="4">
					<GroupBox Header="bit.ly">
						<StackPanel Orientation="Vertical">
							<Label Margin="4,4,4,0" Target="{Binding ElementName=bitlyLoginNameEdit}">_Login:</Label>
							<TextBox Margin="4,0,4,4" Name="bitlyLoginNameEdit" Text="{Binding Path=BitlyLogin, UpdateSourceTrigger=PropertyChanged}" />
							<Label Margin="4,4,4,0"  Target="{Binding ElementName=bitlyApiKeyEdit}">API _Key:</Label>
							<TextBox Margin="4,0,4,4" Name="bitlyApiKeyEdit" Text="{Binding Path=BitlyApiKey, UpdateSourceTrigger=PropertyChanged}" />
							<local:LinkText Margin="4"  OpenUri="http://bit.ly/account/your_api_key/" Text="Your API Key" />
						</StackPanel>
					</GroupBox>
				</StackPanel>
			</TabItem>
			<TabItem Header="アップロード">
				<StackPanel Orientation="Vertical" Margin="4">
					<GroupBox Header="Twitpic">
						<StackPanel Orientation="Vertical">
							<Label Margin="4,4,4,0" Target="{Binding ElementName=twitpicUsernameEdit}">ユーザー名(_U):</Label>
							<TextBox Margin="4,0,4,4" Name="twitpicUsernameEdit" Text="{Binding Path=TwitpicUsername, UpdateSourceTrigger=PropertyChanged}" />
							<Label Margin="4,4,4,0"  Target="{Binding ElementName=twitpicPasswordEdit}">パスワード(_P):</Label>
							<PasswordBox Margin="4,0,4,4" Name="twitpicPasswordEdit" />
							<local:LinkText Margin="4"  OpenUri="http://twitpic.com" Text="Twitpic.com" />
						</StackPanel>
					</GroupBox>
				</StackPanel>
			</TabItem>
		</TabControl>
		
		<Grid Grid.Row="1">
			<Grid.ColumnDefinitions>
				<ColumnDefinition Width="auto" />
				<ColumnDefinition Width="*" />
				<ColumnDefinition Width="auto" />
				<ColumnDefinition Width="auto" />
			</Grid.ColumnDefinitions>
			<Button Grid.Column="0" Margin="4" Padding="4,4,4,4" Command="ApplicationCommands.Undo"><AccessText Text="初期化(_R)" /></Button>
			<Button Grid.Column="2" IsDefault="true" Margin="4" Padding="8,4,8,4" Command="ApplicationCommands.Save"><AccessText Text="_OK" /></Button>
			<Button Grid.Column="3" IsCancel="true"  Margin="4" Padding="8,4,8,4" Command="ApplicationCommands.Close"><AccessText Text="キャンセル(_C)" /></Button>
		</Grid>
	</Grid>
</Window>
