2020-03-31 06:14:52 +03:00
|
|
|
- Done
|
|
|
|
- Check events only for interested widgets (use focus for keyboard and region for mouse)
|
|
|
|
- Add handling of disabled widget nodes
|
|
|
|
- Add handling of custom external actions for widgets
|
|
|
|
- Do something with return of custom handlers (the exact same thing we do with event handlers)
|
|
|
|
- Add scroll support
|
|
|
|
- Add hstack/vstack containers
|
|
|
|
- Improve input (keyboard) handling
|
|
|
|
- Implement copy/paste
|
|
|
|
- Add HiDPI handling
|
|
|
|
- Handle window resize
|
|
|
|
- Improve handling of Color (turn to 0.0 to 1.0 instead of 0 to 255? only do it for alpha?)
|
|
|
|
- Add handling of non visible widget nodes
|
|
|
|
- Handle widget fixed size
|
|
|
|
- Add good looking caret to textField
|
|
|
|
- Add support for onFocus/onBlur
|
|
|
|
- Maybe we don't need this and we can get by with position in render function?
|
|
|
|
- Add support for onEnter/onLeave (keep track of previous active widgets)
|
|
|
|
- We probably need it for drag&drop
|
|
|
|
- How is the user going to provide state updates?
|
2020-04-07 07:04:55 +03:00
|
|
|
- We already provide this with the State monad and corresponding lenses
|
2020-04-09 19:46:49 +03:00
|
|
|
- Improve mouse support/current state of mouse and keyboard for event handling
|
2020-04-11 23:31:55 +03:00
|
|
|
- Make handleEvent run inside MonadState (required to update user provided lenses) **CANCELLED**
|
|
|
|
- Add logic that allows widgets to update user state
|
|
|
|
- Does it make sense to avoid lenses internally, given that we already include the dependency?
|
2020-03-31 06:14:52 +03:00
|
|
|
- How will long running (i.e., not immediate) user tasks will be handled?
|
2020-04-28 00:29:28 +03:00
|
|
|
- Using local coordinates for widgets **CANCELLED**
|
|
|
|
- How do we adjust current displacement?
|
2020-04-28 01:42:54 +03:00
|
|
|
- Track drawing operations made by a Widget
|
|
|
|
- Reorganize drawing operations
|
2020-04-07 07:04:55 +03:00
|
|
|
- Stop, think and design
|
2020-03-31 06:14:52 +03:00
|
|
|
- How should all of this be organized?
|
2020-07-14 01:38:51 +03:00
|
|
|
- How should modules be laid out?
|
2020-05-04 07:33:44 +03:00
|
|
|
- What are good interfaces for the different parts of the system?
|
2020-03-31 06:14:52 +03:00
|
|
|
- Does it make sense that handleEvent is the only pure function in a widget?
|
2020-04-28 00:29:28 +03:00
|
|
|
- Based on the previous design, refactor modules
|
2020-05-26 22:01:52 +03:00
|
|
|
- Current massive refactor
|
2020-05-31 02:03:45 +03:00
|
|
|
- Replace Tree with Containers' Tree
|
|
|
|
- Fix issue with event handling (click makes everything disappear)
|
2020-08-05 22:29:47 +03:00
|
|
|
- Fix focus situation (remove _focusRing and replace with single focus, then use widgetNextFocusable)
|
2020-05-31 02:03:45 +03:00
|
|
|
- Provide focus to render (needed by textField)
|
|
|
|
- Check if resize children still makes sense (maybe the widget itself can resize on the corresponding event?)
|
|
|
|
- Handle SetFocus request
|
|
|
|
- Check if WidgetState is really needed
|
2020-07-14 01:38:51 +03:00
|
|
|
- Maybe Data.Dynamic can be used, but currently abandoned
|
2020-05-31 02:03:45 +03:00
|
|
|
- Rethink Tree.Path import
|
|
|
|
- Clean up Seq imports
|
|
|
|
- Where can we use Seq? Does it make sense to use it everywhere? What about Traversable?
|
2020-05-26 22:01:52 +03:00
|
|
|
- Reorganize Common Types. What do other projects do? They should be simple to import and use
|
2020-06-08 21:25:52 +03:00
|
|
|
- Create composite widget, allowing isolated event handling and UI creation
|
2020-06-06 06:19:21 +03:00
|
|
|
- Create application widget, based on composite
|
2020-05-31 02:03:45 +03:00
|
|
|
- Remove UserTask concept, handle it as WidgetTask
|
2020-06-06 06:19:21 +03:00
|
|
|
- Support long running tasks that can provide events through a channel
|
2020-06-10 03:44:39 +03:00
|
|
|
- Add Multiple response support (extra value in EventResponse)
|
2020-06-10 05:31:45 +03:00
|
|
|
- Try to remove all those Typeable requirements in CompositeWidget
|
|
|
|
- Removing Monad from Widget/WidgetInstance was good enough
|
|
|
|
- Some Typeable constraints still needed, but user should not need to do anything
|
2020-06-15 00:53:04 +03:00
|
|
|
- Provide a way of initializing the application
|
|
|
|
- Probably taking a simple event that is relayed to appEventsHandler is enough?
|
2020-06-10 05:31:45 +03:00
|
|
|
- Implement Global keys
|
|
|
|
- Improve merge process
|
2020-06-17 22:15:17 +03:00
|
|
|
- Add a way to get path of widget given an id, and provide a method to send a message/event (most likely, a new Request kind)
|
2020-06-15 20:00:52 +03:00
|
|
|
- Rename EventResult to something more accurate
|
|
|
|
- Replace resultWidget and friends with non-Maybe versions (update widgets)
|
2020-06-03 05:23:23 +03:00
|
|
|
- Add _renderLast_ function to Renderer, which delays rendering until the first pass is done
|
|
|
|
- Futher calls to _renderLast_ should not be ignored (tooltip on dropdown menu?)
|
|
|
|
- A _handleDelayedRendering_ also needs to be added
|
|
|
|
- We also need a way of receiving events on _upper_ layers
|
2020-06-24 06:45:57 +03:00
|
|
|
- All this is needed for dropdowns, but it's also useful for tooltips
|
2020-06-26 01:56:00 +03:00
|
|
|
- Create Dropdown
|
2020-04-28 00:29:28 +03:00
|
|
|
- Improve hstack/vstack
|
2020-05-12 01:53:41 +03:00
|
|
|
- If available space is greater than requested, do not apply resizing logic
|
2020-04-28 00:29:28 +03:00
|
|
|
- Does a styling engine make sense or doing something similar to Flutter is simpler?
|
2020-06-30 03:21:41 +03:00
|
|
|
- Does keeping style for some things (fixed width/height) make sense?
|
|
|
|
- Yes! All these properties are staying
|
2020-04-28 00:29:28 +03:00
|
|
|
- Could container handle padding and centering?
|
2020-06-30 01:50:05 +03:00
|
|
|
- No, staying how it is now. It does not disallow having a container, of course
|
2020-04-28 00:29:28 +03:00
|
|
|
- Implement styling engine. Think why Maybe Double instead of Maybe Dimension (to handle pixels, percent, etc)
|
2020-06-30 03:21:41 +03:00
|
|
|
- Handle this with a widget that takes care of assigning space
|
2020-05-31 02:03:45 +03:00
|
|
|
- Improve FixedSize. Consider adding min/max width/height
|
2020-06-30 01:50:05 +03:00
|
|
|
- Not for the moment
|
2020-04-28 00:29:28 +03:00
|
|
|
- Improve ergonomics
|
2020-05-27 00:14:32 +03:00
|
|
|
- https://hackage.haskell.org/package/string-interpolate
|
2020-04-28 00:29:28 +03:00
|
|
|
- Check if advanced type level features would improve the design
|
|
|
|
- Check what syntax extensions can be abused to make life easier
|
2020-05-27 00:14:32 +03:00
|
|
|
- https://limperg.de/ghc-extensions/#basic-patterns
|
|
|
|
- https://limperg.de/ghc-extensions/#datakinds
|
|
|
|
- Maybe -> https://typeclasses.com/extensions-intro
|
2020-04-28 00:29:28 +03:00
|
|
|
- Look for ways that allow both lenses and user events to be used in the same widget
|
2020-06-06 06:19:21 +03:00
|
|
|
- Most likely through a Default instance
|
2020-04-28 00:29:28 +03:00
|
|
|
- Related to previous, look for ways to simplify widget setup. Default instance with common values?
|
2020-05-26 22:01:52 +03:00
|
|
|
- Find way of providing instance config (style, visibility, etc) before providing children (some sort of flip operator)
|
2020-06-30 03:21:41 +03:00
|
|
|
- Just provide `style` after children. SwiftUI does it this way
|
2020-07-03 23:22:03 +03:00
|
|
|
- Fix border drawing. Handle simple case (more efficient)
|
2020-05-30 05:13:24 +03:00
|
|
|
- Fix scroll click navigation
|
2020-07-03 23:22:03 +03:00
|
|
|
- Highlight bar when mouse over
|
|
|
|
- Highlight handle when mouse over
|
|
|
|
- Handle clicks in bar outside handle
|
|
|
|
- Handle handle drag
|
|
|
|
- Mouse over on overlapping axis gives precedence to vertical scroll
|
|
|
|
- Keep sending mouse move event if mouse is away but button is still pressed
|
|
|
|
- Handle mouse enter/leave window events
|
2020-07-11 04:08:19 +03:00
|
|
|
- Add support for scroll requests from children
|
2020-06-26 01:56:00 +03:00
|
|
|
- Improve Dropdown
|
|
|
|
- Expose customizable interface
|
|
|
|
- Request scroll when needed
|
2020-06-28 03:03:06 +03:00
|
|
|
- Validate Maybe values are supported
|
|
|
|
- Create nullable version which takes care of fmapping traversable with Just
|
2020-07-12 03:48:26 +03:00
|
|
|
- Check why vstack fails when using [spacer, listView]
|
2020-07-12 22:53:48 +03:00
|
|
|
- Remove status from Click event. Add ButtonPressed and ButtonReleased events
|
2020-07-14 01:38:51 +03:00
|
|
|
- Change order of parameters. We should always pass _old_ before _new_
|
2020-07-08 05:23:13 +03:00
|
|
|
- Unify criteria for instantiation
|
|
|
|
- Component name without underscore receives parameters positionally
|
|
|
|
- Component name with underscore receives Config instance
|
2020-07-15 02:53:31 +03:00
|
|
|
- If two flexible sized and one remaining elements are in a vstack, problems arise
|
2020-07-14 06:05:35 +03:00
|
|
|
- Add renderer parameter to resize. It will be needed for auto adjustable Label and to handle ellipsis in texts
|
|
|
|
- Maybe creating a record of functions would be useful?
|
|
|
|
- Besides calcTextBounds, we need isClipboardPaste and isClipboardCopy which could be customizable
|
2020-07-16 07:28:04 +03:00
|
|
|
- Customization discarded. What would it be needed for?
|
2020-06-24 06:45:57 +03:00
|
|
|
- Try to unify path handling on widgetFind and widgetNextFocusable
|
2020-07-18 22:36:59 +03:00
|
|
|
- This is cancelled fo the moment. I can't find a good reason for doing it.
|
|
|
|
- WidgetEnv was added as a parameter for completeness sake
|
2020-08-13 05:18:16 +03:00
|
|
|
- This is also needed for widgetUpdateSizeReq and widgetResize
|
2020-08-05 22:29:47 +03:00
|
|
|
- Generalize the "startFrom" concept of widgetFind (and also validate it's actually well/fully implemented)
|
2020-07-19 04:29:48 +03:00
|
|
|
- Should Resize be restored? -> Restored
|
2020-07-18 21:14:16 +03:00
|
|
|
- Make sure enabled/visible attributes are being used
|
2020-07-21 06:41:10 +03:00
|
|
|
- This needs modifying WidgetContext (former PathContext) to include visible and enabled attributes
|
2020-07-21 23:43:41 +03:00
|
|
|
- Move widgetPath into WidgetInstance (do it in init/merge)
|
2020-07-22 07:37:36 +03:00
|
|
|
- Move currentPath into WidgetInstance
|
|
|
|
- Move focusedPath and targetPath to WidgetEnv
|
|
|
|
- Visible and enabled would get updated on init/merge
|
2020-07-30 07:39:48 +03:00
|
|
|
- Format code!
|
2020-08-08 02:37:15 +03:00
|
|
|
- Use newtypes whenever possible
|
2020-08-05 08:11:09 +03:00
|
|
|
- Make types Lens friendly
|
|
|
|
- Use lenses whenever they make the code clearer
|
2020-08-05 22:51:20 +03:00
|
|
|
- Use Lenses for Main/Core.hs' updateInputStatus
|
|
|
|
- Create Lenses for Graphics/Types.hs
|
2020-08-17 02:26:57 +03:00
|
|
|
- Make BaseWidget and BaseContainer use a custom type instead of just Widget. Maybe also rename them?
|
2020-08-17 21:15:51 +03:00
|
|
|
- Improve styling options. Handle cases for Normal, Hover, Focused with independent background and border
|
2020-08-17 22:55:18 +03:00
|
|
|
- Add support for dashed borders
|
|
|
|
- NanoVG does not seem to support this
|
|
|
|
- If we ever move to Skia, reconsider
|
2020-08-12 21:52:54 +03:00
|
|
|
- Fix ListView keyboard navigation
|
2020-08-17 22:55:18 +03:00
|
|
|
- Handle mouse entering/leaving the window
|
2020-08-20 06:29:29 +03:00
|
|
|
- Rename policy... to policyW/H
|
2020-08-11 03:08:50 +03:00
|
|
|
- Create Checkbox
|
|
|
|
- Create Radio
|
2020-08-19 06:04:11 +03:00
|
|
|
- Reorganize Drawing (move helpers to bottom)
|
2020-08-30 02:05:01 +03:00
|
|
|
- Create Image
|
2020-08-30 07:19:54 +03:00
|
|
|
- Add config for Label to choose from: Overflow | Cut (better name?) | Ellipsis
|
2020-09-01 02:43:03 +03:00
|
|
|
- DrawStyledBackground should draw borders after widget content
|
|
|
|
- Request text input when text field gets focus (required for mobile)
|
|
|
|
- Also set TextInputRect
|
2020-07-10 22:10:33 +03:00
|
|
|
- Improve textField
|
|
|
|
- Add text selection/editing to textField
|
|
|
|
- Find non visible character that returns correct height if input is empty
|
2020-09-02 03:36:33 +03:00
|
|
|
- Can we generalize widgetFind?
|
|
|
|
- To find widgetInstances that need a specific kind of event (entities that need timeStep)
|
|
|
|
- Instead of passing Point, pass WidgetQuery ADT. Currently it would support... PointQuery
|
|
|
|
- Do we need this?
|
|
|
|
- It is implemented in chore/unify-query. I honestly don't think it's an improvement
|
|
|
|
- Further textField improvements
|
|
|
|
- Handle long text and cursor position
|
|
|
|
- Scissor needed?
|
2020-09-07 07:40:19 +03:00
|
|
|
- Add support for changing cursor position with mouse click
|
2020-08-30 07:19:54 +03:00
|
|
|
- Rethink Image handling
|
|
|
|
- Should image component keep a copy around?
|
|
|
|
- Should it be provided to renderer every time and, if removed, put back in the list?
|
|
|
|
- Otherwise, when graphics memory is exhausted new images will not be added (until the widget is disposed)
|
2020-09-13 05:02:56 +03:00
|
|
|
- Rethink the idea of global theme in WidgetEnv
|
|
|
|
- Add option to render inner rounded borders with normal outer ones
|
2020-09-11 08:13:23 +03:00
|
|
|
- Further textField improvements
|
|
|
|
- Add support for validation
|
2020-09-14 03:21:33 +03:00
|
|
|
- Add max length limit
|
|
|
|
- Add range limit
|
2020-09-22 03:09:05 +03:00
|
|
|
- Initialize validators (maybe input is invalid and that needs to be signaled)
|
2020-09-26 07:44:54 +03:00
|
|
|
- Think widget config in a similar way to style config (combinator functions)
|
2020-09-22 22:38:48 +03:00
|
|
|
- textField should support textFieldV and validInputV
|
2020-09-26 23:44:47 +03:00
|
|
|
- Add mandatory event parameter for V constructors
|
2020-09-27 00:32:53 +03:00
|
|
|
- Why does the model update when trying to input a char in FloatingInput?
|
2020-09-28 21:11:53 +03:00
|
|
|
- Focus event not received after clicking and gaining focus
|
2020-09-27 00:32:53 +03:00
|
|
|
- Rethink focus handling. Maybe return a list of all focusable elements? Currently shift-tab is not possible
|
2020-09-29 02:44:04 +03:00
|
|
|
- Added a direction parameter to widgetFindNextFocus
|
2020-09-27 00:17:07 +03:00
|
|
|
- Think about argument position for widgets, in particular listview/radio
|
|
|
|
- Should value come before items/option?
|
2020-09-28 21:11:53 +03:00
|
|
|
- Should we use a list of configs instead of <> operator?
|
2020-10-01 05:27:36 +03:00
|
|
|
- Add options to label/button (ellipsis/cut)
|
2020-10-02 02:50:35 +03:00
|
|
|
- Add support for urls to image widget
|
2020-09-29 02:44:04 +03:00
|
|
|
- Add options to image widget (stretch/crop/etc)
|
2020-09-30 06:09:33 +03:00
|
|
|
- Check if re-adding image on render should be inside lock
|
2020-10-05 20:44:48 +03:00
|
|
|
- Improve spacer
|
2020-10-05 22:45:42 +03:00
|
|
|
- Remove Tree
|
2020-10-06 05:17:36 +03:00
|
|
|
- Check why image dissapears when model changes (missing merge)
|
2020-10-05 20:11:04 +03:00
|
|
|
- Reorganize modules.
|
|
|
|
- Common and Widget merged into new Core?
|
|
|
|
- Widget.Widgets moved to Widget?
|
|
|
|
- WidgetCombinators and StyleCombinators merged into a single Combinators?
|
2020-10-05 20:44:48 +03:00
|
|
|
- Create Lens package. BasicTypes lenses should also be there
|
2020-10-05 22:59:29 +03:00
|
|
|
- Create separate Util/WidgetUtil (rename Types to WidgetTypes)
|
|
|
|
- Simplify imports
|
2020-10-06 05:17:36 +03:00
|
|
|
- Create Lens.hs in each module instead of directory
|
|
|
|
- Clean up checkbox/radio (fgcolor, etc)
|
2020-10-05 23:10:08 +03:00
|
|
|
- Simplify Main.hs by abstracting SDL initialization
|
2020-10-09 23:13:30 +03:00
|
|
|
- Add center, right components based on box
|
|
|
|
- Validate font exists before using it in NanoVG (crashes otherwise)
|
|
|
|
- Also added default font
|
2020-10-06 05:17:36 +03:00
|
|
|
- Check if textBounds is enough, or we're missing descending part of font
|
|
|
|
- getFullTextSize should be used?
|
2020-10-09 23:13:30 +03:00
|
|
|
- Make label use fixed height by default
|
|
|
|
- Do not draw non visible items in grid/stack (outside viewport)
|
|
|
|
- Apply scissor
|
2020-10-05 20:11:04 +03:00
|
|
|
- WidgetRequest for error messages? Probably not worth it
|
|
|
|
- Maybe provide a config where a notification/lens can be sent?
|
2020-09-25 02:32:59 +03:00
|
|
|
- Fix dropdown issues
|
2020-10-05 20:11:04 +03:00
|
|
|
- Show listview in appropriate location (if dropdown is at the bottom, the listView should be up)
|
2020-09-25 02:32:59 +03:00
|
|
|
- Implement OnChange/OnChangeReq for listView and dropdown (currently they only implement the Idx versions)
|
2020-10-15 21:38:14 +03:00
|
|
|
- Fix issue on scroll. If moved and later expanded, content remains displaced
|
2020-10-18 08:46:38 +03:00
|
|
|
- Fix text size/cursor position issue
|
2020-10-14 16:47:18 +03:00
|
|
|
|
|
|
|
- Pending
|
2020-10-20 07:16:46 +03:00
|
|
|
- Is overlay not being cleared up?
|
2020-07-13 06:55:53 +03:00
|
|
|
- Create Layer widget
|
2020-10-18 08:46:38 +03:00
|
|
|
- Add clickOutsideChild in box
|
2020-04-28 00:29:28 +03:00
|
|
|
- Create Dialog
|
2020-10-14 16:47:18 +03:00
|
|
|
- Receive Title + Message
|
|
|
|
- Receive Confirm and Cancel actions
|
|
|
|
- Receive Actions and Labels
|
|
|
|
- Receive title, body and buttons (actions and labels)
|
2020-10-19 05:53:25 +03:00
|
|
|
- Check if there's a 1px error in click handling
|
2020-10-20 07:35:43 +03:00
|
|
|
- Review all uses of viewport
|
2020-10-15 21:38:14 +03:00
|
|
|
- Handle findNextFocus in zstack (only consider top layer, unless configured otherwise)
|
2020-10-20 07:16:46 +03:00
|
|
|
- Add way of ignoring unassigned events in stack (or return nothing on findByPoint)
|
2020-10-15 21:38:14 +03:00
|
|
|
- Make sure that focus change requests do not leave overlay if active (most likely an if clause is needed in handleFocusChange)
|
2020-09-02 03:36:33 +03:00
|
|
|
- Create Tooltip component. It just wraps a given component and draws the tooltip with renderOverlay
|
2020-10-18 08:46:38 +03:00
|
|
|
- Multiline label
|
2020-09-02 03:36:33 +03:00
|
|
|
- Add testing
|
|
|
|
- Delayed until this point to try to settle down interfaces
|
|
|
|
- Validate stack assigns space correctly
|
|
|
|
- Use weight to control allocations
|
2020-09-16 05:00:10 +03:00
|
|
|
- Refactor modules where consistency is lacking
|
2020-09-02 03:36:33 +03:00
|
|
|
- Add header in all files, indicating license and documenting what the module does
|
|
|
|
- Add examples
|
2020-10-14 16:47:18 +03:00
|
|
|
- Basic event handling (maybe a form with input and button?)
|
|
|
|
- Fetch content from url, show rows of data with embedded images
|
2020-10-15 21:38:14 +03:00
|
|
|
- Composite example
|
2020-10-14 16:47:18 +03:00
|
|
|
- Something of generative art (OpenGL example)
|
2020-09-02 03:36:33 +03:00
|
|
|
- Add user documentation
|
|
|
|
|
|
|
|
Maybe postponed after release?
|
2020-10-19 05:53:25 +03:00
|
|
|
- Create Theme widget to override global theme
|
2020-10-12 20:02:17 +03:00
|
|
|
- Image widget could also have a ByteString version
|
2020-10-14 16:47:18 +03:00
|
|
|
- Compare Cairo/Skia interfaces to make Renderer able to handle future implementations
|
2020-10-09 23:13:30 +03:00
|
|
|
- Can _wiChildren be removed from Widget and only be kept in Container?
|
2020-09-02 03:36:33 +03:00
|
|
|
- Further textField improvements
|
|
|
|
- Handle mouse selection
|
|
|
|
- Handle undo history
|
|
|
|
- Create numeric wrapper that allows increasing/decreasing with mouse
|
|
|
|
- Create Slider
|
|
|
|
- Create Dial
|
|
|
|
- Create self rendered version of dropdown and list
|
2020-04-28 00:29:28 +03:00
|
|
|
- Create File Selector
|
2020-07-10 22:10:33 +03:00
|
|
|
- Create Color Selector
|
2020-06-30 01:50:05 +03:00
|
|
|
- Create Layout with width/heights specified in percents
|
2020-04-28 00:29:28 +03:00
|
|
|
- Drag & drop for user (add attribute indicating if component supports being source/target)
|
|
|
|
- Add new request types (drag started, drag stopped, drag cancelled)
|
|
|
|
- Add new events (drag hover)
|
2020-06-07 04:54:51 +03:00
|
|
|
- SDL supports Drag and Drop integration with OS
|
2020-10-07 05:59:08 +03:00
|
|
|
- Should StyleState be a phantom type?
|
|
|
|
- A branch was created and got it working
|
2020-10-14 16:47:18 +03:00
|
|
|
- Getting the types working for meant extending that idea to Widget was logical
|
2020-10-07 05:59:08 +03:00
|
|
|
- Interfaces got ugly quickly. Need to revisit
|
2020-09-02 03:36:33 +03:00
|
|
|
- Look for opportunities to reduce code duplication (CompositeWidget and BaseContainer)
|
|
|
|
- Check if using [lifted-async](https://github.com/maoe/lifted-async) is worth it
|
2020-04-28 01:42:54 +03:00
|
|
|
- Implement SDL_Surface + Cairo backend
|
|
|
|
- Can we cache some drawing operations?
|
2020-09-29 02:44:04 +03:00
|
|
|
- Add new request types (drag started, drag stopped, drag cancelled)
|
|
|
|
- Add new events (drag hover)
|
|
|
|
- SDL supports Drag and Drop integration with OS
|