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