ianharrigan / haxeui-file-dialogs Goto Github PK
View Code? Open in Web Editor NEWFile dialogs for HaxeUI
File dialogs for HaxeUI
When i open file dialogs my app frame-rate drops from 60 to 30, witch is A LOT of CPU being used.
I narrowed this problem to FileSelectionController -> refreshPathControls():
What happens is that the last path button is a button with text = ""
. If i remove that entry the frame rates are normal.
So this is a very easy thing to fix (witch i did already), however I have no clue what is causing the framedrop and it may happen again in the future, here are a few notes:
text = ""
the framerate drops.Strange stuff, I'll have another go later.
This is low priority, but flash loader has no option for file filter.
(using the systools lib)
This is nothing special, but having Load and Save options as an anonymous object is quite difficult to use.
Targeting Windows, I tried to use this library, however, I've noticed that build will fail only if I include:
import haxe.ui.dialogs.files.FileDialogs;
Here is the compilation log:
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): error C2259: 'haxe::ui::toolkit::core::interfaces::IStyleableDisplayObject_delegate_<haxe::ui::toolkit::core::renderers::ItemRenderer_obj>': cannot instantiate abstract class
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: due to following members:
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'Void haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener(String,Dynamic,hx::Null<bool>,hx::Null<int>,hx::Null<bool>)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(127): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(128): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent(openfl::_legacy::events::Event)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(129): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(130): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener(String)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(131): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(132): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'Void haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener(String,Dynamic,hx::Null<bool>)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(133): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(134): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger(String)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(135): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(161): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(136): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): error C2259: 'haxe::ui::toolkit::core::interfaces::IComponent_delegate_<haxe::ui::toolkit::core::renderers::ItemRenderer_obj>': cannot instantiate abstract class
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: due to following members:
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'Void haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener(String,Dynamic,hx::Null<bool>,hx::Null<int>,hx::Null<bool>)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(127): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(128): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent(openfl::_legacy::events::Event)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(129): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(130): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener(String)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(131): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(132): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'Void haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener(String,Dynamic,hx::Null<bool>)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(133): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(134): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger(String)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(135): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(165): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(136): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): error C2259: 'haxe::ui::toolkit::core::interfaces::IStateComponent_delegate_<haxe::ui::toolkit::core::renderers::ItemRenderer_obj>': cannot instantiate abstract class
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: due to following members:
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'Void haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener(String,Dynamic,hx::Null<bool>,hx::Null<int>,hx::Null<bool>)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(127): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(128): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent(openfl::_legacy::events::Event)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(129): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(130): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener(String)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(131): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(132): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'Void haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener(String,Dynamic,hx::Null<bool>)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(133): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(134): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger(String)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(135): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(171): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(136): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): error C2259: 'haxe::ui::toolkit::core::interfaces::IDisplayObjectContainer_delegate_<haxe::ui::toolkit::core::renderers::ItemRenderer_obj>': cannot instantiate abstract class
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: due to following members:
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'Void haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener(String,Dynamic,hx::Null<bool>,hx::Null<int>,hx::Null<bool>)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(127): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(128): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::addEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent(openfl::_legacy::events::Event)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(129): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(130): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::dispatchEvent_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener(String)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(131): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(132): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::hasEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'Void haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener(String,Dynamic,hx::Null<bool>)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(133): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(134): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::removeEventListener_dyn'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'bool haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger(String)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(135): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger'
./src/haxe/ui/toolkit/core/renderers/ItemRenderer.cpp(173): note: 'Dynamic haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger_dyn(void)': is abstract
H:\repositories\project-app\Export\windows\cpp\obj\include\haxe/ui/toolkit/core/interfaces/IDisplayObject.h(136): note: see declaration of 'haxe::ui::toolkit::core::interfaces::IDisplayObject_obj::willTrigger_dyn'
ComponentItemRenderer.cpp
ClassManager.cpp
Macros.cpp
Toolkit.cpp
PopupManager.cpp
DateSelector.cpp
Build halted with errors.
Flash loader reads contents by default, it would make sense to set it to true.
Also it may be possible to add the possibility to not load the files for flash, i might consider that as i need it.
This and other bugs i may fix in the future as i need, I'm posting them anyway as a reminder.
This is related to ianharrigan/haxeui#61... A haxeUI issue that is sending a change event too often.
The file dialogs shows system protected files and folders by default, its easy to click them and suddenly the application crashes.
It took me a while to figure that this was the problem as i was trying to navigate to folders like:
Documents And Settings
My Pictures
My Music
etc..
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.