diff options
Diffstat (limited to 'experimental/Debugger/DebuggerStateView.cpp')
-rw-r--r-- | experimental/Debugger/DebuggerStateView.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/experimental/Debugger/DebuggerStateView.cpp b/experimental/Debugger/DebuggerStateView.cpp new file mode 100644 index 0000000000..2953e8f921 --- /dev/null +++ b/experimental/Debugger/DebuggerStateView.cpp @@ -0,0 +1,52 @@ + +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#include "DebuggerViews.h" +#include "SkRect.h" + +DebuggerStateView::DebuggerStateView() { + fBGColor = 0xFF999999; + fPaint.setColor(fBGColor); + fResizing = false; +} + +bool DebuggerStateView::onEvent(const SkEvent& evt) { + if (evt.isType(SKDEBUGGER_STATETYPE)) { + fMatrix = evt.findString(SKDEBUGGER_MATRIX); + fClip = evt.findString(SKDEBUGGER_CLIP); + + SkPaint* ptr; + if (evt.getMetaData().findPtr(SKDEBUGGER_PAINT, (void**)&ptr)) { + fPaint = *ptr; + fPaintInfo = evt.findString(SKDEBUGGER_PAINTINFO); + } + this->inval(NULL); + return true; + } + return this->INHERITED::onEvent(evt); +} + +void DebuggerStateView::onDraw(SkCanvas* canvas) { + canvas->drawColor(fBGColor); + + //Display Current Paint + SkRect r = {10, 20, 40, 50}; + canvas->drawRect(r, fPaint); + //Display Information + SkPaint p; + p.setTextSize(SKDEBUGGER_TEXTSIZE); + p.setAntiAlias(true); + int x = 50; + canvas->drawText(fPaintInfo.c_str(), fPaintInfo.size(), x, 30, p); + canvas->drawText(fMatrix.c_str(), fMatrix.size(), x, 60, p); + canvas->drawText(fClip.c_str(), fClip.size(), x, 90, p); + + p.setColor(SKDEBUGGER_RESIZEBARCOLOR); + r = SkRect::MakeXYWH(0, 0, this->width(), SKDEBUGGER_RESIZEBARSIZE); + canvas->drawRect(r, p); + this->INHERITED::onDraw(canvas); +}
\ No newline at end of file |