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 / include / bootloader / routines / wizards.ycp < prev   
Text File  |  2006-11-29  |  4KB  |  178 lines

  1. /**
  2.  * File:
  3.  *      include/bootloader/routines/wizards.ycp
  4.  *
  5.  * Module:
  6.  *      Bootloader installation and configuration
  7.  *
  8.  * Summary:
  9.  *      Wizard sequences for bootloader installation/configuration
  10.  *
  11.  * Authors:
  12.  *      Jiri Srain <jsrain@suse.cz>
  13.  *
  14.  * $Id: wizards.ycp 27748 2006-02-08 15:15:11Z jplack $
  15.  *
  16.  */
  17.  
  18.  
  19. {
  20. textdomain "bootloader";
  21.  
  22. import "Sequencer";
  23. import "Wizard";
  24. import "Report";
  25. include "bootloader/routines/dialogs.ycp";
  26. include "bootloader/generic/wizards.ycp";
  27.  
  28.  
  29. /**
  30.  * Run wizard sequencer
  31.  * @return `next, `back or `abort
  32.  */
  33. symbol MainSequence () {
  34.     if (! BootCommon::BootloaderInstallable ())
  35.     // error report
  36.     Report::Error (_("Because of the partitioning, the boot loader
  37. cannot be installed properly."));
  38.  
  39.     // check loader-specific sequence
  40.     symbol spec_ret = Bootloader::blMainSequence ();
  41.     if (spec_ret == `generic_new)
  42.     return GenericMainSequence();
  43.  
  44.     if (spec_ret != `generic)
  45.     return spec_ret;
  46.  
  47.     // run generic sequence
  48.     map aliases = $[
  49.     "edit_section_switch"    : [``(EditSectionSwitch ()), true],
  50.     "kernel_section"    : ``(KernelSectionDialog ()),
  51.     "kernel_details"    : ``(DetailsDialog ("kernel_section")),
  52.     "chainloader_section"    : ``(ChainloaderSectionDialog ()),
  53.     "chainloader_details"    : ``(DetailsDialog ("chainloader_section")),
  54.     "main"            : ``(MainDialog ()),
  55.     "installation_details"    : ``(DetailsDialog ("installation")),
  56.     "loader_details"    : ``(DetailsDialog ("loader")),
  57.     "add_new_section"    : ``(AddNewSectionDialog ()),
  58.     "store_section"        : [``(StoreSection ()), true],
  59.     "manual_edit"        : ``(runEditFilesDialog ()),
  60.     ];
  61.  
  62.     return_tab = Bootloader::getLoaderType () != "none"
  63.     ? "sections"
  64.     : "installation";
  65.  
  66.     map sequence = $[
  67.     "ws_start" : "main",
  68.     "main" : $[
  69.         `next : `next,
  70.         `abort : `abort,
  71.         `add : "add_new_section",
  72.         `edit : "edit_section_switch",
  73.         `inst_details : "installation_details",
  74.         `loader_details : "loader_details",
  75.         `manual : "manual_edit",
  76.         `redraw : "main",
  77.     ],
  78.     "manual_edit" : $[
  79.         `abort : `abort,
  80.         `next : "main",
  81.     ],
  82.     "installation_details" : $[
  83.         `next : "main",
  84.         `abort : `abort,
  85.     ],
  86.     "loader_details" : $[
  87.         `next : "main",
  88.         `abort : `abort,
  89.     ],
  90.     "kernel_section" : $[
  91.         `next : "store_section",
  92.         `abort : `abort,
  93.     ],
  94.     "kernel_details" : $[
  95.         `next : "kernel_section",
  96.         `abort : `abort,
  97.     ],
  98.     "chainloader_section" : $[
  99.         `next : "store_section",
  100.         `abort : `abort,
  101.     ],
  102.     "chainloader_details" : $[
  103.         `next : "chainloader_section",
  104.         `abort : `abort,
  105.     ],
  106.     "add_new_section" : $[
  107.         `next : "edit_section_switch",
  108.         `abort : `abort,
  109.     ],
  110.     "store_section" : $[
  111.         `next : "main",
  112.     ],
  113.     "edit_section_switch" : $[
  114.         `kernel : "kernel_section",
  115.         `chainloader : "chainloader_section",
  116.     ],
  117.     ];
  118.  
  119.     return Sequencer::Run (aliases, sequence);
  120. }
  121.  
  122. /**
  123.  * Whole configuration of printer but without reading and writing.
  124.  * For use with autoinstallation.
  125.  * @return sequence result
  126.  */
  127. symbol BootloaderAutoSequence () {
  128.     Wizard::CreateDialog();
  129.     Wizard::SetContentsButtons("", `VBox (), "",
  130.     Label::BackButton(), Label::NextButton());
  131.     if ( Stage::initial () )
  132.     Wizard::SetTitleIcon("bootloader");    // no .desktop file in inst-sys
  133.     else
  134.     Wizard::SetDesktopIcon("bootloader");
  135.     symbol ret = MainSequence ();
  136.     UI::CloseDialog();
  137.     return ret;
  138. }
  139.  
  140. /**
  141.  * Whole configuration of dns-server
  142.  * @return sequence result
  143.  */
  144. symbol BootloaderSequence () {
  145.     map my_aliases = $[
  146.     "read"    : [ ``(ReadDialog ()), true ],
  147.     "main"    :   ``(MainSequence ()),
  148.     "write"    : [ ``(WriteDialog ()), true ],
  149.     ];
  150.  
  151.     map sequence = $[
  152.     "ws_start"        : "read",
  153.     "read" : $[
  154.         `abort        : `abort,
  155.         `next        : "main"
  156.     ],
  157.     "main" : $[
  158.         `abort        : `abort,
  159.         `next        : "write",
  160.     ],
  161.     "write" : $[
  162.         `abort        : `abort,
  163.         `next        : `next
  164.     ]
  165.     ];
  166.  
  167.     Wizard::CreateDialog();
  168.     Wizard::SetDesktopIcon("bootloader");
  169.     Wizard::SetContentsButtons("", `VBox (), "",
  170.     Label::BackButton(), Label::NextButton());
  171.     symbol ret = Sequencer::Run (my_aliases, sequence);
  172.  
  173.     UI::CloseDialog();
  174.     return ret;
  175. }
  176.  
  177. } // EOF
  178.