From: Arkadiy Illarionov Date: Sat, 13 Apr 2024 12:31:44 +0000 (+0300) Subject: Use references in pan_layout_compute() parameters X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=2a5c2a898b9914fc87818ab79aa98d3e55621b4c Use references in pan_layout_compute() parameters Simplify related functions. --- diff --git a/src/pan-view/pan-calendar.cc b/src/pan-view/pan-calendar.cc index 746bb70b..e3faa61f 100644 --- a/src/pan-view/pan-calendar.cc +++ b/src/pan-view/pan-calendar.cc @@ -203,7 +203,7 @@ void pan_calendar_update(PanWindow *pw, PanItem *pi_day) pan_layout_resize(pw); } -void pan_calendar_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height) +void pan_calendar_compute(PanWindow *pw, FileData *dir_fd, gint &width, gint &height) { GList *list; GList *work; @@ -275,8 +275,8 @@ void pan_calendar_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *he end_month = pan_date_value(fd->date, PAN_DATE_LENGTH_MONTH); } - *width = PAN_BOX_BORDER * 2; - *height = PAN_BOX_BORDER * 2; + width = PAN_BOX_BORDER * 2; + height = PAN_BOX_BORDER * 2; x = PAN_BOX_BORDER; y = PAN_BOX_BORDER; @@ -441,8 +441,8 @@ void pan_calendar_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *he } } - *width += grid; - *height = MAX(*height, grid + PAN_BOX_BORDER * 2 * 2); + width += grid; + height = MAX(height, grid + PAN_BOX_BORDER * 2 * 2); g_list_free(list); } diff --git a/src/pan-view/pan-calendar.h b/src/pan-view/pan-calendar.h index 32793031..b06a010a 100644 --- a/src/pan-view/pan-calendar.h +++ b/src/pan-view/pan-calendar.h @@ -29,6 +29,6 @@ struct PanItem; struct PanWindow; void pan_calendar_update(PanWindow *pw, PanItem *pi_day); -void pan_calendar_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height); +void pan_calendar_compute(PanWindow *pw, FileData *dir_fd, gint &width, gint &height); #endif diff --git a/src/pan-view/pan-folder.cc b/src/pan-view/pan-folder.cc index 8c8a6aa6..9e3eff30 100644 --- a/src/pan-view/pan-folder.cc +++ b/src/pan-view/pan-folder.cc @@ -21,6 +21,7 @@ #include "pan-folder.h" +#include #include #include "filedata.h" @@ -30,7 +31,7 @@ #include "pan-view-filter.h" #include "typedefs.h" -static void pan_flower_size(PanWindow *pw, gint *width, gint *height) +static void pan_flower_size(PanWindow *pw, gint &width, gint &height) { GList *work; gint x1; @@ -87,8 +88,8 @@ static void pan_flower_size(PanWindow *pw, gint *width, gint *height) } } - if (width) *width = x2 - x1; - if (height) *height = y2 - y1; + width = x2 - x1; + height = y2 - y1; } struct FlowerGroup { @@ -350,8 +351,8 @@ static FlowerGroup *pan_flower_group(PanWindow *pw, FileData *dir_fd, gint x, gi } void pan_flower_compute(PanWindow *pw, FileData *dir_fd, - gint *width, gint *height, - gint *scroll_x, gint *scroll_y) + gint &width, gint &height, + gint &scroll_x, gint &scroll_y) { FlowerGroup *group; GList *list; @@ -365,16 +366,16 @@ void pan_flower_compute(PanWindow *pw, FileData *dir_fd, if (list) { auto pi = static_cast(list->data); - *scroll_x = pi->x + pi->width / 2; - *scroll_y = pi->y + pi->height / 2; + scroll_x = pi->x + pi->width / 2; + scroll_y = pi->y + pi->height / 2; } g_list_free(list); } static void pan_folder_tree_path(PanWindow *pw, FileData *dir_fd, - gint *x, gint *y, gint *level, - PanItem *parent, - gint *width, gint *height) + gint &x, gint &y, gint level, + PanItem *parent, + gint &width, gint &height) { GList *f; GList *d; @@ -390,23 +391,23 @@ static void pan_folder_tree_path(PanWindow *pw, FileData *dir_fd, pan_filter_fd_list(&f, pw->filter_ui->filter_elements, pw->filter_ui->filter_classes); - *x = PAN_BOX_BORDER + ((*level) * MAX(PAN_BOX_BORDER, PAN_THUMB_GAP)); + x = PAN_BOX_BORDER + (level * MAX(PAN_BOX_BORDER, PAN_THUMB_GAP)); - pi_box = pan_item_text_new(pw, *x, *y, dir_fd->path, PAN_TEXT_ATTR_NONE, - PAN_BORDER_3, - {PAN_TEXT_COLOR, 255}); + pi_box = pan_item_text_new(pw, x, y, dir_fd->path, PAN_TEXT_ATTR_NONE, + PAN_BORDER_3, + {PAN_TEXT_COLOR, 255}); - *y += pi_box->height; + y += pi_box->height; pi_box = pan_item_box_new(pw, file_data_ref(dir_fd), - *x, *y, - PAN_BOX_BORDER, PAN_BOX_BORDER, - PAN_BOX_OUTLINE_THICKNESS, - {PAN_BOX_COLOR, PAN_BOX_ALPHA}, - {PAN_BOX_OUTLINE_COLOR, PAN_BOX_OUTLINE_ALPHA}); + x, y, + PAN_BOX_BORDER, PAN_BOX_BORDER, + PAN_BOX_OUTLINE_THICKNESS, + {PAN_BOX_COLOR, PAN_BOX_ALPHA}, + {PAN_BOX_OUTLINE_COLOR, PAN_BOX_OUTLINE_ALPHA}); - *x += PAN_BOX_BORDER; - *y += PAN_BOX_BORDER; + x += PAN_BOX_BORDER; + y += PAN_BOX_BORDER; work = f; while (work) @@ -419,21 +420,21 @@ static void pan_folder_tree_path(PanWindow *pw, FileData *dir_fd, if (pw->size > PAN_IMAGE_SIZE_THUMB_LARGE) { - pi = pan_item_image_new(pw, fd, *x, *y, 10, 10); - *x += pi->width + PAN_THUMB_GAP; + pi = pan_item_image_new(pw, fd, x, y, 10, 10); + x += pi->width + PAN_THUMB_GAP; if (pi->height > y_height) y_height = pi->height; } else { - pi = pan_item_thumb_new(pw, fd, *x, *y); - *x += PAN_THUMB_SIZE + PAN_THUMB_GAP; + pi = pan_item_thumb_new(pw, fd, x, y); + x += PAN_THUMB_SIZE + PAN_THUMB_GAP; y_height = PAN_THUMB_SIZE; } pan_item_size_by_item(pi_box, pi, PAN_BOX_BORDER); } - if (f) *y = pi_box->y + pi_box->height; + if (f) y = pi_box->y + pi_box->height; g_list_free(f); @@ -447,9 +448,7 @@ static void pan_folder_tree_path(PanWindow *pw, FileData *dir_fd, if (!pan_is_ignored(fd->path, pw->ignore_symlinks)) { - *level = *level + 1; - pan_folder_tree_path(pw, fd, x, y, level, pi_box, width, height); - *level = *level - 1; + pan_folder_tree_path(pw, fd, x, y, level + 1, pi_box, width, height); } } @@ -457,29 +456,21 @@ static void pan_folder_tree_path(PanWindow *pw, FileData *dir_fd, pan_item_size_by_item(parent, pi_box, PAN_BOX_BORDER); - if (*y < pi_box->y + pi_box->height + PAN_BOX_BORDER) - *y = pi_box->y + pi_box->height + PAN_BOX_BORDER; + y = std::max(y, pi_box->y + pi_box->height + PAN_BOX_BORDER); pan_item_size_coordinates(pi_box, PAN_BOX_BORDER, width, height); } -void pan_folder_tree_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height) +void pan_folder_tree_compute(PanWindow *pw, FileData *dir_fd, gint &width, gint &height) { gint x; gint y; - gint level; - gint w; - gint h; - level = 0; x = PAN_BOX_BORDER; y = PAN_BOX_BORDER; - w = PAN_BOX_BORDER * 2; - h = PAN_BOX_BORDER * 2; - - pan_folder_tree_path(pw, dir_fd, &x, &y, &level, nullptr, &w, &h); + width = PAN_BOX_BORDER * 2; + height = PAN_BOX_BORDER * 2; - if (width) *width = w; - if (height) *height = h; + pan_folder_tree_path(pw, dir_fd, x, y, 0, nullptr, width, height); } /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ diff --git a/src/pan-view/pan-folder.h b/src/pan-view/pan-folder.h index 525ab668..96031b4d 100644 --- a/src/pan-view/pan-folder.h +++ b/src/pan-view/pan-folder.h @@ -28,8 +28,8 @@ struct FileData; struct PanWindow; void pan_flower_compute(PanWindow *pw, FileData *dir_fd, - gint *width, gint *height, - gint *scroll_x, gint *scroll_y); -void pan_folder_tree_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height); + gint &width, gint &height, + gint &scroll_x, gint &scroll_y); +void pan_folder_tree_compute(PanWindow *pw, FileData *dir_fd, gint &width, gint &height); #endif diff --git a/src/pan-view/pan-grid.cc b/src/pan-view/pan-grid.cc index 4d6583d7..74bbd6c9 100644 --- a/src/pan-view/pan-grid.cc +++ b/src/pan-view/pan-grid.cc @@ -29,7 +29,7 @@ #include "pan-view-filter.h" #include "typedefs.h" -void pan_grid_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height) +void pan_grid_compute(PanWindow *pw, FileData *dir_fd, gint &width, gint &height) { GList *list; GList *work; @@ -53,8 +53,8 @@ void pan_grid_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height next_y = 0; - *width = PAN_BOX_BORDER * 2; - *height = PAN_BOX_BORDER * 2; + width = PAN_BOX_BORDER * 2; + height = PAN_BOX_BORDER * 2; x = PAN_THUMB_GAP; y = PAN_THUMB_GAP; diff --git a/src/pan-view/pan-grid.h b/src/pan-view/pan-grid.h index b3671bd2..055e3106 100644 --- a/src/pan-view/pan-grid.h +++ b/src/pan-view/pan-grid.h @@ -27,6 +27,6 @@ struct FileData; struct PanWindow; -void pan_grid_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height); +void pan_grid_compute(PanWindow *pw, FileData *dir_fd, gint &width, gint &height); #endif diff --git a/src/pan-view/pan-item.cc b/src/pan-view/pan-item.cc index bd945037..e81fad7e 100644 --- a/src/pan-view/pan-item.cc +++ b/src/pan-view/pan-item.cc @@ -21,6 +21,7 @@ #include "pan-item.h" +#include #include #include @@ -108,12 +109,12 @@ void pan_item_size_by_item(PanItem *pi, PanItem *child, gint border) pi->height = child->y + child->height + border - pi->y; } -void pan_item_size_coordinates(PanItem *pi, gint border, gint *w, gint *h) +void pan_item_size_coordinates(PanItem *pi, gint border, gint &w, gint &h) { if (!pi) return; - if (*w < pi->x + pi->width + border) *w = pi->x + pi->width + border; - if (*h < pi->y + pi->height + border) *h = pi->y + pi->height + border; + w = std::max(w, pi->x + pi->width + border); + h = std::max(h, pi->y + pi->height + border); } diff --git a/src/pan-view/pan-item.h b/src/pan-view/pan-item.h index 6c916efe..a992e21a 100644 --- a/src/pan-view/pan-item.h +++ b/src/pan-view/pan-item.h @@ -38,7 +38,7 @@ void pan_item_remove(PanWindow *pw, PanItem *pi); // Determine sizes void pan_item_size_by_item(PanItem *pi, PanItem *child, gint border); -void pan_item_size_coordinates(PanItem *pi, gint border, gint *w, gint *h); +void pan_item_size_coordinates(PanItem *pi, gint border, gint &w, gint &h); // Find items PanItem *pan_item_find_by_key(PanWindow *pw, PanItemType type, const gchar *key); diff --git a/src/pan-view/pan-timeline.cc b/src/pan-view/pan-timeline.cc index f0a1e08b..0a4e52b3 100644 --- a/src/pan-view/pan-timeline.cc +++ b/src/pan-view/pan-timeline.cc @@ -38,7 +38,7 @@ constexpr gint PAN_GROUP_MAX = 16; } // namespace -void pan_timeline_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height) +void pan_timeline_compute(PanWindow *pw, FileData *dir_fd, gint &width, gint &height) { GList *list; GList *work; @@ -67,8 +67,8 @@ void pan_timeline_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *he pw->cache_list = pan_cache_sort(pw->cache_list, SORT_TIME, TRUE, TRUE); list = filelist_sort(list, SORT_TIME, TRUE, TRUE); - *width = PAN_BOX_BORDER * 2; - *height = PAN_BOX_BORDER * 2; + width = PAN_BOX_BORDER * 2; + height = PAN_BOX_BORDER * 2; x = 0; y = 0; diff --git a/src/pan-view/pan-timeline.h b/src/pan-view/pan-timeline.h index f8afd9de..d408a29c 100644 --- a/src/pan-view/pan-timeline.h +++ b/src/pan-view/pan-timeline.h @@ -27,6 +27,6 @@ struct FileData; struct PanWindow; -void pan_timeline_compute(PanWindow *pw, FileData *dir_fd, gint *width, gint *height); +void pan_timeline_compute(PanWindow *pw, FileData *dir_fd, gint &width, gint &height); #endif diff --git a/src/pan-view/pan-view.cc b/src/pan-view/pan-view.cc index e1d68867..82118ad4 100644 --- a/src/pan-view/pan-view.cc +++ b/src/pan-view/pan-view.cc @@ -894,8 +894,8 @@ static void pan_window_items_free(PanWindow *pw) */ static void pan_layout_compute(PanWindow *pw, FileData *dir_fd, - gint *width, gint *height, - gint *scroll_x, gint *scroll_y) + gint &width, gint &height, + gint &scroll_x, gint &scroll_y) { pan_window_items_free(pw); @@ -944,10 +944,10 @@ static void pan_layout_compute(PanWindow *pw, FileData *dir_fd, break; } - *width = 0; - *height = 0; - *scroll_x = 0; - *scroll_y = 0; + width = 0; + height = 0; + scroll_x = 0; + scroll_y = 0; switch (pw->layout) { @@ -1122,7 +1122,7 @@ static gint pan_layout_update_idle_cb(gpointer data) } } - pan_layout_compute(pw, pw->dir_fd, &width, &height, &scroll_x, &scroll_y); + pan_layout_compute(pw, pw->dir_fd, width, height, scroll_x, scroll_y); pan_window_zoom_limit(pw);