Gadget > ListIconGadget > Schriftfarbe und Hintergrundfarbe der Spalten und Zeilen ändernGadget > TreeGadget > Schriftfarbe und Hintergrundfarbe der Einträge ändernCode:
EnableExplicit
Procedure SetGadgetItemColor(gadget, item, colortype, color, column)
Protected styles.s
Protected id.s
Protected sb_id.s
Protected hexcolor.s
;Falls nicht existiert, dann <style type="text/css" id="SBCustomStyles"></style> im Head erstellen, ohne Inline-Styles verwenden zu müssen
! if (!document.getElementById('SBCustomStyles')) {
! var StyleElement = document.createElement('style');
! StyleElement.type = 'text/css';
! StyleElement.id = 'SBCustomStyles';
! var HeadElement = document.getElementsByTagName('head')[0];
! HeadElement.appendChild(StyleElement);
! }
;Falls nicht existiert, dann eine ID im Hauptelement erstellen, um später per CSS besser darauf zugreifen zu können
! var GadgetElement = $(spider_GadgetID(v_gadget).div);
! if (GadgetElement.attr("id")) {
! v_id = GadgetElement.attr("id");
! } else {
! GadgetElement.attr("id", "SB_Gadget_" + v_gadget);
! v_id = GadgetElement.attr("id");
! }
;RGB in Hex konvertieren
hexcolor = "#" + RSet(Hex(Red(color)), 2, "0") + RSet(Hex(Green(color)), 2, "0") + RSet(Hex(Blue(color)), 2, "0")
;SB-Hauptelement ermitteln
! v_sb_id = spider_GadgetID(v_gadget).gadget.id;
;Unterstützte Gadgets und deren Style-Erstellungen
Select GadgetType(gadget)
Case #PB_GadgetType_ListIcon
If item = -1
styles = "#" + id + " #" + sb_id + "-header .dgrid-column-" + column
Else
styles = "#" + id + " #" + sb_id + "-row-" + item + " .dgrid-column-" + column
EndIf
Case #PB_GadgetType_Tree
item = item + 2
If column = 0
styles = "#" + id + " #" + sb_id + " #dijit__TreeNode_" + item + " > .dijitTreeRow"
Else
styles = "#" + id + " #" + sb_id + " #dijit__TreeNode_" + item + " > .dijitTreeNodeContainer > .dijitTreeNode:nth-child(" + column + ")"
EndIf
EndSelect
Select colortype
Case #PB_Gadget_FrontColor
styles + " { color: " + hexcolor + "; }"
Case #PB_Gadget_BackColor
styles + " { background-color: " + hexcolor + "; }"
EndSelect
;Styles hinzufügen
! document.getElementById("SBCustomStyles").appendChild(document.createTextNode( v_styles ));
EndProcedure
;================================================== Beispielcode ==================================================
Define a
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered)
ListIconGadget(1, 10, 10, WindowWidth(0)-20, WindowHeight(0)-20, "Spalte 1", 200, #PB_ListIcon_GridLines)
AddGadgetColumn(1, 1, "Spalte 2", 200)
For a=1 To 50
AddGadgetItem(1, -1, "Item " + Str(a) + Chr(10) + "More Text")
Next
SetGadgetItemColor(1, -1, #PB_Gadget_BackColor, RGB(0, 0, 255), 1)
SetGadgetItemColor(1, -1, #PB_Gadget_FrontColor, RGB(255, 255, 255), 1)
SetGadgetItemColor(1, 5, #PB_Gadget_FrontColor, RGB(255, 0, 0), 0)
SetGadgetItemColor(1, 6, #PB_Gadget_FrontColor, RGB(0, 100, 0), 1)
SetGadgetItemColor(1, 7, #PB_Gadget_BackColor, RGB(100, 100, 100), 0)
SetGadgetItemColor(1, 7, #PB_Gadget_BackColor, RGB(100, 100, 100), 1)
SetGadgetItemColor(1, 7, #PB_Gadget_FrontColor, RGB(255, 255, 255), 0)
SetGadgetItemColor(1, 7, #PB_Gadget_FrontColor, RGB(255, 255, 255), 1)
; TreeGadget(1, 10, 10, WindowWidth(0)-20, WindowHeight(0)-20, 0)
;
; For a=1 To 50
; AddGadgetItem(1, -1, "Item " + Str(a), 0, 0)
; AddGadgetItem(1, -1, "SubItem 1", 0, 1)
; AddGadgetItem(1, -1, "SubItem 2", 0, 1)
; AddGadgetItem(1, -1, "SubItem 3", 0, 1)
; AddGadgetItem(1, -1, "SubItem 4", 0, 1)
; AddGadgetItem(1, -1, "SubItem 5", 0, 1)
; Next
;
; SetGadgetItemColor(1, 1, #PB_Gadget_FrontColor, RGB(255, 255, 255), 0)
; SetGadgetItemColor(1, 1, #PB_Gadget_BackColor, RGB(255, 0, 0), 0)
; SetGadgetItemColor(1, 3, #PB_Gadget_FrontColor, RGB(255, 255, 255), 0)
; SetGadgetItemColor(1, 3, #PB_Gadget_BackColor, RGB(100, 100, 100), 0)
; SetGadgetItemColor(1, 3, #PB_Gadget_FrontColor, RGB(255, 255, 255), 2)
; SetGadgetItemColor(1, 3, #PB_Gadget_BackColor, RGB(0, 0, 255), 2)
EndIf