Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <!--
  2. Parallel port settings
  3. Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
  4. $Id: settingsParallelPorts.html 597 2015-04-20 11:41:28Z imoore76 $
  5. -->
  6. <div id='vboxSettingsTabParallelPort'>
  7. <table class='vboxVertical'>
  8. <tr>
  9. <td colspan='2'><label><input name='vboxSettingsPPortEnabled' class='vboxCheckbox vboxEnablerCheckbox' type='checkbox' /> <span class='translate'>Enable Parallel Port</span></label></td>
  10. </tr>
  11. <tr>
  12. <th style='min-width: 120px'><span class='translate'>Port Number:</span></th>
  13. <td class='vboxEnablerTrigger'>
  14. <select style='width: auto' name='vboxSettingsPPortNumber' onchange='vboxSettingsUpdatePPortOptions(this);'>
  15. <option value='LPT1'>LPT1</option>
  16. <option value='LPT2'>LPT2</option>
  17. <option value='LPT3'>LPT3</option>
  18. <option value='User-defined' class='translate'>User-defined</option>
  19. </select>
  20. <span class='vboxEnablerListen translate'>IRQ:</span> <input type='text' name='vboxSettingsPPortIRQ' size='2' />
  21. <span class='vboxEnablerListen translate'>I/O Port:</span> <input type='text' name='vboxSettingsPPortIO' size='5' />
  22. </td>
  23. </tr>
  24. <tr>
  25. <th class='vboxPPortPathLabel'><span class='translate'>Port Path:</span></th>
  26. <td>
  27. <input type='text' class='vboxText vboxPPortPathBox' style='width: 100%' name='vboxSettingsPPortPath'/>
  28. </td>
  29. </tr>
  30. </table>
  31. </div>
  32. <script type='text/javascript'>
  33. /*
  34. *
  35. * Setup data for parallel port options
  36. *
  37. */
  38. if($('#vboxPane').data('vboxConfig').enableLPTConfig) {
  39. var vboxSettingsPPortTemplate = document.getElementById('vboxSettingsTabParallelPort');
  40. var vboxSettingsPPortContainer = $(vboxSettingsPPortTemplate).parent();
  41. /* translated select values */
  42. for(var i = 0; i < document.forms['frmVboxSettings'].vboxSettingsPPortNumber.options.length; i++) {
  43. if($(document.forms['frmVboxSettings'].vboxSettingsPPortNumber.options[i]).hasClass('translate'))
  44. $(document.forms['frmVboxSettings'].vboxSettingsPPortNumber.options[i]).text(trans(document.forms['frmVboxSettings'].vboxSettingsPPortNumber.options[i].text,'VBoxGlobal')).removeClass('translate');
  45. }
  46. //Translations
  47. $('#vboxSettingsTabParallelPort').find(".translate").html(function(i,h){return trans($('<div />').html(h).text(),'UIMachineSettingsParallel');}).removeClass('translate');
  48. /* Parallel Port tab links */
  49. var ul = $('<ul />');
  50. $(vboxSettingsPPortContainer).append(ul);
  51. for(var i = 0; i < parseInt($('#vboxPane').data('vboxSystemProperties').parallelPortCount); i++) {
  52. /* tab */
  53. ul.append($('<li />').html('<a href="#' + vboxSettingsPPortTemplate.id + (i + 1) +'"><span>' + trans('Port %1','UIMachineSettingsParallel').replace('%1',i + 1) + '</span></a>'));
  54. /* tab content */
  55. var newTab = $("#vboxSettingsTabParallelPort").clone(true);
  56. newTab.attr('id',vboxSettingsPPortTemplate.id + (i + 1));
  57. newTab.css('display','block');
  58. // Enable / disable trigger
  59. newTab.find('.vboxEnablerTrigger').on('enable',function(){
  60. $(this).children('select').trigger('change');
  61. });
  62. newTab.appendTo(vboxSettingsPPortContainer);
  63. /* Form elements must be unique */
  64. $("#vboxSettingsTabParallelPort" + (i + 1)).find('[name]').each(function() {
  65. $(this).attr('name',$(this).attr('name') + (i + 1));
  66. });
  67. }
  68. /* Remove Template */
  69. $("#vboxSettingsTabParallelPort").empty().remove();
  70. //Tell jQuery to set up tabs
  71. $(vboxSettingsPPortContainer).tabs();
  72. }
  73. /*
  74. * Called when parallel port options change
  75. */
  76. function vboxSettingsUpdatePPortOptions(sel) {
  77. // IRQ and IO text boxes
  78. if(sel.value == 'User-defined') {
  79. $(sel).siblings('input').prop('disabled',false);
  80. $(sel).siblings('span').removeClass('vboxDisabled');
  81. } else {
  82. $(sel).siblings('input').prop('disabled',true);
  83. $(sel).siblings('span').addClass('vboxDisabled');
  84. for(var i = 0; i < vboxParallelPorts.ports.length; i++) {
  85. if(vboxParallelPorts.ports[i].name == sel.value) {
  86. $(sel).siblings('input').first().val(vboxParallelPorts.ports[i].irq);
  87. $(sel).siblings('input').last().val(vboxParallelPorts.ports[i].port);
  88. return;
  89. }
  90. }
  91. }
  92. }
  93. /*
  94. *
  95. * Parallel port logic
  96. *
  97. */
  98. if($('#vboxPane').data('vboxConfig').enableLPTConfig) {
  99. $('#vboxSettingsDialog').on('dataLoaded',function(){
  100. /* Port values */
  101. for(var i = 0; i < parseInt($('#vboxSettingsDialog').data('vboxMachineData').parallelPorts.length); i++) {
  102. var a = (i + 1);
  103. if(a > $('#vboxPane').data('vboxSystemProperties').parallelPortCount) continue;
  104. // Port Number
  105. var pNum = vboxParallelPorts.getPortName($('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].IRQ,$('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].IOBase);
  106. $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortNumber'+a]).val(pNum);
  107. $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortNumber'+a].options[document.forms['frmVboxSettings'].elements['vboxSettingsPPortNumber'+a].selectedIndex]).attr('selected','selected');
  108. $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortNumber'+a]).change();
  109. $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortIRQ'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].IRQ);
  110. $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortIO'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].IOBase);
  111. // Path
  112. $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortPath'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].path);
  113. // Enabled port
  114. $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortEnabled'+a]).prop('checked',$('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].enabled).triggerHandler('click');
  115. }
  116. if(!$('#vboxSettingsDialog').data('vboxFullEdit')) {
  117. vboxSettingsPPortContainer.find('input.vboxEnablerCheckbox').triggerHandler('click');
  118. vboxSettingsPPortContainer.children(':not(ul)').find('span').addClass('disabled');
  119. vboxSettingsPPortContainer.find('input,select,textarea').prop('disabled',true);
  120. } else {
  121. vboxSettingsPPortContainer.find('span').removeClass('disabled');
  122. vboxSettingsPPortContainer.find('input,select,textarea').prop('disabled',false);
  123. vboxSettingsPPortContainer.find('input.vboxEnablerCheckbox').triggerHandler('click');
  124. }
  125. });
  126. }
  127. /* Change settings onSave() */
  128. $('#vboxSettingsDialog').on('save',function(){
  129. if(!$('#vboxPane').data('vboxConfig').enableLPTConfig) return;
  130. for(var i = 0; i < parseInt($('#vboxPane').data('vboxSystemProperties').parallelPortCount); i++) {
  131. var a = (i + 1);
  132. // Port IRQ and IO
  133. $('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].IRQ = $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortIRQ'+a]).val();
  134. $('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].IOBase = $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortIO'+a]).val();
  135. // Path
  136. $('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].path = $(document.forms['frmVboxSettings'].elements['vboxSettingsPPortPath'+a]).val();
  137. // Enabled port
  138. $('#vboxSettingsDialog').data('vboxMachineData').parallelPorts[i].enabled = document.forms['frmVboxSettings'].elements['vboxSettingsPPortEnabled'+a].checked;
  139. }
  140. });
  141. </script>