uidesigner/com.nokia.sdt.series60.componentlibrary/components/controls/CAknSlider.component
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.series60.componentlibrary/components/controls/CAknSlider.component Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -->
+<!-- All rights reserved. -->
+<!-- This component and the accompanying materials are made available -->
+<!-- under the terms of the License "Eclipse Public License v1.0" -->
+<!-- which accompanies this distribution, and is available -->
+<!-- at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+
+<componentDefinition xmlns="http://www.nokia.com/sdt/emf/component"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <enumPropertyDeclaration qualifiedName="com.nokia.sdt.slider.formLayout">
+ <enumElement value="EAknFormSliderLayout1"/>
+ <enumElement value="EAknFormSliderLayout2"/>
+ <enumElement value="EAknFormSliderLayout3"/>
+ </enumPropertyDeclaration>
+
+ <enumPropertyDeclaration qualifiedName="com.nokia.sdt.slider.settingsLayout">
+ <enumElement value="EAknSettingsItemSliderLayout"/>
+ <enumElement value="EAknSettingsItemSliderLayoutWithGraphics"/>
+ </enumPropertyDeclaration>
+
+ <enumPropertyDeclaration qualifiedName="com.nokia.sdt.slider.layout">
+ <enumElement value="EAknFormSliderLayout1"/>
+ <enumElement value="EAknFormSliderLayout2"/>
+ <enumElement value="EAknFormSliderLayout3"/>
+ <enumElement value="EAknSettingsItemSliderLayout"/>
+ <enumElement value="EAknSettingsItemSliderLayoutWithGraphics"/>
+ </enumPropertyDeclaration>
+
+ <enumPropertyDeclaration qualifiedName="com.nokia.sdt.slide.valueType"
+ defaultValue="EAknSliderValueBareFigure">
+ <enumElement value="EAknSliderValueNone"/>
+ <enumElement value="EAknSliderValueBareFigure"/>
+ <enumElement value="EAknSliderValuePercentage"/>
+ <enumElement value="EAknSliderValueFraction"/>
+ <enumElement value="EAknSliderValueDecimal"/>
+ </enumPropertyDeclaration>
+
+<component friendlyName="%friendlyName"
+ qualifiedName="com.nokia.sdt.series60.CAknSlider"
+ baseComponent="com.nokia.sdt.series60.CCoeControlBase"
+ category="Controls"
+ instanceNameRoot="slider" version="1.0">
+ <documentation>
+ <information>%information</information>
+ <helpTopic></helpTopic>
+ <wizardDescription></wizardDescription>
+ </documentation>
+ <symbian minSDKVersion="2.0" sdkName="com.nokia.series60"
+ resourceType="SLIDER" className="CAknSlider" />
+ <designerImages
+ smallIconFile="CAknSlider_sm.png"
+ largeIconFile="CAknSlider.png"/>
+
+<attributes>
+ <attribute key="cpp-class-name">CAknSlider</attribute>
+ <attribute key="is-dialog-content">true</attribute>
+ <attribute key="is-setting-item-list-content">true</attribute>
+ <attribute key="data-model-cpp-type">TInt</attribute>
+ <attribute key="setting-item-class-name">CAknSliderSettingItem</attribute>
+ <attribute key="setting-item-class-name">CAknSliderSettingItem</attribute>
+ <attribute key="rss-control-type-enum">EAknCtSlider</attribute>
+ <attribute key="is-non-resizable-layout-object">true</attribute>
+</attributes>
+
+<properties>
+ <property name="minValue" type="integer" category="Data" default="0"
+ descriptionKey="minValueDescription" />
+ <property name="maxValue" type="integer" category="Data" default="100"
+ descriptionKey="maxValueDescription" />
+ <property name="value" type="integer" category="Data"
+ descriptionKey="valueDescription" />
+ <property name="step" type="integer" category="Data" default="1" minValue="1"
+ descriptionKey="stepDescription" />
+ <enumProperty name="valueType" type="com.nokia.sdt.slide.valueType" category="Appearance"
+ descriptionKey="valueTypeDescription" />
+ <property name="decimalPlaces" type="integer" category="Data" minValue="0"
+ descriptionKey="decimalPlacesDescription" />
+ <property name="singularValueLabel" type="localizedString" category="Appearance"
+ descriptionKey="singularValueLabelDescription"
+ editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
+ <property name="minLabel" type="localizedString" category="Appearance" default="min"
+ descriptionKey="minLabelDescription"
+ editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
+ <property name="maxLabel" type="localizedString" category="Appearance" default="max"
+ descriptionKey="maxLabelDescription"
+ editorClass="com.nokia.sdt.symbian.ui.editors.ScalableTextEditorFactory" />
+</properties>
+
+<extensionProperties name="form">
+ <enumProperty name="layout" type="com.nokia.sdt.slider.formLayout" category="Appearance"
+ descriptionKey="layoutDescription" />
+</extensionProperties>
+
+<extensionProperties name="settings">
+ <enumProperty name="layout" type="com.nokia.sdt.slider.settingsLayout" category="Appearance"
+ descriptionKey="layoutDescription" />
+ <compoundProperty category="Appearance" name="graphicalImage"
+ type="com.nokia.sdt.symbian.imageProperty"
+ descriptionKey="graphicalImageDescription" />
+</extensionProperties>
+
+<extensionProperties name="default">
+ <enumProperty name="layout" type="com.nokia.sdt.slider.formLayout" category="Appearance"
+ descriptionKey="layoutDescription" />
+</extensionProperties>
+
+<implementations>
+ <implementation>
+ <interface id="com.nokia.sdt.datamodel.adapter.IVisualAppearance"/>
+ <interface id="com.nokia.sdt.datamodel.adapter.IDirectLabelEdit"/>
+ <!-- for form -->
+ <interface id="com.nokia.sdt.datamodel.adapter.IDirectImageEdit"/>
+ <interface id="com.nokia.sdt.datamodel.adapter.IImagePropertyRenderingInfo"/>
+ <interface id="com.nokia.sdt.datamodel.adapter.IComponentInstancePropertyListener"/>
+ <interface id="com.nokia.sdt.datamodel.adapter.IComponentValidator"/>
+ <script file="CAknSlider_visual.js" prototype="CAknSliderVisual"/>
+ </implementation>
+ <implementation>
+ <interface id="com.nokia.sdt.datamodel.adapter.IPropertyExtenders"/>
+ <script file="CAknSlider_propertyExtenders.js" prototype="CAknSliderPropertyExtenders"/>
+ </implementation>
+</implementations>
+
+<sourceMapping>
+ <mapResource struct="SLIDER" headers="avkon.rh">
+ <!-- TODO: value label -->
+ <mapEnumMember property="layout" member="layout"/>
+ <mapSimpleMember property="minValue" member="minvalue"/>
+ <mapSimpleMember property="maxValue" member="maxvalue"/>
+ <mapSimpleMember property="step" member="step" />
+ <mapEnumMember property="valueType" member="valuetype"/>
+ <mapSimpleMember property="decimalPlaces" member="decimalplaces" />
+ <mapSimpleMember property="singularValueLabel" member="singular_valuelabel"/>
+ <mapSimpleMember property="minLabel" member="minlabel"/>
+ <mapSimpleMember property="maxLabel" member = "maxlabel"/>
+
+ <select property="graphicalImage.bmpfile">
+ <choice value="" />
+ <choice>
+ <mapResourceMember property="graphicalImage" member="graphical_image"
+ struct="IMAGE" headers="uikon.rh eikon.rh">
+ <mapSimpleMember property="bmpfile" member="bmpfile"/>
+ <mapIdentifierMember property="bmpid" member="bmpid"/>
+ <!-- TODO: until we get "isSvg" subprop, this may fail
+ <mapIdentifierMember property="bmpmask" member="bmpmask"/>
+ -->
+ </mapResourceMember>
+ </choice>
+ </select>
+ </mapResource>
+</sourceMapping>
+
+<sourceGen forms="Dialog Container">
+
+ <inline>
+include("../srcgenLibrary.js")
+ </inline>
+
+ <template phase="MainSystemIncludes"><![CDATA[
+#ifdef __SERIES60_3X__
+#include <akndef.h>
+#endif
+]]> </template>
+
+ <useTemplateGroup ids="CLASS_CONTRIBS" />
+ <useTemplate ids="INIT_FROM_DIALOG" />
+
+ <template id="INIT_FROM_CONTAINER_CAKNSLIDER" form="Container" phase="Initialize"><![CDATA[
+${instanceMemberName} = new ( ELeave ) ${this.getCppClassName(instance)};
+${instanceMemberName}->SetContainerWindowL( *this );
+ {
+ TResourceReader reader;
+ iEikonEnv->CreateResourceReaderLC( reader, ${resourceName$upper} );
+ ${instanceMemberName}->HandleResourceChange(
+ KEikMessageCaptionedControlEditableStateChange );
+ ${instanceMemberName}->ConstructFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // reader internal state
+ }
+]]> </template>
+
+ <useTemplate ids="INIT_FROM_SETTINGS_LIST" />
+
+ <template form="Container" phase="LayoutControls" id="LAYOUT_SLIDER"><![CDATA[
+<% var isSettingsLayout = instance.properties.layout.toString().indexOf("SettingsItem") > 0;
+ if (isSettingsLayout) { %>
+${instanceMemberName}->SetExtent( TPoint( ${properties.location.x}, ${properties.location.y} ), TSize( ${properties.size.width}, ${properties.size.height} ) );
+<% } else { %>
+${instanceMemberName}->SetExtent( TPoint( ${properties.location.x}, ${properties.location.y} ), ${instanceMemberName}->MinimumSize() );
+<% } %>
+]]> </template>
+
+
+ <inline>
+this.getCppSystemIncludes(contribs, [ "barsread.h", "stringloader.h",
+ "aknslider.h", "eikenv.h" ]);
+ </inline>
+
+ <template form="SettingsList" phase="Initialize"><![CDATA[
+<% this.setupSettingItem(contribs, 0, instance, ""+properties.value);
+%>]]> </template>
+
+ <inline scope="prototype">
+include("../srcgenLibrary.js")
+ </inline>
+
+ <inline><![CDATA[
+if (Engine.formMatches(form, ["", "Dialog", "Container", "SettingsList"])) {
+ if (properties.maxValue < properties.minValue)
+ error(formatString(lookupString("invalidRange"), instanceName, properties.minValue, properties.maxValue));
+ else if (properties.value < properties.minValue || properties.value > properties.maxValue)
+ error(formatString(lookupString("valueExceedsRange"), instanceName, properties.minValue, properties.value, properties.maxValue));
+ if (properties.step == 0 || ((properties.maxValue - properties.minValue) % properties.step) != 0)
+ error(formatString(lookupString("stepNotValid"), instanceName, properties.maxValue, properties.minValue, properties.step));
+ if (properties.step == 0 || ((properties.value - properties.minValue) % properties.step) != 0)
+ error(formatString(lookupString("valueNotValid"), instanceName, properties.value, properties.minValue, properties.step));
+
+ if (!Engine.formMatches(form, ["SettingsList"])) {
+ setPropertiesForPhase(contribs, "Initialize", 0, instanceMemberName, false,
+ properties.value, 0, "{0}->SetValueL( {1} );\n");
+ }
+} ]]> </inline>
+
+
+ <useTemplateGroup ids="GenerateCommonControlEvents GenerateStateChangedEvent"/>
+ <useTemplateGroup ids="GenerateRequestingFocusEvent GenerateRequestingExitEvent"/>
+ <useTemplateGroup ids="GenerateRequestingCancelEvent GenerateInteractionRefusedEvent"/>
+ <useTemplateGroup ids="GeneratePrepareFocusTransitionEvent"/>
+
+ <useTemplateGroup ids="GenerateEditingStartedEvent GenerateEditingStoppedEvent" />
+
+</sourceGen>
+
+</component>
+</componentDefinition>