Mercurial > geeqie.yaz
comparison src/view_dir.c @ 396:a01535f52b56
Merge few more functions to view_dir.c.
author | zas_ |
---|---|
date | Thu, 17 Apr 2008 17:19:41 +0000 |
parents | c359fc2c5a1f |
children | a7be56e84870 |
comparison
equal
deleted
inserted
replaced
395:c359fc2c5a1f | 396:a01535f52b56 |
---|---|
130 } | 130 } |
131 | 131 |
132 return ret; | 132 return ret; |
133 } | 133 } |
134 | 134 |
135 void vd_select_row(ViewDir *vd, FileData *fd) | |
136 { | |
137 switch(vd->type) | |
138 { | |
139 case DIRVIEW_LIST: vdlist_select_row(vd, fd); break; | |
140 case DIRVIEW_TREE: vdtree_select_row(vd, fd); break; | |
141 } | |
142 } | |
143 | |
135 gint vd_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter) | 144 gint vd_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter) |
136 { | 145 { |
137 gint ret = FALSE; | 146 gint ret = FALSE; |
138 | 147 |
139 switch(vd->type) | 148 switch(vd->type) |
870 gtk_tree_path_free(tpath); | 879 gtk_tree_path_free(tpath); |
871 *y += ch; | 880 *y += ch; |
872 popup_menu_position_clamp(menu, x, y, 0); | 881 popup_menu_position_clamp(menu, x, y, 0); |
873 } | 882 } |
874 | 883 |
884 void vd_activate_cb(GtkTreeView *tview, GtkTreePath *tpath, GtkTreeViewColumn *column, gpointer data) | |
885 { | |
886 ViewDir *vd = data; | |
887 GtkTreeModel *store; | |
888 GtkTreeIter iter; | |
889 FileData *fd; | |
890 | |
891 store = gtk_tree_view_get_model(tview); | |
892 gtk_tree_model_get_iter(store, &iter, tpath); | |
893 switch (vd->type) | |
894 { | |
895 case DIRVIEW_LIST: | |
896 gtk_tree_model_get(store, &iter, DIR_COLUMN_POINTER, &fd, -1); | |
897 break; | |
898 case DIRVIEW_TREE: | |
899 { | |
900 NodeData *nd; | |
901 gtk_tree_model_get(store, &iter, DIR_COLUMN_POINTER, &nd, -1); | |
902 fd = (nd) ? nd->fd : NULL; | |
903 }; | |
904 break; | |
905 } | |
906 | |
907 vd_select_row(vd, fd); | |
908 } | |
909 | |
910 static GdkColor *vd_color_shifted(GtkWidget *widget) | |
911 { | |
912 static GdkColor color; | |
913 static GtkWidget *done = NULL; | |
914 | |
915 if (done != widget) | |
916 { | |
917 GtkStyle *style; | |
918 | |
919 style = gtk_widget_get_style(widget); | |
920 memcpy(&color, &style->base[GTK_STATE_NORMAL], sizeof(color)); | |
921 shift_color(&color, -1, 0); | |
922 done = widget; | |
923 } | |
924 | |
925 return &color; | |
926 } | |
927 | |
928 void vd_color_cb(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, | |
929 GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) | |
930 { | |
931 ViewDir *vd = data; | |
932 gboolean set; | |
933 | |
934 gtk_tree_model_get(tree_model, iter, DIR_COLUMN_COLOR, &set, -1); | |
935 g_object_set(G_OBJECT(cell), | |
936 "cell-background-gdk", vd_color_shifted(vd->view), | |
937 "cell-background-set", set, NULL); | |
938 } | |
939 |