|
1 <?xml version="1.0" encoding="UTF-8"?> |
|
2 <!-- Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). --> |
|
3 <!-- All rights reserved. --> |
|
4 <!-- This component and the accompanying materials are made available --> |
|
5 <!-- under the terms of the License "Eclipse Public License v1.0" --> |
|
6 <!-- which accompanies this distribution, and is available --> |
|
7 <!-- at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
8 |
|
9 <componentDefinition xmlns="http://www.nokia.com/sdt/emf/component" |
|
10 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
|
11 |
|
12 <enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.ButtonToolbarItemCommands"> |
|
13 <enumElement value="UNIQUE"/> |
|
14 </enumPropertyDeclaration> |
|
15 |
|
16 <enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CAknButton.HorizTextAlign" defaultValue="CGraphicsContext::ECenter"> |
|
17 <enumElement value="CGraphicsContext::ECenter" displayValue="center" /> |
|
18 <enumElement value="CGraphicsContext::ELeft" displayValue="left" /> |
|
19 <enumElement value="CGraphicsContext::ERight" displayValue="right" /> |
|
20 </enumPropertyDeclaration> |
|
21 |
|
22 <enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CAknButton.ToolTipPosition" defaultValue="CAknButton::EPositionTop"> |
|
23 <enumElement value="CAknButton::EPositionTop" displayValue="top" /> |
|
24 <enumElement value="CAknButton::EPositionBottom" displayValue="bottom" /> |
|
25 <enumElement value="CAknButton::EPositionLeft" displayValue="left" /> |
|
26 <enumElement value="CAknButton::EPositionRight" displayValue="right" /> |
|
27 </enumPropertyDeclaration> |
|
28 |
|
29 <enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CAknButton.TextAndIconAlignment" defaultValue="CAknButton::EIconBeforeText"> |
|
30 <enumElement value="CAknButton::EIconBeforeText" displayValue="icon before text" /> |
|
31 <enumElement value="CAknButton::EIconAfterText" displayValue="icon after text" /> |
|
32 <enumElement value="CAknButton::EIconUnderText" displayValue="icon under text" /> |
|
33 <enumElement value="CAknButton::EIconOverText" displayValue="icon over text" /> |
|
34 <enumElement value="CAknButton::EOverlay" displayValue="overlay" /> |
|
35 </enumPropertyDeclaration> |
|
36 |
|
37 <enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CAknButton.VertTextAlign" defaultValue="CAknButton::ECenter"> |
|
38 <enumElement value="CAknButton::ECenter" displayValue="center" /> |
|
39 <enumElement value="CAknButton::ETop" displayValue="top" /> |
|
40 <enumElement value="CAknButton::EBottom" displayValue="bottom" /> |
|
41 </enumPropertyDeclaration> |
|
42 |
|
43 <enumPropertyDeclaration qualifiedName="com.nokia.sdt.series60.CAknButton.Font" defaultValue="normal"> |
|
44 <enumElement value="normal" displayValue="normal" /> |
|
45 <enumElement value="CEikonEnv::Static()->LegendFont()" displayValue="legend" /> |
|
46 <enumElement value="CEikonEnv::Static()->DenseFont()" displayValue="dense" /> |
|
47 <enumElement value="CEikonEnv::Static()->SymbolFont()" displayValue="symbol" /> |
|
48 <enumElement value="CEikonEnv::Static()->TitleFont()" displayValue="title" /> |
|
49 <enumElement value="CEikonEnv::Static()->AnnotationFont()" displayValue="annotation" /> |
|
50 </enumPropertyDeclaration> |
|
51 |
|
52 <compoundPropertyDeclaration |
|
53 qualifiedName="com.nokia.sdt.series60.CAknButtonMultiImageProperty" |
|
54 editorClass="com.nokia.sdt.symbian.ui.editors.ImageEditorFactory" |
|
55 converterClass="com.nokia.sdt.series60.component.CAknButtonMultiImagePropertyConverter"> |
|
56 <property name="bmpfile" descriptionKey="bmpfileDescription" type="string"/> |
|
57 <property name="bmpid" descriptionKey="bmpidDescription" type="string"/> |
|
58 <property name="bmpmask" descriptionKey="bmpmaskDescription" type="string"/> |
|
59 <property name="bmpidDimmed" descriptionKey="bmpidDimmedDescription" type="string"/> |
|
60 <property name="bmpmaskDimmed" descriptionKey="bmpmaskDimmedDescription" type="string"/> |
|
61 <property name="bmpidPressed" descriptionKey="bmpidPressedDescription" type="string"/> |
|
62 <property name="bmpmaskPressed" descriptionKey="bmpmaskPressedDescription" type="string"/> |
|
63 <property name="bmpidHover" descriptionKey="bmpidHoverDescription" type="string"/> |
|
64 <property name="bmpmaskHover" descriptionKey="bmpmaskHoverDescription" type="string"/> |
|
65 </compoundPropertyDeclaration> |
|
66 |
|
67 |
|
68 <component baseComponent="com.nokia.sdt.series60.CCoeControlBase" |
|
69 friendlyName="%friendlyName" |
|
70 qualifiedName="com.nokia.sdt.series60.CAknButton" |
|
71 category="Controls" |
|
72 instanceNameRoot="button" |
|
73 version="1.0"> |
|
74 <documentation> |
|
75 <information>%information</information> |
|
76 </documentation> |
|
77 <symbian sdkName="com.nokia.series60" minSDKVersion="5.0" |
|
78 className="CAknButton" classHelpTopic="" |
|
79 resourceType="" resourceHelpTopic="" /> |
|
80 <designerImages smallIconFile="CAknButton_sm.png" |
|
81 largeIconFile="CAknButton.png" /> |
|
82 |
|
83 <attributes> |
|
84 <attribute key="cpp-class-name">CAknButton</attribute> |
|
85 <attribute key="is-ccoecontrol-content">true</attribute> |
|
86 <attribute key="editable-array-property">items</attribute> |
|
87 </attributes> |
|
88 |
|
89 <properties> |
|
90 |
|
91 <property category="Text" name="buttonText" type="localizedString" default="Button" |
|
92 editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" |
|
93 descriptionKey="buttonTextDescription" displayName="%buttonTextDisplay"/> |
|
94 <property category="Text" name="buttonHelpText" type="localizedString" default="Button Hover Text" |
|
95 editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" |
|
96 descriptionKey="buttonHelpTextDescription" displayName="%buttonHelpTextDisplay"/> |
|
97 <enumProperty category="Text" name="horizTextAlign" type="com.nokia.sdt.series60.CAknButton.HorizTextAlign" |
|
98 descriptionKey="horizTextAlignDescr" displayName="%horizTextAlign" /> |
|
99 <enumProperty category="Text" name="vertTextAlign" type="com.nokia.sdt.series60.CAknButton.VertTextAlign" |
|
100 descriptionKey="vertTextAlignDescr" displayName="%vertTextAlign" /> |
|
101 <enumProperty category="Text" name="toolTipPosition" type="com.nokia.sdt.series60.CAknButton.ToolTipPosition" |
|
102 descriptionKey="toolTipPositionDescr" displayName="%toolTipPosition" /> |
|
103 <enumProperty category="Text" name="textAndIconAlignment" type="com.nokia.sdt.series60.CAknButton.TextAndIconAlignment" |
|
104 descriptionKey="textAndIconAlignmentDescr" displayName="%textAndIconAlignment" /> |
|
105 <enumProperty category="Text" name="textFont" type="com.nokia.sdt.series60.CAknButton.Font" |
|
106 descriptionKey="textFontDescr" displayName="%textFont" /> |
|
107 <compoundProperty category="Image" name="images" |
|
108 type="com.nokia.sdt.series60.CAknButtonMultiImageProperty" |
|
109 descriptionKey="imagesDescription" /> |
|
110 |
|
111 <property category="Flags" name="buttonTextLeft" type="boolean" descriptionKey="buttonTextLeftDescr" /> |
|
112 <property category="Flags" name="buttonSizeFitText" type="boolean" descriptionKey="buttonSizeFitTextDescr" /> |
|
113 <property category="Flags" name="buttonNoFrame" type="boolean" descriptionKey="buttonNoFrameDescr" /> |
|
114 <property category="Flags" name="buttonKeyRepeat" type="boolean" descriptionKey="buttonKeyRepeatDescr" /> |
|
115 <property category="Flags" name="buttonReportOnKeyDown" type="boolean" descriptionKey="buttonReportOnKeyDownDescr" /> |
|
116 <property category="Flags" name="buttonNoFramePressEvent" type="boolean" descriptionKey="buttonNoFramePressEventDescr" /> |
|
117 <property category="Flags" name="buttonRequestExitOnButtonUpEvent" type="boolean" descriptionKey="buttonRequestExitOnButtonUpEventDescr" /> |
|
118 <property category="Flags" name="buttonReportOnLongPress" type="boolean" descriptionKey="buttonReportOnLongPressDescr" /> |
|
119 |
|
120 <!-- Hidden commands used to fill out the TBAR_CTRL 'type' and 'id' members --> |
|
121 <property category="Hidden" name="toolBarType" type="string" default="EAknCtButton"/> |
|
122 <enumProperty category="Hidden" name="command" |
|
123 type="com.nokia.sdt.series60.ButtonToolbarItemCommands" |
|
124 descriptionKey="commandDescription" /> |
|
125 |
|
126 </properties> |
|
127 |
|
128 <implementations> |
|
129 <implementation> |
|
130 <interface id="com.nokia.sdt.datamodel.adapter.IVisualAppearance"/> |
|
131 <interface id="com.nokia.sdt.datamodel.adapter.IDirectImageEdit"/> |
|
132 <interface id="com.nokia.sdt.datamodel.adapter.IDirectLabelEdit"/> |
|
133 <interface id="com.nokia.sdt.datamodel.adapter.IComponentEventInfo"/> |
|
134 <interface id="com.nokia.sdt.datamodel.adapter.IImagePropertyRenderingInfo"/> |
|
135 <script file="CAknButton.js" prototype="CAknButton"/> |
|
136 </implementation> |
|
137 </implementations> |
|
138 |
|
139 <events defaultEventName="selected"> |
|
140 <event name="selected" displayName="%selected" category="ToolbarEvent" |
|
141 group="ToolbarEvent" |
|
142 handlerNameTemplate="Handle{title(name)}SelectedL" |
|
143 descriptionKey="selectedDescription" |
|
144 /> |
|
145 </events> |
|
146 |
|
147 <sourceMapping> |
|
148 |
|
149 <mapResource struct="AVKON_BUTTON" headers="eikon.rh"> |
|
150 |
|
151 <mapBitmaskMember property="." member="flags" |
|
152 includedProperties="buttonTextLeft buttonSizeFitText buttonNoFrame buttonKeyRepeat buttonReportOnKeyDown buttonNoFramePressEvent buttonRequestExitOnButtonUpEvent buttonReportOnLongPress"> |
|
153 <mapBitmaskValue properties="buttonTextLeft" value="KAknButtonTextLeft" /> |
|
154 <mapBitmaskValue properties="buttonSizeFitText" value="KAknButtonSizeFitText" /> |
|
155 <mapBitmaskValue properties="buttonNoFrame" value="KAknButtonNoFrame" /> |
|
156 <mapBitmaskValue properties="buttonKeyRepeat" value="KAknButtonKeyRepeat" /> |
|
157 <mapBitmaskValue properties="buttonReportOnKeyDown" value="KAknButtonReportOnKeyDown" /> |
|
158 <mapBitmaskValue properties="buttonNoFramePressEvent" value="KAknButtonNoFramePressEvent" /> |
|
159 <mapBitmaskValue properties="buttonRequestExitOnButtonUpEvent" value="KAknButtonRequestExitOnButtonUpEvent" /> |
|
160 <mapBitmaskValue properties="buttonReportOnLongPress" value="KAknButtonReportOnLongPress" /> |
|
161 </mapBitmaskMember> |
|
162 |
|
163 <mapResourceMember property="." member="states[0]" |
|
164 struct="AVKON_BUTTON_STATE" headers="eikon.rh" id="multi$states[0]" > |
|
165 |
|
166 <mapSimpleMember property="buttonText" member="txt"/> |
|
167 <mapSimpleMember property="buttonHelpText" member="helptxt"/> |
|
168 <mapSimpleMember property="images.bmpfile" member="bmpfile"/> |
|
169 |
|
170 <mapIdentifierMember property="images.bmpid" member="bmpid"/> |
|
171 <mapIdentifierMember property="images.bmpmask" member="bmpmask"/> |
|
172 |
|
173 // stupid header doesn't initialize bmpmask to -1 |
|
174 <select property="images.bmpmask"> |
|
175 <choice value=""> |
|
176 <mapFixedMember member="bmpmask" value="-1"/> |
|
177 </choice> |
|
178 <choice> |
|
179 <mapIdentifierMember property="images.bmpmask" member="bmpmask"/> |
|
180 </choice> |
|
181 </select> |
|
182 |
|
183 <select property="images.bmpmaskDimmed"> |
|
184 <choice value=""> |
|
185 <mapFixedMember member="dim_bmpmask" value="-1"/> |
|
186 </choice> |
|
187 <choice> |
|
188 <mapIdentifierMember property="images.bmpmaskDimmed" member="dim_bmpmask"/> |
|
189 </choice> |
|
190 </select> |
|
191 |
|
192 <select property="images.bmpmaskPressed"> |
|
193 <choice value=""> |
|
194 <mapFixedMember member="press_bmpmask" value="-1"/> |
|
195 </choice> |
|
196 <choice> |
|
197 <mapIdentifierMember property="images.bmpmaskPressed" member="press_bmpmask"/> |
|
198 </choice> |
|
199 </select> |
|
200 |
|
201 <select property="images.bmpmaskHover"> |
|
202 <choice value=""> |
|
203 <mapFixedMember member="hover_bmpmask" value="-1"/> |
|
204 </choice> |
|
205 <choice> |
|
206 <mapIdentifierMember property="images.bmpmaskHover" member="hover_bmpmask"/> |
|
207 </choice> |
|
208 </select> |
|
209 |
|
210 </mapResourceMember> |
|
211 |
|
212 </mapResource> |
|
213 </sourceMapping> |
|
214 |
|
215 <sourceGen> |
|
216 <useTemplateGroup ids="CLASS_CONTRIBS" /> |
|
217 <useTemplateGroup ids="CONTAINER_CHILD_CONTRIBS" /> |
|
218 |
|
219 <inline scope="prototype"> |
|
220 include("../containers/containerLibrary.js") |
|
221 </inline> |
|
222 |
|
223 <template form="Container" phase="HeaderIncludes"><![CDATA[ |
|
224 #include <aknbutton.h> |
|
225 #include <stringloader.h> |
|
226 ]]> </template> |
|
227 |
|
228 <template form="Container" phase="ForwardDeclarations"> |
|
229 class CAknButton; |
|
230 </template> |
|
231 |
|
232 <template form="Container" phase="Destroy"><![CDATA[ |
|
233 delete ${instanceMemberName}; |
|
234 ${instanceMemberName} = NULL; |
|
235 ]]> </template> |
|
236 |
|
237 <template id="INIT_FROM_CONTAINER" form="Container" phase="Initialize"><![CDATA[ |
|
238 |
|
239 ${instanceMemberName} = static_cast< CAknButton* > |
|
240 ( EikControlFactory::CreateByTypeL( EAknCtButton ).iControl ); |
|
241 ${instanceMemberName}->ConstructFromResourceL ( ${resourceName$upper} ); |
|
242 |
|
243 ${instanceMemberName}->SetContainerWindowL ( *this ); |
|
244 ${instanceMemberName}->SetRect ( TRect ( |
|
245 TPoint ( ${properties.location.x}, ${properties.location.y} ) , |
|
246 TSize ( ${properties.size.width}, ${properties.size.height} ) ) |
|
247 ) ; |
|
248 ${instanceMemberName}->SetObserver( ( MCoeControlObserver* ) iCommandObserver ); |
|
249 <% if (properties.horizTextAlign != "CGraphicsContext::ECenter") { %>${instanceMemberName}->SetTextHorizontalAlignment( ${properties.horizTextAlign} );<% } %> |
|
250 <% if (properties.vertTextAlign != "CAknButton::ECenter") { %> ${instanceMemberName}->SetTextVerticalAlignment( ${properties.vertTextAlign} );<% } %> |
|
251 <% if (properties.textAndIconAlignment != "CAknButton::EIconBeforeText") { %> ${instanceMemberName}->SetTextAndIconAlignment( ${properties.textAndIconAlignment} );<% } %> |
|
252 <% if (properties.toolTipPosition != "CAknButton::EPositionTop") { %>${instanceMemberName}->SetTooltipPosition( ${properties.toolTipPosition} );<% } %> |
|
253 <% if (properties.textFont != "normal") { %>${instanceMemberName}->SetTextFont( ${properties.textFont} );<% } %> |
|
254 |
|
255 ]]> </template> |
|
256 |
|
257 <templateGroup id="HandleSelectedEvent" ifEvents="selected"> |
|
258 <template id="0" phase="UserHandlers"> |
|
259 TBool ${event.handlerName}( TInt aCommand ); |
|
260 </template> |
|
261 |
|
262 <defineLocation id="SelectedMethod" baseLocation="MAIN_FILE" |
|
263 owned="false" |
|
264 isEventHandler="true" |
|
265 location="function(${handlerClassName}::${event.handlerName}(TInt))"> |
|
266 <template id="2"><![CDATA[ |
|
267 /** |
|
268 * Handle the ${event.eventName} event. |
|
269 * @param aCommand the command id invoked |
|
270 * @return ETrue if the command was handled, EFalse if not |
|
271 */ |
|
272 TBool ${handlerClassName}::${event.handlerName}( TInt aCommand ) |
|
273 { |
|
274 // TODO: implement ${event.eventName} event handler |
|
275 return ETrue; |
|
276 } |
|
277 ]]> |
|
278 </template> |
|
279 </defineLocation> |
|
280 |
|
281 <template id="3" location="SelectedMethod" /> |
|
282 |
|
283 <template id="4" form="HandleCommandSwitchDispatch" phase="SwitchContents" ifEvents="selected"><![CDATA[ |
|
284 <% var commandId = Engine.findOrCreateEnumeratorForAlgorithm(instance, "command", |
|
285 "com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS"); |
|
286 //println("commandId = " + commandId); |
|
287 if (commandId != null) { |
|
288 %> case ${commandId}: |
|
289 commandHandled = ${event.handlerName}( aCommand ); |
|
290 break; |
|
291 <% } %> ]]> </template> |
|
292 </templateGroup> |
|
293 |
|
294 <useTemplateGroup ids="GenerateCommonControlEvents GenerateStateChangedEvent"/> |
|
295 <useTemplateGroup ids="GenerateRequestingFocusEvent GenerateRequestingExitEvent"/> |
|
296 <useTemplateGroup ids="GenerateRequestingCancelEvent GenerateInteractionRefusedEvent"/> |
|
297 <useTemplateGroup ids="GeneratePrepareFocusTransitionEvent"/> |
|
298 |
|
299 </sourceGen> |
|
300 |
|
301 </component> |
|
302 </componentDefinition> |