t_bar
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:
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 |
defdx
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
also: