int print_ioports(struct devinfo_rman *rman, void *arg) { QListView *lbox = (QListView *)arg; if (strcmp(rman->dm_desc, "I/O ports")==0) { (void)new QListViewItem(lbox, lbox->lastItem(), rman->dm_desc); devinfo_foreach_rman_resource(rman, print_resource, arg); } else if (strcmp(rman->dm_desc, "I/O memory addresses")==0) { (void)new QListViewItem(lbox, lbox->lastItem(), rman->dm_desc); devinfo_foreach_rman_resource(rman, print_resource, arg); } return(0); }
int print_resource(struct devinfo_res *res, void *arg) { struct devinfo_dev *dev; struct devinfo_rman *rman; int hexmode; QListView *lbox; lbox = (QListView *)arg; QString s, tmp; rman = devinfo_handle_to_rman(res->dr_rman); hexmode = (rman->dm_size > 100) || (rman->dm_size == 0); tmp.sprintf(hexmode ? "0x%lx" : "%lu", res->dr_start); s += tmp; if (res->dr_size > 1) { tmp.sprintf(hexmode ? "-0x%lx" : "-%lu", res->dr_start + res->dr_size - 1); s += tmp; } dev = devinfo_handle_to_device(res->dr_device); if ((dev != NULL) && (dev->dd_name[0] != 0)) { tmp.sprintf(" (%s)", dev->dd_name); } else { tmp.sprintf(" ----"); } s += tmp; (void)new QListViewItem(lbox, lbox->lastItem(), s); return(0); }
QListViewItem * ListViewDnd::itemAt( QPoint pos ) { QListView * src = (QListView *) this->src; int headerHeight = (int)(src->header()->height()); pos.ry() -= headerHeight; QListViewItem * result = src->itemAt( pos ); if ( result && ( pos.ry() < (src->itemPos(result) + result->height()/2) ) ) result = result->itemAbove(); // Wind back if has parent, and we're in flat mode while ( result && result->parent() && (dMode & Flat) ) result = result->parent(); // Wind back if has parent, and we're in flat mode while ( result && !result->isVisible() && result->parent() ) result = result->parent(); if ( !result && src->firstChild() && (pos.y() > src->itemRect(src->firstChild()).bottom()) ) { result = src->lastItem(); if ( !result->isVisible() ) // Handle special case where last item is actually hidden result = result->itemAbove(); } return result; }
int print_dma(struct devinfo_rman *rman, void *arg) { QListView *lbox = (QListView *)arg; if (strcmp(rman->dm_desc, "DMA request lines")==0) { (void)new QListViewItem(lbox, lbox->lastItem(), rman->dm_desc); devinfo_foreach_rman_resource(rman, print_resource, arg); } return(0); }