Repository: flex-asjs Updated Branches: refs/heads/develop 2695a9184 -> a77bfe4f2
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/Kerning.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/Kerning.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/Kerning.as new file mode 100644 index 0000000..b94f67f --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/Kerning.as @@ -0,0 +1,31 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class Kerning + { + public static const AUTO : String = "auto"; + public static const OFF : String = "off"; + public static const ON : String = "on"; + + public function Kerning() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/LigatureLevel.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/LigatureLevel.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/LigatureLevel.as new file mode 100644 index 0000000..2b20969 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/LigatureLevel.as @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class LigatureLevel + { + public static const COMMON : String = "common"; + public static const EXOTIC : String = "exotic"; + public static const MINIMUM : String = "minimum"; + public static const NONE : String = "none"; + public static const UNCOMMON : String = "uncommon"; + public function LigatureLevel() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/LineJustification.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/LineJustification.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/LineJustification.as new file mode 100644 index 0000000..3d4e189 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/LineJustification.as @@ -0,0 +1,31 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class LineJustification + { + public static const ALL_BUT_LAST : String = "allButLast"; + public static const ALL_BUT_MANDATORY_BREAK : String = "allButMandatoryBreak"; + public static const ALL_INCLUDING_LAST : String = "allIncludingLast"; + public static const UNJUSTIFIED : String = "unjustified"; + public function LineJustification() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/RenderingMode.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/RenderingMode.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/RenderingMode.as new file mode 100644 index 0000000..edfb179 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/RenderingMode.as @@ -0,0 +1,30 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class RenderingMode + { + //Probably don't need... + public static const CFF : String = "cff"; + public static const NORMAL : String = "normal"; + public function RenderingMode() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/SpaceJustifier.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/SpaceJustifier.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/SpaceJustifier.as new file mode 100644 index 0000000..9ea7773 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/SpaceJustifier.as @@ -0,0 +1,46 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + import org.apache.flex.text.engine.TextJustifier; + import org.apache.flex.text.engine.SpaceJustifier; + + public class SpaceJustifier extends TextJustifier + { + public function SpaceJustifier(locale:String = "en", lineJustification:String = "unjustified", letterSpacing:Boolean = false) + { + this.letterSpacing = letterSpacing; + super(locale, lineJustification); + } + + override public function clone():TextJustifier + { + var retVal:SpaceJustifier = new SpaceJustifier(locale, lineJustification); + retVal.letterSpacing = letterSpacing; + retVal.maximumSpacing = maximumSpacing; + retVal.minimumSpacing = minimumSpacing; + retVal.optimumSpacing = optimumSpacing; + return retVal; + } + public var letterSpacing : Boolean; + public var maximumSpacing : Number; + public var minimumSpacing : Number; + public var optimumSpacing : Number; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TabAlignment.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TabAlignment.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TabAlignment.as new file mode 100644 index 0000000..beb7737 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TabAlignment.as @@ -0,0 +1,31 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class TabAlignment + { + public static const CENTER : String = "center"; + public static const DECIMAL : String = "decimal"; + public static const END : String = "end"; + public static const START : String = "start"; + public function TabAlignment() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TabStop.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TabStop.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TabStop.as new file mode 100644 index 0000000..3c82e05 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TabStop.as @@ -0,0 +1,34 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class TabStop + { + public function TabStop(alignment:String = "start", position:Number = 0, decimalAlignmentToken:String = "") + { + this.alignment = alignment; + this.position = position; + this.decimalAlignmentToken = decimalAlignmentToken; + } + + public var alignment : String; + public var decimalAlignmentToken : String; + public var position : Number; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextBaseline.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextBaseline.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextBaseline.as new file mode 100644 index 0000000..ac1ca5c --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextBaseline.as @@ -0,0 +1,34 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class TextBaseline + { + public static const ASCENT : String = "ascent"; + public static const DESCENT : String = "descent"; + public static const IDEOGRAPHIC_BOTTOM : String = "ideographicBottom"; + public static const IDEOGRAPHIC_CENTER : String = "ideographicCenter"; + public static const IDEOGRAPHIC_TOP : String = "ideographicTop"; + public static const ROMAN : String = "roman"; + public static const USE_DOMINANT_BASELINE : String = "useDominantBaseline"; + public function TextBaseline() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextElement.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextElement.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextElement.as new file mode 100644 index 0000000..a77b40b --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextElement.as @@ -0,0 +1,94 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + import org.apache.flex.events.EventDispatcher; + + public class TextElement extends ContentElement + { + public function TextElement(text:String = null, elementFormat:ElementFormat = null, eventMirror:EventDispatcher = null, textRotation:String = "rotate0") + { + this.text = text; + super(elementFormat, eventMirror, textRotation); + } + private var _text:String; + override public function get text():String + { + return _text; + } + public function set text(value:String):void + { + _text = value; + resetGlyphs(); + } + + override public function get rawText():String + { + return _text; + } + override public function set elementFormat(value:ElementFormat):void + { + super.elementFormat = value; + resetGlyphs(); + } + private function resetGlyphs():void + { + if(glyphs) + glyphs = null; + lastComposed = -1; + } + + private function resetText():void + { + if(words) + words = null; + } + public function replaceText(beginIndex:int, endIndex:int, newText:String):void + { + var b:String = _text.substring(0,beginIndex); + var e:String = _text.substring(endIndex); + _text = b + newText + e; + resetGlyphs(); + resetText(); + } + + /** + * @private This is for the Text Engine to store internal glyph data as the text is being composed. + * This should not be used by client code. The text engine should clean up after itself. + */ + public var glyphs:Array; + + /** + * @private To track which glyph we broke the text on + */ + public var lastComposed:int = -1; + + /** + * @private + */ + public var words:Array; + + /** + * @private + */ + public var wordWidths:Array; + + + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextEngine.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextEngine.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextEngine.as new file mode 100644 index 0000000..921e154 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextEngine.as @@ -0,0 +1,27 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + import org.apache.flex.text.engine.ITextFactory; + + public class TextEngine + { + public static var textFactory:ITextFactory; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextJustifier.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextJustifier.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextJustifier.as new file mode 100644 index 0000000..003f5e7 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextJustifier.as @@ -0,0 +1,45 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + import org.apache.flex.text.engine.TextJustifier; + + public class TextJustifier + { + public function TextJustifier(locale:String, lineJustification:String) + { + _locale = locale; + this.lineJustification = lineJustification; + } + public var lineJustification : String; + private var _locale:String; + public function get locale(): String + { + return _locale; + } + public function clone():TextJustifier + { + return new TextJustifier(locale,lineJustification); + } + public static function getJustifierForLocale(locale:String):TextJustifier + { + return new TextJustifier(locale,LineJustification.UNJUSTIFIED); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineCreationResult.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineCreationResult.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineCreationResult.as new file mode 100644 index 0000000..1006451 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineCreationResult.as @@ -0,0 +1,31 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class TextLineCreationResult + { + public static const COMPLETE : String = "complete"; + public static const EMERGENCY : String = "emergency"; + public static const INSUFFICIENT_WIDTH : String = "insufficientWidth"; + public static const SUCCESS : String = "success"; + public function TextLineCreationResult() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineMirrorRegion.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineMirrorRegion.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineMirrorRegion.as new file mode 100644 index 0000000..3c4a10a --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineMirrorRegion.as @@ -0,0 +1,55 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + import org.apache.flex.geom.Rectangle; + import org.apache.flex.events.EventDispatcher; + + public class TextLineMirrorRegion + { + public function TextLineMirrorRegion() + { + } + + public function get bounds():Rectangle + { + return null; + } + public function get element():ContentElement + { + return null; + } + public function get mirror():EventDispatcher + { + return null; + } + public function get nextRegion():TextLineMirrorRegion + { + return null; + } + public function get previousRegion():TextLineMirrorRegion + { + return null; + } + public function get textLine():ITextLine + { + return null; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineValidity.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineValidity.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineValidity.as new file mode 100644 index 0000000..4adaab5 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextLineValidity.as @@ -0,0 +1,28 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class TextLineValidity + { + public static const INVALID : String = "invalid"; + public static const POSSIBLY_INVALID : String = "possiblyInvalid"; + public static const STATIC : String = "static"; + public static const VALID : String = "valid"; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextRotation.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextRotation.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextRotation.as new file mode 100644 index 0000000..d38c391 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TextRotation.as @@ -0,0 +1,32 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class TextRotation + { + public static const AUTO : String = "auto"; + public static const ROTATE_0 : String = "rotate0"; + public static const ROTATE_180 : String = "rotate180"; + public static const ROTATE_270 : String = "rotate270"; + public static const ROTATE_90 : String = "rotate90"; + public function TextRotation() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TypographicCase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TypographicCase.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TypographicCase.as new file mode 100644 index 0000000..71dc953 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/engine/TypographicCase.as @@ -0,0 +1,34 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.engine +{ + public class TypographicCase + { + public static const CAPS : String = "caps"; + public static const CAPS_AND_SMALL_CAPS : String = "capsAndSmallCaps"; + public static const DEFAULT : String = "default"; + public static const LOWERCASE : String = "lowercase"; + public static const SMALL_CAPS : String = "smallCaps"; + public static const TITLE : String = "title"; + public static const UPPERCASE : String = "uppercase"; + public function TypographicCase() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/events/IMEEvent.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/events/IMEEvent.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/events/IMEEvent.as new file mode 100644 index 0000000..7569ba9 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/events/IMEEvent.as @@ -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 org.apache.flex.text.events +{ + import org.apache.flex.events.IFlexJSEvent; + import org.apache.flex.events.Event; + import org.apache.flex.text.ime.IIMEClient; + + public class IMEEvent extends Event + { + public static const IME_COMPOSITION : String = "imeComposition"; + public static const IME_START_COMPOSITION : String = "imeStartComposition"; + public var text:String; + public var imeClient:IIMEClient; + public function IMEEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "", imeClient:IIMEClient = null) + { + this.text = text; + this.imeClient = imeClient; + super(type, bubbles, cancelable); + } + /** + * Create a copy/clone of the Event object. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + override public function cloneEvent():IFlexJSEvent + { + return new IMEEvent(type, bubbles, cancelable, text, imeClient); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/events/TextEvent.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/events/TextEvent.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/events/TextEvent.as new file mode 100644 index 0000000..7a45ae1 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/events/TextEvent.as @@ -0,0 +1,62 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.events +{ + import org.apache.flex.events.IFlexJSEvent; + import org.apache.flex.events.Event; + + /** + * A TextLayoutEvent instance represents an event, such as the + * <code>TextLayoutEvent.SCROLL</code> event, that does not require + * custom properties. + * <p>A scroll event is represented by a TextLayoutEvent instance with its + * <code>type</code> property set to <code>TextLayoutEvent.SCROLL</code>. + * A class specifically for scroll events is not necessary because there are + * no custom properties for a scroll event, as there are for the other + * events that have specific event classes. + * If a new text layout event is needed, and the event does not require + * custom properties, the new event will also be represented by a + * TextLayoutEvent object, but with its <code>type</code> property + * set to a new static constant. + * </p> + * + * @includeExample examples\TextLayoutEvent_example.as -noswf + * @playerversion Flash 10 + * @playerversion AIR 1.5 + * @langversion 3.0 + */ + public class TextEvent extends Event + { + public static const LINK : String = "link"; + public static const TEXT_INPUT : String = "textInput"; + + public function TextEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, text:String = "") + { + this.text = text; + super(type, bubbles, cancelable); + } + public var text:String; + + /** @private */ + override public function cloneEvent():IFlexJSEvent + { + return new TextEvent(type, bubbles, cancelable, text); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as new file mode 100644 index 0000000..9d2f491 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextBlock.as @@ -0,0 +1,220 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.html +{ + import org.apache.flex.text.engine.ContentElement; + import org.apache.flex.text.engine.FontDescription; + import org.apache.flex.text.engine.ITextBlock; + import org.apache.flex.text.engine.ITextLine; + import org.apache.flex.text.engine.TabStop; + import org.apache.flex.text.engine.TextJustifier; + import org.apache.flex.text.engine.ITextFactory; + + public class TextBlock implements ITextBlock + { + public function TextBlock(factory:ITextFactory) + { + _textFactory = factory; + } + private var _textFactory:ITextFactory; + public function get textFactory():ITextFactory + { + return _textFactory; + } + private var _applyNonLinearFontScaling:Boolean; + public function get applyNonLinearFontScaling():Boolean + { + return _applyNonLinearFontScaling; + } + public function set applyNonLinearFontScaling(value:Boolean):void + { + _applyNonLinearFontScaling = value; + } + + private var _baselineFontDescription:FontDescription; + public function get baselineFontDescription():FontDescription + { + return _baselineFontDescription; + } + public function set baselineFontDescription(value:FontDescription):void + { + _baselineFontDescription = value; + } + private var _baselineFontSize:Number = 0; + public function get baselineFontSize():Number + { + return _baselineFontSize; + } + public function set baselineFontSize(value:Number):void + { + _baselineFontSize = value; + } + + private var _baselineZero:String; + public function get baselineZero():String + { + return _baselineZero; + } + public function set baselineZero(value:String):void + { + _baselineZero = value; + } + + private var _bidiLevel:int; + public function get bidiLevel():int + { + return _bidiLevel; + } + public function set bidiLevel(value:int):void + { + _bidiLevel = value; + } + + private var _content:ContentElement; + public function get content():ContentElement + { + return _content; + } + public function set content(value:ContentElement):void + { + _content = value; + } + + private var _firstInvalidLine:ITextLine; + public function get firstInvalidLine():ITextLine + { + return _firstInvalidLine; + } + public function set firstInvalidLine(value:ITextLine):void + { + _firstInvalidLine = value; + } + + private var _firstLine:ITextLine; + public function get firstLine():ITextLine + { + return _firstLine; + } + public function set firstLine(value:ITextLine):void + { + _firstLine = value; + } + + private var _lastLine:ITextLine; + public function get lastLine():ITextLine + { + return _lastLine; + } + public function set lastLine(value:ITextLine):void + { + _lastLine = value; + } + + private var _lineRotation:String; + public function get lineRotation():String + { + return _lineRotation; + } + public function set lineRotation(value:String):void + { + _lineRotation = value; + } + + private var _tabStops:Vector.<TabStop>; + public function get tabStops():Vector.<TabStop> + { + return _tabStops; + } + public function set tabStops(value:Vector.<TabStop>):void + { + _tabStops = value; + } + + private var _textJustifier:TextJustifier; + public function get textJustifier():TextJustifier + { + return _textJustifier; + } + public function set textJustifier(value:TextJustifier):void + { + _textJustifier = value; + } + + private var _textLineCreationResult:String; + public function get textLineCreationResult():String + { + return _textLineCreationResult; + } + public function set textLineCreationResult(value:String):void + { + _textLineCreationResult = value; + } + + private var _userData:*; + public function get userData():* + { + return _userData; + } + public function set userData(value:*):void + { + _userData = value; + } + + public function createTextLine(previousLine:ITextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):ITextLine + { + return null; + } + public function dump():String{ + return null; + } + public function findNextAtomBoundary(afterCharIndex:int):int + { + return 0; + } + public function findNextWordBoundary(afterCharIndex:int):int + { + return 0; + } + public function findPreviousAtomBoundary(beforeCharIndex:int):int + { + return 0; + } + public function findPreviousWordBoundary(beforeCharIndex:int):int + { + return 0; + } + public function getTextLineAtCharIndex(charIndex:int):ITextLine + { + return null; + } + public function recreateTextLine(textLine:ITextLine, previousLine:ITextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):ITextLine + { + return null; + } + public function releaseLineCreationData():void + { + //what to do... + } + public function releaseLines(firstLine:ITextLine, lastLine:ITextLine):void + { + //TODO + } + + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as new file mode 100644 index 0000000..fa2d5b4 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as @@ -0,0 +1,273 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.html +{ + import org.apache.flex.text.engine.ITextLine; + import org.apache.flex.text.engine.ITextBlock; + import org.apache.flex.core.IUIBase; + import org.apache.flex.geom.Rectangle; + import org.apache.flex.core.UIBase; + + public class TextLine extends UIBase implements ITextLine + { + public function TextLine() + { + } + public function get ascent():Number + { + return 0; + } + + public function get atomCount():int + { + return 0; + } + + public function get blendMode():String + { + return null; + } + + public function get cacheAsBitmap():Boolean + { + return false; + } + + public function get descent():Number + { + return 0; + } + + private var _doubleClickEnabled:Boolean; + public function get doubleClickEnabled():Boolean + { + return _doubleClickEnabled; + } + public function set doubleClickEnabled(value:Boolean):void + { + _doubleClickEnabled = value; + } + + + public function get hasGraphicElement():Boolean + { + return false; + } + + public function get hasTabs():Boolean + { + return false; + } + + public function get metaData():Object + { + return null; + } + + public function get nextLine():ITextLine + { + return null; + } + + public function get previousLine():ITextLine + { + return null; + } + + public function get rawTextLength():int + { + return 0; + } + + public function get specifiedWidth():Number + { + return 0; + } + + public function get textBlock():ITextBlock + { + return null; + } + + public function get textBlockBeginIndex():int + { + return 0; + } + + public function get textHeight():Number + { + return 0; + } + + public function get textWidth():Number + { + return 0; + } + + public function get totalAscent():Number + { + return 0; + } + + public function get totalDescent():Number + { + return 0; + } + + public function get totalHeight():Number + { + return 0; + } + + public function get unjustifiedTextWidth():Number + { + return 0; + } + + private var _userData:*; + public function get userData():* + { + return _userData; + } + public function set userData(value:*):void + { + _userData = value; + } + + private var _validity:String; + public function get validity():String + { + return _validity; + } + public function set validity(value:String):void + { + _validity = value; + } + + /** + * Not sure if we need this. + */ + public function dump():String + { + return ""; + } + + /** + * Gets the bidirectional level of the atom at the specified index. + * The FTE system seems to make no sense. Here's the "explanation": + * + * Gets the bidirectional level of the atom at the specified index. Determined by a combination of TextBlock.bidiLevel + * and the Unicode bidirectional properties of the characters that form the line. + * + * For example, if you start a text block with some Hebrew text, you set TextBlock.bidiLevel to 1, establishing a default of right to left. + * If within the text you have a quote in English (left to right), that text has an AtomBidiLevel of 2. + * If within the English you have a bit of Arabic (right to left), AtomBidiLevel for that run goes to 3. + * If within the Arabic a number (left to right) occurs, the AtomBidiLevel setting for the number is 4. + * It does not matter in which line the atoms end up; the Hebrew atoms are AtomBidiLevel 1, + * the English atoms are AtomBidiLevel 2, Arabic atoms are AtomBidiLevel 3, and the number atoms are AtomBidiLevel 4. + * + * After further research. it seems like it's being faithful to the unicode spec which allows up 125 levels of bidi nesting. + * Full details here: http://www.unicode.org/reports/tr9/ + * I'm not sure why this is important from a client perspective. Maybe to properly handle cursor management? + * Either way, using it is pretty straight-forward: level % 2 should be 0 for ltr and 1 for rtl. + */ + public function getAtomBidiLevel(atomIndex:int):int + { + //TODO implement bidi + return 0; + } + + public function getAtomBounds(atomIndex:int):Rectangle + { + return null; + } + + public function getAtomCenter(atomIndex:int):Number + { + var bounds:Rectangle = getAtomBounds(atomIndex); + return bounds.left + (bounds.right - bounds.left); + } + + public function getAtomGraphic(atomIndex:int):IUIBase + { + //TODO implement embedded graphics + return null; + } + + public function getAtomIndexAtCharIndex(charIndex:int):int + { + //TODO track indexes... + return 0; + } + + public function getAtomIndexAtPoint(stageX:Number, stageY:Number):int + { + //TODO atom locations. This one will be fun... + return 0; + } + + public function getAtomTextBlockBeginIndex(atomIndex:int):int + { + //TODO track indexes... + return 0; + } + + public function getAtomTextBlockEndIndex(atomIndex:int):int + { + //TODO track indexes... + return 0; + } + + public function getAtomTextRotation(atomIndex:int):String + { + //TODO returns TextRotation values. + return "rotate0"; + } + + public function getAtomWordBoundaryOnLeft(atomIndex:int):Boolean + { + //TODO we need to track word boundaries + return false; + } + + public function getBaselinePosition(baseline:String):Number + { + //TODO baseline is one of TextBaseline, but I'm not sure what the correct value is + switch(baseline){ + case "ascent": + break; + case "descent": + break; + case "ideographicBottom": + break; + case "ideographicCenter": + break; + case "ideographicTop": + break; + case "roman": + break; + case "useDominantBaseline": + break; + default: + throw new Error("Invalid argument"); + } + return 0; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/CompositionAttributeRange.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/CompositionAttributeRange.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/CompositionAttributeRange.as new file mode 100644 index 0000000..300bf67 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/CompositionAttributeRange.as @@ -0,0 +1,121 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.ime +{ + +// +// CompositionAttributeRange +// + +/** +* The CompositionAttributeRange class represents a range of composition attributes for use with IME events. +* For example, when editing text in the IME, the text is divided by the IME into composition ranges. +* These composition ranges are flagged as selected (i.e. currently being lengthened, shortened, or edited), +* and/or converted (i.e. they have made one pass through the IME dictionary lookup already). +* +* <p>By convention, the client should adorn these composition ranges with underlining or hiliting according to +* the flags.</p> +* +* <p>For example:</p> +* <listing> +* !converted = thick gray underline (raw text) +* !selected && converted = thin black underline +* selected && converted = thick black underline +* </listing> +* @playerversion Flash 10.1 + * @playerversion AIR 1.5 +* @langversion 3.0 +*/ +public final class CompositionAttributeRange +{ + /** + * The relative start from the beginning of the inline edit session + * i.e. 0 = the start of the text the IME can see (there may be text + * before that in the edit field) + * + * @helpid + * + * @playerversion Flash 10.1 + * @langversion 3.0 + * + */ + public var relativeStart:int; + + /** + * The relative end of the composition clause, relative to the beginning + * of the inline edit session. + * i.e. 0 = the start of the text the IME can see (there may be text + * before that in the edit field) + * + * @helpid + * + * @playerversion Flash 10.1 + * @langversion 3.0 + * + */ + public var relativeEnd:int; + + /** + * The selected flag, meaning this composition clause is active and + * being lengthened or shortened or edited with the IME, and the neighboring + * clauses are not. + * + * @helpid + * + * @playerversion Flash 10.1 + * @langversion 3.0 + * + */ + public var selected:Boolean; + + /** + * The converted flag, meaning this clause has been processed by the IME + * and is awaiting acceptance/confirmation by the user + * + * @helpid + * + * @playerversion Flash 10.1 + * @langversion 3.0 + * + */ + public var converted:Boolean; + + // Constructor + /** + * Creates a CompositionAttributeRange object. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + * + * @param relativeStart The zero based index of the first character included in the character range. + * @param relativeEnd The zero based index of the last character included in the character range. + * @param selected The selected flag + * @param converted The converted flag + * + * @tiptext Constructor for CompositionAttributeRange objects. + */ + public function CompositionAttributeRange(relativeStart:int, relativeEnd:int, selected:Boolean, converted:Boolean) + { + this.relativeStart = relativeStart; + this.relativeEnd = relativeEnd; + this.selected = selected; + this.converted = converted; + } +} // end of class +} // end of package http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IIMEClient.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IIMEClient.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IIMEClient.as new file mode 100644 index 0000000..7bd307b --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IIMEClient.as @@ -0,0 +1,186 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.ime +{ + + import org.apache.flex.geom.Rectangle; + + // + // IIMEClient + // + /** + * Dispatched when the user begins to use an IME (input method editor). + * @eventType org.apache.flex.events.IMEEvent.IME_START_COMPOSITION + * @playerversion Flash 10 + * @playerversion AIR 1.5 + * @langversion 3.0 + */ +// [Event(name="imeStartComposition", type="org.apache.flex.text.events.IMEEvent.IME_START_COMPOSITION")] + + /** + * Dispatched when the user enters text. For IME (input method editor) clients, the receiver should + * insert the string contained in the event object's <code>text</code> property at the current insertion point. + * @eventType org.apache.flex.events.TextEvent.TEXT_INPUT + * @playerversion Flash 10 + * @playerversion AIR 1.5 + * @langversion 3.0 + */ +// [Event(name="textInput", type="org.apache.flex.text.events.TextEvent.TEXT_INPUT")] + + /** + * Interface for IME (input method editor) clients. Components based on the org.apache.flex.text.engine package must implement + * this interface to support editing text inline using an IME. This interface is not used with TextField objects. + * TextLayoutFramework (TLF) uses this interface to support inline IME, so clients using TLF do not need to implement this + * interface. + * <p>To support inline IME, set the <code>imeClient</code> property of an <code>ImeEvent.IME_START_COMPOSITION</code> event to + * an object which implements this interface.</p> + * + * @see org.apache.flex.text.ime.CompositionAttributeRange + * @see org.apache.flex.events.ImeEvent:imeClient + * + * @playerversion Flash 10.1 + * @playerversion AIR 1.5 + * @langversion 3.0 + */ + public interface IIMEClient + { + /** + * Callback for updating the contents of the inline editing session. + * This gets called whenever the text being edited with the IME has changed + * and its contents are used by the client to redraw the entire inline edit session. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + * + * @param text contains the text of the inline edit session from the IME + * @param attributes contains an array of composition clauses with adornment info + * @param relativeSelectionStart start of the inline session relative to the start of the text object + * @param relativeSelectionEnd end of the inline session relative to the start of the text object + */ + function updateComposition(text:String, attributes:Vector.<CompositionAttributeRange>, + compositionStartIndex:int, compositionEndIndex:int):void; + + /** + * Use this callback to end the inline editing session and confirm the text. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + * + * @param text the final state of the text in the inline session (the text that got confirmed). + * @param preserveSelection when true, you should not reset the current selection to the end of the confirmed text. + */ + function confirmComposition(text:String = null, preserveSelection:Boolean = false):void; + + /** + * This callback is used by the IME to query the bounding box of the text being edited with the IME client. + * Use this method to place the candidate window and set the mouse cursor in the IME client when the mouse is over the + * text field or other component that supports IME. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + * + * @param startIndex an integer that specifies the starting location of the range of text for which you need to measure the bounding box. + * @param endIndex Optional; an integer that specifies the ending location of the range of text for which you need to measure the bounding box. + * + * @return the bounding box of the specified range of text, or <code>null</code> if either or both of the indexes are invalid. + * The same value should be returned independant of whether <code>startIndex</code> is greater or less than <code>endIndex</code>. + */ + function getTextBounds(startIndex:int, endIndex:int):Rectangle; + + /** + * The zero-based character index value of the start of the current edit session text (i.e. + * all text in the inline session that is still not yet confirmed to the document). + * + * @return the index of the first character of the composition, or <code>-1</code> if there is no active composition. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + */ + function get compositionStartIndex():int; + + /** + * The zero-based character index value of the end of the current edit session text (i.e. + * all text in the inline session that is still not yet confirmed to the document). + * + * @return the index of the last character of the composition, or <code>-1</code> if there is no active composition. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + */ + function get compositionEndIndex():int; + + /** + * Indicates whether the text in the component is vertical or not. This will affect the positioning + * of the candidate window (beside vertical text, below horizontal text). + * + * @return <code>true</code> if the text is vertical, otherwise false. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + */ + function get verticalTextLayout():Boolean; + + /** + * The zero-based character index value of the first character in the current selection. + * + * @return the index of the character at the anchor end of the selection, or <code>-1</code> if no text is selected. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + */ + function get selectionAnchorIndex():int; + + /** + * The zero-based character index value of the last character in the current selection. + * + * @return the index of the character at the active end of the selection, or <code>-1</code> if no text is selected. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + */ + function get selectionActiveIndex():int; + + /** + * Sets the range of selected text in the component. + * If either of the arguments is out of bounds the selection should not be changed. + * + * @param anchorIndex The zero-based index value of the character at the anchor end of the selection + * @param activeIndex The zero-based index value of the character at the active end of the selection. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + */ + function selectRange(anchorIndex:int, activeIndex:int):void; + + /** + * Gets the specified range of text from the component. This method is called during IME reconversion. + * + * @param startIndex an integer that specifies the starting location of the range of text to be retrieved. + * @param endIndex an integer that specifies the ending location of the range of text to be retrieved. + * + * @return The requested text, or <code>null</code> if no text is available in the requested range + * or if either or both of the indexes are invalid. The same value should be returned + * independant of whether <code>startIndex</code> is greater or less than <code>endIndex</code>. + * + * @playerversion Flash 10.1 + * @langversion 3.0 + */ + function getTextInRange(startIndex:int, endIndex:int):String; + } // end of class +} // end of package http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IIMESupport.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IIMESupport.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IIMESupport.as new file mode 100644 index 0000000..9194bee --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IIMESupport.as @@ -0,0 +1,86 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.ime +{ + +/** + * The IIMESupport interface defines the interface for any component that supports IME + * (input method editor). + * IME is used for entering characters in Chinese, Japanese, and Korean. + * + * @see org.apache.flex.text.ime.IME + * + * @langversion 3.0 + * @playerversion Flash 9 + * @playerversion AIR 1.1 + * @productversion Flex 3 + */ +public interface IIMESupport +{ + //-------------------------------------------------------------------------- + // + // Properties + // + //-------------------------------------------------------------------------- + + //---------------------------------- + // enableIME + //---------------------------------- + + /** + * Specifies whether the IME should be enabled when + * this component has focus. Even if a component + * uses the IME, it may not in all configurations. + * For example, TextArea will set enableIME to false + * if its <code>editable</code> is <code>false</code> since no + * input is allowed in that configuration. Similarly + * DataGrid always sets enableIME to false. If + * the DataGrid puts up an ItemEditor, its editor + * will have <code>enableIME</code> set to <code>true</code>. + * + * @langversion 3.0 + * @playerversion Flash 10 + * @playerversion AIR 1.5 + * @productversion Flex 4 + */ + function get enableIME():Boolean; + + //---------------------------------- + // imeMode + //---------------------------------- + + /** + * The IME mode of the component. + * + * @langversion 3.0 + * @playerversion Flash 9 + * @playerversion AIR 1.1 + * @productversion Flex 3 + */ + function get imeMode():String; + + /** + * @private + */ + function set imeMode(value:String):void; + + +} + +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IME.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IME.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IME.as new file mode 100644 index 0000000..6439221 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IME.as @@ -0,0 +1,49 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.ime +{ + public class IME + { + public static var conversionMode : String; + public static var enabled : Boolean; + public static var isSupported : Boolean; + + + public static function compositionAbandoned():void + { + + } + public static function compositionSelectionChanged(start:int, end:int):void + { + + } + public static function doConversion():void + { + + } + public static function setCompositionString(composition:String):void + { + + } + + public function IME() + { + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IMEConversionMode.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IMEConversionMode.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IMEConversionMode.as new file mode 100644 index 0000000..a2cb581 --- /dev/null +++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/ime/IMEConversionMode.as @@ -0,0 +1,37 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 org.apache.flex.text.ime +{ + public class IMEConversionMode + { + public static const ALPHANUMERIC_FULL : String = "ALPHANUMERIC_FULL"; + public static const ALPHANUMERIC_HALF : String = "ALPHANUMERIC_HALF"; + public static const CHINESE : String = "CHINESE"; + public static const JAPANESE_HIRAGANA : String = "JAPANESE_HIRAGANA"; + public static const JAPANESE_KATAKANA_FULL : String = "JAPANESE_KATAKANA_FULL"; + public static const JAPANESE_KATAKANA_HALF : String = "JAPANESE_KATAKANA_HALF"; + public static const KOREAN : String = "KOREAN"; + public static const UNKNOWN : String = "UNKNOWN"; + + public function IMEConversionMode() + { + + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/resources/basic-as-manifest.xml ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/resources/basic-as-manifest.xml b/frameworks/projects/Text/src/main/resources/basic-as-manifest.xml new file mode 100644 index 0000000..cd0f5b4 --- /dev/null +++ b/frameworks/projects/Text/src/main/resources/basic-as-manifest.xml @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<!-- + + 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. + +--> + + +<componentPackage> + +</componentPackage> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/resources/basic-manifest.xml ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/resources/basic-manifest.xml b/frameworks/projects/Text/src/main/resources/basic-manifest.xml new file mode 100644 index 0000000..ea6db91 --- /dev/null +++ b/frameworks/projects/Text/src/main/resources/basic-manifest.xml @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<!-- + + 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. + +--> + + +<componentPackage> + <!--<component id="Application" class="org.apache.flex.core.Application"/>--> +</componentPackage> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a77bfe4f/frameworks/projects/Text/src/main/resources/defaults.css ---------------------------------------------------------------------- diff --git a/frameworks/projects/Text/src/main/resources/defaults.css b/frameworks/projects/Text/src/main/resources/defaults.css new file mode 100644 index 0000000..1533355 --- /dev/null +++ b/frameworks/projects/Text/src/main/resources/defaults.css @@ -0,0 +1,21 @@ +/* +* +* 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. +* +*/ + +@namespace "library://ns.apache.org/flexjs/basic"; +