static bool ModGetLine( a_window *wnd, int row, int piece, wnd_line_piece *line ) { mod_handle handle; mod_window *mod = WndMod( wnd ); modinfo *info; if( row >= ModListNumRows( ModList( mod ) ) ) return( FALSE ); handle = ModListMod( ModList( mod ), row ); line->tabstop = FALSE; switch( piece ) { case PIECE_SOURCE: info = &mod->info[ row ]; info->source = ModHasSourceInfo( handle ); info->open = OpenGadget( wnd, line, handle, info->source ); return( TRUE ); case PIECE_MODULE: line->indent = MaxGadgetLength; line->tabstop = TRUE; ModListName( ModList( mod ), row, TxtBuff ); line->text = TxtBuff; return( TRUE ); case PIECE_IMAGE: line->indent = mod->max_modlen + MaxGadgetLength; line->text = ModImageName( handle ); return( TRUE ); default: return( FALSE ); } }
static bool BrkGetLine( a_window *wnd, int row, int piece, wnd_line_piece *line ) { brkp *bp; break_window *wndbreak; bool curr; wndbreak = WndBreak( wnd ); bp = BrkGetBP( row ); if( bp == NULL ) return( false ); line->text = TxtBuff; line->tabstop = false; switch( piece ) { #ifdef OPENER_GADGET case PIECE_OPENER: { mod_handle mh; line->text = LIT_DUI( Empty ); if( bp->size == 0 ) { DeAliasAddrMod( bp->loc.addr, &mh ); bp->status.b.source_open = OpenGadget( wnd, line, mh, bp->source_line != NULL ); } return( true ); } #endif case PIECE_ACTIVE: #ifdef OPENER_GADGET line->indent = MaxGadgetLength + WndAvgCharX( wnd ); #endif curr = AddrComp( bp->loc.addr, Context.execution ) == 0; FileBreakGadget( wnd, line, curr, bp ); return( true ); case PIECE_ADDR: line->indent = wndbreak->addr_indent; line->extent = WND_MAX_EXTEND; line->tabstop = true; GetBPAddr( bp, TxtBuff ); return( true ); case PIECE_SOURCE: line->indent = wndbreak->source_indent; line->tabstop = false; line->use_prev_attr = true; GetBPText( bp, TxtBuff ); return( true ); default: return( false ); } }