Skip to content

Releases: vchelaru/Gum

December 23 2024

23 Dec 16:19
Compare
Choose a tag to compare

Breaking Changes

  • No breaking changes 🥳

Gum Tool

Biggest Changes

  • Improvements to the State tab
    • Component name is now displayed in the new States tab
    • Categories are displayed with folder icons
    • States cannot be moved when required in behaviors
    • Removing or renaming states needed by behaviors gives more informative popup
    • Fixed a number of cases where the right-click didn't stay in sync with the selected items
  • Improved Polygon editing
    • Moving, adding, and removing points now updates the point list
    • Point list can now add and delete points
    • Add point icon only shows over segment when within 15 pixels
    • Polygon overlay icons and points now scale according to zoom
  • Improved support for instances in behaviors
    • Instances can be renamed
    • Instance types can be changed
    • Instances can be deleted
    • Instances from behaviors can be dropped into components to create new instances
  • Exposed variables can now be renamed
  • Missing runtime files are now generated recursively making it easier to add codegen to projects. Gum asks if you would like to generate missing files.

Everything else

  • Right-click options now show on label of toggle buttons (such as Width Units)
  • Right-click options now show on angle selector in text box
  • Removed code generation of standard elements
  • Fixed a number of crashes in code generation
  • Fixed back slash handling on instances in screens, behavior names, and instances in behaviors
  • Hotkey menu can now be hidden with middle click, and the menu items toggle to display hide/show (thanks @kaltinril )
  • Fixed state selection on undo
  • Added ability to duplicate behavior categories and to move states to different behavior categories
  • Adding a category to a behavior now saves the behavior
  • Added check for whether project has already been saved before adding Skia components, preventing a dozen unnecessary popups
  • State animation tab can be hidden with middle click, and menu item toggles properly ( thanks @kaltinril )
  • Categorized states now show in the States and Visibility section
  • Category/state name is now displayed in brackets when right-clicking on state tree view (thanks @kaltinril )
  • Pressing X when asked if files should be copied or to overwrite existing files on copy now cancels the state assignment
  • Right-click on standards folder now has a View in Explorer option
  • Removed menu item for adding forms if forms have already been added
  • Behaviors can now be drag+dropped onto components to add the behavior
  • Removed unused Guide variable
  • Fixed left alignment of Source File for sprites (thanks @kaltinril )
  • Moved Source File for Sprites to the Source section (thanks @kaltinril )
  • Removed Default state displayed in variable grid when the default state is selected in the state tree view
  • Removed View Code menu item
  • Removed ability to drag+drop instances into standard elements
  • Improved folder renaming support - it succeeds more often now, and if it fails a more informative error is displayed.
  • Fixed folder deleting when in a onedrive folder (thanks @kaltinril )
  • Added go to definition support for instances in behaviors
  • Dropping a Screen onto a Behavior now shows a more informative error
  • Option to Wrap is now hidden when showing Entire Texture
  • Texture Scale Width and Texture Scale Height now default to 1, making Sprites behave more predictably when changing to DimensionsBased Texture Address Mode
  • Double-click to move texture coordinates in Texture Coordinate tab now records undo
  • Fixed rendering error when sprite textures wrap beyond first row and column
  • Texture Width Scale and Texture Height Scale now include informative description
  • Animations now play more smoothly (fixed performance issues)
  • Fixed texture coordinate window showing previous value instead of new value when changing texture coordinate values in the variable grid

Gum Runtimes

  • Added CircleRuntime
  • Added PolygonRuntime Alpha, Red, Green, and Blue
  • Added RectangleRuntime alpha, Red, Green, and Blue
  • Added a no-argument GraphicalUiElement.AddToManagers
  • Added new Menu and MenuItems Forms controls
  • Fixed runtime crash happening only on itch.io with not handling ordinal case comparison
  • Fixed ListBox not raising its SelectionChanged events
  • HasEvents and ExposeChildrenEvents is now carried over from gum to code
  • Added support for the Move command in GraphicalUiElement Children. Calling Children.Move now updates layout

Samples

  • Simplified custom list box screen
  • Added SimpleListBoxItemRuntime as example for customizing list boxes

Full Changelog: Release_December_5_2024...Release_December_23_2024

December 5 2024

05 Dec 23:30
e42b647
Compare
Choose a tag to compare

Breaking Changes

  • Text instances with 0 Pixel (absolute) width and 0 Percent width are now treated as 0 width in tool and runtime.

Gum Tool

Biggest Changes

  • Huge improvements to undo
    • "Undos" tab is now History tab
    • History tab now shows undo history rather than only the number of undos
    • Details of each undo displayed on each item
    • Undo now creates redo future
    • Deleting States can be undone
    • Renaming States can be undone
    • Deleting categories can be undone
    • Renaming categories can be undone
    • Deleting variables from categories can be undone
    • Changing instance lock can be undone
    • Changing instance base type can be undone
    • Changing Screen/Component base type can be undone
    • Add/Remove behaviors can be undone
    • Individual point add/move on Polygon can be undone
  • Gum now checks if a folder is empty when creating a new project, preventing unexpected overwriting of files and unintentional mixing of projects
  • Added fix for lost graphical device (thanks @kaltinril )
  • Renaming categories now updates all variables in the project which reference the changed category
  • Exposed font variables now properly show a font dropdown

Everything Else

  • Using color picker no longer generates undos every frame when sliding to a new color value
  • Using angle picker no longer generates undos every frame when sliding to a new angle
  • Improved performance of color picker and angle picker by not refreshing the variable grid on every minor change
  • Default Forms content now has a ScrollBar with a TrackInstance instead of ThumbContainer to match the expected instance name
  • Fixed BBCode not properly handling newlines
  • Reloading a project due to file changed on disk now re-selects the previously selected element
  • Fixed crash which can occur if the file watch is relative to the .gumx and if the folder is above the root
  • Improved hint text wrapping in the Variables tab (thanks @vicdotexe )
  • All types of variable displays can show hint text if the variable has it
  • Generated code now includes registration for runtime types
  • Code generation now defaults InheritanceLocation to InGeneratedCode
  • Fixed overlayed hint text when dislaying unknown types
  • Fixed possible crash due to tabs becoming negative in generated code
  • Fixed crash when viewing states in generated code
  • Fixed items in the tree view being selected on a push, resulting in potentially confusing behavior when dragging into an invalid spot
  • Renaming an element immediately sorts the items in the .gumx file, reducing version control churn
  • Instances can no longer be added to a Screen or Component when non-default state is selected
  • Duplicate state names can no longer be added
  • Undo/Redo hotkeys displayed in the hotkey popup (thanks @kaltinril )
  • Improved editing variables in multi-select situations
  • Polygon points are now generated in codegen
  • SHIFT+move of an object on a single axis no longer explicitly sets the snapped axis variable if it was default before.
  • Fixed possible codegen crash when renaming Components and Screens
  • Right-click edit option no longer available on variables which may cause Gum to be in an invalid state

Gum Runtimes

  • Improved error messages when a ScrollBar is missing a TrackInstance
  • Added nuget debugging symbols
  • Unified code between FlatRedBall Forms and Gum Forms for better maintainability
  • Calling ToGraphicalUiElement on a Screen with a runtime type that has Children now adds the items to the Children
  • Added GumService (and documented it) to significantly reduce the amount of code needed to get a MonoGame Gum + Forms project up and running
  • Added GraphicalUiElement.GetFrameworkElementByName to make it easier to get Forms objects
  • GumService automatically registers all runtime types
  • ModalRoot and PopupRoot now have explicit names to make debugging easier
  • Added Sprite.Blend
  • DataUiGrid no longer wipes custom variables when excluding a variable

Samples

Full Changelog: November_17_2024...Release_December_5_2024

November_17_2024

17 Nov 21:27
Compare
Choose a tag to compare

Gum Tool

  • Added new plugin for adding Forms controls to empty projects
  • Fixed codegen to no longer include contained type
  • Fixed possible crash assigning variables
  • Fixed mixed line endings on generated code
  • HasEvents is now generated properly for MonoGame projects
  • All objects now use forward slashes, and this fixes broken projects which might have back slashes
  • Setting animation changes now immediately updates Sprite size
  • Percent of other dimensions now show % in the icon
  • Removed unnecessary Inverted Pixels from Center Y Unit in Gum tool
  • All texts now have outlines
  • Added margins to alignment tab
  • Improved display of text to use top layer (not be hidden behind items)
  • Variables displayed with combo boxes can now show their details text
  • Added right-click removal support for guides - thanks (@kaltinril )
  • MaxLettersToShow now explains <NULL> values
  • Significant improvement in searching - finding variables now works properly
  • Search results now show icons for behaviors and variables
  • New key combination window shows all Gum key combinations
  • FormsUtilities can now update multiple root objects, useful for objects spread across multiple layers
  • Auto Grid Horizontal and Auto Grid Vertical can now be used with Relative to Children Width and Height Units which will properly resize the parent
  • Screens now generate inheriting from GraphicalUiElement instead of container
  • Added support for changing line and text color through settings

Gum Runtimes

  • Default values on TextRuntime now more closely match default Gum project
  • Fixed font loading errors on Android
  • Added matrix to GumBatch.Begin
  • Added support for performing Forms logic with null rootGue parameter
  • Initial support for GraphicalUiElement.Clone
  • Added support for Cursor PrimaryDoublePush
  • Added support for TextBox multiline

Samples

-no changes-

Full Changelog: November_3_2024...November_17_2024

November 3, 2024

03 Nov 12:59
Compare
Choose a tag to compare

Gum Tool

  • Fully generated code now creates 2-arg constructors.
  • Fixed renaming some objects causing a crash due to variable references
  • Fixed compile error in generated code setting Contained type

November_2_2024

02 Nov 14:48
Compare
Choose a tag to compare

Gum Tool

  • New projects now have a default nineslice image
  • Fixed crashes when referencing fonts in root folder
  • Fixed crashes when viewing combined states
  • Fixed variable references when qualifying full path variables in the same component/screen
  • Lots of codegen improvements including:
    • Assigning texture on a Sprite runtime
    • Constructor generation for Screens
    • Adding items to Screen
    • CustomInit is now called in AfterFullCreation for generated code so that custom init can reference strongly typed objects
    • Setting states now works even if there is no element tag
    • Disabling plugin now properly disables codegen
    • Added needed default using statement

Gum Runtimes

  • Fixed outline thickness not being respected on fonts
  • New RadioButton control in forms
  • GumCommon now targets .NET Standard 2.1 so it works on Meadow (thanks @KallDrexx )
  • Removed noisy "Breaking because..." output (thanks @legendaryfishtrap )
  • Added cursor support from touch screen
  • Added Cursor.CleraInputValues for clearing clicks and pushes manually, such as when making the TextBox gain focus
  • ComboBox now closes its ListBox when clicking outside of the ListBox
  • Added ModalRoot for adding modal popups
  • General code cleanup (Silverlight, Windows8, UWP, and Xbox360)
  • Added code for automatically associating Gum elements to their forms runtime types
  • Added a standard set of forms runtime types
  • Added better error messages when trying to perform cursor logic on an element that hasn't been added to managers.
  • Improved ability to use generated objects with from-files
  • Added checks for whether the cursor is over the game window, and whether the game is active
  • Added text runtime TextOverflowHorizontalMode an LineHeightMultiplier
  • Fixed RollOn being called every frame
  • Added checks for whether PopupRoot and ModalRoot are removed from managers

Samples

  • Added sample code to show how to create runtimes that are automatically associated with screens
  • Added froms from-file project
  • Added samples for custom listboxes
  • Added animated character to samples

New Contributors

Full Changelog: October_21_2024...November_2_2024

October_21_2024

21 Oct 23:34
Compare
Choose a tag to compare

Gum Tool

  • Added support for searching for instances
  • Added support for searching on instances by their Text property
  • First pass at being able to create components from an instance thanks @akaadream
  • Added better error reporting when missing a base type for a component
  • Added support for hint text when displaying nullable bool values
  • Fixed bug where duplicate instances could be created
  • Added realtime warnings about duplicate component names thanks @akaadream
  • Fixed tabs not properly sizing themselves after being hidden thanks @kaltinril
  • Saving new project now shows up in recent files thanks @kaltinril
  • Newly-created projects automatically load thanks @kaltinril
  • Improved codegen for monogame projects, including new MonoGame dropdown value

Gum Runtimes

  • Added new ComboBox Forms control
  • Fixed case sensitive issues when loading shaders
  • Added FormsUtilities.Cursor
  • Added FormsUtilities.Keyboard
  • Added sample project for font loading
  • Huge improvements to font load times (100x faster) thanks @KallDrexx
  • Added FnaGum project
  • Added support for loading from a StreamByteDictionary to speed up load times on web projects (Kni)
  • Improved error reporting when missing font files
  • Added SingleThreadSynchronizationContext sample for async calls
  • Added InteractiveGue.HandleRollOver
  • RollOverBubbling is only raised when XChange or YChange are non-zero
  • Loading .gumx project now pushes Standard values to all standard runtimes making it easier to load existing projects
  • FrameworkElement.UpdateState is now public allowing refreshing of visuals anytime
  • Added support for assigning BitmapFont through states
  • Added new const values for expected instance names in forms
  • Improved diagnostics when creating a Slider Forms object with missing references
  • Fixed crash when loading fonts with no spaces thanks @mfigueirido

New Contributors

Full Changelog: August_20_2024...October_21_2024

August 20, 2024

20 Aug 12:31
Compare
Choose a tag to compare

Gum UI Tool

  • Fixed crash when setting base type on a Screen
  • Fixed crash when setting the base type on a component

Gum Runtimes

  • Added FormsUtilities class to simplify working with FRB Forms. Documentation reflects this new addition.
  • Added Forms TextBox (MonoGame Gum)
  • Added Forms Slider (MonoGame Gum)
  • Added Forms Slider (MonoGame Gum)
  • Added support for Gum in Kni (thanks @nkast ) including support for web!
  • Default missing file behavior is now to throw exceptions to help with the most common type of errors.
  • Added support for LineRectangle LineWidth
  • Added MonoGameGum NineSliceRuntime support for CustomFrameTextureCoordinateWidth
  • Added more informative error when setting Sprite's animation
  • Added NonPremultipliedAddAlpha BlendState for render target rendering

New Contributors

Full Changelog: June_21_2024...August_20_2024

June 21, 2024

21 Jun 11:52
Compare
Choose a tag to compare

Gum UI Tool

  • Fixed popups appearing when selecting standard elements with no project saved (#166 )

June 20, 2024

20 Jun 13:04
Compare
Choose a tag to compare

Gum UI Tool

  • Fixed NineSlice rendering bug when smaller than the outside borders (tool and all runtimes)
  • Events file is only saved if it differs, reducing file change and disk writes
  • Gum code generator now supports from-file and also fully instantiating so it can help users write code who might be loading .gumx
  • Fixed Vertical grid layout bug which was laying out horizontally (tool and all runtimes)
  • Added check when assigning base instance to make sure it is not of the same type as the parent
  • Resetting font size to default now properly renders the text instance and creates the correct font cache files

Gum Runtimes

  • First pass at GumForms including Button, ListBox, ScrollView, CheckBox, and lots of under-the-hood changes to support this
  • MonoGame Gum now runs on DirectX and Android. iOS hasn't been tested, but it may work as well.
  • Standard types loaded from .gumx are now loaded in their specific types rather than base GraphicalUiElements
  • Added InteractiveGui class to serve as a base for clickable UI objects in MonoGameGum (buttons, etc)
  • Added BlendState (not just Blend) to most GraphicalUiElement implementations for monogame - this helps with rendering Gum to a render target.
  • GumProjectSave.Load (no parameters) now throws exceptions making it easier to spot missing files.
  • Fixed path issues on iOS and Android
  • Fixed path issues on Linux/Mac
  • Rendering in Skia canvas now properly respects camera center