Drawing custom borders around a Symbian control
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot change of template (Template:CodeSnippet) - now using Template:ArticleMetaData) |
hamishwillee
(Talk | contribs) m (Hamishwillee - Adding missing translation link) |
||
| (7 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | [[Category:Symbian C++]][[Category:UI]][[Category:S60 3rd Edition (initial release)]][[Category:S60 3rd Edition FP1]][[Category:S60 3rd Edition FP2]][[Category:S60 5th Edition]][[Category:Symbian^3]][[Category:Symbian Anna]][[Category:Nokia Belle]] | |
| − | + | {{ArticleMetaData <!-- v1.2 --> | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> | |sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> | ||
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | ||
| − | |sdk=<!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> | + | |devices= Nokia E90 Communicator<br/>Nokia N95 8GB |
| − | |devicecompatability=<!-- Compatible devices (e.g.: All* (must have GPS) ) --> | + | |sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> |
| − | | | + | |platform= S60 3rd Edition and later |
| − | |capabilities=<!-- Capabilities required (e.g. Location, NetworkServices. --> | + | |devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) --> |
| − | |author=[[User:Tapiolaitinen]] | + | |dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --> |
| + | |signing= Self Signed | ||
| + | |capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --> | ||
| + | |keywords= CWindowGc, CGraphicsContext, TRect, CCoeControl::Draw | ||
| + | |language= <!-- Language category code for non-English topics - e.g. Lang-Chinese --> | ||
| + | |translated-by= <!-- [[User:XXXX]] --> | ||
| + | |translated-from-title= <!-- Title only --> | ||
| + | |translated-from-id= <!-- Id of translated revision --> | ||
| + | |review-by= <!-- After re-review: [[User:username]] --> | ||
| + | |review-timestamp= <!-- After re-review: YYYYMMDD --> | ||
| + | |update-by= <!-- After significant update: [[User:username]]--> | ||
| + | |update-timestamp= <!-- After significant update: YYYYMMDD --> | ||
| + | |creationdate= 20080206 | ||
| + | |author= [[User:Tapiolaitinen]] | ||
| + | <!-- The following are not in current metadata --> | ||
| + | |id= CS000824 | ||
}} | }} | ||
==Overview== | ==Overview== | ||
| − | This code snippet demonstrates how to draw a custom border around a GUI component. | + | {{Abstract|This code snippet demonstrates how to draw a custom border around a GUI component.}} |
| − | + | ||
| − | + | ||
| − | + | ||
==Header file== | ==Header file== | ||
| − | Override the | + | Override the {{Icode|CCoeControl::Draw}} method. |
| − | <code> | + | <code cpp> |
// From CCoeControl | // From CCoeControl | ||
public: | public: | ||
| Line 43: | Line 45: | ||
Define the color of the border: | Define the color of the border: | ||
| − | <code> | + | <code cpp> |
| − | #define KBorderColor | + | #define KBorderColor TRgb(180, 0, 0) |
</code> | </code> | ||
| − | The drawing is implemented in the | + | The drawing is implemented in the {{Icode|CCoeControl::Draw}} method so that the border is drawn every time the view is drawn. |
| − | <code> | + | <code cpp> |
// Draws the view. | // Draws the view. | ||
void CAppView::Draw(const TRect& aRect) const | void CAppView::Draw(const TRect& aRect) const | ||
| Line 66: | Line 68: | ||
</code> | </code> | ||
| − | [[ | + | {{VersionHint}} |
| + | <!-- Translation --> [[zh-hans:如何绘制自定义边框]] | ||
Latest revision as of 08:57, 18 September 2012
Article Metadata
Tested with
Devices(s): Nokia E90 Communicator
Nokia N95 8GB
Nokia N95 8GB
Compatibility
Platform(s): S60 3rd Edition and later
Platform Security
Signing Required: Self Signed
Article
Keywords: CWindowGc, CGraphicsContext, TRect, CCoeControl::Draw
Created: tapiolaitinen
(06 Feb 2008)
Last edited: hamishwillee
(18 Sep 2012)
Overview
This code snippet demonstrates how to draw a custom border around a GUI component.
Header file
Override the CCoeControl::Draw method.
// From CCoeControl
public:
// Draws the view.
void Draw(const TRect& aRect) const;
Source file
Define the color of the border:
#define KBorderColor TRgb(180, 0, 0)The drawing is implemented in the CCoeControl::Draw method so that the border is drawn every time the view is drawn.
// Draws the view.
void CAppView::Draw(const TRect& aRect) const
{
CWindowGc& gc = SystemGc();
// Draw the border around the component (iComponent)
gc.SetBrushColor(KBorderColor);
TRect rect = iComponent->Rect();
// Enlarge the border rectangle so that it becomes visible. Without this,
// the rect would only contain the innards of the component, which will
// be obscured by the component itself.
rect.Grow(3, 3);
gc.DrawRect(rect);
}

