本文整理汇总了C++中StaticString::AppendFormat方法的典型用法代码示例。如果您正苦于以下问题:C++ StaticString::AppendFormat方法的具体用法?C++ StaticString::AppendFormat怎么用?C++ StaticString::AppendFormat使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StaticString
的用法示例。
在下文中一共展示了StaticString::AppendFormat方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: assert
void
PageListWidget::OnPaintItem(Canvas &canvas, const PixelRect rc, unsigned idx)
{
const InfoBoxSettings &info_box_settings =
CommonInterface::GetUISettings().info_boxes;
assert(idx < PageSettings::MAX_PAGES);
const auto &value = settings.pages[idx];
StaticString<64> buffer;
switch (value.main) {
case PageLayout::Main::MAP:
buffer = _("Map");
break;
case PageLayout::Main::FLARM_RADAR:
buffer = _("FLARM radar");
break;
case PageLayout::Main::THERMAL_ASSISTANT:
buffer = _("Thermal assistant");
break;
case PageLayout::Main::HORIZON:
buffer = _("Horizon");
break;
case PageLayout::Main::MAX:
gcc_unreachable();
}
if (value.infobox_config.enabled) {
buffer.AppendFormat(_T(", %s"), _("InfoBoxes"));
if (!value.infobox_config.auto_switch &&
value.infobox_config.panel < InfoBoxSettings::MAX_PANELS)
buffer.AppendFormat(_T(" (%s)"),
gettext(info_box_settings.panels[value.infobox_config.panel].name));
else
buffer.AppendFormat(_T(" (%s)"), _("Auto"));
}
switch (value.bottom) {
case PageLayout::Bottom::NOTHING:
case PageLayout::Bottom::CUSTOM:
break;
case PageLayout::Bottom::CROSS_SECTION:
buffer.AppendFormat(_T(", %s"), _("Cross section"));
break;
case PageLayout::Bottom::MAX:
gcc_unreachable();
}
canvas.DrawText(rc.left + Layout::GetTextPadding(),
rc.top + Layout::GetTextPadding(),
buffer);
}
示例2: switch
static void
UpdateCaption(const TCHAR *waypoint_name, int8_t file_num)
{
StaticString<256> buffer;
buffer.Format(_T("%s: %s"), _("Waypoint"), waypoint_name);
if (file_num > 0) {
const TCHAR *key;
switch (file_num) {
case 1:
key = szProfileWaypointFile;
break;
case 2:
key = szProfileAdditionalWaypointFile;
break;
case 3:
key = szProfileWatchedWaypointFile;
break;
}
const TCHAR *filename = Profile::GetPathBase(key);
if (filename != NULL)
buffer.AppendFormat(_T(" (%s)"), filename);
}
wf->SetCaption(buffer);
}
示例3: switch
static void
UpdateCaption(WndForm *form, const Waypoint *waypoint)
{
StaticString<256> buffer;
buffer.Format(_T("%s: %s"), _("Waypoint"), waypoint->name.c_str());
const char *key = nullptr;
switch (waypoint->file_num) {
case 1:
key = ProfileKeys::WaypointFile;
break;
case 2:
key = ProfileKeys::AdditionalWaypointFile;
break;
case 3:
key = ProfileKeys::WatchedWaypointFile;
break;
}
if (key != nullptr) {
const TCHAR *filename = Profile::GetPathBase(key);
if (filename != nullptr)
buffer.AppendFormat(_T(" (%s)"), filename);
}
form->SetCaption(buffer);
}
示例4: pt
void
MapItemListRenderer::Draw(Canvas &canvas, const PixelRect rc,
const MarkerMapItem &item,
const DialogLook &dialog_look,
const MarkerLook &look)
{
const PixelScalar line_height = rc.bottom - rc.top;
const Marker &marker = item.marker;
const RasterPoint pt(rc.left + line_height / 2,
rc.top + line_height / 2);
look.icon.Draw(canvas, pt);
const Font &name_font = *dialog_look.list.font_bold;
const Font &small_font = *dialog_look.small_font;
PixelScalar left = rc.left + line_height + Layout::FastScale(2);
StaticString<256> buffer;
buffer.Format(_T("%s #%d"), _("Marker"), item.id + 1);
canvas.Select(name_font);
canvas.DrawClippedText(left, rc.top + Layout::FastScale(2), rc, buffer);
TCHAR time_buffer[32], timespan_buffer[32];
FormatSignedTimeHHMM(time_buffer, TimeLocal(marker.time.GetSecondOfDay()));
FormatTimespanSmart(timespan_buffer, BrokenDateTime::NowUTC() - marker.time);
buffer.Format(_("dropped %s ago"), timespan_buffer);
buffer.AppendFormat(_T(" (%s)"), time_buffer);
canvas.Select(small_font);
canvas.DrawClippedText(left,
rc.top + name_font.GetHeight() + Layout::FastScale(4),
rc, buffer);
}
示例5: tstring
const tstring
AirspaceAltitude::GetAsTextUnits(const bool concise) const
{
StaticString<64> buffer;
switch (type) {
case AGL:
if (!positive(altitude_above_terrain))
buffer = _T("GND");
else
buffer.Format(_T("%d %s AGL"),
iround(Units::ToUserAltitude(altitude_above_terrain)),
Units::GetAltitudeName());
break;
case FL:
buffer.Format(_T("FL%d"), (int)flight_level);
break;
case MSL:
buffer.Format(_T("%d %s"), iround(Units::ToUserAltitude(altitude)),
Units::GetAltitudeName());
break;
case UNDEFINED:
default:
buffer.clear();
break;
}
if (!concise && type != MSL && positive(altitude))
buffer.AppendFormat(_T(" %d %s"), iround(Units::ToUserAltitude(altitude)),
Units::GetAltitudeName());
return tstring(buffer);
}
示例6: PixelScalar
void
MapItemListRenderer::Draw(Canvas &canvas, const PixelRect rc,
const ThermalMapItem &item,
const DialogLook &dialog_look,
const MapLook &look)
{
const PixelScalar line_height = rc.bottom - rc.top;
const ThermalSource &thermal = item.thermal;
RasterPoint pt = { PixelScalar(rc.left + line_height / 2),
PixelScalar(rc.top + line_height / 2) };
look.thermal_source_icon.Draw(canvas, pt);
const Font &name_font = *dialog_look.list.font;
const Font &small_font = *dialog_look.small_font;
canvas.SetTextColor(COLOR_BLACK);
PixelScalar left = rc.left + line_height + Layout::FastScale(2);
canvas.Select(name_font);
canvas.text_clipped(left, rc.top + Layout::FastScale(2), rc, _("Thermal"));
StaticString<256> buffer;
TCHAR lift_buffer[32], time_buffer[32], timespan_buffer[32];
FormatUserVerticalSpeed(thermal.lift_rate, lift_buffer, 32);
FormatSignedTimeHHMM(time_buffer, TimeLocal((int)thermal.time));
int timespan = BrokenDateTime::NowUTC().GetSecondOfDay() - (int)thermal.time;
if (timespan < 0)
timespan += 24 * 60 * 60;
FormatTimespanSmart(timespan_buffer, timespan);
buffer.Format(_T("%s: %s"), _("Avg. lift"), lift_buffer);
buffer.append(_T(" - "));
buffer.AppendFormat(_("left %s ago"), timespan_buffer);
buffer.AppendFormat(_T(" (%s)"), time_buffer);
canvas.Select(small_font);
canvas.text_clipped(left,
rc.top + name_font.GetHeight() + Layout::FastScale(4),
rc, buffer);
}
示例7: switch
static void
UpdateCaption(WndForm *form, const Waypoint *waypoint)
{
StaticString<256> buffer;
buffer.Format(_T("%s: %s"), _("Waypoint"), waypoint->name.c_str());
const char *key = nullptr;
const TCHAR *name = nullptr;
switch (waypoint->origin) {
case WaypointOrigin::NONE:
break;
case WaypointOrigin::USER:
name = _T("user.cup");
break;
case WaypointOrigin::PRIMARY:
key = ProfileKeys::WaypointFile;
break;
case WaypointOrigin::ADDITIONAL:
key = ProfileKeys::AdditionalWaypointFile;
break;
case WaypointOrigin::WATCHED:
key = ProfileKeys::WatchedWaypointFile;
break;
case WaypointOrigin::MAP:
key = ProfileKeys::MapFile;
break;
}
if (key != nullptr) {
const auto filename = Profile::map.GetPathBase(key);
if (!filename.IsNull())
buffer.AppendFormat(_T(" (%s)"), filename.c_str());
} else if (name != nullptr)
buffer.AppendFormat(_T(" (%s)"), name);
form->SetCaption(buffer);
}
示例8: wir
void
WaypointListRenderer::Draw(Canvas &canvas, const PixelRect rc,
const Waypoint &waypoint, fixed distance,
fixed arrival_altitude,
const DialogLook &dialog_look,
const WaypointLook &look,
const WaypointRendererSettings &settings)
{
const PixelScalar line_height = rc.bottom - rc.top;
const Font &name_font = *dialog_look.list.font;
const Font &small_font = *dialog_look.small_font;
// Y-Coordinate of the second row
PixelScalar top2 = rc.top + name_font.GetHeight() + Layout::FastScale(4);
// Use small font for details
canvas.Select(small_font);
// Draw distance and arrival altitude
StaticString<256> buffer;
TCHAR dist[20], alt[20], radio[20];
FormatUserDistanceSmart(distance, dist, true);
FormatRelativeUserAltitude(arrival_altitude, alt, true);
buffer.Format(_T("%s: %s - %s: %s"), _("Distance"), dist,
_("Arrival Alt"), alt);
if (waypoint.radio_frequency.IsDefined()) {
waypoint.radio_frequency.Format(radio, ARRAY_SIZE(radio));
buffer.AppendFormat(_T(" - %s MHz"), radio);
}
UPixelScalar left = rc.left + line_height + Layout::FastScale(2);
canvas.text_clipped(left, top2, rc, buffer);
// Draw waypoint name
canvas.Select(name_font);
canvas.text_clipped(left, rc.top + Layout::FastScale(2), rc,
waypoint.name.c_str());
// Draw icon
RasterPoint pt = { PixelScalar(rc.left + line_height / 2),
PixelScalar(rc.top + line_height / 2) };
WaypointIconRenderer::Reachability reachable =
positive(arrival_altitude) ?
WaypointIconRenderer::ReachableTerrain : WaypointIconRenderer::Unreachable;
WaypointIconRenderer wir(settings, look, canvas);
wir.Draw(waypoint, pt, reachable);
}
示例9: GeoPoint
static void
AddSpiralWaypoints(Waypoints &waypoints,
const GeoPoint ¢er = GeoPoint(Angle::Degrees(51.4),
Angle::Degrees(7.85)),
Angle angle_start = Angle::Degrees(0),
Angle angle_step = Angle::Degrees(15),
fixed distance_start = fixed(0),
fixed distance_step = fixed(1000),
fixed distance_max = fixed(150000))
{
assert(positive(distance_step));
for (unsigned i = 0;; ++i) {
GeoVector vector;
vector.distance = distance_start + distance_step * i;
if (vector.distance > distance_max)
break;
vector.bearing = angle_start + angle_step * i;
Waypoint waypoint;
waypoint.location = vector.EndPoint(center);
waypoint.original_id = i;
waypoint.elevation = fixed(i * 10 - 500);
StaticString<256> buffer;
if (i % 7 == 0) {
buffer = _T("Airfield");
waypoint.type = Waypoint::Type::AIRFIELD;
} else if (i % 3 == 0) {
buffer = _T("Field");
waypoint.type = Waypoint::Type::OUTLANDING;
} else
buffer = _T("Waypoint");
buffer.AppendFormat(_T(" #%d"), i + 1);
waypoint.name = buffer;
waypoints.Append(std::move(waypoint));
}
waypoints.Optimise();
}
示例10:
void
NOAAListRenderer::Draw(Canvas &canvas, const PixelRect rc,
const NOAAStore::Item &station,
const TwoTextRowsRenderer &row_renderer)
{
StaticString<256> title;
title = station.GetCodeT();
if (station.parsed_metar_available &&
station.parsed_metar.name_available)
title.AppendFormat(_T(": %s"), station.parsed_metar.name.c_str());
row_renderer.DrawFirstRow(canvas, rc, title);
const TCHAR *tmp;
if (!station.metar_available)
tmp = _("No METAR available");
else
tmp = station.metar.content.c_str();
row_renderer.DrawSecondRow(canvas, rc, tmp);
}
示例11:
static void
Update()
{
tstring metar_taf = _T("");
NOAAFormatter::Format(*station_iterator, metar_taf);
WndProperty* wp = (WndProperty*)wf->FindByName(_T("DetailsText"));
wp->SetText(metar_taf.c_str());
StaticString<100> caption;
caption.Format(_T("%s: "), _("METAR and TAF"));
ParsedMETAR parsed;
if (!station_iterator->GetParsedMETAR(parsed) ||
!parsed.name_available)
caption += station_iterator->GetCodeT();
else
caption.AppendFormat(_T("%s (%s)"), parsed.name.c_str(),
station_iterator->GetCodeT());
wf->SetCaption(caption);
}
示例12: SetText
void
NOAADetailsWidget::Update()
{
tstring metar_taf = _T("");
NOAAFormatter::Format(*station_iterator, metar_taf);
SetText(metar_taf.c_str());
StaticString<100> caption;
caption.Format(_T("%s: "), _("METAR and TAF"));
if (!station_iterator->parsed_metar_available ||
!station_iterator->parsed_metar.name_available)
caption += station_iterator->GetCodeT();
else
caption.AppendFormat(_T("%s (%s)"),
station_iterator->parsed_metar.name.c_str(),
station_iterator->GetCodeT());
dialog.SetCaption(caption);
}
示例13: Visit
void Visit(const TCHAR *path, const TCHAR *filename) {
// Create a TaskFile instance to determine how many
// tasks are inside of this task file
TaskFile* task_file = TaskFile::Create(path);
if (task_file == NULL)
return;
// Get base name of the task file
const TCHAR* base_name = BaseName(path);
// Count the tasks in the task file
unsigned count = task_file->Count();
// For each task in the task file
for (unsigned i = 0; i < count; i++) {
// Copy base name of the file into task name
StaticString<256> name;
name = (base_name != NULL) ? base_name : path;
// If the task file holds more than one task
if (count > 1) {
if (i < task_file->namesuffixes.size() &&
task_file->namesuffixes[i]) {
name += _T(": ");
name += task_file->namesuffixes[i];
} else {
// .. append " - Task #[n]" suffix to the task name
name.AppendFormat(_T(": %s #%2d"), _("Task"), i + 1);
}
}
// Add the task to the TaskStore
store.push_back(TaskStore::Item(path, name.empty() ? path : name, i));
}
// Remove temporary TaskFile instance
delete task_file;
}
示例14: if
void
GlueMapWindow::DrawMapScale(Canvas &canvas, const PixelRect &rc,
const MapWindowProjection &projection) const
{
RenderMapScale(canvas, projection, rc, look.overlay);
if (!projection.IsValid())
return;
StaticString<80> buffer;
buffer.clear();
if (GetMapSettings().auto_zoom_enabled)
buffer = _T("AUTO ");
switch (follow_mode) {
case FOLLOW_SELF:
break;
case FOLLOW_PAN:
buffer += _T("PAN ");
break;
}
const UIState &ui_state = GetUIState();
if (ui_state.auxiliary_enabled) {
buffer += ui_state.panel_name;
buffer += _T(" ");
}
if (Basic().gps.replay)
buffer += _T("REPLAY ");
else if (Basic().gps.simulator) {
buffer += _("Simulator");
buffer += _T(" ");
}
if (GetComputerSettings().polar.ballast_timer_active)
buffer.AppendFormat(
_T("BALLAST %d LITERS "),
(int)GetComputerSettings().polar.glide_polar_task.GetBallastLitres());
if (rasp_renderer != nullptr) {
const TCHAR *label = rasp_renderer->GetLabel();
if (label != nullptr)
buffer += gettext(label);
}
if (!buffer.empty()) {
const Font &font = *look.overlay.overlay_font;
canvas.Select(font);
const unsigned height = font.GetCapitalHeight()
+ Layout::GetTextPadding();
int y = rc.bottom - height;
TextInBoxMode mode;
mode.vertical_position = TextInBoxMode::VerticalPosition::ABOVE;
mode.shape = LabelShape::OUTLINED;
TextInBox(canvas, buffer, 0, y, mode, rc, nullptr);
}
}
示例15: while
//.........这里部分代码省略.........
if (CheckTitle(line, title_length, _T("Dew Point"))) {
StaticString<256> buffer;
if (!parsed.temperatures_available) {
buffer.Format(_T("%s: "), _("Dew Point"));
buffer.append(value, value_length);
} else {
TCHAR temperature_buffer[16];
FormatUserTemperature(parsed.dew_point, temperature_buffer,
ARRAY_SIZE(temperature_buffer));
buffer.Format(_T("%s: %s"), _("Dew Point"), temperature_buffer);
}
output += buffer;
output += '\n';
return true;
}
if (CheckTitle(line, title_length, _T("Pressure (altimeter)"))) {
StaticString<256> buffer;
if (!parsed.qnh_available) {
buffer.Format(_T("%s: "), _("Pressure"));
buffer.append(value, value_length);
} else {
TCHAR qnh_buffer[16];
FormatUserPressure(parsed.qnh, qnh_buffer, ARRAY_SIZE(qnh_buffer));
buffer.Format(_T("%s: %s"), _("Pressure"), qnh_buffer);
}
output += buffer;
output += '\n';
return true;
}
if (CheckTitle(line, title_length, _T("Visibility"))) {
StaticString<256> buffer;
buffer.Format(_T("%s: "), _("Visibility"));
if (!parsed.qnh_available) {
buffer.append(value, value_length);
} else {
TCHAR vis_buffer[32];
if (parsed.visibility >= 9999) {
FormatUserDistanceSmart(fixed(10000),
vis_buffer, ARRAY_SIZE(vis_buffer));
buffer.AppendFormat(_("more than %s"), vis_buffer);
} else {
FormatUserDistanceSmart(fixed(parsed.visibility),
vis_buffer, ARRAY_SIZE(vis_buffer));
buffer += vis_buffer;
}
}
output += buffer;
output += '\n';
return true;
}
if (CheckTitle(line, title_length, _T("Sky conditions"))) {
StaticString<256> buffer;
buffer.Format(_T("%s: "), _("Sky Conditions"));
StaticString<64> _value;
_value.set(value, value_length);
buffer += gettext(_value);
output += buffer;
output += '\n';
return true;
}
if (CheckTitle(line, title_length, _T("Weather"))) {
StaticString<256> buffer;
buffer.Format(_T("%s: "), _("Weather"));
StaticString<64> _value;
_value.set(value, value_length);
buffer += gettext(_value);
output += buffer;
output += '\n';
return true;
}
StaticString<64> title;
title.set(line, title_length);
StaticString<256> buffer;
buffer.Format(_T("%s: "), gettext(title.c_str()));
buffer.append(value, value_length);
output += buffer;
output += '\n';
return true;
}