protected override void UpdateDisplayList(float width, float height) { base.UpdateDisplayList(width, height); LabelDisplay.Color = (Color)GetStyle("textColor"); //hovered = Contains(Gui.MouseTarget, true); //Color backgroundColor; //var drawBackground = true; if (Selected) { _rect.BackgroundColor = (Color)GetStyle("selectionColor"); } else if (ShowsCaret) { _rect.BackgroundColor = (Color)GetStyle("caretColor"); } else if (hovered) { _rect.BackgroundColor = (Color)GetStyle("rollOverColor"); } else { _rect.BackgroundColor = (Color)GetStyle("backgroundColor"); } //else //{ // var alternatingColors:Array = getStyle("alternatingItemColors"); // if (alternatingColors && alternatingColors.length > 0) // { // // translate these colors into uints // styleManager.getColorNames(alternatingColors); // backgroundColor = alternatingColors[itemIndex % alternatingColors.length]; // } // else // { // // don't draw background if it is the contentBackgroundColor. The // // list skin handles the background drawing for us. // drawBackground = false; // } //} //if (ShowsCaret) //{ // //graphics.lineStyle(1, getStyle("selectionColor")); // //graphics.drawRect(0.5, 0.5, unscaledWidth-1, unscaledHeight-1); //} //else //{ // //graphics.lineStyle(); // //graphics.drawRect(0, 0, unscaledWidth, unscaledHeight); //} // make sure our width/height is in the min/max for the label float childWidth = width - 6; childWidth = Math.Max(LayoutUtil.GetMinBoundsWidth(LabelDisplay), Math.Min(LayoutUtil.GetMaxBoundsWidth(LabelDisplay), childWidth)); float childHeight = height - 10; childHeight = Math.Max(LayoutUtil.GetMinBoundsHeight(LabelDisplay), Math.Min(LayoutUtil.GetMaxBoundsHeight(LabelDisplay), childHeight)); // set the label's position and size LabelDisplay.SetLayoutBoundsSize(childWidth, childHeight); LabelDisplay.SetLayoutBoundsPosition(6, 5); _rect.SetActualSize(width, height); // (this is a component - no layout, so...) }