summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/raylib/mrblib/html.rb
blob: faac38e364db3b6011766933b1c6ddf1aef8ed56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
module Jamstack
  module HTML
    class << self
      def scale=(mode)
        mode = mode.to_sym if mode.is_a?(String)
        raise ArgumentError, "scale must be :stretch or :native" unless [:stretch, :native].include?(mode)
        Jamstack.eval_js("jamstackSetSize(\"#{mode}\")")
        @scale = mode
      end

      def scale
        @scale || :stretch
      end

      def render=(mode)
        mode = mode.to_sym if mode.is_a?(String)
        raise ArgumentError, "render must be :auto, :pixelated, or :crisp_edges" unless [:auto, :pixelated, :crisp_edges].include?(mode)
        js_mode = mode == :crisp_edges ? "crisp-edges" : mode.to_s
        Jamstack.eval_js("jamstackSetRendering(\"#{js_mode}\")")
        @render = mode
      end

      def render
        @render || :auto
      end

      def toggle_fullscreen
        Jamstack.eval_js("if(document.fullscreenElement){document.exitFullscreen()}else{document.documentElement.requestFullscreen()}")
      end

      def title=(t)
        Jamstack.eval_js("document.title=#{t.to_s.inspect}")
      end
    end
  end

  def self.fonttest
    puts "=== Font Test ==="
    puts ""
    puts "--- ASCII ---"
    puts "abcdefghijklmnopqrstuvwxyz"
    puts "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    puts "0123456789 !@#$%^&*()_+-=[]{}|;:',.<>?/`~"
    puts ""
    puts "--- Box Drawing ---"
    puts "+--+--+--+"
    puts "|  |  |  |"
    puts "+--+--+--+"
    puts ""
    puts "--- Arrows ---"
    puts "<- -> ^ v"
    puts ""
    puts "--- Nerd Font Icons ---"
    puts "Powerline: \uE0B0 \uE0B2 \uE0B1 \uE0B3"
    puts "Git:       \uE0A0 \uE0A2 \uE0A3"
    puts "Misc:      \uF004 \uF005 \uF00C \uF00D \uF013 \uF017"
    puts "OS:        \uF179 \uF17C \uE70F"
    puts "Devicons:  \uE739 \uE74E \uE73C \uE7A8"
    puts ""
    puts "--- Standard Emoji ---"
    puts "Faces:     \U0001F602 \U0001F923 \U0001F604 \U0001F60D \U0001F622"
    puts "Hands:     \U0001F44D \U0001F44E \U0001F44C \U0001F450"
    puts "Objects:   \U0001F525 \U0001F4A5 \U0001F4A9 \U0001F389 \U0001F680"
    puts "Animals:   \U0001F431 \U0001F436 \U0001F98A \U0001F414"
    puts ""
    puts "--- Long line (wrapping test) ---"
    puts "The quick brown fox jumps over the lazy dog. " * 4
    puts ""
    puts "--- Scroll test (30 lines) ---"
    30.times do |i|
      puts "Line #{i + 1}: The quick brown fox jumps over the lazy dog 1234567890"
    end
    puts ""
    puts "=== End of Font Test ==="
    "done"
  end
end