summaryrefslogtreecommitdiff
path: root/apps/menu.c
AgeCommit message (Collapse)Author
2019-09-20Bug fix menu -- generalWilliam Wilgus
Several places in the menu code assume MT_MENU though no guarantee existed menu type is now explicitly checked prior to use of the submenu variable Change-Id: Ib9013684309eb2d4cf4a8a809d097b096d3fcffc
2019-09-20Bug fix dynamic menusWilliam Wilgus
Dynamic menus had a buffer_len variable in the parent function but it was discarded before passing to the callbacks Why!!?? No clue but everything that used it was assuming MAXPATH Wouldn't be surprised to see some bugs pop out from this one.. init_menu_lists() was assuming MENU_HAS_DESC and setting the menu title + icon based on such even though it could be invalid didn't see anywhere in the code that was currently using MENU_DYNAMIC_DESC in relation to a top level menu but considering it caused all kinds of corruption to the menu when I tried its probably been tried and abandoned before... Change-Id: I8d961d748918bfa8ea6adb5ad60491af4d739d6e
2019-08-20Save and apply settings after resetting settings in menu.Igor B. Poretsky
Change-Id: I8c38d34d04f59090f02f4b7374860ece153a57ce
2014-01-16menus: Stop scrolling before entering the USB screen or remnants of the ↵Thomas Martitz
previous list could appear on it. Change-Id: I2753c239ef787e0a6af64c3d9c5bdeb26326a9d0
2012-05-06Remove extraneous parensRafaël Carré
2012-01-27Force settings touchscreen mode in menus.Thomas Martitz
Plugins revert to grid mode currently. If they create a list the list ends up in grid mode as well even if they use point mode due to settings in the core. The expectation is that the lists use whatever mode they also use in the core. Force setting in menu to have them behave the same in core and plugins. Change-Id: I9534b2f21ccfa920eb2e48f66b04ecbda7a59011
2012-01-12keyclick: Add a callback so screens can cancel a click. Add a generic list ↵Jonathan Gordon
callback to stop clicks when we are at the end of the list Change-Id: Iabb44a861dd7506cd883c1bdb0241303fa646746
2011-11-15FS#12251 - User shortcuts in the main menu.Jonathan Gordon
Custom shortcuts which give the user fast access to regularly used files/folders/settings/whatever. Thanks to Alexander Levin for the manual part of the patch git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30990 a1c6a512-1295-4272-9138-f99709370657
2011-10-15Changed the FOR_NB_SCREENS macro to always be a for loop that declares its ↵Björn Stenberg
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-06-01FS#11925 - Add a proper system to keep track of the current screen/activity ↵Jonathan Gordon
to make %cs far more useful git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29944 a1c6a512-1295-4272-9138-f99709370657
2011-01-29Change the way how playlists and system menu items in the main menu are ↵Thomas Martitz
internally invoked so that the mechanism to pass the back button press to the android system (to let it go to the home screen) works for them. This fixes that the back button goes still to the home screen after entering these items. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29157 a1c6a512-1295-4272-9138-f99709370657
2010-10-31Add support multimedia keys/buttons to the core, and adapt Rockbox on ↵Thomas Martitz
android for it (multimedia buttons are found on wired headsets and the lock screen in cyanogenmod). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28421 a1c6a512-1295-4272-9138-f99709370657
2010-10-30fix menu screen title bug - patch by TeruMichael Chicoine
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28391 a1c6a512-1295-4272-9138-f99709370657
2010-09-21do_setting_from_menu(): remove write-only variablesRafaël Carré
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28136 a1c6a512-1295-4272-9138-f99709370657
2010-08-07Correct flawed search&replace.Thomas Martitz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27747 a1c6a512-1295-4272-9138-f99709370657
2010-08-07Android port: handle incoming calls.Thomas Martitz
Stop explicitely if a call comes in, and resume playback (if it was playing before the call) upon hang up. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27746 a1c6a512-1295-4272-9138-f99709370657
2010-07-11do not redraw menu when exiting the menu.Teruaki Kawashima
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27383 a1c6a512-1295-4272-9138-f99709370657
2010-05-09FS#11250: Hotkey setting method changed to menu item vs button pres in ↵Jeffrey Goode
context menu. Manuals updated to match. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25905 a1c6a512-1295-4272-9138-f99709370657
2010-05-07Fix hotkey select behavior, ignore selection if menu item is not hotkeyable. ↵Jeffrey Goode
Will not exit the context menu now git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25877 a1c6a512-1295-4272-9138-f99709370657
2010-05-07Fix redJeffrey Goode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25876 a1c6a512-1295-4272-9138-f99709370657
2010-05-07Hotkey menu items have their own iconJeffrey Goode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25866 a1c6a512-1295-4272-9138-f99709370657
2010-04-01FS#11081 - Hotkey patch. Many targets supported, but some keymaps need work ↵Jeffrey Goode
before they can be switched on git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25414 a1c6a512-1295-4272-9138-f99709370657
2010-02-262 new tags for the base skin.Jonathan Gordon
%Lt - the title text for the current list %Li - the icon number. Same order as the CustomIcons list, except the first icon is the "no icon" icon. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24917 a1c6a512-1295-4272-9138-f99709370657
2010-02-11fix text scrolling handling in do_menu, set_time_screen and time_screen.Teruaki Kawashima
Don't scroll text in time_screen(). the lines will be redrawn before scrolling statrs, so they don't scroll anyway. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24591 a1c6a512-1295-4272-9138-f99709370657
2010-01-26Accept the last patch FS#10797 with a few changes by me (fixing side effects ↵Thomas Martitz
and adding the new backdrop_hide() to the multi screen api). It changes the hide_bars parameter to mean hide_theme. This makes plugins show the menu backdrop in their backdrop so that they don't look like crap if you have an sbs and look more integrated. I've test about all plugins and all work fine. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24335 a1c6a512-1295-4272-9138-f99709370657
2009-12-21fix FS#10870 - slightly change the viewportmanager theme undo-er to be able ↵Jonathan Gordon
to force an update even if the theme isnt being toggled from off to on which caused WPS artifacts when leaving the WPS if the theme was enabled git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24087 a1c6a512-1295-4272-9138-f99709370657
2009-12-17only stop scrolling in the menu's viewport not the whole display (Fixes ↵Jonathan Gordon
scrolling lines in sbs's being stopped when moving around menus) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24038 a1c6a512-1295-4272-9138-f99709370657
2009-12-17code police and make do_menu() obey the hide_bars param which was never ↵Jonathan Gordon
meant to be removed git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24037 a1c6a512-1295-4272-9138-f99709370657
2009-12-16Fix FS#10289 - screens showing a list need to check the show_icons setting ↵Jonathan Gordon
before setting the callback. the List will now always draw icons if a callback is set (like its always done for voice) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24022 a1c6a512-1295-4272-9138-f99709370657
2009-12-09FS#10824 - viewport/statusbar API rework.Jonathan Gordon
Hopefully the only user visible changes are: - fm and recording screens go by the statusbar setting (sbs or inbuilt) - plugins go back to using the theme as they should for menus and lists - splash screens might get cut a bit... entirely theme and splash dependant.. if there is a problematic one we can look at it later. - hopefully nothing more than very minor screen flickerings... let me know exactly where they are so they can be fixed New GUI screen rules: * Screens assume that the theme (sbs+ui viewport+ maybe background image) are always enabled. They may be disabled on a per display basis, but MUST be re-enabled on exit * Screens must not be coded in a way that requires a statusbar of any type.. the inbuilt bar will be removed shortly. ALWAYS RESPECT THE USERS SETTINGS unless the screen requires the full display to fit. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23904 a1c6a512-1295-4272-9138-f99709370657
2009-08-29Quickscreen: 4th itemThomas Martitz
This adds a 4th top item to the quickscreen. It's as configurable as the existing three items. This patch goes along with optimisations for small screens for better displaying of all four items. 14px font is very usable on a 64px height display for example. Left and Top items go through the items in the opposite direction, so that you can mirror a setting and toggle through it in both directions. Default item is party mode, as it's target independant. Flyspray: FS#9706 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22532 a1c6a512-1295-4272-9138-f99709370657
2009-08-20Make the formatter functions used by the settings return a pointer to avoid ↵Nils Wallménius
usless copying of lang strings, this brought with it a long chain of const correctness and a few random cleanups git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22440 a1c6a512-1295-4272-9138-f99709370657
2009-08-19fix redNils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22432 a1c6a512-1295-4272-9138-f99709370657
2009-08-16User definable UI viewport, to be able to restrict the UI into a viewport ↵Thomas Martitz
for all bitmap displays. Flyspray: FS#8799 This will allow for pretty themes, for example those with nice glass effects on their backdrops (some might argue they're wasting screen space but it's upto them), as well as allowing for future background WPS updates in the main UI. Plugins are not converted yet, they simply use the full screen. Ideally, any plugin that does *not* want the UI viewport, should take care of that itself (i.e. plugins should normally use the UI viewport). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22365 a1c6a512-1295-4272-9138-f99709370657
2009-08-06Remove some unused #includesBertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22183 a1c6a512-1295-4272-9138-f99709370657
2009-07-29fix forcing scrolling title like "Scroll Speed Setting Example".Teruaki Kawashima
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22081 a1c6a512-1295-4272-9138-f99709370657
2009-07-27Start of some apps/ and wps cleanup work... Move everything related to the ↵Jonathan Gordon
actual drawing of the wps into apps/gui/wps_engine, things related to the actual screen are in apps/gui/music_screen.c (names are temporary unless noone comes up with anything better) No real code changes. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22062 a1c6a512-1295-4272-9138-f99709370657
2009-07-14FS#10080Nils Wallménius
* Move strncpy() from core to the pluginlib * Introduce strlcpy() and use that instead in most places (use memcpy in a few) in core and some plugins * Drop strncpy() from the codec api as no codec used it * Bump codec and plugin api versions git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21863 a1c6a512-1295-4272-9138-f99709370657
2009-07-11Fix type mismatch warnings and errors exposed when building with EABI toolchain.Andrew Mahone
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21769 a1c6a512-1295-4272-9138-f99709370657
2009-06-26FS#10283 simplify plugins' menus by using stringlist with callback (by ↵Johannes Schwarz
Teruaki Kawashima - some minor changes by myself) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21523 a1c6a512-1295-4272-9138-f99709370657
2009-06-13Fix typo in comment.Thomas Martitz
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21278 a1c6a512-1295-4272-9138-f99709370657
2009-05-09Remove unneeded #include "backdrop.h"Bertrik Sikken
Remove unneeded #include "statusbar.h" git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20891 a1c6a512-1295-4272-9138-f99709370657
2009-04-25Remove unnecessary #include "backlight.h"Bertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20790 a1c6a512-1295-4272-9138-f99709370657
2009-03-10Fix redraw sequence when exiting a setting menu, so splashes work properly - ↵Steve Bavin
see FS#9994. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20281 a1c6a512-1295-4272-9138-f99709370657
2009-03-08Clean up some #includesBertrik Sikken
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20238 a1c6a512-1295-4272-9138-f99709370657
2009-02-01Accept a quick patch from Alexander Levin to neaten up the #defines and ↵Jonathan Gordon
comments from my earlier commit git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19897 a1c6a512-1295-4272-9138-f99709370657
2009-02-01Statusbar handling fixes. Jonathan Gordon
Fixes FS#9845 - %we/%wd wasnt working WPS no longer resets the viewportmanger more than needed (was doing it twice/draw before) screens can now enable/disable the statusbar easily ignoring the setting instead of needing special handling (fix for the radio screen coming soon) minor glitch introduced in this commit... the statusbar in the WPS might disappear for a fraction of a second when it is entered, I need to track this down... git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19894 a1c6a512-1295-4272-9138-f99709370657
2009-01-03a few more button/statusbar fixes...Jonathan Gordon
* hopefully fix the last of the plugins which dont handle the enw SYS event. * fix FS#9750 - WPS's which dont specify (or force the wps on) wernt showing the statusbar at all * lamp, battery_bench, *_flash button handling fixes * plugins using the core menu code will again show the statusbar git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19656 a1c6a512-1295-4272-9138-f99709370657
2008-12-31Decouple the statusbar drawing from the rest of the screen drawing. it is ↵Jonathan Gordon
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-03revert part of r18933 which fixes FS#9600. Jonathan Gordon
This fix is a bit wasteful, but fine untill the menu starts being called with a parent viewport. The real fix should be using a callback to notify the menu to reinit its viewports when the theme changes git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19310 a1c6a512-1295-4272-9138-f99709370657