TGulBorder Class Reference

#include <mw/gulbordr.h>

Link against: egul.lib

class TGulBorder

Nested Classes and Structures

Detailed Description

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.

Member Enumeration Documentation

Enum T3DStyle

Defines the 3D border style.

EnumeratorValueDescription
EFlat0x10

A flat border.

ESunken0x20

A 3D effect sunken border.

ERaised0x40

A 3D effect raised border.

Enum TBorderType

Defines the descriptive border types.

EnumeratorValueDescription
ENoneENoBorder

No border.

ESingleGrayEWithOutline|EGray

Border is a 1 pixel wide grey outline.

ESingleBlackEWithOutline|EBlack

Border is a 1 pixel wide black outline.

ESingleDottedEWithOutline|EDottedOutline

Border is a 1 pixel wide dotted outline.

EShallowRaisedERaised|EOneStep|EAddOnePixel

A 3D raised border, with 1 pixel thickness.

EShallowSunkenESunken|EOneStep|EAddOnePixel

A 3D sunken border, with 1 pixel thickness.

EDeepRaisedEWithOutline|ERaised|EOneStep|EAddTwoPixels

A 3D raised border, with outline, and 2 pixel thickness.

EDeepRaisedWithOutlineEWithOutline|ERaised|EOneStep|EAddTwoPixels

The same as EDeepRaised.

EDeepSunkenEWithOutline|ESunken|EOneStep|EAddTwoPixels

A 3D sunken border, with outline, and 2 pixel thickness.

EDeepSunkenWithOutlineEWithOutline|ESunken|EOneStep|EAddTwoPixels

The same as EDeepSunken.

EThickDeepRaisedWithOutlineEWithOutline|ERaised|EOneStep|EAddOnePixel|EAddTwoPixels

A 3D raised border, with outline, and 3 pixel thickness.

EVerticalBarERaised|EOneStep|EAddTwoPixels|EWithOverlap

A 3D raised border, with 2 pixels thickness and no outline on the left and right hand sides.

EHorizontalBarERaised|EOneStep|EAddTwoPixels|EHorizontal|EWithOverlap

A 3D raised border, with 2 pixels thickness and no outline on the top and bottom.

Enum TConstructionStyle

Defines the border's construction style.

EnumeratorValueDescription
EOneStep0x100

One step border construction.

This type of border is drawn using the mid light and mid dark colours on opposite sides of the border.

ETwoStep0x200

Two step border construction.

This type of border uses light and dark colours for the main border frame (or mid light for the flat border), and an additional half frame using mid light or mid dark colours.

EThreeStep0x400

Three step border construction.

This type of border is drawn with an outer frame, a repeating one pixel band in mid tones, and an inner frame.

EInvertedTwoStep0x800

Inverted two step border construction.

This is the same as ETwoStep except that for raised and sunken borders, the additional half frame is drawn on the opposite side to that used in ETwoStep.

Enum TInlineStyle

Defines whether or not the border has a single pixel interior border.

By default it does not.

EnumeratorValueDescription
EWithInline0x04

The border has an interior border.

Enum TLogicalFamily

For logical borders, defines whether the border encloses a window, a container control or a control.

EnumeratorValueDescription
EWindowFamilyELogical|0x1

Logical border around a window.

EContainerFamilyELogical|0x2

Logical border around a container.

EControlFamilyELogical|0x3

Logical border around a control.

Enum TLogicalType

Defines the logical border types.

EnumeratorValueDescription
EWindowEWindowFamily|ERaised

Raised border around a window.

EFlatContainerEContainerFamily|EFlat

Flat border around a container.

ERaisedContainerEContainerFamily|ERaised

Raised border around a container.

ESunkenContainerEContainerFamily|ESunken

Sunken border around a container.

EFlatControlEControlFamily|EFlat

Flat border around a control.

ERaisedControlEControlFamily|ERaised

Raised border around a control.

ESunkenControlEControlFamily|ESunken

Sunken border around a control.

EFocusedRaisedControlEControlFamily|ERaised|0x100

Raised border around a control with focus.

EFocusedSunkenControlEControlFamily|ESunken|0x100

Sunken border around a control with focus.

Enum TOutlineStyle

Defines the border outline style.

Note that not all border types have an outline.

EnumeratorValueDescription
EWithOutline0x01

The border has a single pixel outline, either solid (by default) or dotted.

EDottedOutline0x02

The border outline is drawn using a dotted pen.

Enum TRounding

Defines the number of pixels that are removed to produce rounded corners.

EnumeratorValueDescription
EAddOneRoundingPixel0x10000

Border rounded by removing one extra pixel.

EAddTwoRoundingPixels0x20000

Border rounded by removing two extra pixels.

EAddFourRoundingPixels0x40000

Border rounded by by removing four extra pixels.

Enum 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.

EnumeratorValueDescription
EAddOnePixel0x1000

The border has one extra pixel.

EAddTwoPixels0x2000

The border has two extra pixels.

EAddFourPixels0x4000

The border has four extra pixels.

Constructor & Destructor Documentation

TGulBorder ( )

IMPORT_CTGulBorder()

Default constructor.

The border type is initialised to zero (i.e. no border).

TGulBorder ( TBorderType )

IMPORT_CTGulBorder(TBorderTypeaType)

Constructor with a border type.

Parameters
aTypeThe border type.

TGulBorder ( TBorderType, TGulAdjacent )

IMPORT_CTGulBorder(TBorderTypeaType,
TGulAdjacentaAdjacent
)

Constructor with a border type and an adjacency.

Parameters
aTypeThe border type.
aAdjacentBorder adjacency. No outline is drawn for border sides that are adjacent.

TGulBorder ( TInt )

IMPORT_CTGulBorder(TIntaType)

Constructor with a border type, specified as a TInt.

Parameters
aTypeThe border type. Possible values are defined in the TBorderType enumeration.

TGulBorder ( TInt, TGulAdjacent )

IMPORT_CTGulBorder(TIntaType,
TGulAdjacentaAdjacent
)

Constructor with a border type, specified as a TInt, and a border adjacency.

Parameters
aTypeThe border type.
aAdjacentBorder adjacency. No outline is drawn for border sides that are adjacent.

Member Function Documentation

Adjacent ( )

IMPORT_C TIntAdjacent()const

Gets the border adjacency.

No outline is drawn for border sides that are adjacent.

Return Value
The border adjacency. For possible values, see the TGulAdjacent enum.

Draw ( CGraphicsContext &, const TRect &, const TColors & )

IMPORT_C voidDraw(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().

See also: MGulLogicalBorder::Draw()

Parameters
aGcThe graphics context to draw through.
aRectThe containing rectangle. This defines the border's outline, i.e. the border is drawn inside this rectangle.
aBorderColorsThe border colours.

Draw ( CGraphicsContext &, const TRect & )

IMPORT_C voidDraw(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 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().

See also: MGulLogicalBorder::Draw()

Parameters
aGcThe graphics context to draw through.
aRectThe containing rectangle. This defines the border's outline, i.e. the border is drawn inside this rectangle.

HasBorder ( )

IMPORT_C TBoolHasBorder()const

Tests whether a border is present.

No border is present if its type is ENoBorder.

Return Value
True if a border is present, otherwise false.

InnerRect ( const TRect & )

IMPORT_C TRectInnerRect(const TRect &aOuterRect)const

Returns the rectangular area enclosed by the border.

Parameters
aOuterRectThe border's containing rectangle.
Return Value
The inner rectangle.

Margins ( )

IMPORT_C TMarginsMargins()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().

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.

Return Value
The border margins.

OuterRect ( const TRect & )

IMPORT_C TRectOuterRect(const TRect &aInnerRect)const

Returns the rectangular area required to accommodate the inner rectangle aInnerRect and the border.

Parameters
aInnerRectThe inner rectangular area.
Return Value
The enclosing rectangular area.

Rounding ( )

IMPORT_C TIntRounding()const

SetAdjacent ( TInt )

IMPORT_C voidSetAdjacent(TIntaAdjacent)

Sets the border adjacency.

No outline is drawn for border sides that are adjacent.

Parameters
aAdjacentThe border adjacency. For possible values, see the TGulAdjacent enum.

SetType ( TInt )

IMPORT_C voidSetType(TIntaType)

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.

Parameters
aTypeThe border type.

SizeDelta ( )

IMPORT_C TSizeSizeDelta()const

Returns the size difference between the inner and outer rectangles of the border.

Return Value
The size difference between the inner and outer rectangles.

Thickness ( )

IMPORT_C TIntThickness()const

Deprecated

Type ( )

IMPORT_C TIntType()const

Gets the border type.

Return Value
The border type. This is one of the values from the TBorderType (for descriptive borders) or TLogicalType (for logical borders) enums.