mirror of https://github.com/anoshenko/rui.git
Added "outline-offset" property
This commit is contained in:
parent
372f5971e8
commit
eac3379fb1
712
README-ru.md
712
README-ru.md
File diff suppressed because it is too large
Load Diff
44
README.md
44
README.md
|
@ -745,7 +745,7 @@ If all the lines of the frame are the same, then the following properties can be
|
||||||
|-----------|----------|----------|---------------------|
|
|-----------|----------|----------|---------------------|
|
||||||
| "style" | Style | int | Border line style |
|
| "style" | Style | int | Border line style |
|
||||||
| "width" | Width | SizeUnit | Border line width |
|
| "width" | Width | SizeUnit | Border line width |
|
||||||
| "color" | Color | Color | Border line color |
|
| "color" | ColorTag | Color | Border line color |
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
|
||||||
|
@ -836,6 +836,48 @@ equivalent to
|
||||||
rui.ColorProperty: rui.Black,
|
rui.ColorProperty: rui.Black,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
### "outline" and "outline-offset" properties
|
||||||
|
|
||||||
|
The "outline" property defines the border outside the View.
|
||||||
|
A frame line is described by three attributes: line style, thickness, and color.
|
||||||
|
|
||||||
|
The "outline" property is similar to the "border" property. The three main differences between an "outline" frame and a "border" frame are:
|
||||||
|
|
||||||
|
1) the "border" frame is always located inside the boundaries of the View, and the "outline" frame can be located both inside the View and outside it;
|
||||||
|
|
||||||
|
2) all sides of the "outline" frame are the same, while the sides of the "border" frame can have different color, style and thickness.
|
||||||
|
|
||||||
|
3) "border" thickness is added to "padding" and "outline" thickness does not affect "padding".
|
||||||
|
|
||||||
|
The value of the "border" property is stored as an OutlineProperty interface that implements the Properties interface (see above).
|
||||||
|
OutlineProperty can contain the following properties:
|
||||||
|
|
||||||
|
| Property | Constant | Type | Description |
|
||||||
|
|-----------|----------|----------|---------------------|
|
||||||
|
| "style" | Style | int | Border line style |
|
||||||
|
| "width" | Width | SizeUnit | Border line width |
|
||||||
|
| "color" | ColorTag | Color | Border line color |
|
||||||
|
|
||||||
|
Line style can take the following values:
|
||||||
|
|
||||||
|
| Value | Constant | Name | Description |
|
||||||
|
|:-----:|------------|----------|---------------------|
|
||||||
|
| 0 | NoneLine | "none" | No frame |
|
||||||
|
| 1 | SolidLine | "solid" | Solid line |
|
||||||
|
| 2 | DashedLine | "dashed" | Dashed line |
|
||||||
|
| 3 | DottedLine | "dotted" | Dotted line |
|
||||||
|
| 4 | DoubleLine | "double" | Double solid line |
|
||||||
|
|
||||||
|
All other style values are ignored.
|
||||||
|
|
||||||
|
The NewOutline function is used to create the OutlineProperty interface.
|
||||||
|
|
||||||
|
By default, the inner border of the "outline" border is the same as the border of the View (i.e. the border is drawn around the View).
|
||||||
|
To change this behavior, use the "outline-offset" SizeUnit property (OutlineOffset constant).
|
||||||
|
This property defines the distance between the inner border of the frame and the border of the View.
|
||||||
|
A positive value moves the frame away from the View's boundaries, while a negative value forces the frame to be inside the View
|
||||||
|
(in this case, the frame is drawn on top of the contents of the View).
|
||||||
|
|
||||||
### "radius" property
|
### "radius" property
|
||||||
|
|
||||||
The "radius" property sets the elliptical corner radius of the View. Radii are specified by the RadiusProperty
|
The "radius" property sets the elliptical corner radius of the View. Radii are specified by the RadiusProperty
|
||||||
|
|
|
@ -277,6 +277,10 @@ const (
|
||||||
// The "outline-width" SizeUnit property sets the width of an view's outline.
|
// The "outline-width" SizeUnit property sets the width of an view's outline.
|
||||||
OutlineWidth = "outline-width"
|
OutlineWidth = "outline-width"
|
||||||
|
|
||||||
|
// OutlineWidth is the constant for the "outline-offset" property tag.
|
||||||
|
// The "outline-offset" SizeUnit property sets the amount of space between an outline and the edge or border of an element..
|
||||||
|
OutlineOffset = "outline-offset"
|
||||||
|
|
||||||
// Shadow is the constant for the "shadow" property tag.
|
// Shadow is the constant for the "shadow" property tag.
|
||||||
// The "shadow" property adds shadow effects around a view's frame. A shadow is described
|
// The "shadow" property adds shadow effects around a view's frame. A shadow is described
|
||||||
// by X and Y offsets relative to the element, blur and spread radius, and color.
|
// by X and Y offsets relative to the element, blur and spread radius, and color.
|
||||||
|
|
|
@ -136,6 +136,7 @@ var sizeProperties = map[string]string{
|
||||||
BorderTopWidth: BorderTopWidth,
|
BorderTopWidth: BorderTopWidth,
|
||||||
BorderBottomWidth: BorderBottomWidth,
|
BorderBottomWidth: BorderBottomWidth,
|
||||||
OutlineWidth: OutlineWidth,
|
OutlineWidth: OutlineWidth,
|
||||||
|
OutlineOffset: OutlineOffset,
|
||||||
XOffset: XOffset,
|
XOffset: XOffset,
|
||||||
YOffset: YOffset,
|
YOffset: YOffset,
|
||||||
BlurRadius: BlurRadius,
|
BlurRadius: BlurRadius,
|
||||||
|
|
|
@ -212,7 +212,7 @@ func (style *viewStyle) cssViewStyle(builder cssBuilder, session Session) {
|
||||||
for _, tag := range []string{
|
for _, tag := range []string{
|
||||||
Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight, Left, Right, Top, Bottom,
|
Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight, Left, Right, Top, Bottom,
|
||||||
TextSize, TextIndent, LetterSpacing, WordSpacing, LineHeight, TextLineThickness,
|
TextSize, TextIndent, LetterSpacing, WordSpacing, LineHeight, TextLineThickness,
|
||||||
ListRowGap, ListColumnGap, GridRowGap, GridColumnGap, ColumnGap, ColumnWidth} {
|
ListRowGap, ListColumnGap, GridRowGap, GridColumnGap, ColumnGap, ColumnWidth, OutlineOffset} {
|
||||||
|
|
||||||
if size, ok := sizeProperty(style, tag, session); ok && size.Type != Auto {
|
if size, ok := sizeProperty(style, tag, session); ok && size.Type != Auto {
|
||||||
cssTag, ok := sizeProperties[tag]
|
cssTag, ok := sizeProperties[tag]
|
||||||
|
|
|
@ -321,6 +321,12 @@ func GetOutline(view View, subviewID ...string) ViewOutline {
|
||||||
return ViewOutline{Style: NoneLine, Width: AutoSize(), Color: 0}
|
return ViewOutline{Style: NoneLine, Width: AutoSize(), Color: 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetOutlineOffset returns the subview outline offset.
|
||||||
|
// If the second argument (subviewID) is not specified or it is "" then a offset of the first argument (view) is returned
|
||||||
|
func GetOutlineOffset(view View, subviewID ...string) SizeUnit {
|
||||||
|
return sizeStyledProperty(view, subviewID, OutlineOffset, false)
|
||||||
|
}
|
||||||
|
|
||||||
// GetViewShadows returns shadows of the subview.
|
// GetViewShadows returns shadows of the subview.
|
||||||
// If the second argument (subviewID) is not specified or it is "" then shadows of the first argument (view) is returned.
|
// If the second argument (subviewID) is not specified or it is "" then shadows of the first argument (view) is returned.
|
||||||
func GetViewShadows(view View, subviewID ...string) []ViewShadow {
|
func GetViewShadows(view View, subviewID ...string) []ViewShadow {
|
||||||
|
|
Loading…
Reference in New Issue