| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright 2012 Google Inc. | 2  * Copyright 2012 Google Inc. | 
| 3  * | 3  * | 
| 4  * Use of this source code is governed by a BSD-style license that can be | 4  * Use of this source code is governed by a BSD-style license that can be | 
| 5  * found in the LICENSE file. | 5  * found in the LICENSE file. | 
| 6  */ | 6  */ | 
| 7 | 7 | 
| 8 #include "sk_tool_utils.h" | 8 #include "sk_tool_utils.h" | 
| 9 #include "SampleCode.h" | 9 #include "SampleCode.h" | 
| 10 #include "SkView.h" | 10 #include "SkView.h" | 
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 189                 case '-': | 189                 case '-': | 
| 190                     fTextSize = SkTMax(1.0f, fTextSize - 1); | 190                     fTextSize = SkTMax(1.0f, fTextSize - 1); | 
| 191                     break; | 191                     break; | 
| 192                 case '+': | 192                 case '+': | 
| 193                 case '=': | 193                 case '=': | 
| 194                     fTextSize += 1; | 194                     fTextSize += 1; | 
| 195                     break; | 195                     break; | 
| 196                 default: | 196                 default: | 
| 197                     fText.appendUnichar(uni); | 197                     fText.appendUnichar(uni); | 
| 198             } | 198             } | 
| 199             this->inval(NULL); | 199             this->inval(nullptr); | 
| 200             return true; | 200             return true; | 
| 201         } | 201         } | 
| 202         return this->INHERITED::onQuery(evt); | 202         return this->INHERITED::onQuery(evt); | 
| 203     } | 203     } | 
| 204 | 204 | 
| 205     void onSizeChange() override { | 205     void onSizeChange() override { | 
| 206         fWeightControl.setXYWH(this->width() - 150, 30, 30, 400); | 206         fWeightControl.setXYWH(this->width() - 150, 30, 30, 400); | 
| 207         fErrorControl.setXYWH(this->width() - 100, 30, 30, 400); | 207         fErrorControl.setXYWH(this->width() - 100, 30, 30, 400); | 
| 208         fWidthControl.setXYWH(this->width() -  50, 30, 30, 400); | 208         fWidthControl.setXYWH(this->width() -  50, 30, 30, 400); | 
| 209         int buttonOffset = 450; | 209         int buttonOffset = 450; | 
| 210         fCubicButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOff
     set), 30, 30); | 210         fCubicButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOff
     set), 30, 30); | 
| 211         buttonOffset += 50; | 211         buttonOffset += 50; | 
| 212         fConicButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOff
     set), 30, 30); | 212         fConicButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOff
     set), 30, 30); | 
| 213         buttonOffset += 50; | 213         buttonOffset += 50; | 
| 214         fQuadButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOffs
     et), 30, 30); | 214         fQuadButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOffs
     et), 30, 30); | 
| 215         buttonOffset += 50; | 215         buttonOffset += 50; | 
| 216         fRRectButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOff
     set), 30, 30); | 216         fRRectButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOff
     set), 30, 30); | 
| 217         buttonOffset += 50; | 217         buttonOffset += 50; | 
| 218         fCircleButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOf
     fset), 30, 30); | 218         fCircleButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOf
     fset), 30, 30); | 
| 219         buttonOffset += 50; | 219         buttonOffset += 50; | 
| 220         fTextButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOffs
     et), 30, 30); | 220         fTextButton.fBounds.setXYWH(this->width() - 50, SkIntToScalar(buttonOffs
     et), 30, 30); | 
| 221         this->INHERITED::onSizeChange(); | 221         this->INHERITED::onSizeChange(); | 
| 222     } | 222     } | 
| 223 | 223 | 
| 224      void copyMinToMax() { | 224      void copyMinToMax() { | 
| 225         erase(fMaxSurface); | 225         erase(fMaxSurface); | 
| 226         SkCanvas* canvas = fMaxSurface->getCanvas(); | 226         SkCanvas* canvas = fMaxSurface->getCanvas(); | 
| 227         canvas->save(); | 227         canvas->save(); | 
| 228         canvas->concat(fMatrix); | 228         canvas->concat(fMatrix); | 
| 229         fMinSurface->draw(canvas, 0, 0, NULL); | 229         fMinSurface->draw(canvas, 0, 0, nullptr); | 
| 230         canvas->restore(); | 230         canvas->restore(); | 
| 231 | 231 | 
| 232         SkPaint paint; | 232         SkPaint paint; | 
| 233         paint.setXfermodeMode(SkXfermode::kClear_Mode); | 233         paint.setXfermodeMode(SkXfermode::kClear_Mode); | 
| 234         for (int iy = 1; iy < fH; ++iy) { | 234         for (int iy = 1; iy < fH; ++iy) { | 
| 235             SkScalar y = SkIntToScalar(iy * fZoom); | 235             SkScalar y = SkIntToScalar(iy * fZoom); | 
| 236             canvas->drawLine(0, y - SK_ScalarHalf, 999, y - SK_ScalarHalf, paint
     ); | 236             canvas->drawLine(0, y - SK_ScalarHalf, 999, y - SK_ScalarHalf, paint
     ); | 
| 237         } | 237         } | 
| 238         for (int ix = 1; ix < fW; ++ix) { | 238         for (int ix = 1; ix < fW; ++ix) { | 
| 239             SkScalar x = SkIntToScalar(ix * fZoom); | 239             SkScalar x = SkIntToScalar(ix * fZoom); | 
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 313                 SkScalarRoundToInt(950.0f / scale)); | 313                 SkScalarRoundToInt(950.0f / scale)); | 
| 314         erase(fMinSurface); | 314         erase(fMinSurface); | 
| 315         SkPaint paint; | 315         SkPaint paint; | 
| 316         paint.setColor(0x1f1f0f0f); | 316         paint.setColor(0x1f1f0f0f); | 
| 317         paint.setStyle(SkPaint::kStroke_Style); | 317         paint.setStyle(SkPaint::kStroke_Style); | 
| 318         paint.setStrokeWidth(width * scale * scale); | 318         paint.setStrokeWidth(width * scale * scale); | 
| 319         paint.setColor(0x3f0f1f3f); | 319         paint.setColor(0x3f0f1f3f); | 
| 320         if (drawText) { | 320         if (drawText) { | 
| 321             fMinSurface->getCanvas()->drawPath(path, paint); | 321             fMinSurface->getCanvas()->drawPath(path, paint); | 
| 322             this->copyMinToMax(); | 322             this->copyMinToMax(); | 
| 323             fMaxSurface->draw(canvas, 0, 0, NULL); | 323             fMaxSurface->draw(canvas, 0, 0, nullptr); | 
| 324         } | 324         } | 
| 325         paint.setAntiAlias(true); | 325         paint.setAntiAlias(true); | 
| 326         paint.setStyle(SkPaint::kStroke_Style); | 326         paint.setStyle(SkPaint::kStroke_Style); | 
| 327         paint.setStrokeWidth(1); | 327         paint.setStrokeWidth(1); | 
| 328 | 328 | 
| 329         paint.setColor(SKELETON_COLOR); | 329         paint.setColor(SKELETON_COLOR); | 
| 330         SkPath scaled; | 330         SkPath scaled; | 
| 331         SkMatrix matrix; | 331         SkMatrix matrix; | 
| 332         matrix.reset(); | 332         matrix.reset(); | 
| 333         matrix.setScale(950 / scale, 950 / scale); | 333         matrix.setScale(950 / scale, 950 / scale); | 
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 534                 "error"); | 534                 "error"); | 
| 535 #endif | 535 #endif | 
| 536         draw_control(canvas, fWidthControl, fWidth * fWidthScale, kWidthMin * fW
     idthScale, | 536         draw_control(canvas, fWidthControl, fWidth * fWidthScale, kWidthMin * fW
     idthScale, | 
| 537                 kWidthMax * fWidthScale, "width"); | 537                 kWidthMax * fWidthScale, "width"); | 
| 538         draw_button(canvas, fQuadButton); | 538         draw_button(canvas, fQuadButton); | 
| 539         draw_button(canvas, fCubicButton); | 539         draw_button(canvas, fCubicButton); | 
| 540         draw_button(canvas, fConicButton); | 540         draw_button(canvas, fConicButton); | 
| 541         draw_button(canvas, fRRectButton); | 541         draw_button(canvas, fRRectButton); | 
| 542         draw_button(canvas, fCircleButton); | 542         draw_button(canvas, fCircleButton); | 
| 543         draw_button(canvas, fTextButton); | 543         draw_button(canvas, fTextButton); | 
| 544         this->inval(NULL); | 544         this->inval(nullptr); | 
| 545     } | 545     } | 
| 546 | 546 | 
| 547     class MyClick : public Click { | 547     class MyClick : public Click { | 
| 548     public: | 548     public: | 
| 549         int fIndex; | 549         int fIndex; | 
| 550         MyClick(SkView* target, int index) : Click(target), fIndex(index) {} | 550         MyClick(SkView* target, int index) : Click(target), fIndex(index) {} | 
| 551     }; | 551     }; | 
| 552 | 552 | 
| 553     virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y, | 553     virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y, | 
| 554                                               unsigned modi) override { | 554                                               unsigned modi) override { | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 601     static SkScalar MapScreenYtoValue(int y, const SkRect& control, SkScalar min
     , | 601     static SkScalar MapScreenYtoValue(int y, const SkRect& control, SkScalar min
     , | 
| 602             SkScalar max) { | 602             SkScalar max) { | 
| 603         return (SkIntToScalar(y) - control.fTop) / control.height() * (max - min
     ) + min; | 603         return (SkIntToScalar(y) - control.fTop) / control.height() * (max - min
     ) + min; | 
| 604     } | 604     } | 
| 605 | 605 | 
| 606     bool onClick(Click* click) override { | 606     bool onClick(Click* click) override { | 
| 607         int index = ((MyClick*)click)->fIndex; | 607         int index = ((MyClick*)click)->fIndex; | 
| 608         if (index < (int) SK_ARRAY_COUNT(fPts)) { | 608         if (index < (int) SK_ARRAY_COUNT(fPts)) { | 
| 609             fPts[index].offset(SkIntToScalar(click->fICurr.fX - click->fIPrev.fX
     ), | 609             fPts[index].offset(SkIntToScalar(click->fICurr.fX - click->fIPrev.fX
     ), | 
| 610                                SkIntToScalar(click->fICurr.fY - click->fIPrev.fY
     )); | 610                                SkIntToScalar(click->fICurr.fY - click->fIPrev.fY
     )); | 
| 611             this->inval(NULL); | 611             this->inval(nullptr); | 
| 612         } else if (index == (int) SK_ARRAY_COUNT(fPts) + 1) { | 612         } else if (index == (int) SK_ARRAY_COUNT(fPts) + 1) { | 
| 613             fWeight = MapScreenYtoValue(click->fICurr.fY, fWeightControl, 0, 5); | 613             fWeight = MapScreenYtoValue(click->fICurr.fY, fWeightControl, 0, 5); | 
| 614         } | 614         } | 
| 615 #ifdef SK_DEBUG | 615 #ifdef SK_DEBUG | 
| 616         else if (index == (int) SK_ARRAY_COUNT(fPts) + 2) { | 616         else if (index == (int) SK_ARRAY_COUNT(fPts) + 2) { | 
| 617             gDebugStrokerError = SkTMax(FLT_EPSILON, MapScreenYtoValue(click->fI
     Curr.fY, | 617             gDebugStrokerError = SkTMax(FLT_EPSILON, MapScreenYtoValue(click->fI
     Curr.fY, | 
| 618                     fErrorControl, kStrokerErrorMin, kStrokerErrorMax)); | 618                     fErrorControl, kStrokerErrorMin, kStrokerErrorMax)); | 
| 619             gDebugStrokerErrorSet = true; | 619             gDebugStrokerErrorSet = true; | 
| 620         } | 620         } | 
| 621 #endif | 621 #endif | 
| 622         else if (index == (int) SK_ARRAY_COUNT(fPts) + 3) { | 622         else if (index == (int) SK_ARRAY_COUNT(fPts) + 3) { | 
| 623             fWidth = SkTMax(FLT_EPSILON, MapScreenYtoValue(click->fICurr.fY, fWi
     dthControl, | 623             fWidth = SkTMax(FLT_EPSILON, MapScreenYtoValue(click->fICurr.fY, fWi
     dthControl, | 
| 624                     kWidthMin, kWidthMax)); | 624                     kWidthMin, kWidthMax)); | 
| 625             fAnimate = fWidth <= kWidthMin; | 625             fAnimate = fWidth <= kWidthMin; | 
| 626         } | 626         } | 
| 627         return true; | 627         return true; | 
| 628     } | 628     } | 
| 629 | 629 | 
| 630 private: | 630 private: | 
| 631     typedef SkView INHERITED; | 631     typedef SkView INHERITED; | 
| 632 }; | 632 }; | 
| 633 | 633 | 
| 634 /////////////////////////////////////////////////////////////////////////////// | 634 /////////////////////////////////////////////////////////////////////////////// | 
| 635 | 635 | 
| 636 static SkView* F2() { return new QuadStrokerView; } | 636 static SkView* F2() { return new QuadStrokerView; } | 
| 637 static SkViewRegister gR2(F2); | 637 static SkViewRegister gR2(F2); | 
| OLD | NEW | 
|---|