Class: ManabuDesktop::Screens::ToolBox

Inherits:
Base
  • Object
show all
Defined in:
lib/screens/toolbox.rb

Constant Summary collapse

ICON_COL =
0
LABEL_COL =
1
ACTIVITY_COL =
2

Instance Attribute Summary collapse

Attributes inherited from Base

#builder, #window

Instance Method Summary collapse

Methods inherited from Base

#_show

Constructor Details

#initialize(client) ⇒ ToolBox

Returns a new instance of ToolBox.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/screens/toolbox.rb', line 15

def initialize(client)
  @client = client
  super('toolbox')

  @activities = [:Roster, :Courses, :Exams, :Administration]

  icon_view = @builder.get_object('tools.IconView')
  icon_view.set_pixbuf_column(ICON_COL)
  icon_view.set_text_column(LABEL_COL)
  list = Gtk::ListStore.new(GdkPixbuf::Pixbuf, String, String)

  _fill_toolbox(list, icon_view)

  icon_view.signal_connect('item-activated') do |_widget, tree_path|
    iter = list.get_iter(tree_path)
    ManabuDesktop::Screens.const_get(iter[ACTIVITY_COL]).new(@client)
  end

  _show()
end

Instance Attribute Details

#activitiesObject (readonly)

Returns the value of attribute activities.



9
10
11
# File 'lib/screens/toolbox.rb', line 9

def activities
  @activities
end

Instance Method Details

#_create_ability_icon(ability, list, icon_view) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/screens/toolbox.rb', line 42

def _create_ability_icon(ability, list, icon_view)
  case ability
  when :Roster
    pixbuf = GdkPixbuf::Pixbuf.new(
      file: ManabuDesktop::Tools.emojidex.emoji[:student].paths[:png][:px64])
  when :Courses
    pixbuf = GdkPixbuf::Pixbuf.new(
      file: ManabuDesktop::Tools.emojidex.emoji[:notebook].paths[:png][:px64])
  when :Exams
    pixbuf = GdkPixbuf::Pixbuf.new(
      file: ManabuDesktop::Tools.emojidex.emoji[:white_check_mark].paths[:png][:px64])
  when :Administration
    pixbuf = GdkPixbuf::Pixbuf.new(
      file: ManabuDesktop::Tools.emojidex.emoji[:wrench].paths[:png][:px64])
  else
    pixbuf = GdkPixbuf::Pixbuf.new(
      file: ManabuDesktop::Tools.emojidex.emoji[:question].paths[:png][:px64])
  end

  iter = list.append
  list.set_value(iter, ICON_COL, pixbuf)
  list.set_value(iter, LABEL_COL, I18n.t("g.#{ability.to_s}"))
  list.set_value(iter, ACTIVITY_COL, ability)
  icon_view.set_model(list)
end

#_fill_toolbox(list, icon_view) ⇒ Object



36
37
38
39
40
# File 'lib/screens/toolbox.rb', line 36

def _fill_toolbox(list, icon_view)
  @activities.each do |ability|
    _create_ability_icon(ability, list, icon_view)
  end
end