1.1.7 LGPL (GNU Lesser General Public License)    
2.3/5 18
ParaGUI is a highlevel crossplatform GUI framework.




ParaGUI is a cross-platform high-level application framework and GUI (graphical user interface) library.

It can be compiled on various platforms (Linux, Win32, BeOS, MacOS, ...)

ParaGUI is based on the Simple DirectMedia Layer (SDL).
ParaGUI is targeted on crossplatform multimedia applications and embedded devices operating on framebuffer displays.

Here are some key features of "ParaGUI":

· published under LGPL
· straight forward C++ class-design
· cross-platform
· supports alpha-blending of overlapping widgets
· threadsafe
· highly customizable widgets
· (background gradients, background images, transparency, colors, fonts)
· XML configuration
· many standard widgets already implemented
· (buttons, labels, scrollbars, progressbars, windows ...)
· create your own widgets
· (subclass an existing widget)
· supports various imagetypes through SDL_Image (configurable at compile time)
· using libSigC++ as callback framework
· UNICODE support

What's New in This Release:

· added PG_Factory (yeah)
· started PG_MessageObject cleanup (move code to PG_Application)
· added GetTitlebarHeight() / SetTitlebarHeight to PG_Window
· renamed SetColorTitlebar to SetTitlebarColor
· marked PG_MessageBox::WaitForClick obsolete
· new RunModal() / SetModalStatus(int) methods
· PG_ScrollArea::ScrollToWidget(..) now honours area-bounds
· removed "using namespace std;" from header files
· removed "using namespace std;" from all sources
· removed Get / SetApplicationPath from PG_Application
· only fade-in invisible widgets
· bumped version to 1.1.8
· fixed "flickering" of hidden widgets
· fixed infinite loops in PG_MultiLineEdit
· added PG_Button::SetIconIndent(Uint16)
· fixed non-unicode rendering of german "umlaut"
· fixed alignment of text (PG_Button)
· removed PG_TimerID. Please use PG_TimeObject::ID now
· fixed detection of libSDL_image*.so for Debian

· applied patches from Sebastian:
· made PG_Application::RunEventLoop() virtual to make subclassing easier
· made PG_Application::my_quitEventLoop protected to make subclassing easier
· made PG_LineEdit signals available to PG_DropDown
· made PG_DropDown::handleButtonClick() virtual to make subclassing easier
· made PG_MessageBox::handleButton() virtual to make subclassing easier
· made PG_RadioButton::handleButtonClick() virtual to make subclassing easier
· removed PG_Rect::PG_Rect() and added default params to PG_Rect::PG_Rect(x,y,w,h) instead
· made PG_Scrollbar::handleButtonClick virtual to make subclassing easier
· made PG_SpinnerBox::handleButtonClick() virtual to make subclassing easier
· made PG_SpinnerBox::handleEditEnd() virtual to make subclassing easier
· added PG_Window::GetTitlebarColor()
· made PG_Window::handleButtonClick() virtual to make subclassing easier
· fixed some compilation errors with VC.NET occurred due to missing namespace access
· reworked PG_Button::SetSizeByText()
· reworked PG_Label::SetSizeByText()
· reworked PG_Button::SetSizeByText()
· reworked PG_RadioButton::SetSizeByText()
· made PG_RichEdit::CompleteLines() call CheckForScrollBars() only if my_AutoVerticalResize is false
· added mouse wheel support for PG_RadioButton
· reset PG_RichEdit's scrollarea height to 0 when adding new text
· added SetSizeByText() example to paratest.cpp
· a bit of cleanup
· added some small doc fixes
· added signals to PG_MessageObject
· added PG_LogConsole::SetMaxLogLines()
· PG_RichEdit: replaced SetAutoVerticalResize() with SetAutoResize(bool bHorizontal = true, bool bVertical = true)
· PG_RichEdit: changed tabSize parameter to Uint16
· PG_RichEdit: fixed infinite loop bug which occured when a word was too big to be displayed in a row
· PG_RichEdit: improved an algorithm by adding a 'break'
· PG_RichEdit: added SetLineWidth()
· PG_ScrollWidget: added SetShiftOnRemove(), GetScrollPosX() and GetScrollPosY()
· added PG_Window::SetMovable()
· made PG_Widget::eventMouseLeave() call its parent's eventMouseLeave() only if cursor actually leaves parent area too
· PG_SpinnerBox: removed some virtual modifiers to fix a potential crash
· theme_priv.h: added some namespace std references to make VC happy
· removed some unnecessary code
· made PG_ScrollArea::DeleteAll call area change signals
· added some doc updates
· PG_Image: may choose drawing mode now
· PG_LineEdit: made SetCursorPos() virtual for easier subclassing (-> e. g.
· PG_MultiLineEdit)
· PG_RadioButton: added GetFirstOfGroup() and GetNextOfGroup()
· PG_RichEdit: fixed resizing
· PG_ScrollArea:
· added method to have parent widget resized automatically
· (SetResizeParent(bool bRemove, bool bAdd))
· moved bounds checking from ScrollToWidget() to ScrollTo()
· PG_ScrollWidget:
· added SetAutoResize(bool bRemove, bool bAdd)
· made it update its scrollbars properly when calling ScrollToWidget()
· PG_DropDown: resize automatically by default
· PG_Widget:
· added param 'bRecursive' to SetFontColor()
· added EnableReceiver(bool enable, bool bRecursive)
· paraconfig_win32.h: renamed macro UNICODE_ENABLED to ENABLE_UNICODE
· disabled warning flood for VC++ 7.1 concerning YChar's exception implementation
· added DECLSPEC to YChar's and YString's class declarations
· added a fix from Jeremie (concerning an END key bug) for his PG_MultiLineEdit (thanks Jeremie!)
· fixes for PG_MultiLineEdit (it no longer crashes)
· added PG_DropDown::GetFirstInList()

· applied patches from Ulf Lorenz:
· commented PG_Draw::DrawTile
· commented PG_Draw::DrawGradient
· PG_Rect: simplified some if-clauses
· surface.cpp: tiny check added, another one removed
· surface.cpp: preserved clip rect
· PG_Widget::FadeOut: lock screen-surface before blitting
· PG_Widget::RestoreBackground: properly restore screen-cliprect
· PG_Widget::eventBlit: proper screen locking
· PG_Widget::Draw[H|V]Line: proper screen locking
· PG_Widget: some small comments, removed an obsolete function
· PG_Button::eventMouseLeave: fixed a critical bug where you could untoggle a button by clicking
· on it, moving the mouse away and releasing the mouse which would
· untoggle the button but not release a click event.
· PG_Button::SetBorderSize: fixed a small bug where one bordersize would be set for all three cases
· PG_Button::eventBlit: screen is now locked
· removed some obsolete lines of code, added comments

· applied patches from Fred Ollinger:
· many many documentation updates
· added widget-screenshots
· new beginners-tutorial

· applied the great unicode patch from Mohammed Yousif
Last updated on April 12th, 2005

0 User reviews so far.