| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011,2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011,2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 { | 48 { |
| 49 return LocaleICU::create(locale.string().utf8().data()); | 49 return LocaleICU::create(locale.string().utf8().data()); |
| 50 } | 50 } |
| 51 | 51 |
| 52 LocaleICU::LocaleICU(const char* locale) | 52 LocaleICU::LocaleICU(const char* locale) |
| 53 : m_locale(locale) | 53 : m_locale(locale) |
| 54 , m_numberFormat(0) | 54 , m_numberFormat(0) |
| 55 , m_shortDateFormat(0) | 55 , m_shortDateFormat(0) |
| 56 , m_didCreateDecimalFormat(false) | 56 , m_didCreateDecimalFormat(false) |
| 57 , m_didCreateShortDateFormat(false) | 57 , m_didCreateShortDateFormat(false) |
| 58 #if ENABLE(CALENDAR_PICKER) | |
| 59 , m_firstDayOfWeek(0) | 58 , m_firstDayOfWeek(0) |
| 60 #endif | |
| 61 , m_mediumTimeFormat(0) | 59 , m_mediumTimeFormat(0) |
| 62 , m_shortTimeFormat(0) | 60 , m_shortTimeFormat(0) |
| 63 , m_didCreateTimeFormat(false) | 61 , m_didCreateTimeFormat(false) |
| 64 { | 62 { |
| 65 } | 63 } |
| 66 | 64 |
| 67 LocaleICU::~LocaleICU() | 65 LocaleICU::~LocaleICU() |
| 68 { | 66 { |
| 69 unum_close(m_numberFormat); | 67 unum_close(m_numberFormat); |
| 70 udat_close(m_shortDateFormat); | 68 udat_close(m_shortDateFormat); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 StringBuffer<UChar> buffer(length); | 183 StringBuffer<UChar> buffer(length); |
| 186 status = U_ZERO_ERROR; | 184 status = U_ZERO_ERROR; |
| 187 udat_getSymbols(dateFormat, type, startIndex + i, buffer.characters(), l
ength, &status); | 185 udat_getSymbols(dateFormat, type, startIndex + i, buffer.characters(), l
ength, &status); |
| 188 if (U_FAILURE(status)) | 186 if (U_FAILURE(status)) |
| 189 return PassOwnPtr<Vector<String> >(); | 187 return PassOwnPtr<Vector<String> >(); |
| 190 labels->append(String::adopt(buffer)); | 188 labels->append(String::adopt(buffer)); |
| 191 } | 189 } |
| 192 return labels.release(); | 190 return labels.release(); |
| 193 } | 191 } |
| 194 | 192 |
| 195 #if ENABLE(CALENDAR_PICKER) | |
| 196 static PassOwnPtr<Vector<String> > createFallbackWeekDayShortLabels() | 193 static PassOwnPtr<Vector<String> > createFallbackWeekDayShortLabels() |
| 197 { | 194 { |
| 198 OwnPtr<Vector<String> > labels = adoptPtr(new Vector<String>()); | 195 OwnPtr<Vector<String> > labels = adoptPtr(new Vector<String>()); |
| 199 labels->reserveCapacity(7); | 196 labels->reserveCapacity(7); |
| 200 labels->append("Sun"); | 197 labels->append("Sun"); |
| 201 labels->append("Mon"); | 198 labels->append("Mon"); |
| 202 labels->append("Tue"); | 199 labels->append("Tue"); |
| 203 labels->append("Wed"); | 200 labels->append("Wed"); |
| 204 labels->append("Thu"); | 201 labels->append("Thu"); |
| 205 labels->append("Fri"); | 202 labels->append("Fri"); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 216 m_firstDayOfWeek = 0; | 213 m_firstDayOfWeek = 0; |
| 217 m_weekDayShortLabels = createFallbackWeekDayShortLabels(); | 214 m_weekDayShortLabels = createFallbackWeekDayShortLabels(); |
| 218 return; | 215 return; |
| 219 } | 216 } |
| 220 m_firstDayOfWeek = ucal_getAttribute(udat_getCalendar(m_shortDateFormat), UC
AL_FIRST_DAY_OF_WEEK) - UCAL_SUNDAY; | 217 m_firstDayOfWeek = ucal_getAttribute(udat_getCalendar(m_shortDateFormat), UC
AL_FIRST_DAY_OF_WEEK) - UCAL_SUNDAY; |
| 221 | 218 |
| 222 m_weekDayShortLabels = createLabelVector(m_shortDateFormat, UDAT_SHORT_WEEKD
AYS, UCAL_SUNDAY, 7); | 219 m_weekDayShortLabels = createLabelVector(m_shortDateFormat, UDAT_SHORT_WEEKD
AYS, UCAL_SUNDAY, 7); |
| 223 if (!m_weekDayShortLabels) | 220 if (!m_weekDayShortLabels) |
| 224 m_weekDayShortLabels = createFallbackWeekDayShortLabels(); | 221 m_weekDayShortLabels = createFallbackWeekDayShortLabels(); |
| 225 } | 222 } |
| 226 #endif | |
| 227 | 223 |
| 228 static PassOwnPtr<Vector<String> > createFallbackMonthLabels() | 224 static PassOwnPtr<Vector<String> > createFallbackMonthLabels() |
| 229 { | 225 { |
| 230 OwnPtr<Vector<String> > labels = adoptPtr(new Vector<String>()); | 226 OwnPtr<Vector<String> > labels = adoptPtr(new Vector<String>()); |
| 231 labels->reserveCapacity(WTF_ARRAY_LENGTH(WTF::monthFullName)); | 227 labels->reserveCapacity(WTF_ARRAY_LENGTH(WTF::monthFullName)); |
| 232 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(WTF::monthFullName); ++i) | 228 for (unsigned i = 0; i < WTF_ARRAY_LENGTH(WTF::monthFullName); ++i) |
| 233 labels->append(WTF::monthFullName[i]); | 229 labels->append(WTF::monthFullName[i]); |
| 234 return labels.release(); | 230 return labels.release(); |
| 235 } | 231 } |
| 236 | 232 |
| 237 const Vector<String>& LocaleICU::monthLabels() | 233 const Vector<String>& LocaleICU::monthLabels() |
| 238 { | 234 { |
| 239 if (m_monthLabels) | 235 if (m_monthLabels) |
| 240 return *m_monthLabels; | 236 return *m_monthLabels; |
| 241 if (initializeShortDateFormat()) { | 237 if (initializeShortDateFormat()) { |
| 242 m_monthLabels = createLabelVector(m_shortDateFormat, UDAT_MONTHS, UCAL_J
ANUARY, 12); | 238 m_monthLabels = createLabelVector(m_shortDateFormat, UDAT_MONTHS, UCAL_J
ANUARY, 12); |
| 243 if (m_monthLabels) | 239 if (m_monthLabels) |
| 244 return *m_monthLabels; | 240 return *m_monthLabels; |
| 245 } | 241 } |
| 246 m_monthLabels = createFallbackMonthLabels(); | 242 m_monthLabels = createFallbackMonthLabels(); |
| 247 return *m_monthLabels; | 243 return *m_monthLabels; |
| 248 } | 244 } |
| 249 | 245 |
| 250 #if ENABLE(CALENDAR_PICKER) | |
| 251 const Vector<String>& LocaleICU::weekDayShortLabels() | 246 const Vector<String>& LocaleICU::weekDayShortLabels() |
| 252 { | 247 { |
| 253 initializeCalendar(); | 248 initializeCalendar(); |
| 254 return *m_weekDayShortLabels; | 249 return *m_weekDayShortLabels; |
| 255 } | 250 } |
| 256 | 251 |
| 257 unsigned LocaleICU::firstDayOfWeek() | 252 unsigned LocaleICU::firstDayOfWeek() |
| 258 { | 253 { |
| 259 initializeCalendar(); | 254 initializeCalendar(); |
| 260 return m_firstDayOfWeek; | 255 return m_firstDayOfWeek; |
| 261 } | 256 } |
| 262 | 257 |
| 263 bool LocaleICU::isRTL() | 258 bool LocaleICU::isRTL() |
| 264 { | 259 { |
| 265 UErrorCode status = U_ZERO_ERROR; | 260 UErrorCode status = U_ZERO_ERROR; |
| 266 return uloc_getCharacterOrientation(m_locale.data(), &status) == ULOC_LAYOUT
_RTL; | 261 return uloc_getCharacterOrientation(m_locale.data(), &status) == ULOC_LAYOUT
_RTL; |
| 267 } | 262 } |
| 268 #endif | |
| 269 | 263 |
| 270 static PassOwnPtr<Vector<String> > createFallbackAMPMLabels() | 264 static PassOwnPtr<Vector<String> > createFallbackAMPMLabels() |
| 271 { | 265 { |
| 272 OwnPtr<Vector<String> > labels = adoptPtr(new Vector<String>()); | 266 OwnPtr<Vector<String> > labels = adoptPtr(new Vector<String>()); |
| 273 labels->reserveCapacity(2); | 267 labels->reserveCapacity(2); |
| 274 labels->append("AM"); | 268 labels->append("AM"); |
| 275 labels->append("PM"); | 269 labels->append("PM"); |
| 276 return labels.release(); | 270 return labels.release(); |
| 277 } | 271 } |
| 278 | 272 |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 } | 419 } |
| 426 | 420 |
| 427 const Vector<String>& LocaleICU::timeAMPMLabels() | 421 const Vector<String>& LocaleICU::timeAMPMLabels() |
| 428 { | 422 { |
| 429 initializeDateTimeFormat(); | 423 initializeDateTimeFormat(); |
| 430 return m_timeAMPMLabels; | 424 return m_timeAMPMLabels; |
| 431 } | 425 } |
| 432 | 426 |
| 433 } // namespace WebCore | 427 } // namespace WebCore |
| 434 | 428 |
| OLD | NEW |