本文整理汇总了C++中StaticString::UnsafeFormat方法的典型用法代码示例。如果您正苦于以下问题:C++ StaticString::UnsafeFormat方法的具体用法?C++ StaticString::UnsafeFormat怎么用?C++ StaticString::UnsafeFormat使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StaticString
的用法示例。
在下文中一共展示了StaticString::UnsafeFormat方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetAttribute
void
DataNode::SetAttribute(const TCHAR *name, fixed value)
{
StaticString<48> buf;
buf.UnsafeFormat(_T("%g"), (double)value);
SetAttribute(name, buf);
}
示例2: SetAttribute
void
WritableDataNode::SetAttribute(const TCHAR *name, int value)
{
StaticString<24> buf;
buf.UnsafeFormat(_T("%d"), value);
SetAttribute(name, buf);
}
示例3: if
void
WifiListWidget::OnPaintItem(Canvas &canvas, const PixelRect rc,
unsigned idx)
{
const DialogLook &look = UIGlobals::GetDialogLook();
const auto &info = networks[idx];
const unsigned padding = Layout::GetTextPadding();
const unsigned x1 = rc.left + padding;
const unsigned y1 = rc.top + padding;
const unsigned y2 = y1 + look.text_font->GetHeight() + padding;
static char wifi_security[][20] = {
"WPA",
"WEP",
"Open",
};
canvas.Select(*look.text_font);
canvas.DrawText(x1, y1, info.ssid);
canvas.Select(*look.small_font);
canvas.DrawText(x1, y2, info.bssid);
const TCHAR *state = nullptr;
StaticString<40> state_buffer;
/* found the currently connected wifi network? */
if (StringIsEqual(info.bssid, status.bssid)) {
state = _("Connected");
/* look up ip address for eth0 */
const auto addr = IPv4Address::GetDeviceAddress("eth0");
if (addr.IsDefined()) { /* valid address? */
StaticString<40> addr_str;
if (addr.ToString(addr_str.buffer(), addr_str.MAX_SIZE) != nullptr) {
state_buffer.Format(_T("%s (%s)"), state, addr_str.c_str());
state = state_buffer;
}
}
}
else if (info.id >= 0)
state = info.signal_level >= 0
? _("Saved and visible")
: _("Saved, but not visible");
else if (info.signal_level >= 0)
state = _("Visible");
if (state != nullptr) {
unsigned width = canvas.CalcTextWidth(state);
canvas.DrawText(rc.right - padding - width, y1, state);
}
if (info.signal_level >= 0) {
StaticString<20> text;
text.UnsafeFormat(_T("%s %u"), wifi_security[info.security], info.signal_level);
unsigned width = canvas.CalcTextWidth(text);
canvas.DrawText(rc.right - padding - width, y2, text);
}
}
示例4: protect
void
MapItemListBuilder::AddSkyLinesTraffic()
{
#ifdef HAVE_SKYLINES_TRACKING_HANDLER
const auto &data = tracking->GetSkyLinesData();
const ScopeLock protect(data.mutex);
StaticString<32> buffer;
for (const auto &i : data.traffic) {
if (list.full())
break;
if (i.second.location.IsValid() &&
location.DistanceS(i.second.location) < range) {
const uint32_t id = i.first;
auto name_i = data.user_names.find(id);
const TCHAR *name;
if (name_i == data.user_names.end()) {
/* no name found */
buffer.UnsafeFormat(_T("SkyLines %u"), (unsigned)id);
name = buffer;
} else
/* we know the name */
name = name_i->second.c_str();
list.append(new SkyLinesTrafficMapItem(id, i.second.time_of_day_ms,
i.second.altitude,
name));
}
}
#endif
}
示例5: assert
void
ChartRenderer::DrawYLabel(const TCHAR *text, const TCHAR *unit)
{
assert(text != nullptr);
assert(unit != nullptr);
StaticString<64> buffer;
buffer.UnsafeFormat(_T("%s [%s]"), text, unit);
DrawYLabel(buffer);
}
示例6: AddBoolean
void
TrackingConfigPanel::Prepare(ContainerWindow &parent, const PixelRect &rc)
{
const TrackingSettings &settings =
CommonInterface::GetComputerSettings().tracking;
RowFormWidget::Prepare(parent, rc);
#ifdef HAVE_SKYLINES_TRACKING
AddBoolean(_T("SkyLines"), NULL, settings.skylines.enabled, this);
AddTime(_("Tracking Interval"), NULL, 5, 1200, 5,
settings.skylines.interval);
#ifdef HAVE_SKYLINES_TRACKING_HANDLER
AddBoolean(_("Track friends"),
_("Download the position of your friends live from the SkyLines server."),
settings.skylines.traffic_enabled, this);
#endif
StaticString<64> buffer;
if (settings.skylines.key != 0)
buffer.UnsafeFormat(_T("%llX"), (unsigned long long)settings.skylines.key);
else
buffer.clear();
AddText(_T("Key"), NULL, buffer);
#endif
#if defined(HAVE_SKYLINES_TRACKING) && defined(HAVE_LIVETRACK24)
AddSpacer();
#endif
#ifdef HAVE_LIVETRACK24
AddBoolean(_T("LiveTrack24"), _T(""), settings.livetrack24.enabled, this);
AddTime(_("Tracking Interval"), _T(""), 5, 3600, 5, settings.interval);
AddEnum(_("Vehicle Type"), _("Type of vehicle used."), vehicle_type_list,
(unsigned) settings.vehicleType);
WndProperty *edit = AddEnum(_("Server"), _T(""), server_list, 0);
((DataFieldEnum *)edit->GetDataField())->Set(settings.livetrack24.server);
edit->RefreshDisplay();
AddText(_("Username"), _T(""), settings.livetrack24.username);
AddPassword(_("Password"), _T(""), settings.livetrack24.password);
#endif
#ifdef HAVE_SKYLINES_TRACKING
SetSkyLinesEnabled(settings.skylines.enabled);
#endif
#ifdef HAVE_LIVETRACK24
SetEnabled(settings.livetrack24.enabled);
#endif
}
示例7: if
void
WifiListWidget::OnPaintItem(Canvas &canvas, const PixelRect rc,
unsigned idx)
{
const auto &info = networks[idx];
static char wifi_security[][20] = {
"WPA",
"WEP",
"Open",
};
row_renderer.DrawFirstRow(canvas, rc, info.ssid);
row_renderer.DrawSecondRow(canvas, rc, info.bssid);
const TCHAR *state = nullptr;
StaticString<40> state_buffer;
/* found the currently connected wifi network? */
if (StringIsEqual(info.bssid, status.bssid)) {
state = _("Connected");
/* look up ip address for eth0 */
const auto addr = IPv4Address::GetDeviceAddress("eth0");
if (addr.IsDefined()) { /* valid address? */
StaticString<40> addr_str;
if (addr.ToString(addr_str.buffer(), addr_str.capacity()) != nullptr) {
state_buffer.Format(_T("%s (%s)"), state, addr_str.c_str());
state = state_buffer;
}
}
}
else if (info.id >= 0)
state = info.signal_level >= 0
? _("Saved and visible")
: _("Saved, but not visible");
else if (info.signal_level >= 0)
state = _("Visible");
if (state != nullptr)
row_renderer.DrawRightFirstRow(canvas, rc, state);
if (info.signal_level >= 0) {
StaticString<20> text;
text.UnsafeFormat(_T("%s %u"), wifi_security[info.security], info.signal_level);
row_renderer.DrawRightSecondRow(canvas, rc, text);
}
}
示例8: FormatUserAltitude
static void
Draw(Canvas &canvas, PixelRect rc,
const SkyLinesTrafficMapItem &item,
const TwoTextRowsRenderer &row_renderer)
{
rc.right = row_renderer.DrawRightFirstRow(canvas, rc,
FormatUserAltitude(item.altitude));
row_renderer.DrawFirstRow(canvas, rc, item.name);
if (CommonInterface::Basic().time_available) {
StaticString<64> buffer;
buffer.UnsafeFormat(_("%u minutes ago"),
SinceInMinutes(CommonInterface::Basic().time,
item.time_of_day_ms));
row_renderer.DrawSecondRow(canvas, rc, buffer);
}
}
示例9: switch
static void
SetPort(DataFieldEnum &df, const DeviceConfig &config)
{
switch (config.port_type) {
case DeviceConfig::PortType::DISABLED:
case DeviceConfig::PortType::AUTO:
case DeviceConfig::PortType::INTERNAL:
case DeviceConfig::PortType::DROIDSOAR_V2:
case DeviceConfig::PortType::NUNCHUCK:
case DeviceConfig::PortType::I2CPRESSURESENSOR:
case DeviceConfig::PortType::IOIOVOLTAGE:
case DeviceConfig::PortType::TCP_CLIENT:
case DeviceConfig::PortType::TCP_LISTENER:
case DeviceConfig::PortType::UDP_LISTENER:
case DeviceConfig::PortType::PTY:
case DeviceConfig::PortType::RFCOMM_SERVER:
break;
case DeviceConfig::PortType::SERIAL:
SetPort(df, config.port_type, config.path);
return;
case DeviceConfig::PortType::RFCOMM:
SetPort(df, config.port_type, config.bluetooth_mac);
return;
case DeviceConfig::PortType::IOIOUART:
StaticString<16> buffer;
buffer.UnsafeFormat(_T("%d"), config.ioio_uart_id);
df.Set(buffer);
return;
}
for (unsigned i = 0; port_types[i].label != NULL; i++) {
if (port_types[i].type == config.port_type) {
df.Set(port_types[i].label);
break;
}
}
}
示例10: ComboPicker
static const RecordedFlightInfo *
ShowFlightList(const RecordedFlightList &flight_list)
{
// Prepare list of the flights for displaying
ComboList combo;
for (unsigned i = 0; i < flight_list.size(); ++i) {
const RecordedFlightInfo &flight = flight_list[i];
StaticString<64> buffer;
buffer.UnsafeFormat(_T("%04u/%02u/%02u %02u:%02u-%02u:%02u"),
flight.date.year, flight.date.month, flight.date.day,
flight.start_time.hour, flight.start_time.minute,
flight.end_time.hour, flight.end_time.minute);
combo.Append(i, buffer);
}
// Show list of the flights
int i = ComboPicker(_T("Choose a flight"),
combo, NULL, false);
return (i < 0) ? NULL : &flight_list[i];
}
示例11: switch
static void
SetPort(DataFieldEnum &df, const DeviceConfig &config)
{
switch (config.port_type) {
case DeviceConfig::PortType::DISABLED:
case DeviceConfig::PortType::AUTO:
case DeviceConfig::PortType::INTERNAL:
case DeviceConfig::PortType::TCP_LISTENER:
break;
case DeviceConfig::PortType::SERIAL:
if (!df.Exists(config.path))
AddPort(df, config.port_type, config.path);
df.SetAsString(config.path);
return;
case DeviceConfig::PortType::RFCOMM:
if (!df.Exists(config.bluetooth_mac))
AddPort(df, DeviceConfig::PortType::RFCOMM, config.bluetooth_mac);
df.SetAsString(config.bluetooth_mac);
return;
case DeviceConfig::PortType::IOIOUART:
StaticString<16> buffer;
buffer.UnsafeFormat(_T("%d"), config.ioio_uart_id);
df.SetAsString(buffer);
return;
}
for (unsigned i = 0; port_types[i].label != NULL; i++) {
if (port_types[i].type == config.port_type) {
df.SetAsString(gettext(port_types[i].label));
break;
}
}
}
示例12: glide_state
void
WaypointInfoWidget::Prepare(ContainerWindow &parent, const PixelRect &rc)
{
RowFormWidget::Prepare(parent, rc);
const MoreData &basic = CommonInterface::Basic();
const DerivedInfo &calculated = CommonInterface::Calculated();
const ComputerSettings &settings = CommonInterface::GetComputerSettings();
StaticString<64> buffer;
if (!waypoint.comment.empty())
AddMultiLine(waypoint.comment.c_str());
if (waypoint.radio_frequency.IsDefined() &&
waypoint.radio_frequency.Format(buffer.buffer(),
buffer.MAX_SIZE) != NULL) {
buffer += _T(" MHz");
AddReadOnly(_("Radio frequency"), NULL, buffer);
}
if (waypoint.runway.IsDirectionDefined())
buffer.UnsafeFormat(_T("%02u"), waypoint.runway.GetDirectionName());
else
buffer.clear();
if (waypoint.runway.IsLengthDefined()) {
if (!buffer.empty())
buffer += _T("; ");
TCHAR length_buffer[16];
FormatSmallUserDistance(length_buffer,
fixed(waypoint.runway.GetLength()));
buffer += length_buffer;
}
if (!buffer.empty())
AddReadOnly(_("Runway"), NULL, buffer);
if (FormatGeoPoint(waypoint.location,
buffer.buffer(), buffer.MAX_SIZE) != NULL)
AddReadOnly(_("Location"), NULL, buffer);
FormatUserAltitude(waypoint.elevation,
buffer.buffer(), buffer.MAX_SIZE);
AddReadOnly(_("Elevation"), NULL, buffer);
if (basic.time_available) {
const SunEphemeris::Result sun =
SunEphemeris::CalcSunTimes(waypoint.location, basic.date_time_utc,
fixed(GetUTCOffset()) / 3600);
const unsigned sunrisehours = (int)sun.time_of_sunrise;
const unsigned sunrisemins = (int)((sun.time_of_sunrise - fixed(sunrisehours)) * 60);
const unsigned sunset_hour = (int)sun.time_of_sunset;
const unsigned sunset_minute = (int)((sun.time_of_sunset - fixed(sunset_hour)) * 60);
buffer.UnsafeFormat(_T("%02u:%02u - %02u:%02u"), sunrisehours, sunrisemins, sunset_hour, sunset_minute);
AddReadOnly(_("Daylight time"), NULL, buffer);
}
if (basic.location_available) {
const GeoVector vector = basic.location.DistanceBearing(waypoint.location);
TCHAR distance_buffer[32];
FormatUserDistanceSmart(vector.distance, distance_buffer,
ARRAY_SIZE(distance_buffer));
FormatBearing(buffer.buffer(), buffer.MAX_SIZE,
vector.bearing, distance_buffer);
AddReadOnly(_("Bearing and Distance"), NULL, buffer);
}
if (basic.location_available && basic.NavAltitudeAvailable() &&
settings.polar.glide_polar_task.IsValid()) {
const GlideState glide_state(basic.location.DistanceBearing(waypoint.location),
waypoint.elevation + settings.task.safety_height_arrival,
basic.nav_altitude,
calculated.GetWindOrZero());
GlidePolar gp0 = settings.polar.glide_polar_task;
gp0.SetMC(fixed(0));
AddGlideResult(_("Alt. diff. MC 0"),
MacCready::Solve(settings.task.glide,
gp0, glide_state));
AddGlideResult(_("Alt. diff. MC safety"),
MacCready::Solve(settings.task.glide,
calculated.glide_polar_safety,
glide_state));
AddGlideResult(_("Alt. diff. MC current"),
MacCready::Solve(settings.task.glide,
settings.polar.glide_polar_task,
glide_state));
}
}
示例13: PolygonRotateShift
//.........这里部分代码省略.........
item.reach.terrain_valid == ReachResult::Validity::VALID
? item.reach.terrain
: item.reach.direct;
if (elevation_available)
arrival_altitude -= item.elevation;
bool reachable =
item.reach.terrain_valid != ReachResult::Validity::UNREACHABLE &&
arrival_altitude.IsPositive();
// Draw final glide arrow icon
RasterPoint pt = { (PixelScalar)(rc.left + line_height / 2),
(PixelScalar)(rc.top + line_height / 2) };
RasterPoint arrow[] = {
{ -7, -3 }, { 0, 4 }, { 7, -3 }
};
Angle arrow_angle = reachable ? Angle::HalfCircle() : Angle::Zero();
PolygonRotateShift(arrow, ARRAY_SIZE(arrow), pt.x, pt.y, arrow_angle, 100);
if (reachable) {
canvas.Select(look.brush_above);
canvas.Select(look.pen_above);
} else {
canvas.Select(look.brush_below);
canvas.Select(look.pen_below);
}
canvas.DrawPolygon(arrow, ARRAY_SIZE(arrow));
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);
// Format title row
TCHAR altitude_buffer[32];
StaticString<256> buffer;
buffer.clear();
if (elevation_available) {
RoughAltitude relative_arrival_altitude =
item.reach.direct - item.elevation;
FormatRelativeUserAltitude(fixed((short)relative_arrival_altitude),
altitude_buffer, ARRAY_SIZE(altitude_buffer));
buffer.AppendFormat(_T("%s %s, "), altitude_buffer, _("AGL"));
}
FormatUserAltitude(fixed(item.reach.direct),
altitude_buffer, ARRAY_SIZE(altitude_buffer));
buffer.AppendFormat(_T("%s %s"), altitude_buffer, _("MSL"));
// Draw title row
canvas.Select(name_font);
canvas.DrawClippedText(left, rc.top + Layout::FastScale(2), rc, buffer);
// Format comment row
if (reach_relevant) {
buffer.Format(_T("%s: "), _("around terrain"));
if (elevation_available) {
RoughAltitude relative_arrival_altitude =
item.reach.terrain - item.elevation;
FormatRelativeUserAltitude(fixed((short)relative_arrival_altitude),
altitude_buffer, ARRAY_SIZE(altitude_buffer));
buffer.AppendFormat(_T("%s %s, "), altitude_buffer, _("AGL"));
}
FormatUserAltitude(fixed(item.reach.terrain),
altitude_buffer, ARRAY_SIZE(altitude_buffer));
buffer.AppendFormat(_T("%s %s, "), altitude_buffer, _("MSL"));
} else if (elevation_available &&
(int)item.reach.direct >= (int)item.elevation &&
item.reach.terrain_valid == ReachResult::Validity::UNREACHABLE) {
buffer.UnsafeFormat(_T("%s "), _("Unreachable due to terrain."));
} else {
buffer.clear();
}
buffer += _("Arrival altitude incl. safety height");
// Draw comment row
canvas.Select(small_font);
canvas.DrawClippedText(left,
rc.top + name_font.GetHeight() + Layout::FastScale(4),
rc, buffer);
}
示例14: UnsafeFormatValue
void UnsafeFormatValue(const TCHAR *fmt, Args&&... args) {
value.UnsafeFormat(fmt, args...);
}
示例15: UnsafeFormatComment
void UnsafeFormatComment(const TCHAR *fmt, Args&&... args) {
comment.UnsafeFormat(fmt, args...);
}