Skip to content

Releases: rds1983/Myra

1.5.7

21 Sep 02:11
Compare
Choose a tag to compare

Some fixes

1.5.6

20 Sep 03:39
Compare
Choose a tag to compare

New Features

MyraPad got the navigation tree

myra14.mp4

Closeable tabs for TabControl

myra15.mp4

The new feature is turned on by setting TabControl.CloseableTabs to true.

Allow custom widgets when loading MML

#402

Closed Issues and Merged Pull Requests

  • #402 - Allow custom widgets when loading MML
  • #461 - Increasing FontResolutionFactor in FontSystemDefaults gives unwanted caret separation in Textbox component
  • #473 - MyraPad: Add Explorer Tree
  • #474 - Feature Request: Optional close button on tabs at the TabControl

1.5.5

04 Jan 16:54
Compare
Choose a tag to compare

New Features

Stylesheet for 4k Monitors

Additional stylesheet that is similar to default one, but 2 times bigger. It is intended to be used on 4k monitors.
It could be turned on using following code:

Stylesheet.Current = DefaultAssets.DefaultStylesheet2X;

FileDialog and ColorPickerDialog became styleable

New style classes had been added: FileDialogStyle and ColorPickerDialogStyle

Also it's possible to style it through json: https://github.com/rds1983/Myra/blob/6df22cd92e04b414c5c905190aed808b9c8f20a0/src/Myra/Resources/default_ui_skin.xmms#L145

API Changes

If you made custom stylesheet, then make sure the texture atlas contains "white" region, which is basically single white pixel.
Existance of "white" region is required for the custom stylesheet to work properly.
You can grab such image here: https://github.com/rds1983/Myra/blob/master/assets-raw/1x/white.png

Closed Issues

  • #444 - Feature Request: New Stylesheet similar to default one, but 2 times bigger
  • #445 - Textbox space character is rendered oddly when at end of string
  • #446 - Crash: pasting 💁👌🎍😍 in a textbox crashes

1.5.4

06 Dec 19:37
Compare
Choose a tag to compare

New Features

ListView

The new widget ListView aims to replace ListBox. ListView allows arbitrary content.
Example creation code:

var label1 = new Label();
label1.Text = "Item1";

var label2 = new Label();
label2.Text = "Item2";

var horizontalSeparator1 = new HorizontalSeparator();

var label3 = new Label();
label3.Text = "Item4";

var label4 = new Label();
label4.Text = "Item5";

var verticalStackPanel1 = new VerticalStackPanel();
verticalStackPanel1.Widgets.Add(label3);
verticalStackPanel1.Widgets.Add(label4);

var listView1 = new ListView();
listView1.Widgets.Add(label1);
listView1.Widgets.Add(label2);
listView1.Widgets.Add(horizontalSeparator1);
listView1.Widgets.Add(verticalStackPanel1);

It is equivalent to the following MML:

<ListView>
	<Label Text="Item1" />
	<Label Text="Item2" />
	<HorizontalSeparator />
	<VerticalStackPanel>
		<Label Text="Item4" />
		<Label Text="Item5" />
	</VerticalStackPanel>
</ListView>

It'll render following:

myra12.mp4

ComboView

The new widget ComboView aims to replace ComboBox. It also allows arbitraty content.
It's usage is similar to the ListView.

myra11.mp4

Fixed Issues:

#439: Feature Request: ListView widget(aka ListBox with arbitrary content)
#440: Feature Request: ComboView Widget that allows arbitrary widgets

1.5.3

13 Nov 20:56
Compare
Choose a tag to compare

New Features

Tooltips

Finally, Widget got Tooltip property.

myra7.mp4

It understands the FontStashSharp RTF Syntax. I.e. if Tooltip is set to "E=mc/v[-8]2/n/vdMass–energy equivalence.", then it would show:

image

The tooltip creation could be customized through MyraEnvironment.TooltipCreator.

Modal Windows darken background

It's optional feature that is turned on by setting MyraEnvironment.EnableModalDarkening to true. Then every window that is modal(shown through ShowModal) would darken the background.

myra8.mp4

New RadioButton that allows arbitraty content

myra9.mp4

Closed Issues

#57 - Feature Request: Tooltip Widget
#436 - Add optional ability to windows to darken the background when shown
#437 - Feature Request: RadioButton with the arbitrary content

1.5.2

06 Nov 11:56
Compare
Choose a tag to compare

New Features

CheckButton

CheckButton widget that is intended to replace the CheckBox and allows the atrbitraty content.

myra3.mp4

TreeView

TreeView widget that is intended to replace the Tree and also allows the arbitraty content as nodes.

myra4.mp4

Closed Issues & Merged Pull Requests

#427 - Feature Request: CheckButton widget
#428 - Feature Request: TreeView widget that allows arbitrary content at nodes
#429 - Feature Request: Create a UWP package
#430 - Downgrade minimum MG version to 3.8.0

1.5.1

27 Oct 02:28
Compare
Choose a tag to compare

Overview

Again this release contains a lot of internal refactoring. Particularly the entire input system had been rewritten. However there are new features.

New features

Mouse Cursor

There's new property Widget.MouseCursorType that allows to set one of the stock mouse cursors types:

myra.mp4

New Buttons with the arbitraty content

Two new widgets had been added: Button & ToggleButton, that can have arbitrary content(which can be set through the Content Property):

myra2.mp4

It's recommended to move from old ImageButton and TextButton to the new classes. Hence older classes had been attributed as obsolete.

Closed Issues & Merged Pull Requests

#413 - Feature Request: Cursors
#414 - Feature Request: Button class with arbitrary Content
#419 - Refactoring: Merge Widget.Children & InputHelper
#421 - Documentation: Update Stride tutorial so it matches the latest Stride version
#422 - Make public classes at Utility - internal
#423 - Input overhaul
#424 - Fix Desktop.IsMouseOverGUI
#426 - Refactoring: Introduce ILayout

1.5.0

23 Oct 10:46
f8b5c62
Compare
Choose a tag to compare

Overview

Generally the new release contains a lot of internal refactoring that wont affect the end user in any way.
However there are still some API changes, new features and bug fixes.
Way more changes are planned.

API Change: Widget.Grid* properties were replaced with attached properties

Starting from the new version, setting Widget's Grid* properties should be done through the new api.
I.e. old code:

widget.GridRow = 2;
widget.GridColumn = 3;
widget.GridRowSpan = 4;
Widget.GridRowColumn = 5;

Should be replaced with:

Grid.SetRow(widget, 2);
Grid.SetColumn(widget, 3);
Grid.SetRowSpan(widget, 4);
Grid.SetColumnSpan(widget, 5);

Respectively old MML code:

<TextBlock GridRow="2" GridColumn="3" GridRowSpan="4" GridColumnSpan="5"/>

Should be replaced with:

<TextBlock Grid.Row="2" Grid.Column="3" Grid.RowSpan="4" Grid.ColumnSpan="5"/>

It's possible to update MML files automatically by loading them in the MyraPad, press Ctrl+F(Format Source) and Save.

New Feature: StackPanel's attached properties

Let's say we want to make StackPanel with 4 TextBlocks. And we want 3rd to fill all remaining space from 1st, 2nd and 4th.
Old code to archieve that is:

var stackPanel = new HorizontalStackPanel();
stackPanel.Proportions.Add(Propotion.Auto);
stackPanel.Proportions.Add(Propotion.Auto);
stackPanel.Proportions.Add(Propotion.Fill);
stackPanel.Proportions.Add(Propotion.Auto);

stackPanel.Widgets.Add(textBlock1);
stackPanel.Widgets.Add(textBlock2);
stackPanel.Widgets.Add(textBlock3);
stackPanel.Widgets.Add(textBlock4);

Now it could be done with following code:

var stackPanel = new HorizontalStackPanel();
StackPanel.SetProportionType(textBlock3, ProportionType.Fill);
stackPanel.Widgets.Add(textBlock1);
stackPanel.Widgets.Add(textBlock2);
stackPanel.Widgets.Add(textBlock3);
stackPanel.Widgets.Add(textBlock4);

Respectively old MML code:

<HorizontalStackPanel>
  <Proportions>
    <Proportion Type="Auto" />
    <Proportion Type="Auto" />
    <Proportion Type="Fill" />
    <Proportion Type="Auto" />
  </Propotions>
  <TextBlock Id="textBlock1"/>
  <TextBlock Id="textBlock2"/>
  <TextBlock Id="textBlock3"/>
  <TextBlock Id="textBlock4"/>
</HorizontalStackPanel>

Now it could be done with following:

<HorizontalStackPanel>
  <TextBlock Id="textBlock1"/>
  <TextBlock Id="textBlock2"/>
  <TextBlock Id="textBlock3" StackPanel.ProportionType="Fill"/>
  <TextBlock Id="textBlock4"/>
</HorizontalStackPanel>

Similarly the MML could be automatically updated through the MyraPad.

Closed Issues and Merged Pull Requests

#382 - Feature Request: Support custom widgets for property grid.
#392 - Fix memory leak
#401 - Myra doesnt properly restore ScissorRectangle if the window gets resized
#403 - Monogame CustomWidget drawline with (thickness > 1), the line is not drawing from center.
#405 - New asset management
#406 - Move onto FontStashSharp 1.3.0
#408 - Add attached properties
#409 - TextBox: When the text is selected via touch, the scrolling should follow the touch position
#411 - Refactoring: StackPanel should inherit from MultipleItemsContainerBase
#415 - Refactoring: Move all Grid layout code into separate class GridLayout
#416 - Refactoring: SplitPane should inherit from MultipleItemsContainerBase
#417 - Refactoring: Add ObservableCollection RealChildren to Widget class

1.4.5

28 Oct 12:55
Compare
Choose a tag to compare

New Features:
Improvements and new samples for the Myra.PlatformAgnostic.
See wiki entry for the details: https://github.com/rds1983/Myra/wiki/Using-platform-agnostic-version-of-Myra

Myrapad Changes
Now Myrapad stores its configuration file(Myrapad.config) in the same folder as the Myrapad.exe. Before it was stored in the users' Documents folder.

Closed Issues & Merged Pull Requests:

1.4.4