VSTGUI: New Stuff in VSTGUI 3.6 and earlier

VSTGUI 4.10 Graphical User Interface Framework not only for VST plugins

New Stuff in VSTGUI 3.6 and earlier

# New mouse methods

In earlier versions there were only one method in CView for handling mouse events (VSTGUI::CView::mouse). In this version there are five new methods :

- VSTGUI::CView::onMouseDown (new in 3.5)
- VSTGUI::CView::onMouseUp (new in 3.5)
- VSTGUI::CView::onMouseMoved (new in 3.5)
- VSTGUI::CView::onMouseEntered (new in 3.5)
- VSTGUI::CView::onMouseExited (new in 3.5)

For convenience the old method is still working, but should be replaced with the ones above.

# Other new things

- VSTGUI::CDataBrowser (new in 3.5)
- VSTGUI::CScrollView (new in 3.0)
- VSTGUI::CTabView (new in 3.0)
- Mac OS X 64 bit support via Cocoa. (new in 3.6)
- New Fileselector class : VSTGUI::CNewFileSelector (new in 3.6)
- VSTGUI::COptionMenu refactored. Supports icons for menu items. (new in 3.6)
- View autoresizing support. (new in 3.6)
- Bitmaps can be loaded either by number or by name (see VSTGUI::CBitmap) (new in 3.5)
- VSTGUI::CTooltipSupport (new in 3.5)
- VSTGUI::CVSTGUITimer (new in 3.5)
- System event driven drawing (new in 3.5)
- Unicode support via UTF-8 (new in 3.5)
- New font implementation (new in 3.5)
- Windows GDI+ support (new in 3.5)
- Mac OS X Composited Window support (new in 3.0)

# About deprecation in version 3.6

With VSTGUI 3.6 the VSTGUI_ENABLE_DEPRECATED_METHODS macro has changed to be zero per default. You should change your code so that it compiles without changing the macro. All methods marked this way will be unavailable in the next version.

# Code changes for existing VSTGUI 3.5 code

- COptionMenu was refactored and uses the CMenuItem class for menu items. Item flags are not encoded in the item title anymore.
- CParamDisplay::setTxtFace () and CParamDisplay::getTxtFace () is gone. The text face is already in CFontRef.
- You need to use the new CNewFileSelector class instead of CFileSelector if you want to use it on Mac 64 bit.

# Code changes for existing VSTGUI 3.0 code

- Per default CBitmaps don't get a transparent color on creation. You must call bitmap->setTransparency (color) explicitly. And this may only works once depending on the internal implementation.
- CViewContainer addView and removeView returns a bool value now.
- Mouse methods moved from CDrawContext to CFrame.
- Custom views which override attached and removed must propagate the call to the parent.
- VST specific code is enclosed with the macro ENABLE_VST_EXTENSION_IN_VSTGUI, which per default is set to zero. If you need them you must enable it (best practice is to set it in the prefix header or the preprocessor panel in your compiler).
- Removed all CDrawContext parameters from CView methods except for draw and drawRect. You need to change this in your custom views and controls.
- Every usage of CFont must be changed to CFontRef.
- When using GDI+ or libpng on Windows there is no need in using any offscreen context for flicker reduction as VSTGUI uses a backbuffer for drawing.
- Custom controls must implement the CLASS_METHODS macro if it directly inherits from CControl. Otherwise you will get a compile error.
- Custom controls which don't implement the new mouse methods must override onMouseDown and return kMouseEventNotHandled so that the old mouse method is called.

## CView method changes

For custom views you need to change the following methods because their parameters changed:

- onWheel
- onDrop
- onDragEnter
- onDragLeave
- onDragMove
- takeFocus
- looseFocus
- setViewSize

## AEffGUIEditor method changes

- valueChanged

# Code changes for existing VSTGUI 2.3 code

please see the "Migrating from 2.3.rtf" file in the Documentation folder.