Changeset 94298 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Mar 17, 2022 4:24:26 PM (3 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 4 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r94251 r94298 906 906 src/settings/editors/UIHotKeyEditor.h \ 907 907 src/settings/editors/UILanguageSettingsEditor.h \ 908 src/settings/editors/UIMachineAudioFeaturesEditor.h \ 908 909 src/settings/editors/UIMaximumGuestScreenSizeEditor.h \ 909 910 src/settings/editors/UINameAndSystemEditor.h \ … … 1461 1462 src/settings/editors/UIHotKeyEditor.cpp \ 1462 1463 src/settings/editors/UILanguageSettingsEditor.cpp \ 1464 src/settings/editors/UIMachineAudioFeaturesEditor.cpp \ 1463 1465 src/settings/editors/UIMaximumGuestScreenSizeEditor.cpp \ 1464 1466 src/settings/editors/UINameAndSystemEditor.cpp \ -
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIAudioHostDriverEditor.cpp
r94039 r94298 86 86 m_pCombo->setItemText(i, gpConverter->toString(enmType)); 87 87 } 88 m_pCombo->setToolTip(tr("Selects the audio output driver. The <b>Null Audio Driver</b>makes the guest "88 m_pCombo->setToolTip(tr("Selects the audio output driver. The Null Audio Driver makes the guest " 89 89 "see an audio card, however every access to it will be ignored.")); 90 90 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIMachineAudioFeaturesEditor.cpp
r94286 r94298 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UI GlobalDisplayFeaturesEditor class implementation.3 * VBox Qt GUI - UIMachineAudioFeaturesEditor class implementation. 4 4 */ 5 5 … … 22 22 23 23 /* GUI includes: */ 24 #include "UI GlobalDisplayFeaturesEditor.h"24 #include "UIMachineAudioFeaturesEditor.h" 25 25 #ifdef VBOX_WS_X11 26 26 # include "VBoxUtils-x11.h" … … 28 28 29 29 30 UI GlobalDisplayFeaturesEditor::UIGlobalDisplayFeaturesEditor(QWidget *pParent /* = 0 */)30 UIMachineAudioFeaturesEditor::UIMachineAudioFeaturesEditor(QWidget *pParent /* = 0 */) 31 31 : QIWithRetranslateUI<QWidget>(pParent) 32 , m_f ActivateOnMouseHover(false)33 , m_f DisableHostScreenSaver(false)32 , m_fEnableOutput(false) 33 , m_fEnableInput(false) 34 34 , m_pLabel(0) 35 , m_pCheckBox ActivateOnMouseHover(0)36 , m_pCheckBox DisableHostScreenSaver(0)35 , m_pCheckBoxEnableOutput(0) 36 , m_pCheckBoxEnableInput(0) 37 37 { 38 38 prepare(); 39 39 } 40 40 41 void UI GlobalDisplayFeaturesEditor::setActivateOnMouseHover(bool fOn)41 void UIMachineAudioFeaturesEditor::setEnableOutput(bool fOn) 42 42 { 43 if (m_pCheckBox ActivateOnMouseHover)43 if (m_pCheckBoxEnableOutput) 44 44 { 45 45 /* Update cached value and 46 46 * check-box if value has changed: */ 47 if (m_f ActivateOnMouseHover!= fOn)47 if (m_fEnableOutput != fOn) 48 48 { 49 m_f ActivateOnMouseHover= fOn;50 m_pCheckBox ActivateOnMouseHover->setCheckState(fOn ? Qt::Checked : Qt::Unchecked);49 m_fEnableOutput = fOn; 50 m_pCheckBoxEnableOutput->setCheckState(fOn ? Qt::Checked : Qt::Unchecked); 51 51 } 52 52 } 53 53 } 54 54 55 bool UI GlobalDisplayFeaturesEditor::activateOnMouseHover() const55 bool UIMachineAudioFeaturesEditor::outputEnabled() const 56 56 { 57 return m_pCheckBox ActivateOnMouseHover58 ? m_pCheckBox ActivateOnMouseHover->checkState() == Qt::Checked59 : m_f ActivateOnMouseHover;57 return m_pCheckBoxEnableOutput 58 ? m_pCheckBoxEnableOutput->checkState() == Qt::Checked 59 : m_fEnableOutput; 60 60 } 61 61 62 void UI GlobalDisplayFeaturesEditor::setDisableHostScreenSaver(bool fOn)62 void UIMachineAudioFeaturesEditor::setEnableInput(bool fOn) 63 63 { 64 if (m_pCheckBox DisableHostScreenSaver)64 if (m_pCheckBoxEnableInput) 65 65 { 66 66 /* Update cached value and 67 67 * check-box if value has changed: */ 68 if (m_f DisableHostScreenSaver!= fOn)68 if (m_fEnableInput != fOn) 69 69 { 70 m_f DisableHostScreenSaver= fOn;71 m_pCheckBox DisableHostScreenSaver->setCheckState(fOn ? Qt::Checked : Qt::Unchecked);70 m_fEnableInput = fOn; 71 m_pCheckBoxEnableInput->setCheckState(fOn ? Qt::Checked : Qt::Unchecked); 72 72 } 73 73 } 74 74 } 75 75 76 bool UI GlobalDisplayFeaturesEditor::disableHostScreenSaver() const76 bool UIMachineAudioFeaturesEditor::inputEnabled() const 77 77 { 78 return m_pCheckBox DisableHostScreenSaver79 ? m_pCheckBox DisableHostScreenSaver->checkState() == Qt::Checked80 : m_f DisableHostScreenSaver;78 return m_pCheckBoxEnableInput 79 ? m_pCheckBoxEnableInput->checkState() == Qt::Checked 80 : m_fEnableInput; 81 81 } 82 82 83 int UI GlobalDisplayFeaturesEditor::minimumLabelHorizontalHint() const83 int UIMachineAudioFeaturesEditor::minimumLabelHorizontalHint() const 84 84 { 85 85 return m_pLabel->minimumSizeHint().width(); 86 86 } 87 87 88 void UI GlobalDisplayFeaturesEditor::setMinimumLayoutIndent(int iIndent)88 void UIMachineAudioFeaturesEditor::setMinimumLayoutIndent(int iIndent) 89 89 { 90 90 if (m_pLayout) … … 92 92 } 93 93 94 void UI GlobalDisplayFeaturesEditor::retranslateUi()94 void UIMachineAudioFeaturesEditor::retranslateUi() 95 95 { 96 96 if (m_pLabel) 97 97 m_pLabel->setText(tr("Extended Features:")); 98 if (m_pCheckBox ActivateOnMouseHover)98 if (m_pCheckBoxEnableOutput) 99 99 { 100 m_pCheckBox ActivateOnMouseHover->setToolTip(tr("When checked, machine windows will be raised "101 "when the mouse pointer moves over them."));102 m_pCheckBoxActivateOnMouseHover->setText(tr("&Raise Window Under Mouse Pointer"));100 m_pCheckBoxEnableOutput->setText(tr("Enable Audio &Output")); 101 m_pCheckBoxEnableOutput->setToolTip(tr("When checked, output to the virtual audio device will reach the host. " 102 "Otherwise the guest is muted.")); 103 103 } 104 if (m_pCheckBox DisableHostScreenSaver)104 if (m_pCheckBoxEnableInput) 105 105 { 106 m_pCheckBox DisableHostScreenSaver->setToolTip(tr("When checked, screen saver of "107 "the host OS is disabled."));108 m_pCheckBoxDisableHostScreenSaver->setText(tr("&Disable Host Screen Saver"));106 m_pCheckBoxEnableInput->setText(tr("Enable Audio &Input")); 107 m_pCheckBoxEnableInput->setToolTip(tr("When checked, the guest will be able to capture audio input from the host. " 108 "Otherwise the guest will capture only silence.")); 109 109 } 110 110 } 111 111 112 void UI GlobalDisplayFeaturesEditor::prepare()112 void UIMachineAudioFeaturesEditor::prepare() 113 113 { 114 114 /* Prepare main layout: */ … … 126 126 m_pLayout->addWidget(m_pLabel, 0, 0); 127 127 } 128 /* Prepare 'activate on mouse hover' check-box: */ 129 m_pCheckBoxActivateOnMouseHover = new QCheckBox(this); 130 if (m_pCheckBoxActivateOnMouseHover) 131 m_pLayout->addWidget(m_pCheckBoxActivateOnMouseHover, 0, 1); 132 /* Prepare 'disable host screen saver' check-box: */ 133 #if defined(VBOX_WS_WIN) 134 m_pCheckBoxDisableHostScreenSaver = new QCheckBox(this); 135 #elif defined(VBOX_WS_X11) 136 if (NativeWindowSubsystem::X11CheckDBusScreenSaverServices()) 137 m_pCheckBoxDisableHostScreenSaver = new QCheckBox(this); 138 #endif /* VBOX_WS_X11 */ 139 if (m_pCheckBoxDisableHostScreenSaver) 140 m_pLayout->addWidget(m_pCheckBoxDisableHostScreenSaver, 1, 1); 128 /* Prepare 'enable output' check-box: */ 129 m_pCheckBoxEnableOutput = new QCheckBox(this); 130 if (m_pCheckBoxEnableOutput) 131 m_pLayout->addWidget(m_pCheckBoxEnableOutput, 0, 1); 132 /* Prepare 'enable input' check-box: */ 133 m_pCheckBoxEnableInput = new QCheckBox(this); 134 if (m_pCheckBoxEnableInput) 135 m_pLayout->addWidget(m_pCheckBoxEnableInput, 1, 1); 141 136 } 142 137 -
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIMachineAudioFeaturesEditor.h
r94286 r94298 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UI GlobalDisplayFeaturesEditor class declaration.3 * VBox Qt GUI - UIMachineAudioFeaturesEditor class declaration. 4 4 */ 5 5 … … 16 16 */ 17 17 18 #ifndef FEQT_INCLUDED_SRC_settings_editors_UI GlobalDisplayFeaturesEditor_h19 #define FEQT_INCLUDED_SRC_settings_editors_UI GlobalDisplayFeaturesEditor_h18 #ifndef FEQT_INCLUDED_SRC_settings_editors_UIMachineAudioFeaturesEditor_h 19 #define FEQT_INCLUDED_SRC_settings_editors_UIMachineAudioFeaturesEditor_h 20 20 #ifndef RT_WITHOUT_PRAGMA_ONCE 21 21 # pragma once … … 30 30 class QLabel; 31 31 32 /** QWidget subclass used as global displayfeatures editor. */33 class SHARED_LIBRARY_STUFF UI GlobalDisplayFeaturesEditor : public QIWithRetranslateUI<QWidget>32 /** QWidget subclass used as machine audio features editor. */ 33 class SHARED_LIBRARY_STUFF UIMachineAudioFeaturesEditor : public QIWithRetranslateUI<QWidget> 34 34 { 35 35 Q_OBJECT; … … 37 37 public: 38 38 39 /** Constructs global displayfeatures editor passing @a pParent to the base-class. */40 UI GlobalDisplayFeaturesEditor(QWidget *pParent = 0);39 /** Constructs machine audio features editor passing @a pParent to the base-class. */ 40 UIMachineAudioFeaturesEditor(QWidget *pParent = 0); 41 41 42 /** Defines whether ' activate on mouse hover' feature in @a fOn. */43 void set ActivateOnMouseHover(bool fOn);44 /** Returns ' activate on mouse hover' feature value. */45 bool activateOnMouseHover() const;42 /** Defines whether 'enable output' feature in @a fOn. */ 43 void setEnableOutput(bool fOn); 44 /** Returns 'enable output' feature value. */ 45 bool outputEnabled() const; 46 46 47 /** Defines whether ' disable host screen-saver' feature in @a fOn. */48 void set DisableHostScreenSaver(bool fOn);49 /** Returns ' disable host screen-saver' feature value. */50 bool disableHostScreenSaver() const;47 /** Defines whether 'enable input' feature in @a fOn. */ 48 void setEnableInput(bool fOn); 49 /** Returns 'enable input' feature value. */ 50 bool inputEnabled() const; 51 51 52 52 /** Returns minimum layout hint. */ … … 65 65 void prepare(); 66 66 67 /** Holds the ' activate on mouse hover' feature value. */68 bool m_f ActivateOnMouseHover;69 /** Holds the ' disable host screen-saver' feature value. */70 bool m_f DisableHostScreenSaver;67 /** Holds the 'enable output' feature value. */ 68 bool m_fEnableOutput; 69 /** Holds the 'enable input' feature value. */ 70 bool m_fEnableInput; 71 71 72 72 /** Holds the main layout instance. */ … … 74 74 /** Holds the label instance. */ 75 75 QLabel *m_pLabel; 76 /** Holds the check-box instance. */77 QCheckBox *m_pCheckBox ActivateOnMouseHover;78 /** Holds the check-box instance. */79 QCheckBox *m_pCheckBox DisableHostScreenSaver;76 /** Holds the 'enable output' check-box instance. */ 77 QCheckBox *m_pCheckBoxEnableOutput; 78 /** Holds the 'enable input' check-box instance. */ 79 QCheckBox *m_pCheckBoxEnableInput; 80 80 }; 81 81 82 #endif /* !FEQT_INCLUDED_SRC_settings_editors_UI GlobalDisplayFeaturesEditor_h */82 #endif /* !FEQT_INCLUDED_SRC_settings_editors_UIMachineAudioFeaturesEditor_h */ -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp
r94039 r94298 18 18 /* Qt includes: */ 19 19 #include <QCheckBox> 20 #include <Q Label>20 #include <QGridLayout> 21 21 #include <QVBoxLayout> 22 22 … … 26 26 #include "UIConverter.h" 27 27 #include "UIErrorString.h" 28 #include "UIMachineAudioFeaturesEditor.h" 28 29 #include "UIMachineSettingsAudio.h" 29 30 … … 78 79 , m_pCheckBoxAudio(0) 79 80 , m_pWidgetAudioSettings(0) 80 , m_pLayoutAudioSettings(0)81 81 , m_pEditorAudioHostDriver(0) 82 82 , m_pEditorAudioController(0) 83 , m_pLabelAudioExtended(0) 84 , m_pCheckBoxAudioOutput(0) 85 , m_pCheckBoxAudioInput(0) 83 , m_pEditorAudioFeatures(0) 86 84 { 87 85 prepare(); … … 137 135 m_pEditorAudioHostDriver->setValue(oldAudioData.m_audioDriverType); 138 136 m_pEditorAudioController->setValue(oldAudioData.m_audioControllerType); 139 m_p CheckBoxAudioOutput->setChecked(oldAudioData.m_fAudioOutputEnabled);140 m_p CheckBoxAudioInput->setChecked(oldAudioData.m_fAudioInputEnabled);137 m_pEditorAudioFeatures->setEnableOutput(oldAudioData.m_fAudioOutputEnabled); 138 m_pEditorAudioFeatures->setEnableInput(oldAudioData.m_fAudioInputEnabled); 141 139 142 140 /* Polish page finally: */ … … 153 151 newAudioData.m_audioDriverType = m_pEditorAudioHostDriver->value(); 154 152 newAudioData.m_audioControllerType = m_pEditorAudioController->value(); 155 newAudioData.m_fAudioOutputEnabled = m_p CheckBoxAudioOutput->isChecked();156 newAudioData.m_fAudioInputEnabled = m_p CheckBoxAudioInput->isChecked();153 newAudioData.m_fAudioOutputEnabled = m_pEditorAudioFeatures->outputEnabled(); 154 newAudioData.m_fAudioInputEnabled = m_pEditorAudioFeatures->inputEnabled(); 157 155 158 156 /* Cache new audio data: */ … … 177 175 m_pCheckBoxAudio->setToolTip(tr("When checked, a virtual PCI audio card will be plugged into the virtual machine " 178 176 "and will communicate with the host audio system using the specified driver.")); 179 m_pLabelAudioExtended->setText(tr("Extended Features:"));180 m_pCheckBoxAudioOutput->setText(tr("Enable Audio &Output"));181 m_pCheckBoxAudioOutput->setToolTip(tr("When checked, output to the virtual audio device will reach the host. "182 "Otherwise the guest is muted."));183 m_pCheckBoxAudioInput->setText(tr("Enable Audio &Input"));184 m_pCheckBoxAudioInput->setToolTip(tr("When checked, the guest will be able to capture audio input from the host. "185 "Otherwise the guest will capture only silence."));186 177 187 178 /* These editors have own labels, but we want them to be properly layouted according to each other: */ … … 189 180 iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorAudioHostDriver->minimumLabelHorizontalHint()); 190 181 iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorAudioController->minimumLabelHorizontalHint()); 191 iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_p LabelAudioExtended->minimumSizeHint().width());182 iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorAudioFeatures->minimumLabelHorizontalHint()); 192 183 m_pEditorAudioHostDriver->setMinimumLayoutIndent(iMinimumLayoutHint); 193 184 m_pEditorAudioController->setMinimumLayoutIndent(iMinimumLayoutHint); 194 m_p LayoutAudioSettings->setColumnMinimumWidth(0,iMinimumLayoutHint);185 m_pEditorAudioFeatures->setMinimumLayoutIndent(iMinimumLayoutHint); 195 186 } 196 187 … … 201 192 m_pEditorAudioHostDriver->setEnabled(isMachineOffline() || isMachineSaved()); 202 193 m_pEditorAudioController->setEnabled(isMachineOffline()); 203 m_pLabelAudioExtended->setEnabled(isMachineInValidMode()); 204 m_pCheckBoxAudioOutput->setEnabled(isMachineInValidMode()); 205 m_pCheckBoxAudioInput->setEnabled(isMachineInValidMode()); 194 m_pEditorAudioFeatures->setEnabled(isMachineInValidMode()); 206 195 m_pWidgetAudioSettings->setEnabled(m_pCheckBoxAudio->isChecked()); 207 196 } … … 224 213 { 225 214 /* Prepare main layout: */ 226 QGridLayout *pLayout Main= new QGridLayout(this);227 if (pLayout Main)215 QGridLayout *pLayout = new QGridLayout(this); 216 if (pLayout) 228 217 { 229 pLayout Main->setRowStretch(2, 1);218 pLayout->setRowStretch(2, 1); 230 219 231 220 /* Prepare audio check-box: */ 232 221 m_pCheckBoxAudio = new QCheckBox(this); 233 222 if (m_pCheckBoxAudio) 234 pLayout Main->addWidget(m_pCheckBoxAudio, 0, 0, 1, 2);223 pLayout->addWidget(m_pCheckBoxAudio, 0, 0, 1, 2); 235 224 236 225 /* Prepare 20-px shifting spacer: */ 237 226 QSpacerItem *pSpacerItem = new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum); 238 227 if (pSpacerItem) 239 pLayout Main->addItem(pSpacerItem, 1, 0);228 pLayout->addItem(pSpacerItem, 1, 0); 240 229 241 230 /* Prepare audio settings widget: */ … … 244 233 { 245 234 /* Prepare audio settings widget layout: */ 246 m_pLayoutAudioSettings = new QGridLayout(m_pWidgetAudioSettings); 247 if (m_pLayoutAudioSettings) 248 { 249 m_pLayoutAudioSettings->setContentsMargins(0, 0, 0, 0); 250 m_pLayoutAudioSettings->setColumnStretch(1, 1); 235 QVBoxLayout *pLayoutAudioSettings = new QVBoxLayout(m_pWidgetAudioSettings); 236 if (pLayoutAudioSettings) 237 { 238 pLayoutAudioSettings->setContentsMargins(0, 0, 0, 0); 251 239 252 240 /* Prepare audio host driver editor: */ 253 241 m_pEditorAudioHostDriver = new UIAudioHostDriverEditor(m_pWidgetAudioSettings); 254 242 if (m_pEditorAudioHostDriver) 255 m_pLayoutAudioSettings->addWidget(m_pEditorAudioHostDriver, 0, 0, 1, 3);243 pLayoutAudioSettings->addWidget(m_pEditorAudioHostDriver); 256 244 257 245 /* Prepare audio host controller editor: */ 258 246 m_pEditorAudioController = new UIAudioControllerEditor(m_pWidgetAudioSettings); 259 247 if (m_pEditorAudioController) 260 m_pLayoutAudioSettings->addWidget(m_pEditorAudioController, 1, 0, 1, 3); 261 262 /* Prepare audio extended label: */ 263 m_pLabelAudioExtended = new QLabel(m_pWidgetAudioSettings); 264 if (m_pLabelAudioExtended) 265 { 266 m_pLabelAudioExtended->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 267 m_pLayoutAudioSettings->addWidget(m_pLabelAudioExtended, 2, 0); 268 } 269 /* Prepare audio output check-box: */ 270 m_pCheckBoxAudioOutput = new QCheckBox(m_pWidgetAudioSettings); 271 if (m_pCheckBoxAudioOutput) 272 m_pLayoutAudioSettings->addWidget(m_pCheckBoxAudioOutput, 2, 1); 273 /* Prepare audio input check-box: */ 274 m_pCheckBoxAudioInput = new QCheckBox(m_pWidgetAudioSettings); 275 if (m_pCheckBoxAudioInput) 276 m_pLayoutAudioSettings->addWidget(m_pCheckBoxAudioInput, 3, 1); 277 } 278 279 pLayoutMain->addWidget(m_pWidgetAudioSettings, 1, 1); 248 pLayoutAudioSettings->addWidget(m_pEditorAudioController); 249 250 /* Prepare audio extended features editor: */ 251 m_pEditorAudioFeatures = new UIMachineAudioFeaturesEditor(m_pWidgetAudioSettings); 252 if (m_pEditorAudioFeatures) 253 pLayoutAudioSettings->addWidget(m_pEditorAudioFeatures); 254 } 255 256 pLayout->addWidget(m_pWidgetAudioSettings, 1, 1); 280 257 } 281 258 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.h
r94039 r94298 27 27 /* Forward declarations: */ 28 28 class QCheckBox; 29 class QGridLayout;30 class QLabel;31 29 class UIAudioControllerEditor; 32 30 class UIAudioHostDriverEditor; 31 class UIMachineAudioFeaturesEditor; 33 32 struct UIDataSettingsMachineAudio; 34 33 typedef UISettingsCache<UIDataSettingsMachineAudio> UISettingsCacheMachineAudio; … … 91 90 * @{ */ 92 91 /** Holds the audio check-box instance. */ 93 QCheckBox *m_pCheckBoxAudio;92 QCheckBox *m_pCheckBoxAudio; 94 93 /** Holds the audio settings widget instance. */ 95 QWidget *m_pWidgetAudioSettings; 96 /** Holds the audio settings layout instance. */ 97 QGridLayout *m_pLayoutAudioSettings; 94 QWidget *m_pWidgetAudioSettings; 98 95 /** Holds the audio host driver editor instance. */ 99 UIAudioHostDriverEditor *m_pEditorAudioHostDriver; 100 /** Holds the audio host controller instance instance. */ 101 UIAudioControllerEditor *m_pEditorAudioController; 102 /** Holds the audio extended label instance. */ 103 QLabel *m_pLabelAudioExtended; 104 /** Holds the audio output check-box instance. */ 105 QCheckBox *m_pCheckBoxAudioOutput; 106 /** Holds the audio input check-box instance. */ 107 QCheckBox *m_pCheckBoxAudioInput; 96 UIAudioHostDriverEditor *m_pEditorAudioHostDriver; 97 /** Holds the audio host controller editor instance. */ 98 UIAudioControllerEditor *m_pEditorAudioController; 99 /** Holds the audio features editor instance. */ 100 UIMachineAudioFeaturesEditor *m_pEditorAudioFeatures; 108 101 /** @} */ 109 102 };
Note:
See TracChangeset
for help on using the changeset viewer.