1 | // |
---|
2 | // AIVariableHeightOutlineView.h |
---|
3 | // AIUtilities.framework |
---|
4 | // |
---|
5 | // Created by Evan Schoenberg on 11/25/04. |
---|
6 | // Copyright (c) 2004-2005 The Adium Team. All rights reserved. |
---|
7 | // |
---|
8 | |
---|
9 | #import <AIUtilities/AIAlternatingRowOutlineView.h> |
---|
10 | |
---|
11 | /*! |
---|
12 | * @class AIVariableHeightOutlineView |
---|
13 | * @brief An outlineView which supports variable heights on a per-row basis. |
---|
14 | * |
---|
15 | * This <tt>AIAlternatingRowOutlineView</tt> subclass allows each row to have a different height as determined by the data source. Note that the delegate <b>must</b> implement the method(s) described in <tt>AIVariableHeightOutlineViewDataSource</tt>. |
---|
16 | */ |
---|
17 | @interface AIVariableHeightOutlineView : AIAlternatingRowOutlineView { |
---|
18 | int totalHeight; |
---|
19 | |
---|
20 | BOOL drawHighlightOnlyWhenMain; |
---|
21 | BOOL drawsSelectedRowHighlight; |
---|
22 | |
---|
23 | BOOL suppressExpandCollapseRequests; |
---|
24 | } |
---|
25 | |
---|
26 | /*! |
---|
27 | * @brief Returns the total height needed to display all rows of the outline view |
---|
28 | * |
---|
29 | * Returns the total height needed to display all rows of the outline view |
---|
30 | * @return The total required height |
---|
31 | */ |
---|
32 | - (int)totalHeight; |
---|
33 | |
---|
34 | /*! |
---|
35 | * @brief Set if the selection highlight should only be drawn when the outlineView is the main (active) view. |
---|
36 | * |
---|
37 | * Set to YES if the selection highlight should only be drawn when the outlineView is the main (active) view. The default value is NO. |
---|
38 | * @param inFlag YES if the highlight should only be drawn when main. |
---|
39 | */ |
---|
40 | - (void)setDrawHighlightOnlyWhenMain:(BOOL)inFlag; |
---|
41 | |
---|
42 | /*! |
---|
43 | * @brief Return if the highlight is only drawn when the outlineView is the main view. |
---|
44 | * |
---|
45 | * Return if the highlight is only drawn when the outlineView is the main view. |
---|
46 | * @return YES if the highlight is only be drawn when main. |
---|
47 | */ |
---|
48 | - (BOOL)drawHighlightOnlyWhenMain; |
---|
49 | |
---|
50 | /*! |
---|
51 | * @brief Set if the selection highlight should be drawn at all. |
---|
52 | * |
---|
53 | * Set to YES if the selection highlight should be drawn; no if it should be suppressed. The default value is YES. |
---|
54 | * @param inFlag YES if the highlight be drawn; NO if it should not. |
---|
55 | */ |
---|
56 | - (void)setDrawsSelectedRowHighlight:(BOOL)inFlag; |
---|
57 | |
---|
58 | /*! |
---|
59 | * @brief Cell corresponding to table column. |
---|
60 | * |
---|
61 | * Mostly useful for subclassing; by default, this is simply [tableColumn dataCell] |
---|
62 | * @return NSCell object corresponding to the given table column. |
---|
63 | */ |
---|
64 | - (id)cellForTableColumn:(NSTableColumn *)tableColumn item:(id)item; |
---|
65 | |
---|
66 | /*! |
---|
67 | * @brief Should the given row reset the alternating |
---|
68 | * |
---|
69 | * @param row The row to be considered |
---|
70 | * @return YES if the row should reset alternating |
---|
71 | */ |
---|
72 | - (BOOL)shouldResetAlternating:(int)row; |
---|
73 | |
---|
74 | |
---|
75 | @end |
---|
76 | |
---|
77 | @interface AIVariableHeightOutlineView (AIVariableHeightOutlineViewAndSubclasses) |
---|
78 | - (void)resetRowHeightCache; |
---|
79 | - (void)updateRowHeightCache; |
---|
80 | @end |
---|
81 | |
---|
82 | @interface NSObject (AIVariableHeightGridSupport) |
---|
83 | - (BOOL)drawGridBehindCell; |
---|
84 | @end |
---|
85 | |
---|
86 | @interface NSCell (UndocumentedHighlightDrawing) |
---|
87 | - (void)_drawHighlightWithFrame:(NSRect)cellFrame inView:(NSView *)controlView; |
---|
88 | @end |
---|
89 | |
---|