yast/yast-yast2

View on GitHub
doc/examples/popups3.rb

Summary

Maintainability
A
1 hr
Test Coverage
# ***************************************************************************
#
# Copyright (c) 2002 - 2012 Novell, Inc.
# All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.   See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, contact Novell, Inc.
#
# To contact Novell about this file by physical or electronic mail,
# you may find current contact information at www.novell.com
#
# ***************************************************************************
# Popups example concerning installation
#
# Author:  Arvin Schnell <arvin@suse.de>
#
# $Id$
module Yast
  class Popups3Client < Client
    def main
      Yast.import "UI"
      Yast.import "Label"
      Yast.import "Popup"
      Yast.import "Mode"

      UI.OpenDialog(
        VBox(
          PushButton(Id(:painless), Opt(:hstretch), "Confirm Abort (painless)"),
          PushButton(
            Id(:incomplete),
            Opt(:hstretch),
            "Confirm Abort (incomplete)"
          ),
          PushButton(Id(:unusable), Opt(:hstretch), "Confirm Abort (unusable)"),
          PushButton(Id(:error), Opt(:hstretch), "Module Error"),
          PushButton(Id(:close), Label.CloseButton)
        )
      )

      @button_id = :dummy
      loop do
        @button_id = Convert.to_symbol(UI.UserInput)

        case @button_id
        when :painless
          Popup.ConfirmAbort(:painless)
        when :incomplete
          Popup.ConfirmAbort(:incomplete)
        when :unusable
          Popup.ConfirmAbort(:unusable)
        when :error
          Popup.ModuleError("The module inst_games.ycp does not work.")
        when :close
          break
        end
      end

      UI.CloseDialog

      nil
    end
  end
end

Yast::Popups3Client.new.main