Commit Graph

9 Commits (e7e8b4b2c1593a59676370ecd742b53054e5b72e)

Author SHA1 Message Date
Noah e7e8b4b2c1 Image: defer SDL2 texture loading until Present 2021-07-19 21:23:55 -07:00
Noah b87b4825af Checkbox updates, SelectBox images 2021-06-13 19:59:22 -07:00
Noah 6df7bade48 Add SelectBox Widget 2021-06-06 13:44:05 -07:00
Noah f9b305679a Tooltip Widget and Event Refactor
* Tooltip can be added to any target widget (e.g. Button) and pop up on
  mouse over.
* Refactor the event system. Instead of passing a render.Point to all
  event handlers, pass an EventData struct which can hold the Point or
  the render.Engine.
* Add event types Computed and Present, so a widget can set a handler on
  whenever its Computed or Present method is called.
2020-03-09 17:13:33 -07:00
Noah 0846fe22fc Place Strategy for Frame Widget 2020-03-08 22:07:46 -07:00
Noah e391e703bf Cut lib/render into its own package, change all imports 2019-12-22 18:21:58 -08:00
Noah d499f34a87 Add Tool Bar to Editor Mode
* Toolbar has icon buttons for the Pencil Tool, Line Tool, Rect Tool,
  Actor Tool and Link Tool.
* Remove the tab buttons from the top of the Palette window. The palette
  tab is now toggled between Swatches and Doodads by the tool selected
  on the tool bar, instead of the tab buttons setting the tool.
* Remove the "Link Doodads" button from the Doodad Palette. The Link
  Tool has its own dedicated toolbar button with the others.
2019-07-03 20:24:04 -07:00
Noah 90857fdd28 Refactor Render Texture-Cache Interface
Since SDL2 is using in-memory bitmaps the same as Canvas engine, the
function names of the render.Engine interface have been cleaned up:

* NewTexture(filename, image) -> StoreTexture(name, image)
  Create a new cached texture with a given name.
* NewBitmap(filename) -> LoadTexture(name)
  Recall a stored texture with a given name.
* level.Chunk.ToBitmap uses simpler names for the textures instead of
  userdir.CacheFilename file-like paths.
2019-06-27 13:01:01 -07:00
Noah 7661f9873c Code Layout Refactor
* All private Doodle source code into the pkg/ folder.
* Potentially public code into the lib/ folder.
* Centralize the logger into a subpackage.
2019-04-09 17:35:44 -07:00