The list of files in `interface/` is getting quite long. This makes it harder to scan the list visually. File should also be named and structured in a way, that just by briefly looking at a list of files and directories, it's clear what kind of elements and logic the code deals with. This is a quality for high level readability. Long lists of files make this harder. At the same time we should encourage splitting files into more manageable, more coherent files.
With directories you also have a more isolated environment for internal data and functions. E.g. `interface_handlers.c` could be split into multiple files with a common header inside a `handlers/` directory.
## Proposal
I'd propose the following file/directory structure to start with:
```lines=15
interface/
eyedroppers/
interface_eyedropper.c
interface_eyedropper_colorband.c
interface_eyedropper_color.c
interface_eyedropper_datablock.c
interface_eyedropper_depth.c
interface_eyedropper_driver.c
interface_eyedropper_gpencil_color.c
interface_eyedropper_intern.h
regions/
interface_region_color_picker.cc
interface_region_hud.cc
interface_region_menu_pie.cc
interface_region_menu_popup.cc
interface_region_popover.cc
interface_region_popup.cc
interface_regions.cc
interface_region_search.cc
interface_regions_intern.h
interface_region_tooltip.c
templates/
interface_template_asset_view.cc
interface_template_attribute_search.cc
interface_template_list.cc
interface_templates.c
interface_template_search_menu.cc
interface_template_search_operator.c
views/
tree_view.cc
grid_view.cc /* future */
table_view.cc /* future */
view2d/
view2d.cc
view2d_draw.cc
view2d_edge_pan.cc
view2d_gizmo_navigate.cc
view2d_ops.cc
CMakeLists.txt
interface_align.c
interface_anim.c
interface_button_group.c
interface.cc
interface_context_menu.c
interface_context_path.cc
interface_draw.c
interface_dropboxes.cc
interface_handlers.c
interface_icons.c
interface_icons_event.c
interface_intern.h
interface_layout.c
interface_ops.c
interface_panel.c
interface_query.cc
interface_style.cc
interface_undo.c
interface_utils.cc
interface_view.cc
interface_widgets.c
resources.c
```