StatusLine::StatusLine() : fileLength(0), selectionLength(0), lengthPos(0), line(0), column(0), pos(0), lineAndColumnWidth(0), hasMessage(false) { RawPtr<TextStyle> guiTextStyle = GuiWidget::getGuiTextStyle(); labelSWidth = guiTextStyle->getTextWidth("S: "); labelPWidth = guiTextStyle->getTextWidth("P: "); labelLWidth = guiTextStyle->getTextWidth("L: "); labelCWidth = guiTextStyle->getTextWidth("C: "); spaceWidth = guiTextStyle->getTextWidth(" "); smallWidth = guiTextStyle->getTextWidth("888"); middleWidth = guiTextStyle->getTextWidth("888"); bigWidth = guiTextStyle->getTextWidth("888888"); }
int StatusLine::calcWidth(long value) { char buffer[100]; sprintf(buffer, "%ld", value); RawPtr<TextStyle> guiTextStyle = GuiWidget::getGuiTextStyle(); return guiTextStyle->getTextWidth(buffer); }
void StatusLine::drawFileLength() { if (!hasMessage) { GuiClipping::Holder clippingHolder(getGuiWidget()->getClipping(), GuiWidget::getRaisedBoxBorderWidth(), GuiWidget::getRaisedBoxBorderWidth(), getPosition().w - 2 * GuiWidget::getRaisedBoxBorderWidth(), getPosition().h - 2 * GuiWidget::getRaisedBoxBorderWidth()); char buffer[100]; sprintf(buffer, "%ld bytes", fileLength); RawPtr<TextStyle> guiTextStyle = GuiWidget::getGuiTextStyle(); getGuiWidget()->drawRaisedSurface(lengthPos, 2, guiTextStyle->getTextWidth(buffer, strlen(buffer)), GuiWidget::getGuiTextHeight()); getGuiWidget()->drawGuiTextUtf8String(lengthPos, 2, buffer); } }
void StatusLine::drawFileName() { String displayText; if (hasMessage) { displayText = message; } else { displayText = fileName; } GuiClipping::Holder clippingHolder(getGuiWidget()->getClipping(), GuiWidget::getRaisedBoxBorderWidth(), GuiWidget::getRaisedBoxBorderWidth(), getPosition().w - 2 * GuiWidget::getRaisedBoxBorderWidth(), getPosition().h - 2 * GuiWidget::getRaisedBoxBorderWidth()); getGuiWidget()->drawGuiTextUtf8String(4, 2, displayText); RawPtr<TextStyle> guiTextStyle = GuiWidget::getGuiTextStyle(); lengthPos = guiTextStyle->getTextWidth(displayText.toCString(), displayText.getLength()) + 3 * guiTextStyle->getSpaceWidth(); }