class Login

Attributes

logged_in[RW]
password[RW]
username[RW]

Public Instance Methods

launch() click to toggle source
# File examples/login.rb, line 8
def launch
  window('Login') {
    margined true
    
    vertical_box {
      form {
        entry {
          label 'Username:'
          text <=> [self, :username]
          enabled <= [self, :logged_in, on_read: :!] # `on_read: :!` negates read value
        }
        
        password_entry {
          label 'Password:'
          text <=> [self, :password]
          enabled <= [self, :logged_in, on_read: :!]
        }
      }
      
      horizontal_box {
        button('Login') {
          enabled <= [self, :logged_in, on_read: :!]
          
          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
logged_in=(value) click to toggle source
# File examples/login3.rb, line 9
def logged_in=(value)
  @logged_in = value
  self.logged_out = !value # calling logged_out= method notifies logged_out observers
end
logged_out() click to toggle source
# File examples/login2.rb, line 8
def logged_out
  !logged_in
end
logged_out=(value) click to toggle source
# File examples/login3.rb, line 14
def logged_out=(value)
  self.logged_in = !value unless logged_in == !value
end