Programming Guide: Drawing

# Programming Guide

## Drawing

- Define the view type (icon or frame) that embedded parts should have. By convention, most embedded parts should have frame view type.

- Create facets for all of your visible embedded frames. Add facets as frames become visible, remove facets when frames are no longer visible.

- When a frame embedded in your part is the active frame, you need to clip whatever content the active frame border obscures, and you need to clip the active frame border where your content obscures it. Implement your part's AdjustBorderShape method for this purpose. For the OS/2 and Windows platforms, you do not need to clip the active frame border.

- Support selection of your embedded frames. Highlight a selected embedded frame by drawing the selected frame border (and resize handles, if you support resizing of embedded frames) on the embedded frame's frame shape, not its used shape.

- When a range selection includes an embedded frame, give the embedded part's facet the highlight style the embedded part should adopt to be consistent with your highlighting model.

- When your part is displayed with a thumbnail view type, you are responsible for integrating miniature representations of any visible embedded parts into the thumbnail.

Depending on your part's content model and features, you may want to add support for these capabilities:

- If you support overlapping of embedded frames and intrinsic content, maintain the proper clip shapes for all of your embedded frames' facets. Maintain a z-ordered list of your embedded facets, and use it to account for overlaps with other embedded frames and with your part's content elements.

- If you wrap your content to the used shape of your embedded parts, implement your part's UsedShapeChanged method, so that embedded parts can notify you when that used shape changes.

- If you create offscreen canvases, implement your part's CanvasUpdated method so that you can transfer your embedded parts' asynchronous drawing to your parent canvas.

- If you support split-frame views of embedded parts, provide multiple facets for your embedded frames.

[ Top | Previous | Next | Contents | Index | Documentation Homepage ]