Sha256: 2df8b8b624c94003ba6c51f3767526e7c954bbb8deb9e67367e3ec0bd6ec507a

Contents?: true

Size: 1.36 KB

Versions: 1

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

# This file is part of Alexandria.
#
# See the file README.md for authorship and licensing information.

module Alexandria
  module UI
    class AlertDialog < SimpleDelegator
      def initialize(parent, title, stock_icon, buttons, message = nil)
        dialog = Gtk::Dialog.new(title: "", parent: parent, flags: :destroy_with_parent,
                                 buttons: buttons)
        super(dialog)

        self.border_width = 6
        self.resizable = false
        child.spacing = 12

        hbox = Gtk::Box.new(:horizontal, 12)
        hbox.homogeneous = false
        hbox.border_width = 6
        child.pack_start(hbox)

        image = Gtk::Image.new(stock: stock_icon,
                               size: Gtk::IconSize::DIALOG)
        image.set_alignment(0.5, 0)
        hbox.pack_start(image)

        vbox = Gtk::Box.new(:vertical, 6)
        vbox.homogeneous = false
        hbox.pack_start(vbox)

        label = Gtk::Label.new
        label.set_alignment(0, 0)
        label.wrap = label.selectable = true
        label.markup = "<b><big>#{title}</big></b>"
        vbox.pack_start(label)

        if message
          label = Gtk::Label.new
          label.set_alignment(0, 0)
          label.wrap = label.selectable = true
          label.markup = message.strip
          vbox.pack_start(label)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
alexandria-book-collection-manager-0.7.5 lib/alexandria/ui/alert_dialog.rb