Yasumichi Akahoshi
yasum****@users*****
2005年 9月 6日 (火) 21:45:10 JST
Index: cxplorer/src/cxp-right-pane.c diff -u cxplorer/src/cxp-right-pane.c:1.61 cxplorer/src/cxp-right-pane.c:1.62 --- cxplorer/src/cxp-right-pane.c:1.61 Tue Sep 6 21:32:01 2005 +++ cxplorer/src/cxp-right-pane.c Tue Sep 6 21:45:10 2005 @@ -80,11 +80,15 @@ GtkTreeViewColumn * column, gpointer user_data); static void cxp_right_pane_on_key_pressed (GtkWidget *widget, GdkEventKey *event, gpointer user_data); +static void cxp_right_pane_draw_icon (GtkTreeViewColumn * tree_column, + GtkCellRenderer * cell, + GtkTreeModel * tree_model, + GtkTreeIter * iter, gpointer data); static void cxp_right_pane_draw_filename (GtkTreeViewColumn * tree_column, GtkCellRenderer * cell, GtkTreeModel * tree_model, GtkTreeIter * iter, gpointer data); -static void cxp_right_pane_draw_icon (GtkTreeViewColumn * tree_column, +static void cxp_right_pane_draw_filetype (GtkTreeViewColumn * tree_column, GtkCellRenderer * cell, GtkTreeModel * tree_model, GtkTreeIter * iter, gpointer data); @@ -361,9 +365,10 @@ /* 3rd column */ renderer = gtk_cell_renderer_text_new (); - column = gtk_tree_view_column_new_with_attributes (_("Type"), renderer, - "text", - FILE_LIST_COL_MIMETYPE, NULL); + column = gtk_tree_view_column_new_with_attributes (_("Type"), renderer, NULL); + gtk_tree_view_column_set_cell_data_func (column, renderer, + cxp_right_pane_draw_filetype, + self, NULL); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (column, 100); @@ -498,6 +503,29 @@ } } +/** + * This function is called back before pixbuf cell is painted. + * @param tree_column [in] Pointer to instance fo GtkTreeViewColumn. + * @param cell [in] Pointer to instance of GtkCellRender which render pixbuf. + * @param tree_model [in] Pointer to memory model of GtkTreeView. + * @param iter [in] Iterator of node which want to be paint by GtkCellRender. + * @param data [in] Pointer to data which is defined by user. + */ +static void cxp_right_pane_draw_icon (GtkTreeViewColumn * tree_column, + GtkCellRenderer * cell, + GtkTreeModel * tree_model, + GtkTreeIter * iter, gpointer data) +{ + gchar *mimetype; + GdkPixbuf *icon; + + gtk_tree_model_get (tree_model, iter, FILE_LIST_COL_MIMETYPE, + &mimetype, -1); + icon = cxp_lookup_icon_from_mime (mimetype); + g_object_set (cell, "pixbuf", icon, NULL); + g_free (mimetype); +} + static void cxp_right_pane_draw_filename (GtkTreeViewColumn * tree_column, GtkCellRenderer * cell, GtkTreeModel * tree_model, @@ -517,27 +545,21 @@ g_free (fullpath); } -/** - * This function is called back before pixbuf cell is painted. - * @param tree_column [in] Pointer to instance fo GtkTreeViewColumn. - * @param cell [in] Pointer to instance of GtkCellRender which render pixbuf. - * @param tree_model [in] Pointer to memory model of GtkTreeView. - * @param iter [in] Iterator of node which want to be paint by GtkCellRender. - * @param data [in] Pointer to data which is defined by user. - */ -static void cxp_right_pane_draw_icon (GtkTreeViewColumn * tree_column, +static void cxp_right_pane_draw_filetype (GtkTreeViewColumn * tree_column, GtkCellRenderer * cell, GtkTreeModel * tree_model, GtkTreeIter * iter, gpointer data) { gchar *mimetype; - GdkPixbuf *icon; + gchar *comment; - gtk_tree_model_get (tree_model, iter, FILE_LIST_COL_MIMETYPE, - &mimetype, -1); - icon = cxp_lookup_icon_from_mime (mimetype); - g_object_set (cell, "pixbuf", icon, NULL); + gtk_tree_model_get (tree_model, iter, FILE_LIST_COL_MIMETYPE, &mimetype, -1); + comment = cxp_get_mime_comment (mimetype); g_free (mimetype); + + g_object_set (cell, "text", comment, NULL); + + g_free (comment); } /**