当前位置: 首页>>代码示例>>C++>>正文


C++ QWaylandSurface::windowType方法代码示例

本文整理汇总了C++中QWaylandSurface::windowType方法的典型用法代码示例。如果您正苦于以下问题:C++ QWaylandSurface::windowType方法的具体用法?C++ QWaylandSurface::windowType怎么用?C++ QWaylandSurface::windowType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在QWaylandSurface的用法示例。


在下文中一共展示了QWaylandSurface::windowType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: surfaceMapped

void QtWaylandMotorcarCompositor::surfaceMapped()
{
    QWaylandSurface *surface = qobject_cast<QWaylandSurface *>(sender());

    std::cout << "mapped surface: " << surface << std::endl;

    QPoint pos;
    //if (!m_surfaces.contains(surface)) {

    //surface->setPos(QPoint(0, 0));
    if (surface->hasShellSurface()) {

        motorcar::WaylandSurface::SurfaceType surfaceType;

        int type = static_cast<int>(surface->windowType());
        float popupZOffset = 0.05;


        if(type == QWaylandSurface::WindowType::Toplevel) {
            surfaceType = motorcar::WaylandSurface::SurfaceType::TOPLEVEL;
        } else if(type == QWaylandSurface::WindowType::Popup) {
            surfaceType = motorcar::WaylandSurface::SurfaceType::POPUP;
        } else if(type == QWaylandSurface::WindowType::Transient) {
            surfaceType = motorcar::WaylandSurface::SurfaceType::TRANSIENT;
        } else {
            surfaceType = motorcar::WaylandSurface::SurfaceType::NA;
        }

        QtWaylandMotorcarSurface *motorsurface = this->getMotorcarSurface(surface);
        if(motorsurface == NULL) {
            //if it is not present for some weird reason just go ahead and create it for good measure
            std::cout << "Warning: qwaylandsurface was mapped but motorcar surface does not exist yet, creating now" <<std::endl;
//                surfaceCreated(surface);
//                surfaceNode = this->getSurfaceNode(surface);
            motorsurface = new QtWaylandMotorcarSurface(surface, this, motorcar::WaylandSurface::SurfaceType::NA);

            m_surfaceMap.insert(std::pair<QWaylandSurface *, QtWaylandMotorcarSurface *>(surface, motorsurface));

        }
//            if((motorsurface->type() == motorcar::WaylandSurface::SurfaceType::CUBOID ||
//                motorsurface->type() == motorcar::WaylandSurface::SurfaceType::PORTAL)
//                 && surfaceType == motorcar::WaylandSurface::SurfaceType::TOPLEVEL){
//                std::cout << "Warning: ignoring request to remap a 3D surface to a top level surface " <<std::endl;
//            }else{
        this->scene()->windowManager()->mapSurface(motorsurface, surfaceType);
//            }





        //defaultInputDevice()->setKeyboardFocus(surface);

    }




    //m_renderScheduler.start(0);
}
开发者ID:rbarraud,项目名称:motorcar,代码行数:60,代码来源:qtwaylandmotorcarcompositor.cpp


注:本文中的QWaylandSurface::windowType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。