diff --git a/program/MainWindow.cs b/program/MainWindow.cs
index 0af3392..a684f73 100644
--- a/program/MainWindow.cs
+++ b/program/MainWindow.cs
@@ -4,9 +4,18 @@
using System.IO;
using Gtk;
using UI = Gtk.Builder.ObjectAttribute;
+using System.Runtime.InteropServices;
public class MainWindow : Window
{
+
+ // ---- stack + pages (new all-in-one glade) ----
+ [UI] private Notebook RootNoteBook = null;
+
+ private const int PageSplash = 0;
+ private const int PageSettings = 1;
+
+ // ---- splash page widgets ----
[UI] private Button Option1Button = null;
[UI] private Button Option2Button = null;
[UI] private Button Option3Button = null;
@@ -39,11 +48,11 @@
private static Builder CreateBuilder()
{
var builder = new Builder();
- builder.AddFromFile("homepage.glade");
+ builder.AddFromFile("homepageall.glade");
return builder;
}
- private MainWindow(Builder builder) : base(builder.GetObject("SplashWindow").Handle)
+ private MainWindow(Builder builder) : base(builder.GetObject("Root").Handle)
{
builder.Autoconnect(this);
@@ -55,6 +64,10 @@
this.Fullscreen();
+ // RootStack.TransitionType = StackTransitionType.None;
+ // RootStack.TransitionType = StackTransitionType.SlideLeftRight;
+ // RootStack.TransitionDuration = 150;
+
Option1Button.Clicked += OnNormalSessionClicked;
Option2Button.Clicked += OnPositionRecordingClicked;
Option3Button.Clicked += OnExamModeClicked;
@@ -86,6 +99,14 @@
_Language = new Language(_buttonsById,LanguageLabel);
_Language.ApplyLanguage(LanguageSwitch.Active);
+
+ _settingsWindow = new SettingsWindow(builder, _arduino);
+ _settingsWindow.BackRequested += OnSettingsClosed;
+
+ RootNoteBook.ShowTabs = false;
+ RootNoteBook.ShowBorder = false;
+ RootNoteBook.CurrentPage = PageSplash;
+
OnArduinoConnectionChanged(false);
}
@@ -93,25 +114,28 @@
private void OnSettingClicked(object sender, EventArgs e)
{
- if (_settingsWindow == null)
- {
- _settingsWindow = new SettingsWindow(_arduino);
- _settingsWindow.BackRequested += OnSettingsClosed;
- _settingsWindow.ShowAll(); // build it fullscreen once, up front
- _settingsWindow.Fullscreen();
- }
+ // if (_settingsWindow == null)
+ // {
+ // // _settingsWindow = new SettingsWindow(_arduino);
+ // // _settingsWindow.BackRequested += OnSettingsClosed;
+ // // _settingsWindow.ShowAll(); // build it fullscreen once, up front
+ // // _settingsWindow.Fullscreen();
+ // RootNoteBook.CurrentPage = PageSettings;
+ // }
- _settingsWindow.ShowAll();
- _settingsWindow.Present();
- this.Hide();
+ // _settingsWindow.ShowAll();
+ // _settingsWindow.Present();
+ // this.Hide();
+ RootNoteBook.CurrentPage = PageSettings;
}
private void OnSettingsClosed(object sender, EventArgs e)
{
- this.ShowAll();
- this.Present();
- _settingsWindow.Hide();
+ // this.ShowAll();
+ // this.Present();
+ // _settingsWindow.Hide();
+ RootNoteBook.CurrentPage = PageSplash;
}
private void OnArduinoConnectionChanged(bool connected)
@@ -232,7 +256,7 @@
{
_arduino.Disconnect();
_arduino.Dispose();
- _settingsWindow?.Destroy();
+ // _settingsWindow?.Destroy();
Application.Quit();
}
diff --git a/program/SettingWindow.cs b/program/SettingWindow.cs
index 2d94a53..644495c 100644
--- a/program/SettingWindow.cs
+++ b/program/SettingWindow.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
using UI = Gtk.Builder.ObjectAttribute;
-public class SettingsWindow : Window
+public class SettingsWindow
{
[UI] private Label ComPortLabel = null;
[UI] private ComboBoxText ComPortComboBox = null;
@@ -27,23 +27,13 @@
/// Raised after the window hides itself, so the caller can re-show the main window.
public event EventHandler BackRequested;
- public SettingsWindow(ArduinoConnection arduino)
- : this(CreateBuilder(), arduino) { }
- private static Builder CreateBuilder()
- {
- var builder = new Builder();
- builder.AddFromFile("homepage.glade");
- return builder;
- }
-
- private SettingsWindow(Builder builder, ArduinoConnection arduino)
- : base(builder.GetObject("SettingWindow").Handle)
+ public SettingsWindow(Builder builder, ArduinoConnection arduino)
{
builder.Autoconnect(this);
_arduino = arduino;
- Title = "Settings";
+ // Title = "Settings";
ComPortLabel.Text = "COM Port";
LogLabel.Text = "Log";
LogtextBox.Editable = false;
@@ -54,7 +44,7 @@
AutoConnectButton.Clicked += OnAutoConnectClicked;
BackButton.Clicked += OnBackClicked;
- DeleteEvent += (o, a) => { a.RetVal = true; OnBackClicked(o, EventArgs.Empty); };
+ // DeleteEvent += (o, a) => { a.RetVal = true; OnBackClicked(o, EventArgs.Empty); };
_arduino.Log += AppendLog;
_arduino.LineReceived += OnLineReceived;
@@ -142,7 +132,7 @@
private void OnBackClicked(object sender, EventArgs e)
{
- Hide();
+ // Hide();
BackRequested?.Invoke(this, EventArgs.Empty);
}
diff --git a/program/homepageall.glade b/program/homepageall.glade
new file mode 100644
index 0000000..b591320
--- /dev/null
+++ b/program/homepageall.glade
@@ -0,0 +1,353 @@
+
+
+
+
+
+