mirror of https://github.com/bsnes-emu/bsnes.git
37 lines
1004 B
C++
Executable File
37 lines
1004 B
C++
Executable File
void pComboBox::append(const string &text) {
|
|
qtComboBox->addItem(QString::fromUtf8(text));
|
|
}
|
|
|
|
Geometry pComboBox::minimumGeometry() {
|
|
Font &font = this->font();
|
|
unsigned maximumWidth = 0;
|
|
foreach(text, comboBox.state.text) maximumWidth = max(maximumWidth, font.geometry(text).width);
|
|
Geometry geometry = font.geometry(" ");
|
|
return { 0, 0, maximumWidth + 32, geometry.height + 12 };
|
|
}
|
|
|
|
void pComboBox::reset() {
|
|
while(qtComboBox->count()) qtComboBox->removeItem(0);
|
|
}
|
|
|
|
unsigned pComboBox::selection() {
|
|
signed index = qtComboBox->currentIndex();
|
|
return index >= 0 ? index : 0;
|
|
}
|
|
|
|
void pComboBox::setSelection(unsigned row) {
|
|
locked = true;
|
|
qtComboBox->setCurrentIndex(row);
|
|
locked = false;
|
|
}
|
|
|
|
void pComboBox::constructor() {
|
|
qtWidget = qtComboBox = new QComboBox;
|
|
connect(qtComboBox, SIGNAL(currentIndexChanged(int)), SLOT(onChange()));
|
|
}
|
|
|
|
void pComboBox::onChange() {
|
|
comboBox.state.selection = selection();
|
|
if(locked == false && comboBox.onChange) comboBox.onChange();
|
|
}
|