Pārlūkot izejas kodu

Allow negative values in menus

Lionello Lunesu 10 gadus atpakaļ
vecāks
revīzija
0d35b1d0b8
1 mainītis faili ar 13 papildinājumiem un 13 dzēšanām
  1. 13
    13
      Marlin/ultralcd.cpp

+ 13
- 13
Marlin/ultralcd.cpp Parādīt failu

@@ -1004,15 +1004,15 @@ void lcd_sdcard_menu()
1004 1004
 #define menu_edit_type(_type, _name, _strFunc, scale) \
1005 1005
     void menu_edit_ ## _name () \
1006 1006
     { \
1007
-        if ((int32_t)encoderPosition < minEditValue) \
1008
-            encoderPosition = minEditValue; \
1007
+        if ((int32_t)encoderPosition < 0) \
1008
+            encoderPosition = 0; \
1009 1009
         if ((int32_t)encoderPosition > maxEditValue) \
1010 1010
             encoderPosition = maxEditValue; \
1011 1011
         if (lcdDrawUpdate) \
1012
-            lcd_implementation_drawedit(editLabel, _strFunc(((_type)encoderPosition) / scale)); \
1012
+            lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
1013 1013
         if (LCD_CLICKED) \
1014 1014
         { \
1015
-            *((_type*)editValue) = ((_type)encoderPosition) / scale; \
1015
+            *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \
1016 1016
             lcd_quick_feedback(); \
1017 1017
             currentMenu = prevMenu; \
1018 1018
             encoderPosition = prevEncoderPosition; \
@@ -1020,15 +1020,15 @@ void lcd_sdcard_menu()
1020 1020
     } \
1021 1021
     void menu_edit_callback_ ## _name () \
1022 1022
     { \
1023
-        if ((int32_t)encoderPosition < minEditValue) \
1024
-            encoderPosition = minEditValue; \
1023
+        if ((int32_t)encoderPosition < 0) \
1024
+            encoderPosition = 0; \
1025 1025
         if ((int32_t)encoderPosition > maxEditValue) \
1026 1026
             encoderPosition = maxEditValue; \
1027 1027
         if (lcdDrawUpdate) \
1028
-            lcd_implementation_drawedit(editLabel, _strFunc(((_type)encoderPosition) / scale)); \
1028
+            lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
1029 1029
         if (LCD_CLICKED) \
1030 1030
         { \
1031
-            *((_type*)editValue) = ((_type)encoderPosition) / scale; \
1031
+            *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \
1032 1032
             lcd_quick_feedback(); \
1033 1033
             currentMenu = prevMenu; \
1034 1034
             encoderPosition = prevEncoderPosition; \
@@ -1046,8 +1046,8 @@ void lcd_sdcard_menu()
1046 1046
         editLabel = pstr; \
1047 1047
         editValue = ptr; \
1048 1048
         minEditValue = minValue * scale; \
1049
-        maxEditValue = maxValue * scale; \
1050
-        encoderPosition = (*ptr) * scale; \
1049
+        maxEditValue = maxValue * scale - minEditValue; \
1050
+        encoderPosition = (*ptr) * scale - minEditValue; \
1051 1051
     }\
1052 1052
     static void menu_action_setting_edit_callback_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue, menuFunc_t callback) \
1053 1053
     { \
@@ -1060,8 +1060,8 @@ void lcd_sdcard_menu()
1060 1060
         editLabel = pstr; \
1061 1061
         editValue = ptr; \
1062 1062
         minEditValue = minValue * scale; \
1063
-        maxEditValue = maxValue * scale; \
1064
-        encoderPosition = (*ptr) * scale; \
1063
+        maxEditValue = maxValue * scale - minEditValue; \
1064
+        encoderPosition = (*ptr) * scale - minEditValue; \
1065 1065
         callbackFunc = callback;\
1066 1066
     }
1067 1067
 menu_edit_type(int, int3, itostr3, 1)
@@ -1183,7 +1183,7 @@ void lcd_init()
1183 1183
   #ifdef SR_LCD_2W_NL // Non latching 2 wire shift register
1184 1184
      pinMode (SR_DATA_PIN, OUTPUT);
1185 1185
      pinMode (SR_CLK_PIN, OUTPUT);
1186
-  #elif defined(SHIFT_CLK) 
1186
+  #elif defined(SHIFT_CLK)
1187 1187
      pinMode(SHIFT_CLK,OUTPUT);
1188 1188
      pinMode(SHIFT_LD,OUTPUT);
1189 1189
      pinMode(SHIFT_EN,OUTPUT);

Notiek ielāde…
Atcelt
Saglabāt