F3C: Version Changes
Below is the changelog, noting changes for each version of the F3C.
Very few people sit through and read this, but please at least read the latest one, if you happen to download a newer version - so you know what's changed, what's been fixed, etc.
Vesion 1, first release
- First ever release. Will there be any more?
- Basic set of components complete. Not all of them work...
- A few major bugs that need to be fixed, but they are very hard to find!
Version 1.01, second release
- Fixed Winsock class! Not by myself, but by Brian C. Becker <bcbeckerz@yahoo.com>! Thankyou!
- Added BEGIN_GUI and END_GUI so that you don't need WinMain and others... also based on a suggestion by Mr Becker <bcbeckerz@yahoo.com> - thankyou again! Please see template_simple.cpp in the documentation directory for an example of how to use these. Enjoy!
- Added CALLBACK to the implementation of the message queue in APPLICATION.H, which was causing problems with one of Borland's compilers. It was shown to me by Nicci <nicci@softhome.net>... thankyou!
Version 1.02, third release
- Fixed up the ReadLine() function of fFILESTREAM, so it works without crashing and works more efficiently than it did.
- Fixed up the WriteText() function of fFILESTREAM. It used to attempt to check and see whether you were trying to write a Unix-style endline, and replace it. Unix style endlines are simply terminated with a LF, or ASCII 10. Windows style endlines are CR+LF, or ASCII 13 and 10. The WriteText function only checked the last character - the 10 - and thus always appended a 13+13+10, which only got worse if you called the function with the same line read out of a file again.
- Added the addDoubleNull() function to bstring. This allows you to simply make a string have two nulls at the end - useful for passing lists to Windows, particularly lists of files.
- Changed any bstring function that returned a bstring to return a char* instead - that way, those functions are more compatible with everything. Sorry if it broke some code.
- Fixed the fFORM CreateWindow Function, so that it can no longer give you access violations - there was occasions where OnCreate was not NULL to start off with, and thus the code would try to invoke a function off a stray pointer - resulting in an access violation.
Version 1.03, fourth release
- Added GetNumberItems() function to fLISTBOX, so that you can calculate how many items are in a listbox. How could I not put this in?
- Tested the bstring class and the fFILESTREAM class under Linux - they both work very well! The bstring class might need a slight modification - see its documentation for information.
- Added the CGI header file - so you can write CGI programs easily! Also modified it later...
- Added a new feature to fFORM - an option for the de-constructor NOT to destroy the window... that one had me chasing my tail for a while...
- bstring class has a new function - mid2(). It replaced mid(), because mid() leaks memory! Badly! mid() still exists for backwards compatibilty, but please don't use it any more! Also, left2() and right2() make use of the new mid2() and should be used in place of the ordinary left() and right().
- fMOUSE now creates a global object of itself, called Mouse. I couldn't see a use for two object - but you can override the creation of the global object, if required.
- Edited lots of bits of documentation, to add forgotten parameters or fix typos and errors.
- Modified sections of bstring so now it should work much better (especially the tostr() functions).
- Removed the debugging statements inside the GUI controller code. Sorry about that!
- winsock.h changed it's name to f3cwinsock.h, because of conflicts with the original winsock.h that's part of the Windows API headers.
Version 1.04, fifth release
- Added OnEraseBack event to _GUIBASE, which occurs when Windows sends a WM_ERASEBKGND event to a control. Could be useful.
- REMOVED RichEdit crashing bug - it used to crash when you gave it focus. Who would think a missing "CALLBACK" would do that? Welcome to the strange, strange world of Windows programming...
- Added PassMessageQueue event to _GUIBASE so that you can retrieve any messages sent to the subclassed window. Could be quite handy.
- A few other minor changes.
Version 1.05, sixth release
- Made AddItem() of fCOMBOBOX return the index of the new item - useful when you have a sorting Combobox. Just another oversight by myself.
- Modified gui_controller_end.h so that the fCOMBOBOX events actually worked... I misspelled at #define - ie, I put #ifdef F_COMBO_H instead of F_COMBOBOX_H, which meant that that code was never included... oops...
- Added a paragraph to the documentation for fRADIOCONTROLLER. Just makes sure that you are all aware that the fRADIOCONTROLLER is controlled by the GUI controller, if included. Just another oversight...
- Added FindWhichChecked() to fRADIOCONTROLLER - enables easy checking of which one checked of a set. Just a speed hack...
- Added the ability to associate an int value with items in the combo box. Allows you to store things like indexes in arrays or pointers.
- Modified GetSelected() of fLISTVIEW to make it return -1 if nothing is selected. Can be useful, that...
- Added the MakeFilter() function to opendialog.h - this allows you to easily build a open/save dialog filter string, without hard coding one. Documentation for it is here.
- Moved the changelog (what you're reading) to this file.
- Added copyright notice and also made package GNU GPL compliant. Read more at http://www.gnu.org.
- Changed all images in documentation to PNG format (from GIF). I'll let you research why...
Version 1.06, seventh release
- Make SelectItem() function of fLISTBOX return the index of the item that it selects, or CB_ERR if it can not find a string.
- Changed bstring documentation to be more correct.
- Made some major functionality changes to fWINSOCK - now it has a new event, OnIncomingConnection. Originally it had only the OnConnection event, which I found out only occurs AFTER a connection has been established. Attempting to accept the connection from the OnConnection event got nowhere, and resulted in nothing happening. Oops!
- Created a new class: fMULTIMONITORS. This class enables enumeration of physical screens attached to the system if you have a multiple monitor support. Works only on Win98/Win2000 or better, but no harm is done by running the code on Win95/NT (just pay attention). The documentation is here.