<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rockbox/apps/gui/line.c, branch working</title>
<subtitle>My Rockbox tree</subtitle>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/'/>
<entry>
<title>Fix greyscale and mono builds.</title>
<updated>2014-03-03T15:34:36+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-03-03T15:17:27+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=00434be0f129eb72e3a0bd99deed2923c760cd5e'/>
<id>00434be0f129eb72e3a0bd99deed2923c760cd5e</id>
<content type='text'>
Change-Id: I511376eb42d1109dbe10d4fc5aa849b21d9f7582
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I511376eb42d1109dbe10d4fc5aa849b21d9f7582
</pre>
</div>
</content>
</entry>
<entry>
<title>Touchscreen: Show a line separator in lists.</title>
<updated>2014-03-03T14:14:16+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2013-05-06T05:20:40+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=05a67d021c8fbb10b2654f8378b549901dd4c520'/>
<id>05a67d021c8fbb10b2654f8378b549901dd4c520</id>
<content type='text'>
This patch adds a configurable line separator between list items, very
similar to lists in Android. Additionally, below the list item there is a
thicker line. It can be disabled in the settings. Its color can
be configured as well.

Remote and monochrome displays are explicitly unsupported. If there is desire
this can be changed but it doesn't seem useful to me.

Change-Id: I005313b0d8f5ecd15864bf20e66ea4e3390d8b7d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds a configurable line separator between list items, very
similar to lists in Android. Additionally, below the list item there is a
thicker line. It can be disabled in the settings. Its color can
be configured as well.

Remote and monochrome displays are explicitly unsupported. If there is desire
this can be changed but it doesn't seem useful to me.

Change-Id: I005313b0d8f5ecd15864bf20e66ea4e3390d8b7d
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix regression introduced by eec89a9.</title>
<updated>2014-03-03T14:14:07+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-03-03T14:13:11+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=ee28a706d4909b00d6bcfc304683b10ba9b853e0'/>
<id>ee28a706d4909b00d6bcfc304683b10ba9b853e0</id>
<content type='text'>
The icon pixel position must be calculated before y is modified.

Change-Id: I16947dd8862683530dd7c5f00cfa7cf8d9636e61
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The icon pixel position must be calculated before y is modified.

Change-Id: I16947dd8862683530dd7c5f00cfa7cf8d9636e61
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix FS#12951: The icons could be a pixel to far down.</title>
<updated>2014-03-03T10:20:13+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-02-28T06:29:32+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=3ae07d48a2182fc3b1f8e9b15e6366ff32b92e25'/>
<id>3ae07d48a2182fc3b1f8e9b15e6366ff32b92e25</id>
<content type='text'>
Since eec89a9 icons have been centered using same calculation as for fonts.
In edge cases this is visually different from before and didn't align
well to the font's baseline. Revert to the old calculation just for centering
icons to fix.

A proper aligorithm would take the baseline into account but this has
worked sufficiently well for us (fix this if needed)

Change-Id: I86593529b16cd28ae4552641e216e73795f2450c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since eec89a9 icons have been centered using same calculation as for fonts.
In edge cases this is visually different from before and didn't align
well to the font's baseline. Revert to the old calculation just for centering
icons to fix.

A proper aligorithm would take the baseline into account but this has
worked sufficiently well for us (fix this if needed)

Change-Id: I86593529b16cd28ae4552641e216e73795f2450c
</pre>
</div>
</content>
</entry>
<entry>
<title>put_line(): Add another check against possible buffer overflow (see 193911a).</title>
<updated>2014-01-12T18:19:05+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-01-12T18:19:05+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=09e655f89df9cea14838136a6072b0b2d8ee2d48'/>
<id>09e655f89df9cea14838136a6072b0b2d8ee2d48</id>
<content type='text'>
Change-Id: Idc6637cc42afe612375dab3acac8495278f68f0a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Idc6637cc42afe612375dab3acac8495278f68f0a
</pre>
</div>
</content>
</entry>
<entry>
<title>put_line(): Fix buffer overflow.</title>
<updated>2014-01-12T16:37:16+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-01-12T16:31:53+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=193911af760d460198fc7f08bf6da824f74975b7'/>
<id>193911af760d460198fc7f08bf6da824f74975b7</id>
<content type='text'>
At the end of the format string it wrote a last byte (or inline string) past
the end of the lcd boundaries, potentially overwriting unrelated memory. It
now makes sure it won't exceed the viewport's width.

Change-Id: Id4cfce918e8b070b7fc3c7d33f389f7a171963ff
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
At the end of the format string it wrote a last byte (or inline string) past
the end of the lcd boundaries, potentially overwriting unrelated memory. It
now makes sure it won't exceed the viewport's width.

Change-Id: Id4cfce918e8b070b7fc3c7d33f389f7a171963ff
</pre>
</div>
</content>
</entry>
<entry>
<title>put_line(): Do not lock up if the scroll engine runs out of lines.</title>
<updated>2014-01-12T11:12:13+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-01-12T11:12:13+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=6e882b43b6242e102f4514904c57abb68ad69efe'/>
<id>6e882b43b6242e102f4514904c57abb68ad69efe</id>
<content type='text'>
Allocate MAX_LINES+1 because at the time get_line_desc() is called
the scroll engine did not yet determine that it ran out of lines
(because puts_scroll_func() wasn't called yet. Therefore we can
run out of lines before setting the used field. By allocating
one item more we can survive that point and set used to false
if the scroll engine runs out of lines.

Change-Id: I7a9af1bce256c6e07d254f096bd5865fa7cf2cee
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allocate MAX_LINES+1 because at the time get_line_desc() is called
the scroll engine did not yet determine that it ran out of lines
(because puts_scroll_func() wasn't called yet. Therefore we can
run out of lines before setting the used field. By allocating
one item more we can survive that point and set used to false
if the scroll engine runs out of lines.

Change-Id: I7a9af1bce256c6e07d254f096bd5865fa7cf2cee
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix remote warnings and charcell reds, and remove minor left-over tuff.</title>
<updated>2014-01-12T00:50:21+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-01-12T00:50:21+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=0a0d61e777c47d742be195dd9c661065be0eb7da'/>
<id>0a0d61e777c47d742be195dd9c661065be0eb7da</id>
<content type='text'>
Change-Id: I10987ea9fcad94d502afd4ae4a80ab9022c75d2e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I10987ea9fcad94d502afd4ae4a80ab9022c75d2e
</pre>
</div>
</content>
</entry>
<entry>
<title>put_line/scrolling: Make the scroll engine inform custom scrollers about start/stop of scrolling.</title>
<updated>2014-01-12T00:34:06+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-01-12T00:30:26+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=488a1b983e1c2fac14de25aa781caf12628e53c8'/>
<id>488a1b983e1c2fac14de25aa781caf12628e53c8</id>
<content type='text'>
With the new lcd_putsxy_scroll_func() code can register custom scroll functions
(put_line() makes use of that). In order for the custom scroller to be able
to properly manage its userdata pointer (set via struct scrollinfo::userdata)
the scroll engine must inform the scroller about start and stop of scrolling.

To inform about start the lcd_scroll_* functions now return true when
the line will scroll. To inform about stop the scroll engine calls into the
scroller one last time, with the text set to NULL.

put_line() can use this to release the userdata registered per scrolling line
so that it can be recycled.

This fixes that some scrolling lines became glitchy after some time because
the userdata was recycled too early.

Change-Id: Iff0a6ce2a4f9ae2bada1b8e62f4f5950224942a9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With the new lcd_putsxy_scroll_func() code can register custom scroll functions
(put_line() makes use of that). In order for the custom scroller to be able
to properly manage its userdata pointer (set via struct scrollinfo::userdata)
the scroll engine must inform the scroller about start and stop of scrolling.

To inform about start the lcd_scroll_* functions now return true when
the line will scroll. To inform about stop the scroll engine calls into the
scroller one last time, with the text set to NULL.

put_line() can use this to release the userdata registered per scrolling line
so that it can be recycled.

This fixes that some scrolling lines became glitchy after some time because
the userdata was recycled too early.

Change-Id: Iff0a6ce2a4f9ae2bada1b8e62f4f5950224942a9
</pre>
</div>
</content>
</entry>
<entry>
<title>put_line(): Limit and truncate inline strings to MAX_PATH+32.</title>
<updated>2014-01-09T22:17:38+00:00</updated>
<author>
<name>Thomas Martitz</name>
<email>kugel@rockbox.org</email>
</author>
<published>2014-01-09T21:59:46+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=7ba2d0160b6b4bfd68fc1d0819858f7138e2d1d4'/>
<id>7ba2d0160b6b4bfd68fc1d0819858f7138e2d1d4</id>
<content type='text'>
Because inline strings have to be copied (to escape '$') the local buffer
can be exhaused. The code didn't check for this. The buffer is increased
to handle filenames plus some extra chars but truncates to avoid overflow.

If you have longer strings please pass them via $t tag, in which case
put_line() imposes no additional length-limitation.

Change-Id: I0ca20adbe72f6d44cb442f34d665c16b12cbbaeb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because inline strings have to be copied (to escape '$') the local buffer
can be exhaused. The code didn't check for this. The buffer is increased
to handle filenames plus some extra chars but truncates to avoid overflow.

If you have longer strings please pass them via $t tag, in which case
put_line() imposes no additional length-limitation.

Change-Id: I0ca20adbe72f6d44cb442f34d665c16b12cbbaeb
</pre>
</div>
</content>
</entry>
</feed>
