Gimp/app/actions/actions-types.h
Jehan 576554a0af app: Up/Down in GimpContainerTreeView should select items "visually".
layers-select-next/layers-select-previous don't work well as up/down
arrow behavior because they only work within each selected layer's
level. But historically (and that's what makes the most sense IMO, and
is the most expected behavior), up/down arrows would walk through the
layer list visually. I.e. that it would select next whatever is the next
layer displayed in the Layers dockable, even if it means selecting
children or going down one layer group level.

The 2 new actions "layers-select-flattened-previous" and
"layers-select-flattened-next" do this. Say you have this tree:

Layer 1
Layer 2
 | - Layer 3
 | - Layer 4
Layer 5

With the "flattened" actions, after Layer 2, there is Layer 3, and after
Layer 4, there is Layer 5… unless… Layer 2 (layer group) is collapsed.
In which case, after Layer 2 is Layer 5. This selection movement indeed
takes into account the state of the layer group expanders.

This makes the Up/Down arrows work similarly to how they used to work
with default GtkTreeView implementation, except that the logic now also
works well with multiple selected items.
2024-08-13 16:41:21 +02:00

56 lines
1.8 KiB
C

/* GIMP - The GNU Image Manipulation Program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef __ACTIONS_TYPES_H__
#define __ACTIONS_TYPES_H__
#include "dialogs/dialogs-types.h"
#include "tools/tools-types.h"
typedef enum
{
GIMP_ACTION_SELECT_SET = 0,
GIMP_ACTION_SELECT_SET_TO_DEFAULT = -1,
GIMP_ACTION_SELECT_FIRST = -2,
GIMP_ACTION_SELECT_LAST = -3,
GIMP_ACTION_SELECT_SMALL_PREVIOUS = -4,
GIMP_ACTION_SELECT_SMALL_NEXT = -5,
GIMP_ACTION_SELECT_PREVIOUS = -6,
GIMP_ACTION_SELECT_NEXT = -7,
GIMP_ACTION_SELECT_SKIP_PREVIOUS = -8,
GIMP_ACTION_SELECT_SKIP_NEXT = -9,
GIMP_ACTION_SELECT_PERCENT_PREVIOUS = -10,
GIMP_ACTION_SELECT_PERCENT_NEXT = -11,
GIMP_ACTION_SELECT_FLAT_PREVIOUS = -12,
GIMP_ACTION_SELECT_FLAT_NEXT = -13,
} GimpActionSelectType;
typedef enum
{
GIMP_SAVE_MODE_SAVE,
GIMP_SAVE_MODE_SAVE_AS,
GIMP_SAVE_MODE_SAVE_A_COPY,
GIMP_SAVE_MODE_SAVE_AND_CLOSE,
GIMP_SAVE_MODE_EXPORT,
GIMP_SAVE_MODE_EXPORT_AS,
GIMP_SAVE_MODE_OVERWRITE
} GimpSaveMode;
#endif /* __ACTIONS_TYPES_H__ */