Home Products FAQ About Us
Home
Products
Wormhole
Flash Comet
Cropl II
Contract Services
Photography
About Us
Reviews
Downloads
Beta Software
Contact/Support
Popups & Viruses
Purchase (Kagi Store)

CroPL II -- Making Cross-Platform Development easier

CroPL II is a C++ application framework and utility library for single-source Mac/Windows applications. It allows you to write simple applications without a single line of platform-specific code, and reduces the porting difficulty of larger applications. It is provided as source code, allowing you to see exactly what's going on inside CroPL.

CroPL II offers:

  • Application, Document, Window, Dialogs, and Command-Handling classes
  • Support for many control types: radio buttons, checkboxes, list and combo boxes, pulldown menus, Framed windows, trackbars, progress bars....
  • Support for "metal" appearance on Mac OS X (10.3 and above)
  • Cross-platform drawing, either using native SDK/QuickDraw/Quartz or OpenGL
  • Support for offscreen bitmaps, icons, metafiles, and OpenGL textures
  • Low-level support for menus, controls, time management, resources, fonts, and sound
  • File and File system handling, even for cross-platform files
  • TCP/IP and UDP/IP Networking
  • Recurring Timers for regular events
  • Support for multi-threaded applications
  • Self-arranging dialogs that look "right" on any platform
  • Simple XML parsing
  • QuickTime Music support
  • Game support features such as full-screen windows, and polling for key presses and mouse buttons. The OpenGL support provides 2D overlays, an easy 3D environment, and support for loading textures and MeshWork 3D models.
  • ...And much more!

On Macintosh, CroPL II supports Mac OS X 10.3 and above (and generates Universal Binaries). It uses both Carbon and Cocoa internally, and the event model is entirely modern CarbonEvent based.

On Windows, CroPL II supports Windows 98/ME/2000/XP. It it built around the unmanaged Win32 architecture (not .NET) for maximum performance.

The API for CroPL is identical under both platforms, a program written for one need only be recompiled to run on the other (although images and certain other resources may need to be supplied for each platform).

In the near term, CroPL II is also in a state of flux, API wise. If you want to develop with it, send me e-mail and I'll give you a download link; it's perfectly servicable (CrystalFire Software is writing apps in it now). But you need to be aware that the API will change underneath you over the next few months, and be willing to redesign small parts of your application with new releases until we declare the API stable.

An FAQ for CroPL is available.

Contact me at ckempke at crystalfiresw.com if you want more information about CroPL II.

The Competition

The folks at KSOFT make a competing product (competing in the sense that their product has a stupid name, too). CroPL and CPLAT (the KSOFT product) are about the same age, but theirs has been commercial for quite a bit longer. I can't comment on their feature set or compatibility (I don't use CPLAT, and haven't looked at it in several years), but if CroPL doesn't meet your needs for some reason, CPLAT might.

There are other (primarily open-source) toolkits available (QT most notably) that provide similar functionality. These systems largely try to provide their own, cross-platform interface. CroPL attempts to provide a very native interface on each platform; the same program might look quite different running on the Mac vs. Windows.

There's also Java. There are various tradeoffs to be made between using a C++ framework like CroPL, and using Java, even beyond the basic "which language do I prefer to code in?" A full exploration of this is beyond the scope of this page. For more information, check into the long- running holy war on any programming newsgroup for, uh, "passionate" arguments for each side. Then ignore them and use whichever one you prefer.


Copyright (c) 2006, CrystalFire Software | Privacy Policy | Feedback | Contact Us
CrystalFire Software - 3008 Acorn Court, Philomath, OR 97370