home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / YaST2 / clients / inst_info.ycp < prev    next >
Text File  |  2006-11-29  |  2KB  |  94 lines

  1. /**
  2.  * Module:    inst_info.ycp
  3.  *
  4.  * Authors:    Arvin Schnell <arvin@suse.de>
  5.  *
  6.  * Purpose:    Show info in existent.
  7.  *
  8.  * $Id: inst_info.ycp 22829 2005-03-29 10:52:46Z jsrain $
  9.  */
  10.  
  11. {
  12.  
  13.     textdomain "installation";
  14.  
  15.     import "Label";
  16.     import "Linuxrc";
  17.     import "Report";
  18.  
  19.     string infofile = "/info.txt";        // copied there by linuxrc
  20.     string infotext = (string)SCR::Read (.target.string, [infofile, ""]);
  21.  
  22.     if (infotext != "")
  23.     {
  24.     map tmp1 = Report::Export ();
  25.     map tmp2 = tmp1["messages"]:$[];
  26.     integer timeout_seconds = tmp2["timeout"]:0;
  27.  
  28.     UI::OpenDialog(
  29.                `HBox(
  30.                  `VSpacing(22),        // force height to 22/25 of screen height
  31.                  `VBox(
  32.                    `HSpacing(78),    // force width to 78/80 of screen width
  33.                    `VSpacing(0.2),
  34.                    `RichText(`opt(`plainText), infotext ),
  35.                    `ReplacePoint (`id(`rp1), `Empty () ),
  36.                    `HBox(
  37.                      `HStretch(),
  38.                      // Button to accept a license agreement
  39.                      `HWeight(1, `PushButton(`id(`accept), `opt(`default), _("I &Agree") ) ),
  40.                      `HStretch(),
  41.                      // Button to reject a license agreement
  42.                      `HWeight(1, `PushButton(`id(`donotaccept), _("I Do &Not Agree") ) ),
  43.                      `HStretch(),
  44.                      `ReplacePoint(`id(`rp2), `Empty ())
  45.                      )
  46.                    )
  47.                  )
  48.                );
  49.  
  50.     UI::SetFocus (`id(`accept));
  51.  
  52.     symbol info_ret = `empty;
  53.  
  54.     if (timeout_seconds == 0)
  55.     {
  56.         info_ret = (symbol)UI::UserInput ();
  57.     }
  58.     else
  59.     {
  60.         UI::ReplaceWidget (`id(`rp1), `Label (`id(`remaining_time), "" + timeout_seconds));
  61.         UI::ReplaceWidget (`id(`rp2), `PushButton (`id(`stop), Label::StopButton()));
  62.  
  63.         while (timeout_seconds > 0)
  64.         {
  65.         sleep (1000);
  66.         info_ret = (symbol)UI::PollInput ();
  67.         if (info_ret == `accept || info_ret == `donotaccept)
  68.             break;
  69.         if (info_ret == `stop) {
  70.             while (info_ret == `stop)
  71.             info_ret = (symbol)UI::UserInput ();
  72.             break;
  73.         }
  74.         info_ret = `accept;
  75.         timeout_seconds = timeout_seconds - 1;
  76.         UI::ChangeWidget (`id(`remaining_time), `Value, "" + timeout_seconds);
  77.         }
  78.     }
  79.  
  80.     UI::CloseDialog ();
  81.  
  82.     if (info_ret != `accept)
  83.     {
  84.         y2milestone ("user didn't accept info.txt");
  85.  
  86.         // tell linuxrc that we aborted
  87.         Linuxrc::WriteYaSTInf ($["Aborted" : "1"]);
  88.         return `abort;
  89.     }
  90.     }
  91.  
  92.     return `auto;
  93. }
  94.