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 / modules / XLibAPI.pm < prev    next >
Text File  |  2006-11-29  |  2KB  |  98 lines

  1. #
  2. # XLibAPI.pm
  3. # wrapper for XLib.pm functions, accessing libsax
  4. #
  5.  
  6. package XLibAPI;
  7.  
  8. use strict;
  9. use YaST::YCP qw(:LOGGING Boolean sformat);;
  10. use YaPI;
  11. use Data::Dumper;
  12.  
  13. YaST::YCP::Import ("XLib");
  14.  
  15. our %TYPEINFO;
  16.  
  17. use strict;
  18. use Errno qw(ENOENT);
  19.  
  20.  
  21. # initialize libsax library
  22. sub initialize {
  23.  
  24.     if (! XLib->isInitialized()) {
  25.     XLib->loadApplication();
  26.     }
  27. }
  28.  
  29. # return current X Keyboard Layout
  30. BEGIN{ $TYPEINFO{getXkbLayout} = ["function", "string"]; }
  31. sub getXkbLayout {
  32.  
  33.     initialize ();
  34.     return XLib->getXkbLayout ();
  35. }
  36.  
  37. # set new X Keyboard Layout
  38. BEGIN{ $TYPEINFO{setXkbLayout} = ["function", "void", "string"]; }
  39. sub setXkbLayout {
  40.  
  41.     my ($self, $layout)    = @_;
  42.     initialize ();
  43.     XLib->setXkbLayout ($layout);
  44. }
  45.  
  46. # set new Xkb model
  47. BEGIN{ $TYPEINFO{setXkbModel} = ["function", "void", "string"]; }
  48. sub setXkbModel {
  49.  
  50.     my ($self, $model)    = @_;
  51.     initialize ();
  52.     XLib->setXkbModel ($model);
  53. }
  54.  
  55. # set new Xkb Variant
  56. # parameters: layout, variant_for_layout
  57. BEGIN{ $TYPEINFO{setXkbVariant} = ["function", "void", "string", "string"]; }
  58. sub setXkbVariant {
  59.  
  60.     my ($self, $layout, $variant)    = @_;
  61.     initialize ();
  62.     XLib->setXkbVariant ($layout, $variant);
  63. }
  64.  
  65. # set mapping for the special keys (Left/Right-Alt Scroll-Lock and Right Ctrl)
  66. # parameter: map of type [ special_key_id : mapping_id ]
  67. BEGIN{ $TYPEINFO{setXkbMappings} = ["function", "void", ["map", "string", "string"]]; }
  68. sub setXkbMappings {
  69.  
  70.     my ($self, $mappings)    = @_;
  71.     initialize ();
  72.     XLib->setXkbMappings ($mappings);
  73. }
  74.  
  75. # set Xkb options
  76. # parameter: list of options
  77. BEGIN{ $TYPEINFO{setXkbOptions} = ["function", "void", ["list", "string"]]; }
  78. sub setXkbOptions {
  79.  
  80.     my ($self, $options)    = @_;
  81.     initialize ();
  82.     XLib->setXkbOptions ($options);
  83. }
  84.  
  85. # write the changes, return true for success
  86. BEGIN{ $TYPEINFO{Write} = ["function", "boolean"];}
  87. sub Write {
  88.  
  89.     if (XLib->isInitialized()) {
  90.     return XLib->writeConfiguration ();
  91.     }
  92.     else {
  93.     return 0;
  94.     }
  95. }
  96.  
  97. 42
  98.