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

  1. /**
  2.  * File:
  3.  *      include/bootloader/routines/sections_widgets.ycp
  4.  *
  5.  * Module:
  6.  *      Bootloader installation and configuration
  7.  *
  8.  * Summary:
  9.  *      Common widgets for being used by several bootloaders
  10.  *
  11.  * Authors:
  12.  *      Joachim Plack <jplack@suse.de>
  13.  *
  14.  * $Id: section_widgets.ycp 33293 2006-10-09 17:11:36Z jplack $
  15.  *
  16.  */
  17.  
  18.  
  19. {
  20.  
  21. textdomain "bootloader";
  22.  
  23. import "BootCommon";
  24. import "Label";
  25. import "Stage";
  26.  
  27. include "bootloader/generic/widget_funcs.ycp";
  28.  
  29.  
  30.  
  31.  
  32.  
  33. /**
  34.  * Validate function of a widget
  35.  * @param widget any widget key
  36.  * @param event map event description of event that occured
  37.  * @return boolean true if widget settings ok
  38.  */
  39. boolean _SectionNameValidate (string widget, map event) {
  40.     list<string> existing = [];
  41.     foreach (map<string,any> s, BootCommon::sections, {
  42.     existing = add (existing, s["name"]:"");
  43.     });
  44.     existing = (list<string>)filter (string l, existing, {
  45.     return l != BootCommon::current_section_name;
  46.     });
  47.     existing = (list<string>)add (existing, "");
  48.     string new = (string)UI::QueryWidget (`id (widget), `Value);
  49.  
  50.     if (contains (existing, new))
  51.     {
  52.     usedNameErrorPopup ();
  53.     return false;
  54.     }
  55.     return true;
  56. }
  57.  
  58. /**
  59.  * Store function of a widget
  60.  * @param widget any widget key
  61.  * @param event map event description of event that occured
  62.  */
  63. void _SectionNameStore (string widget, map event) {
  64.     string value = (string)UI::QueryWidget (`id (widget), `Value);
  65.     BootCommon::current_section[widget] = value;
  66. }
  67.  
  68.  
  69. /**
  70.  * Cache for CommonSectionWidgets
  71.  */
  72. map<string,map<string,any> > _generic_common_section_widgets = nil;
  73.  
  74. /**
  75.  * Get common widgets for loader sections
  76.  * @return a map describing common loader section related widgets
  77.  */
  78. map<string,map<string,any> > _CommonSectionWidgets () {
  79.     if (_generic_common_section_widgets == nil)
  80.     {
  81.       _generic_common_section_widgets = $[
  82.         "name" : $[
  83.         // text entry
  84.         "label" : _("Section &Name"),
  85.         "widget" : `textentry,
  86.         "validate_type" : `function,
  87.         "validate_function" : _SectionNameValidate,
  88.         "store" : _SectionNameStore,
  89.         "help" : generic_Help("section-name"),
  90.         ],
  91.     ];
  92.     }
  93.     return _generic_common_section_widgets;
  94. }
  95.  
  96. } // include end
  97.