# HG changeset patch
# User bsmith@81767d24-ef19-dc11-ae90-00e081727c95
# Date 1054324218 0
# Node ID e99cd6e45c0b9d62f947184d5df45c2fc76f06a8
# Parent 7c8bd3bc6c271e3f8158fda8105718168a799064
Need to have a application package directory for binaries to properly run
under MacOS. So added necessary files and a script to generate the
package directory on MacOS.
diff -r 7c8bd3bc6c27 -r e99cd6e45c0b Makefile.in
--- a/Makefile.in Fri May 30 17:36:01 2003 +0000
+++ b/Makefile.in Fri May 30 19:50:18 2003 +0000
@@ -117,13 +117,15 @@
$(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/ci.c
dwtest.o: $(srcdir)/dwtest.c
- $(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/dwtest.c
+ $(CC) -c $(INCPATH) $(CCFLAGS) -o $@ $(srcdir)/dwtest.c
ci: ci.o
$(CC) -o ci ci.o -L$(PREFIX)/lib -ldw -ldwcompat $(LFLAGS)
dwtest: dwtest.o
$(CC) -o dwtest dwtest.o -L$(PREFIX)/lib -ldw -ldwcompat $(LFLAGS)
+ chmod +x mac/finishup.sh
+ mac/finishup.sh
zip:
zip dwindows$(VER_MAJ)$(VER_MIN).zip $(srcdir)/license.txt $(srcdir)/makefile.* $(srcdir)/readme $(srcdir)/*.c $(srcdir)/dw.h $(srcdir)/compat.h \
diff -r 7c8bd3bc6c27 -r e99cd6e45c0b dwtest.c
--- a/dwtest.c Fri May 30 17:36:01 2003 +0000
+++ b/dwtest.c Fri May 30 19:50:18 2003 +0000
@@ -31,10 +31,18 @@
int main(int argc, char *argv[])
{
DWEnv env;
+ HWND window;
+
+ dw_init(TRUE, argc, argv);
+
+ window = dw_window_new(HWND_DESKTOP, "Test Window", flStyle);
+ dw_window_set_pos_size(window, 100, 100, 300, 200);
+ dw_window_show(window);
dw_environment_query(&env);
- printf("Operating System: %s %d.%d\nBuild: %d.%d\n", env.osName, env.MajorVersion, env.MinorVersion,
- env.MajorBuild, env.MinorBuild);
+ dw_messagebox("Title", DW_MB_OK | DW_MB_INFORMATION, "Operating System: %s %d.%d\nBuild: %d.%d\n",
+ env.osName, env.MajorVersion, env.MinorVersion, env.MajorBuild, env.MinorBuild);
+
return 0;
}
#else
diff -r 7c8bd3bc6c27 -r e99cd6e45c0b mac/Info.plist
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mac/Info.plist Fri May 30 19:50:18 2003 +0000
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ dwtest
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 0.1
+ CSResourcesFileMapped
+
+
+
diff -r 7c8bd3bc6c27 -r e99cd6e45c0b mac/PkgInfo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mac/PkgInfo Fri May 30 19:50:18 2003 +0000
@@ -0,0 +1,1 @@
+APPL????
\ No newline at end of file
diff -r 7c8bd3bc6c27 -r e99cd6e45c0b mac/dw.c
--- a/mac/dw.c Fri May 30 17:36:01 2003 +0000
+++ b/mac/dw.c Fri May 30 19:50:18 2003 +0000
@@ -31,6 +31,7 @@
const Rect CreationRect = { 0, 0, 2000, 1000 };
WindowRef CreationWindow = 0;
+ControlRef RootControl = 0;
/* List of signals and their equivilent MacOS event */
#define SIGNALMAX 15
@@ -590,6 +591,10 @@
*/
int API dw_init(int newthread, int argc, char *argv[])
{
+ CreateNewWindow (kDocumentWindowClass, 0,
+ &CreationRect, &CreationWindow);
+ CreateRootControl(CreationWindow, &RootControl);
+ HideWindow(CreationWindow);
return 0;
}
@@ -775,6 +780,7 @@
*/
int API dw_window_raise(HWND handle)
{
+ BringToFront((WindowRef)handle);
return 0;
}
@@ -795,6 +801,7 @@
*/
int API dw_window_show(HWND handle)
{
+ ShowWindow((WindowRef)handle);
return 0;
}
@@ -815,6 +822,7 @@
*/
int API dw_window_hide(HWND handle)
{
+ HideWindow((WindowRef)handle);
return 0;
}
@@ -825,6 +833,7 @@
*/
int API dw_window_destroy(HWND handle)
{
+ DisposeWindow((WindowRef)handle);
return 0;
}
@@ -926,9 +935,13 @@
HWND API dw_window_new(HWND hwndOwner, char *title, ULONG flStyle)
{
WindowRef hwnd = 0;
+ ControlRef rootcontrol = 0;
+
CreateNewWindow (kDocumentWindowClass, flStyle,
&CreationRect, &hwnd);
- return (HWND)hwnd;
+ CreateRootControl(hwnd, &rootcontrol);
+ dw_window_set_text((HWND)hwnd, title);
+ return (HWND)hwnd;
}
/*
@@ -1364,7 +1377,10 @@
void API dw_window_set_text(HWND handle, char *text)
{
CFStringRef cftext = CFStringCreateWithCString(NULL, text, kCFStringEncodingDOSLatinUS);
- SetControlTitleWithCFString(handle, cftext);
+ if(IsValidWindowRef((WindowRef)handle))
+ SetWindowTitleWithCFString((WindowRef)handle, cftext);
+ else
+ SetControlTitleWithCFString(handle, cftext);
CFRelease(cftext);
}
@@ -1377,7 +1393,27 @@
*/
char * API dw_window_get_text(HWND handle)
{
- return NULL;
+ CFStringRef cftext;
+ char *ret = NULL;
+
+ if(IsValidWindowRef((WindowRef)handle))
+ CopyWindowTitleAsCFString((WindowRef)handle, &cftext);
+ else
+ {
+ Str255 str;
+
+ GetControlTitle(handle, str);
+ cftext = CFStringCreateWithPascalString(NULL, str, CFStringGetSystemEncoding());
+ }
+
+ if(cftext)
+ {
+ int length = CFStringGetLength(cftext) + 1;
+ char *ret = malloc(length);
+ CFStringGetCString(cftext, ret, length, kCFStringEncodingDOSLatinUS);
+ CFRelease(cftext);
+ }
+ return ret;
}
/*
@@ -1441,6 +1477,7 @@
*/
void API dw_window_set_usize(HWND handle, ULONG width, ULONG height)
{
+ SizeWindow((WindowRef)handle, (short)width, (short)height, TRUE);
}
/*
@@ -1475,6 +1512,7 @@
*/
void API dw_window_set_pos(HWND handle, ULONG x, ULONG y)
{
+ MoveWindow((WindowRef)handle, (short)x, (short)y, FALSE);
}
/*
@@ -1488,6 +1526,8 @@
*/
void API dw_window_set_pos_size(HWND handle, ULONG x, ULONG y, ULONG width, ULONG height)
{
+ dw_window_set_pos(handle, x, y);
+ dw_window_set_usize(handle, width, height);
}
/*
diff -r 7c8bd3bc6c27 -r e99cd6e45c0b mac/dwtest.r
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mac/dwtest.r Fri May 30 19:50:18 2003 +0000
@@ -0,0 +1,2 @@
+/* dwtest.r */
+#include
diff -r 7c8bd3bc6c27 -r e99cd6e45c0b mac/finishup.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mac/finishup.sh Fri May 30 19:50:18 2003 +0000
@@ -0,0 +1,13 @@
+#!/bin/sh
+PLATFORM=`uname -s`
+
+if [ $PLATFORM = "Darwin" ]
+then
+ mkdir -p dwtest.app/Contents/MacOS
+ mkdir -p dwtest.app/Contents/Resources
+
+ cp -f mac/Info.plist dwtest.app/Contents
+ cp -f mac/PkgInfo dwtest.app/Contents
+ cp -f dwtest dwtest.app/Contents/MacOS
+ /Developer/Tools/Rez -o dwtest.app/Contents/Resources/dwtest.rsrc -d "SystemSevenOrLater=1" -useDF mac/dwtest.r
+fi
\ No newline at end of file