本文整理汇总了C++中QWSDisplay::takeId方法的典型用法代码示例。如果您正苦于以下问题:C++ QWSDisplay::takeId方法的具体用法?C++ QWSDisplay::takeId怎么用?C++ QWSDisplay::takeId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QWSDisplay
的用法示例。
在下文中一共展示了QWSDisplay::takeId方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: winId
int QWSWindowSurface::winId() const
{
// XXX: the widget winId may change during the lifetime of the widget!!!
const QWidget *win = window();
if (win && win->isWindow())
return win->internalWinId();
#ifdef Q_BACKINGSTORE_SUBSURFACES
if (!d_ptr->winId) {
QWSWindowSurface *that = const_cast<QWSWindowSurface*>(this);
QWSDisplay *display = QWSDisplay::instance();
const int id = display->takeId();
qt_insertWindowSurface(id, that);
that->d_ptr->winId = id;
if (win)
display->nameRegion(id, win->objectName(), win->windowTitle());
else
display->nameRegion(id, QString(), QString());
display->setAltitude(id, 1, true); // XXX
}
#endif
return d_ptr->winId;
}
示例2: create_sys
void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool /*destroyOldWindow*/)
{
Q_Q(QWidget);
Qt::WindowType type = q->windowType();
// Make sure the WindowTitleHint is on if any of the title bar hints are set
// Note: This might be moved to cross-platform QWidgetPrivate::adjustFlags()
if ( !(data.window_flags & Qt::CustomizeWindowHint) && (
(data.window_flags & Qt::WindowSystemMenuHint) ||
(data.window_flags & Qt::WindowContextHelpButtonHint) ||
(data.window_flags & Qt::WindowMinimizeButtonHint) ||
(data.window_flags & Qt::WindowMaximizeButtonHint) ||
(data.window_flags & Qt::WindowCloseButtonHint) ) ) {
data.window_flags |= Qt::WindowTitleHint;
}
// Decoration plugins on QWS don't support switching on the close button on its own
if (data.window_flags & Qt::WindowCloseButtonHint)
data.window_flags |= Qt::WindowSystemMenuHint;
Qt::WindowFlags flags = data.window_flags;
data.alloc_region_index = -1;
// we don't have a "Drawer" window type
if (type == Qt::Drawer) {
type = Qt::Widget;
flags &= ~Qt::WindowType_Mask;
}
bool topLevel = (flags & Qt::Window);
bool popup = (type == Qt::Popup);
bool dialog = (type == Qt::Dialog
|| type == Qt::Sheet
|| (flags & Qt::MSWindowsFixedSizeDialogHint));
bool desktop = (type == Qt::Desktop);
bool tool = (type == Qt::Tool || type == Qt::SplashScreen || type == Qt::ToolTip);
#ifndef QT_NO_WARNING_OUTPUT
static bool toolWarningShown = false;
if (!toolWarningShown && type == Qt::Tool && !(flags & Qt::FramelessWindowHint)) {
qWarning("Qt for Embedded Linux " QT_VERSION_STR " does not support tool windows with frames.\n"
"This behavior will change in a later release. To ensure compatibility with\n"
"future versions, use (Qt::Tool | Qt::FramelessWindowHint).");
toolWarningShown = true;
}
#endif
WId id;
QWSDisplay* dpy = QWidget::qwsDisplay();
if (!window) // always initialize
initializeWindow = true;
// use the size of the primary screen to determine the default window size
QList<QScreen *> screens = qt_screen->subScreens();
if (screens.isEmpty())
screens.append(qt_screen);
int sw = screens[0]->width();
int sh = screens[0]->height();
if (desktop) { // desktop widget
dialog = popup = false; // force these flags off
data.crect.setRect(0, 0, sw, sh);
} else if (topLevel && !q->testAttribute(Qt::WA_Resized)) {
int width = sw / 2;
int height = 4 * sh / 10;
if (extra) {
width = qMax(qMin(width, extra->maxw), extra->minw);
height = qMax(qMin(height, extra->maxh), extra->minh);
}
data.crect.setSize(QSize(width, height));
}
if (window) { // override the old window
id = window;
setWinId(window);
} else if (desktop) { // desktop widget
id = (WId)-2; // id = root window
#if 0
QWidget *otherDesktop = q->find(id); // is there another desktop?
if (otherDesktop && otherDesktop->testWFlags(Qt::WPaintDesktop)) {
otherDesktop->d_func()->setWinId(0); // remove id from widget mapper
setWinId(id); // make sure otherDesktop is
otherDesktop->d_func()->setWinId(id); // found first
} else
#endif
{
setWinId(id);
}
} else {
id = topLevel ? dpy->takeId() : takeLocalId();
setWinId(id); // set widget id/handle + hd
}
bool hasFrame = true;
if (topLevel) {
//.........这里部分代码省略.........
示例3: create
void QWidget::create( WId window, bool initializeWindow, bool /*destroyOldWindow*/)
{
if ( testWState(WState_Created) && window == 0 )
return;
setWState( WState_Created ); // set created flag
if ( !parentWidget() || parentWidget()->isDesktop() )
setWFlags( WType_TopLevel ); // top-level widget
alloc_region_index = -1;
alloc_region_revision = -1;
isSettingGeometry = FALSE;
overlapping_children = -1;
bool topLevel = testWFlags(WType_TopLevel);
bool popup = testWFlags(WType_Popup);
bool dialog = testWFlags(WType_Dialog);
bool desktop = testWFlags(WType_Desktop);
WId id;
QWSDisplay* dpy = qwsDisplay();
if ( !window ) // always initialize
initializeWindow = TRUE;
if ( popup ) {
setWFlags(WStyle_Tool); // a popup is a tool window
setWFlags(WStyle_StaysOnTop); // a popup stays on top
}
if ( topLevel && parentWidget() ) {
// if our parent has WStyle_StaysOnTop, so must we
QWidget *ptl = parentWidget()->topLevelWidget();
if ( ptl && ptl->testWFlags( WStyle_StaysOnTop ) )
setWFlags(WStyle_StaysOnTop);
}
int sw = dpy->width();
int sh = dpy->height();
if ( dialog || popup || desktop ) { // these are top-level, too
topLevel = TRUE;
setWFlags( WType_TopLevel );
}
if ( desktop ) { // desktop widget
dialog = popup = FALSE; // force these flags off
crect.setRect( 0, 0, sw, sh );
} else if ( topLevel ) { // calc pos/size from screen
crect.setRect( 0, 0, sw/2, 4*sh/10 );
} else { // child widget
crect.setRect( 0, 0, 100, 30 );
}
if ( window ) { // override the old window
id = window;
setWinId( window );
} else if ( desktop ) { // desktop widget
id = (WId)-2; // id = root window
QWidget *otherDesktop = find( id ); // is there another desktop?
if ( otherDesktop && otherDesktop->testWFlags(WPaintDesktop) ) {
otherDesktop->setWinId( 0 ); // remove id from widget mapper
setWinId( id ); // make sure otherDesktop is
otherDesktop->setWinId( id ); // found first
} else {
setWinId( id );
}
} else {
id = topLevel ? dpy->takeId() : takeLocalId();
setWinId( id ); // set widget id/handle + hd
}
if ( !topLevel ) {
if ( !testWFlags(WStyle_Customize) )
setWFlags( WStyle_NormalBorder | WStyle_Title | WStyle_MinMax | WStyle_SysMenu );
} else if ( !(desktop || popup) ) {
if ( testWFlags(WStyle_Customize) ) { // customize top-level widget
if ( testWFlags(WStyle_NormalBorder) ) {
// XXX ...
} else {
if ( !testWFlags(WStyle_DialogBorder) ) {
// XXX ...
}
}
if ( testWFlags(WStyle_Tool) ) {
// XXX ...
}
} else { // normal top-level widget
setWFlags( WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu |
WStyle_MinMax );
}
}
alloc_region_dirty=FALSE;
paintable_region_dirty=FALSE;
if ( !initializeWindow ) {
// do no initialization
} else if ( popup ) { // popup widget
} else if ( topLevel && !desktop ) { // top-level widget
QWidget *p = parentWidget(); // real parent
//.........这里部分代码省略.........