aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/Debugger/DebuggerStateView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/Debugger/DebuggerStateView.cpp')
-rw-r--r--experimental/Debugger/DebuggerStateView.cpp52
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