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 / modules / InstShowInfo.ycp < prev    next >
Text File  |  2006-11-29  |  2KB  |  86 lines

  1. /**
  2.  * Module:    InstShowInfo.ycp
  3.  *
  4.  * Author:    Stefan Hundhammer <sh@suse.de>
  5.  *
  6.  * Purpose:    Show /info.txt (if present) in a popup
  7.  */
  8. {
  9.     module "InstShowInfo";
  10.  
  11.     textdomain "installation";
  12.  
  13.     import "Report";
  14.     import "Label";
  15.  
  16.     /*
  17.      * @param string info_file (/info.txt" - Copied from inst media to inst-sys by linuxrc)
  18.      */
  19.     global void show_info_txt(string info_file)
  20.     {
  21.     if ( SCR::Read(.target.size, info_file ) <= 0 )
  22.     {
  23.         y2milestone( "No %1", info_file );
  24.         return;
  25.     }
  26.  
  27.     string info_text = (string) SCR::Read( .target.string, info_file );
  28.  
  29.     map report_settings    = Report::Export();
  30.     map message_settings    = report_settings[ "messages" ]:$[];
  31.     integer timeout_seconds    = message_settings["timeout"]:0;
  32.     // timeout_seconds = 12;
  33.     boolean use_timeout = timeout_seconds > 0;
  34.     term button_box =
  35.         `HBox(
  36.           `HStretch(),
  37.           `HWeight(1, `PushButton(`id(`ok), Label::OKButton() ) ),
  38.           `HStretch()
  39.           );
  40.  
  41.     if ( use_timeout )
  42.     {
  43.         button_box = add( button_box, `HWeight(1, `PushButton(`id(`stop), Label::StopButton() ) ) );
  44.         button_box = add( button_box, `HStretch() );
  45.  
  46.     }
  47.  
  48.     UI::OpenDialog(
  49.                `VBox(
  50.                  `MinSize(78, 18, `RichText(`opt(`plainText), info_text ) ),
  51.                  use_timeout ? 
  52.                  `Label(`id(`timeout), sformat( "   %1   ", timeout_seconds ) )
  53.                  : `VSpacing( 0.2 ),
  54.                  button_box,
  55.                  `VSpacing( 0.2 )
  56.                  )
  57.                );
  58.  
  59.     UI::SetFocus(`ok);
  60.     symbol button = `nothing;
  61.  
  62.     do
  63.     {
  64.         button = (symbol) ( use_timeout ?
  65.                 UI::TimeoutUserInput( 1000 ) :
  66.                 UI::UserInput() );
  67.  
  68.         if ( button == `timeout )
  69.         {
  70.         timeout_seconds = timeout_seconds - 1;
  71.         UI::ChangeWidget(`timeout, `Value, sformat( "%1", timeout_seconds ) );
  72.         }
  73.         else if ( button == `stop )
  74.         {
  75.         use_timeout = false;
  76.         UI::ChangeWidget(`stop, `Enabled, false );
  77.         UI::ChangeWidget(`timeout, `Value, "" );
  78.         }
  79.     } while ( button != `ok && timeout_seconds > 0 );
  80.  
  81.     UI::CloseDialog();
  82.     }
  83.  
  84.     // show_info_txt();    // for debugging
  85. }
  86.