Skip to content

Commit 13a0b8b

Browse files
author
grammarian
committed
- ListViewPrinter now requires ObjectListView
- Uses correct renderer for each cell git-svn-id: https://svn.code.sf.net/p/objectlistview/code/cs/trunk@803 0bec5ed8-b53f-49e6-9885-ce7bc93af311
1 parent 7f57a42 commit 13a0b8b

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

ListViewPrinter/ListViewPrinter.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,7 +1178,6 @@ public ListViewPrinter()
11781178
{
11791179
}
11801180

1181-
#if !WITHOUT_OBJECTLISTVIEW
11821181
/// <summary>
11831182
/// Get the nth item from the given listview, which is in virtual mode.
11841183
/// </summary>
@@ -1237,26 +1236,28 @@ protected override void PrintCell(Graphics g, ListView lv, ListViewItem lvi, int
12371236
return;
12381237
}
12391238

1239+
// Decide which renderer should be used for drawing the cell
1240+
ObjectListView listView = (ObjectListView)lv;
12401241
OLVColumn olvc = (OLVColumn)this.GetColumn(column);
1241-
BaseRenderer renderer = olvc.Renderer as BaseRenderer;
1242-
if (renderer == null)
1243-
renderer = ((ObjectListView)lv).DefaultRenderer as BaseRenderer;
1242+
OLVListItem olvItem = (OLVListItem)lvi;
1243+
BaseRenderer renderer = listView.GetCellRenderer(olvItem.RowObject, olvc) as BaseRenderer;
12441244

12451245
// We couldn't find a renderer we could use. Just use the default rendering
12461246
if (renderer == null) {
12471247
base.PrintCell(g, lv, lvi, row, column, cell);
12481248
return;
12491249
}
12501250

1251+
// Configure the renderer
12511252
renderer.IsPrinting = true;
12521253
renderer.Aspect = null;
12531254
renderer.Column = olvc;
12541255
renderer.IsItemSelected = false;
12551256
renderer.Font = this.CellFormat.Font;
12561257
renderer.TextBrush = this.CellFormat.TextBrush;
1257-
renderer.ListItem = (OLVListItem)lvi;
1258-
renderer.ListView = (ObjectListView)lv;
1259-
renderer.RowObject = ((OLVListItem)lvi).RowObject;
1258+
renderer.ListItem = olvItem;
1259+
renderer.ListView = listView;
1260+
renderer.RowObject = olvItem.RowObject;
12601261
renderer.SubItem = (OLVListSubItem)this.GetSubItem(lvi, column);
12611262
renderer.CanWrap = this.CellFormat.CanWrap;
12621263

@@ -1274,7 +1275,6 @@ protected override void PrintCell(Graphics g, ListView lv, ListViewItem lvi, int
12741275

12751276
renderer.IsPrinting = false;
12761277
}
1277-
#endif
12781278
}
12791279

12801280
/// <summary>

0 commit comments

Comments
 (0)