Class: Shellfie::HeadlessThemeRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/shellfie/headless_theme_registry.rb

Constant Summary collapse

VARIANTS =
{
  "plain" => {
    window_decoration: {
      title_bar_height: 0,
      corner_radius: 0,
      button_size: 0,
      button_spacing: 0
    },
    button_colors: [],
    button_style: :none,
    buttons_position: :left,
    title_alignment: :left
  }
}.freeze

Class Method Summary collapse

Class Method Details

.available_variantsObject



37
38
39
# File 'lib/shellfie/headless_theme_registry.rb', line 37

def available_variants
  VARIANTS.keys
end

.build(theme, variant: "plain") ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/shellfie/headless_theme_registry.rb', line 23

def build(theme, variant: "plain")
  settings = VARIANTS.fetch(variant)
  ThemeData.new(
    name: theme.name,
    colors: theme.colors,
    window_decoration: ThemeData.deep_merge(theme.window_decoration, settings[:window_decoration]),
    button_colors: settings[:button_colors],
    buttons_position: settings[:buttons_position],
    button_style: settings[:button_style],
    font: theme.font,
    title_alignment: settings[:title_alignment]
  )
end