Module: Hokusai

Defined in:
ui/src/hokusai.rb,
ui/src/hokusai/ast.rb,
ui/src/hokusai/diff.rb,
ui/src/hokusai/font.rb,
ui/src/hokusai/meta.rb,
ui/src/hokusai/node.rb,
ui/src/hokusai/block.rb,
ui/src/hokusai/error.rb,
ui/src/hokusai/event.rb,
ui/src/hokusai/style.rb,
ui/src/hokusai/types.rb,
ui/src/hokusai/painter.rb,
ui/src/hokusai/commands.rb,
ui/src/hokusai/publisher.rb,
ui/src/hokusai/events/mouse.rb,
ui/src/hokusai/node_mounter.rb,
ui/src/hokusai/commands/rect.rb,
ui/src/hokusai/commands/text.rb,
ui/src/hokusai/commands/image.rb,
ui/src/hokusai/commands/circle.rb,
ui/src/hokusai/events/keyboard.rb,
ui/src/hokusai/commands/scissor.rb,
ui/src/hokusai/automation/client.rb,
ui/src/hokusai/automation/driver.rb,
ui/src/hokusai/automation/server.rb,
ui/src/hokusai/mounting/loop_entry.rb,
ui/src/hokusai/backends/raylib/font.rb,
ui/src/hokusai/mounting/mount_entry.rb,
ui/src/hokusai/mounting/update_entry.rb

Overview

A backend agnostic library for authoring desktop applications

Author:

  • skinnyjames

Defined Under Namespace

Modules: Automation, Backends, Blocks, Mounting, Util Classes: Ast, Block, Canvas, Clamping, ClickEvent, Color, Commands, CursorState, DeletePatch, Diff, Error, Event, Font, FontRegistry, HoverEvent, Input, InsertPatch, KeyPressEvent, KeyUpEvent, Keyboard, KeyboardEvent, Meta, Mouse, MouseDownEvent, MouseEvent, MouseMoveEvent, MouseOutEvent, MouseUpEvent, MovePatch, Node, NodeMounter, Outline, Padding, Painter, PainterEntry, Publisher, Rect, Style, UpdatePatch, WheelEvent

Constant Summary collapse

ThreadPool =
Concurrent::ThreadPoolExecutor.new(
  min_threads: 5,
  max_threads: 5,
  max_queue: 20,
  fallback_policy: :caller_runs
)

Class Method Summary collapse

Class Method Details

.can_render(canvas) ⇒ Bool

Tells if a canvas is renderable Useful for pruning unneeded renders

Parameters:

Returns:

  • (Bool)


141
142
143
# File 'ui/src/hokusai.rb', line 141

def self.can_render(canvas)
  @on_renderable&.call(canvas)
end

.close_windowvoid

This method returns an undefined value.

Close the current window



61
62
63
# File 'ui/src/hokusai.rb', line 61

def self.close_window
  @on_close_window&.call
end

.fontsHokusai::FontRegistry

Access the font registry



54
55
56
# File 'ui/src/hokusai.rb', line 54

def self.fonts
  @fonts ||= FontRegistry.new
end

.maximize_windowvoid

This method returns an undefined value.

Maxmizes the current window



97
98
99
# File 'ui/src/hokusai.rb', line 97

def self.maximize_window
  @on_maximize_window&.call
end

.minimize_windowvoid

This method returns an undefined value.

Minimizes the current window



85
86
87
# File 'ui/src/hokusai.rb', line 85

def self.minimize_window
  @on_minimize_window&.call
end

.on_close_window(&block) ⇒ Object

Backend: Provides the window close callback



66
67
68
# File 'ui/src/hokusai.rb', line 66

def self.on_close_window(&block)
  @on_close_window = block
end

.on_maximize_window(&block) ⇒ Object

Backend Provides the maximize window callback



102
103
104
# File 'ui/src/hokusai.rb', line 102

def self.on_maximize_window(&block)
  @on_maximize_window = block
end

.on_minimize_window(&block) ⇒ Object

Backend Provides the minimize window callback



90
91
92
# File 'ui/src/hokusai.rb', line 90

def self.on_minimize_window(&block)
  @on_minimize_window = block
end

.on_renderable(&block) ⇒ Object



132
133
134
# File 'ui/src/hokusai.rb', line 132

def self.on_renderable(&block)
  @on_renderable = block
end

.on_restore_window(&block) ⇒ Object

Backend: Provides the window restore callback



71
72
73
# File 'ui/src/hokusai.rb', line 71

def self.on_restore_window(&block)
  @on_restore_window = block
end

.on_set_mouse_cursor(&block) ⇒ Object



145
146
147
# File 'ui/src/hokusai.rb', line 145

def self.on_set_mouse_cursor(&block)
  @on_set_mouse_cursor = block
end

.on_set_mouse_position(&block) ⇒ Object

Backend: Provides the mouse position callback



120
121
122
# File 'ui/src/hokusai.rb', line 120

def self.on_set_mouse_position(&block)
  @on_set_mouse_position = block
end

.on_set_window_position(&block) ⇒ Object

Backend: Provides the window position callback



115
116
117
# File 'ui/src/hokusai.rb', line 115

def self.on_set_window_position(&block)
  @on_set_window_position = block
end

.restore_windowvoid

This method returns an undefined value.

Restores the current window



78
79
80
# File 'ui/src/hokusai.rb', line 78

def self.restore_window
  @on_restore_window&.call
end

.set_mouse_cursor(type) ⇒ Object



149
150
151
# File 'ui/src/hokusai.rb', line 149

def self.set_mouse_cursor(type)
  @on_set_mouse_cursor&.call(type)
end

.set_mouse_position(mouse) ⇒ void

This method returns an undefined value.

Sets the window position on the screen

Parameters:

  • (Array<Float, Float>)


128
129
130
# File 'ui/src/hokusai.rb', line 128

def self.set_mouse_position(mouse)
  @on_set_mouse_position&.call(mouse)
end

.set_window_position(mouse) ⇒ void

This method returns an undefined value.

Sets the window position on the screen

Parameters:

  • (Array<Float, Float>)


110
111
112
# File 'ui/src/hokusai.rb', line 110

def self.set_window_position(mouse)
  @on_set_window_position&.call(mouse)
end