Sha256: 6567bfd13594268d6d8914961656c3621705fd98c1a3e15beb0727dccd439ac0

Contents?: true

Size: 1.3 KB

Versions: 92

Compression:

Stored size: 1.3 KB

Contents

require 'glimmer-dsl-libui'

class Login
  include Glimmer
  
  attr_accessor :username, :password
  attr_reader :logged_in
  
  def logged_in=(value)
    @logged_in = value
    self.logged_out = !value # calling logged_out= method notifies logged_out observers
  end
  
  def logged_out=(value)
    self.logged_in = !value unless logged_in == !value
  end
  
  def logged_out
    !logged_in
  end
  
  def launch
    window('Login') {
      margined true
      
      vertical_box {
        form {
          entry {
            label 'Username:'
            text <=> [self, :username]
            enabled <= [self, :logged_out]
          }
          
          password_entry {
            label 'Password:'
            text <=> [self, :password]
            enabled <= [self, :logged_out]
          }
        }
        
        horizontal_box {
          button('Login') {
            enabled <= [self, :logged_out]
            
            on_clicked do
              self.logged_in = true
            end
          }
          
          button('Logout') {
            enabled <= [self, :logged_in]
            
            on_clicked do
              self.logged_in = false
              self.username = ''
              self.password = ''
            end
          }
        }
      }
    }.show
  end
end

Login.new.launch

Version data entries

92 entries across 92 versions & 1 rubygems

Version Path
glimmer-dsl-libui-0.12.7 examples/login3.rb
glimmer-dsl-libui-0.12.6 examples/login3.rb
glimmer-dsl-libui-0.12.5 examples/login3.rb
glimmer-dsl-libui-0.12.4 examples/login3.rb
glimmer-dsl-libui-0.12.3 examples/login3.rb
glimmer-dsl-libui-0.12.2 examples/login3.rb
glimmer-dsl-libui-0.12.1 examples/login3.rb
glimmer-dsl-libui-0.12.0 examples/login3.rb
glimmer-dsl-libui-0.11.10 examples/login3.rb
glimmer-dsl-libui-0.11.9 examples/login3.rb
glimmer-dsl-libui-0.11.8 examples/login3.rb
glimmer-dsl-libui-0.11.7 examples/login3.rb
glimmer-dsl-libui-0.11.6 examples/login3.rb
glimmer-dsl-libui-0.11.5 examples/login3.rb
glimmer-dsl-libui-0.11.4 examples/login3.rb
glimmer-dsl-libui-0.11.3 examples/login3.rb
glimmer-dsl-libui-0.11.2 examples/login3.rb
glimmer-dsl-libui-0.11.1 examples/login3.rb
glimmer-dsl-libui-0.11.0 examples/login3.rb
glimmer-dsl-libui-0.10.2 examples/login3.rb