Mercurial > public > ostc4
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 { |
