Callicore Desktop - A PHP-GTK2 Framework

I haven't posted for awhile but I've been doing quite a bit of work on Writer, well rearranging actually, to make the code easier to use and manage.

Callicore Desktop is the base of Writer (really Callicore Writer) - it's basically a framework for PHP-GTK2. Don't look at me like that, I haven't lost my mind. It's not really a framework in the traditional MVC web application sense. Instead it's a group of fairly loosely coupled widgets and classes with an emphasis on clean code. There are a LOT of singleton classes enforced - more than would ever be feasible in a web app. The point of CC Desktop is to provide a base of commonly used widgets that take care of "minor details" so creating a program is quick and painless.

Callicore Desktop is designed to be modular - so you can drop your program in the programs folder and send the name to Callicore's run.php to start. For example - I have a shortcut for Writer that looks like this - Start in: C:\callicore\desktop\trunk (that's where run.php is located) Target: "C:\php\php-debug\php-win.exe" run.php writer. I even created windows icons so the shortcut can be pretty :)

I still have a lot more to write for Callicore Desktop, but right now there are several core classes to handle common actions. There's a config class that writes out .ini files but can be handled like a basic object, a folders class to find things like "My Documents", and where to write application data, a tooltips singleton class to simplify handling, a toolbar class that handles toolbar customization, an actions class to consolidate gtkactiongroups and gtkaction handling...the list goes on. The base classes are designed to make life easier. Callicore Desktop even includes a pretty stock icon set (to replace hicolor which is nasty on windows) and an additional set of icons. The work is handled for you, all you have to do is use the name of the image.

I'm currently working on some heavy duty dual treeview widgets that deal with drag and drop, and I still have a lot of code lying around that needs to be integrated into the system, but you can take a look at the Callicore site or directly at the Code. Suggestions are always welcome.

BTW: the icons are based on Nuvola and are LGPL, the code is all GPL


Be the first to write a comment!

Post a Reply