Hallo leute!
Ich hab mir eine kleine GUI gebaut das ursprünglich für die S65 lcd
library gedacht war (der code stammt aus einer Studienarbeit aus Koblenz
wo ein MP3 player gebaut wurde). Ich hab mir von Watterott das
MI0283QT-2 besorgt und begonnen das Projekt anzupassen. Das Menü wird
ohne fehler angezeigt. Nun will ich aber auch das Touchscreen verwenden
nur wie trage ich das nachträglich ein? Das menü wird über eine schleife
gezeichnet d.h er berechnet die X u Y coordinaten für die Menü Icons.
Ich habe mir gedacht das ich die Coordinaten seperat abspeichere und
nacher mit dem Touch Coordinaten vergleiche oder hat jemand eine bessere
Idee?
Hier ladet er das bild den titel usw asu dem speicher....
1 | //Die Einträge nach und nach extrahieren und den PGM_P an gui_elements_menu_print geben
|
2 | for(index = 0; index < count; index++)
|
3 | {
|
4 | memcpy_P(&p, &menu[3+index*2], sizeof(PGM_VOID_P)); //Titel des Menüpunktes extrahieren
|
5 | memcpy_P(&p2, &menu[3+index*2+1], sizeof(PGM_VOID_P)); //Bild des Menüpunktes extrahieren
|
6 | gui_elements_showGraphicMenu_P_entry(p, p2, cols, index, index==selected);
|
7 | }
|
gui_elements_showGraphicMenu_P_entry(...) -> Hier berechnet er X und Y
was nachher in die DrawIcon(x,Y..) eingetragen wird...
1 | uint8_t col = index % cols;
|
2 | uint8_t row = index / cols;
|
3 |
|
4 | uint16_t padding = ((LCD_WIDTH/cols) - lcd_getImageWidth(icon)) / 2;
|
5 | uint16_t x = (LCD_WIDTH/cols) * col + padding;
|
6 | uint16_t y = (LCD_WIDTH/cols) * row + padding + panel_height;
|