Browse Source

Merge pull request #1153 from xinfab/negative_values_in_menu

Negative values in menu
Bo Herrmannsen 10 years ago
parent
commit
0b310ab6c5
1 changed files with 13 additions and 13 deletions
  1. 13
    13
      Marlin/ultralcd.cpp

+ 13
- 13
Marlin/ultralcd.cpp View File

@@ -1041,15 +1041,15 @@ void lcd_sdcard_menu()
1041 1041
 #define menu_edit_type(_type, _name, _strFunc, scale) \
1042 1042
     void menu_edit_ ## _name () \
1043 1043
     { \
1044
-        if ((int32_t)encoderPosition < minEditValue) \
1045
-            encoderPosition = minEditValue; \
1044
+        if ((int32_t)encoderPosition < 0) \
1045
+            encoderPosition = 0; \
1046 1046
         if ((int32_t)encoderPosition > maxEditValue) \
1047 1047
             encoderPosition = maxEditValue; \
1048 1048
         if (lcdDrawUpdate) \
1049
-            lcd_implementation_drawedit(editLabel, _strFunc(((_type)encoderPosition) / scale)); \
1049
+            lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
1050 1050
         if (LCD_CLICKED) \
1051 1051
         { \
1052
-            *((_type*)editValue) = ((_type)encoderPosition) / scale; \
1052
+            *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \
1053 1053
             lcd_quick_feedback(); \
1054 1054
             currentMenu = prevMenu; \
1055 1055
             encoderPosition = prevEncoderPosition; \
@@ -1057,15 +1057,15 @@ void lcd_sdcard_menu()
1057 1057
     } \
1058 1058
     void menu_edit_callback_ ## _name () \
1059 1059
     { \
1060
-        if ((int32_t)encoderPosition < minEditValue) \
1061
-            encoderPosition = minEditValue; \
1060
+        if ((int32_t)encoderPosition < 0) \
1061
+            encoderPosition = 0; \
1062 1062
         if ((int32_t)encoderPosition > maxEditValue) \
1063 1063
             encoderPosition = maxEditValue; \
1064 1064
         if (lcdDrawUpdate) \
1065
-            lcd_implementation_drawedit(editLabel, _strFunc(((_type)encoderPosition) / scale)); \
1065
+            lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
1066 1066
         if (LCD_CLICKED) \
1067 1067
         { \
1068
-            *((_type*)editValue) = ((_type)encoderPosition) / scale; \
1068
+            *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \
1069 1069
             lcd_quick_feedback(); \
1070 1070
             currentMenu = prevMenu; \
1071 1071
             encoderPosition = prevEncoderPosition; \
@@ -1083,8 +1083,8 @@ void lcd_sdcard_menu()
1083 1083
         editLabel = pstr; \
1084 1084
         editValue = ptr; \
1085 1085
         minEditValue = minValue * scale; \
1086
-        maxEditValue = maxValue * scale; \
1087
-        encoderPosition = (*ptr) * scale; \
1086
+        maxEditValue = maxValue * scale - minEditValue; \
1087
+        encoderPosition = (*ptr) * scale - minEditValue; \
1088 1088
     }\
1089 1089
     static void menu_action_setting_edit_callback_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue, menuFunc_t callback) \
1090 1090
     { \
@@ -1097,8 +1097,8 @@ void lcd_sdcard_menu()
1097 1097
         editLabel = pstr; \
1098 1098
         editValue = ptr; \
1099 1099
         minEditValue = minValue * scale; \
1100
-        maxEditValue = maxValue * scale; \
1101
-        encoderPosition = (*ptr) * scale; \
1100
+        maxEditValue = maxValue * scale - minEditValue; \
1101
+        encoderPosition = (*ptr) * scale - minEditValue; \
1102 1102
         callbackFunc = callback;\
1103 1103
     }
1104 1104
 menu_edit_type(int, int3, itostr3, 1)
@@ -1220,7 +1220,7 @@ void lcd_init()
1220 1220
   #ifdef SR_LCD_2W_NL // Non latching 2 wire shift register
1221 1221
      pinMode (SR_DATA_PIN, OUTPUT);
1222 1222
      pinMode (SR_CLK_PIN, OUTPUT);
1223
-  #elif defined(SHIFT_CLK) 
1223
+  #elif defined(SHIFT_CLK)
1224 1224
      pinMode(SHIFT_CLK,OUTPUT);
1225 1225
      pinMode(SHIFT_LD,OUTPUT);
1226 1226
      pinMode(SHIFT_EN,OUTPUT);

Loading…
Cancel
Save