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 / mouse.ycp < prev    next >
Text File  |  2006-11-29  |  5KB  |  166 lines

  1. /**************
  2. FILE          : 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 is the first instance called in
  11.               : front of the inst_mouse.ycp configuration module
  12.               : we will handle the reprobe case here and the
  13.               : return value from the configuration module which
  14.               : is needed to restore the mouse in special cases
  15.               :
  16.               :
  17. STATUS        : Development
  18. **************/
  19. /*! \brief YaST2 - GPM configuration interface
  20. *
  21. * File:    clients/mouse.ycp
  22. * Package:    Mouse configuration
  23. * Summary:    Main client
  24. * Authors:    Marcus SchΣfer <ms@suse.de>
  25. *
  26. */
  27. { // begin
  28. textdomain "mouse";
  29.  
  30. //==========================================
  31. // Import...
  32. //------------------------------------------
  33. import "CommandLine";
  34. import "Confirm";
  35. import "Label";
  36. import "Stage";
  37. import "Mouse";
  38. import "Popup";
  39. import "Wizard";
  40.  
  41. //==========================================
  42. // Memorize the current mouse.
  43. //------------------------------------------
  44. string mouse_on_entry = "";
  45.  
  46. //==========================================
  47. // MouseRead
  48. //------------------------------------------
  49. define boolean MouseRead () {
  50.     mouse_on_entry = Mouse::mouse;
  51.     y2milestone( "Stage::reprobe %1 Mouse:%2", Stage::reprobe(), Mouse::mouse);
  52.     return true;
  53. }
  54.  
  55. //==========================================
  56. // MouseWrite
  57. //------------------------------------------
  58. define boolean MouseWrite () {
  59.     Mouse::Save();
  60.     return true;
  61. }
  62.  
  63. //==========================================
  64. // print mouse configuration summary
  65. //------------------------------------------
  66. define boolean MouseSummaryHandler (map options) {
  67.     foreach (string mouse_code, string name, Mouse::Selection (), {
  68.     if (mouse_on_entry == mouse_code) {
  69.         CommandLine::Print (sformat (_("Current Mouse Type: %1"), name));
  70.     }});
  71.     return false;
  72. }
  73.  
  74. //==========================================
  75. // MouseSequence
  76. //------------------------------------------
  77. define any MouseSequence () {
  78.  
  79.     map display_info    = (map) UI::GetDisplayInfo ();
  80.     if (!display_info["TextMode"]:true)
  81.     {
  82.         if (Confirm::MustBeRoot ())
  83.         {
  84.         // call sax
  85.         SCR::Execute (.target.bash, "/usr/sbin/sax2 -O Mouse");
  86.         return `finish;
  87.         }
  88.         return `cancel;
  89.     }
  90.  
  91.     MouseRead ();
  92.     //==========================================
  93.     // Check if this is a reconfiguration run.
  94.     //------------------------------------------
  95.     if((Stage::reprobe()) || (mouse_on_entry == "none")) {
  96.         string mouseID = Mouse::Probe();
  97.         if (mouseID == "none") {
  98.             Mouse::mouse = "none";
  99.         }
  100.         Mouse::Set( Mouse::mouse );
  101.     }
  102.     any result = `cancel;
  103.     //==========================================
  104.     // create the wizard dialog
  105.     //------------------------------------------
  106.     Wizard::CreateDialog();
  107.  
  108.     //==========================================
  109.     // check if no mouse is connected
  110.     //------------------------------------------
  111.     if( Stage::reprobe() && (Mouse::mouse=="none") ) {
  112.         Popup::TimedMessage( _("No mouse connected to the system..."), 10);
  113.         y2milestone ( "No mouse detected --> unchanged" );
  114.         return UI::CloseDialog();
  115.     }
  116.  
  117.     //==========================================
  118.     // call inst_mouse and init mouse list
  119.     //------------------------------------------
  120.     result = WFM::CallFunction ( "inst_mouse", [ true, true ] );
  121.  
  122.     //==========================================
  123.     // handle result value from the config
  124.     //------------------------------------------
  125.     if( result == `next ) {
  126.         // ...
  127.         // User accepted the the setting.
  128.         // Only if the user has chosen a different mouse change the
  129.         // system configuration.
  130.         // ---
  131.         y2milestone("User selected new mouse: <%1>", Mouse::mouse );
  132.         MouseWrite ();
  133.     } else {
  134.         // ...
  135.         // `cancel or `back selected
  136.         // ---
  137.         y2milestone( "User cancelled --> no change" );
  138.     }
  139.     UI::CloseDialog();
  140.     return result;
  141. }
  142.  
  143. //==========================================
  144. // the command line description
  145. //------------------------------------------
  146. map cmdline = $[
  147.     "id"        : "mouse",
  148.     "help"        : _("Mouse configuration."),
  149.     "guihandler"    : MouseSequence,
  150.     "initialize"    : MouseRead,
  151.     "finish"        : MouseWrite,
  152.     "actions"        : $[
  153.         "summary" :$[
  154.             "handler"    : MouseSummaryHandler,
  155.             "help"    : _("Mouse configuration summary."),
  156.         ],
  157.     ],
  158. ];
  159.  
  160. //==========================================
  161. // Run the module
  162. //------------------------------------------
  163. CommandLine::Run (cmdline);
  164. return true;
  165. } // end
  166.