Merge pull request #1 from regicidalplutophage/after-ephemera/oled-improvement-revival
Improved text handling
This commit is contained in:
		| @@ -36,13 +36,14 @@ keyboard.extensions.append(rgb_ext) | ||||
| oled_ext = Oled( | ||||
|     OledData( | ||||
|         entries=[ | ||||
|             OledData.oled_text_entry(text='Kyria v1.4', x=0, y=0), | ||||
|             OledData.oled_text_entry(text='KB2040', x=0, y=10), | ||||
|             OledData.oled_text_entry(text='Layer: ', x=0, y=20), | ||||
|             OledData.oled_text_entry(text='BASE', x=40, y=20, layer=0), | ||||
|             OledData.oled_text_entry(text='LOWER', x=40, y=20, layer=3), | ||||
|             OledData.oled_text_entry(text='RAISE', x=40, y=20, layer=4), | ||||
|             OledData.oled_text_entry(text='ADJUST', x=40, y=20, layer=6), | ||||
|             OledData.oled_text_entry(text='Kyria v1.4\nKB2040', line_spacing=0.75, inverted=True, x=0, y=0),             | ||||
|             OledData.oled_text_entry(text='americ', x=128, y=0, x_anchor=1.0), | ||||
|             OledData.oled_text_entry(text='anfootball', x=128, y=10, x_anchor=1.0), | ||||
|             OledData.oled_text_entry(text='Layer: ', x=0, y=32, y_anchor=1.0), | ||||
|             OledData.oled_text_entry(text='BASE', x=40, y=32, y_anchor=1.0, layer=0), | ||||
|             OledData.oled_text_entry(text='LOWER', x=40, y=32, y_anchor=1.0, layer=3), | ||||
|             OledData.oled_text_entry(text='RAISE', x=40, y=32, y_anchor=1.0, layer=4), | ||||
|             OledData.oled_text_entry(text='ADJUST', x=40, y=32, y_anchor=1.0, layer=6), | ||||
|         ] | ||||
|     ), | ||||
|     height=64, | ||||
|   | ||||
| @@ -10,8 +10,6 @@ from kmk.extensions import Extension | ||||
| from kmk.handlers.stock import passthrough as handler_passthrough | ||||
| from kmk.keys import make_key | ||||
|  | ||||
| DISPLAY_OFFSET = 4  # Used to calculate a new zero level since SSD1306 is clipped. | ||||
|  | ||||
|  | ||||
| class OledEntryType: | ||||
|     TXT = 0 | ||||
| @@ -27,13 +25,18 @@ class OledData: | ||||
|             self.data = entries | ||||
|  | ||||
|     @staticmethod | ||||
|     def oled_text_entry(x=0, y=0, text='', layer=None): | ||||
|     def oled_text_entry(text='', x=0, y=0, x_anchor=0.0, y_anchor=0.0, direction='LTR', line_spacing=0.75, inverted=False, layer=None): | ||||
|         return { | ||||
|             0: text, | ||||
|             1: x, | ||||
|             2: y, | ||||
|             3: layer, | ||||
|             4: OledEntryType.TXT, | ||||
|             5: x_anchor, | ||||
|             6: y_anchor, | ||||
|             7: direction, | ||||
|             8: line_spacing, | ||||
|             9: inverted, | ||||
|         } | ||||
|  | ||||
|     @staticmethod | ||||
| @@ -87,9 +90,13 @@ class Oled(Extension): | ||||
|                         label.Label( | ||||
|                             terminalio.FONT, | ||||
|                             text=view[0], | ||||
|                             color=0xFFFFFF, | ||||
|                             x=view[1], | ||||
|                             y=view[2] + DISPLAY_OFFSET, | ||||
|                             color=0xFFFFFF if view[9] == False else 0x000000, | ||||
|                             background_color=0x000000 if view[9] == False else 0xFFFFFF, | ||||
|                             anchor_point=(view[5],view[6]), | ||||
|                             anchored_position=(view[1] if view[9] == False else view[1]+1,view[2]), | ||||
|                             label_direction=view[7], | ||||
|                             line_spacing=view[8], | ||||
|                             padding_left=0 if view[9] == False else 1, | ||||
|                         ) | ||||
|                     ) | ||||
|                 elif view[4] == OledEntryType.IMG: | ||||
| @@ -98,7 +105,7 @@ class Oled(Extension): | ||||
|                             view[0], | ||||
|                             pixel_shader=view[0].pixel_shader, | ||||
|                             x=view[1], | ||||
|                             y=view[2] + DISPLAY_OFFSET, | ||||
|                             y=view[2], | ||||
|                         ) | ||||
|                     ) | ||||
|         gc.collect() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user