New release
OpenGUI 5.5.14 - stable
(23. february 2007)
Changes:
NOTE: This version IS NOT binary compatible
with previous version!
* bump to tinyxml 2.4.3
* fixed fbmode 1600x1200-8bit 60hz was fixed because od
some instabilities on Matrox MGA 550 cards
* much improved mouse driver (especially warping)
* new mouse driver for generic linux 2.6.x /dev/mice (try
'-mice' parameter)
* support for the case when OpenGUI was
compiled&linked with 16bit colors mode and X Server runs in 32bit
mode
* fixed bad modal window behavior
* fixed PRTRSC & CTRL+F12 keypress codes on linux 2.6.X
* reenabled: right click on unfocused window emits
GETFOCUS & RIGTHCLICK events
* fixed some false valgrind issues
* changed signature: FGDialog::ShowYesNo(const char*
str1="Yes", int key1='y', const char* str2="No", int key2='n' )
* added FGMatrix::double get_scale()
* added FGMatrix& FGMatrix::scale( double s)
New release
OpenGUI 5.5.8 - stable
(6. february 2006)
Changes:
- fix for gcc 4.1.0 compiling
- new mouse acceleration code
- Installation with su now possible - $USER chaged to $UID
- fixed non-virtual dtor for FGConnector()
- fix for crash in mapRect()
- fix for map(FGPointArray)
- fix for bad truetype2 ;-(
- critical fix for crash on
deleted window
- fix: explicit idcb reset
- new ttf cache
- updated to latest tinyxml library (ver. 2.4.2)
New release
OpenGUI 5.5.1 - stable
(12. may 2005)
NOTE:
The library was succesfully ported to 64bit platform - AMD x86_64
(Fedora core 3)
Changes:
- added RIGHT,LEFT and BACKSPACE keys to FGFileDialog
- added FGEditBox::OctalMode()
- upgrade to latest tinyxml (2.3.4)
- added Borland CBX projects
New release
OpenGUI 5.5.0 - stable
(25. february 2005)
NOTE:
The biggest change is COMPLETELY new build system. It is based
on BASH and MAKE power. See this file
before installation.
Changes:
- build system
- full CYGWIN support
- revisited compiling under Solaris 8 & 10
- fixed alpha blending with 16bit modes
- revisited and fixed examples
- much fastr buil on Windows
- some big internal source reorganization
- pane.h -> fgpane.h
- base.h -> fgbase.h
New release
OpenGUI 5.2.0 - stable
(9. february 2005)
NOTE:
The biggest new feature is FGX - dynamic GUI via XML file (aka XUI file format). See at the documentatin in modules/fgx and example named 'fgx'.
Changes:
- FGX
- added some new ColorScheme members
- fixed FGWindow::ShowModal() infinite loop
- changed vertiacal size of menuitem in puldown menu (+2
pixels)
- many other small changes
New release
OpenGUI 5.1.0 - stable
(16. december 2004)
NOTE:
There is one big change: class Config was moved to the separate library called 'tinycfg'. More information is provided by documentation about class Config. If you get linker error about like: 'Config' not found, please add 'tinycfg' library to your project (aka -ltinycfg parameter). The side effect is the new config file layout (XML). The old format will be automatically coverted to the new amd old one will be saved with *.orig suffix.
Changes:
* added basic XML support * added 'domain' to all config methods: 'WriteInt(char* name, int value, char* domain=0)' for more info see at Config documentation. * fixed an ancient bug with FGLinuxDriver (core dump) * some code optimalization (weak, regparm -O2 -fno-exceptions) was disabled - some newer gcc (3.4.x) has problems with ones.
New release
OpenGUI 5.0.0 - stable
(29. october 2004)
Hello developers,
Here is a long avaited release 5 of the OpenGUI and it is reasonable stable. The changelog is very big and documentation is still one step behind. There are some highlights news:
- new built-in infrastructure for various touchscreens
(adding the new device is very easy)
<>library contains from now built-in support for XML (via
TinyXML
library).
This includes new format for INI files, PANE and GUI
serialization in the near future.
- There are some new
usefull FGWindow options
- WBACK for 'stay allways on background' (the Window)
- WTOP for 'stay allways on top' (the Window)
- WUSESELECTEDCONTROL - after this you can use the arrows
keys to
move SELECTED button, ENTER = activate button. FGMenuWindow uses this
automatically.
- added USER_DATA pointer (of type (void *)) to constructor
of FGWindow and FGControls - see docs.
- new windowing core.
Changes:
- you may not delete any instance of FGListBox directly (it's
deleted automatically from now)
- the height of menu item in pulldown menus grown about 2
pixels.
New release
OpenGUI 4.9.4 - stable
(30. may 2004)
* added new class FGColorPicker for better color picking and working with RGB or HSV/HLS color models. * fixed bug with FGColor::SetHLS() * added FGColor::Opposite() for contrast color to one * added classses FG2Color, FG3Color, FG4Color & FGRelatedColor for intuitive work with colors (find Contrast color to the one etc.) * FGSlider no more call CallBack function from constructor * fixed bug with multiple call Window::RunModal() * added default constructor FGColor::FGColor() * fixed bug with FGText drawing * added EDitBox:SetRange()
4.9.3 -------------------------------------------------------------------------- * fixed bug in FGRect::FGRect(FGPoint a, FGPoint b); * fixed bug in FGPointArray::IsEmpty(); * added FGBitmap::JpegSave(char* filename); * fixed bug when linux console keyboard driver was buffered keys * FGBitmap revisited * added int FGWindow::GetNumberOfTabPages(void); * added FGDialig::FGDialog(unsigned ink, unsigned paper, char* title, char* format, ...); * remove FGBitmap::Get/SetOriginalName(); * added FGBitmap::FGBitmap() * added FGBitmap::LoadImage() * added FGBitmap::SaveImage() * fixed 16bit colors with FGColor class
4.9.4 -------------------------------------------------------------------------- * fixed bugs with FGRect & FGMatrix * added FGCircle * documentation changes * fixed installation script for Kylix3
New release
OpenGUI 4.9.1 - devel
(19. march 2004)
* updated documentation for FGMatrix, FGRect, FGPoint, FGRect, FGColor * added new class FGColor for powerfull color management with 140 predefined colors see example fgcolor for more details * the classes FGRadioButton* has been slightly redesigned * fixed corruption of the input buffer in edit mode & FGUpDown controls * added FGButtonGroup*::ChangeItem(int *) * fixed FGText a FGImage removing and font changing * Added new event - TABSWITCHEVENT - for Tabage switch handling * added new virtual void FGWindow::OnTabSwitch(const char *) * added new virtual void FGAppw::OnTabSwitch(const char *) * added FGPushButton::AddBitmaps(FGDrawBuffer *pushed, FGDrawBuffer* disabled)
New release
OpenGUI 4.9.0 - experimental !!!
(1. march 2004)
* all classes are with prexix FG* on now (DrawBuffer -> FGDrawBuffer). * added classes FGPoint, FGPointArray (inspired by QT) * enhnanced existing class FGRect * FGDrawBuffer::save_state(), restore_state(). all polygon functions are using FGPointArray instead (int, int [][2]). but there are some macros to hide this behaviour. * all FGDrawBuffer by parameters overloaded methods like box(x,y,w.h,ink) are now all-in-one. * polygon functions uses FGPointArray from now * class GuiEvent was renamed to FGEvent * some ´by parameters´ overloaded methods was removed (class FGWindow) * many other small changes * update doxygen config * updated win32.cpp a linkeyb.cpp for namespace fgl * char* -> const char* * int paper=-1 -> unsigned paper=UNDEFINED_COLOR * new FGInternalState (compound some global library variables) * _GTRANSP was renamed to _GCOLORKEY * added _GTRASPARENT for alpha blending * default color_key was changed from 0xffffffff to 0x12345678
New release OpenGUI 4.3.7
(18. feb 2004)
* added class FGDialog * added: bool FileDialog::TestForOverwrite(void) * fixed ShowModal() * fixed CScheme & EditBox visual * changed size of text buffer for editbox (from 128 to 252 chars) * added '-pipe' gcc option to the makefile * changed name of some ColorShceme members changed/fixed CScheme members edit_back -> edit_background_active edit_bord1 -> edit_border edit fore -> edit_foreground edit_disable -> edit_disable_fore edit_bord2 -> edit_background
New release OpenGUI 4.3.6
(10. feb 2004)
* Window::WindowDrawPolygon(int n, int p[][2], int col) fixed passing color parameter * fixed Panel::draw() - no more drawing empty strings * fixed opened EditBox on TabPage switching * added backtrace list on unhandled signal occuring * fixed crash on non-exist file in CfgStore constructor * added bool CfgStore::IsValidStream(void);
New release OpenGUI 4.3.5
(22. jan 2004)
* Window::WindowDrawPolygon(int n, int p[][2], int col) fixed passing color parameter * fixed Panel::draw() - no more drawing empty strings * fixed opened EditBox on TabPage switching * added backtrace list on unhandled signal occuring * fixed crash on non-exist file in CfgStore constructor * added bool CfgStore::IsValidStream(void);
Updated BOOKs directory
(20. jan 2004)
New release OpenGUI 4.3.4
(25. nov 2003)
* global functions test_mmx(), set_mmx() and reset_mmx() are members of class App from now * fonctions for access IO ports (outpb() & family) works OK with Intel C++ now * added static methods in the class App for asynchronous testing of modifier keys pressing static bool App::IsShift(void); static bool App::IsCtrl(void); static bool App::IsAlt(void); * added FileDialog::BuildFullPathname(char* buffer); * added FileDialog::BuildRelativePathname(char* buffer); * fixed bug when FileDialog changes working directory in some cases * fixed bug with RadioGroups and not setting its int variable * added const char* GuiEvent::GetKeySymbolName(unsigned int code)
New release OpenGUI 4.3.3
(12. nov 2003)
* reimplemented class FileDialog * class CfgStore is now optimized for size * some compiling issues with Intel C++ and Borland C++ * fixed install script for solaris
New release OpenGUI 4.3.2
(8. nov 2003)
* finalized migration to fgl namespace * fixed examples * minor changes to classes RadioGroupH and RadioGroupV * some code cleanup
New release OpenGUI 4.3.1
(3. nov 2003)
* migration to __fastcall declspec (C++ ABI to last OpenGUI is broken - recompile all projects) * documentation improvemets * Added class RadioGroupV - see example 'radiogroup' * Added class RadioGroupH - see example 'radiogroup' * added class FGText - dynamic text strings * added void BaseGUI::SetUserData(void*) * added void* BaseGUI::GetUserData(void)
New release OpenGUI 4.3.0
(28. oct 2003)
* updated RAD utility for better compatibility of generated code * projects update * class Config is now standalone in files cfg.[cpp h] * added new data storage classes - cfgstore.cpp * added the biggest feature - 'pane' - see example 'pane' * added Config::Sort() methods to store config file as sorted * Controls now accept SetFont() call * Window::WindowPanel() is deprecated - use Window::AddPanel() instead from now is panel a regular Control object - i.e. you don't need repaint one explicitly * using VESA VGA framebuffer now emit error properly - use native one * fixed bug with XWindow keyboard and death keys * some changes to makefiles - by example you can type 'make alls' for building static libraries only. * fixed listbox::SetColors() - bad argument order * added T& listbox::item(int) for compatibility with older versions of OpenGUI
New release OpenGUI 4.2.9
(6. oct 2003)
* fixed crash on WindowIconize() call * added support for Intel C++ 7.0 (edit linux.mak file, replace the string 'gcc' with 'icc' ) * revisited Solaris 2.8 compiling - works OK * namespace support was introduced - edit base.h file, line 33 to support this feature - namespace code is 'fgl' * class FGTimer has new parent: class FGConnector, for better system interaction * added CBuilderX project files (yes, it realy exists and compile OpenGUI library!)
COMING SOON - FGLayout (for autoformat of Controls)
New release OpenGUI 4.2.2
(22 sep 2003)
* the mouse wheel is now supported on X11 and WIN32 platforms now some visual Controls are sensitive to the wheel, e.g. EditBox(), FGUpDown() or Slider() * change compile options '-O3' to '-O2' for LINUX because of gcc 3.3 miscompiling * fixed class FGTabPage copy constructor, Window::AddTabPage() now works properly * added method: int Config::ReadBool(char* name, bool& value); * added method: void Config::WriteBool(char* name, bool value); * added new event type: MOUSEWHEELEVENT GuiEvent::GetButtons() call for this event returns -1 or 1 for apropriate directions * added new event type: CLICKMIDDLEEVENT * added virtual void Window::OnMiddleButton(int x, int y) * added virtual void Window::ControlOnWheel(int x, int y, int delta) * added virtual void Control::WheelSpin(int delta) * added CheckButton *Window::AddCheckButton(int xs, int ys, char *nm, int key, bool * variable, ControlCall f, int flag) * added CheckButton *MenuWindow::AddCheckButton(char *nm, int key, bool * variable, ControlCall f, int flag)
New release OpenGUI 4.2.1
(1 sep 2003)
* fixed ClipLine() code freeze * added TIFF image file support (via libtiff) - configure via 'config.mak' file * added middle mouse button support via CLICKMIDDLEEVENT, DBLCLICKMIDDLEEVENT * added Bitmap::rotate(ENUM_ROTATE_DIRECTION) method * added copy constructor to class DrawBuffer * added copy constructor to class Bitmap * you can get the screenshot under Windows by pressing F12 now
New release OpenGUI 4.2.0 -
Visual C++ support
(10 july 2003)
* M$ Visual C++ 6 support added * MenuWindow constructors no more requires 'name' parameter * completely new Win32 & DirectX code * added support for windowed mode for the Windows platform - good for debug you can enable by command line parameter '-win' NOTE: you must have use the same color depth for OpenGUI app and your windows desktop - i.e. compile with BPP16 for 16bit colors, BPP32 for true colors etc. * fixed - FileDialog closes when you click to a file as before * MenuWindow automation positioning works as before :-)
New release OpenGUI 4.1.2
- TTF support for all!
(22 june 2003)
* added widget/class FontDialog to font choose by user - see the new example 'fontsel' * added function: int FGFontManager::register_font_ttf(char *filename, int points, int count, int offset, char *desc); it registers truetype font (if TTF support is enabled) with specified size as standard system fonts * Kylix3 port will work properly with the tool VALGRIND (superb memory leak/corrupt detector) * added 'char *fontname' parameter to the all font prepare functions * fixed some minor bugs related to font management * fixed Solaris 8 compiling - it runs OK * added function: char * FGFontManeger::GetFontName(int font_id); * the max number of system fonts is increased to 256
New release OpenGUI 4.1.1!
(15 june 2003)
* fixed clipping with DrawBuffer::putpixel() * added RTTI compiling switch to Kylix3 and BCB6 projects for better ABI compatibility * added APP_ENABLEEFECTS for application constructor (enables some visual efects on now only screen clear at exit) * added two new virtual callbacks to class App: virtual bool OnIdle(void); virtual void OnTimer(int secs); * fixed crash on the delete of class TextEditor (corrupted vtable)
New release OpenGUI 4.1.0!
(09 june 2003)
* major doc update - if you have installed DOXYGEN try type: 'make doc' and see at the directory ../doc, else download one from website. * many protected members and methods were moved to private part of class so if you lost compatibility, try send me email with details to improve. * removed some absolete methods * get_key() is now App::get_key(); * FileDialog class callback routine has new prototype: old: void (*callback)(char *); new: void (*callback)(char *, FileDialog *); * Palette has been rename to FGPalette * added Window::WindowClose() for regular window destruction
New OpenGUI mailing list !!!
(12. may 2003)
Subscribe here!
OpenGUI 4.0.0 - final
(8. april 2003)
There are now three versions of the OpenGUI:
- 3.6.1c - the good old one
- 3.7.0 - old core with new API (supports QNX, DJGPP, etc)
- 4.0.0 - new core & new API (supports only LINUX, WIN32
& maybe SOLARIS)
You may read the docs about migration from 3.x first.
The old 3.7.x branch will be supported in the future too. The
API will be very similar in the both (3.x & 4.x) versions. The
oldest one will supports QNX, DJGPP and other stuff that is supported
on
now but without multi-threading. The new version 4.x will support only
WIN32, SOLARIS and LINUX include multithreading. The API is definitely freeze on now.
Test IT, test IT & test
IT!!!
OpenGUI 4.0 will be
thread-safe!
(9. march 2003)
I have started working on nearly complete
rewrite of the underlying of the library. These changes targets these
idioms:
- reentrant code for all windowed code
- thread-safe locking on critical sections
- threading will be optional
- Each drawable object contains PAPER,
INK, FONT and PPOP and only these are used for drawing on them.
set_fcolor(), set_bcolor(), set_ppop() & set_font() as the
DrawBuffer methods.
- global version of set_fcolor(),
set_bcolor(), set_ppop() & set_font(), will be removed - affect
only
non object code (draw_line() , fill_box() etc).
- The NASM assembler will be no more
required.
- No -fPIC compile flags are necessary
under LINUX & shared linking.
- The API has been cleaned and changes are
minor (and will be well documented).
- Classes FileDialog() and ColorDialog may
be instatiated more than once at the same time.
- On now no Watcom C++ or QNX OS support
(because of banking video modes).
- Only C++ language is supported.
- The active EditBoxes are per window now.
- Most of static variables are removed.
- Truetype fonts will be build-in default
fonts on platform with one.
First alpha release of OpenGUI 4.0 will be
launch at 15. march 2003.
New alternative to the
EVENTS sending
First of all, download
latest OpenGUI examples.
All the 'Controls' in the OpenGUI (aka Buttons) are
inherited from this new class 'FGConnector' and you can bind these
Controls with your own class.
Code fragment to get the new
feature into your code (als see at new example 'connect'):
class foo : public FGConnector
{
int a;
public:
foo() { a = 0; }
virtual void
OnSignal(FGConnector *sender, int val)
{
val
= a;
new
Window(0,rand()%700, rand()%500,90,60,"Event!");
Snd(700, 200);
}
};
int main(int argc, char **argv)
{
App MyApp(3,argc,argv,CWHITE,APP_ALL);
Window *MyWnd = new Window(0,300,300,200,120,"Click
to button");
Control *eb;
foo *x = new foo;
eb = MyWnd->AddPushButton(68, 40, 90, 24, "New
window");
FGCONNECT(eb, x, 3);
MyApp.Run();
return 0;
}
New version of RHIDE 1.5 for latest REDHAT
If you are using a famous IDE from Robert Hohne - RHIDE,
you can download new version from http://www.rhide.com or latest build
from http://sourceforge.net/projects/rhide/ . This one don't work under
RH 7.x & 8.0, probably because SlackWare Linux that was used for
building. I rebuil sources from the scratch on my RH 7.3 and it's work
fine. Compiling RHIDE from sources is realy complicated job, that I
uploaded stripped, bzip2-ed (1.2MB), dynamic binary of RHIDE here for
you. Big news is that CTRL+C works again, GCC 3.2 compatible, latest
SETEDIT is used, IDE now show CLOCKS rather than used memory and
disasasembler use INTEL syntax rather than ATT ;-)).
Hey folks!
I would like to visit, for
curiosity only, some screenshots of your applications writed with
OpenGUI library. I will upload my pictures too. You will see one here.
Kylix 3 full support
From now,
the superb Borland IDE Kylix3 is supported under LINUX!
FreeType2 support (UNICODE, UTF8 with TRUETYPE)
Code fragment to get TTF
fonts into your code:
unsigned short
uu[16] = {'h', 'e', 'l', 'l', 'o', ' ', 'w','o','r','l','d','!', 0};
FontProperty *arial23 = new
FontProperty("arir____.ttf", 23);
FontProperty *helvetica23 = new
FontProperty("helr____.ttf", 23);
FontProperty *arial12 = new
FontProperty("arir____.ttf", 12);
FontProperty *helvetica12 = new
FontProperty("helr____.ttf", 12);
wnd->WindowTextUnicode(30,30,uu, arial23,
0,CWHITE);
wnd->WindowTextUnicode(30,60,uu, helvetica23,
0,CWHITE);
arial23->Shaded();
helvetica23->Shaded();
wnd->WindowTextUnicode(30,120,uu, arial23,
CBLUELIGHT,CWHITE);
wnd->WindowTextUnicode(30,150,uu, helvetica23,
CBLUELIGHT,CWHITE);
wnd->WindowTextUnicode(230,30,uu, arial12,
0,CWHITE);
wnd->WindowTextUnicode(230,60,uu, helvetica12,
0,CWHITE);
arial12->Shaded();
helvetica12->Shaded();
wnd->WindowTextUnicode(230,120,uu, arial12,
CBLUELIGHT,CWHITE);
wnd->WindowTextUnicode(230,150,uu, helvetica12,
CBLUELIGHT,CWHITE);
delete arial23;
delete helvetica23;
delete arial12;
delete helvetica12;
New widget for EditBoxes
-- FGUpDown class
Code fragment from window
handler:
static FGUpDown
*ud1, *ud2;
EditBox *eb;
switch(p->GetType())
{
case INITEVENT:
eb =
p->wnd->AddEditBox(112, 32, 64, 64, "integer", 0, &var1, 0,
-1000, 1000);
ud1
= new FGUpDown(eb, 100);
eb =
p->wnd->AddEditBox(112, 80, 64, 64, "float", 0, &var2, 0,
-10.000000, 10.000000);
ud2
= new FGUpDown(eb, .2);
break;
case TERMINATEEVENT:
delete ud1;
delete ud2;
break;
}
How to - OpenGL and
OpenGUI with Borland C++ 5
- Borland C++ 5.0 or higher is required.
- Download latest MesaGL 4.0.1 from www.mesa3d.org . If you have version
4.0 only, you can update one by my 4.0 to 4.0.1 patch (you
must have a patch utility from Cygnus by example).
- Update Mesa 4.0.1 source with this patch to get the Borland
friendly version.
- cd \Mesa-4.0.1\src
make -f MesaGL.mak
- The makefile automatically install the
headers & lib to the BC5 directory.
- Test the result - open a project into
OpenGUI\examples\mesa3d and rebuild them. You must get an working WIN32
OpenGL executable.
New feature -
TabPages - 27.01.2002
Code fragment:
wnd->AddPushButton(40, 152, 64,
21, "one", 0, 0);
wnd->AddPushButton(344, 152, 64, 21, "two", 0, 0);
wnd->AddTabPage("first");
wnd->AddEditBox(32, 40, 64, 40, "input1", 0, &tmp_str, 0);
wnd->AddEditBox(3, 304, 128, 64, 40, "string input", 0, tmp, 0);
wnd->AddTabPage("second");
wnd->AddCheckButton(48, 48, "check button", 0, &tmp1, 0);
wnd->AddPointButton(264, 64, "button group", 0, &tmp2, 0);
wnd->AddPointButton(264, 88, "button group", 0, &tmp3, 0);
wnd->AddPointButton(264, 112, "button group", 0, &tmp4, 0);
wnd->AddTabPage("third");
wnd->SetTabPage("second");
|