Commit graph

56 commits

Author SHA1 Message Date
Christian Soffke
f3d127f372 Minor confirm prompt adjustments
* Rename LANG_RESET_ASK to LANG_ARE_YOU_SURE,
  so that it matches the actual language string
  (translations remain valid), and can be repurposed
  for generic confirmation prompts, where the
  first line says "Are you sure?", and the second
  line reiterates the selected action

* Add "Reset Settings" as second line to the prompt
  shown before resetting settings, instead of just
  asking "Are you sure?"

* Make Shuffle prompt consistent between WPS and
  Playlist Viewer, and ask whether user is sure they
  want to Shuffle instead of warning them that the
  current playlist will be erased, which was a bit
  misleading

* Explicitly say "Cancelled" when user answers NO to
  erasing the current playlist or to overwriting a file.
  Improves consistency with other prompts that are
  displayed for potentially destructive actions, e.g.
  before items are deleted, renamed, saved, or reset.

* PictureFlow: Prompt before rebuilding/updating cache

Change-Id: Id8ae36db7187315eb1a374701307e6ab4dcdbd1d
2025-05-26 23:15:53 -04:00
William Wilgus
54333536fe [BugFix] YesNo screen wait for button release on exit
if you run yesno screens back to back or another screen with
wait_for_release you may never see the release

instead clear anything in the queue but release events

Change-Id: I1b1e42cbb44f2fdfed441ab1f217b6ea4fe07492
2025-01-17 00:42:25 -05:00
William Wilgus
1e3e9c68c8 [FixRed] Touchscreens in the YesNO dialog
Change-Id: I69cb03d8ffe4a8ecc06517c9a455c3b38327c6be
2023-12-03 10:31:44 -05:00
William Wilgus
9dd1b0f46d [BugFix] YesNo screen scrolling
clearing the viewport stops the scroller
so instead clear the viewport ourselves
[this might cause some glitching but should be acceptable]
in testing this causes no discernible ill effect -- time will tell..

Change-Id: Ia73a459205e37c8aebdf1cd82cd742df3d803af8
2023-12-03 10:13:19 -05:00
William Wilgus
b6ce98c55c [BugFix] yesno screen disappears
sending GUI_EVENT_NEED_UI_UPDATE ensured we got redrawn but it also
sometimes resulted in the yesno screen being overdrawn
depending on which event callback was called last

now increasing the update frequency,
clear the dirty bit on whatever vp we are replacing
and well as call our redraw function instead of sending UI_UPDATE

also found a potential bug in get_font()

Change-Id: I1da6defa6db799a4778590daa0c107aba00a9d34
2023-11-24 16:17:33 -05:00
William Wilgus
eb13628bb8 [BUGFIX] yesno.c use TIME_AFTER macro
Change-Id: I52561dd70e182b3540638d6a7c05474e14fa7a2e
2023-10-09 20:23:03 -04:00
William Wilgus
1c47722226 [Feature] add a prompt to database commit on start-up
adds a new function:
gui_syncyesno_run_w_tmo(ticks, tmo_default_res, main_msg,yes_msg, no_msg)

when a database needs committed on start-up
a yes no prompt will appear if not answered within 5 seconds
it defaults to Yes

if instead you choose No next start-up you will be asked again

you could rebuild the db still and waste time but it wouldn't hurt
anything so I don't think that path needs blocked

Change-Id: I58411f6e6bfebb6f142d99f33a1e8885ae7785c1
2023-10-01 11:51:38 -04:00
William Wilgus
56d4227897 yesno_res gui_syncyesno_run fix scroll run-on bug
the GUI_EVENT_NEED_UI_UPDATE event was not canceled till
after the call to scroll_stop this resulted in the scrolled line
being re-added after the function was done causing a crash

thanks spork, amachronic

Change-Id: I2e484a2b877f6da63171eb997f62a21e95ca9bfc
2022-10-16 13:02:12 -04:00
Aidan MacDonald
c11ed99cb4 bugfix: redraw yes/no screen after a full skin update
This fixes a bug reported on IRC:

1. Set 'bookmark on stop' to 'ask'
2. Play a track from the file browser
3. Stop playback, yes/no screen briefly flashes then disappears.

The screen still handles input correctly but the prompt will not
be displayed on the LCD. Long story short, get_action() can cause
the skin engine to do a full redraw which cleared the screen and
erased the prompt.

There is a special event, GUI_EVENT_NEED_UI_UPDATE, which the list
code uses to avoid precisely this problem.

Hooking up a handler for this event and redrawing the yes/no prompt
fixes the bug.

Change-Id: If3c26655540c13b488b3a11bd46e1d60d4111469
2021-08-29 21:15:34 +01:00
Aidan MacDonald
69420e796c touchscreen: Use pointing mode in the yes/no screen
Seems to fix the unintuitive / inaccurate behavior of this screen.
Rejigger the generic touchscreen keymap because the 3x3 buttons are
no longer used. Also map physical keys for yes/no on the Q1.

Change-Id: I2ed633896b87030fa654d47d9d02929b849495da
2021-08-10 22:48:26 +01:00
Dana Conrad
8056b7fd1a Yes/No Screen: Allow accept to be button release
Allows the ACTION_YESNO_ACCEPT action to be set
to a button release by ignoring certain system events.

Moving USB init in main.c to the last thing to prevent
getting stuck in the USB prompt, if enabled.
Also changing ACTION_YESNO_ACCEPT to button release on erosq

Change-Id: I5e7498521a13cb4e840223dd0b9c8633e99093bc
2021-05-27 19:58:09 -05:00
Solomon Peachy
869a8bfbe7 YesNo: Clear the button queue so a latent keypress doesn't skip the prompt
Change-Id: I055db211f3cceb38b2df00177451c08a3da33426
2020-11-11 15:39:06 +00:00
William Wilgus
40e98a2e49 Whitespace cleanup on fb_viewport Rewrite
Change-Id: I24aac41c8abecf7b78a44d7f59e842b791be4563
2020-10-26 12:38:22 -04:00
William Wilgus
3237ae4a4f LCD core move buf ptr and address look up function viewport struct
I'm currently running up against the limitations of the lcd_draw functions
I want these functions to be able to be used on any size buffer not
just buffers with a stride matching the underlying device

[DONE] allow the framebuffer to be decoupled from the device framebuffer
[DONE need examples] allow for some simple blit like transformations
[DONE] remove the device framebuffer from the plugin api
[DONE}ditto remote framebuffer
[DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr

while remote lcds may compile (and work in the sim) its not been tested on targets

[FIXED] backdrops need work to be screen agnostic

[FIXED] screen statusbar is not being combined into the main viewport correctly yet

[FIXED] screen elements are displayed incorrectly  after switch to void*

[FIXED] core didn't restore proper viewport on splash etc.

[NEEDS TESTING] remote lcd garbled data

[FIXED] osd lib garbled screen on bmp_part

[FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport

[FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer

[FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw)
[UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear
scrolling viewports no longer trigger wps refresh
also fixed a bug where guisyncyesno was displaying and then disappearing

[ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes
(LCD_ and LCD_REMOTE_)
LCD_STRIDE(w, h) same as STRIDE_MAIN
LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H
LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H
LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH)
test_viewports.c has an example of usage

[FIXED!!] 2bit targets don't respect non-native strides
[FIXED] Few define snags

Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
2020-10-26 12:28:48 -04:00
Solomon Peachy
658026e626 [4/4] Remove HAVE_LCD_BITMAP, as it's now the only choice.
Note:  I left behind lcd_bitmap in features.txt, because removing it
would require considerable work in the manual and the translations.

Change-Id: Ia8ca7761f610d9332a0d22a7d189775fb15ec88a
2020-07-24 21:20:13 +00:00
Solomon Peachy
0c4f89370d [2/4] get rid of HAVE_LCD_CHARCELLS
HAVE_LCD_BITMAP is now redundant.

lcd_bitmap is always-on in features.txt so manual and lang strings
don't have to change

Change-Id: I08eeb20de48099ffc2dc23782711af368c2ec794
2020-07-24 21:20:13 +00:00
Thomas Martitz
1c5d0b41ee scroll_engine: Rename scroll_stop* functions to be more consistent with the lcd api.
Change-Id: I8ada10b96bfb628cca0331689e8b936ae47c7e1c
2013-12-14 23:11:30 +01:00
Thomas Martitz
85a6715afa yesno/touchscreen: Only accept on touch release.
Keeping the touchscreen pressed during a screen transition can lead
to accidental actions. action_wait_for_release() currently doesn't work
properly for touchscreen, so it's better to not transition before release.

Change-Id: I37bd67945b05fff1b4a5452313f6415a247e3af9
2012-08-15 23:10:28 +02:00
Thomas Martitz
54e6bafada Fix missed buttons in action.c if action_wait_for_release() was called
with no button pressed.

If e.g. two yesno screens directly follow each other the button release of the
first one was incorrectly accepted in the second one. The fix exposed another
problem in action.c if action_wait_for_release() is called when no button is
actually pressed. The next press was silently eaten.

This time re-introducing FS#12723 is avoided by leaving the offending hunk
out in yesno.c.

Change-Id: Icfe57375067f51f5c8177f3585cd47ceec9dcf0d
2012-08-15 23:08:26 +02:00
Jonathan Gordon
70eb3e6a56 Revert "fix erroneous button read in yesno screen and missed buttons in action.c."
This reverts commit 15775c8bad.
2012-08-14 12:12:15 +10:00
Thomas Martitz
15775c8bad fix erroneous button read in yesno screen and missed buttons in action.c.
If two yesno screens directly follow each other the button release of the
first one was incorrectly accepted in the second one. The fix exposed another
problem in action.c if action_wait_for_release() is called when no button is
actually pressed. The next press was silently eaten.

Change-Id: Iaa5f246f7ea1fd775606620a989cdaec74a9305e
2012-07-18 10:28:08 +02:00
Jonathan Gordon
7949dd4dae protect the yes/no screen from extra keypresses (which can happen if you display 2 yes/no screens too quickly)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31452 a1c6a512-1295-4272-9138-f99709370657
2011-12-28 05:55:05 +00:00
Björn Stenberg
0942e2a0f7 Changed the FOR_NB_SCREENS macro to always be a for loop that declares its own loop variable. This removes the need to declare this variable in the outer scope.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30756 a1c6a512-1295-4272-9138-f99709370657
2011-10-15 19:35:02 +00:00
Jonathan Gordon
a7c37ea2d0 Pull yesno_pop out of the radio code as it is a nice simple resuasble yesno api worth reusing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30183 a1c6a512-1295-4272-9138-f99709370657
2011-07-21 06:40:01 +00:00
Nils Wallménius
04b4722a5c Fix FS#12098 by ignoring battery update events in the yesno screen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29828 a1c6a512-1295-4272-9138-f99709370657
2011-05-07 08:08:49 +00:00
Jonathan Gordon
1d613bee0f Make the yes/no screen useable in the stylus touchscreen mode, add 2 soft-buttons. Also make bottom left yes in grid mode to line up with the new button
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27890 a1c6a512-1295-4272-9138-f99709370657
2010-08-26 10:20:16 +00:00
Jens Arnold
268c6d1e7f Fix two viewport related charcell bugs: crashes in the yesno screen and the USB screen. This mess should really be fixed properly by enabling viewport management for charcell.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25587 a1c6a512-1295-4272-9138-f99709370657
2010-04-11 12:28:02 +00:00
Jonathan Gordon
dc3f746af2 fix FS#10957 - the wps backdrop is always shown in the "create bookmark?" ask screen (Actual fix is to always enable the theme in the yesno screen)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24560 a1c6a512-1295-4272-9138-f99709370657
2010-02-08 05:11:32 +00:00
Thomas Martitz
dee9277a09 Fix FS#9842 by stopping scrolling before leaving the yesno screen.
Seems there are more of this scrolling problems around. In this case it's a rather old bug actually.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22633 a1c6a512-1295-4272-9138-f99709370657
2009-09-05 18:10:41 +00:00
Jonathan Gordon
8b9fdb540c redo how the statusbar updates are done. send the EVENT_GUI_ACTIONUPDATE event every time get_action() is called. The event wont be as realiable (timewise) as before, but seems to work better
This also fixes FS#9761.
Also set the lcd font back to the ui font from the debug screens which use sysfont


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19681 a1c6a512-1295-4272-9138-f99709370657
2009-01-05 09:59:11 +00:00
Jonathan Gordon
d6def79dca fix the yesno screen which I accidently broke with the last commites
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19624 a1c6a512-1295-4272-9138-f99709370657
2008-12-31 10:02:35 +00:00
Jonathan Gordon
e385ee18ce Decouple the statusbar drawing from the rest of the screen drawing. it is not drawn roughly 4x per second automatically.
viewport_Set_defaults() will setup the given viewport with the correct "full screen" dimensions (so start at 0,0 if statusbars are disabled or 0,8 if they are enabled.)
All screens should keep the statusbar enabled, but if you really want to ignore the user setting you can disbaled it with viewportmanager_set_statusbar(false).

This commit also includes some menu/list viewport cleanups from kugel in FS#9603


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19622 a1c6a512-1295-4272-9138-f99709370657
2008-12-31 05:59:26 +00:00
Jonathan Gordon
144f39b4ea revert that scroll engine stuff... good in theory, but broken.
commit a band-aid fix for FS#9140 which is fine untill someone decides to not use the whole screen for it...


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17916 a1c6a512-1295-4272-9138-f99709370657
2008-07-02 13:02:57 +00:00
Daniel Stenberg
2acc0ac542 Updated our source code header to explicitly mention that we are GPL v2 or
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Jonathan Gordon
0501fb016c total removal of gui_textarea. The only thing using the text_message struct is the yesno screen so move its definition to yesno.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17653 a1c6a512-1295-4272-9138-f99709370657
2008-05-29 11:13:46 +00:00
Nils Wallménius
111c999756 Delete whitespace to make 'Id' keyword behave as desired
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17501 a1c6a512-1295-4272-9138-f99709370657
2008-05-14 08:52:19 +00:00
Jonathan Gordon
95be4febc8 doh! fix yellow.
remove the calls to stop_scroll(), clear_viewport() does that

nothing should be using screens[].nb_lines anymore... change the list code to be a good example. (playlist_viewer is the last thing using it which needs fixing)



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17456 a1c6a512-1295-4272-9138-f99709370657
2008-05-11 14:08:46 +00:00
Jonathan Gordon
aff220c9f5 and the time/date screen...
also change the order the yes/no screen clears the viewport.. stop_scroll should be called before clear or you might get artifacts


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17455 a1c6a512-1295-4272-9138-f99709370657
2008-05-11 13:59:27 +00:00
Jonathan Gordon
10df05438e more textarea to viewport conversion... yes/no screen...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17454 a1c6a512-1295-4272-9138-f99709370657
2008-05-11 13:39:22 +00:00
Nils Wallménius
33c44461e1 Const police raid, making a lot of pointers to lang strings const and removing some ugly casting
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17251 a1c6a512-1295-4272-9138-f99709370657
2008-04-26 09:30:24 +00:00
Stéphane Doyon
6f4c6ed990 Straighten out voicing of yesno dialogs.
Make it so gui_syncyesno_run() does not modify the text_messages passed
as argument, simplify the code and even reduce size a bit.
The key is to support voicing at the level of the text_message itself.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15505 a1c6a512-1295-4272-9138-f99709370657
2007-11-07 01:37:00 +00:00
Steve Bavin
32a9575130 FS#7994 - Rename talk.c API, make talk_disable() affect all talking (not just menus), hopefully save some space.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15206 a1c6a512-1295-4272-9138-f99709370657
2007-10-19 15:31:42 +00:00
Peter D'Hoye
05221a9d87 Convert IDs to strings before using them, fixes FS #7564
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14304 a1c6a512-1295-4272-9138-f99709370657
2007-08-12 21:59:42 +00:00
Nils Wallménius
5b76936a44 Accept FS#6159 'Add voice to roughly 100 splash screens and yes-no menus' by Stephane Doyon with some minor tweaks by me. Rerun 'configure' and do a 'make clean' before rebuilding your voice files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14213 a1c6a512-1295-4272-9138-f99709370657
2007-08-06 13:08:36 +00:00
Nils Wallménius
b311367481 *** Lang v2 cleanup (FS#6574) ***
1) Introduces apps/features.txt that controls which strings are included 
for each target based on defines.
2) .lng and .voice files are now target specific and the format versions 
of both these file types have been bumped, which means that new voice 
files are needed. 
3) Use the 'features' mechanism to exclude strings for targets that 
didn't use them.
4) Delete unused and deprecated and duplicated strings, sort strings in 
english.lang

Some string IDs were changed so translations will be slightly worse than 
before.



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14198 a1c6a512-1295-4272-9138-f99709370657
2007-08-05 19:19:39 +00:00
Jonathan Gordon
f7675a244b remove the need for action_signalscreenchange().
Fixes problems with targets where the ACTION_STD_CANCEL event is a combo


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13956 a1c6a512-1295-4272-9138-f99709370657
2007-07-22 06:05:53 +00:00
Peter D'Hoye
93af4feae9 Ignore SYS_CHARGER_DISCONNECTED event in yesno screen (other events may need to be filtered as well) as it made the auto-ROLO question close immediatly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13635 a1c6a512-1295-4272-9138-f99709370657
2007-06-16 11:50:42 +00:00
Nils Wallménius
e6a8d2186c Make a couple of private functions 'static'
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12770 a1c6a512-1295-4272-9138-f99709370657
2007-03-15 00:29:59 +00:00
Jonathan Gordon
7ae5f12449 The list should reset the x margin when it finishes drawing. Not leave
it up to the next screen


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12570 a1c6a512-1295-4272-9138-f99709370657
2007-03-03 13:42:12 +00:00
Jonathan Gordon
07d3db2dec really fix the yes/no screen now, also id3 viewer shows the status bar
correctly


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10630 a1c6a512-1295-4272-9138-f99709370657
2006-08-17 09:28:04 +00:00