Class: WebviewRuby::Webview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

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_runningObject (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.full_message}. \n\n Going to terminate\n")
      terminate
    end
  end
  @bindings[callback] = true # save a reference
  WebviewRuby.webview_bind(@window, name, callback, nil)
end

#destroyObject



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_xObject



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


68
69
70
# File 'lib/webview_ruby.rb', line 68

def navigate(page)
  WebviewRuby.webview_navigate(@window, page)
end

#runObject



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

#terminateObject



77
78
79
80
# File 'lib/webview_ruby.rb', line 77

def terminate
  @is_running = false
  WebviewRuby.webview_terminate(@window)
end