Forráskód Böngészése

style editor for combobox (double-click on control in designer to open)

Johann 6 éve
szülő
commit
cb6db25166

+ 32 - 2
bccombobox.pas

@@ -6,13 +6,13 @@ interface
 
 uses
   Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, BCButton,
-  StdCtrls, BCTypes;
+  StdCtrls, BCTypes, BCBaseCtrls;
 
 type
 
   { TBCComboBox }
 
-  TBCComboBox = class(TCustomControl)
+  TBCComboBox = class(TBCStyleCustomControl)
   private
     FButton: TBCButton;
     FDropDownBorderSize: integer;
@@ -72,8 +72,12 @@ type
     procedure SetStateHover(AValue: TBCButtonState);
     procedure SetStateNormal(AValue: TBCButtonState);
     procedure SetStaticButton(AValue: boolean);
+  protected
+    function GetStyleExtension: String; override;
   public
     constructor Create(AOwner: TComponent); override;
+    { Assign the properties from Source to this instance }
+    procedure Assign(Source: TPersistent); override;
     procedure Clear;
     property HoverItem: integer read FHoverItem;
     property Button: TBCButton read FButton write FButton;
@@ -414,6 +418,11 @@ begin
   Button.StaticButton:= AValue;
 end;
 
+function TBCComboBox.GetStyleExtension: String;
+begin
+  result := 'bccombo';
+end;
+
 constructor TBCComboBox.Create(AOwner: TComponent);
 begin
   inherited Create(AOwner);
@@ -444,6 +453,27 @@ begin
   FDropDownFontHighlight:= clHighlightText;
 end;
 
+procedure TBCComboBox.Assign(Source: TPersistent);
+var
+  src: TBCComboBox;
+begin
+  if Source is TBCComboBox then
+  begin
+    src := TBCComboBox(Source);
+    Button.Assign(src.Button);
+    Items.Assign(src.Items);
+    ItemIndex := src.ItemIndex;
+    DropDownBorderColor := src.DropDownBorderColor;
+    DropDownBorderSize := src.DropDownBorderSize;
+    DropDownColor := src.DropDownColor;
+    DropDownFontColor := src.DropDownFontColor;
+    DropDownCount := src.DropDownCount;
+    DropDownHighlight := src.DropDownHighlight;
+    DropDownFontHighlight := src.DropDownFontHighlight;
+  end else
+    inherited Assign(Source);
+end;
+
 procedure TBCComboBox.Clear;
 begin
   Items.Clear;

+ 182 - 0
styles/default.bccombo

@@ -0,0 +1,182 @@
+[HEADER]
+Author=circular
+Description=
+ControlClass=TBCComboBox
+
+[PROPERTIES]
+ArrowFlip = 0
+ArrowSize = 8
+ArrowWidth = 16
+DropDownBorderColor = 4194304
+DropDownBorderSize = 1
+DropDownColor = 8405056
+DropDownFontColor = 16770790
+DropDownFontHighlight = 16777215
+DropDownHighlight = 16744448
+GlobalOpacity = 255
+Rounding.RoundOptions = 
+Rounding.RoundX = 12
+Rounding.RoundY = 12
+StateClicked.Background.Color = 0
+StateClicked.Background.ColorOpacity = 255
+StateClicked.Background.Gradient1.ColorCorrection = 1
+StateClicked.Background.Gradient1.DrawMode = dmSet
+StateClicked.Background.Gradient1.EndColor = 4194304
+StateClicked.Background.Gradient1.EndColorOpacity = 255
+StateClicked.Background.Gradient1.GradientType = gtRadial
+StateClicked.Background.Gradient1.Point1XPercent = 50
+StateClicked.Background.Gradient1.Point1YPercent = 100
+StateClicked.Background.Gradient1.Point2XPercent = 0
+StateClicked.Background.Gradient1.Point2YPercent = 0
+StateClicked.Background.Gradient1.Sinus = 0
+StateClicked.Background.Gradient1.StartColor = 8404992
+StateClicked.Background.Gradient1.StartColorOpacity = 255
+StateClicked.Background.Gradient1EndPercent = 100
+StateClicked.Background.Gradient2.ColorCorrection = 1
+StateClicked.Background.Gradient2.DrawMode = dmSet
+StateClicked.Background.Gradient2.EndColor = 0
+StateClicked.Background.Gradient2.EndColorOpacity = 255
+StateClicked.Background.Gradient2.GradientType = gtLinear
+StateClicked.Background.Gradient2.Point1XPercent = 0
+StateClicked.Background.Gradient2.Point1YPercent = 0
+StateClicked.Background.Gradient2.Point2XPercent = 0
+StateClicked.Background.Gradient2.Point2YPercent = 100
+StateClicked.Background.Gradient2.Sinus = 0
+StateClicked.Background.Gradient2.StartColor = 16777215
+StateClicked.Background.Gradient2.StartColorOpacity = 255
+StateClicked.Background.Style = bbsGradient
+StateClicked.Border.Color = 0
+StateClicked.Border.ColorOpacity = 255
+StateClicked.Border.LightColor = 16777215
+StateClicked.Border.LightOpacity = 255
+StateClicked.Border.LightWidth = 0
+StateClicked.Border.Style = bboNone
+StateClicked.Border.Width = 1
+StateClicked.FontEx.Color = 16770790
+StateClicked.FontEx.EndEllipsis = 0
+StateClicked.FontEx.FontQuality = fqFineAntialiasing
+StateClicked.FontEx.Height = 16
+StateClicked.FontEx.Name = default
+StateClicked.FontEx.PaddingBottom = 0
+StateClicked.FontEx.PaddingLeft = 0
+StateClicked.FontEx.PaddingRight = 0
+StateClicked.FontEx.PaddingTop = 0
+StateClicked.FontEx.Shadow = 1
+StateClicked.FontEx.ShadowColor = 0
+StateClicked.FontEx.ShadowColorOpacity = 255
+StateClicked.FontEx.ShadowOffsetX = 1
+StateClicked.FontEx.ShadowOffsetY = 1
+StateClicked.FontEx.ShadowRadius = 2
+StateClicked.FontEx.SingleLine = 1
+StateClicked.FontEx.Style = fsBold
+StateClicked.FontEx.TextAlignment = bcaCenter
+StateClicked.FontEx.WordBreak = 0
+StateHover.Background.Color = 0
+StateHover.Background.ColorOpacity = 255
+StateHover.Background.Gradient1.ColorCorrection = 1
+StateHover.Background.Gradient1.DrawMode = dmSet
+StateHover.Background.Gradient1.EndColor = 8404992
+StateHover.Background.Gradient1.EndColorOpacity = 255
+StateHover.Background.Gradient1.GradientType = gtRadial
+StateHover.Background.Gradient1.Point1XPercent = 50
+StateHover.Background.Gradient1.Point1YPercent = 100
+StateHover.Background.Gradient1.Point2XPercent = 0
+StateHover.Background.Gradient1.Point2YPercent = 0
+StateHover.Background.Gradient1.Sinus = 0
+StateHover.Background.Gradient1.StartColor = 16744448
+StateHover.Background.Gradient1.StartColorOpacity = 255
+StateHover.Background.Gradient1EndPercent = 100
+StateHover.Background.Gradient2.ColorCorrection = 1
+StateHover.Background.Gradient2.DrawMode = dmSet
+StateHover.Background.Gradient2.EndColor = 0
+StateHover.Background.Gradient2.EndColorOpacity = 255
+StateHover.Background.Gradient2.GradientType = gtLinear
+StateHover.Background.Gradient2.Point1XPercent = 0
+StateHover.Background.Gradient2.Point1YPercent = 0
+StateHover.Background.Gradient2.Point2XPercent = 0
+StateHover.Background.Gradient2.Point2YPercent = 100
+StateHover.Background.Gradient2.Sinus = 0
+StateHover.Background.Gradient2.StartColor = 16777215
+StateHover.Background.Gradient2.StartColorOpacity = 255
+StateHover.Background.Style = bbsGradient
+StateHover.Border.Color = 0
+StateHover.Border.ColorOpacity = 255
+StateHover.Border.LightColor = 16777215
+StateHover.Border.LightOpacity = 255
+StateHover.Border.LightWidth = 0
+StateHover.Border.Style = bboNone
+StateHover.Border.Width = 1
+StateHover.FontEx.Color = 16777215
+StateHover.FontEx.EndEllipsis = 0
+StateHover.FontEx.FontQuality = fqFineAntialiasing
+StateHover.FontEx.Height = 16
+StateHover.FontEx.Name = default
+StateHover.FontEx.PaddingBottom = 0
+StateHover.FontEx.PaddingLeft = 0
+StateHover.FontEx.PaddingRight = 0
+StateHover.FontEx.PaddingTop = 0
+StateHover.FontEx.Shadow = 1
+StateHover.FontEx.ShadowColor = 0
+StateHover.FontEx.ShadowColorOpacity = 255
+StateHover.FontEx.ShadowOffsetX = 1
+StateHover.FontEx.ShadowOffsetY = 1
+StateHover.FontEx.ShadowRadius = 2
+StateHover.FontEx.SingleLine = 1
+StateHover.FontEx.Style = fsBold
+StateHover.FontEx.TextAlignment = bcaCenter
+StateHover.FontEx.WordBreak = 0
+StateNormal.Background.Color = 0
+StateNormal.Background.ColorOpacity = 255
+StateNormal.Background.Gradient1.ColorCorrection = 1
+StateNormal.Background.Gradient1.DrawMode = dmSet
+StateNormal.Background.Gradient1.EndColor = 8405056
+StateNormal.Background.Gradient1.EndColorOpacity = 255
+StateNormal.Background.Gradient1.GradientType = gtLinear
+StateNormal.Background.Gradient1.Point1XPercent = 0
+StateNormal.Background.Gradient1.Point1YPercent = 0
+StateNormal.Background.Gradient1.Point2XPercent = 0
+StateNormal.Background.Gradient1.Point2YPercent = 100
+StateNormal.Background.Gradient1.Sinus = 0
+StateNormal.Background.Gradient1.StartColor = 4194304
+StateNormal.Background.Gradient1.StartColorOpacity = 255
+StateNormal.Background.Gradient1EndPercent = 60
+StateNormal.Background.Gradient2.ColorCorrection = 1
+StateNormal.Background.Gradient2.DrawMode = dmSet
+StateNormal.Background.Gradient2.EndColor = 4194304
+StateNormal.Background.Gradient2.EndColorOpacity = 255
+StateNormal.Background.Gradient2.GradientType = gtRadial
+StateNormal.Background.Gradient2.Point1XPercent = 50
+StateNormal.Background.Gradient2.Point1YPercent = 100
+StateNormal.Background.Gradient2.Point2XPercent = 0
+StateNormal.Background.Gradient2.Point2YPercent = 0
+StateNormal.Background.Gradient2.Sinus = 0
+StateNormal.Background.Gradient2.StartColor = 8405056
+StateNormal.Background.Gradient2.StartColorOpacity = 255
+StateNormal.Background.Style = bbsGradient
+StateNormal.Border.Color = 0
+StateNormal.Border.ColorOpacity = 255
+StateNormal.Border.LightColor = 16777215
+StateNormal.Border.LightOpacity = 255
+StateNormal.Border.LightWidth = 0
+StateNormal.Border.Style = bboNone
+StateNormal.Border.Width = 1
+StateNormal.FontEx.Color = 16770790
+StateNormal.FontEx.EndEllipsis = 0
+StateNormal.FontEx.FontQuality = fqFineAntialiasing
+StateNormal.FontEx.Height = 16
+StateNormal.FontEx.Name = default
+StateNormal.FontEx.PaddingBottom = 0
+StateNormal.FontEx.PaddingLeft = 0
+StateNormal.FontEx.PaddingRight = 0
+StateNormal.FontEx.PaddingTop = 0
+StateNormal.FontEx.Shadow = 1
+StateNormal.FontEx.ShadowColor = 0
+StateNormal.FontEx.ShadowColorOpacity = 255
+StateNormal.FontEx.ShadowOffsetX = 1
+StateNormal.FontEx.ShadowOffsetY = 1
+StateNormal.FontEx.ShadowRadius = 2
+StateNormal.FontEx.SingleLine = 1
+StateNormal.FontEx.Style = fsBold
+StateNormal.FontEx.TextAlignment = bcaCenter
+StateNormal.FontEx.WordBreak = 0
+StaticButton = 0

+ 182 - 0
styles/system.bccombo

@@ -0,0 +1,182 @@
+[HEADER]
+Author=circular
+Description=
+ControlClass=TBCComboBox
+
+[PROPERTIES]
+ArrowFlip = 0
+ArrowSize = 8
+ArrowWidth = 16
+DropDownBorderColor = -2147483640
+DropDownBorderSize = 1
+DropDownColor = -2147483643
+DropDownFontColor = -2147483640
+DropDownFontHighlight = -2147483634
+DropDownHighlight = -2147483635
+GlobalOpacity = 255
+Rounding.RoundOptions = 
+Rounding.RoundX = 3
+Rounding.RoundY = 3
+StateClicked.Background.Color = 0
+StateClicked.Background.ColorOpacity = 255
+StateClicked.Background.Gradient1.ColorCorrection = 1
+StateClicked.Background.Gradient1.DrawMode = dmSet
+StateClicked.Background.Gradient1.EndColor = -2147483633
+StateClicked.Background.Gradient1.EndColorOpacity = 255
+StateClicked.Background.Gradient1.GradientType = gtLinear
+StateClicked.Background.Gradient1.Point1XPercent = 0
+StateClicked.Background.Gradient1.Point1YPercent = 0
+StateClicked.Background.Gradient1.Point2XPercent = 0
+StateClicked.Background.Gradient1.Point2YPercent = 250
+StateClicked.Background.Gradient1.Sinus = 0
+StateClicked.Background.Gradient1.StartColor = -2147483632
+StateClicked.Background.Gradient1.StartColorOpacity = 255
+StateClicked.Background.Gradient1EndPercent = 70
+StateClicked.Background.Gradient2.ColorCorrection = 1
+StateClicked.Background.Gradient2.DrawMode = dmSet
+StateClicked.Background.Gradient2.EndColor = -2147483630
+StateClicked.Background.Gradient2.EndColorOpacity = 255
+StateClicked.Background.Gradient2.GradientType = gtLinear
+StateClicked.Background.Gradient2.Point1XPercent = 0
+StateClicked.Background.Gradient2.Point1YPercent = 0
+StateClicked.Background.Gradient2.Point2XPercent = 0
+StateClicked.Background.Gradient2.Point2YPercent = 100
+StateClicked.Background.Gradient2.Sinus = 0
+StateClicked.Background.Gradient2.StartColor = -2147483632
+StateClicked.Background.Gradient2.StartColorOpacity = 255
+StateClicked.Background.Style = bbsGradient
+StateClicked.Border.Color = -2147483632
+StateClicked.Border.ColorOpacity = 255
+StateClicked.Border.LightColor = 16777215
+StateClicked.Border.LightOpacity = 100
+StateClicked.Border.LightWidth = 1
+StateClicked.Border.Style = bboSolid
+StateClicked.Border.Width = 1
+StateClicked.FontEx.Color = -2147483630
+StateClicked.FontEx.EndEllipsis = 0
+StateClicked.FontEx.FontQuality = fqFineAntialiasing
+StateClicked.FontEx.Height = 0
+StateClicked.FontEx.Name = default
+StateClicked.FontEx.PaddingBottom = 0
+StateClicked.FontEx.PaddingLeft = 3
+StateClicked.FontEx.PaddingRight = 0
+StateClicked.FontEx.PaddingTop = 0
+StateClicked.FontEx.Shadow = 0
+StateClicked.FontEx.ShadowColor = 0
+StateClicked.FontEx.ShadowColorOpacity = 255
+StateClicked.FontEx.ShadowOffsetX = 5
+StateClicked.FontEx.ShadowOffsetY = 5
+StateClicked.FontEx.ShadowRadius = 5
+StateClicked.FontEx.SingleLine = 1
+StateClicked.FontEx.Style = 
+StateClicked.FontEx.TextAlignment = bcaLeftCenter
+StateClicked.FontEx.WordBreak = 0
+StateHover.Background.Color = 0
+StateHover.Background.ColorOpacity = 255
+StateHover.Background.Gradient1.ColorCorrection = 1
+StateHover.Background.Gradient1.DrawMode = dmSet
+StateHover.Background.Gradient1.EndColor = -2147483628
+StateHover.Background.Gradient1.EndColorOpacity = 255
+StateHover.Background.Gradient1.GradientType = gtLinear
+StateHover.Background.Gradient1.Point1XPercent = 0
+StateHover.Background.Gradient1.Point1YPercent = 0
+StateHover.Background.Gradient1.Point2XPercent = 0
+StateHover.Background.Gradient1.Point2YPercent = 150
+StateHover.Background.Gradient1.Sinus = 0
+StateHover.Background.Gradient1.StartColor = -2147483633
+StateHover.Background.Gradient1.StartColorOpacity = 255
+StateHover.Background.Gradient1EndPercent = 85
+StateHover.Background.Gradient2.ColorCorrection = 1
+StateHover.Background.Gradient2.DrawMode = dmSet
+StateHover.Background.Gradient2.EndColor = -2147483632
+StateHover.Background.Gradient2.EndColorOpacity = 255
+StateHover.Background.Gradient2.GradientType = gtLinear
+StateHover.Background.Gradient2.Point1XPercent = 0
+StateHover.Background.Gradient2.Point1YPercent = 0
+StateHover.Background.Gradient2.Point2XPercent = 0
+StateHover.Background.Gradient2.Point2YPercent = 100
+StateHover.Background.Gradient2.Sinus = 0
+StateHover.Background.Gradient2.StartColor = -2147483633
+StateHover.Background.Gradient2.StartColorOpacity = 255
+StateHover.Background.Style = bbsGradient
+StateHover.Border.Color = -2147483632
+StateHover.Border.ColorOpacity = 255
+StateHover.Border.LightColor = 16777215
+StateHover.Border.LightOpacity = 200
+StateHover.Border.LightWidth = 1
+StateHover.Border.Style = bboSolid
+StateHover.Border.Width = 1
+StateHover.FontEx.Color = -2147483630
+StateHover.FontEx.EndEllipsis = 0
+StateHover.FontEx.FontQuality = fqFineAntialiasing
+StateHover.FontEx.Height = 0
+StateHover.FontEx.Name = default
+StateHover.FontEx.PaddingBottom = 0
+StateHover.FontEx.PaddingLeft = 3
+StateHover.FontEx.PaddingRight = 0
+StateHover.FontEx.PaddingTop = 0
+StateHover.FontEx.Shadow = 0
+StateHover.FontEx.ShadowColor = 0
+StateHover.FontEx.ShadowColorOpacity = 255
+StateHover.FontEx.ShadowOffsetX = 5
+StateHover.FontEx.ShadowOffsetY = 5
+StateHover.FontEx.ShadowRadius = 5
+StateHover.FontEx.SingleLine = 1
+StateHover.FontEx.Style = 
+StateHover.FontEx.TextAlignment = bcaLeftCenter
+StateHover.FontEx.WordBreak = 0
+StateNormal.Background.Color = 0
+StateNormal.Background.ColorOpacity = 255
+StateNormal.Background.Gradient1.ColorCorrection = 1
+StateNormal.Background.Gradient1.DrawMode = dmSet
+StateNormal.Background.Gradient1.EndColor = -2147483628
+StateNormal.Background.Gradient1.EndColorOpacity = 255
+StateNormal.Background.Gradient1.GradientType = gtLinear
+StateNormal.Background.Gradient1.Point1XPercent = 0
+StateNormal.Background.Gradient1.Point1YPercent = 0
+StateNormal.Background.Gradient1.Point2XPercent = 0
+StateNormal.Background.Gradient1.Point2YPercent = 150
+StateNormal.Background.Gradient1.Sinus = 0
+StateNormal.Background.Gradient1.StartColor = -2147483633
+StateNormal.Background.Gradient1.StartColorOpacity = 255
+StateNormal.Background.Gradient1EndPercent = 70
+StateNormal.Background.Gradient2.ColorCorrection = 1
+StateNormal.Background.Gradient2.DrawMode = dmSet
+StateNormal.Background.Gradient2.EndColor = -2147483632
+StateNormal.Background.Gradient2.EndColorOpacity = 255
+StateNormal.Background.Gradient2.GradientType = gtLinear
+StateNormal.Background.Gradient2.Point1XPercent = 0
+StateNormal.Background.Gradient2.Point1YPercent = 0
+StateNormal.Background.Gradient2.Point2XPercent = 0
+StateNormal.Background.Gradient2.Point2YPercent = 100
+StateNormal.Background.Gradient2.Sinus = 0
+StateNormal.Background.Gradient2.StartColor = -2147483633
+StateNormal.Background.Gradient2.StartColorOpacity = 255
+StateNormal.Background.Style = bbsGradient
+StateNormal.Border.Color = -2147483632
+StateNormal.Border.ColorOpacity = 255
+StateNormal.Border.LightColor = 16777215
+StateNormal.Border.LightOpacity = 200
+StateNormal.Border.LightWidth = 1
+StateNormal.Border.Style = bboSolid
+StateNormal.Border.Width = 1
+StateNormal.FontEx.Color = -2147483630
+StateNormal.FontEx.EndEllipsis = 0
+StateNormal.FontEx.FontQuality = fqFineAntialiasing
+StateNormal.FontEx.Height = 0
+StateNormal.FontEx.Name = default
+StateNormal.FontEx.PaddingBottom = 0
+StateNormal.FontEx.PaddingLeft = 3
+StateNormal.FontEx.PaddingRight = 0
+StateNormal.FontEx.PaddingTop = 0
+StateNormal.FontEx.Shadow = 0
+StateNormal.FontEx.ShadowColor = 0
+StateNormal.FontEx.ShadowColorOpacity = 255
+StateNormal.FontEx.ShadowOffsetX = 5
+StateNormal.FontEx.ShadowOffsetY = 5
+StateNormal.FontEx.ShadowRadius = 5
+StateNormal.FontEx.SingleLine = 1
+StateNormal.FontEx.Style = 
+StateNormal.FontEx.TextAlignment = bcaLeftCenter
+StateNormal.FontEx.WordBreak = 0
+StaticButton = 0

+ 164 - 0
styles/windows7.bccombo

@@ -0,0 +1,164 @@
+[HEADER]
+Author=circular
+Description=
+ControlClass=TBCButton
+
+[PROPERTIES]
+ArrowFlip = 0
+ArrowSize = 8
+ArrowWidth = 16
+DropDownBorderColor = 0
+DropDownBorderSize = 1
+DropDownColor = $FFFFFF
+DropDownFontColor = $000000
+DropDownFontHighlight = $FFFFFF
+DropDownHighlight = $FC992E
+GlobalOpacity = 255
+Rounding.RoundOptions = 
+Rounding.RoundX = 3
+Rounding.RoundY = 3
+StateClicked.Background.Color = 0
+StateClicked.Background.ColorOpacity = 255
+StateClicked.Background.Gradient1.ColorCorrection = 1
+StateClicked.Background.Gradient1.DrawMode = dmSet
+StateClicked.Background.Gradient1.EndColor = 16180676
+StateClicked.Background.Gradient1.EndColorOpacity = 255
+StateClicked.Background.Gradient1.GradientType = gtLinear
+StateClicked.Background.Gradient1.Point1XPercent = 0
+StateClicked.Background.Gradient1.Point1YPercent = 0
+StateClicked.Background.Gradient1.Point2XPercent = 0
+StateClicked.Background.Gradient1.Point2YPercent = 100
+StateClicked.Background.Gradient1.Sinus = 0
+StateClicked.Background.Gradient1.StartColor = 16577765
+StateClicked.Background.Gradient1.StartColorOpacity = 255
+StateClicked.Background.Gradient1EndPercent = 55
+StateClicked.Background.Gradient2.ColorCorrection = 1
+StateClicked.Background.Gradient2.DrawMode = dmSet
+StateClicked.Background.Gradient2.EndColor = 14398312
+StateClicked.Background.Gradient2.EndColorOpacity = 255
+StateClicked.Background.Gradient2.GradientType = gtLinear
+StateClicked.Background.Gradient2.Point1XPercent = 0
+StateClicked.Background.Gradient2.Point1YPercent = 0
+StateClicked.Background.Gradient2.Point2XPercent = 0
+StateClicked.Background.Gradient2.Point2YPercent = 100
+StateClicked.Background.Gradient2.Sinus = 0
+StateClicked.Background.Gradient2.StartColor = 15716760
+StateClicked.Background.Gradient2.StartColorOpacity = 255
+StateClicked.Background.Style = bbsGradient
+StateClicked.Border.Color = 9134636
+StateClicked.Border.ColorOpacity = 255
+StateClicked.Border.LightColor = 0
+StateClicked.Border.LightOpacity = 100
+StateClicked.Border.LightWidth = 1
+StateClicked.Border.Style = bboSolid
+StateClicked.Border.Width = 1
+StateClicked.FontEx.Color = 0
+StateClicked.FontEx.EndEllipsis = 0
+StateClicked.FontEx.Name = default
+StateClicked.FontEx.Shadow = 0
+StateClicked.FontEx.ShadowColor = 0
+StateClicked.FontEx.ShadowColorOpacity = 255
+StateClicked.FontEx.ShadowOffsetX = 5
+StateClicked.FontEx.ShadowOffsetY = 5
+StateClicked.FontEx.ShadowRadius = 5
+StateClicked.FontEx.SingleLine = 1
+StateClicked.FontEx.Style = 
+StateClicked.FontEx.TextAlignment = bcaCenter
+StateClicked.FontEx.WordBreak = 0
+StateHover.Background.Color = 0
+StateHover.Background.ColorOpacity = 255
+StateHover.Background.Gradient1.ColorCorrection = 1
+StateHover.Background.Gradient1.DrawMode = dmSet
+StateHover.Background.Gradient1.EndColor = 16576729
+StateHover.Background.Gradient1.EndColorOpacity = 255
+StateHover.Background.Gradient1.GradientType = gtLinear
+StateHover.Background.Gradient1.Point1XPercent = 0
+StateHover.Background.Gradient1.Point1YPercent = 0
+StateHover.Background.Gradient1.Point2XPercent = 0
+StateHover.Background.Gradient1.Point2YPercent = 100
+StateHover.Background.Gradient1.Sinus = 0
+StateHover.Background.Gradient1.StartColor = 16643818
+StateHover.Background.Gradient1.StartColorOpacity = 255
+StateHover.Background.Gradient1EndPercent = 50
+StateHover.Background.Gradient2.ColorCorrection = 1
+StateHover.Background.Gradient2.DrawMode = dmSet
+StateHover.Background.Gradient2.EndColor = 16112039
+StateHover.Background.Gradient2.EndColorOpacity = 255
+StateHover.Background.Gradient2.GradientType = gtLinear
+StateHover.Background.Gradient2.Point1XPercent = 0
+StateHover.Background.Gradient2.Point1YPercent = 0
+StateHover.Background.Gradient2.Point2XPercent = 0
+StateHover.Background.Gradient2.Point2YPercent = 100
+StateHover.Background.Gradient2.Sinus = 0
+StateHover.Background.Gradient2.StartColor = 16639678
+StateHover.Background.Gradient2.StartColorOpacity = 255
+StateHover.Background.Style = bbsGradient
+StateHover.Border.Color = 11632444
+StateHover.Border.ColorOpacity = 255
+StateHover.Border.LightColor = 16777215
+StateHover.Border.LightOpacity = 200
+StateHover.Border.LightWidth = 1
+StateHover.Border.Style = bboSolid
+StateHover.Border.Width = 1
+StateHover.FontEx.Color = 0
+StateHover.FontEx.EndEllipsis = 0
+StateHover.FontEx.Name = default
+StateHover.FontEx.Shadow = 0
+StateHover.FontEx.ShadowColor = 0
+StateHover.FontEx.ShadowColorOpacity = 255
+StateHover.FontEx.ShadowOffsetX = 5
+StateHover.FontEx.ShadowOffsetY = 5
+StateHover.FontEx.ShadowRadius = 5
+StateHover.FontEx.SingleLine = 1
+StateHover.FontEx.Style = 
+StateHover.FontEx.TextAlignment = bcaCenter
+StateHover.FontEx.WordBreak = 0
+StateNormal.Background.Color = 0
+StateNormal.Background.ColorOpacity = 255
+StateNormal.Background.Gradient1.ColorCorrection = 1
+StateNormal.Background.Gradient1.DrawMode = dmSet
+StateNormal.Background.Gradient1.EndColor = 15461355
+StateNormal.Background.Gradient1.EndColorOpacity = 255
+StateNormal.Background.Gradient1.GradientType = gtLinear
+StateNormal.Background.Gradient1.Point1XPercent = 0
+StateNormal.Background.Gradient1.Point1YPercent = 0
+StateNormal.Background.Gradient1.Point2XPercent = 0
+StateNormal.Background.Gradient1.Point2YPercent = 100
+StateNormal.Background.Gradient1.Sinus = 0
+StateNormal.Background.Gradient1.StartColor = 15921906
+StateNormal.Background.Gradient1.StartColorOpacity = 255
+StateNormal.Background.Gradient1EndPercent = 50
+StateNormal.Background.Gradient2.ColorCorrection = 1
+StateNormal.Background.Gradient2.DrawMode = dmSet
+StateNormal.Background.Gradient2.EndColor = 13619151
+StateNormal.Background.Gradient2.EndColorOpacity = 255
+StateNormal.Background.Gradient2.GradientType = gtLinear
+StateNormal.Background.Gradient2.Point1XPercent = 0
+StateNormal.Background.Gradient2.Point1YPercent = 0
+StateNormal.Background.Gradient2.Point2XPercent = 0
+StateNormal.Background.Gradient2.Point2YPercent = 100
+StateNormal.Background.Gradient2.Sinus = 0
+StateNormal.Background.Gradient2.StartColor = 14540253
+StateNormal.Background.Gradient2.StartColorOpacity = 255
+StateNormal.Background.Style = bbsGradient
+StateNormal.Border.Color = 7368816
+StateNormal.Border.ColorOpacity = 255
+StateNormal.Border.LightColor = 16777215
+StateNormal.Border.LightOpacity = 200
+StateNormal.Border.LightWidth = 1
+StateNormal.Border.Style = bboSolid
+StateNormal.Border.Width = 1
+StateNormal.FontEx.Color = 0
+StateNormal.FontEx.EndEllipsis = 0
+StateNormal.FontEx.Name = default
+StateNormal.FontEx.Shadow = 0
+StateNormal.FontEx.ShadowColor = 0
+StateNormal.FontEx.ShadowColorOpacity = 255
+StateNormal.FontEx.ShadowOffsetX = 5
+StateNormal.FontEx.ShadowOffsetY = 5
+StateNormal.FontEx.ShadowRadius = 5
+StateNormal.FontEx.SingleLine = 1
+StateNormal.FontEx.Style = 
+StateNormal.FontEx.TextAlignment = bcaCenter
+StateNormal.FontEx.WordBreak = 0
+StaticButton = 0

+ 136 - 34
test/test_bccombobox/umain.lfm

@@ -1,70 +1,172 @@
 object Form1: TForm1
   Left = 433
-  Height = 157
+  Height = 218
   Top = 119
-  Width = 320
+  Width = 400
   Caption = 'Form1'
-  ClientHeight = 157
-  ClientWidth = 320
+  ClientHeight = 218
+  ClientWidth = 400
+  DesignTimePPI = 120
   OnCreate = FormCreate
-  LCLVersion = '2.1.0.0'
+  LCLVersion = '2.0.2.0'
   object BCComboBox1: TBCComboBox
-    Left = 8
-    Height = 39
-    Top = 8
-    Width = 147
-    ItemIndex = -1
-    DropDownBorderColor = clBlack
+    Left = 10
+    Height = 49
+    Top = 10
+    Width = 184
+    Items.Strings = (
+      'One'
+      'Two'
+      'Three'
+    )
+    ItemIndex = 0
+    ArrowSize = 8
+    ArrowWidth = 16
+    DropDownBorderColor = 4194304
+    DropDownColor = 8405056
+    DropDownFontColor = 16770790
+    DropDownHighlight = 16744448
+    DropDownFontHighlight = clWhite
+    GlobalOpacity = 255
+    MemoryUsage = bmuHigh
+    Rounding.RoundX = 12
+    Rounding.RoundY = 12
+    StateClicked.Background.Gradient1.StartColor = 8404992
+    StateClicked.Background.Gradient1.EndColor = 4194304
+    StateClicked.Background.Gradient1.GradientType = gtRadial
+    StateClicked.Background.Gradient1.Point1XPercent = 50
+    StateClicked.Background.Gradient1.Point1YPercent = 100
+    StateClicked.Background.Gradient1.Point2XPercent = 0
+    StateClicked.Background.Gradient1.Point2YPercent = 0
+    StateClicked.Background.Gradient2.StartColor = clWhite
+    StateClicked.Background.Gradient2.EndColor = clBlack
+    StateClicked.Background.Gradient2.GradientType = gtLinear
+    StateClicked.Background.Gradient2.Point1XPercent = 0
+    StateClicked.Background.Gradient2.Point1YPercent = 0
+    StateClicked.Background.Gradient2.Point2XPercent = 0
+    StateClicked.Background.Gradient2.Point2YPercent = 100
+    StateClicked.Background.Gradient1EndPercent = 100
+    StateClicked.Background.Style = bbsGradient
+    StateClicked.Border.Style = bboNone
+    StateClicked.FontEx.Color = 16770790
+    StateClicked.FontEx.FontQuality = fqFineAntialiasing
+    StateClicked.FontEx.Height = 16
+    StateClicked.FontEx.Shadow = True
+    StateClicked.FontEx.ShadowRadius = 2
+    StateClicked.FontEx.ShadowOffsetX = 1
+    StateClicked.FontEx.ShadowOffsetY = 1
+    StateClicked.FontEx.Style = [fsBold]
+    StateHover.Background.Gradient1.StartColor = 16744448
+    StateHover.Background.Gradient1.EndColor = 8404992
+    StateHover.Background.Gradient1.GradientType = gtRadial
+    StateHover.Background.Gradient1.Point1XPercent = 50
+    StateHover.Background.Gradient1.Point1YPercent = 100
+    StateHover.Background.Gradient1.Point2XPercent = 0
+    StateHover.Background.Gradient1.Point2YPercent = 0
+    StateHover.Background.Gradient2.StartColor = clWhite
+    StateHover.Background.Gradient2.EndColor = clBlack
+    StateHover.Background.Gradient2.GradientType = gtLinear
+    StateHover.Background.Gradient2.Point1XPercent = 0
+    StateHover.Background.Gradient2.Point1YPercent = 0
+    StateHover.Background.Gradient2.Point2XPercent = 0
+    StateHover.Background.Gradient2.Point2YPercent = 100
+    StateHover.Background.Gradient1EndPercent = 100
+    StateHover.Background.Style = bbsGradient
+    StateHover.Border.Style = bboNone
+    StateHover.FontEx.Color = clWhite
+    StateHover.FontEx.FontQuality = fqFineAntialiasing
+    StateHover.FontEx.Height = 16
+    StateHover.FontEx.Shadow = True
+    StateHover.FontEx.ShadowRadius = 2
+    StateHover.FontEx.ShadowOffsetX = 1
+    StateHover.FontEx.ShadowOffsetY = 1
+    StateHover.FontEx.Style = [fsBold]
+    StateNormal.Background.Gradient1.StartColor = 4194304
+    StateNormal.Background.Gradient1.EndColor = 8405056
+    StateNormal.Background.Gradient1.GradientType = gtLinear
+    StateNormal.Background.Gradient1.Point1XPercent = 0
+    StateNormal.Background.Gradient1.Point1YPercent = 0
+    StateNormal.Background.Gradient1.Point2XPercent = 0
+    StateNormal.Background.Gradient1.Point2YPercent = 100
+    StateNormal.Background.Gradient2.StartColor = 8405056
+    StateNormal.Background.Gradient2.EndColor = 4194304
+    StateNormal.Background.Gradient2.GradientType = gtRadial
+    StateNormal.Background.Gradient2.Point1XPercent = 50
+    StateNormal.Background.Gradient2.Point1YPercent = 100
+    StateNormal.Background.Gradient2.Point2XPercent = 0
+    StateNormal.Background.Gradient2.Point2YPercent = 0
+    StateNormal.Background.Gradient1EndPercent = 60
+    StateNormal.Background.Style = bbsGradient
+    StateNormal.Border.Style = bboNone
+    StateNormal.FontEx.Color = 16770790
+    StateNormal.FontEx.FontQuality = fqFineAntialiasing
+    StateNormal.FontEx.Height = 16
+    StateNormal.FontEx.Shadow = True
+    StateNormal.FontEx.ShadowRadius = 2
+    StateNormal.FontEx.ShadowOffsetX = 1
+    StateNormal.FontEx.ShadowOffsetY = 1
+    StateNormal.FontEx.Style = [fsBold]
+    StaticButton = False
     OnChange = BCComboBox1Change
   end
   object Label1: TLabel
-    Left = 166
-    Height = 16
-    Top = 19
-    Width = 45
+    Left = 208
+    Height = 22
+    Top = 24
+    Width = 53
     Caption = 'Waiting'
     ParentColor = False
     ParentFont = False
   end
   object Label2: TLabel
-    Left = 10
-    Height = 16
-    Top = 68
-    Width = 38
+    Left = 12
+    Height = 22
+    Top = 82
+    Width = 41
     Caption = 'Style :'
     ParentColor = False
     ParentFont = False
   end
   object RadioFlash: TBGRAThemeRadioButton
-    Left = 6
-    Height = 18
-    Top = 102
-    Width = 55
+    Left = 8
+    Height = 22
+    Top = 152
+    Width = 69
     Caption = 'Flash'
     Checked = False
     Theme = BGRAColorTheme1
     OnChange = RadioButtonChange
   end
   object RadioWin7: TBGRAThemeRadioButton
-    Left = 6
-    Height = 18
-    Top = 83
-    Width = 53
+    Left = 8
+    Height = 22
+    Top = 128
+    Width = 66
     Caption = 'Win7'
-    Checked = True
+    Checked = False
     Theme = BGRAColorTheme1
     OnChange = RadioButtonChange
   end
   object RadioCustom: TBGRAThemeRadioButton
-    Left = 6
-    Height = 18
-    Top = 122
-    Width = 69
+    Left = 8
+    Height = 22
+    Top = 176
+    Width = 86
     Caption = 'Custom'
     Checked = False
     Theme = BGRAColorTheme1
     OnChange = RadioButtonChange
   end
+  object RadioDefault: TBGRAThemeRadioButton
+    Left = 8
+    Height = 22
+    Top = 104
+    Width = 86
+    Caption = 'Default'
+    Checked = True
+    Theme = BGRAColorTheme1
+    OnChange = RadioButtonChange
+  end
   object BGRAColorTheme1: TBGRAColorTheme
     ColorNormal = clBlack
     ColorHover = 24576
@@ -72,7 +174,7 @@ object Form1: TForm1
     ColorDisabled = clGray
     ColorFocused = clMoneyGreen
     ColorText = clBlack
-    Left = 120
-    Top = 88
+    left = 240
+    top = 90
   end
 end

+ 43 - 14
test/test_bccombobox/umain.pas

@@ -20,6 +20,7 @@ type
     RadioCustom: TBGRAThemeRadioButton;
     RadioFlash: TBGRAThemeRadioButton;
     RadioWin7: TBGRAThemeRadioButton;
+    RadioDefault: TBGRAThemeRadioButton;
     procedure BCComboBox1Change(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure RadioButtonChange(Sender: TObject);
@@ -30,6 +31,7 @@ type
     procedure ApplyFlashStyle;
     procedure ApplyWin7Style;
     procedure ApplyCustomStyle;
+    procedure ApplyDefaultStyle;
     procedure UpdateStyle;
 
   end;
@@ -45,19 +47,8 @@ implementation
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
-  // Adding items
-  BCComboBox1.Items.Add('One');
-  BCComboBox1.Items.Add('Two');
-  BCComboBox1.Items.Add('Three');
-
-  // Selecting items
-  BCComboBox1.ItemIndex := 0;
-
   // Style drop down
-  UpdateStyle;
-  BCComboBox1.Button.StateNormal.FontEx.Height := 16;
-  BCComboBox1.Button.StateHover.FontEx.Height := 16;
-  BCComboBox1.Button.StateClicked.FontEx.Height := 16;
+  //UpdateStyle;
 end;
 
 procedure TForm1.RadioButtonChange(Sender: TObject);
@@ -107,8 +98,14 @@ begin
 end;
 
 procedure TForm1.ApplyFlashStyle;
+var
+  prevFontHeight: Integer;
 begin
+  prevFontHeight := BCCombobox1.StateNormal.FontEx.Height;
   StyleButtonsSample(BCComboBox1.Button, TBCSampleStyle.ssFlashPlayer);
+  BCCombobox1.StateNormal.FontEx.Height := prevFontHeight;
+  BCCombobox1.StateHover.FontEx.Height := prevFontHeight;
+  BCCombobox1.StateClicked.FontEx.Height := prevFontHeight;
   BCComboBox1.DropDownColor := $606060;
   BCComboBox1.DropDownFontColor := $c0c0c0;
   BCComboBox1.DropDownBorderSize:= 2;
@@ -119,8 +116,14 @@ begin
 end;
 
 procedure TForm1.ApplyWin7Style;
+var
+  prevFontHeight: Integer;
 begin
+  prevFontHeight := BCCombobox1.StateNormal.FontEx.Height;
   StyleButtonsSample(BCComboBox1.Button, TBCSampleStyle.ssWindows7);
+  BCCombobox1.StateNormal.FontEx.Height := prevFontHeight;
+  BCCombobox1.StateHover.FontEx.Height := prevFontHeight;
+  BCCombobox1.StateClicked.FontEx.Height := prevFontHeight;
   BCComboBox1.DropDownColor := clWhite;
   BCComboBox1.DropDownFontColor := clBlack;
   BCComboBox1.DropDownBorderSize:= 1;
@@ -131,20 +134,46 @@ begin
 end;
 
 procedure TForm1.ApplyCustomStyle;
+var
+  prevFontHeight: Integer;
 begin
-  StyleButtonsSample(BCComboBox1.Button, TBCSampleStyle.ssDefault);
+  prevFontHeight := BCCombobox1.StateNormal.FontEx.Height;
+  StyleButtonsSample(BCComboBox1.Button, TBCSampleStyle.ssMacOSXLion);
+  BCCombobox1.StateNormal.FontEx.Height := prevFontHeight;
+  BCCombobox1.StateHover.FontEx.Height := prevFontHeight;
+  BCCombobox1.StateClicked.FontEx.Height := prevFontHeight;
   BCComboBox1.DropDownColor := clGray;
   BCComboBox1.DropDownBorderSize:= 3;
   BCComboBox1.DropDownBorderColor:= clGreen;
   BCComboBox1.OnDrawItem := @OnBCComboBoxDrawItem;
+  Canvas.Font.Height := BCComboBox1.StateNormal.FontEx.Height;
   BCComboBox1.ItemHeight := 2*Canvas.GetTextHeight('aq');
 end;
 
+procedure TForm1.ApplyDefaultStyle;
+var
+  prevFontHeight: Integer;
+begin
+  prevFontHeight := BCCombobox1.StateNormal.FontEx.Height;
+  StyleButtonsSample(BCComboBox1.Button, TBCSampleStyle.ssDefault);
+  BCCombobox1.StateNormal.FontEx.Height := prevFontHeight;
+  BCCombobox1.StateHover.FontEx.Height := prevFontHeight;
+  BCCombobox1.StateClicked.FontEx.Height := prevFontHeight;
+  BCComboBox1.DropDownBorderColor := $00400000;
+  BCComboBox1.DropDownBorderSize:= 1;
+  BCComboBox1.DropDownColor := $00804040;
+  BCComboBox1.DropDownFontColor := $00FFE6E6;
+  BCComboBox1.DropDownFontHighlight := clWhite;
+  BCComboBox1.DropDownHighlight := $00FF8000;
+  BCComboBox1.OnDrawItem := nil;
+end;
+
 procedure TForm1.UpdateStyle;
 begin
   if RadioWin7.Checked then ApplyWin7Style
   else if RadioFlash.Checked then ApplyFlashStyle
-  else ApplyCustomStyle;
+  else if RadioCustom.Checked then ApplyCustomStyle
+  else ApplyDefaultStyle;
 end;
 
 end.