|
|
This is the homepage of my Shiny library. Since I have the habbit of clicking
the first FAQ link I see when visiting a project page for the first time, I put
mine right here on the main site.
|
|
Go back to the projects index.
What the heck is this 'Shiny' ?
Shiny is lightweight Win32 GUI toolkit and wrapper library. It is meant to be used
along with direct access to various Win32 APIs. If you are familar with the Win32 API
you'll quickly find your way through the wrappers and classes of Shiny. The name as
well as the library itself is inspired by the 'Tiny' library which my friend
Alberto Demichelis initially wrote for
developing PocketPC applications.
A small summary of design goals and features that might make
Shiny appealing to you:
- Lightweight and contained in a single header file
- But still modular, one can use as many or little of Shiny as desired
- Documented with Doxygen
- Designed to make Win32 programming as fast and simple as possible
- Easy to understand for every Win32 programmer
- Simplify or even remove common and repeating Win32 programming tasks
What would a small Shiny program look like ?
Take a look at this example.
What functionality exactly does Shiny have ?
It's probably best if you look in the documentation / source, but here is an overview:
- UI elements such as buttons, combo boxes, edit controls, status bars etc.
- Windows and dialogs
- Message maps
- Many common controls and dialogs
- Menus and toolbars
- Threads and related functionality like critical sections etc.
- Clipboard
- GDI DCs, bitmaps, brushes, pens, fonts etc.
- Sockets
- File enumeration
- Timers
- Registry
- Bitmap loading / writing
- Tray icons
- Network resource enumeration
- Win32 debugging functions
- XML parsing
- Some WNet / WinInet wrappers
- Some unusual and optional (enable with a #define) features such
as OpenGL & DirectDraw support, data compression, STL helpers and
other things you wouldn't expect to be there
Some functionality in Shiny (mainly the stuff in the last list point) is a bit 'off topic'
and might be removed from future releases.
Where can I download it ?
Shiny is currently not available for download. I want to clean it up a bit and change some
parts of the design before I release it again. This might take a while. Shiny is still used for
all GUI and misc. Win32 parts of my personal projects.
Is Shiny ready for production use ?
Shiny was used for almost all Win32 related code in my recent
projects and served me well. It's also currently used in a commercial project. There
is some code in Shiny which is not well-tested. There is also some 'off-topic'
functionality that might be removed in future versions.
On which platforms / compilers can I use it ?
Shiny was developed entirely with VS.NET 2002 / 2003 and makes use of VC++ specific extensions.
The nature of the library binds it to the Win32 platform. I only intended the library to work
on 2000 and XP, so much functionality will not work on NT and 9x platforms. The basic Win32
User/GDI/Kernel functionality should work on any platform.
What about tutorials, examples and documentation ?
The API itself is documented with Doxygen. This
documentation in HTML format is included in the download, but
you can extract it yourself from the source if you wish. The library comes with a single
small example. There are no tutorials or further example programs at this time. Before the
public release a few people were already using / evaluating Shiny. They all thought it was
very simple to use, understand and modify Shiny.
What is the current version of Shiny, and when will a new one come out ?
Current version is 1.5 as defined by _SH_VERSION, a new version will basically come
out whenever I modify the library for my own needs and feel like uploading it.
Will you add feature XYZ to Shiny ?
Probably not. I only add features that I need during the development of other projects
that use Shiny for their Win32 code. This way I ensure that I don't bloat the library.
It also prevents from adding features just to realize they are implemented the wrong way
when I finally start using them.
Why has every function / class this ugly _Sh prefix ?
I sort of like it. If this annoys you, removing the prefix and putting the library in a
namespace is a matter of minutes.
I found a bug in Shiny, how do I report it ?
Just contact me, it's very much appreciated.
Under which license is Shiny ?
It's currently LGPL.