void Window_cancel_children( Handle self) { protect_object( self); if ( my-> get_modalHorizon( self)) { Handle next = var-> nextSharedModal; while ( next) { CWindow( next)-> cancel( next); next = var-> nextSharedModal; } } else { Handle mh = my-> get_horizon( self); Handle next = ( mh == application) ? PApplication(mh)-> sharedModal : PWindow(mh)-> nextSharedModal; while ( next) { if ( Widget_is_child( next, self)) { CWindow( next)-> cancel( next); next = PWindow(mh)-> nextSharedModal; } else next = PWindow(next)-> nextSharedModal; } } unprotect_object( self); }
PRectangle Window::GetMonitorRect(Point pt) { QPoint qpt = PWindow(wid)->mapToGlobal(QPoint(pt.x, pt.y)); QRect qr = QApplication::desktop()->availableGeometry(qpt); qpt = PWindow(wid)->mapFromGlobal(qr.topLeft()); return PRectangle(qpt.x(), qpt.y(), qpt.x() + qr.width(), qpt.y() + qr.height()); }
void Window::SetPositionRelative(PRectangle rc, Window relativeTo) { QWidget *rel = PWindow(relativeTo.wid); QPoint pos = rel->mapToGlobal(rel->pos()); int x = pos.x() + rc.left; int y = pos.y() + rc.top; PWindow(wid)->setGeometry(x, y, rc.right - rc.left, rc.bottom - rc.top); }
void Window::InvalidateAll() { QWidget *w = PWindow(wid); if (w) w->update(); }
void Window::InvalidateRectangle(PRectangle rc) { QWidget *w = PWindow(wid); if (w) w->update(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top); }
/* * Cannot return nilHandle. */ Handle Application_map_focus( Handle self, Handle from) { Handle topFrame = my-> top_frame( self, from); Handle topShared; if ( var-> topExclModal) return ( topFrame == var-> topExclModal) ? from : var-> topExclModal; if ( !var-> topSharedModal && var-> modalHorizons. count == 0) return from; /* return from if no shared modals active */ if ( topFrame == self) { if ( !var-> topSharedModal) return from; topShared = var-> topSharedModal; } else { Handle horizon = ( !CWindow( topFrame)-> get_modalHorizon( topFrame)) ? CWindow( topFrame)-> get_horizon( topFrame) : topFrame; if ( horizon == self) topShared = var-> topSharedModal; else topShared = PWindow( horizon)-> topSharedModal; } return ( !topShared || ( topShared == topFrame)) ? from : topShared; }
void Window_exec_enter_proc( Handle self, Bool sharedExec, Handle insertBefore) { if ( var-> modal) return; if ( sharedExec) { Handle mh = my-> get_horizon( self); var-> modal = mtShared; /* adding new modal horizon in global mh-list */ if ( mh != application && !PWindow(mh)-> nextSharedModal) list_add( &PApplication( application)-> modalHorizons, mh); if (( var-> nextSharedModal = insertBefore)) { /* inserting window in between of modal list */ Handle *iBottom = ( mh == application) ? &PApplication(mh)-> sharedModal : &PWindow(mh)-> nextSharedModal; var-> prevSharedModal = PWindow( insertBefore)-> prevSharedModal; if ( *iBottom == insertBefore) *iBottom = self; } else { /* inserting window on top of modal list */ Handle *iTop = ( mh == application) ? &PApplication(mh)-> topSharedModal : &PWindow(mh)-> topSharedModal; if ( *iTop) PWindow( *iTop)-> nextSharedModal = self; else { if ( mh == application) PApplication(mh)-> sharedModal = self; else PWindow(mh)-> nextSharedModal = self; } var-> prevSharedModal = *iTop; *iTop = self; } } /* end of shared exec */ else /* start of exclusive exec */ { PApplication app = ( PApplication) application; var-> modal = mtExclusive; if (( var-> nextExclModal = insertBefore)) { var-> prevExclModal = PWindow( insertBefore)-> prevExclModal; if ( app-> exclModal == insertBefore) app-> exclModal = self; } else { var-> prevExclModal = app-> topExclModal; if ( app-> exclModal) PWindow( app-> topExclModal)-> nextExclModal = self; else app-> exclModal = self; app-> topExclModal = self; } } }
static Bool icon_notify ( Handle self, Handle child, Handle icon) { if ( kind_of( child, CWindow) && (( PWidget) child)-> options. optOwnerIcon) { CWindow( child)-> set_icon( child, icon); PWindow( child)-> options. optOwnerIcon = 1; } return false; }
void Window::Show(bool show) { QWidget *w = PWindow(wid); if (show) w->show(); else w->hide(); }
Bool Window_execute_shared( Handle self, Handle insertBefore) { if ( var-> modal || var-> nextSharedModal) return false; if ( insertBefore && (( insertBefore == self) || ( !kind_of( insertBefore, CWindow)) || ( PWindow( insertBefore)-> modal != mtShared) || ( CWindow( insertBefore)-> get_horizon( insertBefore) != my-> get_horizon( self)))) insertBefore = nilHandle; return apc_window_execute_shared( self, insertBefore); }
void Window::Destroy() { QWidget *w = PWindow(wid); if (w) { // Delete the widget next time round the event loop rather than // straight away. This gets round a problem when auto-completion lists // are cancelled after an entry has been double-clicked, ie. the list's // dtor is called from one of the list's slots. There are other ways // around the problem but this is the simplest and doesn't seem to // cause problems of its own. w->deleteLater(); wid = 0; } }
PRectangle Window::GetPosition() { QWidget *w = PWindow(wid); // Before any size allocated pretend its big enough not to be scrolled. PRectangle rc(0,0,5000,5000); if (w) { const QRect &r = w->geometry(); rc.right = r.right() - r.left() + 1; rc.bottom = r.bottom() - r.top() + 1; } return rc; }
int Window_execute( Handle self, Handle insertBefore) { if ( var-> modal) return mbCancel; protect_object( self); if ( insertBefore && ( insertBefore == self || !kind_of( insertBefore, CWindow) || PWindow( insertBefore)-> modal != mtExclusive)) insertBefore = nilHandle; if ( !apc_window_execute( self, insertBefore)) var-> modalResult = mbCancel; unprotect_object( self); return var-> modalResult; }
void SurfaceImpl::InitPixMap(int width, int height, Surface *, WindowID wid) { Release(); #if QT_VERSION >= 0x050000 int dpr = PWindow(wid)->devicePixelRatio(); QPixmap *pixmap = new QPixmap(width * dpr, height * dpr); pixmap->setDevicePixelRatio(dpr); #else QPixmap *pixmap = new QPixmap(width, height); Q_UNUSED(wid); #endif pd = pixmap; painter = new QPainter(pd); my_resources = true; }
void Window::SetCursor(Cursor curs) { Qt::CursorShape qc; switch (curs) { case cursorText: qc = Qt::IBeamCursor; break; case cursorUp: qc = Qt::UpArrowCursor; break; case cursorWait: qc = Qt::WaitCursor; break; case cursorHoriz: qc = Qt::SizeHorCursor; break; case cursorVert: qc = Qt::SizeVerCursor; break; case cursorHand: qc = Qt::PointingHandCursor; break; default: // Note that Qt doesn't have a standard cursor that could be used to // implement cursorReverseArrow. qc = Qt::ArrowCursor; } PWindow(wid)->setCursor(qc); }
Handle Application_popup_modal( Handle self) { Handle ha = apc_window_get_active(); Handle xTop; if ( var-> topExclModal) { /* checking exclusive modal chain */ xTop = ( !ha || ( PWindow(ha)->modal == 0)) ? var-> exclModal : ha; while ( xTop) { if ( PWindow(xTop)-> nextExclModal) { CWindow(xTop)-> bring_to_front( xTop); xTop = PWindow(xTop)-> nextExclModal; } else { return popup_win( xTop); } } } else { if ( !var-> topSharedModal && var-> modalHorizons. count == 0) return nilHandle; /* return from if no shared modals active */ /* checking shared modal chains */ if ( ha) { xTop = ( PWindow(ha)->modal == 0) ? CWindow(ha)->get_horizon(ha) : ha; if ( xTop == application) xTop = var-> sharedModal; } else xTop = var-> sharedModal ? var-> sharedModal : var-> modalHorizons. items[ 0]; while ( xTop) { if ( PWindow(xTop)-> nextSharedModal) { CWindow(xTop)-> bring_to_front( xTop); xTop = PWindow(xTop)-> nextSharedModal; } else { return popup_win( xTop); } } } return nilHandle; }
bool Window::HasFocus() { return PWindow(wid)->hasFocus(); }
void Window::SetTitle(const char *s) { PWindow(wid)->setWindowTitle(s); }
void Window::SetFont(Font &font) { PWindow(wid)->setFont(*PFont(font.GetID())); }
void Window::SetPosition(PRectangle rc) { PWindow(wid)->setGeometry(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top); }
void Window::SetTitle(const char *s) { PWindow(wid)->setCaption(s); }
void qworld_( float *xmin , float *ymin , float *xmax , float *ymax ) { PWindow( *xmin , *ymin , *xmax , *ymax ); }