|laziness, impatience, and hubris|
Hints on compiling Win32::GUI::Headerby tomsell (Acolyte)
|on Jan 06, 2013 at 12:41 UTC||Need Help??|
tomsell has asked for the
wisdom of the Perl Monks concerning the following question:
Still pursuing a solution to my ListView problem, I'm having mild forms of success by using a Win32::GUI::Header placed on top of the default header created by ListView->InsertColumn.
Alas, all dedicated Win32::GUI::Header events (BeginTrack, EndTrack, Track, DividerDblClick, ItemClick and ItemDblClick) fail to work as the XS code is never reached. The root cause of this seems to be the negative API event numbers starting at -300 (HDN_FIRST).
I'm using Strawberry Perl 5.16 and the MingW commctrl.h header file defines this as:
I found by debugging the XS that the cases in the switch statement
never match. Replacing e.g. HDN_BEGINTRACK with the numeric "-326" makes it work. Now, I can brute-force things by inserting
into Header.xs and live with the compiler warnings. But that's just ugly.
Another workaround would be using the standard events "onMouseDown", "onMouseUp" etc. and compute the relevant information. But that seems ugly, too.
I'm not a C person and therefore wonder if there's a way to tell gcc to compile "0U-300U" into something that ends up being effectively -300 in the object code.
Any hints on how to deal with this? Should I file a bug report with the maintainers?