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

  1. /**
  2.  * File:
  3.  *      include/bootloader/generic/dialogs.ycp
  4.  *
  5.  * Module:
  6.  *      Bootloader installation and configuration
  7.  *
  8.  * Summary:
  9.  *      Generic ialogs for configuration
  10.  *
  11.  * Authors:
  12.  *      Joachim Plack <jplack@suse.de>
  13.  *
  14.  * $Id: dialogs.ycp 34177 2006-11-08 17:16:21Z odabrunz $
  15.  *
  16.  */
  17.  
  18.  
  19. {
  20. textdomain "bootloader";
  21.  
  22. import "Label";
  23. import "CWM";
  24.  
  25. include "bootloader/generic/widget_funcs.ycp";
  26.  
  27.  
  28. /**
  29.  * Stores key/value pair in the BootCommon::globals map, or deletes it if the
  30.  * value is empty or nil
  31.  */
  32. void _globals_store_data( string key, string value ) {
  33.     if (value != nil && value != "")
  34.     BootCommon::globals[key] = value;
  35.     else {
  36.     BootCommon::globals = filter(string k, string v,
  37.         BootCommon::globals, ``(key != k)
  38.     );
  39.     }
  40. }
  41.  
  42.  
  43. include "bootloader/generic/global_options_widget.ycp";
  44. include "bootloader/generic/boot_loader_locations_widget.ycp";
  45. include "bootloader/generic/section_type_widget.ycp";
  46. include "bootloader/generic/section_edit_widgets.ycp";
  47. include "bootloader/generic/sections_widget.ycp";
  48.  
  49.  
  50. global void importMetaData() {
  51.     BootCommon::exports = BootCommon::GetMetaData ();
  52.  
  53.     // Extract type descriptions from exports
  54.     foreach(string key, any value, BootCommon::exports, {
  55.         if (substring (key, 0, 1) == "%") {
  56.         list<string> s = splitstring(key,"%");
  57.             string hash = s[1]:"";
  58.  
  59.             key = substring(key, 2 + size(hash));
  60.             if (hash == "global_options") {
  61.                 BootCommon::global_options[key] = value;
  62.             }
  63.             else if (hash == "section_options") {
  64.                 BootCommon::section_options[key] = value;
  65.             }
  66.             else {
  67.                 if ( !haskey(BootCommon::exports, hash) ) BootCommon::exports[hash] = $[];
  68.                 BootCommon::exports[hash, key] = value;
  69.             }
  70.         }
  71.         else if (substring (key, 0, 1) == "#") {
  72.             list<string> s = splitstring(key,"#");
  73.             string array = s[1]:"";
  74.  
  75.             key = substring(key, 2 + size(array));
  76.             if ( ! haskey(BootCommon::exports, array) ) BootCommon::exports[array] = [];
  77.             BootCommon::exports[array, tointeger(key)] = value;
  78.         }
  79.     });
  80.     // delete all encoded option tags from exports
  81.     BootCommon::exports = filter (string key, any value, BootCommon::exports, {
  82.         string s = substring (key, 0, 1);
  83.         return (s != "%" && s != "#");
  84.     });
  85. }
  86.  
  87.  
  88. /**
  89.  * Cache for genericWidgets function
  90.  */
  91. map<string,map<string,any> > _generic_widgets = nil;
  92.  
  93. /**
  94.  * Get generic widgets
  95.  * @return a map describing all generic widgets
  96.  */
  97. global map<string,map<string,any> > genericWidgets () {
  98.     if (_generic_widgets == nil)
  99.     {
  100.     _generic_widgets = $[
  101.         "boot_loader_options" : genericGlobalBootOptionWidget (),
  102.         "loader_location"      : genericBootLoaderLocationWidget (),
  103.         "section_type"      : genericSectionTypeWidget(),
  104.         "sections"          : genericSectionsListWidget(),
  105.     ];
  106.  
  107.     foreach(string type, section_types(), {
  108.         _generic_widgets = add(_generic_widgets, "section_edit_" + type,
  109.          genericSectionEditWidget(type));
  110.     });
  111.  
  112.     }
  113.     return _generic_widgets;
  114. }
  115.  
  116. /**
  117.  * Run generic dialog to adjust installation
  118.  * @return symbol for wizard sequencer
  119.  */
  120. symbol genericBootLoaderOptionsDialog () {
  121.  
  122.     term contents = `HBox (`HSpacing (2), `VBox (
  123.         `VStretch (),
  124.     "boot_loader_options",
  125.     `VStretch ()
  126.     ), `HSpacing (2));
  127.  
  128.     return CWM::ShowAndRun ($[
  129.     "widget_descr" : genericWidgets (),
  130.     "widget_names" : ["boot_loader_options"],
  131.     "contents" : contents,
  132.     "caption" :  _("Boot Loader Options"),
  133.     "back_button" : Label::BackButton (),
  134.     "abort_button" : Label::AbortButton (),
  135.     "next_button" : Label::OKButton (),
  136.     ]);
  137. }
  138.  
  139.  
  140.  
  141. } // include end
  142.  
  143. /*
  144.  * Local variables:
  145.  *     mode: ycp
  146.  *     mode: font-lock
  147.  *     mode: auto-fill
  148.  *     indent-level: 4
  149.  *     fill-column: 78
  150.  * End:
  151.  */
  152.