Mercurial > geeqie
comparison src/view_file_icon.c @ 966:c24a297efbef
marks in iconview made clickable
author | nadvornik |
---|---|
date | Sat, 16 Aug 2008 23:37:26 +0000 |
parents | ba1d3c4bc0cd |
children | eb5dbdff14f6 |
comparison
equal
deleted
inserted
replaced
965:cbdabb499684 | 966:c24a297efbef |
---|---|
366 } | 366 } |
367 } | 367 } |
368 | 368 |
369 return NULL; | 369 return NULL; |
370 } | 370 } |
371 | |
372 static void vficon_mark_toggled_cb(GtkCellRendererToggle *cell, gchar *path_str, gpointer data) | |
373 { | |
374 ViewFile *vf = data; | |
375 GtkTreeModel *store; | |
376 GtkTreePath *path = gtk_tree_path_new_from_string(path_str); | |
377 GtkTreeIter row; | |
378 gint column; | |
379 GList *list; | |
380 guint toggled_mark; | |
381 | |
382 store = gtk_tree_view_get_model(GTK_TREE_VIEW(vf->listview)); | |
383 if (!path || !gtk_tree_model_get_iter(store, &row, path)) | |
384 return; | |
385 | |
386 gtk_tree_model_get(store, &row, FILE_COLUMN_POINTER, &list, -1); | |
387 | |
388 column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell), "column_number")); | |
389 g_object_get(G_OBJECT(cell), "toggled_mark", &toggled_mark, NULL); | |
390 | |
391 IconData *id = g_list_nth_data(list, column); | |
392 | |
393 if (id) | |
394 { | |
395 FileData *fd = id->fd; | |
396 file_data_set_mark(fd, toggled_mark, !file_data_get_mark(fd, toggled_mark)); | |
397 } | |
398 } | |
399 | |
371 | 400 |
372 /* | 401 /* |
373 *------------------------------------------------------------------- | 402 *------------------------------------------------------------------- |
374 * tooltip type window | 403 * tooltip type window |
375 *------------------------------------------------------------------- | 404 *------------------------------------------------------------------- |
1378 break; | 1407 break; |
1379 default: | 1408 default: |
1380 break; | 1409 break; |
1381 } | 1410 } |
1382 | 1411 |
1383 return TRUE; | 1412 return FALSE; |
1384 } | 1413 } |
1385 | 1414 |
1386 gint vficon_release_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data) | 1415 gint vficon_release_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data) |
1387 { | 1416 { |
1388 ViewFile *vf = data; | 1417 ViewFile *vf = data; |
2281 name_sidecars = g_strdup_printf("%s %s", id->fd->name, sidecars); | 2310 name_sidecars = g_strdup_printf("%s %s", id->fd->name, sidecars); |
2282 } | 2311 } |
2283 | 2312 |
2284 g_object_set(cell, "pixbuf", id->fd->thumb_pixbuf, | 2313 g_object_set(cell, "pixbuf", id->fd->thumb_pixbuf, |
2285 "text", name_sidecars, | 2314 "text", name_sidecars, |
2286 "marks", id->fd->marks, | 2315 "marks", file_data_get_marks(id->fd), |
2287 "show_marks", vf->marks_enabled, | 2316 "show_marks", vf->marks_enabled, |
2288 "cell-background-gdk", &color_bg, | 2317 "cell-background-gdk", &color_bg, |
2289 "cell-background-set", TRUE, | 2318 "cell-background-set", TRUE, |
2290 "foreground-gdk", &color_fg, | 2319 "foreground-gdk", &color_fg, |
2291 "foreground-set", TRUE, | 2320 "foreground-set", TRUE, |
2325 g_object_set(G_OBJECT(renderer), "xpad", THUMB_BORDER_PADDING * 2, | 2354 g_object_set(G_OBJECT(renderer), "xpad", THUMB_BORDER_PADDING * 2, |
2326 "ypad", THUMB_BORDER_PADDING, | 2355 "ypad", THUMB_BORDER_PADDING, |
2327 "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL); | 2356 "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL); |
2328 | 2357 |
2329 g_object_set_data(G_OBJECT(column), "column_number", GINT_TO_POINTER(n)); | 2358 g_object_set_data(G_OBJECT(column), "column_number", GINT_TO_POINTER(n)); |
2359 g_object_set_data(G_OBJECT(renderer), "column_number", GINT_TO_POINTER(n)); | |
2330 | 2360 |
2331 cd = g_new0(ColumnData, 1); | 2361 cd = g_new0(ColumnData, 1); |
2332 cd->vf = vf; | 2362 cd->vf = vf; |
2333 cd->number = n; | 2363 cd->number = n; |
2334 gtk_tree_view_column_set_cell_data_func(column, renderer, vficon_cell_data_cb, cd, g_free); | 2364 gtk_tree_view_column_set_cell_data_func(column, renderer, vficon_cell_data_cb, cd, g_free); |
2335 | 2365 |
2336 gtk_tree_view_append_column(GTK_TREE_VIEW(vf->listview), column); | 2366 gtk_tree_view_append_column(GTK_TREE_VIEW(vf->listview), column); |
2367 | |
2368 g_signal_connect(G_OBJECT(renderer), "toggled", G_CALLBACK(vficon_mark_toggled_cb), vf); | |
2337 } | 2369 } |
2338 | 2370 |
2339 /* | 2371 /* |
2340 *----------------------------------------------------------------------------- | 2372 *----------------------------------------------------------------------------- |
2341 * base | 2373 * base |