/*
* Geeqie
* (C) 2006 John Ellis
+ * Copyright (C) 2008 - 2012 The Geeqie Team
*
* Author: John Ellis
*
*/
-#include "gqview.h"
+#include "main.h"
#include "pan-types.h"
#include <math.h>
group->y += y;
}
-#define PI 3.14159
+#define PI 3.14159265
static void pan_flower_position(FlowerGroup *group, FlowerGroup *parent,
gint *result_x, gint *result_y)
a = 2*PI * group->diameter / parent->circumference;
- x = (gint)((double)radius * cos(parent->angle + a / 2));
- y = (gint)((double)radius * sin(parent->angle + a / 2));
+ x = (gint)((gdouble)radius * cos(parent->angle + a / 2));
+ y = (gint)((gdouble)radius * sin(parent->angle + a / 2));
parent->angle += a;
g_free(group);
}
-static FlowerGroup *pan_flower_group(PanWindow *pw, const gchar *path, gint x, gint y)
+static FlowerGroup *pan_flower_group(PanWindow *pw, FileData *dir_fd, gint x, gint y)
{
FlowerGroup *group;
GList *f;
gint grid_size;
gint grid_count;
- if (!filelist_read(path, &f, &d)) return NULL;
+ if (!filelist_read(dir_fd, &f, &d)) return NULL;
if (!f && !d) return NULL;
f = filelist_sort(f, SORT_NAME, TRUE);
d = filelist_sort(d, SORT_NAME, TRUE);
- pi_box = pan_item_text_new(pw, x, y, path, PAN_TEXT_ATTR_NONE,
+ pi_box = pan_item_text_new(pw, x, y, dir_fd->path, PAN_TEXT_ATTR_NONE,
PAN_TEXT_BORDER_SIZE,
PAN_TEXT_COLOR, 255);
y += pi_box->height;
- pi_box = pan_item_box_new(pw, file_data_new_simple(path),
+ pi_box = pan_item_box_new(pw, file_data_ref(dir_fd),
x, y,
PAN_BOX_BORDER * 2, PAN_BOX_BORDER * 2,
PAN_BOX_OUTLINE_THICKNESS,
group->width = pi_box->width;
group->height = pi_box->y + pi_box->height;
- group->diameter = (int)sqrt(group->width * group->width + group->height * group->height);
+ group->diameter = (gint)sqrt(group->width * group->width + group->height * group->height);
group->children = NULL;
if (!pan_is_ignored(fd->path, pw->ignore_symlinks))
{
- child = pan_flower_group(pw, fd->path, 0, 0);
+ child = pan_flower_group(pw, fd, 0, 0);
if (child) group->children = g_list_prepend(group->children, child);
}
}
return group;
}
-void pan_flower_compute(PanWindow *pw, const gchar *path,
+void pan_flower_compute(PanWindow *pw, FileData *dir_fd,
gint *width, gint *height,
gint *scroll_x, gint *scroll_y)
{
FlowerGroup *group;
GList *list;
- group = pan_flower_group(pw, path, 0, 0);
+ group = pan_flower_group(pw, dir_fd, 0, 0);
pan_flower_build(pw, group, NULL);
pan_flower_size(pw, width, height);
- list = pan_item_find_by_path(pw, PAN_ITEM_BOX, path, FALSE, FALSE);
+ list = pan_item_find_by_fd(pw, PAN_ITEM_BOX, dir_fd, FALSE, FALSE);
if (list)
{
PanItem *pi = list->data;
g_list_free(list);
}
-static void pan_folder_tree_path(PanWindow *pw, const gchar *path,
+static void pan_folder_tree_path(PanWindow *pw, FileData *dir_fd,
gint *x, gint *y, gint *level,
PanItem *parent,
gint *width, gint *height)
PanItem *pi_box;
gint y_height = 0;
- if (!filelist_read(path, &f, &d)) return;
+ if (!filelist_read(dir_fd, &f, &d)) return;
if (!f && !d) return;
f = filelist_sort(f, SORT_NAME, TRUE);
*x = PAN_BOX_BORDER + ((*level) * MAX(PAN_BOX_BORDER, PAN_THUMB_GAP));
- pi_box = pan_item_text_new(pw, *x, *y, path, PAN_TEXT_ATTR_NONE,
+ pi_box = pan_item_text_new(pw, *x, *y, dir_fd->path, PAN_TEXT_ATTR_NONE,
PAN_TEXT_BORDER_SIZE,
PAN_TEXT_COLOR, 255);
*y += pi_box->height;
- pi_box = pan_item_box_new(pw, file_data_new_simple(path),
+ pi_box = pan_item_box_new(pw, file_data_ref(dir_fd),
*x, *y,
PAN_BOX_BORDER, PAN_BOX_BORDER,
PAN_BOX_OUTLINE_THICKNESS,
if (!pan_is_ignored(fd->path, pw->ignore_symlinks))
{
*level = *level + 1;
- pan_folder_tree_path(pw, fd->path, x, y, level, pi_box, width, height);
+ pan_folder_tree_path(pw, fd, x, y, level, pi_box, width, height);
*level = *level - 1;
}
}
pan_item_size_coordinates(pi_box, PAN_BOX_BORDER, width, height);
}
-void pan_folder_tree_compute(PanWindow *pw, const gchar *path, gint *width, gint *height)
+void pan_folder_tree_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height)
{
gint x, y;
gint level;
w = PAN_BOX_BORDER * 2;
h = PAN_BOX_BORDER * 2;
- pan_folder_tree_path(pw, path, &x, &y, &level, NULL, &w, &h);
+ pan_folder_tree_path(pw, dir_fd, &x, &y, &level, NULL, &w, &h);
if (width) *width = w;
if (height) *height = h;
}
-
-
+/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */