comparison Discovery/Src/tMenuEditCustom.c @ 981:c6c781a2e85b default

Merge into default
author heinrichsweikamp
date Tue, 11 Feb 2025 18:12:00 +0100
parents e9c37071933b
children d9290c76b840
comparison
equal deleted inserted replaced
871:f7318457df4d 981:c6c781a2e85b
54 /* Private function prototypes -----------------------------------------------*/ 54 /* Private function prototypes -----------------------------------------------*/
55 void openEdit_Customview(void); 55 void openEdit_Customview(void);
56 void openEdit_BigScreen(void); 56 void openEdit_BigScreen(void);
57 void openEdit_MotionCtrl(void); 57 void openEdit_MotionCtrl(void);
58 void openEdit_ViewPort(void); 58 void openEdit_ViewPort(void);
59 void openEdit_WarningBuz(void);
59 void refresh_Customviews(void); 60 void refresh_Customviews(void);
61 void setMenuContentStructure();
60 char customview_TXT2BYTE_helper(uint8_t customViewId); 62 char customview_TXT2BYTE_helper(uint8_t customViewId);
61 char customviewBF_TXT2BYTE_helper(uint8_t customViewId); 63 char customviewBF_TXT2BYTE_helper(uint8_t customViewId);
62 /* Announced function prototypes -----------------------------------------------*/ 64 /* Announced function prototypes -----------------------------------------------*/
63 uint8_t OnAction_CViewTimeout (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); 65 uint8_t OnAction_CViewTimeout (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
64 uint8_t OnAction_CViewStandard (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); 66 uint8_t OnAction_CViewStandard (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
65 uint8_t OnAction_CViewStandardBF(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); 67 uint8_t OnAction_CViewStandardBF(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
68 uint8_t OnAction_CViewAutofocusBF(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
66 uint8_t OnAction_CornerTimeout (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); 69 uint8_t OnAction_CornerTimeout (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
67 uint8_t OnAction_CornerStandard(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); 70 uint8_t OnAction_CornerStandard(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
68 uint8_t OnAction_CViewPortCalib(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); 71 uint8_t OnAction_CViewPortCalib(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
69 uint8_t OnAction_CViewPortLayout(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); 72 uint8_t OnAction_CViewPortLayout(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
70 uint8_t OnAction_CViewPortAmbient(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); 73 uint8_t OnAction_CViewPortAmbient(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
112 text[3] = ' '; 115 text[3] = ' ';
113 text[4] = TXT_2BYTE; 116 text[4] = TXT_2BYTE;
114 text[5] = customviewBF_TXT2BYTE_helper(settingsGetPointer()->tX_customViewPrimaryBF); 117 text[5] = customviewBF_TXT2BYTE_helper(settingsGetPointer()->tX_customViewPrimaryBF);
115 text[6] = 0; 118 text[6] = 0;
116 write_label_var( 30, 700, ME_Y_LINE3, &FontT48, text); 119 write_label_var( 30, 700, ME_Y_LINE3, &FontT48, text);
120
121 /* Bigfont autofocus selector */
122 textpointer = 0;
123 text[textpointer++] = TXT_2BYTE;
124 text[textpointer++] = TXT2BYTE_ExtraDisplay;
125 textpointer += snprintf(&text[textpointer],20," %c%c",TXT_2BYTE, TXT2BYTE_Autofocus);
126 write_label_var( 30, 700, ME_Y_LINE4, &FontT48, text);
127
128 tMenuEdit_refresh_field(StMCustom1_CViewAutoFocusBF);
117 129
118 // field corner return 130 // field corner return
119 textpointer = 0; 131 textpointer = 0;
120 text[textpointer++] = TXT_2BYTE; 132 text[textpointer++] = TXT_2BYTE;
121 text[textpointer++] = TXT2BYTE_CornerTimeout; 133 text[textpointer++] = TXT2BYTE_CornerTimeout;
361 break; 373 break;
362 case 3: openEdit_CustomviewDivemode(cv_changelist); 374 case 3: openEdit_CustomviewDivemode(cv_changelist);
363 break; 375 break;
364 case 4: openEdit_CustomviewDivemode(cv_changelist_BS); 376 case 4: openEdit_CustomviewDivemode(cv_changelist_BS);
365 break; 377 break;
378 #ifdef ENABLE_MOTION_CONTROL
366 case 5: openEdit_ViewPort(); 379 case 5: openEdit_ViewPort();
367 break; 380 break;
381 #endif
382 #ifdef ENABLE_GPIO_V2
383 case 5: openEdit_WarningBuz();
384 break;
385 #endif
368 } 386 }
369 } 387 }
370 388
371 /* Private functions ---------------------------------------------------------*/ 389 /* Private functions ---------------------------------------------------------*/
372 void openEdit_Customview(void) 390 void openEdit_Customview(void)
375 refresh_Customviews(); 393 refresh_Customviews();
376 394
377 write_field_button(StMCustom1_CViewTimeout, 400, 700, ME_Y_LINE1, &FontT48, ""); 395 write_field_button(StMCustom1_CViewTimeout, 400, 700, ME_Y_LINE1, &FontT48, "");
378 write_field_button(StMCustom1_CViewStandard, 400, 700, ME_Y_LINE2, &FontT48, ""); 396 write_field_button(StMCustom1_CViewStandard, 400, 700, ME_Y_LINE2, &FontT48, "");
379 write_field_button(StMCustom1_CViewStandardBF, 400, 700, ME_Y_LINE3, &FontT48, ""); 397 write_field_button(StMCustom1_CViewStandardBF, 400, 700, ME_Y_LINE3, &FontT48, "");
380 398 write_field_on_off(StMCustom1_CViewAutoFocusBF, 650, 700, ME_Y_LINE4, &FontT48, "", settingsGetPointer()->cvAutofocus);
381 write_field_button(StMCustom1_CornerTimeout, 400, 700, ME_Y_LINE5, &FontT48, ""); 399 write_field_button(StMCustom1_CornerTimeout, 400, 700, ME_Y_LINE5, &FontT48, "");
382 write_field_button(StMCustom1_CornerStandard, 400, 700, ME_Y_LINE6, &FontT48, ""); 400 write_field_button(StMCustom1_CornerStandard, 400, 700, ME_Y_LINE6, &FontT48, "");
383 401
384 setEvent(StMCustom1_CViewTimeout, (uint32_t)OnAction_CViewTimeout); 402 setEvent(StMCustom1_CViewTimeout, (uint32_t)OnAction_CViewTimeout);
385 setEvent(StMCustom1_CViewStandard, (uint32_t)OnAction_CViewStandard); 403 setEvent(StMCustom1_CViewStandard, (uint32_t)OnAction_CViewStandard);
386 setEvent(StMCustom1_CViewStandardBF, (uint32_t)OnAction_CViewStandardBF); 404 setEvent(StMCustom1_CViewStandardBF, (uint32_t)OnAction_CViewStandardBF);
387 405 setEvent(StMCustom1_CViewAutoFocusBF, (uint32_t)OnAction_CViewAutofocusBF);
388 setEvent(StMCustom1_CornerTimeout, (uint32_t)OnAction_CornerTimeout); 406 setEvent(StMCustom1_CornerTimeout, (uint32_t)OnAction_CornerTimeout);
389 setEvent(StMCustom1_CornerStandard, (uint32_t)OnAction_CornerStandard); 407 setEvent(StMCustom1_CornerStandard, (uint32_t)OnAction_CornerStandard);
390 } 408 }
391 409
392 void openEdit_BigScreen(void) 410 void openEdit_BigScreen(void)
436 454
437 455
438 456
439 void openEdit_ViewPort(void) 457 void openEdit_ViewPort(void)
440 { 458 {
459 #ifdef ENABLE_MOTION_CONTROL
441 resetMenuEdit(CLUT_MenuPageCustomView); 460 resetMenuEdit(CLUT_MenuPageCustomView);
442 refresh_ViewPort(); 461 refresh_ViewPort();
443 462
444 write_field_button(StMCustom5_CViewPortCalib, 400, 700, ME_Y_LINE2, &FontT48, ""); 463 write_field_button(StMCustom5_CViewPortCalib, 400, 700, ME_Y_LINE2, &FontT48, "");
445 write_field_button(StMCustom5_CViewPortSpotSize,400, 700, ME_Y_LINE3, &FontT48, ""); 464 write_field_button(StMCustom5_CViewPortSpotSize,400, 700, ME_Y_LINE3, &FontT48, "");
450 setEvent(StMCustom5_CViewPortCalib, (uint32_t)OnAction_CViewPortCalib); 469 setEvent(StMCustom5_CViewPortCalib, (uint32_t)OnAction_CViewPortCalib);
451 setEvent(StMCustom5_CViewPortSpotSize, (uint32_t)OnAction_CViewPortSpot); 470 setEvent(StMCustom5_CViewPortSpotSize, (uint32_t)OnAction_CViewPortSpot);
452 setEvent(StMCustom5_CViewPortLayout, (uint32_t)OnAction_CViewPortLayout); 471 setEvent(StMCustom5_CViewPortLayout, (uint32_t)OnAction_CViewPortLayout);
453 setEvent(StMCustom5_CViewPortAmbient, (uint32_t)OnAction_CViewPortAmbient); 472 setEvent(StMCustom5_CViewPortAmbient, (uint32_t)OnAction_CViewPortAmbient);
454 setEvent(StMCustom5_CViewPortControl, (uint32_t)OnAction_CViewPortControl); 473 setEvent(StMCustom5_CViewPortControl, (uint32_t)OnAction_CViewPortControl);
455 } 474 #endif
456 475 }
476 void openEdit_WarningBuz(void)
477 {
478 SSettings *pSettings = settingsGetPointer();
479
480 if(pSettings->warningBuzzer == 0)
481 {
482 pSettings->warningBuzzer = 1;
483 }
484 else
485 {
486 pSettings->warningBuzzer = 0;
487 }
488 exitMenuEdit_to_Menu_with_Menu_Update_do_not_write_settings_for_this_only();
489 }
457 490
458 char customview_TXT2BYTE_helper(uint8_t customViewId) 491 char customview_TXT2BYTE_helper(uint8_t customViewId)
459 { 492 {
460 char text = 0; 493 char text = 0;
461 494
488 case CVIEW_SummaryOfLeftCorner: 521 case CVIEW_SummaryOfLeftCorner:
489 text = TXT2BYTE_Summary; 522 text = TXT2BYTE_Summary;
490 break; 523 break;
491 case CVIEW_Timer: 524 case CVIEW_Timer:
492 text = TXT2BYTE_Timer; 525 text = TXT2BYTE_Timer;
526 break;
527 case CVIEW_Position:
528 text = TXT2BYTE_Position;
493 break; 529 break;
494 case CVIEW_noneOrDebug: 530 case CVIEW_noneOrDebug:
495 text = TXT2BYTE_DispNoneDbg; 531 text = TXT2BYTE_DispNoneDbg;
496 break; 532 break;
497 default: 533 default:
520 #ifdef ENABLE_T3_PROFILE_VIEW 556 #ifdef ENABLE_T3_PROFILE_VIEW
521 case CVIEW_T3_Profile: 557 case CVIEW_T3_Profile:
522 text = TXT2BYTE_Profile; 558 text = TXT2BYTE_Profile;
523 break; 559 break;
524 #endif 560 #endif
561 case CVIEW_T3_Temperature:
562 text = TXT2BYTE_AmbientTemperature;
563 break;
525 case CVIEW_T3_GasList: 564 case CVIEW_T3_GasList:
526 text = TXT2BYTE_Gaslist; 565 text = TXT2BYTE_Gaslist;
527 break; 566 break;
528 case CVIEW_T3_MaxDepth: 567 case CVIEW_T3_MaxDepth:
529 text = TXT2BYTE_MaxDepth; 568 text = TXT2BYTE_MaxDepth;
644 683
645 settingsGetPointer()->tX_customViewPrimaryBF = newValue; 684 settingsGetPointer()->tX_customViewPrimaryBF = newValue;
646 return UPDATE_DIVESETTINGS; 685 return UPDATE_DIVESETTINGS;
647 } 686 }
648 687
688 uint8_t OnAction_CViewAutofocusBF(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
689 {
690 SSettings *pSettings = settingsGetPointer();
691 if(pSettings->cvAutofocus)
692 {
693 pSettings->cvAutofocus = 0;
694 }
695 else
696 {
697 pSettings->cvAutofocus = 1;
698 }
699 tMenuEdit_set_on_off(editId, pSettings->cvAutofocus);
700 return UPDATE_DIVESETTINGS;
701 }
649 702
650 uint8_t OnAction_CornerTimeout(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) 703 uint8_t OnAction_CornerTimeout(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
651 { 704 {
652 uint8_t value; 705 uint8_t value;
653 value = settingsGetPointer()->tX_userselectedLeftLowerCornerTimeout; 706 value = settingsGetPointer()->tX_userselectedLeftLowerCornerTimeout;
731 } 784 }
732 785
733 786
734 uint8_t OnAction_Customview_NextPage(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) 787 uint8_t OnAction_Customview_NextPage(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
735 { 788 {
789 resetMenuContentStructure();
736 customviewsSubpage++; 790 customviewsSubpage++;
791
737 if(customviewsSubpage == customviewsSubpageMax) 792 if(customviewsSubpage == customviewsSubpageMax)
738 { 793 {
739 customviewsSubpage = 0; 794 customviewsSubpage = 0;
740 } 795 setMenuContentStructure();
796 tMenuEdit_select(StMCustom3_CViewSelection6);
797 }
798 else
799 {
800 setMenuContentStructure();
801 }
802
741 CustomviewDivemode_refresh(); 803 CustomviewDivemode_refresh();
742 return UPDATE_DIVESETTINGS; 804 return UPDATE_DIVESETTINGS;
743 } 805 }
744 806
745 uint8_t OnAction_CViewPortCalib(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) 807 uint8_t OnAction_CViewPortCalib(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
826 pSettings->viewPortMode &= 0x9F; /* 1001 1111 */ 888 pSettings->viewPortMode &= 0x9F; /* 1001 1111 */
827 pSettings->viewPortMode |= (newValue << 5); 889 pSettings->viewPortMode |= (newValue << 5);
828 return UPDATE_DIVESETTINGS; 890 return UPDATE_DIVESETTINGS;
829 } 891 }
830 892
831 void openEdit_CustomviewDivemode(const uint8_t* pcv_changelist) 893 void setMenuContentStructure()
832 { 894 {
833
834 SSettings *pSettings = settingsGetPointer();
835 char text[MAX_PAGE_TEXTSIZE]; 895 char text[MAX_PAGE_TEXTSIZE];
836 uint8_t textPointer = 0; 896 uint8_t textPointer = 0;
837 uint32_t id; 897 uint32_t id;
838 898
839 uint8_t i; 899 uint8_t i;
840 900 uint8_t endID = CVIEW_END;
841 resetMenuEdit(CLUT_MenuPageCustomView); 901 SSettings *pSettings = settingsGetPointer();
842 customviewsSubpageMax = (tHome_getNumberOfAvailableCVs(pcv_changelist) / CV_PER_PAGE) + 1; 902
843 903 if(pcv_curchangelist == cv_changelist_BS)
844 if(pcv_curchangelist != pcv_changelist) /* new selection base? => reset page index */ 904 {
845 { 905 endID = CVIEW_T3_END;
846 customviewsSubpage = 0; 906 }
847 } 907
848 pcv_curchangelist = pcv_changelist; 908 for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */
849 909 {
850 CustomviewDivemode_refresh(pcv_changelist); 910 textPointer = 0;
851 911 id = pcv_curchangelist[customviewsSubpage * 5 + i];
852 for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */ 912 if(id == endID) /* last list item? */
853 { 913 {
854 textPointer = 0; 914 break;
855 id = pcv_changelist[customviewsSubpage * 5 + i]; 915 }
856 if((id == CVIEW_END) || (id == CVIEW_T3_END)) /* last list item? */ 916 else
857 { 917 {
858 break; 918 if(pcv_curchangelist == cv_changelist)
859 } 919 {
860 else 920 text[textPointer++] = '\006' - CHECK_BIT_THOME(pSettings->cv_configuration,id);
861 { 921 }
862 if(pcv_changelist == cv_changelist) 922 else
863 { 923 {
864 text[textPointer++] = '\006' - CHECK_BIT_THOME(pSettings->cv_configuration,id); 924 text[textPointer++] = '\006' - CHECK_BIT_THOME(pSettings->cv_config_BigScreen,id);
865 } 925 }
866 else
867 {
868 text[textPointer++] = '\006' - CHECK_BIT_THOME(pSettings->cv_config_BigScreen,id);
869 }
870 text[textPointer++] = ' '; 926 text[textPointer++] = ' ';
871 textPointer += snprintf(&text[textPointer], 60, "%c%c\n\r", TXT_2BYTE, customview_TXT2BYTE_helper(id)); 927 textPointer += snprintf(&text[textPointer], 60, "%c%c\n\r", TXT_2BYTE, customview_TXT2BYTE_helper(id));
872 928
873 switch(i) 929 switch(i)
874 { 930 {
883 case 4: write_field_button(StMCustom3_CViewSelection5, 30, 800, ME_Y_LINE5, &FontT48, ""); 939 case 4: write_field_button(StMCustom3_CViewSelection5, 30, 800, ME_Y_LINE5, &FontT48, "");
884 break; 940 break;
885 default: 941 default:
886 break; 942 break;
887 } 943 }
888 } 944 }
889 } 945 }
890 for(;i<5;i++) /* clear empty lines in case menu shows less than 5 entries */ 946 for(;i<5;i++) /* clear empty lines in case menu shows less than 5 entries */
891 { 947 {
892 switch(i) 948 switch(i)
893 { 949 {
894 case 0: write_label_var( 30, 800, ME_Y_LINE1, &FontT48, ""); 950 case 0: write_label_var( 30, 800, ME_Y_LINE1, &FontT48, "");
895 break; 951 break;
896 case 1: write_label_var( 30, 800, ME_Y_LINE2, &FontT48, ""); 952 case 1: write_label_var( 30, 800, ME_Y_LINE2, &FontT48, "");
897 break; 953 break;
898 case 2: write_label_var( 30, 800, ME_Y_LINE3, &FontT48, ""); 954 case 2: write_label_var( 30, 800, ME_Y_LINE3, &FontT48, "");
899 break; 955 break;
900 case 3: write_label_var( 30, 800, ME_Y_LINE4, &FontT48, ""); 956 case 3: write_label_var( 30, 800, ME_Y_LINE4, &FontT48, "");
901 break; 957 break;
902 case 4: write_label_var( 30, 800, ME_Y_LINE5, &FontT48, ""); 958 case 4: write_label_var( 30, 800, ME_Y_LINE5, &FontT48, "");
903 break; 959 break;
904 default: 960 default:
905 break; 961 break;
906 }; 962 };
907 } 963 }
908 if(customviewsSubpageMax != 1) 964
909 { 965 if(customviewsSubpageMax != 1)
910 textPointer = 0; 966 {
911 text[textPointer++] = TXT_2BYTE; 967 textPointer = 0;
912 text[textPointer++] = TXT2BYTE_ButtonNext; 968 text[textPointer++] = TXT_2BYTE;
913 text[textPointer] = 0; 969 text[textPointer++] = TXT2BYTE_ButtonNext;
914 write_field_button(StMCustom3_CViewSelection6, 30, 800, ME_Y_LINE6, &FontT48, text); 970 text[textPointer] = 0;
915 } 971 write_field_button(StMCustom3_CViewSelection6, 30, 800, ME_Y_LINE6, &FontT48, text);
916 972 }
917 /* because of the ID handling inside of the functions, all buttons needs to be assigned before the events may be set => have the same loop twice */ 973
918 for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */ 974 /* because of the ID handling inside of the functions, all buttons needs to be assigned before the events may be set => have the same loop twice */
919 { 975 for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */
920 id = pcv_changelist[customviewsSubpage * 5 + i]; 976 {
921 if((id == CVIEW_END) || (id == CVIEW_T3_END)) /* last list item? */ 977 id = pcv_curchangelist[customviewsSubpage * 5 + i];
922 { 978 if(id == endID) /* last list item? */
923 break; 979 {
924 } 980 break;
925 else 981 }
926 { 982 else
983 {
927 switch(i) 984 switch(i)
928 { 985 {
929 case 0: setEvent(StMCustom3_CViewSelection1, (uint32_t)OnAction_Customview_Toggle); 986 case 0: setEvent(StMCustom3_CViewSelection1, (uint32_t)OnAction_Customview_Toggle);
930 break; 987 break;
931 case 1: setEvent(StMCustom3_CViewSelection2, (uint32_t)OnAction_Customview_Toggle); 988 case 1: setEvent(StMCustom3_CViewSelection2, (uint32_t)OnAction_Customview_Toggle);
939 996
940 default: 997 default:
941 break; 998 break;
942 } 999 }
943 1000
944 } 1001 }
945 } 1002 }
946 if(customviewsSubpageMax != 1) 1003 if(customviewsSubpageMax != 1)
947 { 1004 {
948 setEvent(StMCustom3_CViewSelection6,(uint32_t)OnAction_Customview_NextPage); 1005 setEvent(StMCustom3_CViewSelection6,(uint32_t)OnAction_Customview_NextPage);
949 } 1006 }
950 1007 }
951 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); 1008 void openEdit_CustomviewDivemode(const uint8_t* pcv_changelist)
1009 {
1010 resetMenuEdit(CLUT_MenuPageCustomView);
1011 customviewsSubpageMax = (tHome_getNumberOfAvailableCVs(pcv_changelist) / CV_PER_PAGE) + 1;
1012
1013 if(pcv_curchangelist != pcv_changelist) /* new selection base? => reset page index */
1014 {
1015 customviewsSubpage = 0;
1016 }
1017 pcv_curchangelist = pcv_changelist;
1018
1019 setMenuContentStructure();
1020
1021 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
952 } 1022 }
953 1023
954 void openEdit_CustomviewDivemodeMenu(uint8_t line) 1024 void openEdit_CustomviewDivemodeMenu(uint8_t line)
955 { 1025 {
956 static uint8_t customviewsSubpage = 0; 1026 static uint8_t customviewsSubpage = 0;
1002 char text[MAX_PAGE_TEXTSIZE]; 1072 char text[MAX_PAGE_TEXTSIZE];
1003 uint8_t textPointer = 0; 1073 uint8_t textPointer = 0;
1004 uint32_t id; 1074 uint32_t id;
1005 1075
1006 uint8_t i; 1076 uint8_t i;
1077 uint8_t endID = CVIEW_END;
1078
1079 if(pcv_curchangelist == cv_changelist_BS)
1080 {
1081 endID = CVIEW_T3_END;
1082 }
1007 1083
1008 text[textPointer++] = '\001'; 1084 text[textPointer++] = '\001';
1009 text[textPointer++] = TXT_2BYTE; 1085 text[textPointer++] = TXT_2BYTE;
1010 text[textPointer++] = TXT2BYTE_SelectCustomviews; 1086 text[textPointer++] = TXT2BYTE_SelectCustomviews;
1011 text[textPointer++] = ' '; 1087 text[textPointer++] = ' ';
1016 1092
1017 for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */ 1093 for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */
1018 { 1094 {
1019 textPointer = 0; 1095 textPointer = 0;
1020 id = pcv_curchangelist[customviewsSubpage * 5 + i]; 1096 id = pcv_curchangelist[customviewsSubpage * 5 + i];
1021 if((id == CVIEW_END) || (id == CVIEW_T3_END)) /* last list item? */ 1097 if(id == endID) /* last list item? */
1022 { 1098 {
1023 break; 1099 break;
1024 } 1100 }
1025 else 1101 else
1026 { 1102 {