diff --git a/FSharpExample/FSharpExample.fsproj b/FSharpExample/FSharpExample.fsproj
index d251896a4..47229e3f5 100644
--- a/FSharpExample/FSharpExample.fsproj
+++ b/FSharpExample/FSharpExample.fsproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.0
+ netcoreapp3.1
@@ -14,7 +14,7 @@
-
+
diff --git a/FSharpExample/Program.fs b/FSharpExample/Program.fs
index 62202bd22..f6f4d2462 100644
--- a/FSharpExample/Program.fs
+++ b/FSharpExample/Program.fs
@@ -16,30 +16,30 @@ type Demo() = class end
let mutable menuKeysStyle = Unchecked.defaultof
let mutable menuAutoMouseNav = Unchecked.defaultof
- type Box10x() =
- inherit View()
- member val w = 40 with get, set
- member val h = 50 with get, set
+ type Box10x(x : int, y : int) =
+ inherit View(new Rect(x, y, 20, 10))
+ let w = 40
+ let h = 50
member val WantCursorPosition = Unchecked.defaultof with get, set
- new(x : int, y : int) as this =
+ new() as _this =
(Box10x())
then
()
member this.GetContentSize() =
- new Size(this.w, this.h)
+ new Size(w, h)
member this.SetCursorPosition(pos : Point) =
raise (new NotImplementedException())
override this.Redraw(region : Rect) =
Application.Driver.SetAttribute (Application.Current.ColorScheme.Focus)
do
let mutable (y : int) = 0
- while (y < this.h) do
+ while (y < h) do
this.Move (0, y)
Application.Driver.AddStr (ustr (y.ToString()))
do
let mutable (x : int) = 0
- while (x < this.w - (y.ToString ()).Length) do
- if (y.ToString ()).Length < this.w
+ while (x < w - (y.ToString ()).Length) do
+ if (y.ToString ()).Length < w
then Application.Driver.AddStr (ustr " ")
x <- x + 1
x
@@ -47,9 +47,9 @@ type Demo() = class end
y
()
- type Filler() =
- inherit View()
- new(rect : Rect) as this =
+ type Filler(rect : Rect) =
+ inherit View(rect)
+ new() as _this =
(Filler ())
then
()
@@ -153,8 +153,8 @@ type Demo() = class end
),
scrollView, scrollView2, tf,
new Button(10, 19, ustr "Cancel"),
- new TimeField(3, 20, DateTime.Now),
- new TimeField(23, 20, DateTime.Now, true),
+ new TimeField(3, 20, DateTime.Now.TimeOfDay),
+ new TimeField(23, 20, DateTime.Now.TimeOfDay, true),
new DateField(3, 22, DateTime.Now),
new DateField(23, 22, DateTime.Now, true),
progress,
@@ -164,6 +164,7 @@ type Demo() = class end
)
container.SendSubviewToBack (tf)
()
+
let NewFile() =
let mutable d = new Dialog (ustr "New File", 50, 20,
new Button (ustr "Ok", true, Clicked = Action(Application.RequestStop)),
@@ -202,18 +203,18 @@ type Demo() = class end
Application.Run (ntop)
let Quit() =
- let mutable n = MessageBox.Query (50, 7, "Quit Demo", "Are you sure you want to quit this demo?", "Yes", "No")
+ let mutable n = MessageBox.Query (50, 7, ustr "Quit Demo", ustr "Are you sure you want to quit this demo?", ustr "Yes", ustr "No")
n = 0
let Close() =
- MessageBox.ErrorQuery (50, 7, "Error", "There is nothing to close", "Ok")
+ MessageBox.ErrorQuery (50, 7, ustr "Error", ustr "There is nothing to close", ustr "Ok")
|> ignore
let Open() =
let mutable d = new OpenDialog (ustr "Open", ustr "Open a file", AllowsMultipleSelection = true)
Application.Run (d)
if not d.Canceled
- then MessageBox.Query (50, 7, "Selected File", (String.Join (", ", d.FilePaths)), "Ok") |> ignore
+ then MessageBox.Query (50, 7, ustr "Selected File", ustr (String.Join (", ", d.FilePaths)), ustr "Ok") |> ignore
let ShowHex(top : Toplevel) =
let mutable tframe = top.Frame
@@ -255,14 +256,14 @@ type Demo() = class end
let mutable (flags : BindingFlags) = BindingFlags.Public ||| BindingFlags.Static
let mutable (minfo : MethodInfo) = typeof.GetMethod ("Instance", flags)
let mutable (mid : Delegate) = Delegate.CreateDelegate (typeof, minfo)
- MessageBox.Query (70, 7, (mi.Title.ToString ()),
- ((sprintf "%O selected. Is from submenu: %O" (mi.Title.ToString ())) (mi.GetMenuBarItem ())), "Ok")
+ MessageBox.Query (70, 7, ustr (mi.Title.ToString ()),
+ ustr ((sprintf "%O selected. Is from submenu: %O" (mi.Title.ToString ())) (mi.GetMenuBarItem ())), ustr "Ok")
|> ignore
- let MenuKeysStyle_Toggled(e : EventArgs) =
+ let MenuKeysStyle_Toggled(e : bool) =
menu.UseKeysUpDownAsKeysLeftRight <- menuKeysStyle.Checked
- let MenuAutoMouseNav_Toggled(e : EventArgs) =
+ let MenuAutoMouseNav_Toggled(e : bool) =
menu.WantMousePositionReports <- menuAutoMouseNav.Checked
let Copy() =
@@ -284,7 +285,15 @@ type Demo() = class end
()
let Help() =
- MessageBox.Query (50, 7, "Help", "This is a small help\nBe kind.", "Ok")
+ MessageBox.Query (50, 7, ustr "Help", ustr "This is a small help\nBe kind.", ustr "Ok")
+ |> ignore
+
+ let Load () =
+ MessageBox.Query (50, 7, ustr "Load", ustr "This is a small load\nBe kind.", ustr "Ok")
+ |> ignore
+
+ let Save () =
+ MessageBox.Query (50, 7, ustr "Save ", ustr "This is a small save\nBe kind.", ustr "Ok")
|> ignore
let ListSelectionDemo(multiple : System.Boolean) =
@@ -319,7 +328,7 @@ type Demo() = class end
i <- i + 1
i
()
- MessageBox.Query (60, 10, "Selected Animals", (if result = "" then "No animals selected" else result), "Ok") |> ignore
+ MessageBox.Query (60, 10, ustr "Selected Animals", ustr (if result = "" then "No animals selected" else result), ustr "Ok") |> ignore
let OnKeyDownPressUpDemo() =
let mutable container = new Dialog (ustr "KeyDown & KeyPress & KeyUp demo", 80, 20,
@@ -347,9 +356,9 @@ type Demo() = class end
list.Add (keyEvent.ToString ())
listView.MoveDown ();
- container.KeyDown.Add(fun (e : View.KeyEventEventArgs) -> KeyDownPressUp (e.KeyEvent, "Down") |> ignore)
- container.KeyPress.Add(fun (e : View.KeyEventEventArgs) -> KeyDownPressUp (e.KeyEvent, "Press") |> ignore)
- container.KeyUp.Add(fun (e : View.KeyEventEventArgs) -> KeyDownPressUp (e.KeyEvent, "Up") |> ignore)
+ container.KeyDown <- Action (fun (e : View.KeyEventEventArgs) -> KeyDownPressUp (e.KeyEvent, "Down") |> ignore)
+ container.KeyPress <- Action (fun (e : View.KeyEventEventArgs) -> KeyDownPressUp (e.KeyEvent, "Press") |> ignore)
+ container.KeyUp <- Action (fun (e : View.KeyEventEventArgs) -> KeyDownPressUp (e.KeyEvent, "Up") |> ignore)
Application.Run (container)
let Main() =
@@ -395,11 +404,11 @@ type Demo() = class end
[|new MenuItem(ustr "SubMenu1Item_1", new MenuBarItem([|new MenuItem(ustr "SubMenu2Item_1",
new MenuBarItem([|new MenuItem(ustr "SubMenu3Item_1", new MenuBarItem([|(menuItems.[2])|]))|]))|]))|]);
new MenuBarItem(ustr "_About...", "Demonstrates top-level menu item",
- (fun () -> MessageBox.ErrorQuery (50, 7, "About Demo", "This is a demo app for gui.cs", "Ok") |> ignore))|])
+ (fun () -> MessageBox.ErrorQuery (50, 7, ustr "About Demo", ustr "This is a demo app for gui.cs", ustr "Ok") |> ignore))|])
menuKeysStyle <- new CheckBox(3, 25, ustr "UseKeysUpDownAsKeysLeftRight", true)
- menuKeysStyle.Toggled.Add(MenuKeysStyle_Toggled)
+ menuKeysStyle.Toggled <- Action (MenuKeysStyle_Toggled)
menuAutoMouseNav <- new CheckBox(40, 25, ustr "UseMenuAutoNavigation", true)
- menuAutoMouseNav.Toggled.Add(MenuAutoMouseNav_Toggled)
+ menuAutoMouseNav.Toggled <- Action (MenuAutoMouseNav_Toggled)
ShowEntries (win)
let mutable (count : int) = 0
ml <- new Label(new Rect(3, 17, 47, 1), ustr "Mouse: ")
@@ -422,8 +431,8 @@ type Demo() = class end
)
let mutable statusBar = new StatusBar ([|
new StatusItem(Key.F1, ustr "~F1~ Help", Action(Help));
- new StatusItem(Key.F2, ustr "~F2~ Load", null);
- new StatusItem(Key.F3, ustr "~F3~ Save", null);
+ new StatusItem(Key.F2, ustr "~F2~ Load", Action(Load));
+ new StatusItem(Key.F3, ustr "~F3~ Save", Action(Save));
new StatusItem(Key.ControlX, ustr "~^X~ Quit", fun () -> if (Quit ()) then top.Running <- false)
|],
Parent = null
@@ -433,7 +442,7 @@ type Demo() = class end
win.Add (bottom)
let mutable bottom2 = new Label(ustr "This should go on the bottom of another top-level!")
top.Add (bottom2)
- Application.Loaded.Add (
+ Application.Loaded <- Action (
fun (_) ->
bottom.X <- win.X
bottom.Y <- Pos.Bottom (win) - Pos.Top (win) - Pos.At(margin)