FUGE Changelog

What's new in FUGE 1.37

Dec 29, 2011
  • improved event mechanism; better integration with external frameworks
  • more control about device's internal logger; CFugeDevice::DisableLogger removed
  • removed the 'pragma' from FugeDev.cpp that was changing subsystem to Windows
  • fixed resize bug in fuge::CFugeDevice constructor (the HWND variant)
  • fixed ugly selection bug in fuge::CEditBox
  • fuge::CWindow: minimize and maximize buttons have separate style flags
  • fuge::CStatic: fixed foreground color bug
  • fuge::CEditBox:
  • Ctrl+A and Ctrl+X shortcuts
  • Esc does not produce an output character
  • Tab key is ignored
  • fuge::IRenderer::DrawOutlinedRect
  • fuge::CFugeDevice::CaptureMouse
  • new kind of logger output type (OUTPUT_STDERR)
  • 'using namespace pb' removed from the global namespace

New in FUGE 1.34 (Dec 29, 2011)

  • new control: fuge::CTreeView
  • new control: fuge::CHyperLink
  • new control: fuge::CTable
  • new control: fuge::CPropertyGrid
  • new control: fuge::CMenu
  • new control: fuge::CToolbar
  • fuge::CEditBox rewritten from scratch; selection support; random access caret support; caret blinking; clipboard support
  • new editor with ID manager
  • OpenGL renderer
  • removed class CImageList (deprecated in favor of the new fuge::CBitmap functionality)
  • removed all sub-namespaces except fuge::Event and fuge::Key
  • clipping support
  • each renderer type has its internal color format, fuge::CColor supports conversion between different formats
  • flat-style checkboxes, combo boxes and edit boxes
  • new event type: fuge::Event::MOUSE_DOUBLECLICK
  • new event type: fuge::Event::GUI_COMBOBOX_CANCELLED
  • new event type: fuge::Event::GUI_COMBOBOX_LIST_DISPLAYED
  • new events: fuge::Event::GUI_EDITBOX_FOCUS_GAINED and fuge::Event::GUI_EDITBOX_FOCUS_LOST
  • fuge::CElement:
  • new member m_CursorType
  • m_DebugText is not used internally anymore; serialization retrieves class name through PBLib Reflect
  • GetDrawingColor method simplified; color scheme is now optional
  • m_UIManager is of type CUIManager* (no need to dynamic_cast)
  • s_Logger - a static logger accessible to all elements, printing to the Output window
  • GetElementFromID doesn't accept ID == -1
  • CalcRelPos
  • UpdateAbsolutePosition - calling Resize is now optional (true by default)
  • GenerateEvent is virtual and now used by majority of controls
  • AddChild now accepts controls that already have parent (i.e. allows to change the parent)
  • HasFocus
  • fuge::CStatic:
  • SetBackground/HasBackground
  • The m_FgColor member is loaded from XML properly
  • SetBgColor, SetOverrideBgColor
  • m_Border is not ignored in the STATIC_PANEL mode
  • m_EventsToParent mode (transmitting all events to parent control)
  • eliminated text offset (with border present)
  • uses COLOR_TEXT unless override color flag is turned on
  • GUI_STATIC_CLICKED triggered on MOUSE_LBUTTONUP (instead of MOUSE_LBUTTONDOWN)
  • setters do not return a reference to 'this' anymore; that was a cool trick, but also a messy one
  • fixed bug in GetBgColor - it would actually return foreground color
  • fuge::CButton:
  • changed look of pressed button
  • mouse events are not propagated
  • fuge::CComboBox:
  • Esc button hides the list box
  • clicking outside the list box doesn't cause an item to get selected
  • Clear clears its list box as well
  • fuge::CListBox
  • MOUSE_LBUTTONUP triggers item selection (instead of MOUSE_LBUTTONDOWN), this change also affects CComboBox, which behaves more intuitively now
  • BeginContent/EndContent
  • HasBackground, SetBackground, IsSunken
  • fuge::CCheckBox: small box mode
  • fuge::CRangedControl:
  • GetMin, GetMax
  • SetRange sets bot min and max to 0 when specified range is invalid
  • fuge::CScrollBar:
  • button size is proportional to content size
  • SetSmallStep
  • SetOrientation and GetOrientation
  • fuge::CProgressBar: fixed ugly bugs
  • fuge::CTabCtrl:
  • AttachElementToTab
  • m_TransparentBackground renamed to m_Background (for consistency with other controls); HasBackground and SetBackground added; CUIManager::AddTabCtrl changed respectively
  • fuge::CUpDown:
  • SetBuddy automatically synchronizes its value with buddy
  • SetBuddy accepts classes derived from CEditBox, not only CEditBox itself
  • fuge::CComboBox and fuge::CListBox items have 64 bits of extra data
  • removed enum EType and fuge::CElement::m_Type (deprecated since 1.17 in favor of PBLib Reflect functionality)
  • fuge::CFugeDevice:
  • GetLogger
  • GetRendererType
  • AnyRunningModalLoops
  • mouse coordinates in the MOUSE_WHEEL event are relative to the client area
  • ICursorAndRendererOwner class removed, UI Manager creates and manages cursor, fuge::IGUIObject provides a pointer to the cursor
  • system keys (like F10) generate keyboard events as well
  • fuge::CCursor supports all Windows cursor shapes
  • non-virtual variants of IRenderer::DrawRectangle and IRenderer::DrawImage to simplify drawing operations
  • fuge::CBmpHardcoder interpret "solid" pixels as white, which allows them to be drawn in any color
  • IMouseCapture class removed; now fuge::IGUIObject has its old functionality plus CaptureMouse and ReleaseMouse methods to simplify capturing mouse
  • several EColorIndex members renamed, added COLOR_SELECTION_TEXT, COLOR_SELECTION_DARK, COLOR_TEXT_SPECIAL1, COLOR_TEXT_SPECIAL2 and COLOR_SYMBOL
  • color schemes updated; new scheme ("Blitkrieg") added
  • is not included anymore
  • the UserData field in the fuge::CEvent struct is now uint64 (instead of uint)
  • the mouse event structure now has Pos method, which returns cursor position as pb::CPoint
  • fuge_fopen removed, pb::CFileWrite used instead
  • fuge::IFont::GetCharWidth renamed to GetCharacterWidth (WinAPI + Intelli(non)sense issues)
  • fuge::CBitmap::GetTileCount
  • fixed potential bug in fuge::CBitmap::SetExternalRef - the method returns if specified pointer is equal to the current ref
  • loading from XML - version check
  • fuge::CUIManager: serialization flags
  • 'Del' key handled properly in Edit Mode fixed incorrect behavior of fuge::CWindow::GatherChildren and removed some nonsense code from fuge::CWindow::ToXml and fuge::CWindow::FromXml

New in FUGE 1.17 (Dec 29, 2011)

  • Edit Mode
  • Alt+Tab support in fullscreen mode
  • window resize support
  • easier to create a custom color scheme
  • uses PBLib
  • logger
  • improved performance of drawing lines with the DX renderer
  • improved performance of drawing multiline text with the DX renderer
  • extended interface of bitmap class
  • extended interface of fuge::CEditBox
  • drawing only when the main window is active (optional)
  • fuge::CRangedControl - base class for fuge::CScrollBar, fuge::CProgressBar and fuge::CUpDown
  • fuge::CUpDown::SetBuddy uses ID instead of pointer
  • fuge::CStatic with border draws its text with an automatic offset of 5 pixels
  • fuge::CFugeDevice::IsKeyPressed
  • CUIManager::AddMessageBox method removed
  • additional fields in the mouse event structure (mouse button state, shift and control buttons state)
  • fixed ugly multiline bug in DX font
  • fixed GetCharacterWidth method in both native and generic fonts
  • newline characters are not drawn when using generic font
  • solved many problems with reference counting
  • Fuge Device obtains system time as soon as it is created
  • modal dialogs receive focus as they are created by ShowModalDialog
  • fuge::CElement::BringToFront doesn't cause problems with modal dialogs
  • fuge::CElement::SetText made virtual (some controls implement their own version to make it possible to change text at run-time)
  • fuge::CComboBox displays its text in the edit box until an item is selected from the list
  • aligning text to the right
  • DirectX fonts are released properly
  • fuge::CMessageBox autosize: margin between buttons and text added
  • fuge::CMessageBox can be dismissed by Enter or Esc
  • fuge::IReferenceCounted::GetRefCounter

New in FUGE 1.00 (Dec 29, 2011)

  • new class fuge::CImageList for managing tiled bitmaps
  • new class fuge::CErrorHandler for dealing with errors such as 'file not found' error
  • new class fuge::CBmpHardcoder for creating inline bitmaps
  • new method fuge::CFugeDevice::GetTime
  • new method fuge::CFugeDevice::GetWindowHandle
  • new method fuge::CBitmap::CreateEmpty
  • new methods fuge::CUIManager::ShowModalDialog and fuge::CUIManager::ShowMessageBox
  • new method fuge::CButton::Arrange
  • new method fuge::CElement::GetUIManager
  • new method fuge::CElement::SetID
  • new data member fuge::CEvent::UserData
  • built-in symbols bitmap (no external images needed anymore, no loading at demand)
  • virtual timers
  • works both with Unicode and ANSI projects
  • doesn't use IrrXML anymore
  • uses STL internally
  • string conversion routines (Unicode/ANSI) removed
  • fuge::CMessageBox adjusts automatically to initial text and centers itself on screen
  • one can call fuge::CUIManager::GetSize() to obtain available screen size
  • main window can be created without a border
  • enums are now contained in associated classes or their own namespaces
  • clicking outside any control doesn't cause a crash
  • fixed Unicode issues in fuge::CUpDown