setup: add tutorial pages

This commit is contained in:
Hylke Bons 2011-09-13 02:05:45 +02:00
parent d29aea417d
commit 6bc84a34cc
2 changed files with 140 additions and 6 deletions

View file

@ -425,6 +425,104 @@ namespace SparkleShare {
AddButton (open_folder_button);
AddButton (finish_button);
break;
}
case PageType.Tutorial: {
switch (Controller.TutorialPageNumber) {
case 1: {
Header = _("What's next?");
Description = _(@"SparkleShare creates a special folder on your computer
that will keep track of your projects.");
Button skip_tutorial_button = new Button (_("Skip Tutorial"));
skip_tutorial_button.Clicked += delegate {
// Controller.TutorialSkipped ();
};
Button continue_button = new Button (_("Continue"));
continue_button.Clicked += delegate {
Controller.TutorialPageCompleted ();
};
// Add (null); TODO image Controller.TutorialPageNumber
AddButton (skip_tutorial_button);
AddButton (continue_button);
break;
}
case 2: {
Header = _("Adding files");
Description = _(@"All files added to your project folders are synced with the host
automatically, as well as with all of your collaborators.");
Button continue_button = new Button (_("Continue"));
continue_button.Clicked += delegate {
Controller.TutorialPageCompleted ();
};
// Add (null); TODO image Controller.TutorialPageNumber
AddButton (continue_button);
break;
}
case 3: {
Header = _("The status icon");
Description = _(@"All files added to your project folders are synced with the host
automatically, as well as with all of your collaborators.");
Button continue_button = new Button (_("Continue"));
continue_button.Clicked += delegate {
Controller.TutorialPageCompleted ();
};
// Add (null); TODO image Controller.TutorialPageNumber
AddButton (continue_button);
break;
}
case 4: {
Header = _("Adding Projects");
Description = _(@"Whenever you see this button on a website, just click it,
and the project will be immediately added to SparkleShare:");
Button continue_button = new Button (_("Continue"));
continue_button.Clicked += delegate {
Controller.TutorialPageCompleted ();
};
Label label = new Label (_(@"…or click the status icon and select Add Project…
to manually add a project."));
// Add (null); TODO image Controller.TutorialPageNumber
Button add_project_button = new Button (_("Add Project…"));
add_project_button.Clicked += delegate {
Controller.TutorialPageCompleted ();
};
Button finish_button = new Button (_("Finish"));
finish_button.Clicked += delegate {
Close ();
};
AddButton (add_project_button);
AddButton (finish_button);
break;
}
}
break;
}
}

View file

@ -25,7 +25,8 @@ namespace SparkleShare {
Add,
Syncing,
Error,
Finished
Finished,
Tutorial
}
@ -37,6 +38,13 @@ namespace SparkleShare {
public event UpdateProgressBarEventHandler UpdateProgressBarEvent;
public delegate void UpdateProgressBarEventHandler (double percentage);
public int TutorialPageNumber {
get {
return this.tutorial_page_number;
}
}
public string PreviousUrl {
get {
return this.previous_url;
@ -67,12 +75,15 @@ namespace SparkleShare {
}
}
private string previous_server = "";
private string previous_folder = "";
private string previous_url = "";
private string syncing_folder = "";
private string previous_server = "";
private string previous_folder = "";
private string previous_url = "";
private string syncing_folder = "";
private int tutorial_page_number = 1;
private PageType previous_page;
public SparkleSetupController ()
{
ChangePageEvent += delegate (PageType page) {
@ -104,7 +115,32 @@ namespace SparkleShare {
Program.Controller.UpdateState ();
if (ChangePageEvent != null)
ChangePageEvent (PageType.Add);
ChangePageEvent (PageType.Tutorial);
}
public void TutorialPageCompleted ()
{
if (this.tutorial_page_number == 4) {
if (ChangePageEvent != null)
ChangePageEvent (PageType.Add);
} else {
this.tutorial_page_number++;
}
if (ChangePageEvent != null)
ChangePageEvent (PageType.Tutorial);
}
public void TutorialSkipped ()
{
this.tutorial_page_number = 4;
if (ChangePageEvent != null)
ChangePageEvent (PageType.Tutorial);
}