diff options
author | Markus Braun <markus.braun@krawel.de> | 2002-08-20 19:37:00 +0000 |
---|---|---|
committer | Markus Braun <markus.braun@krawel.de> | 2002-08-20 19:37:00 +0000 |
commit | 5e4c1d2ad8278ea3787766c506dc5997d96b9386 (patch) | |
tree | b873f7f2bf3a95b222652a32cb225375c8b800aa /apps/settings.c | |
parent | eef970428be36d2eda5a4db1923a4cc474b94a0b (diff) | |
download | rockbox-5e4c1d2ad8278ea3787766c506dc5997d96b9386.tar.gz rockbox-5e4c1d2ad8278ea3787766c506dc5997d96b9386.zip |
enabled status bar in menus on recorders
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1822 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings.c')
-rw-r--r-- | apps/settings.c | 133 |
1 files changed, 119 insertions, 14 deletions
diff --git a/apps/settings.c b/apps/settings.c index 00510a9204..74843fe20d 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -34,6 +34,10 @@ | |||
34 | #include "power.h" | 34 | #include "power.h" |
35 | #include "backlight.h" | 35 | #include "backlight.h" |
36 | #include "powermgmt.h" | 36 | #include "powermgmt.h" |
37 | #include "status.h" | ||
38 | #ifdef HAVE_LCD_BITMAP | ||
39 | #include "icons.h" | ||
40 | #endif | ||
37 | 41 | ||
38 | struct user_settings global_settings; | 42 | struct user_settings global_settings; |
39 | 43 | ||
@@ -440,14 +444,23 @@ void set_bool(char* string, bool* variable ) | |||
440 | bool done = false; | 444 | bool done = false; |
441 | int button; | 445 | int button; |
442 | 446 | ||
447 | #ifdef HAVE_LCD_BITMAP | ||
448 | if(global_settings.statusbar) | ||
449 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
450 | else | ||
451 | lcd_setmargins(0, 0); | ||
452 | #endif | ||
443 | lcd_clear_display(); | 453 | lcd_clear_display(); |
444 | lcd_puts_scroll(0,0,string); | 454 | lcd_puts_scroll(0, 0, string); |
445 | 455 | ||
446 | while ( !done ) { | 456 | while ( !done ) { |
447 | lcd_puts(0, 1, *variable ? "on " : "off"); | 457 | lcd_puts(0, 1, *variable ? "on " : "off"); |
458 | #ifdef HAVE_LCD_BITMAP | ||
459 | status_draw(); | ||
460 | #endif | ||
448 | lcd_update(); | 461 | lcd_update(); |
449 | 462 | ||
450 | button = button_get(true); | 463 | button = button_get_w_tmo(HZ/2); |
451 | switch ( button ) { | 464 | switch ( button ) { |
452 | #ifdef HAVE_RECORDER_KEYPAD | 465 | #ifdef HAVE_RECORDER_KEYPAD |
453 | case BUTTON_LEFT: | 466 | case BUTTON_LEFT: |
@@ -458,10 +471,31 @@ void set_bool(char* string, bool* variable ) | |||
458 | done = true; | 471 | done = true; |
459 | break; | 472 | break; |
460 | 473 | ||
461 | default: | 474 | #ifdef HAVE_RECORDER_KEYPAD |
475 | case BUTTON_UP: | ||
476 | case BUTTON_DOWN: | ||
477 | #else | ||
478 | case BUTTON_LEFT: | ||
479 | case BUTTON_RIGHT: | ||
480 | #endif | ||
462 | if(!(button & BUTTON_REL)) | 481 | if(!(button & BUTTON_REL)) |
463 | *variable = !*variable; | 482 | *variable = !*variable; |
464 | break; | 483 | break; |
484 | |||
485 | #ifdef HAVE_RECORDER_KEYPAD | ||
486 | case BUTTON_F3: | ||
487 | #ifdef HAVE_LCD_BITMAP | ||
488 | global_settings.statusbar = !global_settings.statusbar; | ||
489 | settings_save(); | ||
490 | if(global_settings.statusbar) | ||
491 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
492 | else | ||
493 | lcd_setmargins(0, 0); | ||
494 | lcd_clear_display(); | ||
495 | lcd_puts_scroll(0, 0, string); | ||
496 | #endif | ||
497 | break; | ||
498 | #endif | ||
465 | } | 499 | } |
466 | } | 500 | } |
467 | lcd_stop_scroll(); | 501 | lcd_stop_scroll(); |
@@ -477,16 +511,25 @@ void set_int(char* string, | |||
477 | { | 511 | { |
478 | bool done = false; | 512 | bool done = false; |
479 | 513 | ||
514 | #ifdef HAVE_LCD_BITMAP | ||
515 | if(global_settings.statusbar) | ||
516 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
517 | else | ||
518 | lcd_setmargins(0, 0); | ||
519 | #endif | ||
480 | lcd_clear_display(); | 520 | lcd_clear_display(); |
481 | lcd_puts_scroll(0,0,string); | 521 | lcd_puts_scroll(0, 0, string); |
482 | 522 | ||
483 | while (!done) { | 523 | while (!done) { |
484 | char str[32]; | 524 | char str[32]; |
485 | snprintf(str,sizeof str,"%d %s ", *variable, unit); | 525 | snprintf(str,sizeof str,"%d %s ", *variable, unit); |
486 | lcd_puts(0,1,str); | 526 | lcd_puts(0, 1, str); |
527 | #ifdef HAVE_LCD_BITMAP | ||
528 | status_draw(); | ||
529 | #endif | ||
487 | lcd_update(); | 530 | lcd_update(); |
488 | 531 | ||
489 | switch( button_get(true) ) { | 532 | switch( button_get_w_tmo(HZ/2) ) { |
490 | #ifdef HAVE_RECORDER_KEYPAD | 533 | #ifdef HAVE_RECORDER_KEYPAD |
491 | case BUTTON_UP: | 534 | case BUTTON_UP: |
492 | case BUTTON_UP | BUTTON_REPEAT: | 535 | case BUTTON_UP | BUTTON_REPEAT: |
@@ -519,6 +562,21 @@ void set_int(char* string, | |||
519 | #endif | 562 | #endif |
520 | done = true; | 563 | done = true; |
521 | break; | 564 | break; |
565 | |||
566 | #ifdef HAVE_RECORDER_KEYPAD | ||
567 | case BUTTON_F3: | ||
568 | #ifdef HAVE_LCD_BITMAP | ||
569 | global_settings.statusbar = !global_settings.statusbar; | ||
570 | settings_save(); | ||
571 | if(global_settings.statusbar) | ||
572 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
573 | else | ||
574 | lcd_setmargins(0, 0); | ||
575 | lcd_clear_display(); | ||
576 | lcd_puts_scroll(0, 0, string); | ||
577 | #endif | ||
578 | break; | ||
579 | #endif | ||
522 | } | 580 | } |
523 | if ( function ) | 581 | if ( function ) |
524 | function(*variable); | 582 | function(*variable); |
@@ -530,14 +588,23 @@ void set_option(char* string, int* variable, char* options[], int numoptions ) | |||
530 | { | 588 | { |
531 | bool done = false; | 589 | bool done = false; |
532 | 590 | ||
591 | #ifdef HAVE_LCD_BITMAP | ||
592 | if(global_settings.statusbar) | ||
593 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
594 | else | ||
595 | lcd_setmargins(0, 0); | ||
596 | #endif | ||
533 | lcd_clear_display(); | 597 | lcd_clear_display(); |
534 | lcd_puts_scroll(0,0,string); | 598 | lcd_puts_scroll(0, 0, string); |
535 | 599 | ||
536 | while ( !done ) { | 600 | while ( !done ) { |
537 | lcd_puts(0, 1, options[*variable]); | 601 | lcd_puts(0, 1, options[*variable]); |
602 | #ifdef HAVE_LCD_BITMAP | ||
603 | status_draw(); | ||
604 | #endif | ||
538 | lcd_update(); | 605 | lcd_update(); |
539 | 606 | ||
540 | switch ( button_get(true) ) { | 607 | switch ( button_get_w_tmo(HZ/2) ) { |
541 | #ifdef HAVE_RECORDER_KEYPAD | 608 | #ifdef HAVE_RECORDER_KEYPAD |
542 | case BUTTON_UP: | 609 | case BUTTON_UP: |
543 | case BUTTON_UP | BUTTON_REPEAT: | 610 | case BUTTON_UP | BUTTON_REPEAT: |
@@ -568,6 +635,21 @@ void set_option(char* string, int* variable, char* options[], int numoptions ) | |||
568 | #endif | 635 | #endif |
569 | done = true; | 636 | done = true; |
570 | break; | 637 | break; |
638 | |||
639 | #ifdef HAVE_RECORDER_KEYPAD | ||
640 | case BUTTON_F3: | ||
641 | #ifdef HAVE_LCD_BITMAP | ||
642 | global_settings.statusbar = !global_settings.statusbar; | ||
643 | settings_save(); | ||
644 | if(global_settings.statusbar) | ||
645 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
646 | else | ||
647 | lcd_setmargins(0, 0); | ||
648 | lcd_clear_display(); | ||
649 | lcd_puts_scroll(0, 0, string); | ||
650 | #endif | ||
651 | break; | ||
652 | #endif | ||
571 | } | 653 | } |
572 | } | 654 | } |
573 | lcd_stop_scroll(); | 655 | lcd_stop_scroll(); |
@@ -605,6 +687,12 @@ void set_time(char* string, int timedate[]) | |||
605 | #endif | 687 | #endif |
606 | #endif | 688 | #endif |
607 | 689 | ||
690 | #ifdef HAVE_LCD_BITMAP | ||
691 | if(global_settings.statusbar) | ||
692 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
693 | else | ||
694 | lcd_setmargins(0, 0); | ||
695 | #endif | ||
608 | lcd_clear_display(); | 696 | lcd_clear_display(); |
609 | lcd_puts_scroll(0, 0, string); | 697 | lcd_puts_scroll(0, 0, string); |
610 | 698 | ||
@@ -734,7 +822,7 @@ void set_time(char* string, int timedate[]) | |||
734 | cursor[5][INDEX_WIDTH] = width + strlen(reffub) - 1; | 822 | cursor[5][INDEX_WIDTH] = width + strlen(reffub) - 1; |
735 | 823 | ||
736 | lcd_invertrect(cursor[cursorpos][INDEX_X], | 824 | lcd_invertrect(cursor[cursorpos][INDEX_X], |
737 | cursor[cursorpos][INDEX_Y], | 825 | cursor[cursorpos][INDEX_Y] + lcd_getymargin(), |
738 | cursor[cursorpos][INDEX_WIDTH], | 826 | cursor[cursorpos][INDEX_WIDTH], |
739 | line_height); | 827 | line_height); |
740 | #elif defined(LOADABLE_FONTS) | 828 | #elif defined(LOADABLE_FONTS) |
@@ -770,17 +858,20 @@ void set_time(char* string, int timedate[]) | |||
770 | cursor[5][INDEX_WIDTH] = width; | 858 | cursor[5][INDEX_WIDTH] = width; |
771 | 859 | ||
772 | lcd_invertrect(cursor[cursorpos][INDEX_X], | 860 | lcd_invertrect(cursor[cursorpos][INDEX_X], |
773 | cursor[cursorpos][INDEX_Y], | 861 | cursor[cursorpos][INDEX_Y] + lcd_getymargin(), |
774 | cursor[cursorpos][INDEX_WIDTH], | 862 | cursor[cursorpos][INDEX_WIDTH], |
775 | line_height); | 863 | line_height); |
776 | #else | 864 | #else |
777 | lcd_invertrect(cursor[cursorpos][INDEX_X], | 865 | lcd_invertrect(cursor[cursorpos][INDEX_X], |
778 | cursor[cursorpos][INDEX_Y], | 866 | cursor[cursorpos][INDEX_Y] + lcd_getymargin(), |
779 | cursor[cursorpos][INDEX_WIDTH], | 867 | cursor[cursorpos][INDEX_WIDTH], |
780 | 8); | 868 | 8); |
781 | #endif | 869 | #endif |
782 | lcd_puts(0,4,"ON to set"); | 870 | lcd_puts(0, 4, "ON to set"); |
783 | lcd_puts(0,5,"OFF to revert"); | 871 | lcd_puts(0, 5, "OFF to revert"); |
872 | #ifdef HAVE_LCD_BITMAP | ||
873 | status_draw(); | ||
874 | #endif | ||
784 | lcd_update(); | 875 | lcd_update(); |
785 | 876 | ||
786 | /* calculate the minimum and maximum for the number under cursor */ | 877 | /* calculate the minimum and maximum for the number under cursor */ |
@@ -811,7 +902,7 @@ void set_time(char* string, int timedate[]) | |||
811 | } | 902 | } |
812 | } | 903 | } |
813 | 904 | ||
814 | button = button_get(true); | 905 | button = button_get_w_tmo(HZ/2); |
815 | switch ( button ) { | 906 | switch ( button ) { |
816 | case BUTTON_LEFT: | 907 | case BUTTON_LEFT: |
817 | cursorpos = (cursorpos + 6 - 1) % 6; | 908 | cursorpos = (cursorpos + 6 - 1) % 6; |
@@ -838,6 +929,20 @@ void set_time(char* string, int timedate[]) | |||
838 | done = true; | 929 | done = true; |
839 | timedate[0] = -1; | 930 | timedate[0] = -1; |
840 | break; | 931 | break; |
932 | #ifdef HAVE_RECORDER_KEYPAD | ||
933 | case BUTTON_F3: | ||
934 | #ifdef HAVE_LCD_BITMAP | ||
935 | global_settings.statusbar = !global_settings.statusbar; | ||
936 | settings_save(); | ||
937 | if(global_settings.statusbar) | ||
938 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
939 | else | ||
940 | lcd_setmargins(0, 0); | ||
941 | lcd_clear_display(); | ||
942 | lcd_puts_scroll(0, 0, string); | ||
943 | #endif | ||
944 | break; | ||
945 | #endif | ||
841 | default: | 946 | default: |
842 | break; | 947 | break; |
843 | } | 948 | } |