Click here to Skip to main content
15,891,976 members
Articles / Desktop Programming / WPF

GoalBook - A Hybrid Smart Client

Rate me:
Please Sign up or sign in to vote.
4.86/5 (24 votes)
25 Sep 2009CPOL10 min read 79.4K   834   69  
A WPF hybrid smart client that synchronises your goals with the Toodledo online To-do service.
<UserControl x:Class="GoalBook.Notes.Views.NotesDialogView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Background="White"
    TabIndex="0"
    Loaded="UserControl_Loaded">	
	<Grid Margin="10" Height="Auto" Width="Auto">
		<Grid.ColumnDefinitions>
			<ColumnDefinition Width="185"></ColumnDefinition>			
			<ColumnDefinition Width="120"></ColumnDefinition>
			<ColumnDefinition Width="*"></ColumnDefinition>
		</Grid.ColumnDefinitions>
		<Grid.RowDefinitions>
			<RowDefinition Height="28"></RowDefinition>
			<RowDefinition Height="*"></RowDefinition>					
		</Grid.RowDefinitions>			
		<TextBox Name="textBoxTitle" 
			Margin="2" 
			Grid.Row="0" 
			Grid.Column="0" 
			MaxLength="255"
			TabIndex="0"
			Text="{Binding Path=EditNote.Title, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />			
		<ComboBox Name="comboBoxFolder" 
			Margin="4,2,0,2" 
			Grid.Column="1" 
			ItemsSource="{Binding Path=FolderList}" 
			Width="115" 
			DisplayMemberPath="Value" 
			SelectedValuePath="Key"
			TabIndex="1" 
			HorizontalAlignment="Left"  
			SelectedValue="{Binding Path=EditNote.FolderID}" />				
		<ToolBar Margin="0,0,2,0" Grid.Row="0" Grid.Column="2" KeyboardNavigation.TabNavigation="None" TabIndex="2">
			<Button Name="buttonCut" 
				ToolTip="{Binding CutCommandInfo.Title}"
				Command="{Binding CutCommand}"
				CommandParameter="{Binding CutCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding CutCommandInfo.IconUri}" />
			</Button>
			<Button Name="buttonCopy" 
				ToolTip="{Binding CopyCommandInfo.Title}"
				Command="{Binding CopyCommand}"
				CommandParameter="{Binding CopyCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding CopyCommandInfo.IconUri}" />
			</Button>
			<Button Name="buttonPaste"
				ToolTip="{Binding PasteCommandInfo.Title}"
				Command="{Binding PasteCommand}"
				CommandParameter="{Binding PasteCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding PasteCommandInfo.IconUri}" />
			</Button>
			<Separator></Separator>
			<Button Name="buttonUndo" 
				ToolTip="{Binding UndoCommandInfo.Title}"
				Command="{Binding UndoCommand}"
				CommandParameter="{Binding UndoCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding UndoCommandInfo.IconUri}" />
			</Button>
			<Button Name="buttonRedo" 
				ToolTip="{Binding RedoCommandInfo.Title}"
				Command="{Binding RedoCommand}"
				CommandParameter="{Binding RedoCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding RedoCommandInfo.IconUri}" />
			</Button>
			<Separator></Separator>
			<Button Name="buttonBold" 
				ToolTip="{Binding BoldCommandInfo.Title}"
				Command="{Binding BoldCommand}"
				CommandParameter="{Binding BoldCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding BoldCommandInfo.IconUri}" />							
			</Button>
			<Button Name="buttonItalic" 
				ToolTip="{Binding ItalicCommandInfo.Title}"
				Command="{Binding ItalicCommand}"
				CommandParameter="{Binding ItalicCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding ItalicCommandInfo.IconUri}" />
			</Button>
			<Separator></Separator>
			<Button Name="buttonLink"
				ToolTip="{Binding LinkCommandInfo.Title}"
				Command="{Binding LinkCommand}"
				CommandParameter="{Binding LinkCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding LinkCommandInfo.IconUri}" />
			</Button>
			<Separator></Separator>
			<Button Name="buttonOrderedList" 
				ToolTip="{Binding OrderedListCommandInfo.Title}"
				Command="{Binding OrderedListCommand}"
				CommandParameter="{Binding OrderedListCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding OrderedListCommandInfo.IconUri}" />
			</Button>
			<Button Name="buttonUnorderedList" 
				ToolTip="{Binding UnorderedListCommandInfo.Title}"
				Command="{Binding UnorderedListCommand}"
				CommandParameter="{Binding UnorderedListCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding UnorderedListCommandInfo.IconUri}" />
			</Button>
			<Button Name="buttonIndent" Visibility="Collapsed"
				ToolTip="{Binding IndentCommandInfo.Title}"
				Command="{Binding IndentCommand}"
				CommandParameter="{Binding IndentCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding IndentCommandInfo.IconUri}" />
			</Button>
			<Button Name="buttonOutdent" Visibility="Collapsed"
				ToolTip="{Binding OutdentCommandInfo.Title}"
				Command="{Binding OutdentCommand}"
				CommandParameter="{Binding OutdentCommandInfo}">
				<Image Height="16" Width="16" Source="{Binding OutdentCommandInfo.IconUri}" />
			</Button>
		</ToolBar>
		<RichTextBox Name="noteEditor" 			
			TabIndex="3" 
			AcceptsTab="False"
			Margin="2,4,2,2" 
			Grid.Row="1" 
			Grid.Column="0" 
			Grid.ColumnSpan="3" 
			IsDocumentEnabled="True"
			SpellCheck.IsEnabled="False"
			ScrollViewer.VerticalScrollBarVisibility="Visible"
			PreviewKeyDown="NoteEditor_PreviewKeyDown"
			KeyDown="NoteEditor_KeyDown" 
			TextChanged="NoteEditor_TextChanged" 			
			GotFocus="NoteEditor_FocusChanged"	 
			LostFocus="NoteEditor_FocusChanged"
			SelectionChanged="NoteEditor_SelectionChanged" 
			PreviewMouseRightButtonUp="NoteEditor_PreviewMouseRightButtonUp">			
		</RichTextBox>
	</Grid>
</UserControl>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Australia Australia
I've been working as a software developer since 2000 and hold a Bachelor of Business degree from The Open Polytechnic of New Zealand. Computers are for people and I aim to build applications for people that they would want to use.

Comments and Discussions