Thursday, October 24, 2013

Creating Irie Pascal 3 October 2013


This is just a short progress report on how the next release of Irie Pascal is coming along.


Support for creating Windows applications with graphical user interfaces (GUIs) is THE new feature planned for Irie Pascal 3. I've been building a library (called StrongLib) to make it simple and easy to build GUI applications. When StrongLib is completed I'll integrate it into Irie Pascal.

So far, StrongLib can be used to create  windows (and window classes), menus, and keyboard accelerators (also called keyboard shortcuts). The next step will be to add support for creating controls in the windows (like buttons, labels, list boxes, etc).

Below is a screen shot of  a little application I built using StrongLib.



Below is the C code for the application.


#include <stronglib.h>

static STRONGLIB_APPINFO modAppInfo;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                     PSTR szCmdLine, int iCmdShow)
{
    int iExitCode;

    ZeroMemory(&modAppInfo, sizeof modAppInfo);
    modAppInfo.cbSize = sizeof modAppInfo;
    modAppInfo.idAppName = STRONGLIB_TO_UCODE_NAMEID(MOD_UNICODE_NAME_APPNAME);
    modAppInfo.idMainWnd = STRONGLIB_TO_UCODE_NAMEID(MOD_FRAMEWND_ID);
    modAppInfo.pAppData = &modAppData;

    StrongLibAppRun(&iExitCode, &modAppInfo, hInstance, szCmdLine, iCmdShow, NULL);

    return iExitCode;
}
OK, I cheated a little bit. If you look closely you will see that some parts of the application are not defined.  For example, the modAppData variable describes the application's GUI and would normally be filled in by Irie Pascal or by some other external application, but I haven't created anything to fill in modAppData yet, so the actual application has some extra code to initialize modAppData.

Wednesday, February 13, 2013

Creating Irie Pascal 3 February 2013

What's been going on with Irie Pascal?


The first thing to say is that there has been a change in plans. The next release of Irie Pascal (i.e. Irie Pascal 3) will not be aimed at web development. The plan now is for Irie Pascal 3 to target desktop development.

Another change is that Irie Pascal 3 will only support Windows. So that means saying goodbye to the other operating systems (Linux, FreeBSD, etc), at least for now.

I apologise if these changes are an unwelcome surprise to anyone.

Why this change of plans?

Well, its quicker and easier to target desktop development for Windows rather than targeting web development for a number of different operating systems. One reason for this is that by targeting desktop development I don't have to worry about web servers and hosting web applications.

What's next

I don't want to go into too much detail, mostly because I don't want to raise any false hopes (I'm slowly learning my lesson about that), but right now I'm in the design phase. I've pretty much finished the design, but now I'm documenting it (double-checking as I go along).

The next thing I will probably tackle is creating a few custom Windows controls. Windows comes with a common control library with most of the controls you need for a Windows application (buttons, labels, list boxes, edit boxes, and many more), but there are a few missing controls that I think will be very useful in many applications.

More frequent updates

I'll be posting more frequent updates from now on.