void AppInfoPanel::createGui() { const wxBitmap appIconImage = IO::loadImageResource("AppIcon.png"); wxStaticBitmap* appIcon = new wxStaticBitmap(this, wxID_ANY, appIconImage); wxStaticText* appName = new wxStaticText(this, wxID_ANY, "TrenchBroom"); appName->SetFont(appName->GetFont().Larger().Larger().Larger().Larger().Bold()); wxStaticLine* appLine = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); wxStaticText* appClaim = new wxStaticText(this, wxID_ANY, "Level Editor"); wxString versionStr("Version "); versionStr << getBuildVersion() << " " << getBuildChannel(); wxString buildStr("Build "); buildStr << getBuildId() << " " << getBuildType(); wxStaticText* version = new wxStaticText(this, wxID_ANY, versionStr); wxStaticText* build = new wxStaticText(this, wxID_ANY, buildStr); #if !defined(_WIN32) version->SetFont(version->GetFont().Smaller()); build->SetFont(build->GetFont().Smaller()); #endif version->SetForegroundColour(wxColor(128, 128, 128)); build->SetForegroundColour(wxColor(128, 128, 128)); SetBackgroundColour(*wxWHITE); wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); sizer->Add(appIcon, 0, wxALIGN_CENTER_HORIZONTAL); sizer->Add(appName, 0, wxALIGN_CENTER_HORIZONTAL); sizer->Add(appLine, 0, wxEXPAND); sizer->Add(appClaim, 0, wxALIGN_CENTER_HORIZONTAL); sizer->Add(version, 0, wxALIGN_CENTER_HORIZONTAL); sizer->Add(build, 0, wxALIGN_CENTER_HORIZONTAL); sizer->AddStretchSpacer(); SetSizerAndFit(sizer); }
void UnitClass::drawUnitPosition() { const Position &pos = getPosition(); const BWAPI::UnitType &type = getType(); Player player = getPlayer(); const int barHeight = 4; if((!isCompleted() || isMorphing()) && accessibility() != AccessType::Prediction) { double progress = getCompletedTime() - BWAPI::Broodwar->getFrameCount(); if(isMorphing()) progress /= getBuildType().buildTime(); else progress /= type.buildTime(); progress = 1.0 - progress; BWAPI::Color barColour = isMorphing() ? BWAPI::Colors::Red : BWAPI::Colors::Purple; Position bottomLeft(pos.x() - type.dimensionLeft(), pos.y() + type.dimensionDown() + barHeight - 1); DrawingHelper::Instance().drawProgressBar(bottomLeft, type.dimensionLeft()+type.dimensionRight(), barHeight, progress, barColour, player->getColor()); } if(type.maxShields() > 0) { double progress = getShield(); progress /= type.maxShields(); Position bottomLeft(pos.x() - type.dimensionLeft(), pos.y() - type.dimensionUp() - barHeight + 2); DrawingHelper::Instance().drawProgressBar(bottomLeft, type.dimensionLeft()+type.dimensionRight(), barHeight, progress, BWAPI::Colors::Blue, player->getColor()); } if(type.maxHitPoints() > 0) { double progress = getHealth(); progress /= type.maxHitPoints(); Position bottomLeft(pos.x() - type.dimensionLeft(), pos.y() - type.dimensionUp() + 1); DrawingHelper::Instance().drawProgressBar(bottomLeft, type.dimensionLeft()+type.dimensionRight(), barHeight, progress, BWAPI::Colors::Green, player->getColor()); } BWAPI::Broodwar->drawBox(BWAPI::CoordinateType::Map, pos.x() - type.dimensionLeft(), pos.y() - type.dimensionUp(), pos.x() + type.dimensionRight(), pos.y() + type.dimensionDown(), player->getColor()); BWAPI::Broodwar->drawTextMap(pos.x() + type.dimensionRight(), pos.y(), "%s", player->getName().c_str()); AccessType access = accessibility(); BWAPI::Broodwar->drawTextMap(pos.x() + type.dimensionRight(), pos.y()+10, "%s", AccessType::getName(access.underlying()).c_str()); int existTime = getExistTime() - BWAPI::Broodwar->getFrameCount(); int completeTime = getCompletedTime() - BWAPI::Broodwar->getFrameCount() - existTime; BWAPI::Broodwar->drawTextMap(pos.x() + type.dimensionRight(), pos.y()+20, "%d : %d", existTime, completeTime); if(isMorphing()) BWAPI::Broodwar->drawTextMap(pos.x() + type.dimensionRight(), pos.y()+30, "Morphing"); else if(isCompleted()) BWAPI::Broodwar->drawTextMap(pos.x() + type.dimensionRight(), pos.y()+30, "Completed"); Position target = getTargetPosition(); BWAPI::Broodwar->drawLine(BWAPI::CoordinateType::Map, pos.x(), pos.y(), target.x(), target.y(), player->getColor()); }