本文整理汇总了C++中StaticString::buffer方法的典型用法代码示例。如果您正苦于以下问题:C++ StaticString::buffer方法的具体用法?C++ StaticString::buffer怎么用?C++ StaticString::buffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StaticString
的用法示例。
在下文中一共展示了StaticString::buffer方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FormatAngleDelta
void
TeamCodeWidget::Update(const MoreData &basic, const DerivedInfo &calculated)
{
const TeamInfo &teamcode_info = calculated;
const TeamCodeSettings &settings =
CommonInterface::GetComputerSettings().team_code;
StaticString<100> buffer;
if (teamcode_info.teammate_available && basic.track_available) {
FormatAngleDelta(buffer.buffer(), buffer.MAX_SIZE,
teamcode_info.teammate_vector.bearing - basic.track);
} else {
buffer = _T("---");
}
SetText(RELATIVE_BEARING, buffer);
if (teamcode_info.teammate_available) {
FormatBearing(buffer.buffer(), buffer.MAX_SIZE,
teamcode_info.teammate_vector.bearing);
SetText(BEARING, buffer);
FormatUserDistanceSmart(teamcode_info.teammate_vector.distance,
buffer.buffer());
SetText(RANGE, buffer);
}
SetText(OWN_CODE, teamcode_info.own_teammate_code.GetCode());
SetText(MATE_CODE, settings.team_code.GetCode());
SetText(FLARM_LOCK,
settings.team_flarm_id.IsDefined()
? settings.team_flarm_callsign.c_str()
: _T(""));
}
示例2: FormatUserMass
void
RenderGlidePolarInfo(Canvas &canvas, const PixelRect rc,
const ChartLook &chart_look,
const GlidePolar &glide_polar)
{
canvas.Select(chart_look.label_font);
StaticString<80> text;
StaticString<20> value;
canvas.SetBackgroundTransparent();
FormatUserMass(glide_polar.GetTotalMass(), value.buffer(), true);
int left = rc.left*0.8 + rc.right*0.2;
text.Format(_T("%s: %s"), _("Mass"), value.c_str());
canvas.DrawText(left,
rc.bottom - Layout::Scale(50),
text);
double wl = glide_polar.GetWingLoading();
if (wl != 0) {
FormatUserWingLoading(wl, value.buffer(), true);
text.Format(_T("%s: %s"), _("Wing loading"), value.c_str());
canvas.DrawText(left,
rc.bottom - Layout::Scale(35),
text);
}
}
示例3: Set
void Set(const TCHAR *_name, const DownloadStatus *_download_status,
bool _failed) {
name = _name;
TCHAR path[MAX_PATH];
LocalPath(path, name);
if (File::Exists(path)) {
FormatByteSize(size.buffer(), size.MAX_SIZE,
File::GetSize(path));
#ifdef HAVE_POSIX
FormatISO8601(last_modified.buffer(),
BrokenDateTime::FromUnixTimeUTC(File::GetLastModification(path)));
#else
// XXX implement
last_modified.clear();
#endif
} else {
size.clear();
last_modified.clear();
}
downloading = _download_status != NULL;
if (downloading)
download_status = *_download_status;
failed = _failed;
}
示例4: while
static void
NewClicked(gcc_unused WndButton &button)
{
Plane plane = CommonInterface::GetComputerSettings().plane;
while (dlgPlaneDetailsShowModal(*(SingleWindow*)dialog->get_root_owner(), plane)) {
if (plane.registration.empty()) {
MessageBoxX(_("Please enter the registration of the plane!"),
_("Error"), MB_OK);
continue;
}
StaticString<42> filename(plane.registration);
filename += _T(".xcp");
StaticString<MAX_PATH> path;
LocalPath(path.buffer(), filename);
if (File::Exists(path)) {
StaticString<256> tmp;
tmp.Format(_("A plane profile \"%s\" already exists. "
"Do you want to overwrite it?"),
filename.c_str());
if (MessageBoxX(tmp, _("Overwrite"), MB_YESNO) != IDYES)
continue;
}
PlaneGlue::WriteFile(plane, path);
UpdateList();
break;
}
}
示例5: FormatAngleDelta
static void
Update(const MoreData &basic, const DerivedInfo &calculated)
{
const TeamInfo &teamcode_info = calculated;
const TeamCodeSettings &settings =
CommonInterface::GetComputerSettings().team_code;
StaticString<100> buffer;
if (teamcode_info.teammate_available && basic.track_available) {
FormatAngleDelta(buffer.buffer(), buffer.MAX_SIZE,
teamcode_info.teammate_vector.bearing - basic.track);
} else {
buffer = _T("---");
}
SetFormValue(*wf, _T("prpRelBearing"), buffer);
if (teamcode_info.teammate_available) {
LoadFormProperty(*wf, _T("prpBearing"),
teamcode_info.teammate_vector.bearing.Degrees());
LoadFormProperty(*wf, _T("prpRange"), UnitGroup::DISTANCE,
teamcode_info.teammate_vector.distance);
}
SetFormValue(*wf, _T("prpOwnCode"),
teamcode_info.own_teammate_code.GetCode());
SetFormValue(*wf, _T("prpMateCode"), settings.team_code.GetCode());
SetFormValue(*wf, _T("prpFlarmLock"),
settings.team_flarm_id.IsDefined()
? settings.team_flarm_callsign.c_str()
: _T(""));
}
示例6: while
inline void
PlaneListWidget::NewClicked()
{
Plane plane = CommonInterface::GetComputerSettings().plane;
while (dlgPlaneDetailsShowModal(plane)) {
if (plane.registration.empty()) {
ShowMessageBox(_("Please enter the registration of the plane!"),
_("Error"), MB_OK);
continue;
}
StaticString<42> filename(plane.registration);
filename += _T(".xcp");
StaticString<MAX_PATH> path;
LocalPath(path.buffer(), filename);
if (File::Exists(path)) {
StaticString<256> tmp;
tmp.Format(_("Plane \"%s\" already exists. "
"Overwrite it?"),
plane.registration.c_str());
if (ShowMessageBox(tmp, _("Overwrite"), MB_YESNO) != IDYES)
continue;
}
PlaneGlue::WriteFile(plane, path);
UpdateList();
break;
}
}
示例7: TextEntryDialog
static inline bool
TextEntryDialog(StaticString<N> &text,
const TCHAR *caption,
bool default_shift_state)
{
AllowedCharacters accb=AllowedCharacters();
return TextEntryDialog(text.buffer(), text.MAX_SIZE,
caption, accb, default_shift_state);
}
示例8: vec
void
FlightStatusPanel::Refresh()
{
const NMEAInfo &basic = CommonInterface::Basic();
const DerivedInfo &calculated = CommonInterface::Calculated();
StaticString<32> buffer;
if (basic.location_available) {
FormatGeoPoint(basic.location, buffer.buffer(), buffer.MAX_SIZE);
SetText(Location, buffer);
} else
SetText(Location, _T(""));
if (basic.gps_altitude_available) {
FormatUserAltitude(basic.gps_altitude,
buffer.buffer(), buffer.MAX_SIZE);
SetText(Altitude, buffer);
} else
SetText(Altitude, _T(""));
FormatUserAltitude(calculated.max_height_gain,
buffer.buffer(), buffer.MAX_SIZE);
SetText(MaxHeightGain, buffer);
if (nearest_waypoint) {
GeoVector vec(basic.location,
nearest_waypoint->location);
SetText(Near, nearest_waypoint->name.c_str());
FormatBearing(buffer.buffer(), buffer.MAX_SIZE, vec.bearing, _T(""));
SetText(Bearing, buffer);
FormatUserDistanceSmart(vec.distance, buffer.buffer(), buffer.MAX_SIZE);
SetText(Distance, buffer);
} else {
SetText(Near, _T("-"));
SetText(Bearing, _T("-"));
SetText(Distance, _T("-"));
}
}
示例9: assert
inline void
PlaneListWidget::EditClicked()
{
assert(GetList().GetCursorIndex() < list.size());
const unsigned index = GetList().GetCursorIndex();
const TCHAR *old_path = list[index].path;
const TCHAR *old_filename = list[index].name;
Plane plane;
PlaneGlue::ReadFile(plane, old_path);
while (dlgPlaneDetailsShowModal(plane)) {
if (plane.registration.empty()) {
ShowMessageBox(_("Please enter the registration of the plane!"),
_("Error"), MB_OK);
continue;
}
StaticString<42> filename(plane.registration);
filename += _T(".xcp");
if (filename != old_filename) {
StaticString<MAX_PATH> path;
DirName(old_path, path.buffer());
path += _T(DIR_SEPARATOR_S);
path += filename;
if (File::Exists(path)) {
StaticString<256> tmp;
tmp.Format(_("Plane \"%s\" already exists. "
"Overwrite it?"),
plane.registration.c_str());
if (ShowMessageBox(tmp, _("Overwrite"), MB_YESNO) != IDYES)
continue;
}
File::Delete(old_path);
PlaneGlue::WriteFile(plane, path);
if (Profile::GetPathIsEqual("PlanePath", old_path)) {
list[index].path = path;
list[index].name = filename;
Load(index);
}
} else {
PlaneGlue::WriteFile(plane, old_path);
if (Profile::GetPathIsEqual("PlanePath", old_path))
Load(index);
}
UpdateList();
break;
}
}
示例10: assert
static void
EditClicked(gcc_unused WndButton &button)
{
assert(plane_list->GetCursorIndex() < list.size());
const unsigned index = plane_list->GetCursorIndex();
const TCHAR *old_path = list[index].path;
const TCHAR *old_filename = list[index].name;
Plane plane;
PlaneGlue::ReadFile(plane, old_path);
while (dlgPlaneDetailsShowModal(*(SingleWindow*)dialog->get_root_owner(), plane)) {
if (plane.registration.empty()) {
MessageBoxX(_("Please enter the registration of the plane!"),
_("Error"), MB_OK);
continue;
}
StaticString<42> filename(plane.registration);
filename += _T(".xcp");
if (filename != old_filename) {
StaticString<MAX_PATH> path;
DirName(old_path, path.buffer());
path += _T(DIR_SEPARATOR_S);
path += filename;
if (File::Exists(path)) {
StaticString<256> tmp;
tmp.Format(_("A plane profile \"%s\" already exists. "
"Do you want to overwrite it?"),
filename.c_str());
if (MessageBoxX(tmp, _("Overwrite"), MB_YESNO) != IDYES)
continue;
}
File::Delete(old_path);
PlaneGlue::WriteFile(plane, path);
if (Profile::GetPathIsEqual(_T("PlanePath"), old_path)) {
list[index].path = path;
list[index].name = filename;
Load(index);
}
} else {
PlaneGlue::WriteFile(plane, old_path);
if (Profile::GetPathIsEqual(_T("PlanePath"), old_path))
Load(index);
}
UpdateList();
break;
}
}
示例11: SetTitleFromWaypointName
void
InfoBoxContentNextWaypoint::Update(InfoBoxWindow &infobox)
{
// use proper non-terminal next task stats
const Waypoint* way_point = protected_task_manager != NULL
? protected_task_manager->getActiveWaypoint()
: NULL;
if (!way_point) {
infobox.SetTitle(_("Next"));
infobox.SetInvalid();
return;
}
SetTitleFromWaypointName(infobox, way_point);
// Set Comment
if (way_point->radio_frequency.IsDefined()) {
StaticString<128> comment;
const unsigned freq = way_point->radio_frequency.GetKiloHertz();
_sntprintf(comment.buffer(), comment.MAX_SIZE, _T("%u.%03u %s"),
freq / 1000, freq % 1000, way_point->Comment.c_str());
infobox.SetComment(comment);
}
else
infobox.SetComment(way_point->Comment.c_str());
const GlideResult &solution_remaining =
XCSoarInterface::Calculated().task_stats.current_leg.solution_remaining;
if (!XCSoarInterface::Basic().track_available ||
!XCSoarInterface::Calculated().task_stats.task_valid ||
!solution_remaining.defined() ||
solution_remaining.Vector.Distance <= fixed(10)) {
infobox.SetValueInvalid();
return;
}
// Set Value
Angle Value =
solution_remaining.Vector.Bearing - XCSoarInterface::Basic().track;
SetValueBearingDifference(infobox, Value);
// Set Color (blue/black)
infobox.SetColor(solution_remaining.is_final_glide() ? 2 : 0);
}
示例12: assert
static void
OnPaintListItem(Canvas &canvas, const PixelRect rc, unsigned i)
{
if (AirspaceSelectInfo.empty()) {
assert(i == 0);
canvas.text(rc.left + Layout::FastScale(2),
rc.top + Layout::FastScale(2), _("No Match!"));
return;
}
assert(i < AirspaceSelectInfo.size());
const AbstractAirspace &airspace = *AirspaceSelectInfo[i].airspace;
int w0, w1, w2, w3, x1, x2, x3;
w0 = rc.right - rc.left - Layout::FastScale(4);
w1 = canvas.CalcTextWidth(_T("XXX"));
w2 = canvas.CalcTextWidth(_T(" 000km"));
w3 = canvas.CalcTextWidth(_T(" 000")_T(DEG));
x1 = w0-w1-w2-w3;
canvas.text_clipped(rc.left + Layout::FastScale(2),
rc.top + Layout::FastScale(2),
x1 - Layout::FastScale(5), airspace.GetNameText().c_str());
// left justified
canvas.text(rc.left + x1, rc.top + Layout::FastScale(2),
airspace.GetTypeText(true));
StaticString<12> sTmp;
// right justified after airspace type
sTmp.Format(_T("%d%s"),
(int)AirspaceSelectInfo[i].Distance,
Units::GetDistanceName());
x2 = w0 - w3 - canvas.CalcTextWidth(sTmp);
canvas.text(rc.left + x2, rc.top + Layout::FastScale(2), sTmp);
// right justified after distance
FormatBearing(sTmp.buffer(), sTmp.MAX_SIZE, AirspaceSelectInfo[i].Direction);
x3 = w0 - canvas.CalcTextWidth(sTmp);
canvas.text(rc.left + x3, rc.top + Layout::FastScale(2), sTmp);
}
示例13: assert
bool
LoggerImpl::StartLogger(const NMEAInfo &gps_info,
const LoggerSettings &settings,
const char *logger_id)
{
assert(logger_id != NULL);
assert(strlen(logger_id) == 3);
/* finish the previous IGC file */
StopLogger(gps_info);
assert(writer == NULL);
LocalPath(filename, _T("logs"));
Directory::Create(filename);
const BrokenDate today = gps_info.date_time_utc.IsDatePlausible()
? (const BrokenDate &)gps_info.date_time_utc
: BrokenDate::TodayUTC();
StaticString<64> name;
for (int i = 1; i < 99; i++) {
FormatIGCFilenameLong(name.buffer(), today, "XCS", logger_id, i);
LocalPath(filename, _T("logs"), name);
if (!File::Exists(filename))
break; // file not exist, we'll use this name
}
frecord.Reset();
writer = new IGCWriter(filename);
if (!writer->IsOpen()) {
LogFormat(_T("Failed to create file %s"), filename);
delete writer;
writer = nullptr;
return false;
}
LogFormat(_T("Logger Started: %s"), filename);
return true;
}
示例14: assert
bool
LoggerImpl::StartLogger(const NMEAInfo &gps_info,
const LoggerSettings &settings,
const char *logger_id)
{
assert(logger_id != nullptr);
assert(strlen(logger_id) == 3);
/* finish the previous IGC file */
StopLogger(gps_info);
assert(writer == nullptr);
const auto logs_path = MakeLocalPath(_T("logs"));
const BrokenDate today = gps_info.date_time_utc.IsDatePlausible()
? (const BrokenDate &)gps_info.date_time_utc
: BrokenDate::TodayUTC();
StaticString<64> name;
for (int i = 1; i < 99; i++) {
FormatIGCFilenameLong(name.buffer(), today, "XCS", logger_id, i);
filename = AllocatedPath::Build(logs_path, name);
if (!File::Exists(filename))
break; // file not exist, we'll use this name
}
frecord.Reset();
try {
writer = new IGCWriter(filename);
} catch (...) {
LogError(std::current_exception());
return false;
}
LogFormat(_T("Logger Started: %s"), filename.c_str());
return true;
}
示例15: LocalPath
inline void
ProfileListWidget::NewClicked()
{
StaticString<64> name;
name.clear();
if (!TextEntryDialog(name, _("Profile name")))
return;
StaticString<80> filename;
filename = name;
filename += _T(".prf");
StaticString<MAX_PATH> path;
LocalPath(path.buffer(), filename);
if (!File::CreateExclusive(path)) {
ShowMessageBox(name, _("File exists already."), MB_OK|MB_ICONEXCLAMATION);
return;
}
UpdateList();
SelectPath(path);
}