void RaceWizard::nextClicked(bool) { if(pagesWidget->currentIndex() < pagesWidget->count()-1) { pagesWidget->setCurrentIndex(pagesWidget->currentIndex() + 1); pageChanged(); } }
void QgsLayoutView::viewChanged() { if ( mHorizontalRuler ) { mHorizontalRuler->setSceneTransform( viewportTransform() ); } if ( mVerticalRuler ) { mVerticalRuler->setSceneTransform( viewportTransform() ); } // determine page at center of view QRect viewportRect( 0, 0, viewport()->width(), viewport()->height() ); QRectF visibleRect = mapToScene( viewportRect ).boundingRect(); QPointF centerVisible = visibleRect.center(); if ( currentLayout() && currentLayout()->pageCollection() ) { int newPage = currentLayout()->pageCollection()->pageNumberForPoint( centerVisible ); if ( newPage != mCurrentPage ) { mCurrentPage = newPage; emit pageChanged( mCurrentPage ); } } }
int addWizard::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWizard::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: finishedWizard(); break; case 1: on_npcListCombobox_currentIndexChanged((*reinterpret_cast< QString(*)>(_a[1]))); break; case 2: on_npcGraphicSizeSpin_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 3: on_comboBox_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 4: pageChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 5: { int _r = nextId(); if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break; default: ; } _id -= 6; } return _id; }
void RaceWizard::backClicked(bool) { if(pagesWidget->currentIndex() > 0) { pagesWidget->setCurrentIndex(pagesWidget->currentIndex() - 1); pageChanged(); } }
void MyWebView::initEvents() { // 委托页面所有连接在当前视图中打开 myPage->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); connect(myPage, SIGNAL(linkClicked(QUrl)), this, SLOT(onOpenUrl(QUrl))); // 对所有事件添加信号槽 connect(myFrame, SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool))); connect(myFrame, SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(onJavaScriptWindowObjectCleared())); connect(myFrame, SIGNAL(initialLayoutCompleted()), this, SLOT(onInitialLayoutCompleted())); connect(myFrame, SIGNAL(pageChanged()), this, SLOT(onPageChanged())); connect(myFrame, SIGNAL(contentsSizeChanged(const QSize)), this, SLOT(onContentsSizeChanged(const QSize))); connect(myFrame, SIGNAL(iconChanged()), this, SLOT(onIconChanged())); connect(myFrame, SIGNAL(loadStarted()), this, SLOT(onLoadStarted())); connect(myFrame, SIGNAL(titleChanged(const QString)), this, SLOT(onTitleChanged(const QString))); connect(myFrame, SIGNAL(urlChanged(const QUrl)), this, SLOT(onUrlChanged(const QUrl))); connect(myPage, SIGNAL(loadProgress(int)), this, SLOT(onLoadProgress(int))); connect(myPage, SIGNAL(repaintRequested(const QRect)), this, SLOT(onRepaintRequested(const QRect))); connect(myPage, SIGNAL(geometryChangeRequested(const QRect)), this, SLOT(onGeometryChangeRequested(const QRect))); connect(newManager, SIGNAL(requestFinished(QString)), this, SLOT(onRequestFinished(QString))); connect(newManager, SIGNAL(requestStart(QString)), this, SLOT(onRequestStart(QString))); };
//show page void FastViewWidget::showPage(int page) { if(page > 0 && page < doc->numPages()+1) { if (page != -1 ){ currentPage = page - 1; emit pageChanged(page); QImage image = doc->page(currentPage) ->renderToImage(scaleFactor * physicalDpiX(), scaleFactor * physicalDpiY()); double ratio = (double)image.width() /(double)image.height(); //compute size int h = height(); int w = (int)(ratio *(double) h); if(h != image.height()) image = image.scaled(w,h,Qt::IgnoreAspectRatio,Qt::SmoothTransformation); // set page on to widget current = new QLabel(this); current->setAlignment(Qt::AlignCenter); current->setPixmap(QPixmap::fromImage(image)); setWidget(current); updateGeometry(); } } }
void UserStatusUpdate::SetPage(int page) { if (m_Page != page) { m_Page = page; emit pageChanged(); } }
bool HbDataGroup::setExpanded( bool expanded ) { Q_D(HbDataGroup); if(d->mSharedData->mItemView){ HbDataFormModelItem *modelItem = static_cast<HbDataFormModel*>( d->mSharedData->mItemView->model())->itemFromIndex(modelIndex()); HbDataFormModelItem::DataItemType contentWidgetType = static_cast<HbDataFormModelItem::DataItemType>( (d->mIndex.data(HbDataFormModelItem::ItemTypeRole)).toInt()); if( contentWidgetType == HbDataFormModelItem::GroupItem ) { d->setExpanded(expanded); } else if (contentWidgetType == HbDataFormModelItem::GroupPageItem) { //We need to change even the combobox state also so call pageChanged fuction if(modelItem) { int page = d->pageIndex(d->mIndex); if(page != -1) { pageChanged(page); } } } else if(contentWidgetType == HbDataFormModelItem::FormPageItem) { if(modelItem) { int formPageIndex = d->pageIndex(d->mIndex); if( formPageIndex!= -1) { HbDataFormPrivate::d_ptr( static_cast<HbDataForm*>(d->mSharedData->mItemView))->_q_page_changed(formPageIndex); } } } return true; } else { return false; } }
int DialogSiteGrabber::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QDialog::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: runProject((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QStringList(*)>(_a[4]))); break; case 1: next(); break; case 2: back(); break; case 3: run(); break; case 4: cancel(); break; case 5: addFilter(); break; case 6: browse(); break; case 7: pageChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 8: typeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 9: lePNameChanged((*reinterpret_cast< QString(*)>(_a[1]))); break; case 10: lePDirChanged((*reinterpret_cast< QString(*)>(_a[1]))); break; case 11: lePURLChanged((*reinterpret_cast< QString(*)>(_a[1]))); break; case 12: leFTPURLChanged((*reinterpret_cast< QString(*)>(_a[1]))); break; default: ; } _id -= 13; } return _id; }
void ChatChannel::setPage(QObject *page) { if (m_page != page) { m_page = page; emit pageChanged(page); } }
void KviTalWizard::backButtonClicked() { if(!m_p->pCurrentPage) return; setCurrentPage(m_p->findPrevEnabledPage(m_p->pCurrentPage->pWidget)); emit pageChanged(m_p->pCurrentPage->szTitle); }
bool MainWindow::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: buildPalette(); break; case 1: buildFont(); break; case 2: tunePalette(); break; case 3: paletteSelected((int)static_QUType_int.get(_o+1)); break; case 4: styleSelected((const QString&)static_QUType_QString.get(_o+1)); break; case 5: familySelected((const QString&)static_QUType_QString.get(_o+1)); break; case 6: substituteSelected((const QString&)static_QUType_QString.get(_o+1)); break; case 7: removeSubstitute(); break; case 8: addSubstitute(); break; case 9: downSubstitute(); break; case 10: upSubstitute(); break; case 11: removeLibpath(); break; case 12: addLibpath(); break; case 13: downLibpath(); break; case 14: upLibpath(); break; case 15: browseLibpath(); break; case 16: removeFontpath(); break; case 17: addFontpath(); break; case 18: downFontpath(); break; case 19: upFontpath(); break; case 20: browseFontpath(); break; case 21: fileSave(); break; case 22: fileExit(); break; case 23: somethingModified(); break; case 24: helpAbout(); break; case 25: helpAboutQt(); break; case 26: pageChanged((QWidget*)static_QUType_ptr.get(_o+1)); break; default: return MainWindowBase::qt_invoke( _id, _o ); } return TRUE; }
void VCWidget::setPage(int pNum) { if (pNum == m_page) return; m_page = pNum; emit pageChanged(pNum); }
KPrWebPresentationWizard::KPrWebPresentationWizard( const QString &_config, KPrDocument *_doc, KPrView *_view ) : KWizard( 0, "", false ), config( _config ), webPres( config, _doc, _view ) { doc = _doc; view = _view; setupPage1(); setupPage2(); setupPage3(); setupPage4(); setupPage5(); connect( nextButton(), SIGNAL( clicked() ), this, SLOT( pageChanged() ) ); connect( backButton(), SIGNAL( clicked() ), this, SLOT( pageChanged() ) ); connect( finishButton(), SIGNAL( clicked() ), this, SLOT( finish() ) ); }
RaceWizard::RaceWizard(Race *_race, bool readOnly, QWidget *parent) : QDialog(parent) , page5DataModel(new Page5Model(_race, this)) , race(_race) { pagesWidget = new QStackedWidget; pagesWidget->setContentsMargins(QMargins(0, 0, 0, 0)); QWidget *page1Widget = new QWidget; Ui_RaceWizardPage1 page1; page1.setupUi(page1Widget); pagesWidget->addWidget(page1Widget); createPage2(); createPage3(); QWidget *page4Widget = new QWidget; Ui_RaceWizardPage4 page4; page4.setupUi(page4Widget); pagesWidget->addWidget(page4Widget); createPage5(); createPage6(); QWidget *buttonsPane = new QWidget; buttonsPane->setContentsMargins(QMargins(0, 0, 0, 0)); QPushButton *helpButton = new QPushButton(tr("&Help")); QPushButton *cancelButton = new QPushButton(tr("Cancel")); backButton = new QPushButton(tr("< &Back")); nextButton = new QPushButton(tr("&Next >")); QPushButton *finishButton = new QPushButton(tr("&Finish")); QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(helpButton); layout->addWidget(cancelButton); layout->addWidget(backButton); layout->addWidget(nextButton); layout->addWidget(finishButton); buttonsPane->setLayout(layout); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(pagesWidget); mainLayout->addWidget(buttonsPane); setLayout(mainLayout); page5DataMapper->toFirst(); pageChanged(); connect(helpButton, SIGNAL(clicked(bool)), this, SLOT(helpClicked(bool))); connect(cancelButton, SIGNAL(clicked(bool)), this, SLOT(cancelClicked(bool))); connect(backButton, SIGNAL(clicked(bool)), this, SLOT(backClicked(bool))); connect(nextButton, SIGNAL(clicked(bool)), this, SLOT(nextClicked(bool))); connect(finishButton, SIGNAL(clicked(bool)), this, SLOT(finishClicked(bool))); pagesWidget->setEnabled(!readOnly); }
void CAlarmSortFilterProxyModel::slotPrevPage() { int nbRow = sourceModel()->rowCount(); m_nbPage = nbRow/m_rowPerPage; if(m_numPage > 0) --m_numPage; emit filterChanged(); emit pageChanged(); }
void KviTalWizard::showEvent(QShowEvent * e) { if(!(m_p->pCurrentPage)) { // display the first page KviTalWizardPageData * pData = m_p->findFirstEnabledPage(); if(pData) setCurrentPage(pData->pWidget); } QDialog::showEvent(e); emit pageChanged(m_p->pCurrentPage->szTitle); }
void QDjViewOutline::refresh() { QDjVuDocument *doc = djview->getDocument(); if (doc && !loaded && djview->pageNum()>0) { miniexp_t outline = doc->getDocumentOutline(); if (outline == miniexp_dummy) return; loaded = true; if (outline) { if (!miniexp_consp(outline) || miniexp_car(outline) != miniexp_symbol("bookmarks")) { QString msg = tr("Outline data is corrupted"); qWarning("%s", (const char*)msg.toLocal8Bit()); } tree->clear(); QTreeWidgetItem *root = new QTreeWidgetItem(); fillItems(root, miniexp_cdr(outline)); while (root->childCount() > 0) tree->insertTopLevelItem(tree->topLevelItemCount(), root->takeChild(0) ); if (tree->topLevelItemCount() == 1) tree->topLevelItem(0)->setExpanded(true); delete root; } else { tree->clear(); QTreeWidgetItem *root = new QTreeWidgetItem(tree); root->setText(0, tr("Pages")); root->setFlags(Qt::ItemIsEnabled); root->setData(0, Qt::UserRole, -1); for (int pageno=0; pageno<djview->pageNum(); pageno++) { QTreeWidgetItem *item = new QTreeWidgetItem(root); QString name = djview->pageName(pageno); item->setText(0, tr("Page %1").arg(name)); item->setData(0, Qt::UserRole, pageno); item->setData(0, Qt::UserRole+1, pageno); item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled); item->setToolTip(0, tr("Go: page %1.").arg(name)); item->setWhatsThis(0, whatsThis()); } tree->setItemExpanded(root, true); } pageChanged(djview->getDjVuWidget()->page()); } }
void KPrViewModePresentation::navigateToPage( int index ) { Q_ASSERT( 0 != m_animationDirector ); if ( 0 == m_animationDirector ) { return; } m_animationDirector->navigateToPage( index ); if ( m_pvAnimationDirector ) { m_pvAnimationDirector->navigateToPage( index ); } emit pageChanged( m_animationDirector->currentPage(), m_animationDirector->numStepsInPage() ); emit stepChanged( m_animationDirector->currentStep() ); }
static void source_append(QQmlListProperty<DocumentProviderPlugin> *property, DocumentProviderPlugin *source) { Private *d = static_cast<Private *>(property->data); DocumentProviderListModel *q = static_cast<DocumentProviderListModel *>(property->object); d->providers.append(source); QObject::connect(source, SIGNAL(countChanged()), q, SLOT(sourceInfoChanged())); QObject::connect(source, SIGNAL(iconChanged()), q, SLOT(sourceInfoChanged())); QObject::connect(source, SIGNAL(thumbnailChanged()), q, SLOT(sourceInfoChanged())); QObject::connect(source, SIGNAL(pageChanged()), q, SLOT(sourceInfoChanged())); QObject::connect(source, SIGNAL(titleChanged()), q, SLOT(sourceInfoChanged())); QObject::connect(source, SIGNAL(modelChanged()), q, SLOT(sourceInfoChanged())); QObject::connect(source, SIGNAL(readyChanged()), q, SLOT(sourceInfoChanged())); QObject::connect(source, SIGNAL(needsSetupChanged()), q, SLOT(sourceInfoChanged())); if (source->isReady()) q->updateActiveSources(); }
void EnttecWing::addDevice(Wing* device) { Q_ASSERT(device != NULL); connect(device, SIGNAL(valueChanged(quint32,uchar)), this, SLOT(slotValueChanged(quint32,uchar))); connect(device, SIGNAL(pageChanged(quint32,quint32)), this, SLOT(slotPageChanged(quint32,quint32))); m_devices.append(device); /* To maintain some persistency with the indices of multiple devices between sessions they need to be sorted according to some (semi-)permanent criteria. Their addresses shouldn't change too often, so let's use that. */ qSort(m_devices.begin(), m_devices.end(), wing_device_sort); emit configurationChanged(); }
CAlarmSortedView::CAlarmSortedView(CDialogAlarm *parent) : QWidget ( (QWidget*)parent ), m_filter(new CAlarmSortFilterProxyModel(ROW_PER_PAGE)), m_nbPage(1), m_numPage(0), m_parent(parent) { m_layout = new QHBoxLayout(); m_listView = new QListView(this); m_layout->addWidget(m_listView); m_listView->setEditTriggers( QAbstractItemView::NoEditTriggers ); m_listView->setResizeMode(QListView::Adjust); m_layout->setContentsMargins ( 0, 0, 0, 0 ); this->setLayout(m_layout); QSizePolicy expandPolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); this->setSizePolicy(expandPolicy); connect(m_filter, SIGNAL(pageChanged()), this, SLOT(slotChangePage())); }
void PageRunner::finished(bool ok) { // bind nativeio if (!ok) { qApp->exit(1); } if (!scriptMode) { mainFrame()->evaluateJavaScript(getRuntimeBindings()); } // connect signals connect(this, SIGNAL(contentsChanged()), this, SLOT(noteChange())); connect(this, SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(noteChange())); connect(this, SIGNAL(repaintRequested(QRect)), this, SLOT(noteChange())); connect(mainFrame(), SIGNAL(pageChanged()), this, SLOT(noteChange())); connect(this, SIGNAL(geometryChangeRequested(QRect)), this, SLOT(noteChange())); QTimer::singleShot(150, this, SLOT(reallyFinished())); changed = false; time.start(); }
void KPrViewModePresentation::navigate( KPrAnimationDirector::Navigation navigation ) { Q_ASSERT( 0 != m_animationDirector ); if ( 0 == m_animationDirector ) { return; } int previousPage = m_animationDirector->currentPage(); bool finished = m_animationDirector->navigate( navigation ); if ( m_pvAnimationDirector ) { finished = m_pvAnimationDirector->navigate( navigation ) && finished; } int newPage = m_animationDirector->currentPage(); if ( previousPage != newPage ) { emit pageChanged( newPage, m_animationDirector->numStepsInPage() ); } emit stepChanged( m_animationDirector->currentStep() ); if ( finished ) { activateSavedViewMode(); } }
RecommendWidget::RecommendWidget(QWidget *parent) : QWidget(parent) { hostName="www.mvgather.com"; isFirstLoad = true; mainGLayout = new QGridLayout; mainGLayout->setMargin(0); setLayout(mainGLayout); listShowWidget = new ListShowWidget; dyRecommendBtn = new QPushButton; searchBtn = new QPushButton; searchLineEdit = new QLineEdit; searchBtn->setStyleSheet("QPushButton{background-color: rgba(0, 82, 112, 100);color: white;border: 1px;}QPushButton:hover{background-color: rgba(0, 82, 112, 200);color: white;border: 1px;}QPushButton:disabled{background-color: transparent;color: gray;}"); mainGLayout->addWidget(listShowWidget,0,0,10,10); mainGLayout->addWidget(dyRecommendBtn,0,10,1,1); mainGLayout->addWidget(searchLineEdit,1,10,1,2); mainGLayout->addWidget(searchBtn,1,12,1,1); connect(listShowWidget,SIGNAL(clicked(QString,QString)),this,SLOT(addDownloadTask(QString,QString)));//this->tvUrl,this->title connect(listShowWidget,SIGNAL(pageChanged()),this,SLOT(loadData())); connect(dyRecommendBtn,SIGNAL(clicked()),this,SLOT(reLoadData())); dyRecommendBtn->setText("电影推荐"); searchBtn->setText("搜索"); connect(searchBtn,SIGNAL(clicked()),this,SLOT(search())); connect(searchLineEdit,SIGNAL(returnPressed()),this,SLOT(search())); searchLineEdit->setMaximumWidth(200); manager = new QNetworkAccessManager; QTimer::singleShot(5000,this,SLOT(counter())); //QTimer::singleShot(2000,this,SLOT(loadData())); }
void PDFwin::load(const char* filename) { _filename=" "; delete mModel; mModel=new PDFmodel(); if(!mModel->load(filename)) { mState.format("Error! opening %s", filename); delete mModel; mModel=NULL; } _filename=filename; mOutDir=TString(filename).left(-4); mCurrPage=0; pageChanged(); redraw(); if(mModel) { mLayout->findButton("Process current page")->activate(); mLayout->findButton("Process all pages")->activate(); mLayout->redraw(); } }
void KPrViewModePresentation::activate( KoPAViewMode * previousViewMode ) { if (!m_baseCanvas) return; m_savedViewMode = previousViewMode; // store the previous view mode m_savedParent = m_baseCanvas->parentWidget(); m_baseCanvas->setParent( ( QWidget* )0, Qt::Window ); // set parent to 0 and QDesktopWidget desktop; KPrDocument *document = static_cast<KPrDocument *>( m_view->kopaDocument() ); bool presenterViewEnabled = document->isPresenterViewEnabled(); int presentationscreen = document->presentationMonitor(); // add end off slideshow page m_endOfSlideShowPage = new KPrEndOfSlideShowPage( desktop.screenGeometry( presentationscreen ), document ); QList<KoPAPageBase*> pages = document->slideShow(); pages.append( m_endOfSlideShowPage ); QRect presentationRect = desktop.screenGeometry( presentationscreen ); #ifdef Q_OS_LINUX // This breaks and is not required on Windows platforms m_baseCanvas->setParent(desktop.screen(presentationscreen), Qt::Window); // detach widget to the presentation screen #endif m_baseCanvas->setWindowFlags( Qt::Window ); // make it a window // the main animation director needs to be created first since it will set the active page // of the presentation // the animation director needs to be set before m_baseCanvas->move is called as this might try to call // viewConverter. m_animationDirector = new KPrAnimationDirector( m_view, m_baseCanvas, pages, m_view->activePage() ); // move and resize now as otherwise it is not set when we call activate on the tool. m_baseCanvas->setGeometry(presentationRect); m_baseCanvas->setWindowState( m_baseCanvas->windowState() | Qt::WindowFullScreen ); // make it show full screen // show and setFocus needs to be done after move and resize as otherwise the move and resize have no effect m_baseCanvas->show(); m_baseCanvas->setFocus(); KoCursor::setAutoHideCursor( m_baseCanvas, true ); if ( presenterViewEnabled ) { if ( desktop.numScreens() > 1 ) { int newscreen = desktop.numScreens() - presentationscreen - 1; // What if we have > 2 screens? QRect pvRect = desktop.screenGeometry( newscreen ); m_presenterViewCanvas = new KoPACanvas( m_view, document ); m_presenterViewWidget = new KPrPresenterViewWidget( this, pages, m_presenterViewCanvas ); #ifdef Q_OS_LINUX // This breaks and is not required on Windows platforms m_presenterViewWidget->setParent( desktop.screen(newscreen), Qt::Window ); #endif m_presenterViewWidget->setGeometry(pvRect); m_presenterViewWidget->setWindowState( m_presenterViewWidget->windowState() | Qt::WindowFullScreen ); m_presenterViewWidget->updateWidget( pvRect.size(), presentationRect.size() ); m_presenterViewWidget->show(); m_presenterViewWidget->setFocus(); // it shown full screen m_pvAnimationDirector = new KPrAnimationDirector( m_view, m_presenterViewCanvas, pages, m_view->activePage() ); } else { kWarning() << "Presenter View is enabled but only found one monitor"; document->setPresenterViewEnabled( false ); } } m_tool->activate(KoToolBase::DefaultActivation, QSet<KoShape*>()); emit activated(); emit pageChanged( m_animationDirector->currentPage(), m_animationDirector->numStepsInPage() ); emit stepChanged( m_animationDirector->currentStep() ); }
void MApplicationWindow::setCurrentPage (MApplicationPage* page) { m_CurrentPage = page; emit pageChanged(page); }
void PDFwin::setCurPage(int pageNo) { mCurrPage=pageNo; pageChanged(); redraw(); }
int PDFwin::handle(int event) { static bool mbMoveRect=false; static TRect mPushedRect; static Int2D mPushedCursor; switch(event) { /* Receiving Drag and Drop */ case FL_DND_ENTER: case FL_DND_RELEASE: case FL_DND_LEAVE: case FL_DND_DRAG: return 1; case FL_PASTE: { TString fn=Fl::event_text(); if(fn.length() && fn.right(4).toUpper()==".PDF") { load(fn); } else Msg::msgBox("Error! Unknown file format"); // If there is a callback registered, call it. // The callback must access Fl::event_text() to // get the string or file path(s) that was dropped. // Note that do_callback() is not called directly. // Instead it will be executed by the FLTK main-loop // once we have finished handling the DND event. // This allows caller to popup a window or change widget focus. //if(callback() && ((when() & FL_WHEN_RELEASE) || (when() & FL_WHEN_CHANGED))) // Fl::add_timeout(0.0, Fl_DND_Box::callback_deferred, (void*)this); return 1; } case FL_KEYUP: if(mModel) { if(Fl::event_key()==FL_Page_Down) { mCurrPage=(mCurrPage+1)%mModel->_pdfDoc->getNumPages(); pageChanged(); redraw(); } else if(Fl::event_key()==FL_Page_Up) { mCurrPage=(mCurrPage+mModel->_pdfDoc->getNumPages()-1)%mModel->_pdfDoc->getNumPages(); pageChanged(); redraw(); } else if(Fl::event_key()==FL_Delete) { if(mSelectedRect!=mRects.end()) { mRects.erase(mSelectedRect); mSelectedRect=mRects.end(); redraw(); } } } break; case FL_ENTER: return 1; case FL_LEAVE: cursor(FL_CURSOR_DEFAULT); return 1; case FL_MOVE: { if(mSelectedRect!=mRects.end() && mSelectedRect->corner(Int2D(Fl::event_x(), Fl::event_y()))) { cursor(FL_CURSOR_NWSE); return 1; } if(findRect(Fl::event_x(), Fl::event_y())==mRects.end()) cursor(FL_CURSOR_DEFAULT); else cursor(FL_CURSOR_MOVE); } return 1; case FL_PUSH: if(mModel && Fl::event_button() == FL_LEFT_MOUSE) { if(mSelectedRect!=mRects.end()) { int corner=mSelectedRect->corner(Int2D(Fl::event_x(), Fl::event_y())); if(corner) { if(corner==1) std::swap(mSelectedRect->p1, mSelectedRect->p2); cursor(FL_CURSOR_NWSE); return 1; } } std::list<SelectionRectangle>::iterator i =findRect(Fl::event_x(), Fl::event_y()); if(i!=mRects.end()) { // move selected rect mSelectedRect=i; redraw(); mbMoveRect=true; mPushedCursor.x=Fl::event_x(); mPushedCursor.y=Fl::event_y(); mPushedRect=*mSelectedRect; cursor(FL_CURSOR_MOVE); return 1; } mRects.push_back(SelectionRectangle()); mSelectedRect=mRects.end(); mSelectedRect--; if(selectedRect().handle(*this, "push")) { redraw(); cursor(FL_CURSOR_HAND); return 1; } } return 0; break; case FL_DRAG: { if(mbMoveRect) { cursor(FL_CURSOR_MOVE); mSelectedRect->p1= toDocCoord(mPushedRect.left+Fl::event_x()-mPushedCursor.x, mPushedRect.top+Fl::event_y()-mPushedCursor.y); mSelectedRect->p2= toDocCoord(mPushedRect.right+Fl::event_x()-mPushedCursor.x, mPushedRect.bottom+Fl::event_y()-mPushedCursor.y); mSelectedRect->updateScreenCoord(*this); redraw(); return 1; } if(selectedRect().handle(*this, "drag")) redraw(); cursor(FL_CURSOR_HAND); return 1; } break; case FL_RELEASE: { mbMoveRect=false; if(mRects.size()) { if(selectedRect().isValid()) { if(selectedRect().p1.x> selectedRect().p2.x) std::swap(selectedRect().p1.x, selectedRect().p2.x); if(selectedRect().p1.y> selectedRect().p2.y) std::swap(selectedRect().p1.y, selectedRect().p2.y); } else { mRects.erase(mSelectedRect); mSelectedRect=mRects.end(); redraw(); } } return 1; } break; } return Fl_Double_Window::handle(event); }