Have added a version which is compatible with Purebasic 5.21, including fixing the OLE drag/drop events (#OnDragItemStart and #OnDropItem).
The download can be found over at the nxSoftware site.
=============================================
23rd October 2008.
Versions for PB 4.2 and 4.3 have now been added to the nxSoftware site. The version for PB 4.3 runs on both x86 and x64 (Windows).
=============================================
12th January 2008. (Purebasic 4.1 onwards). Minor bug fix - version 3.1.3.
A problem with the #OnItemSelected and combo boxes.
Thanks to mrjiles.
The download is HERE
=============================================
2nd January 2008. (Purebasic 4.1 onwards). Minor bug fix - version 3.1.2.
A problem with the #OnItemSelected and ListView gadgets has been fixed. The problem is due to the way PB 4.2 now selects items in such gadgets.
Thanks to mrjiles.
14th October 2007. (Purebasic 4.1 onwards). Minor bug fix - version 3.1.1.
Version 3.1.1 fixes a drag / drop problem which would cause problems on machines running NT 4. Thanks to DoubleDutch.
11th October 2007. (Purebasic 4.1 onwards). Release version 3.1.
Release version 3.1 incorporates all of the 3.0.x betas + the following :
- Code supplied by DoubleDutch (my thanks) to make EasyVENT more compatible with Win 95 (boo!) 98 / ME etc.
- Adjusted the events #OnItemSelected and #OnItemSelecting when used with panel gadgets. The developer is now informed how the user attempted to select a tab (mouse or keyboard etc.)
23rd September 2007. (Purebasic 4.1 onwards).
Update - version 3.0.2
My apologies, but these rapid adjustments to the EasyVENT library are being driven by my current application; mostly adding extra functionality. Things should settle down pretty soon and for those wishing not to be 'messed around', simply wait for version 3.1 which will be a full release.
I say this because each 3.0.x beta can break existing code, although only in a minor way and depending on the underlying application itself.
I prefer to make these 'minor' upgrades rather than one great big fat one so to give developers a chance to keep up with my adjustments. Indeed I hope this is the last upgrade before version 3.1 which itself will add nothing new.
Version 3.0.2 makes the following ammendments :
- #OnPaint now fires when the application receives #WM_PAINT messages (as before) and #WM_NCPAINT messages (new for beta 3.0.2). Check the value of *sender\uMsg to determine which has caused the event to fire and, for example, if you wish not to process #WM_NCPAINT then call PerformDefaultWinProcessing() and return #EVENT_ReturnDefault.
- For tree gadgets, the events #OnItemSelected and #OnItemSelecting now informs the developer how the user attempted to select the item in question. This is communicated through the 'state' field of the *sender structure. (See the user manual for details).
- A new field has been added to the *sender structure; 'originalmessage' which is used only in #OnUnhandledwinMessage handlers in place of the state field.
- All of the ‘standard’ mouse events (#OnDblClick, #OnMouseDown, #OnMouseOver, #OnMouseUp) have been extended to cover their ‘non-client’ counterparts. That is, the events now fire if the cursor is either over the client or non-client areas of the underlying window\control. The state field of the *sender structure informs the particular event handler if it is the client or non-client area etc.
As usual the user manual is kept fully up to date.
The download link is below.
Regards.
21st September 2007. (Purebasic 4.1 onwards).
Update - version 3.0.1
Version 3.0.1 adds a new event : #OnANYevent, which does exactly what you'd imagine!
It provides a simple way of allowing a single handler to process ALL events (with one exception) for a single Window/control. Kind of like a window procedure, but of course EasyVENT handles all the translation of Win messages and notifications to events etc.
Previously, using a single handler for multiple events required multiple uses of the SetEventHandler() function.
The #OnANYevent handler is thus provided for convenience.
NOTE.
This is a rather 'specialised' event which requires careful processing. You will need to read the relevant sections in the user guide very carefully and study the demo program "OnANYevent demo.pb". This is not to be confused with the #OnUnhandledWinMessage event (which also requires careful handling)!
This event is an application wrecker if you don't use it properly!
20th September 2007. New version of EasyVENT released. (Purebasic 4.1 onwards).
Hi,
I've just completed version 3.0.0 (beta) of EasyVENT which is heaps way more versatile and powerful than earlier versions for one fact and one fact alone (but I'll come to that later).
Unfortunately, and inevitably, EasyVENT 3 is not compatible with earlier versions and thus any source code built around these earlier versions will need some cajouling and beating around the chops with an iron railing before it will behave itself! Actually, I converted all the demo programs within about 20 minutes which means that conversion could be relatively painless. (I'll soon find out though as I have a 12000 line program to convert tomorrow!)
First, for those new to EasyVENT; a quick summary :
This new version also fixes some bugs and eradicates a rather dreadful memory leak, but probably adds a whole bunch of extra bugs to track down!EasyVENT is a Purebasic library (written for Windows only) which allows developers to easily attach event handlers to windows/controls/menus etc. for a predefined set of Windows events.
The current list of events is :
#OnButtonClick
#OnChange
#OnClose
#OnCollapseExpandSelection
#OnContextmenuPopup
#OnCursorEnter
#OnCursorExit
#OnDblClick
#OnDragDrop
#OnDragItemStart
#OnDropItem
#OnEditTreeLabels
#OnErase
#OnGotFocus
#OnItemCheckboxChanging
#OnItemSelected
#OnItemSelecting
#OnKeyDown
#OnKeyPress
#OnKeyUp
#OnLinkClick
#OnLostFocus
#OnMaximize
#OnMenuItemSelect
#OnMinimize
#OnMouseDown
#OnMouseOver
#OnMouseUp
#OnMove
#OnPaint
#OnResize
#OnScroll
#OnSetCursor
#OnSizingWindow
#OnUnhandledWinMessage
So what is new then?
Well, with earlier versions of EasyVENT, passing the underlying Windows message (if any) back to the system for 'default processing' could only be done after an event handler had finished executing. Now this was a very simple and convenient arrangement, but was quite restrictive in that some situations called out for such processing to occur before the event handler began its work.
This is where EasyVENT 3 steps in. It allows the developer to decide, whilst an event handler is executing, when to call on the system to perform default processing and indeed if at all!
Experienced Windows programmers will quickly realise that this is indeed a lot more flexible; particularly where events related to the mouse and keyboard and scrolling are concerned.
The truth is also that EasyVENT 2 had had too many additions to the code and was beginning to creak and groan under the strain. It was in dire need of a rewrite!
Anyhow, the user manual has been updated and includes a section on upgrading from earlier versions of EasyVENT. The demo programs (which converted across seamlessly) will illustrate the changes in action.
The download is HERE
Expect bugs because this was a big change - even though the code looks a hell of a lot better now! Far neater, easier to follow.
Please note that I will no longer support earlier versions of EasyVENT. Use them by all means, but you're on your own there. I just don't have the time.
Regards.
Stephen.