跳转至

ui/core/material/cfmaterial_theme.h

Material Design 3 Theme - Complete Theme Implementation. More...

Namespaces

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

Classes

Name
class cf::ui::core::MaterialTheme
Material Design 3 Theme Implementation.

Detailed Description

Material Design 3 Theme - Complete Theme Implementation.

Author: Charliechen114514 (chengh1922@mails.jlu.edu.cn)

Version: 0.1

Date: 2026-02-27

Copyright: Copyright © 2026

Implements ICFTheme interface for Material Design 3, combining:

  • MaterialColorScheme for colors
  • MaterialTypography for fonts
  • MaterialRadiusScale for corner radii
  • MaterialMotionScheme for animations

Source code

#pragma once

#include "../export.h"
#include "../theme.h"
#include "cfmaterial_fonttype.h"
#include "cfmaterial_motion.h"
#include "cfmaterial_radius_scale.h"
#include "cfmaterial_scheme.h"

namespace cf::ui::core {

// Forward declaration for friend access
class MaterialFactory;

class CF_UI_EXPORT MaterialTheme : public ICFTheme {
    friend class MaterialFactory;

  public:
    ~MaterialTheme() override = default;

    // Non-copyable, non-movable (due to unique_ptr members in base class)
    MaterialTheme(const MaterialTheme&) = delete;
    MaterialTheme& operator=(const MaterialTheme&) = delete;
    MaterialTheme(MaterialTheme&&) noexcept = delete;
    MaterialTheme& operator=(MaterialTheme&&) noexcept = delete;

  protected:
    MaterialTheme(std::unique_ptr<MaterialColorScheme> color_scheme,
                  std::unique_ptr<MaterialTypography> font_type,
                  std::unique_ptr<MaterialRadiusScale> radius_scale,
                  std::unique_ptr<MaterialMotionScheme> motion_spec);
};

} // namespace cf::ui::core

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