Notice
Vaca library is an experiment to wrap Win32 API, we do not encourage you to use Vaca in production environments.
The API is likely to be changed in the future.
News - TN011 Deprecated — Monday, September 22, 2008
You have to know that Technical Note 11 (TN011) is completelly
deprecated. The behavior of Widget::setLayout and
Widget::setConstraint was modified in Vaca 0.0.7 but that
Technical Note wasn't updated. See the documentation of
Widget::setLayout for more information, and ignore TN011.
Sorry for the inconvenience.
News - Vaca 0.0.7 — Saturday, September 20, 2008
New Vaca release with important changes in the API. Mainly the
addition of SmartPtrs to make the management of GDI objects
more easy. Changes:
- More documentation (see Documentation section).
- Added MenuPopup.
- Added RefWrapper class and Ref() method to support references in Bind().
- Added GraphicsPath.
- Added HttpRequest class.
- Added FontMetrics class.
- Added StatusBar widget. Now Frame has an associated StatusBar.
- Added Separator widget.
- Added RadioGroup::onChange event/signal.
- All methods that return Win32 handles (HWND, HDC, HBRUSH,
HRGN, etc.) now are called getHandle().
- Added GdiObject and SmartPtr.
- Brush, Cursor, Font, Icon, Image, ImageList, Pen, and
Region are SmartPtrs.
- New Paths example.
- Widget destructor deletes children.
- Renamed MouseButtons to MouseButton.
- Renamed Borders to Sides.
- Fixed Bix::getPreferredSize when EvenX or EvenY flags are activated.
- Now MenuItem::setEnabled/Checked can be used although the item isn't
in a parent Menu.
- Removed SelfDestruction class (with SmartPtrs it isn't needed anymore).
Download Vaca 0.0.7
News - Vaca 0.0.6 — Saturday, August 16, 2008
New Vaca release. Changes:
- Removed dependencies with Boost library.
- Added Slot/Signal and Bind (placeholders aren't available, sorry).
- Added ConditionVariable (from William E. Kempf code, Boost.Threads).
- Added TimePoint.
- New classes: WidgetClassName, WidgetHitTestEnum.
- Changed all enumerations to Enum and EnumSet.
- Renamed CreateHWNDException to CreateWidgetException.
- Now String::getFile* methods use reverse_iterator.
-
Added Command stuff (Command, CommandSignal, CommandsClient),
MenuItem and ToolBar uses commands now.
- Renamed Widget::acquireFocus to requestFocus.
- Renamed Widget::acquireCapture to captureMouse.
- Renamed Widget::releaseCapture to releaseMouse.
- Renamed Widget::onIdAction to Widget::onCommand.
- Thanks to Emil Kirichev:
- Fixed String::fromInt to handle negative numbers.
- Fixed a problem with mouse coordinates in all mouse events. Now we
use MAKEPOINTS to get negative coordinates when we capture the
mouse.
- Added Graphics::drawPolyline(const vector<Point>& points).
-
Added more signals for Widget: See LikeScript example
(idea of Przemyslaw Szurmak).
-
New Bix layout manager (also
for Java
Swing). Next release will have something more useful
like SWT's GridLayout or
XUL.
-
Removed all utilities (they were too big to include inside the
main Vaca distribution).
- Fixed a lot of bugs.
|
What is Vaca?
Visual Application Components Abstraction
A library to program
applications for MS-Windows using C++ language and classes, with a
simple OOP approach (plus STL, Signal/Slot, etc.). It's a wrapper for
the Win32 API, but with additional functionality like dockable tool bars
and layout managers.
Note: Vaca doesn't depend on Boost libraries anymore.
Minimal Example
#include <Vaca/Vaca.h>
using namespace Vaca;
class MainFrame : public Frame
{
Label label;
public:
MainFrame() : Frame("Vaca Example")
, label("Hello World!", this) {
setLayout(new ClientLayout);
setSize(getPreferredSize());
}
};
int VACA_MAIN()
{
Application app;
MainFrame frm;
frm.setVisible(true);
app.run();
return 0;
}
Alternative Example
#include <Vaca/Vaca.h>
using namespace Vaca;
int VACA_MAIN()
{
Application app;
Frame frm("Vaca Example");
Label label("Hello World!", &frm);
frm.setLayout(new ClientLayout);
frm.setSize(frm.getPreferredSize());
frm.setVisible(true);
app.run();
return 0;
}
|