|
@@ -1206,20 +1206,42 @@
|
1206
|
1206
|
#define STATUS_FAN_WIDTH 0
|
1207
|
1207
|
#endif
|
1208
|
1208
|
|
|
1209
|
+#define _EXTRA_WIDTH (STATUS_FAN_WIDTH + STATUS_CHAMBER_WIDTH + STATUS_BED_WIDTH)
|
|
1210
|
+
|
|
1211
|
+//
|
|
1212
|
+// Heater Bitmap X Space Requirements
|
|
1213
|
+//
|
|
1214
|
+#if !defined(STATUS_HEATERS_XSPACE) && (STATUS_HOTEND1_WIDTH || STATUS_HEATERS_WIDTH)
|
|
1215
|
+ #if (HOTENDS == 3 || HOTENDS == 4) && ENABLED(STATUS_COMBINE_HEATERS)
|
|
1216
|
+ // If more heaters or they're combined, 3 bytes
|
|
1217
|
+ #define STATUS_HEATERS_XSPACE 24
|
|
1218
|
+ #elif STATUS_LOGO_WIDTH > (LCD_PIXEL_WIDTH - (_EXTRA_WIDTH) - 26 * (HOTENDS)) // 128 - (20 + 24 + 26) == 58
|
|
1219
|
+ // If the logo won't fit at 26 width
|
|
1220
|
+ #define STATUS_HEATERS_XSPACE 24
|
|
1221
|
+ #else
|
|
1222
|
+ #define STATUS_HEATERS_XSPACE 26
|
|
1223
|
+ #endif
|
|
1224
|
+#endif
|
|
1225
|
+
|
1209
|
1226
|
#if ENABLED(CUSTOM_STATUS_SCREEN_IMAGE)
|
1210
|
1227
|
|
1211
|
|
- #if STATUS_HOTEND1_WIDTH
|
1212
|
|
- #define HAS_SPACES ((LCD_PIXEL_WIDTH - (HOTENDS * STATUS_HOTEND1_WIDTH) - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH - 24) < STATUS_LOGO_WIDTH ? true : false)
|
|
1228
|
+ //
|
|
1229
|
+ // Disable the logo bitmap if insufficient space
|
|
1230
|
+ //
|
|
1231
|
+ #if STATUS_HEATERS_XSPACE
|
|
1232
|
+ #define _HEATERS_WIDTH (HOTENDS * (STATUS_HEATERS_XSPACE)) // as many hotends as possible
|
1213
|
1233
|
#elif STATUS_HEATERS_WIDTH
|
1214
|
|
- #define HAS_SPACES (((LCD_PIXEL_WIDTH - STATUS_HEATERS_WIDTH - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH - 20) < STATUS_LOGO_WIDTH) ? true : false)
|
|
1234
|
+ #define _HEATERS_WIDTH STATUS_HEATERS_WIDTH
|
|
1235
|
+ #else
|
|
1236
|
+ #error "Status screen heaters region was not specified."
|
1215
|
1237
|
#endif
|
1216
|
|
-
|
1217
|
|
- #if HAS_SPACES
|
|
1238
|
+ #if STATUS_LOGO_WIDTH > (LCD_PIXEL_WIDTH - (_EXTRA_WIDTH + _HEATERS_WIDTH))
|
|
1239
|
+ #warning "Unable to fit custom Status Screen logo. Disabling."
|
1218
|
1240
|
#undef STATUS_LOGO_WIDTH
|
1219
|
1241
|
#endif
|
1220
|
1242
|
|
1221
|
1243
|
#if (HOTENDS > 1 && STATUS_LOGO_WIDTH && BED_OR_CHAMBER_OR_FAN) || (HOTENDS >= 3 && !BED_OR_CHAMBER_OR_FAN)
|
1222
|
|
- #define _STATUS_HEATERS_X(H,S,N) (((LCD_PIXEL_WIDTH - (H * (S + N)) - STATUS_LOGO_WIDTH - STATUS_BED_WIDTH - STATUS_CHAMBER_WIDTH - STATUS_FAN_WIDTH) / 2) + STATUS_LOGO_WIDTH)
|
|
1244
|
+ #define _STATUS_HEATERS_X(H,S,N) ((LCD_PIXEL_WIDTH - (H * (S + N)) - (_EXTRA_WIDTH) + (STATUS_LOGO_WIDTH)) / 2)
|
1223
|
1245
|
#if STATUS_HOTEND1_WIDTH
|
1224
|
1246
|
#if HOTENDS > 2
|
1225
|
1247
|
#define STATUS_HEATERS_X _STATUS_HEATERS_X(HOTENDS, STATUS_HOTEND1_WIDTH, 6)
|
|
@@ -1259,33 +1281,21 @@
|
1259
|
1281
|
#endif
|
1260
|
1282
|
|
1261
|
1283
|
//
|
1262
|
|
-// Heater Bitmap Properties
|
|
1284
|
+// Hotend Heater Bitmap starting X position
|
1263
|
1285
|
//
|
1264
|
|
-#if STATUS_HOTEND1_WIDTH || STATUS_HEATERS_WIDTH
|
1265
|
|
-
|
1266
|
|
- #ifndef STATUS_HEATERS_XSPACE
|
1267
|
|
- #if (HOTENDS == 3 || HOTENDS == 4) && ENABLED(STATUS_COMBINE_HEATERS)
|
1268
|
|
- #define STATUS_HEATERS_XSPACE 24
|
1269
|
|
- #else
|
1270
|
|
- #define STATUS_HEATERS_XSPACE 26 // Like the included bitmaps
|
1271
|
|
- #endif
|
1272
|
|
- #endif
|
1273
|
|
-
|
1274
|
|
- #ifndef STATUS_HEATERS_X
|
1275
|
|
- #if STATUS_LOGO_BYTEWIDTH
|
1276
|
|
- #define STATUS_HEATERS_X (STATUS_LOGO_BYTEWIDTH * 8)
|
1277
|
|
- #elif ((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH) && (STATUS_BED_WIDTH && STATUS_HOTEND_BITMAPS == 3)) || \
|
1278
|
|
- ((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH || STATUS_BED_WIDTH) && STATUS_HOTEND_BITMAPS == 4)
|
|
1286
|
+#if !defined(STATUS_HEATERS_X) && (STATUS_HOTEND1_WIDTH || STATUS_HEATERS_WIDTH)
|
|
1287
|
+ #if STATUS_LOGO_BYTEWIDTH
|
|
1288
|
+ #define STATUS_HEATERS_X (STATUS_LOGO_BYTEWIDTH * 8)
|
|
1289
|
+ #elif ((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH) && (STATUS_BED_WIDTH && STATUS_HOTEND_BITMAPS == 3)) || \
|
|
1290
|
+ ((STATUS_CHAMBER_WIDTH || STATUS_FAN_WIDTH || STATUS_BED_WIDTH) && STATUS_HOTEND_BITMAPS == 4)
|
|
1291
|
+ #define STATUS_HEATERS_X 5
|
|
1292
|
+ #else
|
|
1293
|
+ #if ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_BED && HOTENDS <= 4
|
1279
|
1294
|
#define STATUS_HEATERS_X 5
|
1280
|
1295
|
#else
|
1281
|
|
- #if ENABLED(STATUS_COMBINE_HEATERS) && HAS_HEATED_BED && HOTENDS <= 4
|
1282
|
|
- #define STATUS_HEATERS_X 5
|
1283
|
|
- #else
|
1284
|
|
- #define STATUS_HEATERS_X 8 // Like the included bitmaps
|
1285
|
|
- #endif
|
|
1296
|
+ #define STATUS_HEATERS_X 8 // Like the included bitmaps
|
1286
|
1297
|
#endif
|
1287
|
1298
|
#endif
|
1288
|
|
-
|
1289
|
1299
|
#endif
|
1290
|
1300
|
|
1291
|
1301
|
#if STATUS_HOTEND1_WIDTH
|