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
28SCORE_LIB_PROCESS_EXPORT
29bool isVisibleWhenFolded(const Process::Port& port) noexcept;
30
33{
34 int page{};
35 int pageCount{1};
36 int first{};
37 int last{};
38
39 bool paginated() const noexcept { return pageCount > 1; }
40 int count() const noexcept { return last - first; }
41
42 bool operator==(const ControlPage&) const noexcept = default;
43};
44
52SCORE_LIB_PROCESS_EXPORT
53ControlPage
54nodeControlPage(int controlCount, int requestedPage, int gridOffset = 0) noexcept;
55}
Definition Port.hpp:106
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:33
int page
displayed page, clamped to [0, pageCount)
Definition PortVisibility.hpp:34
int first
index of the first displayed control
Definition PortVisibility.hpp:36
int last
one past the index of the last displayed control
Definition PortVisibility.hpp:37
int pageCount
total number of pages
Definition PortVisibility.hpp:35