File: gtk_form_dsl_multi_select.rb

package info (click to toggle)
mikutter 5.0.4%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 9,700 kB
  • sloc: ruby: 21,307; sh: 181; makefile: 19
file content (24 lines) | stat: -rw-r--r-- 541 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# -*- coding: utf-8 -*-
require 'mui/gtk_form_dsl_select'

class Gtk::FormDSL::MultiSelectBuilder < Gtk::FormDSL::SelectBuilder
  def build
    build_list
  end

private

  def build_check(value, text)
    check = Gtk::CheckButton.new text
    @formdsl[@config_key]&.include? value and check.active = true

    check.ssc :toggled do
      if check.active?
        @formdsl[@config_key] = (@formdsl[@config_key] || []) + [value]
      else
        @formdsl[@config_key] = @formdsl[@config_key] - [value]
      end
    end
    check
  end
end