static void Main() { RoughTime value = RoughTime::Invalid(); const RoughTimeDelta time_zone = RoughTimeDelta::FromMinutes(0); if (!TimeEntryDialog(_T("The caption"), value, time_zone, true)) return; if (value.IsValid()) printf("%02u:%02u\n", value.GetHour(), value.GetMinute()); else printf("invalid\n"); }
bool EditDataFieldDialog(const TCHAR *caption, DataField &df, const TCHAR *help_text) { if (df.GetType() == DataField::Type::FILE) { return FilePicker(caption, (FileDataField &)df, help_text); } else if (df.SupportsCombolist()) { return ComboPicker(caption, df, help_text); } else if (df.GetType() == DataField::Type::ROUGH_TIME) { RoughTimeDataField &tdf = (RoughTimeDataField &)df; RoughTime value = tdf.GetValue(); if (!TimeEntryDialog(caption, value, tdf.GetTimeZone(), true)) return false; tdf.ModifyValue(value); return true; } else if (df.GetType() == DataField::Type::GEOPOINT) { GeoPointDataField &gdf = (GeoPointDataField &)df; GeoPoint value = gdf.GetValue(); if (!GeoPointEntryDialog(caption, value, gdf.GetFormat(), false)) return false; gdf.ModifyValue(value); return true; } else { const TCHAR *value = df.GetAsString(); if (value == NULL) return false; StaticString<EDITSTRINGSIZE> buffer(value); PrefixDataField::AllowedCharactersFunction acf; if (df.GetType() == DataField::Type::PREFIX) acf = ((PrefixDataField &)df).GetAllowedCharactersFunction(); if (!TextEntryDialog(buffer, caption, acf)) return false; df.SetAsString(buffer); return true; } }