チェンジセット 3589

差分発生行の前後
無視リスト:
コミット日時:
2010/03/22 20:08:47 (3 年前)
コミッタ:
hkrn
ログメッセージ:

added IController interface and should reset windows with IController implemented classes

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/gunyarapaint.mxml

    r3588 r3589  
    3838            import org.libspark.gunyarapaint.framework.modules.LineModule; 
    3939            import org.libspark.gunyarapaint.framework.modules.PixelModule; 
     40            import org.libspark.gunyarapaint.ui.v1.IController; 
    4041            import org.libspark.gunyarapaint.ui.v1.MovableCanvasModule; 
    4142             
     
    4546            private var m_module:ICanvasModule; 
    4647            private var m_commit:uint; 
     48            private var m_windows:Vector.<IController>; 
    4749             
    4850            private var basex:uint = 0; 
     
    6163            private const MIN_CANVAS_HEIGHT:uint = 16; 
    6264            private const DEBUG:Boolean = true; 
    63              
    64             // ポップアップの初期位置 
    65             private var initCanvasWindow:Rectangle; 
    66             private var initPenDetailWindowPos:Point; 
    67             private var initLayerWindowPos:Point; 
    68             private var initToolController:Point; 
    69             private var initFormController:Point; 
    7065             
    7166            public const ALERT_TITLE:String = 'お絵カキコ'; 
     
    151146            public function resetWindowsPosition():void 
    152147            { 
    153                 canvasController.rotate(0); 
    154                 canvasController.transform.matrix = new Matrix(1, 0, 0, 1, initCanvasWindow.x, initCanvasWindow.y); 
    155                 penController.move(initPenDetailWindowPos.x, initPenDetailWindowPos.y); 
    156                 layerController.move(initLayerWindowPos.x, initLayerWindowPos.y); 
    157                 toolController.move(initToolController.x, initToolController.y); 
    158                 formController.move(initFormController.x, initFormController.y); 
    159                 canvasController.width = initCanvasWindow.width; 
    160                 canvasController.height = initCanvasWindow.height; 
    161                 toolController.setRotate(0); 
    162                 toolController.setZoom(1); 
     148                for (var i:String in m_windows) { 
     149                    m_windows[i].resetWindow(); 
     150                } 
    163151            } 
    164152             
     
    267255                PopUpManager.addPopUp(toolController, this); 
    268256                PopUpManager.addPopUp(formController, this); 
    269                 initCanvasWindow = new Rectangle(canvasController.x, canvasController.y, canvasController.width, canvasController.height); 
    270                 initPenDetailWindowPos = new Point(penController.x, penController.y); 
    271                 initLayerWindowPos = new Point(layerController.x, layerController.y); 
    272                 initToolController = new Point(toolController.x, toolController.y); 
    273                 initFormController = new Point(formController.x, formController.y); 
     257                m_windows = new Vector.<IController>(); 
     258                m_windows.push( 
     259                    canvasController, 
     260                    penController, 
     261                    layerController, 
     262                    toolController, 
     263                    formController 
     264                ); 
    274265                 
    275266                if (parameters['postUrl'] && parameters['cookie'] && parameters['magic'] && parameters['redirectUrl']) { 
     
    499490    <ui:CanvasController id="canvasController" x="146" y="223" width="379" height="410" layout="absolute" title="キャンバス" /> 
    500491    <ui:LayerController x="533" y="223" layout="absolute" title="レイヤー" id="layerController" height="312" /> 
    501     <mx:Label id="versionLabel" text="ver.2009090902" right="10" bottom="10" alpha="0.5"/> 
     492    <mx:Label id="versionLabel" text="{Painter.PAINTER_VERSION_STRING}" right="10" bottom="10" alpha="0.5"/> 
    502493</mx:Application> 
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/Canvas.as

    r3578 r3589  
    8686            var cv:Sprite = app.canvasView; 
    8787            try { 
     88                // 例えば非表示あるいはロック状態のあるレイヤーに対して描写を行うと例外が送出されるので、 
     89                // 必ず try/catch で囲む必要がある 
    8890                app.module.start(event.localX, event.localY); 
    8991                cv.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); 
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/CanvasController.as

    r3581 r3589  
    2020    import org.libspark.gunyarapaint.utils.ComponentResizer; 
    2121     
    22     public class CanvasController extends TitleWindow 
     22    public class CanvasController extends TitleWindow implements IController 
    2323    { 
    2424        public function CanvasController() 
     
    8383        } 
    8484         
     85        public function resetWindow():void 
     86        { 
     87            move(m_initRectangle.x, m_initRectangle.y); 
     88            width = m_initRectangle.width; 
     89            height = m_initRectangle.height; 
     90            rotate(0); 
     91            transform.matrix = new Matrix( 
     92                1, 0, 0, 1, m_initRectangle.x, m_initRectangle.y 
     93            ); 
     94        } 
     95         
    8596        public function get canvasScrollPosition():Point 
    8697        { 
     
    141152            m_contentContainer.addChild(m_hScrollBar); 
    142153            m_contentContainer.addChild(m_vScrollBar); 
     154            m_initRectangle = new Rectangle(x, y, width, height); 
    143155            ComponentResizer.addResize(this, new Point(100, 100)); 
    144156             
     
    246258        private var m_hScrollBar:HScrollBar; // 横スクロールバー 
    247259        private var m_vScrollBar:VScrollBar; // 縦スクロールバー 
    248         private var m_canvasX:Number, m_canvasY:Number; // キャンバスのスクロール位置 
     260        private var m_initRectangle:Rectangle; 
     261        private var m_canvasX:Number; 
     262        private var m_canvasY:Number; // キャンバスのスクロール位置 
    249263        private var m_canvasScale:Number; // キャンバスの倍率 
    250264        private var m_preDegree:int; // 前の回転角度 
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/DataController.mxml

    r3580 r3589  
    113113            } 
    114114             
     115            // FileReferenceの参照を確実に持つ必要があるため、クラス属性として定義している 
     116            // そうしないとダイアログを開いた後 Event.COMPLETEのイベントが呼ばれなくなる 
    115117            private var m_file:FileReference; 
    116118        ]]> 
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/FormController.mxml

    r3588 r3589  
    11<?xml version="1.0" encoding="utf-8"?> 
    2 <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="486" height="166"> 
     2<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
     3                width="486" height="166" creationComplete="onCreationComplete()" 
     4                implements="org.libspark.gunyarapaint.ui.v1.IController"> 
    35    <mx:Script> 
    46        <![CDATA[ 
     
    911             
    1012            private var baseImg:BitmapData; 
     13             
     14            public function resetWindow():void 
     15            { 
     16                move(m_initPosition.x, m_initPosition.y); 
     17            } 
     18             
     19            private function onCreationComplete():void 
     20            { 
     21                m_initPosition = new Point(x, y); 
     22            } 
    1123             
    1224            private function postOekakiButtonHandler(evt:Event):void 
     
    102114                enabled = true; 
    103115            } 
     116             
     117            private var m_initPosition:Point; 
    104118        ]]> 
    105119    </mx:Script> 
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/LayerController.mxml

    r3578 r3589  
    33                width="144" height="312" 
    44                creationComplete="onCreateComplete()" 
    5                 xmlns:ui="org.libspark.gunyarapaint.ui.v1.*
    6                
     5                implements="org.libspark.gunyarapaint.ui.v1.IController
     6                xmlns:ui="org.libspark.gunyarapaint.ui.v1.*"
    77    <mx:Script> 
    88        <![CDATA[ 
     
    1616            import org.libspark.gunyarapaint.framework.LayerBitmap; 
    1717            import org.libspark.gunyarapaint.framework.LayerBitmapCollection; 
     18            import org.libspark.gunyarapaint.framework.ui.IApplication; 
    1819            import org.libspark.gunyarapaint.utils.ComponentResizer; 
    19             import org.libspark.gunyarapaint.framework.ui.IApplication; 
    2020             
    2121            private static const  NAME:String = "レイヤーツール"; 
     
    3939            } 
    4040             
     41            public function resetWindow():void 
     42            { 
     43                move(m_initPosition.x, m_initPosition.y); 
     44            } 
     45             
    4146            private function onCreateComplete():void 
    4247            { 
     
    5863                layerDataGrid.addEventListener('describeChange', itemCheckChangeHandler); 
    5964                ComponentResizer.addResize(this, new Point(144, 230)); 
     65                m_initPosition = new Point(x, y); 
    6066            } 
    6167             
     
    8389            { 
    8490                try { 
     91                    // RemoveLayerErrorを捉える必要がある 
    8592                    IApplication(Application.application).module.removeLayer(); 
    8693                    update(); 
     
    93100            { 
    94101                try { 
     102                    // MergeLayersErrorを捉える必要がある 
    95103                    IApplication(Application.application).module.mergeLayers(); 
    96104                    update(); 
     
    130138                } 
    131139            } 
     140             
     141            private var m_initPosition:Point; 
    132142        ]]> 
    133143    </mx:Script> 
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/PenController.mxml

    r3578 r3589  
    11<?xml version="1.0" encoding="utf-8"?> 
    2 <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="128" height="450" xmlns:ns1="org.libspark.gunyarapaint.controls.*" initialize="onInitialize()"> 
     2<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="128" height="450" 
     3                xmlns:ns1="org.libspark.gunyarapaint.controls.*" 
     4                implements="org.libspark.gunyarapaint.ui.v1.IController" 
     5                initialize="onInitialize()" 
     6                creationComplete="onCreationComplete()"> 
    37    <mx:Script> 
    48        <![CDATA[ 
     
    5155            } 
    5256             
     57            // 全てのボタンを非選択状態にしてコンボボックス内にあるペンを有効にする 
     58            // 基本的にボタンにあるペンが優先度が高い 
    5359            public function cancel():void 
    5460            { 
     
    5965                var app:IApplication = IApplication(Application.application); 
    6066                app.setModule(String(penModeComboBox.value)); 
     67            } 
     68             
     69            public function resetWindow():void 
     70            { 
     71                move(m_initPosition.x, m_initPosition.y); 
    6172            } 
    6273             
     
    153164                var application:IApplication = IApplication(Application.application); 
    154165                blendModeComboBox.dataProvider = application.supportedBlendModes; 
    155                 //onClickPalette(1); 
    156                 // 初期値と設定値が一緒なのでイベントが飛んでこない、明示的に呼んであげる 
     166                // 初回時プレビュー画面は真っ白なのでここで描写を行う必要がある 
    157167                var pen:Pen = application.pen; 
    158168                drawPreview(pen.thickness, pen.color, pen.alpha); 
     
    160170                pen.addEventListener(PenEvent.COLOR, onChangeColor); 
    161171                pen.addEventListener(PenEvent.THICKNESS, onChangeThickness); 
     172            } 
     173             
     174            private function onCreationComplete():void 
     175            { 
     176                m_initPosition = new Point(x, y); 
    162177            } 
    163178             
     
    297312                IApplication(Application.application).module.blendMode = String(blendModeComboBox.value); 
    298313            } 
     314             
     315            private var m_initPosition:Point; 
    299316        ]]> 
    300317    </mx:Script> 
  • as3/gunyarapaint/branches/gunyarapaint/compat/src/org/libspark/gunyarapaint/ui/v1/ToolController.mxml

    r3588 r3589  
    11<?xml version="1.0" encoding="utf-8"?> 
    2 <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="300" height="205" initialize="onInitialize()" removedFromStage="onRemove()"> 
     2<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="300" height="205" 
     3                implements="org.libspark.gunyarapaint.ui.v1.IController" 
     4                initialize="onInitialize()" removedFromStage="onRemove()" 
     5                creationComplete="onCreationComplete()"> 
    36    <mx:Script> 
    47        <![CDATA[ 
     
    1720            { 
    1821                canvasRotate.value = value; 
    19                 canvasRotateValue.text = String(-canvasRotate.value); // 20090909-haku2 ins キャンバス回転角度をテキストボックスに反映 
     22                canvasRotateValue.text = String(-canvasRotate.value); 
    2023                Application.application.canvasController.rotate(canvasRotate.value); 
    2124            } 
     
    2932                canvasZoom.value = value; 
    3033                Application.application.canvasController.zoom(value);   
    31                 // 拡大率をテキストボックスに反映 
    3234                canvasZoomValue.text = String(Math.round(n) / 100); 
     35            } 
     36             
     37            public function resetWindow():void 
     38            { 
     39                move(m_initPosition.x, m_initPosition.y); 
     40                setRotate(0); 
     41                setZoom(1); 
    3342            } 
    3443             
    3544            private function onInitialize():void 
    3645            { 
    37                 var undo:UndoStack = Application.application.undoStack; 
     46                var undo:UndoStack = IApplication(Application.application).undoStack; 
    3847                undo.addEventListener(UndoEvent.UNDO, onChangeUndo); 
    3948                undo.addEventListener(UndoEvent.REDO, onChangeUndo); 
     
    4150            } 
    4251             
     52            private function onCreationComplete():void 
     53            { 
     54                m_initPosition = new Point(x, y); 
     55            } 
     56             
    4357            private function onRemove():void 
    4458            { 
    45                 var undo:UndoStack = Application.application.undoStack; 
     59                var undo:UndoStack = IApplication(Application.application).undoStack; 
    4660                undo.removeEventListener(UndoEvent.UNDO, onChangeUndo); 
    4761                undo.removeEventListener(UndoEvent.REDO, onChangeUndo); 
     
    131145                // w.password = gpCanvas.logger.password; 
    132146            } 
     147             
     148            private var m_initPosition:Point; 
    133149        ]]> 
    134150    </mx:Script>