Archived
1
0
Fork 0

Move Widgets::Window to Widgets::Main

This commit is contained in:
Braiden Vasco 2017-07-24 11:00:51 +00:00
parent cafb124475
commit bebadd3545
3 changed files with 37 additions and 32 deletions

View file

@ -16,7 +16,7 @@ require 'widgets/text'
require 'widgets/container' require 'widgets/container'
require 'widgets/v_panel' require 'widgets/v_panel'
require 'widgets/window' require 'widgets/main'
require 'widgets/messenger' require 'widgets/messenger'
@ -91,7 +91,7 @@ private
end end
def window def window
@window ||= Widgets::Window.new( @window ||= Widgets::Main.new(
0, 0,
0, 0,
Curses.stdscr.maxx, Curses.stdscr.maxx,

35
lib/widgets/main.rb Normal file
View file

@ -0,0 +1,35 @@
# frozen_string_literal: true
module Widgets
class Main < Container
def initialize(x, y, width, height)
super
menu_width = width / 4
chat_width = width - menu_width
menu_left = 0
chat_left = menu_width
@menu = Widgets::Menu.new x + menu_left, y, menu_width, height
@chat = Widgets::Chat.new x + chat_left, y, chat_width, height
self.focus = @menu
end
def children
[@menu, @chat]
end
def trigger(event)
case event
when Events::Window::Left
self.focus = @menu
when Events::Window::Right
self.focus = @chat
else
focus.trigger event
end
end
end
end

View file

@ -1,30 +0,0 @@
# frozen_string_literal: true
module Widgets
class Window < Container
def initialize(x, y, width, height)
super
@menu = Widgets::Menu.new 0, 0, nil, height
@messenger = Widgets::Messenger.new 0, 0, width - @menu.width, height
self.focus = @messenger
@menu_visible = false
end
def children
focus == @menu ? [@messenger, @menu] : [@messenger]
end
def trigger(event)
case event
when Events::Tab
self.focus = focus == @menu ? @messenger : @menu
else
focus.trigger event
end
end
end
end