Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: views/controls/table/native_table_gtk.cc

Issue 6044007: Remove wstring from TableModel.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "views/controls/table/native_table_gtk.h" 5 #include "views/controls/table/native_table_gtk.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 // Updates the gtk model with the actual model. 271 // Updates the gtk model with the actual model.
272 if (table_->model()) 272 if (table_->model())
273 OnRowsAdded(0, table_->model()->RowCount()); 273 OnRowsAdded(0, table_->model()->RowCount());
274 274
275 gtk_widget_show_all(native_view()); 275 gtk_widget_show_all(native_view());
276 } 276 }
277 277
278 void NativeTableGtk::InsertTextColumn(const TableColumn& column, int index) { 278 void NativeTableGtk::InsertTextColumn(const TableColumn& column, int index) {
279 GtkCellRenderer* renderer = gtk_cell_renderer_text_new(); 279 GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
280 gtk_tree_view_insert_column_with_attributes(tree_view_, -1, 280 gtk_tree_view_insert_column_with_attributes(tree_view_, -1,
281 WideToUTF8(column.title).c_str(), 281 UTF16ToUTF8(column.title).c_str(),
282 renderer, "text", index, NULL); 282 renderer, "text", index, NULL);
283 } 283 }
284 284
285 void NativeTableGtk::InsertIconAndTextColumn(const TableColumn& column, 285 void NativeTableGtk::InsertIconAndTextColumn(const TableColumn& column,
286 int index) { 286 int index) {
287 // If necessary we could support more than 1 icon and text column and we could 287 // If necessary we could support more than 1 icon and text column and we could
288 // make it so it does not have to be the 1st column. 288 // make it so it does not have to be the 1st column.
289 DCHECK_EQ(0, index) << "The icon and text column can only be the first column" 289 DCHECK_EQ(0, index) << "The icon and text column can only be the first column"
290 " at this point."; 290 " at this point.";
291 291
292 GtkTreeViewColumn* gtk_column = gtk_tree_view_column_new(); 292 GtkTreeViewColumn* gtk_column = gtk_tree_view_column_new();
293 gtk_tree_view_column_set_title(gtk_column, WideToUTF8(column.title).c_str()); 293 gtk_tree_view_column_set_title(gtk_column, UTF16ToUTF8(column.title).c_str());
294 GtkCellRenderer* renderer = gtk_cell_renderer_pixbuf_new(); 294 GtkCellRenderer* renderer = gtk_cell_renderer_pixbuf_new();
295 gtk_tree_view_column_pack_start(gtk_column, renderer, FALSE); 295 gtk_tree_view_column_pack_start(gtk_column, renderer, FALSE);
296 // First we set the icon renderer at index 0. 296 // First we set the icon renderer at index 0.
297 gtk_tree_view_column_set_attributes(gtk_column, renderer, "pixbuf", 0, NULL); 297 gtk_tree_view_column_set_attributes(gtk_column, renderer, "pixbuf", 0, NULL);
298 298
299 renderer = gtk_cell_renderer_text_new(); 299 renderer = gtk_cell_renderer_text_new();
300 gtk_tree_view_column_pack_start(gtk_column, renderer, TRUE); 300 gtk_tree_view_column_pack_start(gtk_column, renderer, TRUE);
301 // Then we set the text renderer at index 1. 301 // Then we set the text renderer at index 1.
302 gtk_tree_view_column_set_attributes(gtk_column, renderer, "text", 1, NULL); 302 gtk_tree_view_column_set_attributes(gtk_column, renderer, "text", 1, NULL);
303 303
304 gtk_tree_view_append_column(tree_view_, gtk_column); 304 gtk_tree_view_append_column(tree_view_, gtk_column);
305 } 305 }
306 306
307 void NativeTableGtk::SetRowData(int row_index, GtkTreeIter* iter) { 307 void NativeTableGtk::SetRowData(int row_index, GtkTreeIter* iter) {
308 int gtk_column_index = 0; 308 int gtk_column_index = 0;
309 if (table_->type() == ICON_AND_TEXT) { 309 if (table_->type() == ICON_AND_TEXT) {
310 GdkPixbuf* icon = GetModelIcon(row_index); 310 GdkPixbuf* icon = GetModelIcon(row_index);
311 gtk_list_store_set(gtk_model_, iter, 0, icon, -1); 311 gtk_list_store_set(gtk_model_, iter, 0, icon, -1);
312 g_object_unref(icon); 312 g_object_unref(icon);
313 gtk_column_index++; 313 gtk_column_index++;
314 } 314 }
315 for (size_t i = 0; i < table_->GetVisibleColumnCount(); 315 for (size_t i = 0; i < table_->GetVisibleColumnCount();
316 ++i, ++gtk_column_index) { 316 ++i, ++gtk_column_index) {
317 std::string text = 317 std::string text =
318 WideToUTF8(table_->model()->GetText(row_index, 318 UTF16ToUTF8(table_->model()->GetText(row_index,
319 table_->GetVisibleColumnAt(i).id)); 319 table_->GetVisibleColumnAt(i).id));
320 gtk_list_store_set(gtk_model_, iter, gtk_column_index, text.c_str(), -1); 320 gtk_list_store_set(gtk_model_, iter, gtk_column_index, text.c_str(), -1);
321 } 321 }
322 } 322 }
323 323
324 void NativeTableGtk::OnCursorChanged(GtkWidget* widget) { 324 void NativeTableGtk::OnCursorChanged(GtkWidget* widget) {
325 // Ignore the signal if no row is selected. This can occur when GTK 325 // Ignore the signal if no row is selected. This can occur when GTK
326 // first opens a window (i.e. no row is selected but the cursor is set 326 // first opens a window (i.e. no row is selected but the cursor is set
327 // to the first row). When a user clicks on a row, the row is selected, 327 // to the first row). When a user clicks on a row, the row is selected,
328 // and then "cursor-changed" signal is emitted, hence the selection 328 // and then "cursor-changed" signal is emitted, hence the selection
329 // count will be 1 here. 329 // count will be 1 here.
(...skipping 14 matching lines...) Expand all
344 SkBitmap icon = table_->model()->GetIcon(row); 344 SkBitmap icon = table_->model()->GetIcon(row);
345 return gfx::GdkPixbufFromSkBitmap(&icon); 345 return gfx::GdkPixbufFromSkBitmap(&icon);
346 } 346 }
347 347
348 // static 348 // static
349 NativeTableWrapper* NativeTableWrapper::CreateNativeWrapper(TableView2* table) { 349 NativeTableWrapper* NativeTableWrapper::CreateNativeWrapper(TableView2* table) {
350 return new NativeTableGtk(table); 350 return new NativeTableGtk(table);
351 } 351 }
352 352
353 } // namespace views 353 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698