@class TSDLayoutController, NSHashTable, TSPObjectContext, NSArray, TSKDocumentRoot, TSKAccessController, NSSet, TSUPointerKeyDictionary, NSMutableArray, TSKChangeNotifier, TSDInteractiveCanvasController, TSUColor; @protocol TSDCanvasDelegate; @interface TSDCanvas : NSObject { TSDInteractiveCanvasController *mCanvasController; NSArray *mAllRepsOrdered; TSUPointerKeyDictionary *mRepsByLayout; double mContentsScale; BOOL mWideGamut; struct { unsigned char layout : 1; unsigned char reps : 1; unsigned char visibleBounds : 1; unsigned char layers : 1; } mInvalidFlags; BOOL mShouldUpdateLayersDuringLayout; BOOL mInLayout; NSArray *mPreviouslyVisibleLayouts; NSMutableArray *mBlocksToPerform; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } mBlocksToPerformLock; NSHashTable *mCanvasLayoutObservers; BOOL mIgnoringClickThrough; } @property (nonatomic) double i_viewScaleForAudioObjectsInNonInteractiveCanvas; @property (readonly, nonatomic) BOOL isLayoutComplete; @property (weak, nonatomic) id delegate; @property (readonly, nonatomic) TSKDocumentRoot *documentRoot; @property (readonly, nonatomic) TSPObjectContext *objectContext; @property (readonly, nonatomic) TSKChangeNotifier *changeNotifier; @property (readonly, nonatomic) TSKAccessController *accessController; @property (readonly, nonatomic) TSDInteractiveCanvasController *canvasController; @property (readonly, nonatomic) BOOL supportsAdaptiveLayout; @property (nonatomic) BOOL isAnchoredAtRight; @property (nonatomic) BOOL enableInstructionalText; @property (nonatomic) BOOL allowsFontSubpixelQuantization; @property (nonatomic) BOOL suppressesShadowsAndReflections; @property (nonatomic) BOOL suppressesShapeText; @property (readonly, nonatomic) double contentsScale; @property (readonly, nonatomic) BOOL canvasIsWideGamut; @property (copy, nonatomic) TSUColor *backgroundColor; @property (nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } contentInset; @property (copy, nonatomic) NSArray *infosToDisplay; @property (readonly, nonatomic) NSArray *topLevelReps; @property (readonly, nonatomic) NSSet *allReps; @property (readonly, nonatomic) NSArray *allRepsOrdered; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } unscaledRectOfLayouts; @property (readonly, nonatomic) TSDLayoutController *layoutController; @property (readonly, nonatomic) BOOL isTemporaryForLayout; @property (readonly, nonatomic) BOOL isCanvasInteractive; @property (nonatomic) struct CGSize { double width; double height; } unscaledSize; @property (nonatomic) double viewScale; @property (nonatomic) BOOL shouldRenderInvisibleContentForNonInteractiveCanvas; @property (nonatomic) BOOL shouldClampGroupsToParentsByScaling; + (void)p_recursivelyAddOrderedChildrenOfRep:(id)a0 toArray:(id)a1; - (id)init; - (void)dealloc; - (void)teardown; - (void).cxx_destruct; - (BOOL)isPrinting; - (struct CGPoint { double x0; double x1; })convertBoundsToUnscaledPoint:(struct CGPoint { double x0; double x1; })a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })convertBoundsToUnscaledRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })convertUnscaledToBoundsRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (void)invalidateLayers; - (void)invalidateReps; - (void)invalidateVisibleBounds; - (BOOL)shouldShowTextOverflowGlyphs; - (BOOL)spellCheckingSupported; - (BOOL)spellCheckingSuppressed; - (struct CGImage { } *)i_image; - (void)i_updateInfosInLayoutController; - (void)p_removeAllReps; - (void)addBitmapsToRenderingQualityInfo:(id)a0 inContext:(struct CGContext { } *)a1; - (struct CGSize { double x0; double x1; })convertBoundsToUnscaledSize:(struct CGSize { double x0; double x1; })a0; - (struct CGPoint { double x0; double x1; })convertUnscaledToBoundsPoint:(struct CGPoint { double x0; double x1; })a0; - (struct CGSize { double x0; double x1; })convertUnscaledToBoundsSize:(struct CGSize { double x0; double x1; })a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })i_approximateScaledFrameOfEditingMenuAtPoint:(struct CGPoint { double x0; double x1; })a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })i_clipRectForCreatingRepsFromLayouts; - (void)i_drawBackgroundInContext:(struct CGContext { } *)a0; - (void)i_drawBackgroundInContext:(struct CGContext { } *)a0 bounds:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1; - (BOOL)i_needsLayout; - (void)i_registerRep:(id)a0; - (void)i_setCanvasController:(id)a0; - (void)i_setCanvasIsWideGamut:(BOOL)a0; - (void)i_setContentsScale:(double)a0; - (void)i_setInfosToDisplay:(id)a0 updatingLayoutController:(BOOL)a1; - (void)i_unregisterRep:(id)a0; - (id)initForTemporaryLayout; - (BOOL)isDrawingIntoPDF; - (void)layoutInvalidated; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })p_bounds; - (void)p_layoutWithReadLock; - (BOOL)p_updateRepsFromLayouts; - (void)recreateAllLayoutsAndReps; - (id)repForLayout:(id)a0; - (BOOL)shouldSuppressBackgrounds; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })visibleUnscaledRectForClippingReps; - (BOOL)textLayoutMustIncludeAdornments; - (BOOL)isRenderingForKPF; - (void)nonInteractiveLayoutIfNeeded; - (BOOL)shouldShowInstructionalTextForLayout:(id)a0; - (BOOL)wantsEditingLayoutsForOffscreenInfos; - (BOOL)shouldShowTextCommentHighlights; - (BOOL)shouldShowComments; - (id)initWithLayoutControllerClass:(Class)a0 delegate:(id)a1; - (Class)rootLayoutClass; - (void)i_registerCanvasLayoutObserver:(id)a0; - (struct CGContext { } *)i_createContextToDrawImageInScaledRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 withTargetIntegralSize:(struct CGSize { double x0; double x1; })a1 distortedToMatch:(BOOL)a2 returningBounds:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } *)a3 integralBounds:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } *)a4; - (void)i_drawRepsInContext:(struct CGContext { } *)a0 passingTest:(id /* block */)a1; - (void)i_drawRepsInContext:(struct CGContext { } *)a0 passingTest:(id /* block */)a1 distort:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a2; - (struct CGImage { } *)i_imageInScaledRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 keepingChildrenPassingTest:(id /* block */)a1; - (struct CGImage { } *)i_imageInScaledRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 withTargetIntegralSize:(struct CGSize { double x0; double x1; })a1 distortedToMatch:(BOOL)a2 keepingChildrenPassingTest:(id /* block */)a3; - (void)i_layoutIfNeeded; - (void)i_layoutIfNeededUpdatingLayerTree; - (struct CGImage { } *)i_newImageInContext:(struct CGContext { } *)a0 bounds:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 integralBounds:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2 distortedToMatch:(BOOL)a3 keepingChildrenPassingTest:(id /* block */)a4; - (void)i_performBlockWhileIgnoringClickThrough:(id /* block */)a0; - (BOOL)i_shouldIgnoreClickThrough; - (void)i_unregisterCanvasLayoutObserver:(id)a0; - (void)orderRepsForLayout:(id)a0; - (BOOL)p_canvasShouldAlwaysUpdateLayers; - (void)performBlockAfterLayoutIfNecessary:(id /* block */)a0; @end