ui icon indicating copy to clipboard operation
ui copied to clipboard

Version 0.1 Roadmap

Open thecodrr opened this issue 5 years ago • 74 comments

Many features will need discussion so this thread acts as both a discussion & a task list for contributors/maintainers.

Notes:

  1. All these features won't necessarily make it into the v0.1 but they are planned nonetheless.
  2. Mentions after the each entry means that feature is being worked on by those persons.
  3. Please don't ask for ETAs. We are working on it as much as possible. Once it's done, you will know. You can follow the development on the Discord Channel.

API

  • [x] Declarative style (@thecodrr)
  • [ ] Hot code reloading
  • [x] Proper eventing system using eventbus (@thecodrr)
  • [ ] RTL support
  • [ ] Themes
  • [ ] Custom widgets on user level
  • [ ] DataBinding to arrays & orm columns
  • [ ] Widget customization using properties (color etc.)

Window API

  • [ ] Drag & Drop
  • [ ] Custom Scaling
  • [ ] Resizing

Responsiveness

  • [ ] Relative values for dimensions, margins etc. (percentage or px)
  • [ ] Hover, focus feedback
  • [x] Animations & Transitions (@memeone)
  • [ ] Tab support (focus)

Layout

  • [x] Column (@thecodrr)
  • [x] Row (@thecodrr)
  • [ ] FlexBox
  • [ ] Grid
  • [ ] Dock Panel

Widgets

  • [ ] Menus
  • [ ] ScrollView (@thecodrr)
  • [ ] ListBox
  • [ ] ListView
  • [ ] DataGrid
  • [ ] Tab Control
  • [ ] WebView
  • [x] Slider (@thecodrr)
  • [x] Dropdown (@thecodrr)
  • [ ] Tooltips
  • [ ] TreeView

TextBox

  • [ ] Multiline textbox
  • [x] Text selection with a mouse (@thecodrr)
  • [ ] TextBox Validation
  • [ ] Format support

Accessibility

  • [ ] Screen reader support

More items will be added as required

thecodrr avatar Jan 17 '20 11:01 thecodrr

I feel like animations/transitions are pretty important in modern software as well. Add it to the list?

hex2f avatar Jan 17 '20 11:01 hex2f

Proper eventing system using eventbus instead of the current struct Fn fields.

This might be solved automatically by implementing everything as generic streams.

dumblob avatar Jan 17 '20 12:01 dumblob

For the lay out manager of components, please consider also looking at the imperative programming style of MigLayout API. It's small easy-to-read tutorial/manual is enough to give you an overview of its entire API. http://www.miglayout.com/

ryandavs avatar Jan 18 '20 01:01 ryandavs

For the lay out manager of components, please consider also looking at the imperative programming style of MigLayout API.

Does this have advantages over just using flexbox?

elimisteve avatar Jan 18 '20 04:01 elimisteve

  • Render or Viewport Widget (aka direct access to the display memory to stream video or render frames from a game)
  • Right-Left text editing direction (Arabic, Hebrew, Urdu...)
  • Drag-and-drop (i.e. filename or whole path+filename)
  • Tabbed widget
  • Resizeable widget's borders
  • Dockable widget or windows
  • Inability to drag or put a widget/windows completely outside of screen view !!! Perhaps with a recenter event.
  • Fullscreen command for widget
  • Prefilling forms (perhaps this can be done with events)
  • Zoom
  • Color selector widget

lazalong avatar Jan 21 '20 00:01 lazalong

@lazalong

Render or Viewport Widget

We already have Canvas which does basically the same thing.

thecodrr avatar Jan 21 '20 15:01 thecodrr

Good job! Can you give an approximate completion time? I insterest in v lang and I want dev cnc controll software using vui.

origel avatar Jan 22 '20 01:01 origel

Good job! Can you give an approximate completion time? I insterest in v lang and I want dev cnc controll software using vui.

@origel No ETAs please.

thecodrr avatar Jan 22 '20 06:01 thecodrr

@thecodrr you can put me on animations, transitions are already merged

hex2f avatar Jan 22 '20 16:01 hex2f

I’m also looking at implementing a scrollview but no guarantee that I’ll be able to pull it off

hex2f avatar Jan 22 '20 16:01 hex2f

@memeone I will move on to ScrollView after the new API is merged. If you want to take it, I will look at something else.

thecodrr avatar Jan 22 '20 16:01 thecodrr

@thecodrr you can take it, maybe I’ll look at styling or hover feedback instead 🤔

hex2f avatar Jan 22 '20 17:01 hex2f

@memeone okay awesome.

thecodrr avatar Jan 22 '20 17:01 thecodrr

@thecodrr I want implment some layout just like FillLayout,FormLayout, RowLayout and GridLayout in SWT, if vui is added layout function, vui can be used to develope actual software. But I have no idea if it is needed. and the layout description in 0.1 roadmap I don't know what does it mean, can you give me some suggestion? What can I do to make this project move faster?

origel avatar Jan 24 '20 08:01 origel

@origel I have already implemented 2 layouts: ColumnLayout & RowLayout. You should try it out.

thecodrr avatar Jan 24 '20 12:01 thecodrr

  1. Tabs (mentioned above)
  2. Framebuffer (is canvas the same? )
  3. Map / Cartography / Webdata visualizer
  4. Dials, guages, windrose, clock...
  5. Charting widget
  6. Rich text

is the codebase of V in C? how can i write my own custom widgets and contribute?

naturalmechanics avatar Mar 28 '20 04:03 naturalmechanics

V is written in V, the main repo can be found at https://github.com/vlang/v

Creating new widgets is quite easy, you can look at rectangle.v and label.v in this repo for some simple reference implementations.

hex2f avatar Mar 28 '20 10:03 hex2f

Will the lambda expression be added? Hope to be like kotlin anko's ui dsl

fxqy avatar Apr 05 '20 06:04 fxqy

Add MDI (Multiple Document Interface)

Keyn1 avatar May 11 '20 04:05 Keyn1

Years ago I implemented in a Java UI framework the ability to disable animations and transitions, sometimes (on old/poor hardware and some kind on users) they are not needed ... maybe you could add here even a similar feature, but of course by default enabled :-) . Bye

smartiniOnGitHub avatar May 19 '20 18:05 smartiniOnGitHub

A navigator widget could be nice

iampato avatar May 25 '20 21:05 iampato

@lampato don’t really know what you mean by “navigator widget”. Do you have any examples? I’m gonna start trying to implement a few more widgets soon :)

hex2f avatar May 25 '20 22:05 hex2f

file dialogue probably

medvednikov avatar May 25 '20 23:05 medvednikov

@leahlundqvist a widget to navigator to/for a page with twists!!

iampato avatar Jun 06 '20 09:06 iampato

webview webview!!!

xiusin avatar Jun 08 '20 09:06 xiusin

It would also be nice to have a font_path option. And since multiline_textbox is on the roadmap, it would make good sense to have a text.v file dedicated to the text calculation, width, wrapping, etc... functions.

benstigsen avatar Jun 25 '20 11:06 benstigsen

Is tab-handling (in the meaning of navigation from control to control) already in the pipeline? When trying examples/users.v this was the first issue I was missing.

vmcrash avatar Sep 06 '20 16:09 vmcrash

yes @vmcrash, I've added it to the roadmap

medvednikov avatar Sep 06 '20 21:09 medvednikov

Maybe also having some documentation would be something needed no ? Because I can't find any api doc, tutorial or something else...

dedesite avatar Nov 26 '20 20:11 dedesite

@dedesite currently you have to look at the examples or in the widget source codes directly. Currently the main focus is on stabilizing V. After that UI will get some love too and it will get some docs for sure ;)

serkonda7 avatar Nov 26 '20 20:11 serkonda7