跳转至

ui/core/theme.h

Interface for CF UI theme components. More...

Namespaces

Name
cf
cf::ui
cf::ui::core

Classes

Name
struct cf::ui::core::ICFTheme
Interface for CF UI theme components.

Detailed Description

Interface for CF UI theme components.

Author: N/A

Version: N/A

Since: N/A

Date: N/A

Defines the ICFTheme interface which provides access to color schemes, motion specifications, radius scales, and font types for UI theming.

Source code

#pragma once

#include "color_scheme.h"
#include "export.h"
#include "font_type.h"
#include "motion_spec.h"
#include "radius_scale.h"
#include <memory>

namespace cf::ui::core {

struct CF_UI_EXPORT ICFTheme {
  public:
    friend class ThemeFactory;

    virtual ~ICFTheme() = default;

    ICFColorScheme& color_scheme() const { return *color_scheme_; }

    IMotionSpec& motion_spec() const { return *motion_spec_; }

    IRadiusScale& radius_scale() const { return *radius_scale_; }

    IFontType& font_type() const { return *font_type_; }

  protected:
    ICFTheme() = default;

    std::unique_ptr<ICFColorScheme> color_scheme_;

    std::unique_ptr<IMotionSpec> motion_spec_;

    std::unique_ptr<IRadiusScale> radius_scale_;

    std::unique_ptr<IFontType> font_type_;
};

} // namespace cf::ui::core

Updated on 2026-03-09 at 10:14:01 +0000