Changeset 47278 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Jul 19, 2013 6:12:03 PM (11 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp
r47276 r47278 7 7 8 8 /* 9 * Copyright (C) 2008-201 2Oracle Corporation9 * Copyright (C) 2008-2013 Oracle Corporation 10 10 * 11 11 * This file is part of VirtualBox Open Source Edition (OSE), as … … 40 40 , m_fOHCIEnabled(false) 41 41 { 42 /* Apply UI decorations: */ 43 Ui::UIMachineSettingsSystem::setupUi(this); 44 45 /* Setup constants: */ 46 CSystemProperties properties = vboxGlobal().virtualBox().GetSystemProperties(); 47 uint hostCPUs = vboxGlobal().host().GetProcessorCount(); 48 m_uMinGuestCPU = properties.GetMinGuestCPUCount(); 49 m_uMaxGuestCPU = RT_MIN (2 * hostCPUs, properties.GetMaxGuestCPUCount()); 50 m_uMinGuestCPUExecCap = 1; 51 m_uMedGuestCPUExecCap = 40; 52 m_uMaxGuestCPUExecCap = 100; 53 54 /* Populate possible boot items list. 55 * Currently, it seems, we are supporting only 4 possible boot device types: 56 * 1. Floppy, 2. DVD-ROM, 3. Hard Disk, 4. Network. 57 * But maximum boot devices count supported by machine 58 * should be retrieved through the ISystemProperties getter. 59 * Moreover, possible boot device types are not listed in some separate Main vector, 60 * so we should get them (randomely?) from the list of all device types. 61 * Until there will be separate Main getter for list of supported boot device types, 62 * this list will be hard-coded here... */ 63 int iPossibleBootListSize = qMin((ULONG)4, properties.GetMaxBootPosition()); 64 for (int iBootPosition = 1; iBootPosition <= iPossibleBootListSize; ++iBootPosition) 65 { 66 switch (iBootPosition) 67 { 68 case 1: 69 m_possibleBootItems << KDeviceType_Floppy; 70 break; 71 case 2: 72 m_possibleBootItems << KDeviceType_DVD; 73 break; 74 case 3: 75 m_possibleBootItems << KDeviceType_HardDisk; 76 break; 77 case 4: 78 m_possibleBootItems << KDeviceType_Network; 79 break; 80 default: 81 break; 82 } 83 } 84 85 /* Add all available devices types, so we could initially calculate the right size: */ 86 for (int i = 0; i < m_possibleBootItems.size(); ++i) 87 { 88 QListWidgetItem *pItem = new UIBootTableItem(m_possibleBootItems[i]); 89 mTwBootOrder->addItem(pItem); 90 } 91 92 /* Pre-configure memory-size editor: */ 93 m_pEditorMemorySize->setMinimum(m_pSliderMemorySize->minRAM()); 94 m_pEditorMemorySize->setMaximum(m_pSliderMemorySize->maxRAM()); 95 vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorMemorySize, 5); 96 97 /* Pre-configure CPU-count editor: */ 98 m_pEditorCPUCount->setMinimum(m_uMinGuestCPU); 99 m_pEditorCPUCount->setMaximum(m_uMaxGuestCPU); 100 vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorCPUCount, 4); 101 102 /* Pre-configure CPU-execution-cap editor: */ 103 m_pEditorCPUExecCap->setMinimum(m_uMinGuestCPUExecCap); 104 m_pEditorCPUExecCap->setMaximum(m_uMaxGuestCPUExecCap); 105 vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorCPUExecCap, 4); 106 107 /* Setup memory-size connections: */ 108 connect(m_pSliderMemorySize, SIGNAL(valueChanged(int)), this, SLOT(sltHandleMemorySizeSliderChange())); 109 connect(m_pEditorMemorySize, SIGNAL(valueChanged(int)), this, SLOT(sltHandleMemorySizeEditorChange())); 110 111 /* Setup boot-table connections: */ 112 connect(mTbBootItemUp, SIGNAL(clicked()), mTwBootOrder, SLOT(sltMoveItemUp())); 113 connect(mTbBootItemDown, SIGNAL(clicked()), mTwBootOrder, SLOT(sltMoveItemDown())); 114 connect(mTwBootOrder, SIGNAL(sigRowChanged(int)), this, SLOT(onCurrentBootItemChanged(int))); 115 116 /* Setup CPU connections: */ 117 connect(m_pSliderCPUCount, SIGNAL(valueChanged(int)), this, SLOT(sltHandleCPUCountSliderChange())); 118 connect(m_pEditorCPUCount, SIGNAL(valueChanged(int)), this, SLOT(sltHandleCPUCountEditorChange())); 119 connect(m_pSliderCPUExecCap, SIGNAL(valueChanged(int)), this, SLOT(sltHandleCPUExecCapSliderChange())); 120 connect(m_pEditorCPUExecCap, SIGNAL(valueChanged(int)), this, SLOT(sltHandleCPUExecCapEditorChange())); 121 122 /* Setup boot-table iconsets: */ 123 mTbBootItemUp->setIcon(UIIconPool::iconSet(":/list_moveup_16px.png", ":/list_moveup_disabled_16px.png")); 124 mTbBootItemDown->setIcon(UIIconPool::iconSet(":/list_movedown_16px.png", ":/list_movedown_disabled_16px.png")); 125 126 #ifdef Q_WS_MAC 127 /* We need a little space for the focus rect: */ 128 m_pLayoutBootOrder->setContentsMargins (3, 3, 3, 3); 129 m_pLayoutBootOrder->setSpacing (3); 130 #endif /* Q_WS_MAC */ 131 132 /* Setup cpu slider: */ 133 m_pSliderCPUCount->setPageStep(1); 134 m_pSliderCPUCount->setSingleStep(1); 135 m_pSliderCPUCount->setTickInterval(1); 136 /* Setup the scale so that ticks are at page step boundaries: */ 137 m_pSliderCPUCount->setMinimum(m_uMinGuestCPU); 138 m_pSliderCPUCount->setMaximum(m_uMaxGuestCPU); 139 m_pSliderCPUCount->setOptimalHint(1, hostCPUs); 140 m_pSliderCPUCount->setWarningHint(hostCPUs, m_uMaxGuestCPU); 141 142 /* Setup cpu cap slider: */ 143 m_pSliderCPUExecCap->setPageStep(10); 144 m_pSliderCPUExecCap->setSingleStep(1); 145 m_pSliderCPUExecCap->setTickInterval(10); 146 /* Setup the scale so that ticks are at page step boundaries: */ 147 m_pSliderCPUExecCap->setMinimum(m_uMinGuestCPUExecCap); 148 m_pSliderCPUExecCap->setMaximum(m_uMaxGuestCPUExecCap); 149 m_pSliderCPUExecCap->setWarningHint(m_uMinGuestCPUExecCap, m_uMedGuestCPUExecCap); 150 m_pSliderCPUExecCap->setOptimalHint(m_uMedGuestCPUExecCap, m_uMaxGuestCPUExecCap); 151 152 /* Configure 'pointing HID type' combo: */ 153 m_pComboPointingHIDType->setSizeAdjustPolicy(QComboBox::AdjustToContents); 154 155 /* Populate chipset combo: */ 156 m_pComboChipsetType->addItem(gpConverter->toString(KChipsetType_PIIX3), QVariant(KChipsetType_PIIX3)); 157 m_pComboChipsetType->addItem(gpConverter->toString(KChipsetType_ICH9), QVariant(KChipsetType_ICH9)); 158 159 /* Install global event filter: */ 160 qApp->installEventFilter(this); 161 162 /* Retranslate finally: */ 163 retranslateUi(); 42 /* Prepare: */ 43 prepare(); 164 44 } 165 45 … … 514 394 void UIMachineSettingsSystem::setOrderAfter(QWidget *pWidget) 515 395 { 516 /* Motherboard tab-order: */396 /* Configure navigation for 'motherboard' tab: */ 517 397 setTabOrder(pWidget, m_pTabWidgetSystem->focusProxy()); 518 398 setTabOrder(m_pTabWidgetSystem->focusProxy(), m_pSliderMemorySize); … … 527 407 setTabOrder(m_pCheckBoxEFI, m_pCheckBoxUseUTC); 528 408 529 /* Processor tab-order: */409 /* Configure navigation for 'processor' tab: */ 530 410 setTabOrder(m_pCheckBoxUseUTC, m_pSliderCPUCount); 531 411 setTabOrder(m_pSliderCPUCount, m_pEditorCPUCount); … … 534 414 setTabOrder(m_pEditorCPUExecCap, m_pCheckBoxPAE); 535 415 536 /* Acceleration tab-order: */416 /* Configure navigation for 'acceleration' tab: */ 537 417 setTabOrder(m_pCheckBoxPAE, m_pCheckBoxVirtualization); 538 418 setTabOrder(m_pCheckBoxVirtualization, m_pCheckBoxNestedPaging); … … 634 514 } 635 515 636 void UIMachineSettingsSystem:: onCurrentBootItemChanged(int iCurrentItem)516 void UIMachineSettingsSystem::sltCurrentBootItemChanged(int iCurrentItem) 637 517 { 638 518 /* Update boot-order tool-buttons: */ … … 646 526 } 647 527 648 void UIMachineSettingsSystem::adjustBootOrderTWSize()649 {650 /* Adjust boot-table size: */651 mTwBootOrder->adjustSizeToFitContent();652 /* Update the layout system */653 if (m_pTabMotherboard->layout())654 {655 m_pTabMotherboard->layout()->activate();656 m_pTabMotherboard->layout()->update();657 }658 }659 660 void UIMachineSettingsSystem::repopulateComboPointingHIDType()661 {662 /* Is there any value currently present/selected? */663 KPointingHIDType currentValue = KPointingHIDType_None;664 {665 int iCurrentIndex = m_pComboPointingHIDType->currentIndex();666 if (iCurrentIndex != -1)667 currentValue = (KPointingHIDType)m_pComboPointingHIDType->itemData(iCurrentIndex).toInt();668 }669 670 /* Clear combo: */671 m_pComboPointingHIDType->clear();672 673 /* Repopulate combo taking into account currently cached value: */674 KPointingHIDType cachedValue = m_cache.base().m_pointingHIDType;675 {676 /* "PS/2 Mouse" value is always here: */677 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_PS2Mouse), (int)KPointingHIDType_PS2Mouse);678 679 /* "USB Mouse" value is here only if it is currently selected: */680 if (cachedValue == KPointingHIDType_USBMouse)681 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_USBMouse), (int)KPointingHIDType_USBMouse);682 683 /* "USB Mouse/Tablet" value is always here: */684 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_USBTablet), (int)KPointingHIDType_USBTablet);685 686 /* "PS/2 and USB Mouse" value is here only if it is currently selected: */687 if (cachedValue == KPointingHIDType_ComboMouse)688 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_ComboMouse), (int)KPointingHIDType_ComboMouse);689 690 /* "USB Multi-Touch Mouse/Tablet" value is always here: */691 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_USBMultiTouch), (int)KPointingHIDType_USBMultiTouch);692 }693 694 /* Was there any value previously present/selected? */695 if (currentValue != KPointingHIDType_None)696 {697 int iPreviousIndex = m_pComboPointingHIDType->findData((int)currentValue);698 if (iPreviousIndex != -1)699 m_pComboPointingHIDType->setCurrentIndex(iPreviousIndex);700 }701 }702 703 528 void UIMachineSettingsSystem::sltHandleCPUCountSliderChange() 704 529 { … … 747 572 if (m_pValidator) 748 573 m_pValidator->revalidate(); 574 } 575 576 void UIMachineSettingsSystem::prepare() 577 { 578 /* Apply UI decorations: */ 579 Ui::UIMachineSettingsSystem::setupUi(this); 580 581 /* Prepare 'motherboard' tab: */ 582 prepareTabMotherboard(); 583 584 /* Prepare 'processor' tab: */ 585 prepareTabProcessor(); 586 587 /* Retranslate finally: */ 588 retranslateUi(); 589 } 590 591 void UIMachineSettingsSystem::prepareTabMotherboard() 592 { 593 /* Load configuration: */ 594 CSystemProperties properties = vboxGlobal().virtualBox().GetSystemProperties(); 595 596 /* Preconfigure memory-size editor: */ 597 m_pEditorMemorySize->setMinimum(m_pSliderMemorySize->minRAM()); 598 m_pEditorMemorySize->setMaximum(m_pSliderMemorySize->maxRAM()); 599 vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorMemorySize, 5); 600 601 /* Preconfigure boot-table widgets: */ 602 mTbBootItemUp->setIcon(UIIconPool::iconSet(":/list_moveup_16px.png", ":/list_moveup_disabled_16px.png")); 603 mTbBootItemDown->setIcon(UIIconPool::iconSet(":/list_movedown_16px.png", ":/list_movedown_disabled_16px.png")); 604 #ifdef Q_WS_MAC 605 /* We need a little space for the focus rect: */ 606 m_pLayoutBootOrder->setContentsMargins(3, 3, 3, 3); 607 m_pLayoutBootOrder->setSpacing(3); 608 #endif /* Q_WS_MAC */ 609 /* Install global event filter 610 * to handle boot-table focus in/out events: */ 611 // TODO: Get rid of that *crap*! 612 qApp->installEventFilter(this); 613 614 /* Populate possible boot items list. 615 * Currently, it seems, we are supporting only 4 possible boot device types: 616 * 1. Floppy, 2. DVD-ROM, 3. Hard Disk, 4. Network. 617 * But maximum boot devices count supported by machine 618 * should be retrieved through the ISystemProperties getter. 619 * Moreover, possible boot device types are not listed in some separate Main vector, 620 * so we should get them (randomely?) from the list of all device types. 621 * Until there will be separate Main getter for list of supported boot device types, 622 * this list will be hard-coded here... */ 623 int iPossibleBootListSize = qMin((ULONG)4, properties.GetMaxBootPosition()); 624 for (int iBootPosition = 1; iBootPosition <= iPossibleBootListSize; ++iBootPosition) 625 { 626 switch (iBootPosition) 627 { 628 case 1: m_possibleBootItems << KDeviceType_Floppy; break; 629 case 2: m_possibleBootItems << KDeviceType_DVD; break; 630 case 3: m_possibleBootItems << KDeviceType_HardDisk; break; 631 case 4: m_possibleBootItems << KDeviceType_Network; break; 632 default: break; 633 } 634 } 635 /* Add all available devices types, so we could initially calculate the right size: */ 636 for (int i = 0; i < m_possibleBootItems.size(); ++i) 637 { 638 QListWidgetItem *pItem = new UIBootTableItem(m_possibleBootItems[i]); 639 mTwBootOrder->addItem(pItem); 640 } 641 642 /* Populate 'chipset type' combo: */ 643 m_pComboChipsetType->addItem(gpConverter->toString(KChipsetType_PIIX3), QVariant(KChipsetType_PIIX3)); 644 m_pComboChipsetType->addItem(gpConverter->toString(KChipsetType_ICH9), QVariant(KChipsetType_ICH9)); 645 646 /* Preconfigure 'pointing HID type' combo: */ 647 m_pComboPointingHIDType->setSizeAdjustPolicy(QComboBox::AdjustToContents); 648 649 /* Install memory-size widget connections: */ 650 connect(m_pSliderMemorySize, SIGNAL(valueChanged(int)), this, SLOT(sltHandleMemorySizeSliderChange())); 651 connect(m_pEditorMemorySize, SIGNAL(valueChanged(int)), this, SLOT(sltHandleMemorySizeEditorChange())); 652 653 /* Install boot-table connections: */ 654 connect(mTbBootItemUp, SIGNAL(clicked()), mTwBootOrder, SLOT(sltMoveItemUp())); 655 connect(mTbBootItemDown, SIGNAL(clicked()), mTwBootOrder, SLOT(sltMoveItemDown())); 656 connect(mTwBootOrder, SIGNAL(sigRowChanged(int)), this, SLOT(sltCurrentBootItemChanged(int))); 657 } 658 659 void UIMachineSettingsSystem::prepareTabProcessor() 660 { 661 /* Load configuration: */ 662 CSystemProperties properties = vboxGlobal().virtualBox().GetSystemProperties(); 663 uint hostCPUs = vboxGlobal().host().GetProcessorCount(); 664 m_uMinGuestCPU = properties.GetMinGuestCPUCount(); 665 m_uMaxGuestCPU = qMin(2 * hostCPUs, properties.GetMaxGuestCPUCount()); 666 m_uMinGuestCPUExecCap = 1; 667 m_uMedGuestCPUExecCap = 40; 668 m_uMaxGuestCPUExecCap = 100; 669 670 /* Preconfigure CPU-count slider: */ 671 m_pSliderCPUCount->setPageStep(1); 672 m_pSliderCPUCount->setSingleStep(1); 673 m_pSliderCPUCount->setTickInterval(1); 674 m_pSliderCPUCount->setMinimum(m_uMinGuestCPU); 675 m_pSliderCPUCount->setMaximum(m_uMaxGuestCPU); 676 m_pSliderCPUCount->setOptimalHint(1, hostCPUs); 677 m_pSliderCPUCount->setWarningHint(hostCPUs, m_uMaxGuestCPU); 678 679 /* Preconfigure CPU-count editor: */ 680 m_pEditorCPUCount->setMinimum(m_uMinGuestCPU); 681 m_pEditorCPUCount->setMaximum(m_uMaxGuestCPU); 682 vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorCPUCount, 4); 683 684 /* Preconfigure CPU-execution-cap slider: */ 685 m_pSliderCPUExecCap->setPageStep(10); 686 m_pSliderCPUExecCap->setSingleStep(1); 687 m_pSliderCPUExecCap->setTickInterval(10); 688 /* Setup the scale so that ticks are at page step boundaries: */ 689 m_pSliderCPUExecCap->setMinimum(m_uMinGuestCPUExecCap); 690 m_pSliderCPUExecCap->setMaximum(m_uMaxGuestCPUExecCap); 691 m_pSliderCPUExecCap->setWarningHint(m_uMinGuestCPUExecCap, m_uMedGuestCPUExecCap); 692 m_pSliderCPUExecCap->setOptimalHint(m_uMedGuestCPUExecCap, m_uMaxGuestCPUExecCap); 693 694 /* Preconfigure CPU-execution-cap editor: */ 695 m_pEditorCPUExecCap->setMinimum(m_uMinGuestCPUExecCap); 696 m_pEditorCPUExecCap->setMaximum(m_uMaxGuestCPUExecCap); 697 vboxGlobal().setMinimumWidthAccordingSymbolCount(m_pEditorCPUExecCap, 4); 698 699 /* Install CPU widget connections: */ 700 connect(m_pSliderCPUCount, SIGNAL(valueChanged(int)), this, SLOT(sltHandleCPUCountSliderChange())); 701 connect(m_pEditorCPUCount, SIGNAL(valueChanged(int)), this, SLOT(sltHandleCPUCountEditorChange())); 702 connect(m_pSliderCPUExecCap, SIGNAL(valueChanged(int)), this, SLOT(sltHandleCPUExecCapSliderChange())); 703 connect(m_pEditorCPUExecCap, SIGNAL(valueChanged(int)), this, SLOT(sltHandleCPUExecCapEditorChange())); 704 } 705 706 void UIMachineSettingsSystem::repopulateComboPointingHIDType() 707 { 708 /* Is there any value currently present/selected? */ 709 KPointingHIDType currentValue = KPointingHIDType_None; 710 { 711 int iCurrentIndex = m_pComboPointingHIDType->currentIndex(); 712 if (iCurrentIndex != -1) 713 currentValue = (KPointingHIDType)m_pComboPointingHIDType->itemData(iCurrentIndex).toInt(); 714 } 715 716 /* Clear combo: */ 717 m_pComboPointingHIDType->clear(); 718 719 /* Repopulate combo taking into account currently cached value: */ 720 KPointingHIDType cachedValue = m_cache.base().m_pointingHIDType; 721 { 722 /* "PS/2 Mouse" value is always here: */ 723 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_PS2Mouse), (int)KPointingHIDType_PS2Mouse); 724 725 /* "USB Mouse" value is here only if it is currently selected: */ 726 if (cachedValue == KPointingHIDType_USBMouse) 727 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_USBMouse), (int)KPointingHIDType_USBMouse); 728 729 /* "USB Mouse/Tablet" value is always here: */ 730 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_USBTablet), (int)KPointingHIDType_USBTablet); 731 732 /* "PS/2 and USB Mouse" value is here only if it is currently selected: */ 733 if (cachedValue == KPointingHIDType_ComboMouse) 734 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_ComboMouse), (int)KPointingHIDType_ComboMouse); 735 736 /* "USB Multi-Touch Mouse/Tablet" value is always here: */ 737 m_pComboPointingHIDType->addItem(gpConverter->toString(KPointingHIDType_USBMultiTouch), (int)KPointingHIDType_USBMultiTouch); 738 } 739 740 /* Was there any value previously present/selected? */ 741 if (currentValue != KPointingHIDType_None) 742 { 743 int iPreviousIndex = m_pComboPointingHIDType->findData((int)currentValue); 744 if (iPreviousIndex != -1) 745 m_pComboPointingHIDType->setCurrentIndex(iPreviousIndex); 746 } 749 747 } 750 748 … … 776 774 if (iCorrespondingIndex != -1) 777 775 m_pComboPointingHIDType->setItemText(iCorrespondingIndex, gpConverter->toString(type)); 776 } 777 } 778 779 void UIMachineSettingsSystem::adjustBootOrderTWSize() 780 { 781 /* Adjust boot-table size: */ 782 mTwBootOrder->adjustSizeToFitContent(); 783 /* Update the layout system */ 784 if (m_pTabMotherboard->layout()) 785 { 786 m_pTabMotherboard->layout()->activate(); 787 m_pTabMotherboard->layout()->update(); 778 788 } 779 789 } … … 798 808 mTwBootOrder->setCurrentItem(mTwBootOrder->item(0)); 799 809 else 800 onCurrentBootItemChanged(mTwBootOrder->currentRow());810 sltCurrentBootItemChanged(mTwBootOrder->currentRow()); 801 811 mTwBootOrder->currentItem()->setSelected(true); 802 812 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.h
r47276 r47278 6 6 7 7 /* 8 * Copyright (C) 2008-201 2Oracle Corporation8 * Copyright (C) 2008-2013 Oracle Corporation 9 9 * 10 10 * This file is part of VirtualBox Open Source Edition (OSE), as … … 172 172 173 173 /* Handler: Boot-table stuff: */ 174 void onCurrentBootItemChanged(int iCurrentIndex);174 void sltCurrentBootItemChanged(int iCurrentIndex); 175 175 176 176 /* Handlers: CPU stuff: */ … … 182 182 private: 183 183 184 /* Helpers: Prepare stuff: */ 185 void prepare(); 186 void prepareTabMotherboard(); 187 void prepareTabProcessor(); 188 189 /* Helper: Pointing HID type combo stuff: */ 190 void repopulateComboPointingHIDType(); 191 184 192 /* Helpers: Translation stuff: */ 185 193 void retranslateComboPointingChipsetType(); 186 194 void retranslateComboPointingHIDType(); 187 195 196 /* Helper: Boot-table stuff: */ 197 void adjustBootOrderTWSize(); 198 188 199 /* Handler: Event-filtration stuff: */ 189 200 bool eventFilter(QObject *aObject, QEvent *aEvent); 190 191 /* Helper: Boot-table stuff: */192 void adjustBootOrderTWSize();193 194 /* Helper: Pointing HID type combo stuff: */195 void repopulateComboPointingHIDType();196 201 197 202 /* Variable: Validation stuff: */
Note:
See TracChangeset
for help on using the changeset viewer.