Describes layout of the columns in the table and properties of its optional bar.
typedef struct t_bar { // Descriptor of columns in table window
// These variables must be filled before table window is created.
int nbar; // Number of columns
int visible; // Bar visible
wchar_t *name[NBAR]; // Column names (may be NULL)
wchar_t *expl[NBAR]; // Explanations of columns
int mode[NBAR]; // Combination of bits BAR_xxx
int defdx[NBAR]; // Default widths of columns, chars
// These variables are initialized by window creation function.
int dx[NBAR]; // Actual widths of columns, pixels
int captured; // One of CAPT_xxx
int active; // Info about where mouse was captured
int scrollvx; // X scrolling speed
int scrollvy; // Y scrolling speed
int prevx; // Previous X mouse coordinate
int prevy; // Previous Y mouse coordinate
} t_bar;
Members:
nbar
Number of
the columns displayed in the table, 1..NBAR
visible
Whether the
bar is hidden (visible=0) or displayed on the top of the table
name
Array of pointers to
the names of the columns. If dollar sign ('$') is present in the name, it
will be replaced by the space in the bar and interpreted as end-of-text
marker in the Sort by menu. For example, the name of the Size column in
the Modules window is "Size$
(Decimal)".
The column is titled "Size
(Decimal)",
and sort menu item is "Size"
expl
Array of pointers to
the help texts displayed in the tooltip when user moves mouse pointer
over the corresponding bar segment
mode
A
combination of flags BAR_xxx that determine properties of bar
segment and column. First group of flags specifies what happens when
bar segment is pressed, select only one:
Flags in the second group can be freely conbined:
The last group gives hints to the speech engine, select only one:
defdx
BAR_FLAT | (default) Segment is flat and can't be pressed |
BAR_BUTTON | Segment is a button. When pressed and released, it sends WM_USER_BAR to the table function |
BAR_SORT | Segment is a button. When pressed and released, it sorts data according to the index of the bar segment. See SORTFUNC for details |
Flags in the second group can be freely conbined:
BAR_DISABLED | When set, disables bar segment |
BAR_NORESIZE | Specifies that column is not resizable and always has width defdx[] |
BAR_SHIFTSEL | Shifts background 1/2 character to the left for all characters displayed in the column. Used in hexadecimal dumps and Registers window to make selection better visible |
BAR_WIDEFONT | Doubles the width of character cells in the column. Used in UNICODE dump to avoid truncation of Kanji, Chinese and Hangul ideographs |
BAR_SEP | Tells OllyDbg to intreprete vertical bars ('|') as separators. For example, hexadecimal dumps place separators after each fourth byte |
BAR_ARROWS | Adds left arrow (currently this is a combination '<<') at the right side of the segment if this segment is shifted to the left. Used in Registers window |
The last group gives hints to the speech engine, select only one:
BAR_SPSTD | (default) Default speech mode. OllyDbg makes some translations, like '/' → 'slash' |
BAR_SPASM | Disassembler-oriented speech mode, some mnemonics and operands will be substituted. For example, INC will be read as INCREMENT |
BAR_SPEXPR | Expression-oriented speech, similar to BAR_SPSTD, but some translation are different, like '>' → 'greater than' |
BAR_SPEXACT | Text will be passed to speech engine "as is" |
BAR_SPELL | Column contains sequence of characters, spell symbol by symbol |
BAR_SPHEX | Column contains hexadecimal data, spell symbol by symbol |
BAR_SPNONE | Column is excluded from speech |
Array of default column widths in characters. For tables of type TABLE_PROPWID, width of each column is proportional to the corresponding defdx[].
The remaining parameters are used internally by the OllyDbg, don't change them!
Example:
See here.
See also: