Commit Graph

369 Commits

Author SHA1 Message Date
Martín Lucas Golini
7de3420a9f Minor change in the syntax tokenizer to support "^" from the patterns.
Added diff file support.
Added UIMenuRadioButton.
Added support to shortcut/keybinding text display in UIMenuItem.
Improved UIMenuBar and UITouchDraggableWidget.
2020-06-18 02:56:27 -03:00
Martín Lucas Golini
abc47067a4 Minor code editor fixes.
Improved touch dragging.
Minor API change in UIMenu::add*.
Updated the README.md.
Added TODO.md (to keep track on the things I want to improve/implement).
2020-06-17 03:49:12 -03:00
Martín Lucas Golini
4f6e73b0a5 UITextEdit now extends from UICodeEditor.
Added support for horizontal scrollbar on UICodeEditor and by extension UITextEdit.
Renamed String::toStr to String::toString.
2020-06-16 04:26:46 -03:00
Martín Lucas Golini
651039b0e8 Redesigning UITextInput and all the derivatives to use TextDocument. 2020-06-15 01:44:29 -03:00
Martín Lucas Golini
b9c0a44395 Minor fixes in syntax definitions.
Minor fixes in breeze theme.
Allow to set the pixel density in the code editor.
2020-06-14 05:33:26 -03:00
Martín Lucas Golini
9c4f24c3cb Added Window::hasFocus(), Window::hasInputFocus() and Window::hasMouseFocus().
Fixed an issue when widgets were created during an layout update.
Some minor improvements to the Code Editor.
2020-06-10 04:12:08 -03:00
Martín Lucas Golini
bd9170baee Added color picking capability in the UICodeEditor.
Some minor improvements to the code editor.
Some minor fixes.
2020-06-08 05:25:57 -03:00
Martín Lucas Golini
0f2b726662 Added find/replace to the code editor.
General clean up on Scene::Node.
Several minor fixes related to the keyboard navigation.
2020-06-07 06:06:32 -03:00
Martín Lucas Golini
b953c7d3c1 Added switch between splits (prev/next) in Code Editor.
Added highlight to matching brackets in UICodeEditor.
Added selection match highlight in UICodeEditor.
Improved text selection when selecting tabs (\t) in UICodeEditor.
Added load color schemes from config files.
Added loadFromMemory and loadFromPack to TextDocument.
Added color schemes to the Code Editor.
2020-06-06 05:41:23 -03:00
Martín Lucas Golini
c408491633 Minor refactor and UISplitter improvements.
Improved dragging.
UITab now supports close button and proper close control (user can deny the close request).
UITabWidget now allows to rearrange the tabs in the tab bar.
2020-06-05 04:52:33 -03:00
Martín Lucas Golini
951d7b2e7e Renamed UITabWidget "TabContainer" to "TabBar".
Added UITabWidget::set/getHideWhenNotNeeded to hide the TabBar if only 1 tab is available.
UIStyle now restricts the animations in the first onStateChange received (sin there's no previous state to animate from).
Added UISplitter::swap.
Critical fix in Node::setParent.
Added Node::findByType.
Fixed Code Editor splitting.
Minor improvements in Code Editor.
2020-06-04 19:00:58 -03:00
Martín Lucas Golini
56f79a6dfd UISplitter WIP. 2020-06-01 05:30:16 -03:00
Martín Lucas Golini
4b2f431630 Minor clean up and fixes. 2020-05-30 23:21:11 -03:00
Martín Lucas Golini
e45c813e53 Renamed UIWinMenu to UIMenuBar. 2020-05-30 21:03:25 -03:00
Martín Lucas Golini
3304fb5f31 Improved the SyntaxColorScheme configuration.
Also a minor fix in the breeze theme.
2020-05-28 02:32:47 -03:00
Martín Lucas Golini
a9fb27f31d Minor fixes on Text and TextEdit. 2020-05-12 16:43:22 -03:00
Martín Lucas Golini
730d0ff30b Avoid creating a VertexBuffer for UIBackgroundDrawables with no radius.
EventDispatcher: Double click is only valid if the second click is near the first one.
Added Input events for file drop and text drop.
InputTextBuffer allows to paste over selected text.
2020-05-10 05:42:12 -03:00
Martín Lucas Golini
87e3d64b63 Added renamed Display::getPixelDensity() to Display::getPixelDensitySize() and now Display::getPixelDensity() returns the float value of the pixel density.
Moved the global test to tests/test_all.
Added a ui_perf_test used to test specific performance issues in the UI.
Fixed the element/widget inline style (now respects the specificity).
Some optimizations in UIListBox.
2020-05-03 03:39:31 -03:00
Martín Lucas Golini
16db174e48 API changes:
LayoutSizeRule is now SizePolicy.
LayoutPositionRule is now PositionPolicy.
get/setLayoutSizeRules is now get/setLayoutSizePolicy.
get/setLayoutPositionRule is now get/setLayoutPositionPolicy.
Added Engine::isThreaded().

Minor emscripten fix.
Added emscripten-fs.html, a simple script loader to test the build emscripten demos.
2020-05-02 23:15:47 -03:00
Martín Lucas Golini
0207180e0e Fixes in UITextEdit.
Some minor performance improvements in the PropertyDefinition class.
Breeze theme improvements.
And some other minor changes.
2020-04-29 03:37:05 -03:00
Martín Lucas Golini
21d952c18b min-width, min-height, max-width and max-height fixes.
UITooltip in debug mode fixes.
Improved breeze theme.
2020-04-27 04:45:49 -03:00
Martín Lucas Golini
c893e05cde Several fixes. 2020-04-26 04:56:50 -03:00
Martín Lucas Golini
3ff44da4af Minor changes. 2020-04-26 01:04:39 -03:00
Martín Lucas Golini
397d96d7d7 Fixed input hints and input password text alignment. 2020-04-26 00:03:15 -03:00
Martín Lucas Golini
f9053c0d61 Several fixes. 2020-04-25 00:31:02 -03:00
Martín Lucas Golini
02433b13d3 Some minor fixes and improvements.
Added verbose layout loading to get more info about the performance when loading layouts.
2020-04-18 19:45:29 -03:00
Martín Lucas Golini
fa20d393cd Several performance improvements.
Added events: Node::onIdChange, UIWidget::onClassChange, UIWidget::onTagChange.
UIItemContainer is now a widget (required for CSS).
Fixes in UIListBox and UITable.
CSS::StyleSheetStyle is now stored as a shared pointer.
Fixes in UICheckBox, UIRadioButton, UISlider, UIScrollBar, UITab, UIWinMenu, and more.
Better debug tooltips (now shows padding and margin).
Fix in UISceneNode::loadLayoutNodes, ensures that the current SceneNode is the one that it's loading.
2020-04-16 05:31:43 -03:00
Martín Lucas Golini
9c457f4f21 Pure CSS themes support improvements.
Improvementes for dp sizes, now are being rounded to the closest int in several locations.
2020-04-14 02:02:08 -03:00
Martín Lucas Golini
aa9202e8b7 More work into supporting pure CSS themes.
Fixed a bug where dirty polygons were unreported.
UISceneNodes now are updated forcing the current UISceneNode as the one that it's being updated.
Added "poly" function for background/foreground images.
Added "tab-height" and "window-title" CSS properties.
2020-04-11 05:42:49 -03:00
Martín Lucas Golini
e48b77ddfc Several fixes to allow Widgets to work without skins and enable pure CSS themes.
Added String::contains.
Improved Vector2.
Improved Text::findCharacterFromPos.
Improved set minimum widget size.
Improved var() parsing.
2020-04-09 05:20:55 -03:00
Martín Lucas Golini
ffc8fd3953 More code clean up and continued with the CSS Specification documentation. 2020-04-05 04:22:34 -03:00
Martín Lucas Golini
9a43551b6b More CSS specification clean up and improvements.
UIPushButton refactorization.
Fixed crash on tooltip close.
And several minor changes to adapt the CSS specification changes into the widgets.
2020-04-04 02:43:19 -03:00
Martín Lucas Golini
94019a7658 Some UIWidget improvements. 2020-04-03 00:29:09 -03:00
Martín Lucas Golini
6259ca5fb8 More clean up and documentation, this time for: UITabWidget, UITab, UISpinBox and UIPushButton. 2020-04-02 04:18:11 -03:00
Martín Lucas Golini
cd306cc2e6 More general UI code clean up and documentation. 2020-03-31 22:49:09 -03:00
Martín Lucas Golini
b13793e99c More work on the CSS Specification. Some specification changes were made. 2020-03-30 04:33:51 -03:00
Martín Lucas Golini
e593430cd0 Added properties rotation-origin-point-x/y and scale-origin-point-x/y.
Added shorthand rotation-origin-point and scale-origin-point.
2020-03-16 22:59:56 -03:00
Martín Lucas Golini
3921f81ced Added border-radius support.
Added alias support for shorthands.
Added BorderType::Outline.
Added support for background/foreground masks.
Fixes to the border rendering.
Several fixes and clean up.
2020-03-13 05:10:53 -03:00
Martín Lucas Golini
359685cb6f Added UIBackgroundDrawable. WIP CSS Borders. 2020-03-10 03:57:49 -03:00
Martín Lucas Golini
259dbebc17 Working borders. 2020-03-09 20:26:31 -03:00
Martín Lucas Golini
312f02105f CSS Borders WIP (not working yet). 2020-03-09 15:12:43 -03:00
Martín Lucas Golini
5d17e42d03 Texture packer fixes and new version (this breaks older ETA files). Now the MD5 hash is saved into the texture region info, in order to verify on the texture atlas update if the file changed (instead of relying on the file modification date that's local).
UIViewPager now takes into account the amount of displacement when starting a page change animation, shortening the animation when it's closer to the objective.
TexturePacker now accepts any pixel density instead of the fixed PixelDensitySizes.
2020-03-02 13:31:00 -03:00
Martín Lucas Golini
e530e38895 Fixed UITooltip not showing correctly.
Fixed UITabWidget draw invalidation.
Fixed software keyboard backspace and return key on Android.
Fixed performance issue on onChildCountChange.
2020-03-02 01:34:26 -03:00
Martín Lucas Golini
cd34f7f4e4 Several fixes for UIViewPager.
Added min-width and max-width CSS properties (still needs testing).
Fixed CSS animations with multiple steps.
Fixed menu sub-menues not appearing.
2020-02-28 04:40:32 -03:00
Martín Lucas Golini
8c108c5ed9 Added UIViewPager.
Node::onChildCountChange reports the child that's being added or removed.
Added Ease::toString.
Added UIWidget::lengthFromValueAsDp.
2020-02-27 14:16:11 -03:00
Martín Lucas Golini
04c407077f Several improvements in the CSS Animations.
UITabWidget now acts as a draw invalidator, skipping the draw invalidation if the element invalidating is not visible in the current tab.
premake5 file now supports different architectures.
Updated README.md and docs.
Minor fixes in UIColorPicker.
Updated SOIL2 and efsw.
Added LICENSE file.
2020-02-25 01:15:27 -03:00
Martín Lucas Golini
f8c21880d1 Replaced StyleSheetPropertyTransition in favor of StyleSheetPropertyAnimation.
This class allows to animate CSS "animation" and "transition". Some CSS animations are working, pending fill-mode implementation, tests and surely many fixes.
Fixed a critical bug in windows resize introduced in the latest Input improvements.
2020-02-24 03:01:32 -03:00
Martín Lucas Golini
e302310973 More work has been done to support the CSS animation property.
Now the "animation*" properties are parsed and converted into an AnimationDefinition.
Added a new obligatory method to Action, Action::getTotalTime, in order to have more precise information about the current execution point in time of the actions.
Added String::isNumber(std::string, bool).
Added Time::fromString and Time::isValid.
2020-02-22 03:43:26 -03:00
Martín Lucas Golini
48d0f06b2b Started implementation of CSS Animations, WIP. 2020-02-18 03:58:58 -03:00
Martín Lucas Golini
c2e0d867fd Added support for multiple background-image and foreground-image.
Added support for structural pseudo class :not().
2020-02-17 04:06:47 -03:00