|
||
class TGulBorder;
Draws a border around a control.
The rectangular areas enclosed by borders are typically working areas of the graphics context so the class supplies a number of methods which describe how it occupies the area.
A distinction between descriptive and logical borders is made. For descriptive borders the appearance of the border is known and fixed. The type of border drawn is determined by flags which describe how it is to be constructed. These flags can be combined to achieve many different effects, and standard combinations have been supplied (see the TBorderType enumeration). For logical borders the use of the border is known and fixed but the appearance is not specified. The appearance and sizing functions must be supplied in custom written code.
Defined in TGulBorder
:
Adjacent()const
Gets the border adjacency.Draw(CGraphicsContext &,const TRect &)const
Draws the border using a graphics context, inside a containing rectangle, and us...Draw(CGraphicsContext &,const TRect &,const TColors &)const
Draws the border using a graphics context, inside a containing rectangle, and us...EAddFourPixels
The border has four extra pixels. EAddFourRoundingPixels
Border rounded by by removing four extra pixels. EAddOnePixel
The border has one extra pixel. EAddOneRoundingPixel
Border rounded by removing one extra pixel. EAddTwoPixels
The border has two extra pixels. EAddTwoRoundingPixels
Border rounded by removing two extra pixels. EContainerFamily
Logical border around a container. EControlFamily
Logical border around a control. EDeepRaised
A 3D raised border, with outline, and 2 pixel thickness. EDeepRaisedWithOutline
The same as EDeepRaised. EDeepSunken
A 3D sunken border, with outline, and 2 pixel thickness. EDeepSunkenWithOutline
The same as EDeepSunken. EDottedOutline
The border outline is drawn using a dotted pen. EFlat
A flat border. EFlatContainer
Flat border around a container. EFlatControl
Flat border around a control. EFocusedRaisedControl
Raised border around a control with focus. EFocusedSunkenControl
Sunken border around a control with focus. EHorizontalBar
A 3D raised border, with 2 pixels thickness and no outline on the top and bottom...EInvertedTwoStep
Inverted two step border construction.ENone
No border. EOneStep
One step border construction.ERaised
A 3D effect raised border. ERaisedContainer
Raised border around a container. ERaisedControl
Raised border around a control. EShallowRaised
A 3D raised border, with 1 pixel thickness. EShallowSunken
A 3D sunken border, with 1 pixel thickness. ESingleBlack
Border is a 1 pixel wide black outline. ESingleDotted
Border is a 1 pixel wide dotted outline. ESingleGray
Border is a 1 pixel wide grey outline. ESunken
A 3D effect sunken border. ESunkenContainer
Sunken border around a container. ESunkenControl
Sunken border around a control. EThickDeepRaisedWithOutline
A 3D raised border, with outline, and 3 pixel thickness. EThreeStep
Three step border construction.ETwoStep
Two step border construction.EVerticalBar
A 3D raised border, with 2 pixels thickness and no outline on the left and right...EWindow
Raised border around a window. EWindowFamily
Logical border around a window. EWithInline
The border has an interior border. EWithOutline
The border has a single pixel outline, either solid (by default) or dotted. HasBorder()const
Tests whether a border is present.InnerRect(const TRect &)const
Returns the rectangular area enclosed by the border.Margins()const
Returns the border margins.OuterRect(const TRect &)const
Returns the rectangular area required to accommodate the inner rectangle aInnerR...SetAdjacent(TInt)
Sets the border adjacency.SetType(TInt)
Sets the border type.SizeDelta()const
Returns the size difference between the inner and outer rectangles of the border...T3DStyle
Defines the 3D border style. TBorderType
Defines the descriptive border types. TColors
Represents the colours used within the border and for the optional single pixel ...TConstructionStyle
Defines the border's construction style. TGulBorder()
Default constructor.TGulBorder(TBorderType)
Constructor with a border type.TGulBorder(TBorderType,TGulAdjacent)
Constructor with a border type and an adjacency.TGulBorder(TInt)
Constructor with a border type, specified as a TInt.TGulBorder(TInt,TGulAdjacent)
Constructor with a border type, specified as a TInt, and a border adjacency.TInlineStyle
Defines whether or not the border has a single pixel interior border.TLogicalFamily
For logical borders, defines whether the border encloses a window, a container c...TLogicalType
Defines the logical border types. TOutlineStyle
Defines the border outline style.TRounding
Defines the number of pixels that are removed to produce rounded corners. TThickness
Defines the number of pixels to add to the border thickness.Type()const
Gets the border type.IMPORT_C TGulBorder();
Default constructor.
The border type is initialised to zero (i.e. no border).
IMPORT_C TGulBorder(TBorderType aType);
Constructor with a border type.
|
IMPORT_C TGulBorder(TBorderType aType, TGulAdjacent aAdjacent);
Constructor with a border type and an adjacency.
|
IMPORT_C TGulBorder(TInt aType);
Constructor with a border type, specified as a TInt.
|
IMPORT_C TGulBorder(TInt aType, TGulAdjacent aAdjacent);
Constructor with a border type, specified as a TInt, and a border adjacency.
|
IMPORT_C void Draw(CGraphicsContext &aGc, const TRect &aRect, const TColors &aBorderColors) const;
Draws the border using a graphics context, inside a containing rectangle, and using the border colours specified.
This function does nothing if the border type is ENone. If the border is a logical border, drawing is delegated to its implementation
of MGulLogicalBorder::Draw(const TGulBorder &,CGraphicsContext &,const TRect &,const TGulBorder::TColors &)const
.
|
IMPORT_C void Draw(CGraphicsContext &aGc, const TRect &aRect) const;
Draws the border using a graphics context, inside a containing rectangle, and using default values for the border colours.
For details of the default border colours, see class TGulBorder::TColors
.
This function does nothing if the border type is ENone. If the border is a logical border, drawing is delegated to its implementation
of MGulLogicalBorder::Draw(const TGulBorder &,CGraphicsContext &,const TRect &,const TGulBorder::TColors &)const
.
|
IMPORT_C TRect InnerRect(const TRect &aOuterRect) const;
Returns the rectangular area enclosed by the border.
|
|
IMPORT_C TRect OuterRect(const TRect &aInnerRect) const;
Returns the rectangular area required to accommodate the inner rectangle aInnerRect and the border.
|
|
IMPORT_C void SetType(TInt aType);
Sets the border type.
Descriptive borders use one of the values from the TBorderType enum. Logical borders use one of the TLogicalType values. Custom border types can be created by selecting one value from each of the enums T3DStyle and TConstructionStyle, one or more values from each of the enums TOutlineStyle and TInlineStyle, one or more values from the enums TThickness and TRounding and ORing all these values together.
|
IMPORT_C void SetAdjacent(TInt aAdjacent);
Sets the border adjacency.
No outline is drawn for border sides that are adjacent.
|
IMPORT_C TSize SizeDelta() const;
Returns the size difference between the inner and outer rectangles of the border.
|
IMPORT_C TMargins Margins() const;
Returns the border margins.
The border margins are four integers that represent the widths in pixels of the top, bottom, left and right hand sides of the border.
If the border is a logical border, then calculating the margins is delegated to its implementation of MGulLogicalBorder::Margins(const TGulBorder &)const
.
Otherwise, the margins are calculated by adding together the single pixel border outline, if present (this is zero for adjacent sides), the border thickness (containing the mid-tone highlights and lowlights), and the single pixel interior outline, if present.
|
IMPORT_C TBool HasBorder() const;
Tests whether a border is present.
No border is present if its type is ENoBorder.
|
IMPORT_C TInt Adjacent() const;
Gets the border adjacency.
No outline is drawn for border sides that are adjacent.
|
IMPORT_C TInt Type() const;
Gets the border type.
|
class TColors;
Represents the colours used within the border and for the optional single pixel border outlines.
These colours are stored using TRgb
values.
An object of this type can be populated using ColorUtils::GetRgbDerivedBorderColors(TGulBorder::TColors &,TRgb,TDisplayMode)
.
The colours used inside the border are derived from iBack, the border's background colour, so that border colours can be lighter or darker shades of the colour used in the main body of the control they enclose. Different combinations of light and dark shades are used to draw opposite border sides, to achieve a raised or sunken effect.
Defined in TGulBorder::TColors
:
TColors()
Default constructor.iBack
The background colour for the border.iDark
The darkest colour.iInternalBack
Not used. iLight
The lightest colour.iLine
The line colour.iMid
The mid dark colour.iMidlight
The mid light colour.TColors()
IMPORT_C TColors();
Default constructor.
Initialises the border colours to blacks, whites and greys. For details, see the data members.
iLine
TRgb iLine;
The line colour.
This is the colour used to draw the outlines on either side of the border. Not all border types have an outline. By default, KRgbBlack.
iBack
TRgb iBack;
The background colour for the border.
The other colours used in the border are derived from this.
By default, KRgbWhite.
iLight
TRgb iLight;
The lightest colour.
By default, KRgbWhite.
iMidlight
TRgb iMidlight;
The mid light colour.
This colour is midway between iBack and iLight. By default, KRgbWhite.
iMid
TRgb iMid;
The mid dark colour.
This colour is midway between iBack and iDark. By default, KRgbDarkGray.
iDark
TRgb iDark;
The darkest colour.
By default, KRgbDarkGray.
iInternalBack
TRgb iInternalBack;
Not used.
TOutlineStyle
Defines the border outline style.
Note that not all border types have an outline.
|
TInlineStyle
Defines whether or not the border has a single pixel interior border.
By default it does not.
|
T3DStyle
Defines the 3D border style.
|
TConstructionStyle
Defines the border's construction style.
|
TThickness
Defines the number of pixels to add to the border thickness.
The border thickness is the central part of the border, coloured in the mid-tone highlights and lowlights.
For two step-constructed borders, the additional pixels are only added to either the top left or bottom right hand sides.
|
TRounding
Defines the number of pixels that are removed to produce rounded corners.
|
TLogicalFamily
For logical borders, defines whether the border encloses a window, a container control or a control.
|
TBorderType
Defines the descriptive border types.
|
TLogicalType
Defines the logical border types.
|