チェンジセット 1775

差分発生行の前後
無視リスト:
コミット日時:
2008/11/01 21:18:06 (2 ヶ月前)
コミッタ:
tasuku
ログメッセージ:

added circle tool

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/controls/PenDetailControlScript.as

    r1740 r1775  
    4242/*    {label: 'スポイト', data: GPPen.PEN_MODE_DROPPER }, */ 
    4343    {label: '直線', data: GPPen.PEN_MODE_LINE }, 
    44 /*    {label: '四角', data: GPPen.PEN_MODE_RECT }, 
    45     {label: '円', data: GPPen.PEN_MODE_ELLIPSE }, 
    46     {label: '角丸四角', data: GPPen.PEN_MODE_ROUND_RECT }, */ 
     44    {label: '円', data: GPPen.PEN_MODE_CIRCLE }, 
     45    /* 
     46    {label: '四角', data: GPPen.PEN_MODE_RECT }, 
     47    {label: '楕円', data: GPPen.PEN_MODE_ELLIPSE }, 
     48    {label: '角丸四角', data: GPPen.PEN_MODE_ROUND_RECT }, 
     49    */ 
    4750    {label: 'ペイント', data: GPPen.PEN_MODE_FLOOD_FILL } 
    4851  ]; 
     
    119122public function resetPenTool():void { 
    120123  if (dropperButton.selected) { 
    121     setTool(GPPen.PEN_MODE_DROPPER, null, true); 
     124    setModeDropper(true); 
    122125  } else if (handtoolButton.selected) { 
    123     setTool(GPPen.PEN_MODE_HANDTOOL, null, true); 
     126    setModeHandtool(true); 
    124127  } else if (dotButton.selected) { 
    125     setTool(GPPen.PEN_MODE_PIXEL, null, true); 
     128    setModePixel(true); 
    126129  } else { 
    127130    _logger.eventSetPenMode(uint(penModeComboBox.value)); 
     
    130133 
    131134// TODO: こいつらをスッキリまとめるべきでーす。 
    132 private function dropperButtonHandler(evt:Event):void { 
     135private function setModeDropper(selected:Boolean):void { 
    133136  handtoolButton.selected = false; 
    134137  eraserButton.selected = false; 
    135138  dotButton.selected = false; 
    136   setTool(GPPen.PEN_MODE_DROPPER, null, evt.target.selected); 
    137 
    138  
    139 private function handtoolButtonHandler(evt:Event):void { 
     139  setTool(GPPen.PEN_MODE_DROPPER, null, selected);   
     140
     141 
     142private function dropperButtonHandler(evt:Event):void { 
     143  setModeDropper(evt.target.selected); 
     144
     145 
     146private function setModeHandtool(selected:Boolean):void { 
    140147  dropperButton.selected = false; 
    141148  eraserButton.selected = false; 
    142149  dotButton.selected = false; 
    143   setTool(GPPen.PEN_MODE_HANDTOOL, null, evt.target.selected); 
    144 
    145  
    146 private function eraserButtonHandler(evt:Event):void { 
     150  setTool(GPPen.PEN_MODE_HANDTOOL, null, selected); 
     151
     152 
     153private function handtoolButtonHandler(evt:Event):void { 
     154  setModeHandtool(evt.target.selected); 
     155
     156 
     157private function setModeEraser(selected:Boolean):void { 
    147158  handtoolButton.selected = false; 
    148159  dropperButton.selected = false; 
    149160  dotButton.selected = false; 
    150   setTool(GPPen.PEN_MODE_ERASER, BlendMode.ERASE, evt.target.selected); 
    151 
    152  
    153 private function dotButtonHandler(evt:Event):void { 
     161  setTool(GPPen.PEN_MODE_ERASER, BlendMode.ERASE, selected); 
     162
     163 
     164private function eraserButtonHandler(evt:Event):void { 
     165  setModeEraser(evt.target.selected); 
     166
     167 
     168private function setModePixel(selected:Boolean):void { 
    154169  handtoolButton.selected = false; 
    155170  eraserButton.selected = false; 
    156171  dropperButton.selected = false; 
    157172  // TODO: pen太さ 
    158   setTool(GPPen.PEN_MODE_PIXEL, null, evt.target.selected);   
     173  setTool(GPPen.PEN_MODE_PIXEL, null, selected);   
     174
     175 
     176private function dotButtonHandler(evt:Event):void { 
     177  setModePixel(evt.target.selected); 
    159178} 
    160179 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/entities/GPLogger.as

    r1771 r1775  
    11211121      case GPPen.PEN_MODE_ELLIPSE: 
    11221122      case GPPen.PEN_MODE_ROUND_RECT: 
     1123      case GPPen.PEN_MODE_CIRCLE: 
    11231124        if (!_layerArray.isTargetLayerVisible) { 
    11241125          Alert.show('不可視の状態では描画できません!', '描画ツール'); 
     
    12011202          if (_drawing) { 
    12021203            _pen.previewLineTo(_fromPoint.x, _fromPoint.y, evt.localX, evt.localY); 
     1204          } 
     1205          break; 
     1206        case GPPen.PEN_MODE_RECT: 
     1207          if (_drawing) { 
     1208            _pen.previewRect(_fromPoint.x, _fromPoint.y, evt.localX, evt.localY); 
     1209          } 
     1210          break; 
     1211        case GPPen.PEN_MODE_ELLIPSE: 
     1212          if (_drawing) { 
     1213            _pen.previewEllipse(_fromPoint.x, _fromPoint.y, evt.localX, evt.localY); 
     1214          } 
     1215          break; 
     1216        case GPPen.PEN_MODE_ROUND_RECT: 
     1217          /* 
     1218          if (_drawing) { 
     1219            _pen.previewRoundRect(_fromPoint.x, _fromPoint.y, evt.localX, evt.localY); 
     1220          } 
     1221          */ 
     1222          break; 
     1223        case GPPen.PEN_MODE_CIRCLE: 
     1224          if (_drawing) { 
     1225            var dx:Number, dy:Number; 
     1226            dx = evt.localX - _fromPoint.x; 
     1227            dy = evt.localY - _fromPoint.y; 
     1228            _pen.previewDrawCircle(_fromPoint.x, _fromPoint.y, Math.sqrt(dx * dx + dy * dy)); 
    12031229          } 
    12041230          break; 
     
    12411267        } 
    12421268        break; 
     1269      case GPPen.PEN_MODE_RECT: 
     1270        if (_drawing) { 
     1271          invokeRemoveDrawLayer(); 
     1272          if (!comparePoint(_fromPoint.x, _fromPoint.y, evt.localX, evt.localY)) { 
     1273            // 始点と終点が違う場合にのみ… 
     1274          } 
     1275          _drawing = false; 
     1276        } 
     1277        break; 
     1278      case GPPen.PEN_MODE_ELLIPSE: 
     1279        if (_drawing) { 
     1280          invokeRemoveDrawLayer(); 
     1281          if (!comparePoint(_fromPoint.x, _fromPoint.y, evt.localX, evt.localY)) { 
     1282            // 始点と終点が違う場合にのみ… 
     1283          } 
     1284          _drawing = false; 
     1285        } 
     1286        break; 
     1287      case GPPen.PEN_MODE_ROUND_RECT: 
     1288        if (_drawing) { 
     1289          invokeRemoveDrawLayer(); 
     1290          if (!comparePoint(_fromPoint.x, _fromPoint.y, evt.localX, evt.localY)) { 
     1291            // 始点と終点が違う場合にのみ… 
     1292          } 
     1293          _drawing = false; 
     1294        } 
     1295        break; 
     1296      case GPPen.PEN_MODE_CIRCLE: 
     1297        if (_drawing) { 
     1298          invokeRemoveDrawLayer(); 
     1299          if (!comparePoint(_fromPoint.x, _fromPoint.y, evt.localX, evt.localY)) { 
     1300            var dx:Number, dy:Number; 
     1301            dx = evt.localX - _fromPoint.x; 
     1302            dy = evt.localY - _fromPoint.y; 
     1303            // 始点と終点が違う場合にのみ円を描く 
     1304            this.eventMoveTo(_fromPoint.x, _fromPoint.y); 
     1305            this.eventDrawCircle(Math.sqrt(dx * dx + dy * dy)); 
     1306            this.eventDrawShapeOnBitmap();           
     1307          } 
     1308          _drawing = false; 
     1309        } 
     1310        break; 
    12431311      case GPPen.PEN_MODE_DROPPER: 
    12441312        this.eventLineStyleColor(_layerArray.getColor(evt.localX, evt.localY)); 
     
    12741342        break; 
    12751343      case GPPen.PEN_MODE_LINE: 
     1344      case GPPen.PEN_MODE_RECT: 
     1345      case GPPen.PEN_MODE_ELLIPSE: 
     1346      case GPPen.PEN_MODE_ROUND_RECT: 
     1347      case GPPen.PEN_MODE_CIRCLE: 
    12761348        if (_drawing) { 
    12771349          _drawing = false; 
  • as3/gunyarapaint/trunk/gunyarapaint/src/org/libspark/gunyarapaint/entities/GPPen.as

    r1547 r1775  
    2121    public static const PEN_MODE_ERASER:uint = 9; 
    2222    public static const PEN_MODE_PIXEL:uint = 10; 
     23    public static const PEN_MODE_CIRCLE:uint = 11; 
    2324 
    2425    private var _mode:uint; 
     
    181182          _drawShape.graphics.lineTo(zz(toX), zz(toY)); 
    182183        } 
     184 
     185        public function previewRect(fromX:Number, fromY:Number, toX:Number, toY:Number):void { 
     186          clearDrawShape(); 
     187          setLineStyle(); 
     188          _drawShape.graphics.drawRect(fromX, fromY, Math.abs(zz(toX) - fromX), Math.abs(zz(toY) - fromY)); 
     189        } 
     190         
     191        public function previewEllipse(fromX:Number, fromY:Number, toX:Number, toY:Number):void { 
     192          clearDrawShape(); 
     193          setLineStyle(); 
     194          _drawShape.graphics.drawEllipse(fromX, fromY, Math.abs(zz(toX) - fromX), Math.abs(zz(toY) - fromY)); 
     195        } 
     196         
     197        /* 
     198        public function previewRoundRect(fromX:Number, fromY:Number, toX:Number, toY:Number):void { 
     199          clearDrawShape(); 
     200          setLineStyle(); 
     201          _drawShape.graphics.drawRoundRect(fromX, fromY, Math.abs(zz(toX) - fromX), Math.abs(zz(toY) - fromY)); 
     202        } 
     203        */ 
     204         
     205        public function previewDrawCircle(fromX:Number, fromY:Number, radius:Number):void { 
     206          clearDrawShape(); 
     207          setLineStyle(); 
     208          _drawShape.graphics.drawCircle(fromX, fromY, radius); 
     209        } 
    183210         
    184211        /*********************************************************************/