405 { |
400 { |
406 __ETEXT_WATCH(DETACH_POS_LENGTH); |
401 __ETEXT_WATCH(DETACH_POS_LENGTH); |
407 |
402 |
408 __TEST_INVARIANT; |
403 __TEST_INVARIANT; |
409 TInt documentLength = DocumentLength(); |
404 TInt documentLength = DocumentLength(); |
410 if (aPos < 0 || aPos > documentLength) |
|
411 { |
|
412 OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_DETACHFROMSTOREL, "ECharPosBeyondDocument" ); |
|
413 } |
|
414 __ASSERT_ALWAYS(aPos >= 0 && aPos <= documentLength,Panic(ECharPosBeyondDocument)); |
405 __ASSERT_ALWAYS(aPos >= 0 && aPos <= documentLength,Panic(ECharPosBeyondDocument)); |
415 if (aLength < 0) |
|
416 { |
|
417 OstTrace0( TRACE_FATAL, CRICHTEXT_DETACHFROMSTOREL, "ECopyToStreamNegativeLength" ); |
|
418 } |
|
419 __ASSERT_ALWAYS(aLength >= 0,Panic(ECopyToStreamNegativeLength)); |
406 __ASSERT_ALWAYS(aLength >= 0,Panic(ECopyToStreamNegativeLength)); |
420 if (aPos + aLength > documentLength) |
|
421 { |
|
422 OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_DETACHFROMSTOREL, "ECharPosBeyondDocument" ); |
|
423 } |
|
424 __ASSERT_ALWAYS(aPos + aLength <= documentLength,Panic(ECharPosBeyondDocument)); |
407 __ASSERT_ALWAYS(aPos + aLength <= documentLength,Panic(ECharPosBeyondDocument)); |
425 |
408 |
426 if (aLength > 0 && IndexPresent()) |
409 if (aLength > 0 && IndexPresent()) |
427 iIndex->DetachFromStoreL(aDegree,aPos,aLength); |
410 iIndex->DetachFromStoreL(aDegree,aPos,aLength); |
428 |
411 |
451 @param aPictureFactory The picture factory. |
434 @param aPictureFactory The picture factory. |
452 @param aStoreResolver The store resolver. This determines which file store |
435 @param aStoreResolver The store resolver. This determines which file store |
453 the picture is stored in. */ |
436 the picture is stored in. */ |
454 { |
437 { |
455 __TEST_INVARIANT; |
438 __TEST_INVARIANT; |
456 if (!aPictureFactory && aStoreResolver) |
|
457 { |
|
458 OstTrace0( TRACE_FATAL, CRICHTEXT_SETPICTUREFACTORY, "EInvalidPictureFactorySettings" ); |
|
459 } |
|
460 __ASSERT_ALWAYS(!(!aPictureFactory && aStoreResolver),Panic(EInvalidPictureFactorySettings)); |
439 __ASSERT_ALWAYS(!(!aPictureFactory && aStoreResolver),Panic(EInvalidPictureFactorySettings)); |
461 |
440 |
462 iPictureFactory=aPictureFactory; |
441 iPictureFactory=aPictureFactory; |
463 iStoreResolver=aStoreResolver; |
442 iStoreResolver=aStoreResolver; |
464 } |
443 } |
471 @param aPos The document position. Must be valid. |
450 @param aPos The document position. Must be valid. |
472 @return The picture header located at document position aPos, or a default |
451 @return The picture header located at document position aPos, or a default |
473 picture header. */ |
452 picture header. */ |
474 { |
453 { |
475 __TEST_INVARIANT; |
454 __TEST_INVARIANT; |
476 if (aPos<0 || aPos>DocumentLength()) |
|
477 { |
|
478 OstTrace0( TRACE_FATAL, CRICHTEXT_PICTUREHEADER, "ECharPosBeyondDocument" ); |
|
479 } |
|
480 __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); |
455 __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); |
481 |
456 |
482 return (IndexPresent()) |
457 return (IndexPresent()) |
483 ? iIndex->PictureHeader(aPos) |
458 ? iIndex->PictureHeader(aPos) |
484 : TPictureHeader(); |
459 : TPictureHeader(); |
493 @param aPos The document position of the picture character. Must be valid |
468 @param aPos The document position of the picture character. Must be valid |
494 or a panic occurs. |
469 or a panic occurs. |
495 @see CRichText::PictureHandleL() */ |
470 @see CRichText::PictureHandleL() */ |
496 { |
471 { |
497 __TEST_INVARIANT; |
472 __TEST_INVARIANT; |
498 if (aPos<0 || aPos>DocumentLength()) |
|
499 { |
|
500 OstTrace0( TRACE_FATAL, CRICHTEXT_DROPPICTUREOWNERSHIP, "ECharPosBeyondDocument" ); |
|
501 } |
|
502 __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); |
473 __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); |
503 |
474 |
504 TPictureHeader* p = IndexPresent()? iIndex->PictureHeaderPtr(aPos) : 0; |
475 TPictureHeader* p = IndexPresent()? iIndex->PictureHeaderPtr(aPos) : 0; |
505 if (!p) |
476 if (!p) |
506 return; |
477 return; |