-/* $Id: mac.c,v 1.2 2002/11/23 15:11:13 ben Exp $ */
+/* $Id: mac.c,v 1.5 2002/12/06 00:09:34 ben Exp $ */
/*
* Copyright (c) 1999 Ben Harris
* All rights reserved.
#include <DiskInit.h>
#include <Gestalt.h>
#include <Resources.h>
+#include <Script.h>
#include <ToolUtils.h>
#include <assert.h>
static void mac_activatewindow(WindowPtr, EventRecord *);
static void mac_activateabout(WindowPtr, EventRecord *);
static void mac_updatewindow(WindowPtr);
+static void mac_updatelicence(WindowPtr);
static void mac_keypress(EventRecord *);
static int mac_windowtype(WindowPtr);
static void mac_menucommand(long);
static void mac_openabout(void);
+static void mac_openlicence(void);
static void mac_adjustcursor(RgnHandle);
static void mac_adjustmenus(void);
static void mac_closewindow(WindowPtr);
if (DialogSelect(event, &(DialogPtr)window, &item))
switch (item) {
case wiAboutLicence:
- /* XXX: Do something */
+ mac_openlicence();
break;
}
break;
EndUpdate(window);
break;
case wLicence:
- /* Do something */
- break;
+ mac_updatelicence(window);
+ break;
+ }
+}
+
+static void mac_updatelicence(WindowPtr window)
+{
+ Handle h;
+ int len;
+ long fondsize;
+
+ SetPort(window);
+ BeginUpdate(window);
+ fondsize = GetScriptVariable(smRoman, smScriptSmallFondSize);
+ TextFont(HiWord(fondsize));
+ TextSize(LoWord(fondsize));
+ h = Get1Resource('TEXT', wLicence);
+ len = GetResourceSizeOnDisk(h);
+ if (h != NULL) {
+ HLock(h);
+ TETextBox(*h, len, &window->portRect, teFlushDefault);
+ HUnlock(h);
}
+ EndUpdate(window);
}
/*
SelectWindow(windows.about);
else {
windows.about = GetNewDialog(wAbout, NULL, (WindowPtr)-1);
- /* XXX check we're using the right resource file? */
- vers = (VersRecHndl)GetResource('vers', 1);
- assert(vers != NULL && *vers != NULL);
- longvers = (*vers)->shortVersion + (*vers)->shortVersion[0] + 1;
- GetDialogItem(windows.about, wiAboutVersion, &itemtype, &item, &box);
- assert(itemtype & kStaticTextDialogItem);
- SetDialogItemText(item, longvers);
+ vers = (VersRecHndl)Get1Resource('vers', 1);
+ if (vers != NULL && *vers != NULL) {
+ longvers = (*vers)->shortVersion + (*vers)->shortVersion[0] + 1;
+ GetDialogItem(windows.about, wiAboutVersion,
+ &itemtype, &item, &box);
+ assert(itemtype & kStaticTextDialogItem);
+ SetDialogItemText(item, longvers);
+ }
ShowWindow(windows.about);
}
}
+static void mac_openlicence(void) {
+ DialogItemType itemtype;
+ Handle item;
+ VersRecHndl vers;
+ Rect box;
+ StringPtr longvers;
+
+ if (windows.licence)
+ SelectWindow(windows.licence);
+ else {
+ windows.licence = GetNewWindow(wLicence, NULL, (WindowPtr)-1);
+ ShowWindow(windows.licence);
+ }
+}
+
static void mac_closewindow(WindowPtr window) {
switch (mac_windowtype(window)) {
windows.about = NULL;
CloseWindow(window);
break;
+ case wLicence:
+ windows.licence = NULL;
+ CloseWindow(window);
+ break;
default:
CloseWindow(window);
break;