void SelectBoxState::postRenderDecorator(EditorPostRender* render) { Editor* editor = render->getEditor(); render::Zoom zoom = editor->zoom(); gfx::Rect vp = View::getView(editor)->getViewportBounds(); vp.w += zoom.apply(1); vp.h += zoom.apply(1); vp = editor->screenToEditor(vp); // Paint a grid generated by the box if (hasFlag(GRID)) { gfx::Color gridColor = gfx::rgba(100, 200, 100); gfx::Rect boxBounds = getBoxBounds(); if (boxBounds.w > 0) for (int x=boxBounds.x+boxBounds.w*2; x<vp.x+vp.w; x+=boxBounds.w) render->drawLine(x, boxBounds.y, x, vp.y+vp.h-1, gridColor); if (boxBounds.h > 0) for (int y=boxBounds.y+boxBounds.h*2; y<vp.y+vp.h; y+=boxBounds.h) render->drawLine(boxBounds.x, y, vp.x+vp.w-1, y, gridColor); } // Draw the rulers enclosing the box if (hasFlag(RULERS)) { gfx::Color rulerColor = gfx::rgba(0, 0, 255); for (Rulers::iterator it = m_rulers.begin(), end = m_rulers.end(); it != end; ++it) { switch (it->getOrientation()) { case Ruler::Horizontal: render->drawLine(vp.x, it->getPosition(), vp.x+vp.w-1, it->getPosition(), rulerColor); break; case Ruler::Vertical: render->drawLine(it->getPosition(), vp.y, it->getPosition(), vp.y+vp.h-1, rulerColor); break; } } } if (hasFlag(QUICKBOX)) { render->drawRectXor(getBoxBounds()); } }
void SelectBoxState::postRenderDecorator(EditorPostRender* render) { Editor* editor = render->getEditor(); int zoom = editor->getZoom(); gfx::Rect vp = View::getView(editor)->getViewportBounds(); vp.w += 1<<zoom; vp.h += 1<<zoom; editor->screenToEditor(vp, &vp); // Paint a grid generated by the box if (hasPaintFlag(PaintGrid)) { int gridColor = makecol(100, 200, 100); gfx::Rect boxBounds = getBoxBounds(); if (boxBounds.w > 0) for (int x=boxBounds.x+boxBounds.w*2; x<vp.x+vp.w; x+=boxBounds.w) render->drawLine(x, boxBounds.y, x, vp.y+vp.h-1, gridColor); if (boxBounds.h > 0) for (int y=boxBounds.y+boxBounds.h*2; y<vp.y+vp.h; y+=boxBounds.h) render->drawLine(boxBounds.x, y, vp.x+vp.w-1, y, gridColor); } // Draw the rulers enclosing the box if (hasPaintFlag(PaintRulers)) { int rulerColor = makecol(0, 0, 255); for (Rulers::iterator it = m_rulers.begin(), end = m_rulers.end(); it != end; ++it) { switch (it->getOrientation()) { case Ruler::Horizontal: render->drawLine(vp.x, it->getPosition(), vp.x+vp.w-1, it->getPosition(), rulerColor); break; case Ruler::Vertical: render->drawLine(it->getPosition(), vp.y, it->getPosition(), vp.y+vp.h-1, rulerColor); break; } } } }