diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-16 19:57:31 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-16 19:57:31 +0000 |
commit | 67c565eee0066426a716b2c5085a7af04f52e73a (patch) | |
tree | 9919e990c47bed244400e4d7c651d9f099726d83 /app/table_model.cc | |
parent | 09c6dec4e18784861660f716d038035be9540601 (diff) | |
download | chromium_src-67c565eee0066426a716b2c5085a7af04f52e73a.zip chromium_src-67c565eee0066426a716b2c5085a7af04f52e73a.tar.gz chromium_src-67c565eee0066426a716b2c5085a7af04f52e73a.tar.bz2 |
Move TableModel out of views/ and into app/.
Remove stub implementation in temp_scaffolding_stubs.h
Use l10n_util collator helper function in TableModel::Compare
Review URL: http://codereview.chromium.org/126184
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18518 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'app/table_model.cc')
-rw-r--r-- | app/table_model.cc | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/app/table_model.cc b/app/table_model.cc new file mode 100644 index 0000000..0f35905 --- /dev/null +++ b/app/table_model.cc @@ -0,0 +1,106 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "app/table_model.h" + +#include "app/l10n_util.h" +#include "third_party/skia/include/core/SkBitmap.h" + +// TableColumn ----------------------------------------------------------------- + +TableColumn::TableColumn() + : id(0), + title(), + alignment(LEFT), + width(-1), + percent(), + min_visible_width(0), + sortable(false) { +} + +TableColumn::TableColumn(int id, const std::wstring& title, + Alignment alignment, + int width) + : id(id), + title(title), + alignment(alignment), + width(width), + percent(0), + min_visible_width(0), + sortable(false) { +} + +TableColumn::TableColumn(int id, const std::wstring& title, + Alignment alignment, int width, float percent) + : id(id), + title(title), + alignment(alignment), + width(width), + percent(percent), + min_visible_width(0), + sortable(false) { +} + +// It's common (but not required) to use the title's IDS_* tag as the column +// id. In this case, the provided conveniences look up the title string on +// bahalf of the caller. +TableColumn::TableColumn(int id, Alignment alignment, int width) + : id(id), + alignment(alignment), + width(width), + percent(0), + min_visible_width(0), + sortable(false) { + title = l10n_util::GetString(id); +} + +TableColumn::TableColumn(int id, Alignment alignment, int width, float percent) + : id(id), + alignment(alignment), + width(width), + percent(percent), + min_visible_width(0), + sortable(false) { + title = l10n_util::GetString(id); +} + +// TableModel ----------------------------------------------------------------- + +// Used for sorting. +static Collator* collator = NULL; + +SkBitmap TableModel::GetIcon(int row) { + return SkBitmap(); +} + +int TableModel::CompareValues(int row1, int row2, int column_id) { + DCHECK(row1 >= 0 && row1 < RowCount() && + row2 >= 0 && row2 < RowCount()); + std::wstring value1 = GetText(row1, column_id); + std::wstring value2 = GetText(row2, column_id); + Collator* collator = GetCollator(); + + if (collator) + return l10n_util::CompareStringWithCollator(collator, value1, value2); + + NOTREACHED(); + return 0; +} + +Collator* TableModel::GetCollator() { + if (!collator) { + UErrorCode create_status = U_ZERO_ERROR; + collator = Collator::createInstance(create_status); + if (!U_SUCCESS(create_status)) { + collator = NULL; + NOTREACHED(); + } + } + return collator; +} + +void TableModel::ClearCollator() { + delete collator; + collator = NULL; +} |