Misc fixes:
- cache text metrics for the font we're using
- improved item hit detection
- more debugging output
- implement LVM_SETICONSPACING
- lots of bugs squashed
Add WM_ERASEBKGND handler as in Windows.
Be slightly smarter whether invalidate background or not.
Always treat wParam as INT to not lose signed values.
- get rid of the static data member
- pass the infoPtr around instead of the hwnd
- fix indentatin/style a bit to make it consistent with the rest of
the file.
- support string sent in by address, rather then index
- add FIXMEs for multiple image lists
- protect agains inexistent buttons
- call up to the DefWindowProc when erasing bkgnd when appropriate
- pass the infoPtr around instead of the hwnd
- use W-functions instead of A-functions
- more checks in case of failures
- make indentation and style consistent throughout the file
- Handle some cases of CCS_TOP, CCS_BOTTOM, and CCS_NOPARENTALIGN.
- Handle values returned from the RBN_CHILDSIZE notification.
- Implement RBBS_CHILDEDGE.
- Fix some logic errors in REBAR_AdjustBands, and problems with CCS_VERT.
- Fix nButtonHeight so that it is not zero in some cases
- Support TBSTYLE_TRANSPARENT.
- Fix handling in WM_ERASEBKGND so that the default erase occurs
between notifies.
- Fix WM_NCCREATE processing to issue proper WM_STYLECHANGING (via
SetWindowLong) and document the issues.
- Implemented NM_CUSTOMDRAW notifications for the ITEMPREPAINT and
ITEMPOSTPAINT only. (Used by IE4 - go figure.)
- Invalidate window rectangles after certain RB_ messages like the
native. Fixed some painting problems.
- Added UpdateWindow call in _MoveChildWindows to fix other painting
problems.
- Set the Caption Font as the default font for all bands.
FillRect and BF_MIDDLE on _FLAT toolbars.)
- Issue FIXMEs for unsupported styles.
- If the "hidden" state has changed then recalc the buttons.
- Support TBSTYLE_CUSTOMERASE (used by IE4) ans issue some of the
necessary NM_CUSTOMDRAW notifies.
- Pass the WM_ERASEBKGND to parent if the toolbar is "transparent".
- Invalidate the area 1 bigger than the button rect on a WM_MOUSELEAVE
so that the edge is "erased" by the parent.
- Support the PGN_CALCSIZE notify since a toolbar can be a child of the
Pager control.
- Allow WM_WINDOWPOSCHANGING when the control is size 0 to set initial
size.
- Combine multiple SetWindowPos calls in same processing line and make
the flags like native.
- Redo WM_NCCALCSIZE to match native.
- Since Pager is a "transparent" control (except for its own buttons),
the WM_ERASEBKGND needs to be passed to the parent. Also do the window
offset like the native control does.
message.
- Organize WM_NOTIFY processing in preparation for Unicode
- Implement TBN_GETDISPINFO and I_IMAGECALLBACK for bitmaps.
- Implement drawing of separator for TBSTYLE_DROPDOWN similar to native.
- Change drawing of buttons to support TBSTYLE_LIST and make match
native pixel layout (with and without bitmaps).
- Change TOOLBAR_MeasureString to measure with DrawText like native.
This eliminates extra space due to prefix char ("&").
- Speed up TOOLBAR_CalcStrings by doing the HDC and FONT selection once.
- Change calc of buttons to match drawing for TBSTYLE_LIST and
separators.
height (fixes overlap of image and text in IE4).
- Handle return codes from TBN_DROPDOWN (allows a "dropdown" to be
treated like a regular button).
- Implement TBN_BEGINDRAG and TBN_ENDDRAG in WM_LBUTTON{DOWN|UP} (not
necessary but done by native).
- Implement NM_RELEASEDCAPTURE and NM_CLICK.
- Correct implementation of WM_SETREDRAW to be closer to native.
- Do more implementation of RBS_AUTOSIZE in the WM_SIZE processor.
- Implement RBBS_VARIABLEHEIGHT. Used by IE4.
- Do more testing in WM_SIZE to handle strange cases like native.
styles WS_VISIBLE and CCS_TOP.
- Implement messages WM_NCHITTEST, WM_STYLECHANGED, RB_MOVEBAND,
RB_MINIMIZEBAND.
- Improve preformance by removing calls to GetWindowLong for GWL_STYLE
(by saving state and handling WM_STYLECHANGED).
- Cleanup and remove dead and test code.
notify formats.
- Move the drawing of the band backgrounds and band separators to the
WM_ERASEBKGND processing just the way the native controls do.
- Implement WM_SETREDRAW.
matches native.
- major redesign of band layout, now comes a lot closer to native for
the test programs.
- support RBS_VARHEIGHT for both on and off.
- better debug info, and performance improvement