Loading...
Searching...
No Matches
PortVisibility.hpp
1#pragma once
2#include <score_lib_process_export.h>
3
4namespace Process
5{
6class Port;
7
11static const constexpr int MaxUnpaginatedControls = 32;
12
14static const constexpr int ControlsPerPage = 20;
15
18static const constexpr int ControlsPerColumn = 5;
19
21SCORE_LIB_PROCESS_EXPORT
22bool isControlPort(const Process::Port& port) noexcept;
23
27SCORE_LIB_PROCESS_EXPORT
28bool isVisibleWhenFolded(const Process::Port& port) noexcept;
29
32{
33 int page{};
34 int pageCount{1};
35 int first{};
36 int last{};
37
38 bool paginated() const noexcept { return pageCount > 1; }
39 int count() const noexcept { return last - first; }
40
41 bool operator==(const ControlPage&) const noexcept = default;
42};
43
51SCORE_LIB_PROCESS_EXPORT
52ControlPage
53nodeControlPage(int controlCount, int requestedPage, int gridOffset = 0) noexcept;
54}
Definition Port.hpp:104
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
ControlPage nodeControlPage(int controlCount, int requestedPage, int gridOffset) noexcept
Definition PortVisibility.cpp:24
bool isVisibleWhenFolded(const Process::Port &port) noexcept
Definition PortVisibility.cpp:14
bool isControlPort(const Process::Port &port) noexcept
True for the ports whose value is edited through a widget in the node body.
Definition PortVisibility.cpp:8
Which slice of a node's controls is currently displayed.
Definition PortVisibility.hpp:32
int page
displayed page, clamped to [0, pageCount)
Definition PortVisibility.hpp:33
int first
index of the first displayed control
Definition PortVisibility.hpp:35
int last
one past the index of the last displayed control
Definition PortVisibility.hpp:36
int pageCount
total number of pages
Definition PortVisibility.hpp:34