extern void GlobMenuItem( a_window *wnd, unsigned id, int row, int piece ) { glob_window *glob = WndGlob( wnd ); address addr; char buff[TXT_LEN]; piece=piece; addr = NameListAddr( NameList( glob ), row ); switch( id ) { case MENU_INITIALIZE: if( IS_NIL_ADDR( addr ) ) { WndMenuGrayAll( wnd ); } else { WndMenuEnableAll( wnd ); } WndMenuEnable( wnd, MENU_GLOB_D2_ONLY, TRUE ); WndMenuCheck( wnd, MENU_GLOB_D2_ONLY, glob->d2_only ); break; case MENU_GLOB_INSPECT_MEMORY: WndAddrInspect( addr ); break; case MENU_GLOB_WATCH: NameListName( NameList( glob ), row, buff, SN_QUALIFIED ); WndVarInspect( buff ); break; case MENU_GLOB_D2_ONLY: glob->d2_only = !glob->d2_only; GlobInit( wnd ); break; default: break; } }
static bool FuncGetLine( a_window *wnd, int row, int piece, wnd_line_piece *line ) { address addr; func_window *func = WndFunc( wnd ); if( row >= NameListNumRows( NameList( func ) ) ) return( FALSE ); addr = NameListAddr( NameList( func ), row ); switch( piece ) { case PIECE_BREAK: FileBreakGadget( wnd, line, FALSE, FindBreak( addr ) ); return( TRUE ); case PIECE_NAME: line->indent = MaxGadgetLength; line->text = TxtBuff; line->extent = WND_MAX_EXTEND; FuncGetSourceName( wnd, row ); return( TRUE ); case PIECE_DEMANGLED: if( NameListName( NameList( func ), row, TxtBuff, SN_DEMANGLED ) == 0 ) { return( FALSE ); } line->text = TxtBuff; line->use_prev_attr = TRUE; line->indent = MaxGadgetLength + func->max_name + 2 * WndAvgCharX( wnd ); return( TRUE ); default: return( FALSE ); } }
extern void SymCompMatches( name_list *list, char *match, unsigned *pfirst, unsigned *plast ) { unsigned first,last; unsigned len; len = strlen( match ); for( first = 0; first < NameListNumRows( list ); ++first ) { NameListName( list, first, TxtBuff, SN_SOURCE ); if( strnicmp( match, TxtBuff, len ) == 0 ) break; } for( last = first; last < NameListNumRows( list ); ++last ) { NameListName( list, last, TxtBuff, SN_SOURCE ); if( strnicmp( match, TxtBuff, len ) != 0 ) break; } *pfirst = first; *plast = last; }
bool GlobGetLine( a_window *wnd, int row, int piece, wnd_line_piece *line ) { glob_window *glob = WndGlob( wnd ); if( row >= NameListNumRows( NameList( glob ) ) ) return( false ); switch( piece ) { case PIECE_NAME: NameListName( NameList( glob ), row, TxtBuff, SN_QUALIFIED ); line->text = TxtBuff; return( true ); default: return( false ); } }
static void FuncGetSourceName( a_window *wnd, int row ) { func_window *func = WndFunc( wnd ); NameListName( NameList( func ), row, TxtBuff, SN_QUALIFIED ); }