ChangeLog

Changes for 3.6.1 - (17. feb 2003 ) - STABLE

* brutal speedup with MesaGL 4.x and above
* fixed some cosmetic bugs with Kylix3 port (transparency & scroll-down routine)
* added 'int get_font(void);' - returns current font ID

Changes for 3.6.0 - (8. feb 2003 ) - STABLE

* NOTE: this release is focused mainly to the new alternative to
the calback mechanism between the two instances of a various classes
via third common class.

* added new feature/class FGConnector - for more see at example 'connect'
* added: int GetOS(void);
enum { OSTYPE_LINUX=1, OSTYPE_MSDOS, OSTYPE_WIN32, OSTYPE_QNX };
* WIN32 - fixed procedure Snd(); Now you can hear the PC-speaker
* Numlock keypad now works properly under LINUX
* added FGRect * DrawBuffer::ftriangle(int x1, int y1, int x2, int y2, int x3, int y3);
* added FGRect * Window::WindowFillTriangle(int x1, int y1, int x2, int y2, int x3, int y3, int col=-1);
* examples are now completely revisited and compiles properly on every platform
* fixed crash when Window vertical size is <16 pixels

Changes for 3.5.3 - (23. dec 2002 ) - STABLE

* fixed some possible binary incompatibilities between C++ compilers (enum -> int)
* XSetClipRect under Solaris is again here ( Solaris 8, release 2 seems OK, release 1 will crash)

Changes for 3.5.2 - (1. now 2002 ) - STABLE

* some small fixes


Changes for 3.5.1 - (2. oct 2002 ) - STABLE

* fixed SVGALIB branch (core dump within Chips&Tech chipset detection)
* fixed DrawBuffer::set_clip_rect() - added test for out-of-range values
* fixed align problems with Borland C++ and library (namely class FGUpDown)
* fixed some issues with Kylix3 port and draw_line(), text_out() etc.
* fixed global set_clip_rect() in X11 drivers (LINUX&SOLARIS)

Changes for 3.5.0 - (24. sep 2002 ) - STABLE

* official full support for Borland Kylix3 C++ compiler - static libraries on now
* added full support for superb FREETYPE2 truetype font library
   you can add UNICODE & UTF8 strings with your app now - add '-lfreetype' line
   to your projects or disable default TTF support in 'config.mak' file
   before the building of the library. See 'ttf' example for more details.
* added new class 'FontProperty' to correspond ttf support
   class FontProperty
   {
        friend class Window;
        void *_font;
        int algorithm;
     public:
        FontProperty(char *name, int size);
        ~FontProperty();
        void Bold(int value);
        void Underline(int value);
        void Italic(int value);
        void Solid(void) { algorithm = 0; }
        void Shaded(void) { algorithm = 1; }
        void Blended(void) { algorithm = 2; } // not implemented yet
        int Valid(void) { return !!_font; }
   };
* added new methods:
   void Window::WindowText(int x, int y, char *s, FontProperty * f, int color, int bk);
   void Window::WindowTextUTF8(int x, int y, char *s, FontProperty * f, int color, int bk);
   void Window::WindowTextUnicode(int x, int y, const unsigned short *s, FontProperty * f, int color, int  bk);
* added static public variable 'int App::ttf_support' to get the proper
   state of TTF support at runtime.
* fixed 'ExpandColor' MACRO - syntax error
* on systems with ImageMagick installed, you get also the PNG files
   after the PRINTSCREEN key hitted now. (screen snapshot function)
* All the library files (*.h and *.a files) are now moved from
   '/usr/local' to '/usr' directory (include and lib subdirs).
* the screen at the application shutdown is cleared with the special efect :-)


Changes for 3.4.2 - (12. sep 2002 ) - STABLE

* Solaris 8:
  - fixed fatal bug (self recursion in driver code)
  - fixed solaris.sh & solaris.mak files
  - fixed unitialized variables (coredump) in the driver init code
* fixed bug with '-ps2'| '-dac' command line parameters
* fixed handler calling FGUpDown class
* X11 window now shows the name of the executable
* added Chips&Technologies chipset detection
* added button 'HOME' into the FileDialog class
* fixed doubled line in RAD generated code

Changes for 3.4.1 - (11. jul 2002 ) - STABLE

* improved X11 driver
* new experimental QNX4 driver (gmake -f makefile.qnx2)
* added Window::ShowModal();

Changes for 3.4.0 - (8. jun 2002 ) - STABLE

* much improved X11 driver (8bit colors, MIT SHMEM - 50% speedup)
* succesfully ported to Solaris 8 (intel platform)

Changes for 3.3.5 - ( 29. april 2002 ) - STABLE

* update to Borland C++ 6.0 (makefiles, source etc.)
* fixed DGA support (it doesn't run because bad startup detecting)
* added a new class FGUpDown - these one add increment/decrement by
   an optional step feature to the EditBox (int and double version of one)
FGUpDown(EditBox *ptr, double step);
    see example 'UpDown'
* added a new example for MesaGL - iso surface (thanx to Ivan Kasanicky)
* improvements to WIN32 target - added #pragma link for automated linking
   fglXX.lib under Borland C++

Changes for 3.3.4 - ( 12. april 2002 ) - STABLE

* fixed charwidth() functions return value for fixed fonts
* fixed bad underscore for accelerator key with the EditBox class
* added TwoStateButton    *Window::AddTwoStateButton(int xs,int ys,
   int w, int h, char *nm, int key=0, int * variable=0, ControlCall=0);
* fixed some ther cosmetics issues
* added 'on demand' loading for some FBDEV drivers
* modified MOVEEVENT mouse event - members 'wnd' and 'accel' contains
   current WINDOW and CONTROL pointers now

Changes for 3.3.3 - ( 28. marec 2002 ) - STABLE

* new email: nezmar@atlas.sk
* fixed weak color allocations with 8bit colors
* fixed the Bitmapped version of the PushButton class
* fixed PageTabs and WindowRelocate() issues
* fixed using the WESCAPE window flag and ESCAPE key
* even more improvements to GPM mouse support
* added some initial code for the future HW accelerator support

Changes for 3.3.2 - ( 7. marec 2002 ) - DEVEL

* added const char * Window::GetCurrentTabPage(void)
* TAB key now switch between TABPAGES in the window
* fixed GPM mouse server params when started one
* fixed compiling with newest NASM 0.98.23
* fixed some small mistakes with TabPages implementation
* fixed bad path when installing 'file2asm' utility

Changes for 3.3.1 - ( 11. februar 2002 ) - DEVEL

* fixed linux.sh building script for MesaGL 4.x
* fixed click on active TabPage
* added ColorScheme.notebook_active
* fixed MOVEEVENT in case that no any window exist at startup
* added makefile and support for MesaGL 4.x & Borland C++ 5
* updated examples for MesaGL & Borland C++ 5

Changes for 3.3.0 - ( 27. januar 2002 ) - DEVEL

* added Window::DisableControls()
* added Window::EnableControls()
* added WNOTEBOOK window flag
* added Window::AddTabPage(char *name)
* added Window::DeleteTabPage(char *name)
* added Window::SetTabPage(char *name)
* added Window::AddTabPage(char *name)
* added support for TabPages to the RAD utility
* added example tabpages
* fixed FGClock() when time change
* fixed missing reference to 'atexit()' fnc
* fixed compiling/makefile for the MesaGL 4.x

Changes for 3.2.3 - ( 26. december 2001 ) - STABLE

* final update to the slovak version of OpenGUI User's Guide
* added SIS chipset support
* fixed WIN32 compiling (just typo)
* final cursor improvement
* the cosmetic improvements to the PointButton controls


Changes for 3.2.2 - ( 20. november 2001 ) - STABLE

i* added class GLSurface - OpenGL support in window - see 'example/mesa3d/gtrain.mak'
* class FGMouseCursor - see 'example/cursor'
* added CursorLoad(FGMouseCursor *) for user defined cursors
* fixed get_ppop() bad return value
* MesaGL cleanup (for 3.4/4.0)
* new mouse cursors for some situations
* dynamic *.so library has been moved back to '/usr/lib' (standard ldconfig path)

Changes for 3.2.1 - ( 6. november 2001 ) - STABLE

* fixed CTRL+TAB window switching
* added FGClock() calibration on startup
* fixed bug in transparent blitting with some small rectangles (below 8 pixels at width)
* fixed XOR, AND and OR functions with draw_line() & X11 driver
* added DBLCLICKLEFTEVENT, DBLCLICKRIGHTEVENT - as mouse doubleclick events
* fixed 'ldconfig' issues under LINUX
* renamed library 'fgl_mesa' to 'FGMesa'
* added support form MesaGL 4.0 - makefile.gl4 - refinement & 16bit colors are supported now - works with weird colors - bad shading with 3Dnow ???
* NOTE! I must disable 3Dnow support in MesaGL compile time. Later I was
disabled MMX support in Mesa and I get best FPS!!! Crazy!

Changes for 3.2.0 - ( 18. october 2001 ) - STABLE

* new makefile infrastructure - library building is much more improved now
* new STANDARD PS/2 MOUSE builtin driver - cmdline param '-ps2'
* added support for MMX and 16 & 32bit colors for Watcom C++ under MSDOS (watcom.bat)
* added JPEG & PNG support for Watcom C++
* fixed compiling with Watcom C++ 11.0c (see http://www.openwatcom.org )
* added 'void DisableCtrlBreak(void);'
* App::SetTimerProc(fnc,timeslice);
* fixed TDFX driver & HW clipping
* fixed Window::WindowScrollRight()
* fixed NumLock issues under Linux
* added portable 'unsigned long FGClock(void)' - returns numbers of miliseconds from the start of program

Changes for 3.1.99 (23.9.2001)

* temporary disabled HW accel on WIN32
* new, long awaited X Windows driver - runs without ROOT privilegies!!!
* updated TGA file format support - 8bit color, Gray, 16,24 and 32bit colors include compressed
* new common configuration for LINUX targets
* new official RHIDE homepage (NEW)

Changes for 3.1.5 (6.9.2001) - Wow, we have a new PHORUM now!

* NOTE: for REDHAT 7.1 users:

1. the 'nasm' assembler from the distribution is broken. Try
find 'nasm-0.98.08.tar.gz' or 'nams98bf.zip' packages on the net.
Both these works fine for OpenGUI lib.

2. the 'ld' utility is able to link OpenGUI apps as dynamic
only - compiler switch '-static' don't work!

*** UPDATED OPENGUI DOCS - SLOVAK VERSION ONLY, ON NOW***
* oron patch for libtool
* making fglmesa.[ch] BPP dependence free
* support for MesaGL via an additional libs 'fgl_mesa'
* automation of Mesa3D support in compile time
* improved makefiles for LINUX
* added callibration feature to the penmount driver
* added mouse emulation with the keyboard keys - see FG_MOUSEKEYS into the
config.h file - all the keys are easy to the change - defaults are ARROWS+CTRL
* fixed DGA acceleration when video device are not supports one
* added full TGA file format support
* added switch APP_LOCALDIR to class App - in conjuction with APP_CFG this switch
put *.rc files into local directory instead to the HOMEDIR (a'la MSDOS version way)
* fixed Window::RemoveControl() function from crash under some circumstances
* fixed SetRepeatDelay() bug - aka BUTTONHOLDEVEN
* changed: MSDOS makefiles '-gstabs+' to '-gcoff' switch is used now

Changes for 3.1.4 (11.6.2001):

* added basic support for PENMOUNT touch pad - for more see at the 'config.h' file
* fixed warning with libpng and adaptive_filter settings
* fixed memory leak/corruption wit FileDialog class & more than a 256 files in a dir
* fixed DGA & DIRECTX drivers and stupid banked mode settings

Changes for 3.1.3 (28.4.2001):

* fixed FGList::CNode copy constructor - some random crashes
* fixed linux driver issues with SVGALIB & cards with banked modes only
* fixed saving of the window size (aka WUSELAST flag)

Changes for 3.1.2:

* fixed 'Label' control redrawing after the mouse click
* fixed lost close() on the /dev/ttyx with linux
* fixed gprintf() and text_out() bug with the proportional fonts
* fixed bug with proportional fonts convert on startup (corrupted last microline)
* fixed DrawBuffer::text() clipping (with the long strings)
* improvements - when the TextEditor object is in the READ_ONLY mode,
   then FILE->OPEN cmd is disabled
* changed MSDOS makefiles '-g' to '-gstabs+' switch is used now

Changes for 3.1.1:

* fixed text strings with codes >128
* improved FGList & FGString classes to better handling with the Borland C++ 5
* some improvements to the class TextEditor
* alpha version of the Linux INPUTDEVICE driver

Changes for 3.1.0:

* added proportional fonts
* fixed palette bug with BitmapSave()
* fixed makefile issues with Suse Linux (OSTYPE variable)
* fixed PRTRSC keycode with linux kernel >= 2.4.0
* fixed qnx mouse cursor range
* added TextEditor::AppendLine(char *);
* fixed minor bug with ~Window() and object counter
* rename and added external font registering:
   int register_font_fix(unsigned char *source, int width, int height, int count, int offset);
   int register_font_file(const char *source);
* these new fonts are named as (you can set one via set_font() calling):
   FONTSYS - MS Sans serif bold 16
   FONTSYSMEDIUM - MS Sans serif 16
   FONTSYSLIGHT - MS Sans serif 13
* include some basic proportional fonts as compiled-in
* replace fixed font with proportionals with the some few Controls
* fixed nVidia paging and Watcom C++ (crazy!)

Changes for 3.0.4:

  1. critical bug fixes in the RAD utility - no more crashes on 'Save' or multi-
    ple forms, please upgrade to the package 'OpenGUI-3.0.4-sourcer.tgz'
  2. minor fixes for class TextEditor
  3. re-enabled void Window::HideAll(void);
  4. some internal recode
  5. fixed crash bug with alpha chanel and the PNG files
  6. update to the new libpng 1.0.9 binaries for the Borland and DJGPP compilers
    you need to download one from OpenGUI site as file 'OpenGUI-3.0.4-libs.tgz'
    and 'OpenGUI-3.0.4-include.tgz'

I added support for PNG & JPG files. These features don't work with WATCOM C++ compiler (because there isn't support for 16/32bit modes ). To support this I added precompiled versions of libpng, libz and libjpeg for DJGPP & Borland C++ 5.5 . Sources of ones are available too. These libs are included in the most of linux distributions as know as libpng, libz and libjpeg. You must have installed these include headers (aka develop versions). To disable JPG and PNG support you mus comment-in defines FG_PNG and FG_JPEG in the file 'config.h'. Now I started with docs ;- ).
Happy christmas!

There are news/changes from last beta5 version:

* added DrawBitmap::stretch(int new_width, int new_height)
* added DrawBitmap::stretch(float ratio_x, float ratio_y)
* added simple image viewer example: 'zgv'
* renamed DrawBuffer::pixel() to DrawBuffer::putpixel()
* migrated Window::WindowGetPixel() to DrawBuffer::getpixel()
* removed dependency between logical & physical width of the scan line
* improved mouse cursor for page flipping modes
* fixed flipping for 16/32 bit modes

I wrote some example of using jpg - 'fgv' - simple image viewer (for all supported formats) with image stretching if needed (4KB cpp source :-) ). It simply slideshow files from 'file.lst' file. Under LINUX, when 'file.lst' don't exist, one is created from ALL images in current directory and subdirectories if any.

3.0-beta5 - Bug fixes, stable DIRECTX port (Borland BCB5 only), working Double/Triple Buffering (see examples), see changelog for all.

3.0-beta4 - Bug fixes, firts version ot a working Win32 code and TAB key for switching between EditBoxes.

3.0-beta3 - Bug fixes, new Win32 code and added new RTEMS platform code thanx to Rosimildo da Silva.

3.0-beta1 - This is a preview version of the new OOP API inspired by Borland VCL. You can derive a new classes from original App & Window class. Also initial support for DirectX 5 are added (still don't work but compiles with C++Builder 5). More info you can get in changelog or newapi example. There are link for download the latest snapshot of OpenGUI 3.0 beta1.

2.99 - This version fixes some bugs and is addressed as very stable. I recomend you to upgrade from any previous version of OpenGUI. Only DGA2 support is under heavy development and will be updated as soon as. I uploaded MSDOS version of libpng for future use with OpenGUI too. I can do massive update of the docs (Slovak language) and then do translation of one to the english language. After this I release version 3.0 as stable and very well documented library.

2.98.1- bug fixes and RedHat 7.0 updates, revert to the old "Sourcer v2.91". Upgrade is urgent if you have any problems or new RH installation.

2.98 - this is a long waited version with a new much sophisticated FGListBox class that will replace a legacy ListBox class. It's more friendly to use and more powered than the old ListBox. The old FileDialog class is rewrited for even easy use. MKDIR button has been added to one. Another new container class is FGList class, inspired by the STL library list template. For this reason you must use gcc version 2.91 and above. The FGString is very light implementation of the standard string class. Another big changes is a new path for library header files. You must use #include <fastgl/fastgl.h> , not <fastgl.h> like before. For other changes and bugfixes see at the 'changes.txt' file.

The next release (2.99) would have a new callback mechanism (together with current callback methods) as know as SIGNAL-SLOT dogma. For more info read this document about callbacks. Version 3.00 would have updated english docs. Uff. After this done, 3.x branch will continue with better DGA2 and DirectX support, reimplemnting RAD, and more...