コード例 #1
0
SCH_REFERENCE::SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibPart,
                              SCH_SHEET_PATH& aSheetPath )
{
    wxASSERT( aComponent != NULL && aLibPart != NULL );

    m_RootCmp   = aComponent;
    m_Entry     = aLibPart;
    m_Unit      = aComponent->GetUnitSelection( &aSheetPath );
    m_SheetPath = aSheetPath;
    m_IsNew     = false;
    m_Flag      = 0;
    m_TimeStamp = aComponent->GetTimeStamp();
    m_CmpPos    = aComponent->GetPosition();
    m_SheetNum  = 0;

    if( aComponent->GetRef( &aSheetPath ).IsEmpty() )
        aComponent->SetRef( &aSheetPath, wxT( "DefRef?" ) );

    wxString ref = aComponent->GetRef( &aSheetPath );
    SetRef( ref );

    m_NumRef = -1;

    if( aComponent->GetField( VALUE )->GetText().IsEmpty() )
        aComponent->GetField( VALUE )->SetText( wxT( "~" ) );

    m_Value = aComponent->GetField( VALUE );
}
コード例 #2
0
status_t
BFileInterface::HandleMessage(int32 message,
                              const void *data,
                              size_t size)
{
    CALLED();

    status_t rv;

    switch(message) {
    case FILEINTERFACE_SET_REF:
    {
        const fileinterface_set_ref_request *request =
            (const fileinterface_set_ref_request*) data;
        fileinterface_set_ref_reply reply;
        entry_ref ref(request->device, request->directory,
                      request->name);
        reply.duration = request->duration;

        rv = SetRef(ref, request->create, &reply.duration);

        request->SendReply(rv, &reply, sizeof(reply));
        return B_OK;
    }
    case FILEINTERFACE_GET_REF:
    {
        const fileinterface_get_ref_request *request =
            (const fileinterface_get_ref_request*) data;
        fileinterface_get_ref_reply reply;
        entry_ref resultRef;
        rv = GetRef(&resultRef, reply.mimetype);
        if (rv == B_OK) {
            reply.device = resultRef.device;
            reply.directory = resultRef.directory;
            strcpy(reply.name, resultRef.name);
        }
        request->SendReply(rv, &reply, sizeof(reply));
        return B_OK;
    }
    case FILEINTERFACE_SNIFF_REF:
    {
        const fileinterface_sniff_ref_request *request =
            (const fileinterface_sniff_ref_request*) data;
        fileinterface_sniff_ref_reply reply;

        entry_ref ref(request->device, request->directory,
                      request->name);

        rv = SniffRef(ref, reply.mimetype, &reply.capability);
        request->SendReply(rv, &reply, sizeof(reply));

        return B_OK;
    }
    default:
        return B_ERROR;
    }
    return B_ERROR;
}
コード例 #3
0
ファイル: DataBlock.cpp プロジェクト: mjssw/lne
void DataBlock::ObjectDestroy(void)
{
    if(pool_) {
        size_ = 0;
        SetRef(1);
        pool_->Free(this);
    } else {
        this->~DataBlock();
        free(this);
    }
}
コード例 #4
0
ファイル: SeqPrefWin.cpp プロジェクト: dtbinh/Sequitur
status_t _OwqRow::SetPreferences(const BMessage* prefs)
{
	delete mRef;
	mRef = 0;
	entry_ref	ref;
	if( prefs ) {
		bool		b;
		const char*	str;
		if( prefs->FindBool( "on", &b ) == B_OK ) mOn = b;
		if( prefs->FindString( "name", &str ) == B_OK ) mName = str;
		prefs->FindRef( "ref", &ref );
		if( prefs->FindBool( "skip", &b ) == B_OK ) mSkip = b;
	}

	SetField( new BStringField( (mOn) ? "Yes" : "No" ), 0 );
	SetField( new BStringField( mName.String() ), 1 );
	SetRef( ref );
	return B_OK;
}