Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/CharacterPropertyEditor.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/CharacterPropertyEditor.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/CharacterPropertyEditor.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/CharacterPropertyEditor.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,179 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ import flash.text.engine.*;
+
+ import flashx.textLayout.formats.TextLayoutFormat;
+ import flashx.textLayout.tlf_internal;
+ use namespace tlf_internal;
+
+ public class CharacterPropertyEditor extends DynamicTextPropertyEditor
+ {
+ [Embed(source="./assets/bold_icon.png")]
+ private var boldIcon:Class;
+
+ [Embed(source="./assets/italic_icon.png")]
+ private var italicIcon:Class;
+
+ [Embed(source="./assets/underline_icon.png")]
+ private var underlineIcon:Class;
+
+ [Embed(source="./assets/strikethrough_icon.png")]
+ private var strikethroughIcon:Class;
+
+ [Embed(source="./assets/superscript_icon.png")]
+ private var superscriptIcon:Class;
+
+ [Embed(source="./assets/subscript_icon.png")]
+ private var subscriptIcon:Class;
+
+ [Embed(source="./assets/tcy_icon.png")]
+ private var tcyIcon:Class;
+
+ public function CharacterPropertyEditor()
+ {
+ var recipe:XML =
+ <recipe>
+ <row>
+ <editor type="fontPicker"
label="$$$/stage/TextEditing/Label/Font=Font:">
+ <property
name={TextInspectorController.FONT_FAMILY_UIPROP}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/FontLookup=Lookup:">
+ <property
name={TextInspectorController.FONT_LOOKUP_UIPROP}/>
+ <choice
display="Device" value={flash.text.engine.FontLookup.DEVICE}/>
+ <choice
display="Embedded CFF" value={flash.text.engine.FontLookup.EMBEDDED_CFF}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/Size=Size:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.FONT_SIZE_UIPROP}
+
minValue={TextLayoutFormat.fontSizeProperty.minValue}
+
maxValue={TextLayoutFormat.fontSizeProperty.maxValue}/>
+ </editor>
+ <editor type="hotnumberunit"
label="$$$/stage/TextEditing/Label/Leading=Leading:">
+ <property
name={TextInspectorController.LINE_HEIGHT_UIPROP}/>
+
<defaultunit>pix</defaultunit>
+ <numericunit
displayname="%"
+
min={TextLayoutFormat.lineHeightProperty.minPercentValue}
+
max={TextLayoutFormat.lineHeightProperty.maxPercentValue}
+ default="120"/>
+ <numericunit
displayname="pix"
+
min={TextLayoutFormat.lineHeightProperty.minNumberValue}
+
max={TextLayoutFormat.lineHeightProperty.maxNumberValue}
+ default="14"
+ decimals="1"/>
+ </editor>
+ </row>
+ <row style="toggleButtonRow">
+ <editor type="toggleButton"
style="toggleIconButton" iconClass="boldIcon" width="17" commit="yes">
+ <property
name={TextInspectorController.FONT_WEIGHT_UIPROP} falseValue="normal"
trueValue="bold"/>
+ </editor>
+ <editor type="toggleButton"
style="toggleIconButton" iconClass="italicIcon" width="17" commit="yes">
+ <property
name={TextInspectorController.FONT_STYLE_UIPROP} falseValue="normal"
trueValue="italic"/>
+ </editor>
+ <editor type="toggleButton"
style="toggleIconButton" iconClass="underlineIcon" width="17" commit="yes">
+ <property
name={TextInspectorController.TEXT_DECORATION_UIPROP} falseValue="none"
trueValue="underline"/>
+ </editor>
+ <editor type="toggleButton"
style="toggleIconButton" iconClass="strikethroughIcon" width="17" commit="yes">
+ <property
name={TextInspectorController.LINE_THROUGH_UIPROP}/>
+ </editor>
+ <editor type="toggleButton"
style="toggleIconButton" iconClass="superscriptIcon" width="17" commit="yes">
+ <property
name={TextInspectorController.BASELINE_SHIFT_SUPER_UIPROP} falseValue="0"
trueValue={flashx.textLayout.formats.BaselineShift.SUPERSCRIPT}/>
+ </editor>
+ <editor type="toggleButton"
style="toggleIconButton" iconClass="subscriptIcon" width="17" commit="yes">
+ <property
name={TextInspectorController.BASELINE_SHIFT_SUB_UIPROP} falseValue="0"
trueValue={flashx.textLayout.formats.BaselineShift.SUBSCRIPT}/>
+ </editor>
+ <editor type="toggleButton"
style="toggleIconButton" iconClass="tcyIcon" width="17" commit="yes">
+ <property
name={TextInspectorController.TCY_UIPROP}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/Kerning=Kerning:">
+ <property
name={TextInspectorController.KERNING_UIPROP}/>
+ <choice display="On"
value={flash.text.engine.Kerning.ON}/>
+ <choice display="Off"
value={flash.text.engine.Kerning.OFF}/>
+ <choice display="Auto"
value={flash.text.engine.Kerning.AUTO}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumberunit"
label="$$$/stage/TextEditing/Label/Tracking=Track R:">
+ <property
name={TextInspectorController.TRACKING_RIGHT_UIPROP}/>
+
<defaultunit>pix</defaultunit>
+ <numericunit
displayname="%"
+
min={TextLayoutFormat.trackingRightProperty.minPercentValue}
+
max={TextLayoutFormat.trackingRightProperty.maxPercentValue}
+ default="0"/>
+ <numericunit
displayname="pix"
+
min={TextLayoutFormat.trackingRightProperty.minNumberValue}
+
max={TextLayoutFormat.trackingRightProperty.maxNumberValue}
+ default="0"
+ decimals="1"/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumberunit"
label="$$$/stage/TextEditing/Label/Tracking=Track L:">
+ <property
name={TextInspectorController.TRACKING_LEFT_UIPROP}/>
+
<defaultunit>pix</defaultunit>
+ <numericunit
displayname="%"
+
min={TextLayoutFormat.trackingLeftProperty.minPercentValue}
+
max={TextLayoutFormat.trackingLeftProperty.maxPercentValue}
+ default="0"/>
+ <numericunit
displayname="pix"
+
min={TextLayoutFormat.trackingLeftProperty.minNumberValue}
+
max={TextLayoutFormat.trackingLeftProperty.maxNumberValue}
+ default="0"
+ decimals="1"/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/Case=Case:">
+ <property
name={TextInspectorController.TYPOGRAPHIC_CASE_UIPROP}/>
+ <choice
display="Default" value={flashx.textLayout.formats.TLFTypographicCase.DEFAULT}/>
+ <choice display="Caps
to Small Caps"
value={flashx.textLayout.formats.TLFTypographicCase.CAPS_TO_SMALL_CAPS}/>
+ <choice display="Upper"
value={flashx.textLayout.formats.TLFTypographicCase.UPPERCASE}/>
+ <choice display="Lower"
value={flashx.textLayout.formats.TLFTypographicCase.LOWERCASE}/>
+ <choice
display="Lowercase to Small Caps"
value={flashx.textLayout.formats.TLFTypographicCase.LOWERCASE_TO_SMALL_CAPS}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="color"
label="$$$/stage/TextEditing/Label/Color=Color:">
+ <property
name={TextInspectorController.COLOR_UIPROP}/>
+ </editor>
+ <editor type="color"
label="$$$/stage/TextEditing/Label/BackgroundColor=Background color:">
+ <property
name={TextInspectorController.BGCOLOR_UIPROP}/>
+ </editor>
+ </row>
+ </recipe>;
+
+ super(recipe);
+ SetIcon("boldIcon", boldIcon);
+ SetIcon("italicIcon", italicIcon);
+ SetIcon("underlineIcon", underlineIcon);
+ SetIcon("strikethroughIcon", strikethroughIcon);
+ SetIcon("superscriptIcon", superscriptIcon);
+ SetIcon("subscriptIcon", subscriptIcon);
+ SetIcon("tcyIcon", tcyIcon);
+ }
+
+ }
+}
\ No newline at end of file
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/CharacterPropertyEditor.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/DynamicTextPropertyEditor.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/DynamicTextPropertyEditor.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/DynamicTextPropertyEditor.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/DynamicTextPropertyEditor.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,74 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ import bxf.ui.inspectors.DynamicPropertyEditorBase;
+
+ import mx.events.PropertyChangeEvent;
+
+ public class DynamicTextPropertyEditor extends DynamicPropertyEditorBase
+ {
+ public function DynamicTextPropertyEditor(inRecipe:XML)
+ {
+ super(inRecipe);
+
TextInspectorController.Instance().addEventListener(SelectionUpdateEvent.SELECTION_UPDATE,
onSelectionUpdate);
+
addEventListener(DynamicPropertyEditorBase.MODELCHANGED_EVENT,
onFormatValueChanged, false, 0, true);
+
addEventListener(DynamicPropertyEditorBase.MODELEDITED_EVENT,
onFormatValueChanged, false, 0, true);
+ }
+
+ public function set active(inActive:Boolean):void
+ {
+ if (mActive != inActive)
+ {
+ mActive = inActive;
+ if (mActive)
+
TextInspectorController.Instance().forceBroadcastFormats();
+ }
+ }
+
+ public function get active():Boolean
+ {
+ return mActive;
+ }
+
+ private function onSelectionUpdate(e:SelectionUpdateEvent):void
+ {
+ if (mActive)
+ {
+ reset();
+ for (var id:String in e.format)
+ {
+ if (e.format[id].length == 1)
+ properties[id] =
e.format[id][0];
+ else
+ properties[id] = e.format[id];
+ }
+ rebuildUI();
+ }
+ }
+
+ private function
onFormatValueChanged(e:PropertyChangeEvent):void
+ {
+
TextInspectorController.Instance().SetTextProperty(e.property as String,
e.newValue);
+ }
+
+ private var mActive:Boolean = false;
+ }
+}
\ No newline at end of file
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/DynamicTextPropertyEditor.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/LinkPropertyEditor.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/LinkPropertyEditor.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/LinkPropertyEditor.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/LinkPropertyEditor.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ public class LinkPropertyEditor extends DynamicTextPropertyEditor
+ {
+ public function LinkPropertyEditor()
+ {
+ var recipe:XML =
+ <recipe>
+ <row>
+ <editor type="string"
label="$$$/stage/TextEditing/Label/linkURL=URL:" width="150">
+ <property
name={TextInspectorController.LINK_URL_UIPROP}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/linkTarget=Target:">
+ <property
name={TextInspectorController.LINK_TARGET_UIPROP}/>
+ <choice
display="_blank" value={"_blank"}/>
+ <choice display="_self"
value={"_self"}/>
+ <choice
display="_parent" value={"_parent"}/>
+ <choice display="_top"
value={"_top"}/>
+ </editor>
+ <editor type="checkbox"
label="$$$/stage/TextEditing/Label/linkExtend=Extend:">
+ <property
name={TextInspectorController.LINK_EXTEND_UIPROP}/>
+ </editor>
+ </row>
+ </recipe>;
+ super(recipe);
+ }
+
+ }
+}
\ No newline at end of file
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/LinkPropertyEditor.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/ParagraphPropertyEditor.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/ParagraphPropertyEditor.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/ParagraphPropertyEditor.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/ParagraphPropertyEditor.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,226 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ import flash.text.engine.*;
+
+ import flashx.textLayout.formats.Direction;
+ import flashx.textLayout.formats.FormatValue;
+ import flashx.textLayout.formats.TextJustify;
+ import flashx.textLayout.formats.TextLayoutFormat;
+ import flashx.textLayout.tlf_internal;
+ import flashx.textLayout.formats.LeadingModel;
+ use namespace tlf_internal;
+
+ public class ParagraphPropertyEditor extends DynamicTextPropertyEditor
+ {
+ [Embed(source="./assets/align_start_icon.png")]
+ private var alignStartIcon:Class;
+
+ [Embed(source="./assets/align_end_icon.png")]
+ private var alignEndIcon:Class;
+
+ [Embed(source="./assets/align_left_icon.png")]
+ private var alignLeftIcon:Class;
+
+ [Embed(source="./assets/align_center_icon.png")]
+ private var alignCenterIcon:Class;
+
+ [Embed(source="./assets/align_right_icon.png")]
+ private var alignRightIcon:Class;
+
+ [Embed(source="./assets/align_justify_icon.png")]
+ private var alignJustifyIcon:Class;
+
+ [Embed(source="./assets/align_last_left_icon.png")]
+ private var alignLastLeftIcon:Class;
+
+ [Embed(source="./assets/align_last_center_icon.png")]
+ private var alignLastCenterIcon:Class;
+
+ [Embed(source="./assets/align_last_right_icon.png")]
+ private var alignLastRightIcon:Class;
+
+ public function ParagraphPropertyEditor()
+ {
+ var recipe:XML =
+ <recipe>
+ <row>
+ <editor type="multiIconButton"
style="iconButtonGroup"
label="$$$/stage/TextEditing/Label/Alignment=Alignment:">
+ <property
name={TextInspectorController.TEXT_ALIGN_UIPROP}/>
+ <button
icon="alignStartIcon" value="start"/>
+ <button
icon="alignEndIcon" value="end"/>
+ <button
icon="alignLeftIcon" value="left"/>
+ <button
icon="alignCenterIcon" value="center"/>
+ <button
icon="alignRightIcon" value="right"/>
+ <button
icon="alignJustifyIcon" value="justify"/>
+ </editor>
+ </row>
+ <row>
+ <editor type="multiIconButton"
style="iconButtonGroup" label="$$$/stage/TextEditing/Label/LastLine=Last Line:">
+ <property
name={TextInspectorController.TEXT_ALIGN_LAST_UIPROP}/>
+ <button
icon="alignStartIcon" value="start"/>
+ <button
icon="alignEndIcon" value="end"/>
+ <button
icon="alignLastLeftIcon" value="left"/>
+ <button
icon="alignLastCenterIcon" value="center"/>
+ <button
icon="alignLastRightIcon" value="right"/>
+ <button
icon="alignJustifyIcon" value="justify"/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/Indent=Text Indent:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.TEXT_INDENT_UIPROP}
+
minValue={TextLayoutFormat.textIndentProperty.minValue}
+
maxValue={TextLayoutFormat.textIndentProperty.maxValue}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/Left=Start Indent:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.START_INDENT_UIPROP}
+
minValue={TextLayoutFormat.paragraphStartIndentProperty.minValue}
+
maxValue={TextLayoutFormat.paragraphStartIndentProperty.maxValue}/>
+ </editor>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/Right=End:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.END_INDENT_UIPROP}
+
minValue={TextLayoutFormat.paragraphEndIndentProperty.minValue}
+
maxValue={TextLayoutFormat.paragraphEndIndentProperty.maxValue}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/Before=Space Before:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.SPACE_BEFORE_UIPROP}
+
minValue={TextLayoutFormat.paragraphSpaceBeforeProperty.minValue}
+
maxValue={TextLayoutFormat.paragraphSpaceBeforeProperty.maxValue}/>
+ </editor>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/After=After:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.SPACE_AFTER_UIPROP}
+
minValue={TextLayoutFormat.paragraphSpaceAfterProperty.minValue}
+
maxValue={TextLayoutFormat.paragraphSpaceAfterProperty.maxValue}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/justRule=Just. Rule:">
+ <property
name={TextInspectorController.JUSTIFICATION_RULE_UIPROP}/>
+ <choice display="Auto"
value={FormatValue.AUTO}/>
+ <choice display="Roman"
value={flashx.textLayout.formats.JustificationRule.SPACE}/>
+ <choice display="East
Asian" value={flashx.textLayout.formats.JustificationRule.EAST_ASIAN}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/textJust=Text Justify:">
+ <property
name={TextInspectorController.TEXT_JUSTIFY_UIPROP}/>
+ <choice
display="Inter-word" value={flashx.textLayout.formats.TextJustify.INTER_WORD}/>
+ <choice
display="Distribute" value={flashx.textLayout.formats.TextJustify.DISTRIBUTE}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/justStyle=Just. Style:">
+ <property
name={TextInspectorController.JUSTIFICATION_STYLE_UIPROP}/>
+ <choice display="Auto"
value={FormatValue.AUTO}/>
+ <choice
display="Prioritize Least Adjustment"
value={flash.text.engine.JustificationStyle.PRIORITIZE_LEAST_ADJUSTMENT}/>
+ <choice display="Push
in Kinsoku" value={flash.text.engine.JustificationStyle.PUSH_IN_KINSOKU}/>
+ <choice display="Push
out Only" value={flash.text.engine.JustificationStyle.PUSH_OUT_ONLY}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/direction=Direction:">
+ <property
name={TextInspectorController.DIRECTION_UIPROP}/>
+ <choice display="Left
to Right" value={flashx.textLayout.formats.Direction.LTR}/>
+ <choice display="Right
to Left" value={flashx.textLayout.formats.Direction.RTL}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/leadingModel=Leading Model:">
+ <property
name={TextInspectorController.LEADING_MODEL_UIPROP}/>
+ <choice display="Roman;
Up" value={flashx.textLayout.formats.LeadingModel.ROMAN_UP}/>
+ <choice
display="Ideographic Top; Up"
value={flashx.textLayout.formats.LeadingModel.IDEOGRAPHIC_TOP_UP}/>
+ <choice
display="Ideographic Center; Up"
value={flashx.textLayout.formats.LeadingModel.IDEOGRAPHIC_CENTER_UP}/>
+ <choice
display="Ideographic Top; Down"
value={flashx.textLayout.formats.LeadingModel.IDEOGRAPHIC_TOP_DOWN}/>
+ <choice
display="Ideographic Center; Down"
value={flashx.textLayout.formats.LeadingModel.IDEOGRAPHIC_CENTER_DOWN}/>
+ <choice
display="Ascent-Descent; Up"
value={flashx.textLayout.formats.LeadingModel.ASCENT_DESCENT_UP}/>
+ <choice
display="Approximate TextField"
value={flashx.textLayout.formats.LeadingModel.APPROXIMATE_TEXT_FIELD}/>
+ <choice display="Auto"
value={flashx.textLayout.formats.LeadingModel.AUTO}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/Lacale=Locale:">
+ <property
name={TextInspectorController.PARA_LOCALE_UIPROP}/>
+ <choice
display="Arabic" value="ar"/>,
+ <choice
display="Bengali" value="bn"/>,
+ <choice
display="Bulgarian" value="bg"/>,
+ <choice
display="Catalan" value="ca"/>,
+ <choice
display="Chinese, Simplified (China)" value="zh-CN"/>,
+ <choice
display="Chinese, Traditional (Taiwan)" value="zh-TW"/>,
+ <choice
display="Croatian" value="hr"/>,
+ <choice display="Czech"
value="cs"/>,
+ <choice
display="Danish" value="da"/>,
+ <choice display="Dutch"
value="nl"/>,
+ <choice
display="English" value="en"/>,
+ <choice
display="Estonian" value="et"/>,
+ <choice
display="Finnish" value="fi"/>,
+ <choice
display="French" value="fr"/>,
+ <choice
display="German" value="de"/>,
+ <choice display="Greek"
value="el"/>,
+ <choice
display="Gujarati" value="gu"/>,
+ <choice display="Hindi"
value="hi"/>,
+ <choice
display="Hebrew" value="he"/>,
+ <choice
display="Hungarian" value="hu"/>,
+ <choice
display="Italian" value="it"/>,
+ <choice
display="Japanese" value="ja"/>,
+ <choice
display="Korean" value="ko"/>,
+ <choice
display="Latvian" value="lv"/>,
+ <choice
display="Lithuanian" value="lt"/>,
+ <choice
display="Marathi" value="mr"/>,
+ <choice
display="Norwegian" value="no"/>,
+ <choice
display="Persian" value="fa"/>,
+ <choice
display="Polish" value="pl"/>,
+ <choice
display="Portuguese" value="pt"/>,
+ <choice
display="Punjabi" value="pa"/>,
+ <choice
display="Romanian" value="ro"/>,
+ <choice
display="Russian" value="ru"/>,
+ <choice
display="Slovak" value="sk"/>,
+ <choice
display="Slovenian" value="sl"/>,
+ <choice
display="Spanish" value="es"/>,
+ <choice
display="Swedish" value="sv"/>,
+ <choice display="Tamil"
value="ta"/>,
+ <choice
display="Telugu" value="te"/>,
+ <choice display="Thai"
value="th"/>,
+ <choice
display="Turkish" value="tr"/>,
+ <choice
display="Ukrainian" value="uk"/>,
+ <choice display="Urdu"
value="ur"/>,
+ <choice
display="Vietnamese" value="vi"/>
+ </editor>
+ </row>
+ </recipe>;
+
+ super(recipe);
+
+ SetIcon("alignStartIcon", alignStartIcon);
+ SetIcon("alignEndIcon", alignEndIcon);
+ SetIcon("alignLeftIcon", alignLeftIcon);
+ SetIcon("alignCenterIcon", alignCenterIcon);
+ SetIcon("alignRightIcon", alignRightIcon);
+ SetIcon("alignJustifyIcon", alignJustifyIcon);
+ SetIcon("alignLastLeftIcon", alignLastLeftIcon);
+ SetIcon("alignLastCenterIcon", alignLastCenterIcon);
+ SetIcon("alignLastRightIcon", alignLastRightIcon);
+ }
+ }
+}
\ No newline at end of file
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/ParagraphPropertyEditor.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/SelectionUpdateEvent.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/SelectionUpdateEvent.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/SelectionUpdateEvent.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/SelectionUpdateEvent.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ import flash.events.Event;
+
+ public class SelectionUpdateEvent extends Event
+ {
+ public static const SELECTION_UPDATE:String = "selectionUpdate";
+
+ public function SelectionUpdateEvent(inFormat:Object)
+ {
+ super(SELECTION_UPDATE);
+ mFormat = inFormat;
+ }
+
+ public function get format():Object
+ {
+ return mFormat;
+ }
+
+ private var mFormat:Object;
+ }
+}
\ No newline at end of file
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/SelectionUpdateEvent.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TabPropertyEditor.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TabPropertyEditor.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TabPropertyEditor.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TabPropertyEditor.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ import bxf.ui.inspectors.DynamicPropertyEditorBase;
+
+ import flash.text.engine.*;
+
+ import flashx.textLayout.formats.TabStopFormat;
+ import flashx.textLayout.tlf_internal;
+ use namespace tlf_internal;
+
+ public class TabPropertyEditor extends DynamicPropertyEditorBase
+ {
+ public function TabPropertyEditor()
+ {
+ var recipe:XML =
+ <recipe>
+ <row>
+ <editor type="checkbox"
label="$$$/stage/TextEditing/Label/showRuler=Show Ruler" labelSide="right">
+ <property
name="rulervisible"/>
+ </editor>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/tabPosition=Position:" decimals="1"
enforcePrecision="no">
+ <property
name={TabStopFormat.positionProperty.name}
+
minValue={TabStopFormat.positionProperty.minValue}
+
maxValue={TabStopFormat.positionProperty.maxValue}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/tabType=Tab Type:">
+ <property
name={TabStopFormat.alignmentProperty.name}/>
+ <choice display="Start"
value={flash.text.engine.TabAlignment.START}/>
+ <choice
display="Center" value={flash.text.engine.TabAlignment.CENTER}/>
+ <choice display="End"
value={flash.text.engine.TabAlignment.END}/>
+ <choice display="Align"
value={flash.text.engine.TabAlignment.DECIMAL}/>
+ </editor>
+ <editor type="string"
label="$$$/stage/TextEditing/Label/tabAlign=Align to:" width="50">
+ <property
name={TabStopFormat.decimalAlignmentTokenProperty.name}/>
+ </editor>
+ </row>
+ </recipe>;
+
+ super(recipe);
+ }
+
+ }
+}
\ No newline at end of file
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TabPropertyEditor.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextContainerPropertyEditor.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextContainerPropertyEditor.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextContainerPropertyEditor.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextContainerPropertyEditor.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,151 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ import flash.text.engine.*;
+
+ import flashx.textLayout.formats.FormatValue;
+ import flashx.textLayout.formats.TextLayoutFormat;
+ import flashx.textLayout.tlf_internal;
+ use namespace tlf_internal;
+
+ public class TextContainerPropertyEditor extends
DynamicTextPropertyEditor
+ {
+ [Embed(source="./assets/cont_align_top_icon.png")]
+ private var contAlignTopIcon:Class;
+
+ [Embed(source="./assets/cont_align_middle_icon.png")]
+ private var contAlignMiddleIcon:Class;
+
+ [Embed(source="./assets/cont_align_bottom_icon.png")]
+ private var contAlignBottomIcon:Class;
+
+ [Embed(source="./assets/cont_align_justify_icon.png")]
+ private var contAlignJustifyIcon:Class;
+
+ public function TextContainerPropertyEditor()
+ {
+ var recipe:XML =
+ <recipe>
+ <row>
+ <editor type="multiIconButton"
style="iconButtonGroup"
label="$$$/stage/TextEditing/Label/Container/Alignment=Alignment:">
+ <property
name={TextInspectorController.VERTICAL_ALIGN_UIPROP}/>
+ <button
icon="contAlignTopIcon" value="top"/>
+ <button
icon="contAlignMiddleIcon" value="middle"/>
+ <button
icon="contAlignBottomIcon" value="bottom"/>
+ <button
icon="contAlignJustifyIcon" value="justify"/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumberunit"
label="$$$/stage/TextEditing/Label/NumColumns=Columns:">
+ <property
name={TextInspectorController.COLUMN_COUNT_UIPROP}/>
+
<defaultunit>count</defaultunit>
+ <numericunit
displayname="count"
+
min={TextLayoutFormat.columnCountProperty.minValue}
+
max={TextLayoutFormat.columnCountProperty.maxValue}
+ default="1"/>
+ <enumval
displayname="Auto" value={flashx.textLayout.formats.FormatValue.AUTO}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumberunit"
label="$$$/stage/TextEditing/Label/ColumnWidth=Column Width:">
+ <property
name={TextInspectorController.COLUMN_WIDTH_UIPROP}/>
+
<defaultunit>pix</defaultunit>
+ <numericunit
displayname="pix"
+
min={TextLayoutFormat.columnWidthProperty.minValue}
+
max={TextLayoutFormat.columnWidthProperty.maxValue}
+ default="200"/>
+ <enumval
displayname="Auto" value={flashx.textLayout.formats.FormatValue.AUTO}/>
+ </editor>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/ColumnGap=Gap:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.COLUMN_GAP_UIPROP}
+
minValue={TextLayoutFormat.columnGapProperty.minValue}
+
maxValue={TextLayoutFormat.columnGapProperty.maxValue}/>
+ </editor>
+ </row>
+ <row
label="$$$/stage/TextEditing/Label/ContainerGeometry=Geometry:"/>
+ <row>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/PaddingLeft=Left:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.PADDING_LEFT_UIPROP}
+
minValue={TextLayoutFormat.paddingLeftProperty.minValue}
+
maxValue={TextLayoutFormat.paddingLeftProperty.maxValue}/>
+ </editor>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/PaddingTop=Top:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.PADDING_TOP_UIPROP}
+
minValue={TextLayoutFormat.paddingTopProperty.minValue}
+
maxValue={TextLayoutFormat.paddingTopProperty.maxValue}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/PaddingRight=Right:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.PADDING_RIGHT_UIPROP}
+
minValue={TextLayoutFormat.paddingRightProperty.minValue}
+
maxValue={TextLayoutFormat.paddingRightProperty.maxValue}/>
+ </editor>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/PaddingBottom=Bottom:" decimals="1"
enforcePrecision="no">
+ <property
name={TextInspectorController.PADDING_BOTTOM_UIPROP}
+
minValue={TextLayoutFormat.paddingBottomProperty.minValue}
+
maxValue={TextLayoutFormat.paddingBottomProperty.maxValue}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumberunit"
label="$$$/stage/TextEditing/Label/FirstBaseline=First Line Offset:">
+ <property
name={TextInspectorController.FIRST_BASELINE_UIPROP}/>
+
<defaultunit>pix</defaultunit>
+ <numericunit
displayname="pix"
+
min={TextLayoutFormat.firstBaselineOffsetProperty.minValue}
+
max={TextLayoutFormat.firstBaselineOffsetProperty.maxValue}
+ default="1"/>
+ <enumval
displayname="Auto" value={flashx.textLayout.formats.BaselineOffset.AUTO}/>
+ <enumval
displayname="Ascent" value={flashx.textLayout.formats.BaselineOffset.ASCENT}/>
+ <enumval
displayname="Line Height"
value={flashx.textLayout.formats.BaselineOffset.LINE_HEIGHT}/>
+ </editor>
+ </row>
+ <!-- <row
label="$$$/stage/TextEditing/Label/Border=Border:">
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/BorderStyle=Style:">
+ <property
name={TextInspectorController.BORDER_STYLE_UIPROP}/>
+ <choice display="None"
value={text.BorderStyle.NONE}/>
+ <choice display="Solid"
value={text.BorderStyle.SOLID}/>
+ <choice display="Innie"
value={text.BorderStyle.INSET}/>
+ <choice display="Outie"
value={text.BorderStyle.OUTSET}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="hotnumber"
label="$$$/stage/TextEditing/Label/BorderThickness=Thickness:" decimals="0"
enforcePrecision="yes">
+ <property
name={TextInspectorController.BORDER_THICKNESS_UIPROP}
+
minValue={TextLayoutFormat.borderThicknessProperty.minValue}
+
maxValue={TextLayoutFormat.borderThicknessProperty.maxValue}/>
+ </editor>
+ <editor type="color"
label="$$$/stage/TextEditing/Label/BorderColor=Color:">
+ <property
name={TextInspectorController.BORDER_COLOR_UIPROP}/>
+ </editor>
+ </row> -->
+ </recipe>;
+
+ super(recipe);
+
+ SetIcon("contAlignTopIcon", contAlignTopIcon);
+ SetIcon("contAlignMiddleIcon", contAlignMiddleIcon);
+ SetIcon("contAlignBottomIcon", contAlignBottomIcon);
+ SetIcon("contAlignJustifyIcon", contAlignJustifyIcon);
+ }
+
+ }
+}
\ No newline at end of file
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextContainerPropertyEditor.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextFlowPropertyEditor.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextFlowPropertyEditor.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextFlowPropertyEditor.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextFlowPropertyEditor.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,71 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ import flashx.textLayout.formats.BlockProgression;
+ import flashx.textLayout.formats.LineBreak;
+
+ public class TextFlowPropertyEditor extends DynamicTextPropertyEditor
+ {
+ public function TextFlowPropertyEditor()
+ {
+ var recipe:XML =
+ <recipe>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/LineProgression=Orientation:">
+ <property
name={TextInspectorController.BLOCK_PROGRESSION_UIPROP}/>
+ <choice
display="Horizontal" value={flashx.textLayout.formats.BlockProgression.TB}/>
+ <choice
display="Vertical" value={flashx.textLayout.formats.BlockProgression.RL}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/direction=Direction:">
+ <property
name={TextInspectorController.FLOW_DIRECTION_UIPROP}/>
+ <choice display="Left
to Right" value={flashx.textLayout.formats.Direction.LTR}/>
+ <choice display="Right
to Left" value={flashx.textLayout.formats.Direction.RTL}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/Linebreak=Line Breaks:">
+ <property
name={TextInspectorController.LINE_BREAK_UIPROP}/>
+ <choice display="Auto
Line Wrap" value={flashx.textLayout.formats.LineBreak.TO_FIT}/>
+ <choice display="Hard
Breaks Only" value={flashx.textLayout.formats.LineBreak.EXPLICIT}/>
+ </editor>
+ </row>
+ <row>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/vertScroll=V. Scroll:">
+ <property
name={TextInspectorController.VERTICAL_SCROLL_UIPROP}/>
+ <choice display="Off"
value="off"/>
+ <choice display="On"
value="on"/>
+ <choice display="Auto"
value="auto"/>
+ </editor>
+ <editor type="combo"
label="$$$/stage/TextEditing/Label/horzScroll=H. Scroll:">
+ <property
name={TextInspectorController.HORIZONTAL_SCROLL_UIPROP}/>
+ <choice display="Off"
value="off"/>
+ <choice display="On"
value="on"/>
+ <choice display="Auto"
value="auto"/>
+ </editor>
+ </row>
+ </recipe>;
+ super(recipe);
+ }
+
+ }
+}
\ No newline at end of file
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextFlowPropertyEditor.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextInspectorController.as
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextInspectorController.as?rev=1619987&view=auto
==============================================================================
---
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextInspectorController.as
(added)
+++
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextInspectorController.as
Sat Aug 23 08:47:51 2014
@@ -0,0 +1,614 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flashx.textLayout.ui.inspectors
+{
+ import flash.events.EventDispatcher;
+ import flash.events.IEventDispatcher;
+ import flash.text.engine.RenderingMode;
+
+ import flashx.textLayout.compose.TextFlowLine;
+ import flashx.textLayout.container.ContainerController;
+ import flashx.textLayout.edit.ElementRange;
+ import flashx.textLayout.edit.IEditManager;
+ import flashx.textLayout.edit.SelectionState;
+ import flashx.textLayout.elements.FlowElement;
+ import flashx.textLayout.elements.FlowLeafElement;
+ import flashx.textLayout.elements.LinkElement;
+ import flashx.textLayout.elements.ParagraphElement;
+ import flashx.textLayout.elements.SpanElement;
+ import flashx.textLayout.elements.TCYElement;
+ import flashx.textLayout.elements.TextFlow;
+ import flashx.textLayout.events.SelectionEvent;
+ import flashx.textLayout.formats.ITextLayoutFormat;
+ import flashx.textLayout.formats.TextAlign;
+ import flashx.textLayout.formats.TextLayoutFormat;
+ import flashx.textLayout.tlf_internal;
+ import flashx.textLayout.ui.rulers.RulerBar;
+
+ use namespace tlf_internal;
+
+ public class TextInspectorController extends EventDispatcher
+ {
+ public static const CHAR_DOMAIN:String = "char"
+ public static const PAR_DOMAIN:String = "par"
+ public static const CONT_DOMAIN:String = "cont"
+ public static const FLOW_DOMAIN:String = "flow"
+ public static const SCROLL_DOMAIN:String = "sp"
+ public static const TCY_DOMAIN:String = "tcy"
+ public static const LINK_DOMAIN:String = "link"
+
+ public static const FONT_SIZE_UIPROP:String = CHAR_DOMAIN + "/"
+ TextLayoutFormat.fontSizeProperty.name;
+ public static const FONT_FAMILY_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.fontFamilyProperty.name;
+ public static const FONT_LOOKUP_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.fontLookupProperty.name;
+ public static const TRACKING_RIGHT_UIPROP:String = CHAR_DOMAIN
+ "/" + TextLayoutFormat.trackingRightProperty.name;
+ public static const TRACKING_LEFT_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.trackingLeftProperty.name;
+ public static const KERNING_UIPROP:String = CHAR_DOMAIN + "/" +
TextLayoutFormat.kerningProperty.name;
+ public static const LINE_HEIGHT_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.lineHeightProperty.name;
+ public static const COLOR_UIPROP:String = CHAR_DOMAIN + "/" +
TextLayoutFormat.colorProperty.name;
+ public static const BGCOLOR_UIPROP:String = CHAR_DOMAIN + "/" +
TextLayoutFormat.backgroundColorProperty.name;
+ public static const FONT_WEIGHT_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.fontWeightProperty.name;
+ public static const FONT_STYLE_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.fontStyleProperty.name;
+ public static const TEXT_DECORATION_UIPROP:String = CHAR_DOMAIN
+ "/" + TextLayoutFormat.textDecorationProperty.name;
+ public static const LINE_THROUGH_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.lineThroughProperty.name;
+ public static const DIGIT_CASE_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.digitCaseProperty.name;
+ public static const DIGIT_WIDTH_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.digitWidthProperty.name;
+ public static const DOMINANT_BASELINE_UIPROP:String =
CHAR_DOMAIN + "/" + TextLayoutFormat.dominantBaselineProperty.name;
+ public static const ALIGNMENT_BASELINE_UIPROP:String =
CHAR_DOMAIN + "/" + TextLayoutFormat.alignmentBaselineProperty.name;
+ public static const BASELINE_SHIFT_SUPER_UIPROP:String =
CHAR_DOMAIN + "/" + TextLayoutFormat.baselineShiftProperty.name + "#super";
+ public static const BASELINE_SHIFT_SUB_UIPROP:String =
CHAR_DOMAIN + "/" + TextLayoutFormat.baselineShiftProperty.name + "#sub";
+ public static const BASELINE_SHIFT_UIPROP:String = CHAR_DOMAIN
+ "/" + TextLayoutFormat.baselineShiftProperty.name;
+ public static const TYPOGRAPHIC_CASE_UIPROP:String =
CHAR_DOMAIN + "/" + TextLayoutFormat.typographicCaseProperty.name;
+ public static const LIGATURE_LEVEL_UIPROP:String = CHAR_DOMAIN
+ "/" + TextLayoutFormat.ligatureLevelProperty.name;
+ public static const TEXT_ROTATION_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.textRotationProperty.name;
+ public static const TEXT_ALPHA_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.textAlphaProperty.name;
+ public static const BACKGROUND_ALPHA_UIPROP:String =
CHAR_DOMAIN + "/" + TextLayoutFormat.backgroundAlphaProperty.name;
+ public static const LOCALE_UIPROP:String = CHAR_DOMAIN + "/" +
TextLayoutFormat.localeProperty.name;
+ public static const BREAK_OPPORTUNITY_UIPROP:String =
CHAR_DOMAIN + "/" + TextLayoutFormat.breakOpportunityProperty.name;
+ public static const RENDERING_MODE_UIPROP:String = CHAR_DOMAIN
+ "/" + TextLayoutFormat.renderingModeProperty.name;
+ public static const CFF_HINTING_UIPROP:String = CHAR_DOMAIN +
"/" + TextLayoutFormat.cffHintingProperty.name;
+
+ public static const PARA_LOCALE_UIPROP:String = PAR_DOMAIN +
"/" + TextLayoutFormat.localeProperty.name;
+ public static const TEXT_INDENT_UIPROP:String = PAR_DOMAIN +
"/" + TextLayoutFormat.textIndentProperty.name;
+ public static const START_INDENT_UIPROP:String = PAR_DOMAIN +
"/" + TextLayoutFormat.paragraphStartIndentProperty.name;
+ public static const END_INDENT_UIPROP:String = PAR_DOMAIN + "/"
+ TextLayoutFormat.paragraphEndIndentProperty.name;
+ public static const SPACE_BEFORE_UIPROP:String = PAR_DOMAIN +
"/" + TextLayoutFormat.paragraphSpaceBeforeProperty.name;
+ public static const SPACE_AFTER_UIPROP:String = PAR_DOMAIN +
"/" + TextLayoutFormat.paragraphSpaceAfterProperty.name;
+ public static const TEXT_ALIGN_UIPROP:String = PAR_DOMAIN + "/"
+ TextLayoutFormat.textAlignProperty.name;
+ public static const TEXT_ALIGN_LAST_UIPROP:String = PAR_DOMAIN
+ "/" + TextLayoutFormat.textAlignLastProperty.name;
+ public static const JUSTIFICATION_RULE_UIPROP:String =
PAR_DOMAIN + "/" + TextLayoutFormat.justificationRuleProperty.name;
+ public static const TEXT_JUSTIFY_UIPROP:String = PAR_DOMAIN +
"/" + TextLayoutFormat.textJustifyProperty.name;
+ public static const JUSTIFICATION_STYLE_UIPROP:String =
PAR_DOMAIN + "/" + TextLayoutFormat.justificationStyleProperty.name;
+ public static const DIRECTION_UIPROP:String = PAR_DOMAIN + "/"
+ TextLayoutFormat.directionProperty.name;
+ public static const LEADING_MODEL_UIPROP:String = PAR_DOMAIN +
"/" + TextLayoutFormat.leadingModelProperty.name;
+
+ public static const VERTICAL_ALIGN_UIPROP:String = CONT_DOMAIN
+ "/" + TextLayoutFormat.verticalAlignProperty.name;
+ public static const COLUMN_COUNT_UIPROP:String = CONT_DOMAIN +
"/" + TextLayoutFormat.columnCountProperty.name;
+ public static const COLUMN_WIDTH_UIPROP:String = CONT_DOMAIN +
"/" + TextLayoutFormat.columnWidthProperty.name;
+ public static const COLUMN_GAP_UIPROP:String = CONT_DOMAIN +
"/" + TextLayoutFormat.columnGapProperty.name;
+ public static const PADDING_LEFT_UIPROP:String = CONT_DOMAIN +
"/" + TextLayoutFormat.paddingLeftProperty.name;
+ public static const PADDING_TOP_UIPROP:String = CONT_DOMAIN +
"/" + TextLayoutFormat.paddingTopProperty.name;
+ public static const PADDING_RIGHT_UIPROP:String = CONT_DOMAIN +
"/" + TextLayoutFormat.paddingRightProperty.name;
+ public static const PADDING_BOTTOM_UIPROP:String = CONT_DOMAIN
+ "/" + TextLayoutFormat.paddingBottomProperty.name;
+ public static const FIRST_BASELINE_UIPROP:String = CONT_DOMAIN
+ "/" + TextLayoutFormat.firstBaselineOffsetProperty.name;
+
+ public static const BLOCK_PROGRESSION_UIPROP:String =
FLOW_DOMAIN + "/" + TextLayoutFormat.blockProgressionProperty.name;
+ public static const FLOW_DIRECTION_UIPROP:String = FLOW_DOMAIN
+ "/" + TextLayoutFormat.directionProperty.name;
+ public static const LINE_BREAK_UIPROP:String = FLOW_DOMAIN +
"/" + TextLayoutFormat.lineBreakProperty.name;
+
+ public static const VERTICAL_SCROLL_UIPROP:String =
SCROLL_DOMAIN + "/" + "verticalScrollPolicy";
+ public static const HORIZONTAL_SCROLL_UIPROP:String =
SCROLL_DOMAIN + "/" + "horizontalScrollPolicy";
+
+ public static const TCY_UIPROP:String = TCY_DOMAIN + "/" +
"tcy";
+
+ public static const LINK_URL_UIPROP:String = LINK_DOMAIN + "/"
+ "linkURL";
+ public static const LINK_TARGET_UIPROP:String = LINK_DOMAIN +
"/" + "linkTarget";
+ public static const LINK_EXTEND_UIPROP:String = LINK_DOMAIN +
"/" + "linkExtend";
+ private static var sInstance:TextInspectorController = null;
+
+ private var processingCharacterFormatChange:Boolean = false;
+
+ public function
TextInspectorController(target:IEventDispatcher=null)
+ {
+ super(target);
+ if (sInstance != null)
+ throw new Error("Can't create another
TextEditingController. Call TextEditingController.Instance.");
+ }
+
+ public static function Instance():TextInspectorController
+ {
+ if (!sInstance)
+ sInstance = new TextInspectorController();
+ return sInstance;
+ }
+
+ public function set activeFlow(inFlow:TextFlow):void
+ {
+ if (inFlow && !inFlow.interactionManager is
IEditManager)
+ throw new Error("Can't set the active flow to a
flow without an EditManager.");
+ if (mActiveFlow)
+ {
+
mActiveFlow.removeEventListener(SelectionEvent.SELECTION_CHANGE,
onTextSelectionChanged);
+ mEditManager = null;
+ }
+ mActiveFlow = inFlow;
+ if (mActiveFlow)
+ {
+ mEditManager = mActiveFlow.interactionManager
as IEditManager;
+
mActiveFlow.addEventListener(SelectionEvent.SELECTION_CHANGE,
onTextSelectionChanged);
+ }
+ else
+ onTextSelectionChanged(null);
+ for each (var ruler:RulerBar in mRulers)
+ ruler.activeFlow = mActiveFlow;
+ }
+
+ public function get activeFlow():TextFlow
+ {
+ return mActiveFlow;
+ }
+
+ public function set rulerVisible(inVisible:Boolean):void
+ {
+ for each (var ruler:RulerBar in mRulers)
+ {
+ ruler.active = inVisible;
+ if (inVisible)
+ {
+ ruler.RedrawRuler();
+ }
+ }
+ if (mActiveFlow && (mActiveFlow.interactionManager))
+ {
+ mActiveFlow.interactionManager.setFocus();
+ }
+ }
+
+ public function get rulerVisible():Boolean
+ {
+ if (mRulers.length > 0)
+ return mRulers[0].active;
+ return false;
+ }
+
+ public function AddRuler(inRuler:RulerBar):void
+ {
+ mRulers.push(inRuler);
+ }
+
+ private function onTextSelectionChanged(e:SelectionEvent):void
+ {
+ if ((processingCharacterFormatChange) &&
(mEditManager.absoluteStart == mEditManager.absoluteEnd)) return;
+
+ if (e)
+ {
+ var selState:SelectionState = e.selectionState;
+ var selectedElementRange:ElementRange =
selState ? ElementRange.createElementRange(selState.textFlow,
selState.absoluteStart, selState.absoluteEnd) : null;
+ if (selectedElementRange)
+ {
+ var format:Object =
GetFormatFromRange(selectedElementRange,selState.pointFormat);
+ if (mLastFormat == null ||
FormatChanged(mLastFormat, format))
+ {
+ dispatchEvent(new
SelectionUpdateEvent(format));
+ mLastFormat = format;
+ }
+ }
+ }
+ else
+ {
+ dispatchEvent(new SelectionUpdateEvent(new
Object()));
+ mLastFormat = null;
+ }
+ }
+
+ public function forceBroadcastFormats():void
+ {
+ if (mEditManager)
+ {
+ var format:Object =
GetFormatFromRange(ElementRange.createElementRange(mActiveFlow,
mActiveFlow.interactionManager.anchorPosition,
mActiveFlow.interactionManager.activePosition),null);
+ dispatchEvent(new SelectionUpdateEvent(format));
+ mLastFormat = format;
+ }
+ }
+
+ private function FormatChanged(format1:Object,
format2:Object):Boolean
+ {
+ if (format1.numProps == format2.numProps)
+ {
+ for(var key:String in format1)
+ {
+ if (format2[key] == null)
+ return true;
+ var prop1:Array = format1[key];
+ var prop2:Array = format2[key];
+ var n:int = prop1.length;
+ if (n != prop2.length)
+ return true;
+ for (var i:int = 0; i < n; ++i)
+ if (prop1[i] != prop2[i])
+ return true;
+ }
+ return false;
+ }
+ return true;
+ }
+
+ private function
GetFormatFromRange(inRange:ElementRange,pendingFormat:ITextLayoutFormat):Object
+ {
+ var format:Object = new Object();
+ format.numProps = 0;
+ format.setPropertyIsEnumerable("numProps", false);
+ var leafIter:FlowLeafElement = inRange.firstLeaf;
+ while (leafIter)
+ {
+ var charFormat:ITextLayoutFormat =
leafIter.computedFormat;
+ if (pendingFormat)
+ {
+ var scratch:TextLayoutFormat = new
TextLayoutFormat(charFormat);
+ scratch.apply(pendingFormat);
+ charFormat = scratch;
+ }
+ AddAttributeToFormat(format,
FONT_FAMILY_UIPROP, charFormat.fontFamily);
+ if (!IsMetaFontName(charFormat.fontFamily))
+ AddAttributeToFormat(format,
FONT_LOOKUP_UIPROP, charFormat.fontLookup);
+ AddAttributeToFormat(format, FONT_SIZE_UIPROP,
charFormat.fontSize);
+ AddAttributeToFormat(format,
TRACKING_RIGHT_UIPROP, charFormat.trackingRight);
+ AddAttributeToFormat(format,
TRACKING_LEFT_UIPROP, charFormat.trackingLeft);
+ AddAttributeToFormat(format, KERNING_UIPROP,
charFormat.kerning);
+ AddAttributeToFormat(format,
LINE_HEIGHT_UIPROP, charFormat.lineHeight);
+ AddAttributeToFormat(format, COLOR_UIPROP,
charFormat.color);
+ AddAttributeToFormat(format, BGCOLOR_UIPROP,
charFormat.backgroundColor);
+ AddAttributeToFormat(format,
FONT_WEIGHT_UIPROP, charFormat.fontWeight);
+ AddAttributeToFormat(format, FONT_STYLE_UIPROP,
charFormat.fontStyle);
+ AddAttributeToFormat(format,
TEXT_DECORATION_UIPROP, charFormat.textDecoration);
+ AddAttributeToFormat(format,
LINE_THROUGH_UIPROP, charFormat.lineThrough);
+ // This little kludge allows me to have two
controls operate on the same property
+ AddAttributeToFormat(format,
BASELINE_SHIFT_SUPER_UIPROP,
+ charFormat.baselineShift ==
flashx.textLayout.formats.BaselineShift.SUPERSCRIPT ?
+
flashx.textLayout.formats.BaselineShift.SUPERSCRIPT :
+
0);
+ AddAttributeToFormat(format,
BASELINE_SHIFT_SUB_UIPROP,
+ charFormat.baselineShift ==
flashx.textLayout.formats.BaselineShift.SUBSCRIPT ?
+
flashx.textLayout.formats.BaselineShift.SUBSCRIPT :
+
0);
+ AddAttributeToFormat(format, DIGIT_CASE_UIPROP,
charFormat.digitCase);
+ AddAttributeToFormat(format,
DIGIT_WIDTH_UIPROP, charFormat.digitWidth);
+ AddAttributeToFormat(format,
DOMINANT_BASELINE_UIPROP, charFormat.dominantBaseline);
+ AddAttributeToFormat(format,
ALIGNMENT_BASELINE_UIPROP, charFormat.alignmentBaseline);
+ AddAttributeToFormat(format,
BASELINE_SHIFT_UIPROP, charFormat.baselineShift);
+ AddAttributeToFormat(format,
TYPOGRAPHIC_CASE_UIPROP, charFormat.typographicCase);
+ AddAttributeToFormat(format,
LIGATURE_LEVEL_UIPROP, charFormat.ligatureLevel);
+ AddAttributeToFormat(format,
TEXT_ROTATION_UIPROP, charFormat.textRotation);
+ AddAttributeToFormat(format, TEXT_ALPHA_UIPROP,
charFormat.textAlpha);
+ AddAttributeToFormat(format,
BACKGROUND_ALPHA_UIPROP, charFormat.backgroundAlpha);
+ AddAttributeToFormat(format, LOCALE_UIPROP,
charFormat.locale);
+ AddAttributeToFormat(format,
BREAK_OPPORTUNITY_UIPROP, charFormat.breakOpportunity);
+ AddAttributeToFormat(format,
RENDERING_MODE_UIPROP, charFormat.renderingMode);
+ if (charFormat.renderingMode ==
flash.text.engine.RenderingMode.CFF)
+ AddAttributeToFormat(format,
CFF_HINTING_UIPROP, charFormat.cffHinting);
+
+
+ var paragraph:ParagraphElement =
leafIter.getParagraph();
+ var paraFormat:ITextLayoutFormat =
paragraph.computedFormat;
+ AddAttributeToFormat(format,
PARA_LOCALE_UIPROP, paraFormat.locale);
+ AddAttributeToFormat(format,
TEXT_INDENT_UIPROP, paraFormat.textIndent);
+ AddAttributeToFormat(format,
START_INDENT_UIPROP, paraFormat.paragraphStartIndent);
+ AddAttributeToFormat(format, END_INDENT_UIPROP,
paraFormat.paragraphEndIndent);
+ AddAttributeToFormat(format,
SPACE_BEFORE_UIPROP, paraFormat.paragraphSpaceBefore);
+ AddAttributeToFormat(format,
SPACE_AFTER_UIPROP, paraFormat.paragraphSpaceAfter);
+ AddAttributeToFormat(format, TEXT_ALIGN_UIPROP,
paraFormat.textAlign);
+ if (paraFormat.textAlign == TextAlign.JUSTIFY)
+ AddAttributeToFormat(format,
TEXT_ALIGN_LAST_UIPROP, paraFormat.textAlignLast);
+ AddAttributeToFormat(format,
JUSTIFICATION_RULE_UIPROP, paraFormat.justificationRule);
+ AddAttributeToFormat(format,
TEXT_JUSTIFY_UIPROP, paraFormat.textJustify);
+ AddAttributeToFormat(format,
JUSTIFICATION_STYLE_UIPROP, paraFormat.justificationStyle);
+ AddAttributeToFormat(format, DIRECTION_UIPROP,
paraFormat.direction);
+ AddAttributeToFormat(format,
LEADING_MODEL_UIPROP, paraFormat.leadingModel);
+
+ addLinkSettings(format, leafIter);
+
+ if (leafIter == inRange.lastLeaf)
+ break;
+
+ leafIter = leafIter.getNextLeaf();
+
+ //if this is a single point selection between
differing elements, we don't want to pick up the second one
+ //is start == end, break...
+ if(inRange.absoluteStart == inRange.absoluteEnd)
+ break;
+ }
+ var containerFormat:ITextLayoutFormat = null;
+ var selStart:int =
Math.min(mActiveFlow.interactionManager.activePosition,
mActiveFlow.interactionManager.anchorPosition);
+ var selEnd:int =
Math.max(mActiveFlow.interactionManager.activePosition,
mActiveFlow.interactionManager.anchorPosition);
+ var line:TextFlowLine =
mActiveFlow.flowComposer.findLineAtPosition(selStart);
+
+ // this is some odd logic - probably because
ElementRange is not telling about the containercontroller range
+ if (line && line.controller)
+ {
+ var controller:ContainerController =
line.controller;
+ line =
mActiveFlow.flowComposer.findLineAtPosition(selEnd);
+ var lastController:ContainerController = null;
+ if (line && line.controller)
+ lastController = line.controller;
+ while (controller)
+ {
+ containerFormat =
controller.computedFormat;
+ AddAttributeToFormat(format,
VERTICAL_ALIGN_UIPROP, containerFormat.verticalAlign);
+ AddAttributeToFormat(format,
COLUMN_COUNT_UIPROP, containerFormat.columnCount);
+ AddAttributeToFormat(format,
COLUMN_WIDTH_UIPROP, containerFormat.columnWidth);
+ AddAttributeToFormat(format,
COLUMN_GAP_UIPROP, containerFormat.columnGap);
+ AddAttributeToFormat(format,
PADDING_LEFT_UIPROP, containerFormat.paddingLeft);
+ AddAttributeToFormat(format,
PADDING_TOP_UIPROP, containerFormat.paddingTop);
+ AddAttributeToFormat(format,
PADDING_RIGHT_UIPROP, containerFormat.paddingRight);
+ AddAttributeToFormat(format,
PADDING_BOTTOM_UIPROP, containerFormat.paddingBottom);
+ // Note: These attributes are in the API but don't cause
anything to be drawn. It looks like support
+ // for drawing borders on text containers is probably post-1.0.
I have left in the XML description of
+ // how to build a UI for these properties, but commented this
code out. If the DynamicPropertyEditorBase
+ // is never givena value for these properties, it will not
display the UI.
+ // AddAttributeToFormat(format,
BORDER_COLOR_UIPROP, containerFormat.borderColor);
+ // AddAttributeToFormat(format,
BORDER_STYLE_UIPROP, containerFormat.borderStyle);
+ // AddAttributeToFormat(format,
BORDER_THICKNESS_UIPROP, containerFormat.borderThickness);
+ AddAttributeToFormat(format,
FIRST_BASELINE_UIPROP, containerFormat.firstBaselineOffset);
+
+ if (controller == lastController)
+ break;
+ var myIdx:int =
controller.flowComposer.getControllerIndex(controller);
+ controller = myIdx+1 ==
controller.flowComposer.numControllers ? null :
controller.flowComposer.getControllerAt(myIdx+1);
+ }
+ }
+ containerFormat = inRange.containerFormat;
+ var tf:TextFlow = inRange.firstLeaf.getTextFlow();
+ AddAttributeToFormat(format, BLOCK_PROGRESSION_UIPROP,
tf.computedFormat.blockProgression);
+ AddAttributeToFormat(format, FLOW_DIRECTION_UIPROP,
tf.computedFormat.direction);
+ AddAttributeToFormat(format, LINE_BREAK_UIPROP,
tf.computedFormat.lineBreak);
+
+ // TODO: uses first container only
+ AddAttributeToFormat(format, VERTICAL_SCROLL_UIPROP,
mActiveFlow.flowComposer.getControllerAt(0).verticalScrollPolicy);
+ AddAttributeToFormat(format, HORIZONTAL_SCROLL_UIPROP,
mActiveFlow.flowComposer.getControllerAt(0).horizontalScrollPolicy);
+
+ if (isTCYEnabled())
+ AddAttributeToFormat(format, TCY_UIPROP,
TCY(inRange));
+
+ if (shouldExtendLink(format))
+ AddAttributeToFormat(format,
LINK_EXTEND_UIPROP, true);
+
+ return format;
+ }
+
+ private function addLinkSettings(format:Object,
leaf:FlowElement):void
+ {
+ var linkElement:LinkElement =
leaf.getParentByType(LinkElement) as LinkElement;
+ if (linkElement)
+ {
+ AddAttributeToFormat(format, LINK_URL_UIPROP,
linkElement.href);
+ AddAttributeToFormat(format, LINK_TARGET_UIPROP,
linkElement.target ? linkElement.target : "");
+ }
+ else
+ {
+ AddAttributeToFormat(format, LINK_URL_UIPROP, "");
+ // Don't show link target or extend link if there's no
URL property in the selection
+ }
+
+ }
+
+ private function shouldExtendLink(format:Object):Boolean
+ {
+ // Check box is added if the selection contains mixed
link settings (more than one, and at least one a valid link)
+ var extendLink:Boolean = false;
+ var urlArray:Array = format[LINK_URL_UIPROP];
+ if (urlArray && urlArray.length > 1)
+ {
+ for each (var urlString:String in urlArray)
+ if (urlString.length > 1)
+ {
+ extendLink = true;
+ break;
+ }
+ }
+ return extendLink;
+ }
+
+ private function isTCYEnabled():Boolean
+ {
+ var okToTurnOnTCY:Boolean = false;
+ if (mActiveFlow.interactionManager.isRangeSelection())
+ {
+ //have to also check if more than just the end
of paragraph markers
+ //are selected
+
+ var selBegIdx:int =
mActiveFlow.interactionManager.anchorPosition;
+ var selEndIdx:int =
mActiveFlow.interactionManager.activePosition;
+ if (selBegIdx > selEndIdx)
+ {
+ var tempInt:int = selBegIdx;
+ selBegIdx = selEndIdx;
+ selEndIdx = tempInt;
+ }
+
+ var para:ParagraphElement;
+ var startParaPos:int;
+ var endParaPos:int;
+ var beginCheckPos:int;
+ var endCheckPos:int;
+ while ((!okToTurnOnTCY) && (selBegIdx <
selEndIdx))
+ {
+ para =
mActiveFlow.findAbsoluteParagraph(selBegIdx);
+ startParaPos = para.getAbsoluteStart();
+ endParaPos = startParaPos +
para.textLength;
+
+ if (startParaPos > selBegIdx)
+ beginCheckPos = startParaPos;
+ else
+ beginCheckPos = selBegIdx
+
+ if (endParaPos > selEndIdx)
+ endCheckPos = selEndIdx;
+ else
+ endCheckPos = endParaPos;
+
+ var numSelInPar:int = endCheckPos -
beginCheckPos;
+ if ((numSelInPar > 1) || ((numSelInPar
== 1) && (endCheckPos != endParaPos)))
+ {
+ okToTurnOnTCY = true;
+ } else {
+ selBegIdx = endParaPos;
+ }
+ }
+ }
+ return okToTurnOnTCY;
+ }
+
+ public function TCY(range:ElementRange):Boolean
+ {
+ if(range != null)
+ {
+ var anchorEl:FlowElement = range.firstLeaf;
+ var endEl:FlowElement = range.lastLeaf;
+ if ((endEl is SpanElement) && ((endEl as
SpanElement).hasParagraphTerminator) && (endEl.textLength == 1))
+ {
+ endEl =
endEl.getTextFlow().findLeaf(endEl.getAbsoluteStart() - 1);
+ }
+
+ var anchorIsTCY:Boolean = false;
+ var endIsTCY:Boolean = false;
+
+ //if this or any of it's parents are TCY, then
anchorIsTCY is true
+ while(anchorEl != null && !anchorIsTCY)
+ {
+ if(anchorEl is TCYElement)
+ anchorIsTCY = true;
+
+ anchorEl = anchorEl.parent;
+ }
+
+ //if this or any of it's parents are TCY, then
anchorIsTCY is true
+ //NOTE: anchorEl and endEl may differing parent
counts.
+ while(endEl != null && !endIsTCY)
+ {
+ if(endEl is TCYElement)
+ endIsTCY = true;
+
+ endEl = endEl.parent;
+ }
+
+ return endIsTCY && anchorIsTCY;
+ }
+ else
+ return false;
+ }
+
+ private function IsMetaFontName(inFont:String):Boolean
+ {
+ return (inFont == "_sans" || inFont == "_serif" ||
inFont == "_typewriter");
+ }
+
+ private function AddAttributeToFormat(inFormat:Object,
key:String, value:Object):void
+ {
+ if (inFormat[key] == null)
+ {
+ inFormat[key] = [];
+ ++inFormat.numProps;
+ }
+ if (inFormat[key].indexOf(value) == -1)
+ inFormat[key].push(value);
+ }
+
+ public function SetTextProperty(inKey:String,
inValue:Object):void
+ {
+ var slashIndex:int = inKey.indexOf("/");
+ if (slashIndex == -1)
+ throw new Error("Expected a key with a slash in
it.");
+ var domain:String = inKey.slice(0, slashIndex);
+ var key:String = inKey.slice(slashIndex + 1);
+ // This little kludge allows me to have two controls
operate on the same property
+ var hashIndex:int = key.indexOf("#");
+ if (hashIndex > -1)
+ key = key.slice(0, hashIndex);
+ if (mEditManager)
+ {
+ // scratch vars
+ var pa:TextLayoutFormat;
+ var cont:TextLayoutFormat;
+ var ca:TextLayoutFormat;
+
+ switch(domain) {
+ case CHAR_DOMAIN:
+ ca = new TextLayoutFormat();
+ if (key == "color")
+ {
+ inValue = uint(inValue);
+ if (mActiveFlow)
+ {
+
mActiveFlow.interactionManager.setFocus();
+ }
+ }
+ if (key == "backgroundColor")
+ {
+ inValue = uint(inValue);
+ }
+ if (key == "lineThrough")
+ inValue = inValue == "true" ?
true : false;
+ ca[key] = inValue;
+ if (key == "fontFamily" &&
IsMetaFontName(inValue as String))
+ ca["fontLookup"] =
flash.text.engine.FontLookup.DEVICE;
+ processingCharacterFormatChange = true;
+ mEditManager.applyLeafFormat(ca);
+ processingCharacterFormatChange =
false;
+ break;
+ case PAR_DOMAIN:
+ pa = new TextLayoutFormat();
+ pa[key] = inValue;
+ mEditManager.applyParagraphFormat(pa);
+ break;
+ case FLOW_DOMAIN:
+ pa = new TextLayoutFormat();
+ pa[key] = inValue;
+
mEditManager.applyFormatToElement(mActiveFlow,pa);
+ break;
+ case CONT_DOMAIN:
+ cont = new TextLayoutFormat();
+ cont[key] = inValue;
+
+ // always modify the containers
+
mEditManager.applyContainerFormat(cont,null);
+ break;
+ case SCROLL_DOMAIN: // scroll policy props
+
mActiveFlow.flowComposer.getControllerAt(0)[key] = inValue;
+
mActiveFlow.flowComposer.updateAllControllers();
+ break;
+ case TCY_DOMAIN:
+ if (key == "tcy")
+ mEditManager.applyTCY(inValue
== "true" ? true : false);
+ break;
+ case LINK_DOMAIN:
+ if (key == "linkURL")
+ mEditManager.applyLink(inValue
as String);
+ break;
+ }
+ }
+ mLastFormat = null;
+ }
+
+ private var mActiveFlow:TextFlow = null;
+ private var mEditManager:IEditManager = null;
+ private var mLastFormat:Object = null;
+ private var mRulers:Array = [];
+
+ }
+}
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/TextInspectorController.as
------------------------------------------------------------------------------
svn:eol-style = native
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_center_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_center_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_center_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_end_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_end_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_end_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_justify_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_justify_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_justify_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_center_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_center_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_center_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_left_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_left_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_left_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_right_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_right_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_last_right_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_left_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_left_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_left_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_right_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_right_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_right_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_start_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_start_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/align_start_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/bold_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/bold_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/bold_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_bottom_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_bottom_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_bottom_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_justify_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_justify_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_justify_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_middle_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_middle_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_middle_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_top_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_top_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/cont_align_top_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/italic_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/italic_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/italic_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/strikethrough_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/strikethrough_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/strikethrough_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/subscript_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/subscript_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/subscript_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/superscript_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/superscript_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/superscript_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/tcy_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/tcy_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/tcy_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/underline_icon.png
URL:
http://svn.apache.org/viewvc/flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/underline_icon.png?rev=1619987&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
flex/site/trunk/content/tourdeflex/spark/tlf/flashx/textLayout/ui/inspectors/assets/underline_icon.png
------------------------------------------------------------------------------
svn:mime-type = image/png