~mdw
/
sgt
/
puzzles
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
GNUstep compatibility: comment out some API calls that GNUstep
[sgt/puzzles]
/
osx.m
diff --git
a/osx.m
b/osx.m
index
33031e3
..
a0b7059
100644
(file)
--- a/
osx.m
+++ b/
osx.m
@@
-77,6
+77,8
@@
* recreate it.
*/
* recreate it.
*/
+#define COMBINED /* we put all the puzzles in one binary in this port */
+
#include <ctype.h>
#include <sys/time.h>
#import <Cocoa/Cocoa.h>
#include <ctype.h>
#include <sys/time.h>
#import <Cocoa/Cocoa.h>
@@
-123,7
+125,7
@@
void fatal(char *fmt, ...)
} else {
alert = [[alert init] autorelease];
[alert addButtonWithTitle:@"Oh dear"];
} else {
alert = [[alert init] autorelease];
[alert addButtonWithTitle:@"Oh dear"];
- [alert setInformativeText:[NSString stringWith
C
String:errorbuf]];
+ [alert setInformativeText:[NSString stringWith
UTF8
String:errorbuf]];
[alert runModal];
}
exit(1);
[alert runModal];
}
exit(1);
@@
-209,7
+211,7
@@
void document_add_puzzle(document *doc, const game *game, game_params *par,
NSMenu *newmenu(const char *title)
{
return [[[NSMenu allocWithZone:[NSMenu menuZone]]
NSMenu *newmenu(const char *title)
{
return [[[NSMenu allocWithZone:[NSMenu menuZone]]
- initWithTitle:[NSString stringWith
C
String:title]]
+ initWithTitle:[NSString stringWith
UTF8
String:title]]
autorelease];
}
autorelease];
}
@@
-219,7
+221,7
@@
NSMenu *newsubmenu(NSMenu *parent, const char *title)
NSMenu *child;
item = [[[NSMenuItem allocWithZone:[NSMenu menuZone]]
NSMenu *child;
item = [[[NSMenuItem allocWithZone:[NSMenu menuZone]]
- initWithTitle:[NSString stringWith
C
String:title]
+ initWithTitle:[NSString stringWith
UTF8
String:title]
action:NULL
keyEquivalent:@""]
autorelease];
action:NULL
keyEquivalent:@""]
autorelease];
@@
-249,9
+251,9
@@
id initnewitem(NSMenuItem *item, NSMenu *parent, const char *title,
key++;
}
key++;
}
- item = [[item initWithTitle:[NSString stringWith
C
String:title]
+ item = [[item initWithTitle:[NSString stringWith
UTF8
String:title]
action:NULL
action:NULL
- keyEquivalent:[NSString stringWith
C
String:key]]
+ keyEquivalent:[NSString stringWith
UTF8
String:key]]
autorelease];
if (*key)
autorelease];
if (*key)
@@
-325,7
+327,7
@@
NSMenuItem *newitem(NSMenu *parent, char *title, char *key,
[tf setBordered:NO];
[tf setDrawsBackground:NO];
[tf setFont:font1];
[tf setBordered:NO];
[tf setDrawsBackground:NO];
[tf setFont:font1];
- [tf setStringValue:[NSString stringWith
C
String:ver]];
+ [tf setStringValue:[NSString stringWith
UTF8
String:ver]];
[tf sizeToFit];
views[nviews++] = tf;
[tf sizeToFit];
views[nviews++] = tf;
@@
-576,7
+578,7
@@
struct frontend {
NSClosableWindowMask)
backing:NSBackingStoreBuffered
defer:YES];
NSClosableWindowMask)
backing:NSBackingStoreBuffered
defer:YES];
- [self setTitle:[NSString stringWith
C
String:ourgame->name]];
+ [self setTitle:[NSString stringWith
UTF8
String:ourgame->name]];
{
float *colours;
{
float *colours;
@@
-708,9
+710,9
@@
struct frontend {
alert = [[[NSAlert alloc] init] autorelease];
[alert addButtonWithTitle:@"Bah"];
alert = [[[NSAlert alloc] init] autorelease];
[alert addButtonWithTitle:@"Bah"];
- [alert setInformativeText:[NSString stringWith
C
String:message]];
+ [alert setInformativeText:[NSString stringWith
UTF8
String:message]];
[alert beginSheetModalForWindow:self modalDelegate:nil
[alert beginSheetModalForWindow:self modalDelegate:nil
- didEndSelector:
nil
contextInfo:nil];
+ didEndSelector:
NULL
contextInfo:nil];
}
- (void)newGame:(id)sender
}
- (void)newGame:(id)sender
@@
-787,7
+789,7
@@
struct frontend {
NSPasteboard *pb = [NSPasteboard generalPasteboard];
NSArray *a = [NSArray arrayWithObject:NSStringPboardType];
[pb declareTypes:a owner:nil];
NSPasteboard *pb = [NSPasteboard generalPasteboard];
NSArray *a = [NSArray arrayWithObject:NSStringPboardType];
[pb declareTypes:a owner:nil];
- [pb setString:[NSString stringWith
C
String:text]
+ [pb setString:[NSString stringWith
UTF8
String:text]
forType:NSStringPboardType];
} else
NSBeep();
forType:NSStringPboardType];
} else
NSBeep();
@@
-853,7
+855,7
@@
struct frontend {
midend_fetch_preset(me, n, &name, ¶ms);
item = [[[DataMenuItem alloc]
midend_fetch_preset(me, n, &name, ¶ms);
item = [[[DataMenuItem alloc]
- initWithTitle:[NSString stringWith
C
String:name]
+ initWithTitle:[NSString stringWith
UTF8
String:name]
action:NULL keyEquivalent:@""]
autorelease];
action:NULL keyEquivalent:@""]
autorelease];
@@
-898,10
+900,14
@@
struct frontend {
[status setFrame:frame];
}
[status setFrame:frame];
}
+#ifndef GNUSTEP
NSDisableScreenUpdates();
NSDisableScreenUpdates();
+#endif
[self setContentSize:size];
[self setupContentView];
[self setContentSize:size];
[self setupContentView];
+#ifndef GNUSTEP
NSEnableScreenUpdates();
NSEnableScreenUpdates();
+#endif
}
- (void)presetGame:(id)sender
}
- (void)presetGame:(id)sender
@@
-1000,7
+1006,7
@@
struct frontend {
[tf setSelectable:NO];
[tf setBordered:NO];
[tf setDrawsBackground:NO];
[tf setSelectable:NO];
[tf setBordered:NO];
[tf setDrawsBackground:NO];
- [[tf cell] setTitle:[NSString stringWith
C
String:i->name]];
+ [[tf cell] setTitle:[NSString stringWith
UTF8
String:i->name]];
[tf sizeToFit];
rect = [tf frame];
if (thish < rect.size.height + 1) thish = rect.size.height + 1;
[tf sizeToFit];
rect = [tf frame];
if (thish < rect.size.height + 1) thish = rect.size.height + 1;
@@
-1011,7
+1017,7
@@
struct frontend {
[tf setEditable:YES];
[tf setSelectable:YES];
[tf setBordered:YES];
[tf setEditable:YES];
[tf setSelectable:YES];
[tf setBordered:YES];
- [[tf cell] setTitle:[NSString stringWith
C
String:i->sval]];
+ [[tf cell] setTitle:[NSString stringWith
UTF8
String:i->sval]];
[tf sizeToFit];
rect = [tf frame];
/*
[tf sizeToFit];
rect = [tf frame];
/*
@@
-1038,7
+1044,7
@@
struct frontend {
b = [[NSButton alloc] initWithFrame:tmprect];
[b setBezelStyle:NSRoundedBezelStyle];
[b setButtonType:NSSwitchButton];
b = [[NSButton alloc] initWithFrame:tmprect];
[b setBezelStyle:NSRoundedBezelStyle];
[b setButtonType:NSSwitchButton];
- [b setTitle:[NSString stringWith
C
String:i->name]];
+ [b setTitle:[NSString stringWith
UTF8
String:i->name]];
[b sizeToFit];
[b setState:(i->ival ? NSOnState : NSOffState)];
rect = [b frame];
[b sizeToFit];
[b setState:(i->ival ? NSOnState : NSOffState)];
rect = [b frame];
@@
-1059,7
+1065,7
@@
struct frontend {
[tf setSelectable:NO];
[tf setBordered:NO];
[tf setDrawsBackground:NO];
[tf setSelectable:NO];
[tf setBordered:NO];
[tf setDrawsBackground:NO];
- [[tf cell] setTitle:[NSString stringWith
C
String:i->name]];
+ [[tf cell] setTitle:[NSString stringWith
UTF8
String:i->name]];
[tf sizeToFit];
rect = [tf frame];
if (thish < rect.size.height + 1) thish = rect.size.height + 1;
[tf sizeToFit];
rect = [tf frame];
if (thish < rect.size.height + 1) thish = rect.size.height + 1;
@@
-1074,13
+1080,15
@@
struct frontend {
p = i->sval;
c = *p++;
while (*p) {
p = i->sval;
c = *p++;
while (*p) {
- char *q;
+ char
cc,
*q;
q = p;
while (*p && *p != c) p++;
q = p;
while (*p && *p != c) p++;
- [pb addItemWithTitle:[NSString stringWithCString:q
- length:p-q]];
+ cc = *p;
+ *p = '\0';
+ [pb addItemWithTitle:[NSString stringWithUTF8String:q]];
+ *p = cc;
if (*p) p++;
}
if (*p) p++;
}
@@
-1175,7
+1183,7
@@
struct frontend {
[[sheet contentView] addSubview:cfg_controls[k]];
[NSApp beginSheet:sheet modalForWindow:self
[[sheet contentView] addSubview:cfg_controls[k]];
[NSApp beginSheet:sheet modalForWindow:self
- modalDelegate:nil didEndSelector:
nil
contextInfo:nil];
+ modalDelegate:nil didEndSelector:
NULL
contextInfo:nil];
}
- (void)specificGame:(id)sender
}
- (void)specificGame:(id)sender
@@
-1228,9
+1236,9
@@
struct frontend {
if (error) {
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
[alert addButtonWithTitle:@"Bah"];
if (error) {
NSAlert *alert = [[[NSAlert alloc] init] autorelease];
[alert addButtonWithTitle:@"Bah"];
- [alert setInformativeText:[NSString stringWith
C
String:error]];
+ [alert setInformativeText:[NSString stringWith
UTF8
String:error]];
[alert beginSheetModalForWindow:self modalDelegate:nil
[alert beginSheetModalForWindow:self modalDelegate:nil
- didEndSelector:
nil
contextInfo:nil];
+ didEndSelector:
NULL
contextInfo:nil];
} else {
midend_new_game(me);
[self resizeForNewGameParams];
} else {
midend_new_game(me);
[self resizeForNewGameParams];
@@
-1251,7
+1259,7
@@
struct frontend {
- (void)setStatusLine:(char *)text
{
- (void)setStatusLine:(char *)text
{
- [[status cell] setTitle:[NSString stringWith
C
String:text]];
+ [[status cell] setTitle:[NSString stringWith
UTF8
String:text]];
}
@end
}
@end
@@
-1342,7
+1350,7
@@
static void osx_draw_text(void *handle, int x, int y, int fonttype,
int fontsize, int align, int colour, char *text)
{
frontend *fe = (frontend *)handle;
int fontsize, int align, int colour, char *text)
{
frontend *fe = (frontend *)handle;
- NSString *string = [NSString stringWith
C
String:text];
+ NSString *string = [NSString stringWith
UTF8
String:text];
NSDictionary *attr;
NSFont *font;
NSSize size;
NSDictionary *attr;
NSFont *font;
NSSize size;
@@
-1376,6
+1384,15
@@
static void osx_draw_text(void *handle, int x, int y, int fonttype,
[string drawAtPoint:point withAttributes:attr];
}
[string drawAtPoint:point withAttributes:attr];
}
+static char *osx_text_fallback(void *handle, const char *const *strings,
+ int nstrings)
+{
+ /*
+ * We assume OS X can cope with any UTF-8 likely to be emitted
+ * by a puzzle.
+ */
+ return dupstr(strings[0]);
+}
struct blitter {
int w, h;
int x, y;
struct blitter {
int w, h;
int x, y;
@@
-1476,7
+1493,8
@@
const struct drawing_api osx_drawing = {
osx_blitter_save,
osx_blitter_load,
NULL, NULL, NULL, NULL, NULL, NULL, /* {begin,end}_{doc,page,puzzle} */
osx_blitter_save,
osx_blitter_load,
NULL, NULL, NULL, NULL, NULL, NULL, /* {begin,end}_{doc,page,puzzle} */
- NULL, /* line_width */
+ NULL, NULL, /* line_width, line_dotted */
+ osx_text_fallback,
};
void deactivate_timer(frontend *fe)
};
void deactivate_timer(frontend *fe)