Graphical User Interface Framework not only for VST plugins
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages

For newer changes please see the git log.

2015-11-28 arne
* more unit tests (now 38% line coverage)
* remove inefficient bitmap pixel accessor reverse iteration
* fix removing first subview of CSplitView not removing the first split separator view
* a few little updates to the documentation and a short section about HiDPI support
2015-11-25 arne
* unit tests for CControl and CXYPad
* fix value calculation in CXYPad
* Cocoa: set double click on buttons only if click count == 2 not when more
* unit tests for CCheckbox, CKickButton, COnOffButton, CTextButton, CSegmentButton
* unit test line coverage now at 36%
2015-11-22 arne
* move enum DragResult out of CView
* some CFrame unit tests
* fix two bugs in CFrame found during unit test writing
* unit test line coverage up to 34.6%
* add possibility to add a new view in the UIDesc editor via double click or right click with popup menu from the view data browser
* fix compiling in non c++11 mode and fix compiling for iOS
2015-11-20 arne
* quartz: fix a transformation issue when pixel aligning rects and fix transformation issues for paths
2015-11-07 arne
* make unit tests work in release mode
* more unit tests (31.3% line coverage now)
* remove unused code
2015-11-04 arne
* change vstgui_assert to actually work with Visual Studio
* add vstgui and unittest projects for VS 2015
* fix a few errors/issues with VS 2015
* fix scaled bitmap drawing with Direct2D
* make Direct2D render target accessible to the outside so that they can set it if they want to...
* optimization for CGDrawContext::drawLines
* use unordered_map for ViewRegistry for faster lookup
2015-11-01 arne
* more unit tests (30.7% line coverage now)
* fix for found bug in CSliderCreator
* move createView method into IUIDecription interface so that UIViewSwitchContainer does not need a UIDescription object
* fix warnings/errors on windows
2015-10-31 arne
* more unit tests (23% line coverage now)
2015-10-28 arne
* introduce vstgui_assert which replaces the normal assert function, mainly for testing purposes
* add a new flag to CView to indicate if a view is added to a container view
* remove duplicate code to add a view to a view container
* add more unit tests and streamline code coverage report to exclude uninteresting stuff
2015-10-27 arne
* more unit tests (18.4% line coverage)
which found the following issues :
* fix: CMemoryStream cannot rewind and read again (no way to know how many bytes were written before)
* fix: UIDescription tags could not be specified with OSType strings
* fix: UIViewFactory::collectRegisteredViewNames may not work correctly when using with a base class name filter
2015-10-24 arne
* refactor Animation::ExchangeViewAnimation to better test it
* add a bunch of unit tests (coverage now : 6.4% lines)
* fix view container listener viewRemoved not called
* write script for better unit test build workflow
2015-10-23 arne
* add text truncate mode to CSegmentButton
* workaround Apple bug in CocoaFileSelector which generates double file extensions when a temporary UTI is used
* add missing override method declarations
* fix access violation when opening the uidescription editor in debug mode
* make code coverage work with Xcode 7
2015-08-19 arne
* support VS 2015
* fix a possible nullptr access
2015-07-26 arne
* make zooming in UIDescription Editor step-less
2015-06-25 arne
* make sure that when creating an exchange animation the new view is not visible all time
* add IViewContainerListener interface and some use of it
* make sure that the view is completely redrawn in all cases
* fix decode scale factor from name if name does not include a file extension and also make sure that scaled bitmaps are processed
2015-06-24 arne
* Direct2D: don’t draw if clip is empty
* move setZoomFactor from VST3Editor to CFrame
2015-06-07 arne
* make CAnimKnob work with normalized values
2015-05-31 arne
* update bitmap when a shadow view container is drawn scaled
2015-05-28 arne
* fix layer drawing after transform matrix fix
* add documentation
2015-05-20 arne
* fix CGraphicsTransform matrix
* change the way the mouse cursor is set on Win32
2015-05-19 arne
* fix Win7 issue when building with the Win 8 SDK
2015-05-17 arne
* fix transformed graphics path drawing
* fix memory leaks
2015-05-14 arne
* fix compile errors with Visual Studio 2010
* fix quartz text path after HiDPI changes
* fix crash in d2d text path creation
2015-05-03 arne
* add some contribution classes:
- Mac BoxBlur filter which uses CoreImage (GPU)
- compressed UIDescription file support
* deprecated methods support should be off per default
2015-04-22 arne
* make Cocoa menu behave the same as the Carbon one and allowing to set a checkmark on the sub menu (thanks to Steve Duda for the fix)
* allow to set ui description file path for better development integration
2015-03-11 arne
* fix too early unload of the D2D libraries when multiple frame objects are created
2015-01-04 arne
* fix layer size when placed into scroll view
* fix mac 32 bit release build
2014-12-24 arne
* fix getVisibleSize if a transform is set on the view container
* minor change to inform viewlisteners of view remove before the parent is set to zero and move some methods from UIDescription into its interface
2014-12-19 arne
* fix CViewContainer::getViewsAt () returns wrong result when deep is active
* add DispatchList<T> for listeners to dispatch events so that listeners can unregister it self while in dispatch
* add IControlListener dispatchlist to CControl
* optimize invalidRect
* fix cursor issue on Windows
* fix VUMeter when min or max not normalized
* move IContextMenuController from VST3Editor to IController so that it can always be used
2014-09-17 arne
* changed method signature of the various getViewAt/getViewsAt/getContainerAt methods
They all have an options argument now instead of multiple bool arguments to refine the options which views should be returned
2014-09-15 arne
* moved IPlatformFont and IFontPainter into lib/platform/iplatformfont.h
* use DirectWrite for IPlatformFont::getAllPlatformFontFamilies(..) when available
2014-09-14 arne
* fix CShadowViewContainer drawing on Windows and use a gaussian blur approximation instead of a simple box blur
* fix some more Direct2D and Quartz pixel drawing issues
* fix iOS compilation issues
* fix compilation issues with OS X 10.6 SDK
2014-09-07 arne
* moved platform implementation of CVSTGUITimer into its own files
2014-09-05 arne
* fix some Direct2D and Quartz pixel drawing issues
* enable more compiler warnings and fix issues
* add methods to CDrawContext to draw IPlatform strings for better performance
* renamed CControlListener to VSTGUI::IControlListener and moved into its own header file
* add forwarding header : vstguifwd.h and minimize includes
2014-08-23 arne
* moved CScrollbar into its own file
* Direct2D and Quartz nearly draw the same pixels now when drawing in integral mode
2014-08-20 arne
* add CFrame::kDefaultKnobMode static variable to set the knob mode for the case when the VSTGUIEditorInterface does not provide one
* first part to make the Direct2D and Quartz backend draw exactly the same
2014-08-14 arne
* reversed DrawMode kIntegralMode style. Now the regular case is to draw pixel alligned.
* add CRect::extend method
2014-08-10 arne
* add two more ExchangeViewAnimation styles
2014-08-06 arne
* add c++11 lambda alternative for Animation finished message
2014-08-03 arne
* add new Control: CSegmentButton
* changed Direct2D termination to not depend on __try __except (thanks to Andreas Persson)
2014-08-01 arne
* add CGraphicsPath::pixelAlign to align the path to pixel boundaries
2014-07-24 arne
* CTextButton and CGradientView now takes CGradient objects instead of colors and start offsets.
2014-07-09 arne
* support drawing the best CBitmap representation according to the scale factor in the D2D backend
* support setting a transform matrix on CFrame directly
2014-05-27 arne
* add Matrix Transformation support to CViewContainer to draw contents transformed (works at least for scaling, rotation will not work)
* add drawBitmapNinePartTiled and fillRectWithBitmap methods to CDrawContext
2014-05-09 arne
* improve D2D drawing performance
* fix buttons parameter on mouse up for Windows
2014-05-01 arne
* add Matrix Transformation support to CDrawContext and remove setOffset() getOffset() from it.
* redesign integral draw mode to draw pixel aligned
* removed setClipRect inside of CDrawContext::drawString() to support drawing rotated strings (clip rect needs to be set from outside now)
2014-04-21 arne
* add support for drawing high resolution bitmaps on Retina Displays
2014-04-20 arne
* add initial Mac OS X Retina Display support
* add CDrawContext::Transform to transform any of the CDrawContext draw commands
* add CDrawContext::drawLine and mark the old methods (moveTo, lineTo) as deprecated
* add CDrawContext::drawLines which takes a vector of point pairs and mark the old method as deprecated
* add CDrawContext::drawPolygon which takes a vector of points and mark the old method as deprecated
2014-04-13 arne
* fix a few issues found with -fsanitize=undefined-trap
* some refactorings
* add virtual key code to CMenuItem
* add UTF8StringView helper class
* fix CDataBrowser selection change via key input (modifier was not checked)
2014-04-02 arne
* fix double click style for CTextEdit
* UIDescription: add variable substitution for all attributes when creating views (thanks to Wolfram Franke for the inital version)
2014-03-29 arne
* add c++11 lambda alternatives for callbacks in CFileSelector::run(), CVSTGUITimer, CParamDisplay::setValueToStringFunction, CTextEdit::setStringToValueFunction and CCommandMenuItem::setActions
* some changes to UIDescritpion interfaces to use more const methods
2014-02-21 arne
* add CBaseObject::beforeDelete() virtual method, which will be called directly before the object is deleted.
* add IViewListener::viewWillDelete () method
2014-02-19 arne
* fix CDrawContext::restoreGlobalState on Direct2D
* rewrite CDrawContextState to use the stack instead of the heap to store them
2014-02-05 arne
* add IViewListener interface/adapter
2014-01-22 arne
* CDrawContext::createTextPath(..) implementation for Direct2D and GDI+
2014-01-02 arne
* add CDrawContext::createTextPath(..) and Quartz implementation
* add text rotation to CParamDisplay
* fix console output message about font creation on OS X 10.9
2013-12-30 arne
* change CGradient to support more than only a start and end color
* add CDrawContext::fillRadialGradient method
* added a debug message when the gradient draw methods are used with GDI+ as they produce different results than the Direct2D and Quartz implementations
* fix fractional mouse wheel messages on Windows
2013-12-20 arne
* removed ATSUI font handling as CoreText is supported since 10.5
* optimize string drawing on Mac OS X by caching the CoreText Line between calls to getStringWidth and drawString
* add support for adding a custom view to the split view separator
* fix compiling with the Mac OS X 10.6 SDK
== VSTGUI 4.2 Release ==
2013-10-21 arne
* removed support for Mac OS X 10.4
* add CLayeredViewContainer + platform implementation for iOS and OSX (QuartzCore is now required)
* CGraphicsPath::hitTest implementation for D2D and GDI+
2013-10-18 arne
* add relative touch mode to CSlider
2013-10-15 yvan
* remove warning for missing casting (double to float)
* change #include <Windows.h> to #include <windows.h>
2013-10-14 arne
* add onMouseCancel () to CView to support touch canceling and maybe later ESC-Key canceling of mouse tracking
* implement onMouseCancel() on a few of controls
2013-10-04 arne
* add path hit testing support into CView
* add hitTest method to CGraphicsPath (Quartz implementation only currently)
* add CSlider::kAlwaysUseZoomFactor to make the zoom modifier mode the default
2013-09-10 arne
* add iOS CTextEdit support
* add experimental COpenGLView support for iOS (currently not enabled)
2013-08-06 arne
* add iOS support (without CTextEdit and COptionMenu support for now)
* add multi-touch support (iOS implementation only for now)
2013-05-29 arne
* fix crash in IDependecy::changed when a dependent is removed while iterating the depentents list
* add icon drawing to CTextButton
* change CDrawMode to be a class and add kIntegralMode to draw exactly at integer coordinates
this is a better fix than the previous aliasing drawing fix for quartz
* always draw bitmaps on integer coordinates with Direct2D
* add better focus path for CKnob when drawing with the corona style
* add frameWidth to CParamDisplay
* fix a crash when the CFrame object is destroyed when in mouse down
* changed CView::getVisibleSize() to CView::getVisibleViewSize() to silent compiler warning
* created constructor methods for view containers without CFrame argument (which was not used anymore). Moved the old ones into deprecated.
* add first unit tests
2013-02-10 arne
* add multi selection style to CDataBrowser
* introduce CDataBrowser::Cell position description and change some methods which deals with cells to use it.
* rename IDataBrowser to IDataBrowserDelegate
* changed drag method signatures of IDataBrowserDelegate to include cell mouse position
* fix some aliasing drawing issues with Quartz caused by non integral coordinates
* CGradientView check with Direct2D (still needs check with GDI+)
* mark CFrame::doIdleStuff and CControl::doIdleStuff deprecated as it is not used anymore
* replace CDragContainer with IDataPackage. Add CDragContainerHelper class to make porting code easier
2013-01-04 arne
* fix a few issues introduces due to calling beginEdit() and endEdit() only once in CControl
* [quartz] use global color space for Gradient colors, so that these colors are identical to the colors when drawing strokres or fills
* changed method signature CViewContainer::getVisibleSize() to take a const rect reference
* fix rare crash in CTooltipSupport
* fix a redraw issue which may happens when removing a modal view
* add CGradientView (experimental, Direct2D and GDI+ drawing needs check)
2012-11-28 arne
* replaced all occurrences of reinterpret_cast with proper replacements
* changed drawing order of CDataBrowser, now it paints row by row not column by column
* add a new template method to CViewContainer to find children by class type
* remember edit state in CControl so that sub classes can ask if they are currently in edit mode (between beginEdit() and endEdit())
2012-11-24 arne
* add new argument to CViewContainer::getViewAt () to allow to get only the mouse enabled view at that position
* changed CViewContainer::getViewsAt () result container to std::list<SharedPointer<CView> >
* add c++11 override keyword with override
* remove last usage of isTypeOf() and add VSTGUI_ENABLE_OLD_CLASS_TYPE_INFO macro which enables the old class type info mechanism (defaults to be enabled). If turned off generated code size is smaller.
2012-11-22 arne
* fix issues when compiling in c++11 mode
* implement page up/down key handling in CDataBrowser
* change scrollbar look to use round borders
* mouse wheel messages are now only dispatched to mouse enabled views
* make sure CTextLabel does not handle the mouse wheel message
* small optimization for drawing strings on Mac
* fix issue that the OpenGL view does not draw on Windows when used on another thread than the main thread
* fix issue where the VST3Editor does not update the option menu when bound to a vst 3 parameter
* implement binding a vst 3 parameter to a CTextLabel in VST3Editor
* replace custom linked list for child views in CViewContainer by a std::list
* add UTI to CFileExtension
* fix CCheckBox drawing on Windows when coordinates are not rounded to whole integers
* fix tooltip timer not stopped when tooltip window was hidden on Cocoa
2012-05-17 arne
* add compatibility to compile VSTGUI with Xcode 4.x and Mac OS X SDK 10.7
- This looses the possibility to set the font family for the native text edit field with Carbon
2012-02-27 arne
* add drag'n drop handling to CDataBrowser
* fix a rare drawing issue with scrollbars in a scrollview
* make sure that a call to invalid won't invalidate while in the drawing callback
2012-02-19 arne
* add option to include bitmap data into uidesc file
* add 2 new platform functions to IPlatformBitmap: createFromMemory(..) and createMemoryPNGRepresentation (..)
* the CFrame object should now be created with the constructor CFrame (size, editor) and afterwards opened with
the native parent object and a type description of the parent. The old constructor is now deprecated.
* add new Bitmap Filter : ScaleLinear
2012-02-11 arne
* fix most warnings when building with Clang
* fix a few memory leaks in the Cocoa sources
* fix a bug calculating a color from HSL
* move the ViewIterator template into the CViewContainer class to get rid of the friend declaration
2011-12-13 arne
* fix saving UIDescription on Windows
* fix finding UIEditController::getEditorDescription
* fix compile error with newer Visual Studio compilers
2011-11-25 arne
* merge changes from vstgui_400 :
2011-10-11 arne
* fix mouse wheel on Mac OS X 10.7 when "natural" scroll direction system setting is used.
2011-10-05 arne
* fix possible crash in IDependency::changed() when dependent object removes itself in this call
2011-10-02 arne
* fix wrong pixel format on intel Mac OS X
* fix performance issue drawing bitmaps with empty clip rect
* fix escape key does not end text edit on Windows
2011-08-24 arne
* fix bug: control listeners don't get right button click
2011-07-16 arne
* implement missing kSelectDirectory in CNewFileSelector for Windows XP
* fix issue with COptionMenu and check style for first item for non kPopupStyle on Cocoa
2011-10-08 arne
* add pDisabledBackground bitmap to CView and made pBackground a private member to support drawing a different bitmap if the mouse is enabled or disabled
* refactored bitmap filters to use a factory
* more uidescription editor
2011-09-28 arne
* add CShadowViewContainer
* fix CSlider vertical drawing (when not using Bitmaps)
* add CTextLabel truncate text mode
* add UTF8CharacterIterator class for iterating UTF8 strings character by character
2011-09-15 arne
* add kAutoHideScrollbars style to CScrollView
* more uidescription editor
2011-09-12 arne
* added a few simple Bitmap Filters
* added a few methods to CColor (toHSL, fromHSL, getLuma, getLightness)
* more uidescription editor
* more documentation
2011-09-01 arne
* support for setting and getting the systems clipboard, see CFrame::setClipboard() and CFrame::getClipboard ()
* CFrame support for more than one IKeyboardHook (you need to change your call to CFrame::setKeyboardHook() to CFrame::registerKeyboardHook ())
* more uidescription editor
2011-08-27 arne
* fix CFrame::advanceNextFocusView() for modal views
* add round rect style for CParamDisplay
* add kFollowFocusView style for CScrollView
* add CTextButton::sizeToFit()
* new uidescription editor
2011-08-22 arne
* new class CCommandMenuItem
* new container view CRowColumnView
* add on/off style to CTextButton
* remove unused bTextTransparencyEnabled from CParamDisplay
* first part of new uidescription editor
2011-07-16 arne
* new class COpenGLView + platform implementations for Windows + Mac Cocoa
* new style for CScrollView: kOverlayScrollbars (scrollbars are overlayed of the content)
* fix a crash when CView::setWantsIdle(false) was called inside CView::onIdle()
2011-07-4 arne
* fixes to path arc drawing for Direct2D and GDI+
* fixes to CKnob
2011-07-01 arne
* fix horizontal CVUMeter drawing (was reversed)
2011-06-24 arne
* make sure that Windows 7 magnification setting is ignored with Direct2D
2011-06-14 arne
* change call sequence for CViewContainer::attached(parent) to first call the base class before calling the subviews, so that subviews have access to all parents in attached(..)
* make sure animations will be stopped when views are removed and that IAnimationTarget::animationFinished() will only be called once
* fix a scroll view issue in makeRectVisible
2011-06-08 arne
* VST2.x frame resize implementation (mainly for Windows)
* make tutorial compile and work on Windows
2011-06-05 arne
* implement missing file drag support for Windows
* fix a few warnings with clang
2011-06-03 arne
* rearrange some code in AEffGUIEditor and PlugGUIEditor and make it work on Mac OS X 64 bit
2011-05-27 arne
* fix a crash when resetting the focus view after a menu popup when that view was removed
* add CViewContainer method to enable/disable autosizing
2011-05-26 arne
* fix for CView::setVisible(false) not invalidating the view area
* fix another scroll view issue
2011-05-22 arne
* make CView::getViewSize() non virtual
* replace nearly all direct uses of CView::size with CView::getViewSize()
* fix a scroll view issues
2011-05-20 arne
* replace checks for emptiness of std container from size () > 0 to empty () == false
* update copyright year
2011-05-17 arne
* fix horizontal auto drag scrolling in CScrollView
* prevent transforming a CSplitView or CScrollView to another view in UIEditFrame to fix a crash
* define NDEBUG if DEBUG is not defined so that asserts are not triggered in Release builds
* more documentation
2011-05-06 arne
* add CView idle mechanism
* CVuMeter uses CView idle mechanism for smooth meter fallback
* CFrame disable invalidating views if CView::kDirtyCallAlwaysOnMainThread is true
2011-04-30 arne
* fix CKickButton key down repeat triggering beginEdit more than once
* remove usage of isTypeOf("CViewContainer") and instead use dynamic_cast/reinterpret_cast
* add assert in CView::attached(CView* parent) that checks that the parent is a CViewContainer, other types are not supported !
* fix drawcontext on windows did not work with globalAlpha other than 1 for fillLinearGradient
2011-04-25 arne
* fix a memory leak in CFontChooser
* rearrange some code in uidescription
* CSplitView docs and fixes
2011-04-22 arne
* fix CVuMeter decreaseValue not working as expected
* moved all uses of kMsgCheckIfViewContainer into the deprecated macro
2011-04-06 arne
* fix control-click in cocoa not a right click
* fix an update bug with COptionMenu not setting the value correctly on popup
* gdiplus line style implementation
2011-03-29 arne
* add immediate text change style to CTextEdit
* revert UTF8StringHelper optimization as it does not work under 64 bit
* some views does not call setDirty(false) in their draw methods. fixed.
* change default fonts on Mac to Arial like on Windows
2011-03-23 arne
* added CTextButtton control view class
2011-03-20 arne
* removed the sublisteners in CControl and replaced it by IDependency
2011-03-19 arne
* new class IDependency see idependency.h for documentation
* new IDataBrowser methods: dbAttached(..) and dbRemoved(..)
2011-03-16 arne
* CGraphicsPath redesign
* fix an issue with CScrollView and focus view drawing
2011-03-11 arne
* Direct2D graphics path addArc method implementation. clockwise setting not yet.
2011-03-10 arne
* new font face kStrikethroughFace (thanks to Bick Tick for this)
* new class CString which holds a platform representation of a UTF8String.
The CDrawContext class has one CString so that the platform code does not need to convert a string twice when drawing
the string into a rectangle
2011-03-09 arne
* CNewFileSelector implementation for Windows XP (thanks to Bick Tick for the implementation)
* UTF8StringHelper optimization (only use malloc if more than 128 UTF-8 characters or 64 UTF-16 charachters needs to be translated)
* fix drawing issue with Wavelab 7 on Windows (WS_EX_TRANSPARENT is now only set when the parent window has WS_EX_LAYERED style set)
* the RGNDATA allocation in WM_PAINT on Windows is now only done when the size of this structure changes, otherwise the memory block will be remembered.
* fix file drop on Windows (thanks to Bick Tick to fix this)
2011-03-06 arne
* fix CFrame::getViewAt(..) returning wrong view in modal mode
* use a template class for the view iterator
2011-03-04 arne
* add CDrawContext::createRoundRectGraphicsPath(..) method (thanks to Big Tick for contribution)
* add CGraphicsPath::addRoundRect(..)
* fix quartz graphics path addArc method
2011-03-03 arne
* new static bool CView::kDirtyCallAlwaysOnMainThread. When this is set to true a call to CView::setDirty(true) will
call CView::invalidRect (size) instead of setting the dirty flag. This can fix redraw issues for overlapping views, but
you must make sure that you never call setDirty() from any other thread than the main thread. The default value is false to
maintain the old behavior.
* fix: a CScrollView does not write it's subviews to the UIDescription.
* a CScrollView will now automatically resize it's container size if it has only one child view and this view was resized.
* the default animation classes are now inherited from CBaseObject.
* new view container class : CSplitView (documentation will follow)
* uiswitchcontroller creator class moved to uiviewcreator.cpp (to allow using vstgui as static library)
* added kCViewControllerAttribute which holds the sub controller of a view
* new method in CViewContainer to change the Z order of a view
* new method CRect::originize ()
2011-02-13 arne
* merge back changes from VST SDK 3.5:
* fix some warnings with some compilers
* add CAnimationSplashScreen class
* animations can have an optional notification object for receiving a message when the animation has finished
2010-12-05 arne
* fix ExchangeViewAnimation
2010-10-15 arne
* fix some possible crashes with animations
2010-10-10 arne
* add CMouseEventResult as return value to IMouseObserver::onMouseDown and IMouseObserver::onMouseMoved
* allow registering of more than one IMouseObserver. CFrame::setMouseObserver renamed to CFrame::registerMouseObserver and CFrame::unregisterMouseObserver
* mouse events now propagated to views behind views if the front view does not handle the event and the views transparency flag is set
* IPlatformBitmapPixelAccess implementation for Gdiplus
2010-10-03 arne
* add buttons parameter to IMouseObserver::onMouseDown and IMouseObserver::onMouseMoved
* alphaPremultiply implementation for Direct2D IPlatformBitmapPixelAccess
* moved plug-in API specific files into plugin-bindings folder
* fix D2DDrawContext::drawPolygon
2010-10-01 arne
* rewrite implementation for CView attributes to use std::map instead of a linked list
* some fixes and enhancements from Vítězslav Kot
* the zoom modifier and default value modifier can now be set with CControl::kZoomModifier and CControl::kDefaultValueModifier
* add possibility to load bitmaps from absolute paths via IPlatformBitmap
* fix non visible textedit field with Direct2D (because of not using WS_EX_COMPOSITED)
2010-09-25 arne
* fix Direct2D issues after installing IE 9 Beta (the new Direct2D version does not like to draw into WS_EX_COMPOSITED windows)
2010-09-23 arne
* workaround bug on Mac OS X that PNG images are always decoded when drawn
2010-09-10 arne
* add CBitmapPixelAccess class
* add support for multi-line tooltips for Cocoa and Windows
* fix a crash when CFrame is closed and a modal view was set and an animation was used on this modal view
2010-09-03 arne
* add isControlDefaultButton(..) to VSTGUIEditorInterface to customize the buttons which act as setting the default value of controls
* removed custom bitmap reader interface
2010-08-04 arne
* quartz: draw bitmaps on pixel boundaries
* combine D2DBitmap and D2DOffscreenBitmap
2010-07-10 arne
* fix invisible state inconsistency of CViewContainer children
* send key events only to mouse enabled views
* move CGraphicsPath creation into CDrawContext
* move CGraphicsPath draw methods into CDrawContext
2010-06-30 arne
* added ViewIterator and ReverseViewIterator classes, so that iterating over CViewContainer children are not that expensive
* fix modal view handling
* fix font creation bug with GDI+ when combining multiple font styles
2010-06-25 arne
* Mac 64 bit AEffGUIEditor implementation
* Build 32/64 bit universal binary for tutorial project
* fix focus issues with Cocoa and text edit fields
* fix bugs in CVUMeter
2010-06-08 arne
* added CFontChooser class
* added GenericStringListDataBrowserSource class
* changed key event flow in CFrame. New event flow is :
- IKeyboardHook
- focus view
- parents of focus view (new)
- modal view
CViewContainer now does not propagate key events to child views
* fixing bug 2992884 : CDrawContext::drawString does not work on Mac OSX < 10.5
* fixing bug 2994963 : Mac Carbon option menu - wrong item checked
* fixing setMin(..) and setMax(..) for CKnob
* consistent names for uidescription files and classes
2010-04-28 arne
* changed to use C99 variable types (int8_t, uint8_t, etc)
* added CButtonState class which replaces the buttons parameter in CView mouse methods
* Auto drag scrolling flag for CScrollView
* removed CGraphicsPath::addString method
* added some new draw styles to CKnob :
- drawing a circle instead of lines for the handle
- drawing the value as a corona (with support for inverted value and value from center)
* added drawing style to CSlider
* simplified stringToValue and valueToString functions for CParamDisplay and CTextEdit
2010-04-09 arne
* Direct2D menu icon implementation
* fix memory leak in Windows when using icons in menus
2010-04-07 arne
* removed COffscreenContext in CViewContainer & CVUMeter as it is not needed there anymore
* added IPlatformBitmapPixelAccess for those who needs to alter pixels of a bitmap directly
* changed CLineStyle to support more than solid and dotted lines
2010-03-20 arne
* add documentation for the animation support
* initial Direct2D support for Windows
2010-03-03 arne
* redesign for onMouseEntered and onMouseExited in CFrame. The new implementation calls all views on enter or exit.
That means if a view is embedded into a viewcontainer and has the same size as its parent if the mouse enters this view the parent will also get a onMouseEntered call.
In the previous implementation only the view did get called not its parents
* tooltip support is now moved into CFrame and you can enable or disable it via CFrame::enableTooltips (state)
2010-02-21 arne
* new animation classes
* using mach_absolute_time() instead of TickCount() for IPlatformFrame::getTicks() for Mac OS X
* fix drawing bitmaps with globalAlpha value other than 1 on Mac OS X
2010-02-17 arne
* new alphaValue member for CView which affects the opaqueness when drawing
* new optional virtual methods in CControlListener: controlTagWillChange and controlTagDidChange
* added CFrame::close() method. Should be called instead of CFrame::forget() when you want make sure to detach the platform view from its parent
* CScrollView draws its border with the background color, not with black anymore
* focus handling change: a view which says wantsFocus() gets focus on mouse down now. A control does not set itself as focus view if beginEdit is called.
2010-02-03 arne
* implementation for sizeToFit() for all controls
* new CView::doDrag() implementation for starting a drag
2010-01-24 arne
* added CControl::setValueNormalized() and CControl::getValueNormalized()
* added key event handling to CHorizontalSwitch, CVerticalSwitch, CRockerSwitch, CMovieButton
* all included controls respect the min and max values (before some only worked between zero and one)
* new behaviour in CFrame::onMouseDown(): the focus view will only be resetted if the focus view is a text edit control, otherwise controls are responsible to set itself as focus view on a mouse down
* removed CControl::delta variable as it wasn't used anymore (if you used it in any of your custom controls, change your code so that it uses kDoubleClick)
* removed CSpecialDigit::getNormValue(), use CControl::getValueNormalized() instead
2010-01-22 arne
* CViewContainer::drawBackgroundRect() draws bitmap now with the same size as the size of itself and not the size of the bitmap
* IBitmapReader interface for custom bitmap loading (only mac implementation yet, win to come)
* updated copyright year to 2010
20010-01-16 arne
* changed size for IDataBrowser::dbDrawHeader() to include line width
* added CBaseObjectGuard object (it's now safe to remove a view while in mouse or key event methods)
* aligning offscreen bitmaps on mac to 16 bytes
2009-12-30 arne
* added IViewAddedRemovedObserver as interface for observing the frame when a view is added or removed
* code cleanup
* added drag support for Windows UIDescription editor
* updated some documentation
2009-12-05 arne
* more fixes because of bugs from platform abstraction
* added sub control listeners to CControl
* changed CControl::setValue(value) to CControl::setValue(value, updateSubListeners)
* CControl now implements IFocusDrawing
* fixing CSlider and CSwitch when using min != 0 and max != 1
* added UIDescription VST3 test
2009-11-24 arne
* fixed some bugs introduced with the platform abstraction
* added color chooser view (and panel for uidescription)
* replaced NAMESPACES makros with namespace VSTGUI
2009-11-20 arne
* completed platform abstraction (except the CVSTGUITimer class)
this means:
- On Windows VSTGUI now only uses GDI+ as the drawing API
- CCoord is of type double
- The text drawing methods expects the strings to be in UTF-8 not ASCII
* because of the changes above, many classes have some changes, here are the most prominent
- CBitmap only has one draw method which actually calls thru to CDrawContext.
- CBitmap transparency is gone. Use PNG Bitmaps with an alpha channel to get the same result.
- COffscreenContext must be created via the static create method.
* the concept behind the platform abstraction is that the platform frame implementation
is responsible to create nearly all the necessary platform objects except bitmaps and fonts for now (this may be the next step).
this way it should be easier to maintain the source and much easier to add more platform implementations.
2009-11-19 arne
* more windows platform abstraction
2009-11-15 arne
* first part of platform abstraction for windows
2009-11-14 arne
* platform abstraction
* mac carbon and cocoa done, windows to be done
2009-10-25 arne
* make text edit transparent on windows
* add focus navigation to windows text edit control
* fix cocoa option menu opening at wrong position sometimes
* add new COffscreenContext constructor which doesn't need a CDrawContext for drawing into a bitmap
2009-10-21 arne
* fix tutorial project (mac only for now) to work with vstgui 4.0
2009-10-18 arne
* added focus drawing support, see IFocusDrawing and CFrame::setFocusDrawingEnabled()
* set CFrame::createDrawContext() deprecated
* added CFrame::onActivate(bool state) which will be called from the platform view/window when the view/window is activated or deactived.
Currently this remembers the focus view on deactivate and set the focus view to zero and resets the focus view when activated.
* changed CBitmap::draw() rect argument to be const (dito for drawTransparent and drawAlpha)
2009-09-27 arne
* added CNinePartTiledBitmap (original from Wolfram)
* moved all destructors into protected for classes which are not allowed to create on the stack
* added amalgamation file vstgui_uidescription.cpp for all uidescription files
2009-09-19 arne
* splittet vstcontrols.cpp into different files
* added CCheckBox control
2009-09-16 arne
* major directory change
* all main VSTGUI source code went into the lib subdirectory
* splittet vstgui.cpp into different files (vstcontrols.cpp should follow)
* vstgui.cpp will still be alive but it will be the amalgamation file
* removed all deprecated methods and classes
* minimum supported system on Mac OS X will be 10.4 (needs check if it's possible to build on 10.4)
* minimum supported system on Windows will be Windows XP. (Windows 98 support will be dropped, but not completely done yet)
* removed all Quickdraw stuff (was only needed for Mac OS X 10.3)
* changed CBitmap (CFrame& frame, CCoord width, CCoord height) to CBitmap (CCoord width, CCoord height)
* removed Mac Metrowerks compiler support
2009-09-15 arne
* CFontDesc refactored, so that custom Font Renderer could be used
* Add global alpha state to CDrawContext
* set version to 4.0
2009-07-15 arne
* bump version info to 3.6 in all source/header files
* merge of vstgui_350
branch changes:
2008-01-14 yvan
* add include malloc for windows
* remove CBitmap (void* platformBitmap) constructor
* GDIPlus is by default enable
* add win project for tutorial
2008-01-12 arne
* fix a flaw in removing views from containers
2008-01-10 yvan
* update copyright and some documentation
2007-12-11 arne
* added closePolygon parameter to CDrawContext::drawPolygon. Now you can draw opened and closed polygons.
* fix some GDI bugs :
- wrong drawing of CDrawContext::drawEllipse
- CDrawContext::getStringWidth does not always work
* CFileSelector should work now in Unicode mode on Windows
* added virtual destructors for IDataBrowser, IScrollbarDrawer
2007-10-12 wolfram
* added virtual destructors for IMouseObserver, CControlListener and IMultiBitmapControl
2009-07-02 arne
* added numSubPixmaps to IMultiBitmapControl and removed it from its subclasses.
* fixed an issue with CDataBrowser where the mouse moved method of the delegate was not called when the scroll view was scrolled via the mouse wheel
* added kMsgViewSizeChanged message which is send from a view to its parent when the size changed.
* added CFrame accessor method to VSTGUIEditorInterface
2009-06-14 arne
* changed focus and popup handling of COptionMenu. When the menu takes focus it doesn't popup anymore. This way you can build
full keyboard accessible plug-ins. Now if the menu has focus and the return key is pressed the menu will popup.
You may need to change some of your code, if you manually called menu->takeFocs() change it to menu->popup()
* added keyboard hook for CFrame (see IKeyboardHook)
* added keyboard handling to IDataBrowser
* moved background drawing in CParamDisplay in its own method drawBack() and changed drawText() method by removing the newBack parameter
* fix CScrollView::makeRectVisible()
* fix crash in COptionMenu when calling getEntry(index) with index higher than number of items in menu
* fix CViewContainer::addView (view, beforeView)
2009-06-06 arne
* make CDataBrowser autosize aware
* CScrollView: when there is a new focus view in the scroll view, the scroll view automatically make this view visible now
* CScrollView: don't use CViewContainer drawBackgroundRect, instead it draws it itself
* CScroolView: fixes to scrolling when used with VSTGUI_FLOAT_COORDINATES
* CTabView: autosize fixes
* CTabView: tab views are now resized to the size of the tab view minus the size of the tab buttons
* CTabView: add a view inset point to add a gap between the tabview and it's children
* COnOffButton is now a focus view (if it has focus you can change the value of it with the return key)
* CParamDisplay: new CPoint member textInset which is used to inset the size for drawing the text
* add tag value to CMenuItem
* changed the constructors of CMenuItem
* changed CParamDisplay::setBackOffset() to take a const CPoint reference instead of a CPoint reference
* added CParamDisplay::getBackOffset()
* COptionMenu can now be used simpler for on the fly context menus. (Empty constructor + popup method)
* fix CViewContainer::drawBackgroundRect when no background bitmap but a color is drawn (sometimes the context draw state was not as expected)
* CFontDesc got some metric methods (only implemented yet for CoreText on Mac OS X)
* CDrawContext::drawArc() should now draw exactly the same on Windows and Mac OS X
* fixes to the focus handling in CFrame
* CViewContainer new method: isChild (CView* view, bool deep)
* ResourceStream class can now be used outside of vstgui.cpp
* Cocoa: fix for wrong key modifier. CONTROL and COMMAND were swapped
* Cocoa: make view click-through
* Cocoa: many more bug fixes
2009-05-06 arne
* fix: calling GDIPlusGlobals::exit () in the destructor of CBitmap after the platform gdiplus bitmap is destroyed not before
* notify all parent views when a view takes or looses focus
2009-04-26 arne
* Cocoa drawing now draws all dirty rects seperatly instead of the union rect
* added another method to provide the BundleRef on Mac OS X (search for VSTGUI_NEW_BUNDLE_REF_DEFINITION)
* removed old unused menu item definitions from vstcontrols.h
2009-03-30 arne
* fix CFrame::scrollRect and CScrollView scrolling
* Cocoa implementation for CFrame::scrollRect
* fix some warnings when building for Mac OS X 10.5 or above
2009-03-08 arne
* fix nervous tooltips
2009-02-21 arne
* move methods only useable with VST in CFrame into the ENABLE_VST_EXTENSION_IN_VSTGUI macro
* can be compiled under Mac OS X 10.4 again
2009-01-02 arne
* fix a possible memory leak when compiling Cocoa support in
* removed some duplicated code
* removed some unused functions in vstgui.cpp (CColor2RGBColor, RGBColor2CColor)
* fix bugs in UTF8StringHelper
* Windows implementation calls frame->onMouseExited() now when the mouse leaves the window
* dropping text on Windows will use unicode text if VSTGUI_USES_UTF8 is enabled
* CNewFileSelector implementation for Windows Vista, older Windows versions still needs implementation
* implementation for missing COptionMenu features on Windows (Icons & prefix numbers)
2008-12-07 arne
* fixes to cocoa tooltip implementation
* the platform implementation should call frame->onMouseExited() when the mouse leaves the platform view/window
* added onMouseDown(..) to IMouseObserver
* fix warnings when building with gcc4.2
2008-12-06 arne
* cocoa tooltip implementation
* added onMouseMoved(..) to IMouseObserver
* small usability improvements to the tooltip implementation
* added CView::removeAttribute(..)
2008-10-23 arne
* fix crash in CMenuItem::setTitle and CMenuItem::setKey
* fix string width calculation with CoreText
* make mac compile again if the new fileselector is turned off
2008-10-20 arne
* fix key steeling from host in cocoa code
2008-09-09 yvan
* fix compilation when LIBPNG is used and win64
2008-09-24 arne
* removed the CBitmap (void*) constructor
* added CBitmap (CGImageRef) constructor
* added CBitmap (GdiPlus::Bitmap*) constructor
2008-07-30 arne
* calling invalid instead of setDirty when adding or removing a view from a view container
* added #pragma comment( lib, "Gdiplus" ) when GDIPLUS is enabled
2008-07-29 arne
* fix bug with setCurrent in COptionMenu and added method getCurrentIndex
* fix some warnings on Windows
2008-07-16 arne
* complete cocoa implementation
* some documentation for the new fileselector class
2008-05-15 wolframfranke
* Fixed compilation errors and warnings when compiling for 10.3.9 on the Mac.
2008-04-29 arne
* fix mac 64 bit build
* eleminate most warnings for mac build
2008-04-27 arne
* first part of a new file selector implementation (currently only mac is implemented)
* timer class on Mac uses 64 bit safe API now
* using double type instead of float for CCoord if VSTGUI_FLOAT_COORDINATES is defined
* first part for Cocoa to register objective-c classes on the fly
* Cocoa is only available if building for Mac OS X 10.5 or later
2008-04-21 wolframfranke
* Fixed memory leak of 1 menuItem in COptionMenu::removeAllEntry ().
2008-03-26 wolframfranke
* Fixed crash in COptionMenu when it is empty.
* Added virtual destructors for IMouseObserver, CControlListener and
* Virtualized CParamDisplay::drawText to allow overriding in inherited classes.
2007-11-08 arne
* COptionMenuScheme is deprecated
* removed CParamDisplay::setTxtFace and getTxtFace
* CoreText support for building 64 bit variant on Mac OS X.
* refactoring of COptionMenu, menu items have their own class (CMenuItem) with support for Icons. (Windows not completely done yet)
Source code changes may occur as item states are not encoded in the title anymore
* some cocoa fixes
* autosizing support for views
2007-10-16 arne
* Cocoa support (except CTooltipSupport and CFileSelector)
2007-10-08 arne
* created vstgui_350 branch
2007-10-03 arne
* add visible state for CView
* onMouseExited wasn't called on Mac OS X when mouse leaves the frame
* changed order for setDirty (false) and invalidRect (size) in CView::invalid () which should fix some issues with non drawing updates
2007-08-17 arne
* Unicode support for Windows (CFileSelector is not completely done yet)
* CDrawContext::drawRect should draw the same now with Quartz and GDI+
* initial fixes to support VSTGUI_FLOAT_COORDINATES for GDI+ (but there a many problems, so it's useless at the moment)
2007-08-05 arne
* CSlider should work with non normalized values if you set setMinValue and setMaxValue
2007-07-28 arne
* use compositing window on windows only if running under vista
* fix a typo in CFrame::getBackBuffer() which leads to screen flicker under Windows XP
* use frame window for CFileselector if ENABLE_VST_EXTENSION_IN_VSTGUI is zero
* add fix from Julien for Drag&Drop from Internet Explorer 7
* fix Logic 7 white rectangle drawing on editor close
2007-07-01 arne
* added new method to CTabView to use custom control as tab switch button
2007-05-20 arne
* fixed a bug in CViewContainer::onKeyDown/onKeyUp, method result was always -1
2007-03-31 arne
* more on doxygen documentation
* changed CTextEdit::setText (char* txt) to CTextEdit::setText (const char* txt)
* changed typedef of CViewAttributeID to unsigned int from unsigned long
2007-03-25 arne
* fix a TextEdit issue on Windows
* fix a CVuMeter issue when using an Offscreen and no background bitmap (thanks to Boris)
* CTooltipSupport for Windows (only XP or above)
* many GDI+ fixes and enhancements (no need for libpng with GDI+ anymore)
2007-01-23 arne
* merged stuff from timo and wolfram (mainly GDI+ stuff)
* added some CRect methods
2006-12-15 arne
* added copy constructors for all CView classes
* changed back order of loose focus message in CTextEdit. Destroying of CTextEdit objects should be done in the parent view not in the controller.
* added method CViewContainer::getContainerAt (const CPoint& p, bool deep) which returns the view container at point p.
* added method CViewContainer::addView (CView *pView, CView* pBefore) to place a view before another view in the internal list.
* added method CRect::unite (const CRect& rect) to unite two rects.
* added resizing to view attributes
* initial mac 64 bit support
2006-11-30 arne
* moved CDrawContext::scollRect to CFrame class
* check for null pointer in CScrollView::notify
* fix CDrawContext::drawArc on Mac
* add inline function MakeCColor to vstgui.h
2006-11-19 arne
* more doxygen documentation
* fixed a CDataBrowser draw issue
* changed most of the control constructors to use const CPoint instead of CPoint
* changed drag/drop implementation on Mac OS X to use the Pasteboard Manager (if building for 10.3 or above)
2006-11-02 arne
* Implemented Offscreen stuff on Mac OS X without the need of quickdraw (and fix Offscreen drawing on mac with and without quickdraw)
* In CTextEdit::looseFocus changed order of loose focus message handling and valueChanged notification so that you can call takeFocus in valueChanged or destroy the textedit control in there.
* Fixed memory leak and possible crash in CTextEdit if someone tries to call takeFocus on the textedit while inside valueChanged of the listener.
2006-09-15 arne
* Removed Mac OS 9 code and Quickdraw code (also the QUARTZ & MACX macro definition, only MAC is left)
* add tab index variable to CTabView
* AEffGUIEditor updated for VST 2.4
* Windows 64bit CFileSelector changes
* fix: don't propagate mouse move message with button state to views other than the mouse down view if there is one
2006-06-25 arne
* fix a crash bug in GDI+ bitmap loader, when the bitmap does not exist
2006-06-23 arne
* add new view : CDataBrowser
2006-06-02 arne
* add method to CScrollView to show a specific rect
2006-05-10 arne
* quartz: moved CBitmap completly to Image I/O in Mac OS X >= 10.4. The downside is, that you can only set the transparent color once.
* CBitmap::setTransparentColor needs to be called explicilty now. The default behaviour is now that there's no transparent color initially.
* removed BEOS code
* when changeing the size of the container in CScrollView another parameter controls if the visible area should stay the same.
* new working implementation of CSplashScreen
2006-04-28 arne
* more bugfixes for CScrollView
* quartz: some changes to line and rect drawing (offset the transformation matrix by 0.5,0.5 for better visibility)
* the mouse move message is now propageted to the underlying view even if no mouse button is pressed
2006-04-13 arne
* new files vstguidebug.cpp/.h
* bitmaps can be loaded by id or by name now
* loose focus bugfix (the loose focus message is now propagated threw all parent views as long as the message is not processed)
* cleaned up mouseOverView code in CFrame/CViewContainer
* bugfix for CFrame::setSize
* some bugfixes for CScrollView and CScrollBar
2006-01-15 arne
* Font changes: CFont removed. New CFontDesc class for custom fonts. You need to change all references of CFont to CFontRef.
* add UTF-8 text drawing with GDI+
* more doxygen docu
2006-01-06 arne
* remove old drawing code. VSTGUI draws only when the system calls it to do so.
* changed CViewContainer addView and removeView to return a bool value
2005-12-21 arne
* new function CDrawContext::scrollRect
* minor fixes to CScrollView
* fixed 3D drawing in CParamDisplay (was drawing outside its bounds)
2005-12-19 arne
* per default USE_NAMESPACE is 1 now if you don't define it
* some more deprecated functions in CDrawContext
* moved VSTGUIEditorInterface and CDropTarget into VSTGUI namespace
2005-12-16 arne
* CControl::getTag() is virtual now
* fixed some stuff with CDrawContext inside the DEPRECATED functions
* added some more documentation
* reorganized GDI+ initialization
2005-12-11 arne
* moved mouse methods from CDrawContext to CFrame where it makes sense
* added kDoubleClick to button state, so that you don't need the old way to call waitDoubleClick
* more GDI+ stuff (it's much faster now)
* removed tooltip handling
* added mouse observer interface to CFrame (tooltips could be handled this way in a more generic fashion, see the CTooltipSupport class)
* renamed CReferenceCounter to CBaseObject and moved the notify method to it
* reorganized doxygen documentation
* changed implementation of CView::attached and CView::removed. If you overwrite them, always call the super class implementation also.
And because of this and the way modal views are handled CSplashScreen needs to be rewritten (not done yet).
* added check for unreleased CViews when DEBUG is set
2005-11-22 arne
* new handling of deprecated methods (on mac osx with gcc you get a warning now when using these methods)
* declared more methods as deprecated
* per default deprecated methods are compiled in, you can change this with the macro VSTGUI_ENABLE_DEPRECATED_METHODS=0
* initial support for Unicode (using UTF8 at the moment)
* added CView::parentSizeChanged() and CView::getVisibleSize()
* fix some mouse wheel coordinate errors
2005-09-23 arne
* proper handling of attached and removed calls of CView (if you overwrite them, always call its parents implementation)
* mac: working again with non composited windows
* CScrollView uses proper stepping algo (at least if the mac implementation is considered as proper ;-)
2005-09-21 arne
* mac: make it compatible again with Mac OS X < 10.4
* mac: complete new mouse handling
* adding CVSTGUITimer class, currently needed in CScrollView
* win: added new mouse handling
* win: first GDI+ stuff (oh it's slow, slow, slow ... needs much work I guess)
2005-09-08 arne
* added some kind of tooltip support
- if the mouse comes over a view which has a kCViewTooltipAttribute, the tooltip view, which can be set on the frame, is changed to the string in the attribute
* fix some stuff with the new mouse handling
2005-09-02 arne
* added new interface class for communicating stuff between CFrame and Editor : VSTGUIEditorInterface.
* because of this the macro PLUGGUI is obsolete and removed.
* specific VST stuff is now enclosed by ENABLE_VST_EXTENSION_IN_VSTGUI like the CFileSelector stuff, where the host is asked about showing a File Chooser. If you need it, define it and set it to 1.
* AEffGUIEditor is now subclassed from AEffEditor and VSTGUIEditorInterface (the most common compiler error now is, that you need to include "aeffguieditor.h" in your editor class header)
2005-08-31 arne
* new mouse handling (onMouseDown, onMouseUp, onMouseMoved, onMouseEntered, onMouseExited)
but the old mouse method is still working, if the new methods are not implemented by the super class
* drawing is now triggered by system events, so drawing outside of the draw method is deprecated
This means :
- all class methods which took a CDrawContext pointer will be changed except the draw methods.
- you call view->invalid () instead of view->setDirty (true) from the User Interface thread.
- value changes from other threads will be checked on idle and the views are marked invalid.
Benefits :
- less hacks
- less code
- cleaner differentiation of drawing and user action.
- works better with hosts which don't follow the VST spec.
* added controlBeginEdit and controlEndEdit to CControlListener
2005-08-22 arne
* branched for 3.0 (vstgui_300)
* removed all MOTIF code
* some code cleanup
* set version to 3.5
VSTGUI 3.0 branch
2005-08-12 arne
* initial support for X/Y mouse wheel (currently only macosx, don't know how ms windows handles this)
2005-07-29 arne
* bugfix: CDrawContext doesn't remember font style and does not change the font if only the font style changed.
* quartz: keyboard event handling works now, so that hosts will get all key events we don't handle.
2005-07-22 arne
* quartz: little optimization in CDrawContext::beginCGContext
* quartz: cleaned up the event handler
* stop advancing focus if the last focusable control has focus.
2005-07-22 arne
* fixed a regression bug in AEffGUIEditor, where idle() was not called
* only CKnob and CSlider want focus, as they are the only controls handling key strokes.
2005-07-14 arne
* moved CFileSelector in its own file
* quartz: fixed some bugs with COffscreenContext
2005-07-09 arne
* the CView::draw method now draws the background image if it has one.
* new CFrame::updatesDisabled method to lock idle updates.
* bug fix for overlapping control drawing.
* add a style to COnOffButton so that the listener can be called before doIdleStuff is called.
2005-07-02 arne
* windows: CFrame uses a backbuffer now when USE_ALPHA_BLEND is on. This fixes a performance issue with some graphic cards.
The drawback at the moment is, that drawing can only occur when the CFrame calls the views to draw. You can not draw anymore
by creating your own drawcontext.
2005-06-25 arne
* adding keyboard focus navigation
* add bool bWantsFocus to CView. If this is set the view is included in keyboard focus navigation.
2005-06-24 arne
* merge newframe back to main
* fixed some gcc warnings
2005-05-13 arne
* quartz: if the CFrame is embedded into a window composited window, the setSize(..) method does not resize the window anymore.
* quartz: some window compositing fixes
* the tabs in a CTabView can be aligned
* mac os x: quartz will be used per default now
2005-05-05 arne
* added CBitmap::setNoAlpha(..) and CBitmap::getNoAlpha(). You can set this for PNG images which don't have an alpha channel to speed up drawing on windows.
* quartz: some window compositing fixes
2005-04-30 arne
* windows: with libpng, when a bmp image was loaded, don't use AlphaBlend instead use old BitBlt.
* quartz: non png images can be drawn with transparent color again.
2005-04-29 arne
* added CTextLabel
* mac: the CFrame can be placed into HIScrollViews
* mac: using static objects for Quicktime GraphicsImporter to speed up loading of images
* mac: using CGImageCreateImageInRect on 10.4 for faster drawing of clipped images
2005-04-11 arne
* removed CFrame::isSomethingDirty
* added a check in CViewContainer::isDirty if the subview is inside the view container size
* fix for overlapping views not drawn everytime
* quartz: fix some drawing bugs
2005-03-25 arne
* quartz: fix drawing of transparent bitmaps when OLD_TRANSPARENT_BITMAP_MODE is defined
* fix a bug for quickdraw's CDrawContext::setClipRect
* quartz: on composited windows, the ctextedit creates a native UnicodeTextControl instead of an MLTE Object
* a try to fix redraw problems if the system sends a redraw and some views won't get updated completly
* changed the implementation of CView Attributes. Documentation removed. Will be updated before the 3.0 release.
2005-03-05 arne
* fixed a memory leak on windows with IDropTarget (thanks bigtick)
* add automatic initialization of the xpos and ypos vars in the CSpecialDigit constructor (thanks bigtick)
2005-02-18 arne
* new coordinate typedef CCoord, so that we have the possibility to change the coordinate system to floating point
* small bugfix in CDrawDevice::drawRect
2005-01-04 arne
* the following CDrawContext methods have a new optional parameter "CDrawStyle": drawPolygon, drawRect, drawArc, drawEllipse.
the draw style is either kDrawStroked, kDrawFilled or kDrawFilledAndStroked.
* added another cursor : kCursorHand
* fixed some problems compiling the code on microsoft windows.
* fixed some problems with alphablending bitmaps on windows.
* added example plugguieditor.cpp file to be used for non VST usage. (There's an example AU plug in the drawtest module)
* added CTabView class.
* changed constructor of AEffGUIEditor to take a void instead of an AudioEffect pointer, so that subclassing
either from PluginGUIEditor or AEffGUIEditor is as simple as possible.
2004-11-29 arne
* started to clean up the code (check your code, many methods in CView, CViewContainer & CFrame are declared const now)
* started to make a better documentation (see the headers), more to come
* renamed pEditView in CFrame to pFocusView as well as setEditView to setFocusView and getEditView to getFocusView ;-)
* the following methods in CView are now deprecated : setParentView, setFrame, getFrameTopLeftPos
* removed old windows drag&drop code
* use generic rgb color space for quartz code
* fix an issue with quartz and OLD_TRANSPARENT_BITMAP_MODE when the transparency color changed
* some drawing optimizations
* new method in CDrawContext to draw multiple lines at once : CDrawContext::drawLines ()
* if you call beginEdit in any CControl class the control will be the focus view now
2004-10-03 arne
* added generic attributes interface to the CView class (see CViewAttributes.rtf)
* added CFrame::setPosition to change the location of the view inside it's parent view (mac quartz only at the moment)
* some mac quartz bugfixes
* some bugfixes for CScrollView
* added localToFrame and frameToLocal methods to CView
* bugfix for CViewContainer::getCurrentView (). Didn't work for nested containers (W.Franke)
* quartz: CFrame::getSize returns the size of the mac control now instead of the window
* CViewContainer::getViewAt changed so that you can get the deepest view at that position
* CControls set now the editView of the frame on beginEdit and set it to zero at endEdit (W.Franke)
2004-08-30 arne
**** bump version to 3.0 !
* change CView::getParent to CView::getFrame
* correct implementation of beginEdit and endEdit in all CControls, you should change your code of custom controls from getParent->beginEdit (tag) to beginEdit () ;-)
* new drawArc method in CDrawContext which takes angels as parameters
* added some kind of runtime type information.
* mac: changed the kInfinitySymbol to be 'oo' as the mac character is not available in Helvetica
* added two new cursor types (kCursorCopy & kCursorNotAllowed). (Currently only for Mac OS X, Windows will follow)
* complete new drag & drop implementation. Now all views can react if something is dragged over it.
* some fixes to the update methods when drawing with offsets and COffscreenContexts.
* mac: the macro 'CARBON' is changed to 'TARGET_API_MAC_CARBON' as this is what the Mac OS itself uses.
* mac: compiling with VSTGUI as namespace works now
* mac: use current API for creating menus. (fixes some bugs with the old implementation, where you could not create menuitems like "-3db")
2004-08-25 arne
* mac: change COptionMenuScheme implementation to be optional as it only works for OSX Version >= 10.3 (macro: MAC_ENABLE_MENU_SCHEME)
2004-08-15 arne
* added CView::acceptDrop. On Mac OS this changes the mouse cursor if a view accepts a drop. For Windows there is currently no action. But it should follow. And maybe it will change so that a real tracking is possible.
* with the new update mechanism the modal view is now updated first in CFrame::update, to make sure it will be drawn in all circumstances, even if it is transparent and a view below it is dirty.
2004-08-06 arne
* quartz: - cache the CGImageRef, so that it is not created every time the CBitmap is drawn. (Performace will be much better with the next os release)
- remove the SetPort/GetPort stuff in AEffGUIEditor. It is not needed anymore.
2004-07-30 arne
* better streamlined mechanism for CViewContainer::update (you can turn this off, if it does not work for you in vstgui.cpp with the NEW_UPDATE_MECHANISM macro at the top)
this is not tested with Containers using offscreens (but should work). This should fix the problem that non-transparent containers were not really nestable.
* quartz: removed the focus handlers for now as most hosts does not set the focus back on their windows if someone clicks into it. This way they get all key downs again.
* added setListener() to CControl
2004-07-12 arne
* quartz: fix a bug in COffscreenContext::copyTo if the offsetScreen point of the context is not at 0:0
2004-06-28 arne
* quartz: fix clipping issues
* fix a bug in CViewContainer's update method if the container is transparent and embedded into another CViewContainer
2004-06-26 arne
* the modal view is now added to the frame like all other views.
* added a reference counting class. CView, CBitmap and CDrawContext are subclasses of it.
* clip handling is more consistent now.
* some quartz changes: - first try to implement CDrawDevice::drawArc (not yet finished)
- COffscreenContext is now more implemented, copyTo works in most situations
- native mac controls can now be embedded into the frame, but it does only work correct with compositing enabled windows
2004-06-20 arne
* AEffGUIEditor::draw will now draw only the rectangle it should, or as in the past the whole editor if no rect is given.
* windows: 64 bit compatibility
2004-06-12 arne
* CFrame is now subclassed from CViewContainer (thanks Wolfram Franke for the hard work)
- One thing to check: CFrame::removeView was declared with (CView *pView, const bool &withForget = false), this has changed to
(CView *pView, const bool &withForget = true). So if you have somewhere in your Code frame->removeView (view) you must change it
to frame->removeView (view, false).
* mac: FDebugPrint implementation for Classic and Mac OS X
* changed the CColor unused member variable to be alpha all over the place (no more MS C++ internal compiler error)
* macosx: the CFileSelector can now be used to get unix path strings. If vstFileSelect->future[0] is 1 the internal implementation will
return unix paths and set vstFileSelect->future[0] to 0. If the host supports openFileSelector vstFileSelect->future[0] will
be 1 and the results are in the old FSSpec format.
* the CFileSelector is now usable when PLUGGUI is set.
* using clipping all over the place
* quartz: rechecked the whole graphics drawing functions to work as expected
2004-05-31 arne
* mac: COptionMenuScheme works now with QUARTZ (Mac OS X 10.3 and above)
* mac: QUARTZ implementation of CDrawContext::drawEllipse and fillEllipse
* added a global COptionMenuScheme variable, if set all menues will use it
* fix a possible crash in COptionMenu::mouse (thanks Wolfram Franke)
2004-05-22 arne
* moved pBackgroundBitmap and its accessors into CView from CViewContainer, CFrame and CControl as suggested by Wolfram Franke
* mac: added implementation for quartz CBitmap::CBitmap (CFrame &frame, long width, long height)
* windows: prevent a free memory read in UDropTarget::Release (submitted by Justin Caldicott)
2004-04-27 arne
* changed CControlListener and added a method to intercept modifier clicks so the listener can decide if the control should handle
this click. This makes it easy to implement some kind of 'MIDI Learn' functionality.
Note: you need to implement this new method in your CControlListener, otherwise there will be compile errors. If you don't want
this feature, just return 0.
* changed all controls to support the new CControlListener method.
* mac: bugfix for CTextEdit::takeFocus under quartz.
* mac: changed fonts from arial to helvetica as on some OS X installations arial is not installed.
2004-04-17 arne
* windows: support for alpha blended images like it is on Mac OS X with quartz
note: this implementation uses libpng (macro is USE_LIBPNG)
* CDrawContext::setClipRect uses the offset now
* COptionMenu::getSubMenu added
* mac: fixed some quartz drawing stuff
* mac: fix for CFrame::getPosition with quartz
* mac: removed CARBON_EVENTS macro as it only works with QUARTZ
2004-04-11 arne
* CViewContainer should be completely nestable now
* mac: implemented the quartz offscreencontext for existing bitmaps
2004-03-23 arne
* CTextEdit use the CParamDisplay::stringConvert functions to draw text
* Fix of possible crash in CFileSelector::run
* CFM Carbon plugs can now draw text antialiased even if the host does not support it
(Thanks to Wolfram Franke for this stuff)
* mac: added waitDoubleClick and waitDrag with carbon events
2004-03-19 arne
* add CView::getFrameTopLeftPos method to get the topleft position of the view relative to the frame
* call AEffGUIEditor instead of AudioEffectX for beginEdit and endEdit
* mac: small changes to allow to use a CDrawContext on every Window even those without a CFrame
2004-03-01 arne
* mac : fix for RGBA Bitmaps on Displays with less than million colors
2004-02-16 arne
* mac : fix compile error in CDrawContext::getMouseLocation when compiling for CFM plugs
2004-02-06 arne
* mac : focus fix
2004-02-01 arne
* add empty CBitmap constructor for easy subclassing
* mac : add beginEdit/endEndit hook for AudioUnits
* windows : fix for CFrame::setSize for Orion submitted by Ben Allison
2004-01-02 arne
* mac: corrected code for right mouse click with carbon events
2003-12-15 arne
* fix a typo in COptionMenu::mouse
* mac: fix a typo in CDrawContext::setLineStyle
* mac: fix for CDrawContext::getMouseLocation problem with DP 4
* mac: on compositing windows the control is now added to the kHIViewWindowContentID if it exists.
* mac: should compile on Mac OS X 10.2 again if CARBON_EVENTS are defined.
2003-12-05 arne
* fix compile problem of COptionMenu::takeFocus on Windows
2003-12-04 arne
* fix for nested CViewContainers
* Mac: fix for using vstgui for other than VST ;-)
2003-11-15 arne
*** WARNING ***
existing code need to be changed !!!
You need to change your CView::mouse methods to add the buttons parameter and your calls to CDrawContext::getMouseLocation inside CViews should be changed to call CView::getMouseLocation instead.
* fixed the CViewContainer stuff with Quartz.
NOTE : I had to change the way how the view can get the current mouse location. It has to ask itself now as the CView class can
check if it is embedded into a CViewContainer which the CDrawDevice couldn't.
* all mouse methods get another parameter: long buttons
Mac Only:
* changed the drag and drop stuff for Carbon Events
* With CARBON_EVENTS == 1, CFrame acts now like a Mac Toolbox Control. It works even on compositing enabled windows and on non left-top positions.
2003-11-12 arne
* Bugfix for CFrame::setSize for hosts which support "audioMasterSizeWindow" submitted by Justus Henkmann (TC Works)
2003-10-10 arne
* Bugfix for COptionMenu::addEntry submitted by Nicolas Bronnec
2003-09-18 arne
* incorporated Marc Poirier's CTextEdit fixes
* quartz: bugfix in drawString, set cliprect so that the text won't draw outside
* carbon events: some code cleanup
2003-09-17 arne
* Added Carbon Events handling (#define CARBON_EVENTS 1)
* Implemented QUARTZ drawing. (#define QUARTZ 1)
* CSlider doesn't use a COffscreenContext for drawing on MacOSX anymore
Quartz Notes:
- Not all graphic operations we use in vstgui have an equivalent in quartz.
Currently unsupported are :
- all drawing modes except kCopyMode
- getPoint ()
_ floodFill ()
- copy from Screen to Offscreen
- to support alpha drawing on all operations I have made changes to CColor. The 4th variable is now the alpha value where 255 is opaque and 0 is transparent.
- transparent bitmap drawing is now handled with the alpha value of the bitmap, if you want the old behaviour turn on OLD_TRANSPARENT_BITMAP_MODE
- because of some strange things with CViewContainers while doing mouse downs the drawcontext has an offset which results in wrong drawing. This needs to be fixed !!!