Class: WebviewRuby::Webview
- Inherits:
-
Object
- Object
- WebviewRuby::Webview
- Defined in:
- lib/webview_ruby.rb
Instance Attribute Summary collapse
-
#is_running ⇒ Object
readonly
Returns the value of attribute is_running.
Instance Method Summary collapse
- #bind(name, func = nil, &block) ⇒ Object
- #destroy ⇒ Object
- #eval(js) ⇒ Object
- #get_x ⇒ Object
- #hide_from_dock(hide) ⇒ Object
- #init(js) ⇒ Object
-
#initialize(debug: false) ⇒ Webview
constructor
A new instance of Webview.
- #navigate(page) ⇒ Object
- #run ⇒ Object
- #set_bg(r, g, b, a) ⇒ Object
- #set_pos(x, y) ⇒ Object
- #set_size(width, height, hint = 0, margin_top = 26) ⇒ Object
- #set_title(title) ⇒ Object
- #show(yes) ⇒ Object
- #terminate ⇒ Object
Constructor Details
#initialize(debug: false) ⇒ Webview
Returns a new instance of Webview.
30 31 32 33 34 |
# File 'lib/webview_ruby.rb', line 30 def initialize(debug:false) @is_running = false @bindings = {} @window = WebviewRuby.webview_create(debug ? 1 : 0, nil) end |
Instance Attribute Details
#is_running ⇒ Object (readonly)
Returns the value of attribute is_running.
28 29 30 |
# File 'lib/webview_ruby.rb', line 28 def is_running @is_running end |
Instance Method Details
#bind(name, func = nil, &block) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/webview_ruby.rb', line 86 def bind(name, func=nil, &block) callback = FFI::Function.new(:void, [:string, :string, :pointer]) do |seq, req, arg| begin params = JSON.parse(req) if func func(*params) else block.call(*params) end rescue StandardError => e print("Error occured: #{e.}. \n\n Going to terminate\n") terminate end end @bindings[callback] = true # save a reference WebviewRuby.webview_bind(@window, name, callback, nil) end |
#destroy ⇒ Object
82 83 84 |
# File 'lib/webview_ruby.rb', line 82 def destroy WebviewRuby.webview_destroy(@window) end |
#eval(js) ⇒ Object
104 105 106 |
# File 'lib/webview_ruby.rb', line 104 def eval(js) WebviewRuby.webview_eval(@window, js) end |
#get_x ⇒ Object
48 49 50 |
# File 'lib/webview_ruby.rb', line 48 def get_x() WebviewRuby.webview_get_x(@window) end |
#hide_from_dock(hide) ⇒ Object
44 45 46 |
# File 'lib/webview_ruby.rb', line 44 def hide_from_dock(hide) WebviewRuby.webview_hide_from_dock(@window, hide) end |
#init(js) ⇒ Object
108 109 110 |
# File 'lib/webview_ruby.rb', line 108 def init(js) WebviewRuby.webview_init(@window, js) end |
#navigate(page) ⇒ Object
68 69 70 |
# File 'lib/webview_ruby.rb', line 68 def navigate(page) WebviewRuby.webview_navigate(@window, page) end |
#run ⇒ Object
72 73 74 75 |
# File 'lib/webview_ruby.rb', line 72 def run @is_running = true WebviewRuby.webview_run(@window) end |
#set_bg(r, g, b, a) ⇒ Object
56 57 58 |
# File 'lib/webview_ruby.rb', line 56 def set_bg(r, g, b, a) WebviewRuby.webview_set_bg(@window, r, g, b, a) end |
#set_pos(x, y) ⇒ Object
52 53 54 |
# File 'lib/webview_ruby.rb', line 52 def set_pos(x, y) WebviewRuby.webview_set_pos(@window, x, y) end |
#set_size(width, height, hint = 0, margin_top = 26) ⇒ Object
64 65 66 |
# File 'lib/webview_ruby.rb', line 64 def set_size(width, height, hint=0, margin_top=26) WebviewRuby.webview_set_size(@window, width, height, hint, margin_top) end |
#set_title(title) ⇒ Object
60 61 62 |
# File 'lib/webview_ruby.rb', line 60 def set_title(title) WebviewRuby.webview_set_title(@window, title) end |
#show(yes) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/webview_ruby.rb', line 36 def show(yes) if yes WebviewRuby.webview_show(@window, 1) else WebviewRuby.webview_show(@window, 0) end end |
#terminate ⇒ Object
77 78 79 80 |
# File 'lib/webview_ruby.rb', line 77 def terminate @is_running = false WebviewRuby.webview_terminate(@window) end |