// drawTitle //--------------------------------------------------------------------------- // Purpose: Draws the title of the view and colors the move area background // depending on whether the view is active. //--------------------------------------------------------------------------- void View::drawTitle(Surface &viewArea) { assert(this != 0); iRect r(borderSize, borderSize, getSizeX() - borderSize, borderSize + moveAreaHeight - 1); Surface s; s.setTo(viewArea, r); s.fill(getActive() ? activeWindowTitleBodyColor : inactiveWindowTitleBodyColor); char strBuf[256]; sprintf(strBuf, "%s%s", title, subTitle); s.bltStringCenter(strBuf, getActive() ? activeWindowTitleTextColor : inactiveWindowTitleTextColor); if (getResize()) { { // Bottom-Left resize. iXY verticalPos(borderSize, getSizeY() - borderSize - moveAreaHeight + 1); iXY horizontalPos(borderSize + moveAreaHeight - 1, getSizeY() - borderSize); viewArea.drawLine(verticalPos, horizontalPos, Color::white); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray224); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray192); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x--; } // Top-Left resize. { iXY verticalPos(borderSize, borderSize + moveAreaHeight - 1); iXY horizontalPos(borderSize + moveAreaHeight - 1, borderSize); viewArea.drawLine(verticalPos, horizontalPos, Color::white); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray224); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray192); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x--; } // Top-Right resize. { iXY verticalPos(getSizeX() - borderSize, borderSize + moveAreaHeight - 1); iXY horizontalPos(getSizeX() - borderSize - moveAreaHeight, borderSize - 1); viewArea.drawLine(verticalPos, horizontalPos, Color::white); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray224); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray192); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y--; horizontalPos.x++; } // Bottom-Right resize. { iXY verticalPos(getSizeX() - borderSize, getSizeY() - borderSize - moveAreaHeight + 1); iXY horizontalPos(getSizeX() - borderSize - moveAreaHeight + 1, getSizeY() - borderSize); viewArea.drawLine(verticalPos, horizontalPos, Color::white); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray224); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray192); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; viewArea.drawLine(verticalPos, horizontalPos, Color::gray160); verticalPos.y++; horizontalPos.x++; } } } // end View::drawTitle
// Determine the distance from the center of cell at coordinate i, j to // a point at absolute coordinate x, y. double distance(size_t i, size_t j, double x, double y) { double x1 = horizontalPos(i); double y1 = verticalPos(j); return sqrt(pow(x1 - x, 2) + pow(y1 - y, 2)); }