Am 14.04.2013 19:46, schrieb Thomas Martitz:
Am 15.02.2013 22:30, schrieb Thomas Martitz:
My idea is a having a single function:
put_line(int x, int y, struct line_desc *desc, const char *fmt, ...).
I've worked on this further, and it's coming along nicely. I've put my
current work to gerrit [1].
There is still a lot of work:
- I guess charcell is completely broken, havent bothered with that
yet (I'm disappointed that I even still need too...)
- this awkward list (mis-)feature of pushing all items to the left
isn't working yet
- RTL
What works already:
- put_line() as a line-printer: this function draws text icons and
line decorations in a single call and in arbitrary order. it has
printf-like semantics with a format string and a variable parameter list
- pixel based scrolling: put_line() is all pixel based, and so needs
the underlying scroll engine to be. I have implemented just that
- line decorations in apps/: Due to this, the line selector is now
drawn in apps, along with icons. this means that it now can extend to
the icons in list (i.e. the list icons are drawn on top of the line
selector). the line selector is actually extended to the full width,
which the scrollbar and line cursors are drawn above it
- Lots of code cleaned up, especially the lcd_puts* monster is
largely reduced
Please have a look and make comments!
[1]: http://gerrit.rockbox.org/r/#/c/437/ through
http://gerrit.rockbox.org/r/#/c/454/
Best regards.
I rebased my work onto current git HEAD and I plan to push this work
soon (because I want to get my stuff sorted before I work further on
playbacklib). The commits can be reviewed here[1].
I'm a bit cautious because it includes a user visible change: The line
selector bars cover the whole UI viewport width, in paricular they
extend to the menu icons and scrollbar placeholder. Please see [2] and
[3] for before-after screen shots.
Anyway, unless someone voices up I will proceed with the new lcd_puts
API. Following this new function will be a large cleanup in the
low-level lcd driver as well as list item separators (mainly for
touchscreen targets).
[1]:
http://gerrit.rockbox.org/r/#/q/status:open+project:rockbox+branch:master+topic:newline-api,n,z
[2]: http://imagebin.org/283188
[3]: http://imagebin.org/283189
Best regards.