diff options
Diffstat (limited to 'apps/plugins/calculator.c')
-rw-r--r-- | apps/plugins/calculator.c | 58 |
1 files changed, 36 insertions, 22 deletions
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index 5263ab3bd7..9d5ae205b9 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c | |||
@@ -394,9 +394,11 @@ void cal_initial (void) | |||
394 | n = 1; | 394 | n = 1; |
395 | prev_m = m; | 395 | prev_m = m; |
396 | prev_n = n; | 396 | prev_n = n; |
397 | rb->lcd_invertrect( X_0_POS + n*REC_WIDTH + 1, | 397 | rb->lcd_set_drawmode(DRMODE_COMPLEMENT); |
398 | Y_1_POS + m*REC_HEIGHT + 1, | 398 | rb->lcd_fillrect( X_0_POS + n*REC_WIDTH + 1, |
399 | REC_WIDTH - 1, REC_HEIGHT - 1); | 399 | Y_1_POS + m*REC_HEIGHT + 1, |
400 | REC_WIDTH - 1, REC_HEIGHT - 1); | ||
401 | rb->lcd_set_drawmode(DRMODE_SOLID); | ||
400 | rb->lcd_update(); | 402 | rb->lcd_update(); |
401 | 403 | ||
402 | /* initial mem and output display*/ | 404 | /* initial mem and output display*/ |
@@ -689,13 +691,15 @@ void moveButton(void){ | |||
689 | break; | 691 | break; |
690 | } | 692 | } |
691 | 693 | ||
692 | rb->lcd_invertrect( X_0_POS + prev_n*REC_WIDTH + 1, | 694 | rb->lcd_set_drawmode(DRMODE_COMPLEMENT); |
693 | Y_1_POS + prev_m*REC_HEIGHT + 1, | 695 | rb->lcd_fillrect( X_0_POS + prev_n*REC_WIDTH + 1, |
694 | REC_WIDTH - 1, REC_HEIGHT - 1); | 696 | Y_1_POS + prev_m*REC_HEIGHT + 1, |
697 | REC_WIDTH - 1, REC_HEIGHT - 1); | ||
695 | 698 | ||
696 | rb->lcd_invertrect( X_0_POS + n*REC_WIDTH + 1, | 699 | rb->lcd_fillrect( X_0_POS + n*REC_WIDTH + 1, |
697 | Y_1_POS + m*REC_HEIGHT + 1, | 700 | Y_1_POS + m*REC_HEIGHT + 1, |
698 | REC_WIDTH - 1, REC_HEIGHT - 1); | 701 | REC_WIDTH - 1, REC_HEIGHT - 1); |
702 | rb->lcd_set_drawmode(DRMODE_SOLID); | ||
699 | 703 | ||
700 | rb->lcd_update_rect( X_0_POS + prev_n*REC_WIDTH + 1, | 704 | rb->lcd_update_rect( X_0_POS + prev_n*REC_WIDTH + 1, |
701 | Y_1_POS + prev_m*REC_HEIGHT + 1, | 705 | Y_1_POS + prev_m*REC_HEIGHT + 1, |
@@ -718,9 +722,11 @@ void printButtonGroups(int group) | |||
718 | for (i = 0; i < 5; i++){ | 722 | for (i = 0; i < 5; i++){ |
719 | for (j = 3; j <= 4; j++){ | 723 | for (j = 3; j <= 4; j++){ |
720 | rb->lcd_getstringsize( buttonChar[group][i][j],&w,&h); | 724 | rb->lcd_getstringsize( buttonChar[group][i][j],&w,&h); |
721 | rb->lcd_clearrect( X_0_POS + j*REC_WIDTH + 1, | 725 | rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); |
722 | Y_1_POS + i*REC_HEIGHT + 1, | 726 | rb->lcd_fillrect( X_0_POS + j*REC_WIDTH + 1, |
723 | REC_WIDTH - 1, REC_HEIGHT - 1); | 727 | Y_1_POS + i*REC_HEIGHT + 1, |
728 | REC_WIDTH - 1, REC_HEIGHT - 1); | ||
729 | rb->lcd_set_drawmode(DRMODE_SOLID); | ||
724 | rb->lcd_putsxy( X_0_POS + j*REC_WIDTH + (REC_WIDTH - w)/2, | 730 | rb->lcd_putsxy( X_0_POS + j*REC_WIDTH + (REC_WIDTH - w)/2, |
725 | TEXT_2_POS + i*REC_HEIGHT, | 731 | TEXT_2_POS + i*REC_HEIGHT, |
726 | buttonChar[group][i][j] ); | 732 | buttonChar[group][i][j] ); |
@@ -729,17 +735,21 @@ void printButtonGroups(int group) | |||
729 | for (i = 0; i <= 0; i++){ | 735 | for (i = 0; i <= 0; i++){ |
730 | for (j = 0; j <= 2; j++){ | 736 | for (j = 0; j <= 2; j++){ |
731 | rb->lcd_getstringsize( buttonChar[group][i][j],&w,&h); | 737 | rb->lcd_getstringsize( buttonChar[group][i][j],&w,&h); |
732 | rb->lcd_clearrect( X_0_POS + j*REC_WIDTH + 1, | 738 | rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); |
733 | Y_1_POS + i*REC_HEIGHT + 1, | 739 | rb->lcd_fillrect( X_0_POS + j*REC_WIDTH + 1, |
734 | REC_WIDTH - 1, REC_HEIGHT - 1); | 740 | Y_1_POS + i*REC_HEIGHT + 1, |
741 | REC_WIDTH - 1, REC_HEIGHT - 1); | ||
742 | rb->lcd_set_drawmode(DRMODE_SOLID); | ||
735 | rb->lcd_putsxy( X_0_POS + j*REC_WIDTH + (REC_WIDTH - w)/2, | 743 | rb->lcd_putsxy( X_0_POS + j*REC_WIDTH + (REC_WIDTH - w)/2, |
736 | TEXT_2_POS + i*REC_HEIGHT, | 744 | TEXT_2_POS + i*REC_HEIGHT, |
737 | buttonChar[group][i][j] ); | 745 | buttonChar[group][i][j] ); |
738 | } | 746 | } |
739 | } | 747 | } |
740 | rb->lcd_invertrect( X_0_POS + 2*REC_WIDTH + 1, | 748 | rb->lcd_set_drawmode(DRMODE_COMPLEMENT); |
741 | Y_1_POS + 0*REC_HEIGHT + 1, | 749 | rb->lcd_fillrect( X_0_POS + 2*REC_WIDTH + 1, |
742 | REC_WIDTH - 1, REC_HEIGHT - 1); | 750 | Y_1_POS + 0*REC_HEIGHT + 1, |
751 | REC_WIDTH - 1, REC_HEIGHT - 1); | ||
752 | rb->lcd_set_drawmode(DRMODE_SOLID); | ||
743 | rb->lcd_update_rect( X_0_POS, Y_1_POS, | 753 | rb->lcd_update_rect( X_0_POS, Y_1_POS, |
744 | REC_WIDTH*5, REC_HEIGHT*5); | 754 | REC_WIDTH*5, REC_HEIGHT*5); |
745 | } | 755 | } |
@@ -750,10 +760,11 @@ void flashButton(int b) | |||
750 | { | 760 | { |
751 | int i = b/5; int j = b - i*5; | 761 | int i = b/5; int j = b - i*5; |
752 | int k; | 762 | int k; |
763 | rb->lcd_set_drawmode(DRMODE_COMPLEMENT); | ||
753 | for (k=1*2;k>0;k--){ | 764 | for (k=1*2;k>0;k--){ |
754 | rb->lcd_invertrect( X_0_POS + j*REC_WIDTH + 1, | 765 | rb->lcd_fillrect( X_0_POS + j*REC_WIDTH + 1, |
755 | Y_1_POS + i*REC_HEIGHT + 1, | 766 | Y_1_POS + i*REC_HEIGHT + 1, |
756 | REC_WIDTH - 1, REC_HEIGHT - 1); | 767 | REC_WIDTH - 1, REC_HEIGHT - 1); |
757 | rb->lcd_update_rect( X_0_POS + j*REC_WIDTH + 1, | 768 | rb->lcd_update_rect( X_0_POS + j*REC_WIDTH + 1, |
758 | Y_1_POS + i*REC_HEIGHT + 1, | 769 | Y_1_POS + i*REC_HEIGHT + 1, |
759 | REC_WIDTH - 1, REC_HEIGHT - 1); | 770 | REC_WIDTH - 1, REC_HEIGHT - 1); |
@@ -762,6 +773,7 @@ void flashButton(int b) | |||
762 | rb->sleep(HZ/22); | 773 | rb->sleep(HZ/22); |
763 | 774 | ||
764 | } | 775 | } |
776 | rb->lcd_set_drawmode(DRMODE_SOLID); | ||
765 | } | 777 | } |
766 | 778 | ||
767 | /* ----------------------------------------------------------------------- | 779 | /* ----------------------------------------------------------------------- |
@@ -778,7 +790,9 @@ void deleteAnimation(int pos) | |||
778 | 790 | ||
779 | for (k=1;k<=4;k++){ | 791 | for (k=1;k<=4;k++){ |
780 | rb->sleep(HZ/32); | 792 | rb->sleep(HZ/32); |
781 | rb->lcd_clearrect(1+pos*6, TEXT_1_POS, 6, 8); | 793 | rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); |
794 | rb->lcd_fillrect(1+pos*6, TEXT_1_POS, 6, 8); | ||
795 | rb->lcd_set_drawmode(DRMODE_SOLID); | ||
782 | rb->lcd_fillrect(1+pos*6+1+k, TEXT_1_POS+k, | 796 | rb->lcd_fillrect(1+pos*6+1+k, TEXT_1_POS+k, |
783 | (5-2*k)>0?(5-2*k):1, (7-2*k)>0?(7-2*k):1 ); | 797 | (5-2*k)>0?(5-2*k):1, (7-2*k)>0?(7-2*k):1 ); |
784 | rb->lcd_update_rect(1+pos*6, TEXT_1_POS, 6, 8); | 798 | rb->lcd_update_rect(1+pos*6, TEXT_1_POS, 6, 8); |