bool Controller::jumpToChatListEntry(Dialogs::RowDescriptor row) { if (const auto history = row.key.history()) { Ui::showPeerHistory(history, row.fullId.msg); return true; } else if (const auto feed = row.key.feed()) { if (const auto item = App::histItemById(row.fullId)) { showSection(HistoryFeed::Memento(feed, item->position())); } else { showSection(HistoryFeed::Memento(feed)); } } return false; }
//--------------------------------------------------------------------------- void TSettingsEditDlg::showSections() { SectionsList->Items->Clear(); std::vector<std::string> sections; if (currSectionOnly) { sections.push_back(initialSection); } else { sections = bundle->getSections( ); } Caption = Caption + ( " - " + bundle->getBundle() + " for " + bundle->getSection() ).c_str(); int offset = 0; for ( unsigned int i = 0; i < sections.size(); i++ ) { if ( sections[ i ] == bundle->getSection() ) offset = i; SectionsList->Items->Add( sections[ i ].c_str() ); } SectionsList->ItemIndex = offset; showSection( ); }
void StretchHeaderView::UpdateWidths(const QList<int>& sections) { if (!stretch_enabled_) return; ColumnWidthType total_w = 0.0; for (int i=0 ; i<column_widths_.count() ; ++i) { const ColumnWidthType w = column_widths_[i]; int pixels = w * width(); if (pixels != 0 && total_w - int(total_w) > 0.5) pixels ++; total_w += w; if (!sections.isEmpty() && !sections.contains(i)) continue; if (pixels == 0 && !isSectionHidden(i)) hideSection(i); else if (pixels != 0 && isSectionHidden(i)) { showSection(i); AssertMinimalColumnWidth(i); } if (pixels != 0) resizeSection(i, pixels); } }
void ViewHeader::toggleVisibility( int index ) { if ( isSectionHidden( index ) ) showSection( index ); else hideSection( index ); }
void Navigation::showSettings( Settings::Type type, const SectionShow ¶ms) { showSection( Info::Memento( Info::Settings::Tag{ _session->user() }, Info::Section(type)), params); }
void ViewHeader::toggleVisibility( int index ) { qDebug() << Q_FUNC_INFO << index; if ( isSectionHidden( index ) ) showSection( index ); else hideSection( index ); }
void Navigation::showPeerInfo( PeerId peerId, const SectionShow ¶ms) { //if (Adaptive::ThreeColumn() // && !_session->settings().thirdSectionInfoEnabled()) { // _session->settings().setThirdSectionInfoEnabled(true); // _session->saveSettingsDelayed(); //} showSection(Info::Memento(peerId), params); }
void QSpreadsheetHeaderView::mousePressEvent ( QMouseEvent * event ) { QHeaderView::mousePressEvent(event); int logicalIndex = logicalIndexAt(event->pos()); if (buttonMenuRect(logicalIndex).contains(event->pos())) { QMenu menu(this); QAction *hideCol = menu.addAction("Hide column"); QAction *sortAZ = menu.addAction("Sort sheet A->Z"); QAction *sortZA = menu.addAction("Sort sheet Z->A"); // Disable hide column if only one column remains. Otherwise // the gui is no more available to show them back. hideCol->setEnabled(hiddenSectionCount() < count() - 1); QAction *res = menu.exec(mapToGlobal(event->pos())); if (res == hideCol) { hideSection(logicalIndex); updateSection(logicalIndex-1); } if (res == sortAZ) model()->sort(logicalIndex, Qt::AscendingOrder); if (res == sortZA) model()->sort(logicalIndex, Qt::DescendingOrder); } // Catch previous arrow mouse click. if (prevRect(logicalIndex).contains(event->pos())) { showSection(logicalIndex - 1); updateSection(logicalIndex - 2); } // Catch next arrow mouse click. if (nextRect(logicalIndex).contains(event->pos())) { showSection(logicalIndex + 1); updateSection(logicalIndex + 2); } }
int PlayListWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QTreeWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: playListEmpty(); break; case 1: playItem((*reinterpret_cast< PlayListItem*(*)>(_a[1]))); break; case 2: addFile((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 3: addFile((*reinterpret_cast< QString(*)>(_a[1]))); break; case 4: addFile((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QMap<QString,QString>(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 5: addFile((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QMap<QString,QString>(*)>(_a[2]))); break; case 6: { int _r = addDir((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break; case 7: { int _r = addDir((*reinterpret_cast< QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break; case 8: removeSelected(); break; case 9: doubleClicked((*reinterpret_cast< QTreeWidgetItem*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 10: scrollToActive(); break; case 11: deselect((*reinterpret_cast< QTreeWidgetItem*(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; case 12: clearPlayList(); break; case 13: { int _r = loadM3UPlayList((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break; case 14: { int _r = loadM3UPlayList((*reinterpret_cast< QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break; case 15: { int _r = loadPLSPlayList((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break; case 16: { int _r = loadPLSPlayList((*reinterpret_cast< QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break; case 17: saveM3UPlayList((*reinterpret_cast< QString(*)>(_a[1]))); break; case 18: savePLSPlayList((*reinterpret_cast< QString(*)>(_a[1]))); break; case 19: updateColumnWidth((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 20: updateColumnPosition((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 21: headerContextMenu((*reinterpret_cast< const QPoint(*)>(_a[1]))); break; case 22: setScroll(); break; case 23: hideSection(); break; case 24: showSection(); break; case 25: printPos((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } _id -= 26; } return _id; }
void StretchHeaderView::ShowSection(int logical) { if (!stretch_enabled_) { showSection(logical); return; } // How many sections are visible already? int visible_count = 0; for (int i=0 ; i<count() ; ++i) { if (!isSectionHidden(i)) visible_count ++; } column_widths_[logical] = visible_count == 0 ? 1.0 : 1.0 / visible_count; NormaliseWidths(); UpdateWidths(); }
void WTrackTableViewHeader::showOrHideColumn(int column) { if (!m_columnActions.contains(column)) { qDebug() << "WTrackTableViewHeader got invalid column" << column; return; } QAction* action = m_columnActions[column]; if (action->isChecked()) { showSection(column); } else { // If the user hides every column then the table will disappear. This // guards against that. NB: hiddenCount reflects checked QAction's so // size-hiddenCount will be zero the moment they uncheck the last // section. if (m_columnActions.size() - hiddenCount() > 0) { hideSection(column); } else { // Otherwise, ignore the request and re-check this QAction. action->setChecked(true); } } }
int test3(int argc, char** argv) { int j = 0; int n = 0; int i = -1; const char* str; switch ( argc ) { case 5: { i = DtMmdbOpenInfoLib(argv[2], argv[3], DtMmdbFalse); j = DtMmdbGetBookCaseByName(i, argv[3]); DtMmdbInfoRequest* req = newDtMmdbInfoRequestWithPrimaryOid(j, argv[4]); showSection(req); break; } default: fprintf(stderr, "invalid arguments\n"); } fprintf(stderr, "infolib desc=%d\n", i); return 0; }
void WTrackTableViewHeader::setModel(QAbstractItemModel* model) { TrackModel* oldTrackModel = getTrackModel(); if (dynamic_cast<QAbstractItemModel*>(oldTrackModel) == model) { // If the models are the same, do nothing but the redundant call. QHeaderView::setModel(model); return; } // Won't happen in practice since the WTrackTableView new's a new // WTrackTableViewHeader each time a new TrackModel is loaded. // if (oldTrackModel) { // saveHeaderState(); // } // First clear all the context menu actions for the old model. clearActions(); // Now set the header view to show the new model QHeaderView::setModel(model); // Now build actions for the new TrackModel TrackModel* trackModel = dynamic_cast<TrackModel*>(model); if (!trackModel) { return; } // Restore saved header state to get sizes, column positioning, etc. back. restoreHeaderState(); // Here we can override values to prevent restoring corrupt values from database setMovable(true); // Setting true in the next line causes Bug #925619 at least with Qt 4.6.1 setCascadingSectionResizes(false); setMinimumSectionSize(WTTVH_MINIMUM_SECTION_SIZE); int columns = model->columnCount(); for (int i = 0; i < columns; ++i) { if (trackModel->isColumnInternal(i)) { continue; } QString title = model->headerData(i, orientation()).toString(); QAction* action = new QAction(title, &m_menu); action->setCheckable(true); /* If Mixxx starts the first time or the header states have been cleared * due to database schema evolution we gonna hide all columns that may * contain a potential large number of NULL values. Here we uncheck * item in the context menu that are hidden by defualt (e.g., key * column) */ if (!hasPersistedHeaderState() && trackModel->isColumnHiddenByDefault(i)) { action->setChecked(false); } else { action->setChecked(!isSectionHidden(i)); } // Map this action's signals via our QSignalMapper m_signalMapper.setMapping(action, i); m_columnActions.insert(i, action); connect(action, SIGNAL(triggered()), &m_signalMapper, SLOT(map())); m_menu.addAction(action); // force the section size to be a least WTTVH_MINIMUM_SECTION_SIZE if (sectionSize(i) < WTTVH_MINIMUM_SECTION_SIZE) { // This might happen if WTTVH_MINIMUM_SECTION_SIZ has changed or // the header state from database was corrupt resizeSection(i,WTTVH_MINIMUM_SECTION_SIZE); } } // Safety check against someone getting stuck with all columns hidden // (produces an empty library table). Just re-show them all. if (hiddenCount() == columns) { for (int i = 0; i < columns; ++i) { showSection(i); } } }
void SectionTranspose::init(pp_int32 px, pp_int32 py) { pp_int32 i; PPScreen* screen = tracker.screen; // test PPContainer* container = new PPContainer(CONTAINER_TRANSPOSE, tracker.screen, this, PPPoint(px, py), PPSize(320,UPPERLEFTSECTIONHEIGHT), false); container->setColor(TrackerConfig::colorThemeMain); tracker.screen->addControl(container); const pp_int32 buttonIDs[4] = {TRANSPOSE_BUTTON_AMOUNT_NOTEUP, TRANSPOSE_BUTTON_AMOUNT_NOTEDOWN, TRANSPOSE_BUTTON_AMOUNT_OCTAVEUP, TRANSPOSE_BUTTON_AMOUNT_OCTAVEDOWN}; const char* buttonTexts[4] = {"Note Up", "Note Dn", "Octave Up", "Octave Dn"}; const pp_int32 buttonIDs2[4] = {TRANSPOSE_BUTTON_USER1, TRANSPOSE_BUTTON_USER2, TRANSPOSE_BUTTON_USER3, TRANSPOSE_BUTTON_USER4}; const char* buttonTexts2[4] = {"Track", "Pattern", "Song", "Block"}; PPSize size = container->getSize(); /*tracker.showMessageBox(MESSAGEBOX_TRANSPOSE, "Filter options", Tracker::MessageBox_OK, false); PPMessageBoxContainer* container = static_cast<PPMessageBoxContainer*>(screen->getModalControl()); container->setCaption("Transpose"); container->removeControl(container->getControlByID(MESSAGEBOX_BUTTON_YES)); PPSize size = container->getSize(); size.height = 216; PPPoint location = container->getLocation(); location.y = screen->getHeight() / 2 - size.height / 2; container->setLocation(location); container->setSize(size); PPStaticText* text = static_cast<PPStaticText*>(container->getControlByID(1)); ASSERT(text); text->setUnderlined(true); PPPoint location2 = text->getLocation(); location2.y = location.y + 20; location2.x = location.x + 6; text->setLocation(location2); location2 = location;*/ PPStaticText* text; PPPoint location(px,py); PPPoint location2 = location; PPRadioGroup* radioGroup; PPButton* button; // ----------------------- Instrument ---------------------- location2.x += 2; location2.y += 2; text = new PPStaticText(0, NULL, NULL, location2, "Instrument:", true); container->addControl(text); location2.y += 10; PPPoint temp = location2; radioGroup = new PPRadioGroup(2, screen, this, PPPoint(location2.x, location2.y-2), PPSize(8*9, 42)); radioGroup->setColor(TrackerConfig::colorThemeMain); radioGroup->addItem("Single:"); radioGroup->addItem("All"); radioGroup->addItem("Range:"); radioGroup->setChoice(1); container->addControl(radioGroup); // plus minus pp_int32 h = location2.x + 8*9; pp_int32 hy = location2.y + 3; container->addControl(new PPStaticText(TRANSPOSE_TEXT_INS, NULL, NULL, PPPoint(h,hy), "xx", false)); h+=8*2+4; button = new PPButton(TRANSPOSE_BUTTON_INS_PLUS, screen, this, PPPoint(h, hy), PPSize(10, 9)); button->setText(TrackerConfig::stringButtonPlus); container->addControl(button); h+=button->getSize().width; button = new PPButton(TRANSPOSE_BUTTON_INS_MINUS, screen, this, PPPoint(h, hy), PPSize(10, 9)); button->setText(TrackerConfig::stringButtonMinus); container->addControl(button); location2.y += radioGroup->getSize().height; //location2.x +=6*8 + 10; location2.x+=8*2-2; h = location2.x; text = new PPStaticText(TRANSPOSE_TEXT_INS_RANGESTART, NULL, NULL, location2, "From:xx", false); container->addControl(text); location2.x += 8*8-4; button = new PPButton(TRANSPOSE_BUTTON_INS_RANGESTART_PLUS, screen, this, location2, PPSize(10, 9)); button->setText(TrackerConfig::stringButtonPlus); container->addControl(button); location2.x+=button->getSize().width; button = new PPButton(TRANSPOSE_BUTTON_INS_RANGESTART_MINUS, screen, this, location2, PPSize(10, 9)); button->setText(TrackerConfig::stringButtonMinus); container->addControl(button); //location2.x+=button->getSize().width + 2; location2.x = h; location2.y+=11; text = new PPStaticText(TRANSPOSE_TEXT_INS_RANGEEND, NULL, NULL, location2, "To: xx", false); container->addControl(text); location2.x+=8*8-4; button = new PPButton(TRANSPOSE_BUTTON_INS_RANGEEND_PLUS, screen, this, location2, PPSize(10, 9)); button->setText(TrackerConfig::stringButtonPlus); container->addControl(button); location2.x+=button->getSize().width; button = new PPButton(TRANSPOSE_BUTTON_INS_RANGEEND_MINUS, screen, this, location2, PPSize(10, 9)); button->setText(TrackerConfig::stringButtonMinus); container->addControl(button); // ---------------- notes --------------------- location2.x += button->getSize().width + 26; location2.y = location.y + 2; container->addControl(new PPSeperator(0, screen, PPPoint(location2.x-6, location.y+2), (size.height)-42, container->getColor(), false)); text = new PPStaticText(0, NULL, NULL, location2, "Note:", true); container->addControl(text); location2.y += 10; temp = location2; radioGroup = new PPRadioGroup(3, screen, this, PPPoint(location2.x, location2.y-2), PPSize(8*9, 42)); radioGroup->setColor(TrackerConfig::colorThemeMain); radioGroup->addItem("Single:"); radioGroup->addItem("All"); radioGroup->addItem("Range:"); radioGroup->setChoice(1); container->addControl(radioGroup); // plus minus h = location2.x + 8*9; hy = location2.y + 3; container->addControl(new PPStaticText(TRANSPOSE_TEXT_NOTE, NULL, NULL, PPPoint(h,hy), "xxx", false)); h+=8*3+4; button = new PPButton(TRANSPOSE_BUTTON_NOTE_PLUS, screen, this, PPPoint(h, hy), PPSize(10, 9)); button->setText(TrackerConfig::stringButtonPlus); container->addControl(button); h+=button->getSize().width; button = new PPButton(TRANSPOSE_BUTTON_NOTE_MINUS, screen, this, PPPoint(h, hy), PPSize(10, 9)); button->setText(TrackerConfig::stringButtonMinus); container->addControl(button); location2.y += radioGroup->getSize().height; //location2.x +=6*8 + 10; location2.x+=8*2-2; h = location2.x; text = new PPStaticText(TRANSPOSE_TEXT_NOTE_RANGESTART, NULL, NULL, location2, "From:xxx", false); container->addControl(text); location2.x += 8*9-4; button = new PPButton(TRANSPOSE_BUTTON_NOTE_RANGESTART_PLUS, screen, this, location2, PPSize(10, 9)); button->setText(TrackerConfig::stringButtonPlus); container->addControl(button); location2.x+=button->getSize().width; button = new PPButton(TRANSPOSE_BUTTON_NOTE_RANGESTART_MINUS, screen, this, location2, PPSize(10, 9)); button->setText(TrackerConfig::stringButtonMinus); container->addControl(button); //location2.x+=button->getSize().width + 2; location2.x = h; location2.y+=11; text = new PPStaticText(TRANSPOSE_TEXT_NOTE_RANGEEND, NULL, NULL, location2, "To: xxx", false); container->addControl(text); location2.x+=8*9-4; button = new PPButton(TRANSPOSE_BUTTON_NOTE_RANGEEND_PLUS, screen, this, location2, PPSize(10, 9)); button->setText(TrackerConfig::stringButtonPlus); container->addControl(button); location2.x+=button->getSize().width; button = new PPButton(TRANSPOSE_BUTTON_NOTE_RANGEEND_MINUS, screen, this, location2, PPSize(10, 9)); button->setText(TrackerConfig::stringButtonMinus); container->addControl(button); // horizontal ruler location2.y += button->getSize().height+5; container->addControl(new PPSeperator(0, screen, PPPoint(location.x+2, location2.y), size.width-5, container->getColor(), true)); location2.x += button->getSize().width + 26; location2.y = location.y + 4; container->addControl(new PPSeperator(0, screen, PPPoint(location2.x-6, location.y+2), (size.height)-42, container->getColor(), false)); const PPString str = "Amount:"; location2.y-=2; text = new PPStaticText(6, NULL, NULL, location2, str, true); container->addControl(text); const PPString str2 = "-xx"; location2.y+=13; location2.x+=8; text = new PPStaticText(TRANSPOSE_TEXT_AMOUNT, NULL, NULL, location2, str2, false); container->addControl(text); h = location2.x+3*8+4; hy = location2.y; button = new PPButton(TRANSPOSE_BUTTON_AMOUNT_PLUS, screen, this, PPPoint(h, hy), PPSize(10, 9)); button->setText(TrackerConfig::stringButtonPlus); container->addControl(button); h+=button->getSize().width; button = new PPButton(TRANSPOSE_BUTTON_AMOUNT_MINUS, screen, this, PPPoint(h, hy), PPSize(10, 9)); button->setText(TrackerConfig::stringButtonMinus); container->addControl(button); hy+=11; h-=5*8; text = new PPStaticText(TRANSPOSE_TEXT_AMOUNT2, NULL, NULL, PPPoint(h+1, hy), "note(s)", true); container->addControl(text); // preset buttons pp_int32 buttonWidth = 7*8+4; pp_int32 buttonHeight = 9; pp_int32 spacer = 10; pp_int32 y2 = hy+11; pp_int32 x = h-3; for (i = 0; i < 4; i++) { PPButton* button = new PPButton(buttonIDs[i], screen, this, PPPoint(x, y2), PPSize(buttonWidth, buttonHeight)); button->setText(buttonTexts[i]); button->setFont(PPFont::getFont(PPFont::FONT_TINY)); container->addControl(button); y2+= buttonHeight+1; } y2+=10; //container->addControl(new PPSeperator(0, screen, PPPoint(location.x+2, y2), size.width-5, container->getColor(), true)); const PPString str3 = "Apply:"; location2.x = location.x+6; location2.y = y2; text = new PPStaticText(6, NULL, NULL, location2, str3, true); container->addControl(text); buttonWidth = 60; //y2+=14; spacer = 4; buttonHeight = 14; pp_int32 cx = ((buttonWidth) * 4 + (spacer*3))/2; x = location.x + (size.width-6*8)/2 - cx + 6*8 + 2; y2-=3; for (i = 0; i < 4; i++) { PPButton* button = new PPButton(buttonIDs2[i], screen, this, PPPoint(x, y2), PPSize(buttonWidth, buttonHeight)); button->setText(buttonTexts2[i]); container->addControl(button); x+= buttonWidth + spacer; } y2 += buttonHeight+2; container->addControl(new PPSeperator(0, screen, PPPoint(location.x+2, y2), size.width-5, container->getColor(), true)); y2+=4; buttonWidth = 8*4+4; buttonHeight = 11; button = new PPButton(TRANSPOSE_BUTTON_EXIT, screen, this, PPPoint(x-buttonWidth-spacer, y2), PPSize(buttonWidth,buttonHeight)); button->setText("Exit"); container->addControl(button); sectionContainer = container; initialised = true; showSection(false); }
void __fastcall TSettingsEditDlg::SectionsListClick( TObject */*Sender*/ ) { getDetails(); // save what is set already showSection(); }
void SectionQuickOptions::init(pp_int32 px, pp_int32 py) { PPCheckBox* checkBox; PPScreen* screen = tracker.screen; if (dialogPanning == NULL) dialogPanning = new DialogPanning(screen, this, TrackerConfig::numPlayerChannels); PPContainer* container = new PPContainer(CONTAINER_QUICKOPTIONS, tracker.screen, this, PPPoint(px, py), PPSize(320,UPPERLEFTSECTIONHEIGHT), false); container->setColor(TrackerConfig::colorThemeMain); tracker.screen->addControl(container); container->addControl(new PPStaticText(0, NULL, NULL, PPPoint(px + 2, py + 2), "Quick Options (experts only)", true, true)); PPSize size = container->getSize(); pp_int32 buttonWidth = 8*4+4; pp_int32 buttonHeight = 11; pp_int32 x = px+container->getSize().width-(buttonWidth+4); pp_int32 y = py+container->getSize().height-(buttonHeight+4); container->addControl(new PPSeperator(0, screen, PPPoint(x - 6, y - 4), 4 + buttonHeight + 3, TrackerConfig::colorThemeMain, false)); container->addControl(new PPSeperator(0, screen, PPPoint(px + 2, y - 4), container->getSize().width - 4, TrackerConfig::colorThemeMain, true)); PPButton* button = new PPButton(QUICKOPTIONS_BUTTON_EXIT, screen, this, PPPoint(x, y), PPSize(buttonWidth,buttonHeight)); button->setText("Exit"); container->addControl(button); pp_int32 x2 = px+4; pp_int32 y2 = py+4+12; y+=2; container->addControl(new PPStaticText(QUICKOPTIONS_STATICTEXT_KEEPOPTIONS, NULL, NULL, PPPoint(x2 + 2, y), "Keep settings (auto-adjust OFF)", true)); checkBoxKeepSettings = new PPCheckBox(QUICKOPTIONS_CHECKBOX_KEEPOPTIONS, screen, this, PPPoint(x2 + 2 + 31*8 + 4, y-1)); checkBoxKeepSettings->checkIt(false); container->addControl(checkBoxKeepSettings); // add playback modes container->addControl(new PPStaticText(0, NULL, NULL, PPPoint(x2, y2), "Playback mode:", true)); y2+=10; PPRadioGroup* radioGroup = new PPRadioGroup(QUICKOPTIONS_RADIOGROUP_PLAYBACKMODE, screen, this, PPPoint(x2+2, y2), PPSize(17*8, 3*14)); radioGroup->setColor(TrackerConfig::colorThemeMain); radioGroup->addItem("Fasttracker 2.x"); radioGroup->addItem("Protracker 2.x"); radioGroup->addItem("Protracker 3.x"); container->addControl(radioGroup); y2+=radioGroup->getSize().height; x2 += radioGroup->getSize().width+6; y2 = py + 16; container->addControl(new PPSeperator(0, screen, PPPoint(x2 - 4, y2 - 2), container->getLocation().y + container->getSize().height - y2 - 17, TrackerConfig::colorThemeMain, false)); y2 = py+4+12; x2+=2; container->addControl(new PPStaticText(0, NULL, NULL, PPPoint(x2, y2), "Advanced:", true)); y2+=15; container->addControl(new PPStaticText(QUICKOPTIONS_STATICTEXT_ALLOW8XX, NULL, NULL, PPPoint(x2, y2), "Allow 8xx panning", true)); checkBox = new PPCheckBox(QUICKOPTIONS_CHECKBOX_ALLOW8XX, screen, this, PPPoint(x2 + 19*8 + 4, y2-1)); container->addControl(checkBox); y2+=13; container->addControl(new PPStaticText(QUICKOPTIONS_STATICTEXT_ALLOWE8X, NULL, NULL, PPPoint(x2, y2), "Allow E8x panning", true)); checkBox = new PPCheckBox(QUICKOPTIONS_CHECKBOX_ALLOWE8X, screen, this, PPPoint(x2 + 19*8 + 4, y2-1)); container->addControl(checkBox); y2+=13; container->addControl(new PPStaticText(QUICKOPTIONS_STATICTEXT_PTPERIODRANGE, NULL, NULL, PPPoint(x2, y2), "PT 3 octaves limit", true)); checkBox = new PPCheckBox(QUICKOPTIONS_CHECKBOX_PTPERIODRANGE, screen, this, PPPoint(x2 + 19*8 + 4, y2-1)); container->addControl(checkBox); y2+=13; container->addControl(new PPStaticText(QUICKOPTIONS_STATICTEXT_SETDEFAULTPANNING, NULL, NULL, PPPoint(x2, y2), "Default panning", true)); button = new PPButton(QUICKOPTIONS_BUTTON_SETDEFAULTPANNING, screen, this, PPPoint(x2 + 19*8 - 18, y2-1), PPSize(4*8,buttonHeight)); button->setText("Set"); container->addControl(button); sectionContainer = container; initialised = true; showSection(false); }