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 / dirinstall_options.ycp < prev    next >
Text File  |  2006-11-29  |  4KB  |  123 lines

  1. /**
  2.  * Module:    dirinstall_options.ycp
  3.  *
  4.  * Authors:    Anas Nashif <nashif@suse.de>
  5.  *
  6.  * Purpose:    Ask the user for various options for dir install.
  7.  * $Id: dirinstall_options.ycp 24834 2005-08-12 07:28:27Z jsrain $
  8.  */
  9.  
  10. {
  11.     textdomain "packager";
  12.  
  13.     import "DirInstall";
  14.     import "Installation";
  15.     import "Wizard";
  16.     import "Popup";
  17.  
  18.     // screen title for installation into directory options
  19.     string title = _("Directory Install Options");
  20.  
  21.     // build and show dialog
  22.  
  23.     Wizard::OpenAcceptDialog ();
  24.  
  25.     term contents = `HVSquash(
  26.                   `VBox(
  27.                         // text entry
  28.                     `Left(`TextEntry(`id(`target), _("&Root Directory (not \"/\"):"), DirInstall::target)),
  29.                         // check box
  30.                                     `Left(`CheckBox(`id(`suseconfig), _("Run &YaST and SuSEconfig on First Boot"), DirInstall::runme_at_boot)),
  31.                         // check box
  32.                                     `Left(`CheckBox(`id(`makeimage), `opt(`notify), _("Create Ima&ge"), DirInstall::makeimage)),
  33.                         // text entry
  34.                                     `Left(`TextEntry(`id(`imagename), _("Ima&ge Name:"), DirInstall::image_name)),
  35.                                     `VSquash(
  36.                                         `HBox(
  37.                         // text entry
  38.                                             `TextEntry(`id(`imagedir), _("&Image Directory:"), DirInstall::image_dir),
  39.                                             `VBox(
  40.                                                 `VSpacing(),
  41.                         // push button
  42.                                                 `Bottom(`PushButton(`id(`open_dir), _("Select &Directory")))
  43.                                                 )
  44.                                             )
  45.                                         )
  46.                                   )
  47.             );
  48.  
  49.     // help text for dirinstall options 1/2
  50.     string help_text = _("<p>Choose a directory to which to install. Depending on the software selection, make sure
  51. enough space is available.</p>
  52. ");
  53.     // help text for dirinstall options 2/2
  54.     help_text = help_text + _("<p>Additionally, you can create an archive image of the directory using tar. To create an 
  55. image, specify the name and the location in the respective fields.</p>
  56. ");
  57.  
  58.     Wizard::SetContents (title, contents, help_text, (boolean) WFM::Args(0),
  59.              (boolean) WFM::Args(1));
  60.  
  61.  
  62.     any ret = nil;
  63.  
  64.     while (true)
  65.     {
  66.         boolean image = (boolean)UI::QueryWidget(`id(`makeimage), `Value);
  67.         if (image)
  68.         {
  69.             UI::ChangeWidget(`id(`imagename) , `Enabled, true);
  70.             UI::ChangeWidget(`id(`imagedir) , `Enabled, true);
  71.             UI::ChangeWidget(`id(`open_dir) , `Enabled, true);
  72.         }
  73.         else
  74.         {
  75.             UI::ChangeWidget(`id(`imagename) , `Enabled, false);
  76.             UI::ChangeWidget(`id(`imagedir) , `Enabled, false);
  77.             UI::ChangeWidget(`id(`open_dir) , `Enabled, false);
  78.         }
  79.     ret = Wizard::UserInput ();
  80.  
  81.     if (ret == `abort && Popup::ConfirmAbort (`painless))
  82.         break;
  83.  
  84.     if (ret == `cancel || ret == `back)
  85.         break;
  86.     if (ret == `open_dir)
  87.         {
  88.         // directory selection header
  89.             any dir = UI::AskForExistingDirectory( DirInstall::image_dir,  _("Select Directory"));
  90.             if (dir != nil)
  91.             {
  92.                 UI::ChangeWidget(`id(`imagedir), `Value, (string)dir);
  93.             }
  94.             continue;
  95.         }
  96.     if (ret == `next)
  97.     {
  98.         string target =(string) UI::QueryWidget (`id(`target), `Value);
  99.         boolean runme_at_boot = (boolean) UI::QueryWidget (`id(`suseconfig), `Value);
  100.             DirInstall::makeimage = (boolean) UI::QueryWidget (`id(`makeimage), `Value);
  101.             DirInstall::image_name = (string) UI::QueryWidget (`id(`imagename), `Value);
  102.             DirInstall::image_dir = (string) UI::QueryWidget (`id(`imagedir), `Value);
  103.  
  104.             if(target == "" || target == "/")
  105.             {
  106.         // popup message
  107.                 Popup::Message (_("Specify a root directory. This does not mean /"));
  108.         continue;
  109.         }
  110.  
  111.  
  112.         DirInstall::target = target;
  113.             Installation::destdir = target;
  114.         DirInstall::runme_at_boot = runme_at_boot;
  115.         break;
  116.     }
  117.     }
  118.  
  119.     Wizard::CloseDialog ();
  120.  
  121.     return ret;
  122. }
  123.