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

  1. /**************
  2. FILE          : inst_mouse.ycp
  3. ***************
  4. PROJECT       : YaST2 - Yet another Setup Tool
  5.               :
  6. AUTHOR        : Marcus SchΣfer <ms@suse.de>
  7.               :
  8. BELONGS TO    : YaST2 - GPM mouse configuration
  9.               :
  10. DESCRIPTION   : mouse.ycp will call inst_mouse to initialize
  11.               : the target system GUI
  12.               :
  13. STATUS        : Development
  14. **************/
  15. /*! \brief YaST2 - GPM configuration interface
  16. *
  17. * File:    inst_mouse.ycp
  18. * Package:    Mouse configuration
  19. * Summary:    Main client
  20. * Authors:    Marcus SchΣfer <ms@suse.de>
  21. */
  22. {
  23. textdomain "mouse";
  24. //==========================================
  25. // Imports...
  26. //------------------------------------------
  27. import "Mode";
  28. import "Stage";
  29. import "Mouse";
  30. import "Wizard";
  31. import "Popup";
  32. import "GetInstArgs";
  33.  
  34. //==========================================
  35. // Globals...
  36. //------------------------------------------
  37. string mouse_on_entry = Mouse::mouse;
  38. string mouse      = Mouse::mouse;
  39.  
  40. //==========================================
  41. // Build dialog
  42. //------------------------------------------
  43. if ( Mode::test() ) {
  44.     mouse = "00_ps2";
  45. }
  46. term probe_mouse_check_button = `Empty();
  47. term test_button = `Empty();
  48.  
  49. if (Mode::config()) {
  50.     Wizard::HideAbortButton();
  51. } else {
  52.     Wizard::OpenAcceptDialog();
  53.     //test_button = `PushButton( `id(`apply), _("&Test") );
  54. }
  55.  
  56. term contents =
  57.     `VBox(
  58.         `SelectionBox (`id(`mouse),
  59.             _("Choose your &mouse type from the list"),
  60.             maplist (string mouse_code, string mouse_name, Mouse::Selection (),
  61.             ``{
  62.                 return `item(`id (mouse_code),
  63.                     mouse_name,
  64.                     mouse == mouse_code);
  65.             } ) ),
  66.             probe_mouse_check_button,
  67.             `VSpacing(0.3),
  68.                 test_button,
  69.             `VSpacing(0.5)
  70.     );
  71.  
  72. //==========================================
  73. // help texts
  74. //------------------------------------------
  75. string help_text = _("<p>
  76. Choose the <b>mouse type</b> of the mouse attached to your computer.
  77. </p>
  78. ");
  79.  
  80. help_text = help_text + _("<p>
  81. Use the arrow keys to select a mouse. If the selection bar does not
  82. move, hit the <b><i>Tab</i></b> key (maybe repeatedly) until it does.
  83. </p>
  84. ");
  85.  
  86. help_text = help_text + _("<p>
  87. If you select <b>None</b>, you have to use the keyboard as
  88. described in the manual.
  89. </p>");
  90.  
  91. Wizard::SetContents(_("Mouse configuration"), contents,
  92.         help_text,
  93.         GetInstArgs::enable_back(), GetInstArgs::enable_next()
  94. );
  95.  
  96. Wizard::SetDesktopIcon("mouse");
  97. if( Stage::initial() ) {
  98.     Wizard::SetTitleIcon( "mouse" );
  99. }
  100.  
  101. Mouse::Set( Mouse::mouse );
  102.  
  103. any ret = nil;
  104.  
  105. //==========================================
  106. // main loop
  107. //------------------------------------------
  108. repeat {
  109.     // In this dialog only, set the keyboard focus to the mouse
  110.     // selection box for every iteration of the input loop. If
  111.     // anything goes wrong here, the user has a hard enough time
  112.     // getting his system to work-  even without having to worry about
  113.     // how to get the keyboard focus into the list. He most likely
  114.     // doesn't have a working mouse right now (otherwise he wouldn't
  115.     // be here in the first place).
  116.     UI::SetFocus(`id(`mouse));
  117.     ret = Wizard::UserInput();
  118.  
  119.     if ( !Mode::config() && ret == `abort
  120.         && Popup::ConfirmAbort (`painless) )
  121.     {
  122.         break;
  123.     }
  124.  
  125.     if ( ret == `next || ret == `apply ) {
  126.         string new_mouse = (string) UI::QueryWidget(`id(`mouse), `CurrentItem);
  127.  
  128.         if ( new_mouse != nil )
  129.         {
  130.         Mouse::Set( new_mouse );
  131.         if (Mode::config())
  132.         {
  133.             import "AutoinstGeneral";
  134.             AutoinstGeneral::mouse["id"] = Mouse::mouse;
  135.         }
  136.         }
  137.  
  138.         if ( ret == `next && new_mouse != mouse_on_entry )
  139.         {
  140.         y2milestone("Clearing unique key <%1> due to manual selection",
  141.             Mouse::unique_key
  142.         );
  143.         Mouse::unique_key = "";
  144.         }
  145.     }
  146.     } until( ret == `next || ret == `back || ret == `cancel );
  147.  
  148.     if ( ret == `back || ret == `cancel )
  149.     {
  150.     y2milestone("`back or `cancel restoring: <%1>", mouse_on_entry );
  151.     Mouse::Set( mouse_on_entry );
  152.     }
  153.  
  154.     Wizard::CloseDialog();
  155.     return ret;
  156. }
  157.