Home | History | Annotate | Download | only in SimpleiOSApp
      1 #include "SkApplication.h"
      2 #import "SkCanvas.h"
      3 #import "SkPaint.h"
      4 #import "SkWindow.h"
      5 #include "SkGraphics.h"
      6 #include "SkCGUtils.h"
      7 
      8 void dummy_main(int , char *[]) {
      9 }
     10 
     11 class SkSampleView : public SkView {
     12 public:
     13     SkSampleView() {
     14         this->setVisibleP(true);
     15         this->setClipToBounds(false);
     16     };
     17 protected:
     18     virtual void onDraw(SkCanvas* canvas) {
     19         canvas->drawColor(0xFFFFFFFF);
     20         SkPaint p;
     21         p.setTextSize(20);
     22         p.setAntiAlias(true);
     23         canvas->drawText("finished", 13, 50, 30, p);
     24         SkRect r = {50, 50, 80, 80};
     25         p.setColor(0xAA11EEAA);
     26         canvas->drawRect(r, p);
     27     }
     28 private:
     29     typedef SkView INHERITED; 
     30 };
     31 
     32 void application_init() {
     33     SkGraphics::Init();
     34     SkEvent::Init();
     35 }
     36 
     37 void application_term() {
     38     SkGraphics::Term();
     39     SkEvent::Term();
     40 }
     41 
     42 int saved_argc;
     43 char** saved_argv;
     44 
     45 IOS_launch_type set_cmd_line_args(int argc, char *argv[], const char* ) {
     46     saved_argc = argc;
     47     saved_argv = argv;
     48     return kTool_iOSLaunchType;
     49 }
     50 
     51 class FillLayout : public SkView::Layout {
     52 protected:
     53     virtual void onLayoutChildren(SkView* parent) {
     54         SkView* view = SkView::F2BIter(parent).next();
     55         view->setSize(parent->width(), parent->height());
     56     }
     57 };
     58 
     59 #import "SimpleApp.h"
     60 @implementation SimpleApp
     61 
     62 - (id)initWithDefaults {
     63     dummy_main(saved_argc, saved_argv);
     64     if (self = [super initWithDefaults]) {
     65         fWind = new SkOSWindow(self);
     66         fWind->setLayout(new FillLayout, false);
     67         fWind->attachChildToFront(new SkSampleView)->unref();
     68     }
     69     return self;
     70 }
     71 
     72 @end
     73