diff --git a/SparkleShare/Windows/SparkleAbout.cs b/SparkleShare/Windows/SparkleAbout.cs index bdeb41e6..05799377 100644 --- a/SparkleShare/Windows/SparkleAbout.cs +++ b/SparkleShare/Windows/SparkleAbout.cs @@ -45,6 +45,8 @@ namespace SparkleShare { Height = 288; Width = 640; + WindowStartupLocation = WindowStartupLocation.CenterScreen; + Closing += Close; CreateAbout (); @@ -153,8 +155,8 @@ namespace SparkleShare { private void Close (object sender, CancelEventArgs args) { - Controller.WindowClosed (); - args.Cancel = true; + Controller.WindowClosed (); + args.Cancel = true; } } } diff --git a/SparkleShare/Windows/SparkleBubbles.cs b/SparkleShare/Windows/SparkleBubbles.cs index 9c588a7c..bfd87e7e 100644 --- a/SparkleShare/Windows/SparkleBubbles.cs +++ b/SparkleShare/Windows/SparkleBubbles.cs @@ -27,8 +27,8 @@ namespace SparkleShare { public SparkleBubbles () { - Controller.ShowBubbleEvent += delegate (string title, string subtext, - string image_path) { + Controller.ShowBubbleEvent += delegate (string title, + string subtext, string image_path) { SparkleUI.StatusIcon.ShowBalloon (title, subtext, image_path); }; diff --git a/SparkleShare/Windows/SparkleEventLog.cs b/SparkleShare/Windows/SparkleEventLog.cs index f0a10b5b..ed63b6bd 100644 --- a/SparkleShare/Windows/SparkleEventLog.cs +++ b/SparkleShare/Windows/SparkleEventLog.cs @@ -22,6 +22,7 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Imaging; +using System.Windows.Shapes; using System.Windows.Navigation; namespace SparkleShare { @@ -50,18 +51,20 @@ namespace SparkleShare { Height = 640; Width = 480; ResizeMode = ResizeMode.NoResize; - Background = new SolidColorBrush (Colors.WhiteSmoke); + Background = new SolidColorBrush (Color.FromRgb (240, 240, 240)); + + WindowStartupLocation = WindowStartupLocation.CenterScreen; Closing += Close; Label size_label = new Label () { - Content = "Size:", - FontWeight = FontWeights.Bold + Content = "Size:" }; this.size_label_value = new Label () { - Content = Controller.Size + Content = Controller.Size, + FontWeight = FontWeights.Bold }; size_label.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity)); @@ -70,24 +73,31 @@ namespace SparkleShare { Label history_label = new Label () { - Content = "History:", - FontWeight = FontWeights.Bold + Content = "History:" }; this.history_label_value = new Label () { - Content = Controller.HistorySize + Content = Controller.HistorySize, + FontWeight = FontWeights.Bold }; history_label.Measure (new Size (Double.PositiveInfinity, Double.PositiveInfinity)); Rect history_label_rect = new Rect (history_label.DesiredSize); - this.web_browser = new WebBrowser () { - Width = Width - 7, - Height = Height - 48 - 12 + Rectangle line = new Rectangle () { + Width = Width, + Height = 1, + Fill = new SolidColorBrush (Color.FromRgb (223, 223, 223)) }; - this.web_browser.Navigating += delegate(object sender, NavigatingCancelEventArgs e) { + + this.web_browser = new WebBrowser () { + Width = Width - 7, + Height = Height - 36 - 12 + }; + + this.web_browser.Navigating += delegate (object sender, NavigatingCancelEventArgs e) { string url = e.Uri.ToString (); Controller.LinkClicked (url); }; @@ -98,20 +108,25 @@ namespace SparkleShare { this.canvas.Children.Add (size_label); Canvas.SetLeft (size_label, 12); - Canvas.SetTop (size_label, 10); + Canvas.SetTop (size_label, 4); this.canvas.Children.Add (this.size_label_value); Canvas.SetLeft (this.size_label_value, 12 + size_label_rect.Width); - Canvas.SetTop (this.size_label_value, 10); + Canvas.SetTop (this.size_label_value, 4); this.canvas.Children.Add (history_label); Canvas.SetLeft (history_label, 120); - Canvas.SetTop (history_label, 10); + Canvas.SetTop (history_label, 4); this.canvas.Children.Add (this.history_label_value); Canvas.SetLeft (this.history_label_value, 120 + history_label_rect.Width); - Canvas.SetTop (this.history_label_value, 10); + Canvas.SetTop (this.history_label_value, 4); + + + this.canvas.Children.Add (line); + Canvas.SetLeft (line, 0); + Canvas.SetTop (line, 35); Controller.ShowWindowEvent += delegate { @@ -202,7 +217,7 @@ namespace SparkleShare { this.canvas.Children.Add (combo_box); Canvas.SetLeft (this.combo_box, Width - 18 - this.combo_box.Width); - Canvas.SetTop (this.combo_box, 12); + Canvas.SetTop (this.combo_box, 6); } @@ -249,7 +264,7 @@ namespace SparkleShare { if (!this.canvas.Children.Contains (this.web_browser)) { this.canvas.Children.Add (this.web_browser); Canvas.SetLeft (this.web_browser, 0); - Canvas.SetTop (this.web_browser, 48); + Canvas.SetTop (this.web_browser, 36); } }); })); @@ -260,8 +275,8 @@ namespace SparkleShare { private void Close (object sender, CancelEventArgs args) { - Controller.WindowClosed (); - args.Cancel = true; + Controller.WindowClosed (); + args.Cancel = true; } } } diff --git a/SparkleShare/Windows/SparkleSetupWindow.cs b/SparkleShare/Windows/SparkleSetupWindow.cs new file mode 100644 index 00000000..1bfd0bda --- /dev/null +++ b/SparkleShare/Windows/SparkleSetupWindow.cs @@ -0,0 +1,206 @@ +// SparkleShare, a collaboration and sharing tool. +// Copyright (C) 2010 Hylke Bons (hylkebons@gmail.com) +// +// 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 (http://www.gnu.org/licenses/). + + +using System; +using System.ComponentModel; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace SparkleShare { + + public class SparkleSetupWindow : Window { + + private Canvas canvas; + + + + public SparkleSetupWindow () + { + Title = "SparkleShare Setup"; + Width = 640; + Height = 440; + ResizeMode = ResizeMode.NoResize; + Background = new SolidColorBrush (Colors.WhiteSmoke); + + WindowStartupLocation = WindowStartupLocation.CenterScreen; + + Closing += Close; + + + Image image = new Image () { + Width = 150, + Height = 482 + }; + + BitmapImage bitmap_image = new BitmapImage(); + + bitmap_image.BeginInit(); + // TODO: get relative reference to the image + bitmap_image.UriSource = new Uri(@"C:\Users\Hylke\Code\SparkleShare\data\side-splash.png"); + bitmap_image.DecodePixelWidth = 150; + bitmap_image.EndInit(); + + image.Source = bitmap_image; + + + Label size_label = new Label () { + Content = "Welcome to SparkleShare!", + + Foreground = new SolidColorBrush (Color.FromRgb (0, 51, 153)), + FontSize = 16 + + }; + + + + TextBlock history_label_value = new TextBlock () { + Text = "Before we get started, what's your name and email?\n" + + "Don't worry, this information will only visible to any team members.", + TextWrapping = TextWrapping.Wrap, + Width = 375 + }; + + + this.canvas = new Canvas (); + Content = this.canvas; + + this.canvas.Children.Add (size_label); + Canvas.SetLeft (size_label, 180); + Canvas.SetTop (size_label, 18); + + + + this.canvas.Children.Add (history_label_value); + Canvas.SetLeft (history_label_value, 185); + Canvas.SetTop (history_label_value, 60); + + + + + + TextBlock name_label = new TextBlock () { + Text = "Full Name:", + Width = 150, + TextAlignment = TextAlignment.Right, + FontWeight = FontWeights.Bold + }; + + + TextBox name = new TextBox () { + Text = "Hylke Bons", + Width = 175 + }; + + + + TextBlock email_label = new TextBlock () { + Text = "Email:", + Width = 150, + TextAlignment = TextAlignment.Right, + FontWeight = FontWeights.Bold + }; + + TextBox email = new TextBox () { + Text = "hylkebons@gmail.com", + Width = 175 + }; + + canvas.Children.Add (name); + Canvas.SetLeft (name, 340); + Canvas.SetTop (name, 200); + + canvas.Children.Add (name_label); + Canvas.SetLeft (name_label, 180); + Canvas.SetTop (name_label, 200 + 3); + + canvas.Children.Add (email_label); + Canvas.SetLeft (email_label, 180); + Canvas.SetTop (email_label, 230 + 3); + + + canvas.Children.Add (email); + Canvas.SetLeft (email, 340); + Canvas.SetTop (email, 230); + + + + Rectangle rect = new Rectangle () { + Width = Width, + Height = 40, + Fill = new SolidColorBrush (Color.FromRgb (240, 240, 240)) + }; + + Rectangle line = new Rectangle () { + Width = Width, + Height = 1, + Fill = new SolidColorBrush (Color.FromRgb (223, 223, 223)) + }; + + + + + canvas.Children.Add (rect); + Canvas.SetRight (rect, 0); + Canvas.SetBottom (rect, 0); + + canvas.Children.Add (line); + Canvas.SetRight (line, 0); + Canvas.SetBottom (line, 40); + + + Button button = new Button () { + Content = "Continue", + Width = 75, + IsDefault = true + }; + + + canvas.Children.Add (button); + Canvas.SetRight (button, 10); + Canvas.SetBottom (button, 9); + + + CheckBox check_box = new CheckBox () { + Content = "Add SparkleShare to startup items", + IsChecked = true + }; + + + canvas.Children.Add (check_box); + Canvas.SetLeft (check_box, 200); + Canvas.SetBottom (check_box, 12); + + + canvas.Children.Add (image); + Canvas.SetLeft (image, 0); + Canvas.SetBottom (image, 0); + + Show (); + } + + private void Close (object sender, CancelEventArgs args) + { + //Controller.WindowClosed (); + args.Cancel = true; + } + } +} diff --git a/SparkleShare/Windows/SparkleShare.csproj b/SparkleShare/Windows/SparkleShare.csproj index e2aa50f2..44aa85d9 100644 --- a/SparkleShare/Windows/SparkleShare.csproj +++ b/SparkleShare/Windows/SparkleShare.csproj @@ -144,6 +144,7 @@ SparkleEventLogController.cs + diff --git a/SparkleShare/Windows/SparkleUI.cs b/SparkleShare/Windows/SparkleUI.cs index 319d2abd..23fb03be 100644 --- a/SparkleShare/Windows/SparkleUI.cs +++ b/SparkleShare/Windows/SparkleUI.cs @@ -62,7 +62,8 @@ namespace SparkleShare { // Use translations Catalog.Init (Defines.GETTEXT_PACKAGE, Defines.LOCALE_DIR); #endif - + SparkleSetupWindow window = new SparkleSetupWindow (); + Setup = new SparkleSetup (); EventLog = new SparkleEventLog (); About = new SparkleAbout ();