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


C++ WVList::deleteContents方法代码示例

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


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

示例1: DescriptionPart

DescriptionPaint::DescriptionPaint( WBRWindow * prnt, const WRect & r,
                                    Symbol * sym )
                    : _parent( prnt )
                    , _rect( r )
                    , _current( -1 )
//--------------------------------------------------------------------
{
    int             i;
    WVList          desc;
    Description *   entry;
    WString         buf;
    const char *    uDefSymName;
    int             x = r.x();
    int             w;
    int             h;

    _parts = new WCPtrOrderedVector<DescriptionPart>;

    sym->description( desc );

    for( i = 0; i < desc.count(); i += 1 ) {
        entry = (Description *) desc[i];
        if( entry->symbol() ) {
            if( sym->isEqual( entry->symbol() ) ) {

                // don't hilight the symbol we're describing
                buf.concat( entry->name() );
                delete entry->symbol();

            } else {

                if( buf != "" ) { // flush buf
                    w = prnt->getTextExtentX( buf );
                    h = prnt->getTextExtentY( buf );
                    _parts->append( new DescriptionPart( buf.gets(), NULL,
                                        WRect(x,r.y(),w, h ) ) );

                    buf="";
                    x+=w;
                }

                uDefSymName = entry->name();
                w = prnt->getTextExtentX( uDefSymName );
                h = prnt->getTextExtentY( uDefSymName );
                _parts->append( new DescriptionPart( uDefSymName,
                                                     entry->symbol(),
                                                     WRect(x,r.y(),w, h ) ) );
                x+=w;
            }
        } else {
            buf.concat( entry->name() );
        }
    }

    desc.deleteContents();


    if( buf != "" ) { // flush buf
        w = prnt->getTextExtentX( buf );
        h = prnt->getTextExtentY( buf );
        _parts->append( new DescriptionPart( buf, NULL,
                                WRect(x,r.y(),w, h ) ) );

        buf="";
        x+=w;
    }

    _rect.w( x - abs( _rect.x() ) );
}
开发者ID:ArmstrongJ,项目名称:open-watcom-v2,代码行数:69,代码来源:descpnt.cpp

示例2: REQUIRE

ClassType * StrucViewItem::flattenTypeDesc( Symbol * sym, WString & desc )
//------------------------------------------------------------------------
{
    ClassType *     classType = NULL;
    char *          str = NULL;
    WVList          typeParts;
    Description *   entry;
    int             i;

    REQUIRE( sym != NULL, "strucview::flatten passed null symbol!" );
    dr_sym_type stype = sym->symtype();
    REQUIRE( stype != DR_SYM_NOT_SYM,"strucview::flatten bad set");

    switch( stype ) {
    case DR_SYM_VARIABLE:
        // need to find out the type of the data member
        ((VariableSym *) sym)->loadTypeInfo( typeParts );
        for( i = 0; i < typeParts.count(); i++ ) {
            entry = (Description *) typeParts[i];
            if( entry->_nameGoesHere ) {
                desc.concat( entry->u.text );
            } else {
                if( !sym->isEqual( entry->u.sym ) ){
                    if( classType == NULL ) {
                        classType = flattenTypeDesc( entry->u.sym, desc );
                    } else {
                        desc.concat( entry->u.sym->name() );
                    }
                }
            }
        }
        break;

    case DR_SYM_TYPEDEF:
    case DR_SYM_ENUM:
        sym->description( typeParts );
        for( i = 0; i < typeParts.count(); i++ ) {
            entry = (Description *) typeParts[ i ];
            if( entry->_isUserDefined ) {
                if( entry->u.sym->symtype() == DR_SYM_CLASS && classType == NULL ) {
                    classType = (ClassType *) entry->u.sym;
                }
            }
        }
        desc.concat( sym->name() );
        break;

    case DR_SYM_CLASS:
        if( _parent->isSeen( sym ) ) {
            desc.concat( sym->name() );
            classType = NULL;
        } else {
            classType = (ClassType *) sym;
            desc.concat( classType->name() );
        }
        break;

    default: {}
    }

    for( i=0; i < typeParts.count(); i++ ) {
        entry = (Description *) typeParts[ i ];
        if( entry->_isUserDefined && entry->u.sym != classType &&
            entry->u.sym != sym ) {
            delete entry->u.sym;
        }
    }
    typeParts.deleteContents();

    return classType;
}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:71,代码来源:strcview.cpp


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