Files
OmaPhoto/src/UI/ShapeControls.h
T
雷电芽衣andClaude c864304695
Release / deb (push) Canceled after 0s
Release / rpm (push) Canceled after 0s
Release / arch (push) Canceled after 0s
Release / publish (push) Canceled after 0s
OmaPhoto 1.0.0: the Linux port of Compositor
A layered image editor for Linux and Omarchy, ported from Compositor
(github.com/robbietilton/Compositor), whose Swift source is its
specification. It reads and writes Compositor's .comp projects.

Packages for Ubuntu, Fedora and Arch come from the release workflow;
scripts/install/ holds one install script per distribution family,
and flake.nix serves NixOS.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-26 00:44:52 -04:00

37 lines
1.1 KiB
C++

#pragma once
#include "Document/ShapeTool.h"
#include "UI/ToolHeaderStyle.h"
#include <array>
class EditorSession;
class QButtonGroup;
class QSlider;
class QToolButton;
class SelectionAmountField;
class SwatchButton;
// Swift's ShapeControls: the kind, a line's width, a rectangle's radius.
class ShapeControls : public ToolHeaderBar {
Q_OBJECT
public:
explicit ShapeControls(EditorSession &session, QWidget *parent = nullptr);
private:
QToolButton *kind(ShapeKind value);
// A label, slider, field and "px", as Swift's HStack.
QWidget *amount(const QString &name, QSlider *slider, SelectionAmountField *field);
void synchronize();
EditorSession &m_session;
QButtonGroup *const m_kinds;
const std::array<QToolButton *, 3> m_kindButtons;
QSlider *const m_widthSlider;
SelectionAmountField *const m_widthField;
QWidget *const m_width;
QSlider *const m_radiusSlider;
SelectionAmountField *const m_radiusField;
QWidget *const m_radius;
// Shapes fill with the foreground colour.
SwatchButton *const m_fill;
};