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.