Removed several compilation warnings with OS X SDK 10.10

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10306 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Manolo Gouy 2014-09-13 16:49:47 +00:00
parent 76418b352b
commit eadd6e87f1
2 changed files with 44 additions and 19 deletions

View File

@ -51,6 +51,7 @@ extern "C" {
#include <stdarg.h>
#include <math.h>
#include <limits.h>
#include <dlfcn.h>
#import <Cocoa/Cocoa.h>
@ -639,9 +640,28 @@ void Fl::remove_timeout(Fl_Timeout_Handler cb, void* data)
*/
- (BOOL)containsGLsubwindow;
- (void)containsGLsubwindow:(BOOL)contains;
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
- (NSPoint)convertBaseToScreen:(NSPoint)aPoint;
#endif
@end
@implementation FLWindow
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
- (NSPoint)convertBaseToScreen:(NSPoint)aPoint
{
if (fl_mac_os_version >= 100700) {
NSRect r = [self convertRectToScreen:NSMakeRect(aPoint.x, aPoint.y, 0, 0)];
return r.origin;
}
else {
// replaces return [super convertBaseToScreen:aPoint] that may trigger a compiler warning
typedef NSPoint (*convertIMP)(id, SEL, NSPoint);
convertIMP addr = (convertIMP)[NSWindow instanceMethodForSelector:@selector(convertBaseToScreen:)];
return addr(self, @selector(convertBaseToScreen:), aPoint);
}
}
#endif
- (FLWindow*)initWithFl_W:(Fl_Window *)flw
contentRect:(NSRect)rect
styleMask:(NSUInteger)windowStyle
@ -1349,7 +1369,7 @@ static void cocoaMouseHandler(NSEvent *theEvent)
*/
void fl_open_callback(void (*cb)(const char *)) {
fl_open_display();
[[NSApp delegate] open_cb:cb];
[(FLAppDelegate*)[NSApp delegate] open_cb:cb];
}
@implementation FLApplication
@ -1424,8 +1444,14 @@ void fl_open_display() {
{
Boolean same_psn;
ProcessSerialNumber front_psn;
i_am_in_front = (!GetFrontProcess( &front_psn ) &&
!SameProcess( &front_psn, &cur_psn, &same_psn ) && same_psn );
//avoid compilation warnings triggered by GetFrontProcess() and SameProcess()
void* h = dlopen(NULL, RTLD_LAZY);
typedef OSErr (*GetFrontProcess_type)(ProcessSerialNumber*);
GetFrontProcess_type GetFrontProcess_ = (GetFrontProcess_type)dlsym(h, "GetFrontProcess");
typedef OSErr (*SameProcess_type)(ProcessSerialNumber*, ProcessSerialNumber*, Boolean*);
SameProcess_type SameProcess_ = (SameProcess_type)dlsym(h, "SameProcess");
i_am_in_front = (!GetFrontProcess_( &front_psn ) &&
!SameProcess_( &front_psn, &cur_psn, &same_psn ) && same_psn );
}
if (!i_am_in_front) {
// only transform the application type for unbundled apps
@ -2311,7 +2337,7 @@ static void cocoaKeyboardHandler(NSEvent *theEvent)
}
// Convert the rect to screen coordinates
glyphRect.origin.y = wfocus->h() - glyphRect.origin.y;
glyphRect.origin = [[self window] convertBaseToScreen:glyphRect.origin];
glyphRect.origin = [(FLWindow*)[self window] convertBaseToScreen:glyphRect.origin];
if (actualRange) *actualRange = aRange;
fl_unlock_function();
return glyphRect;
@ -3845,7 +3871,6 @@ void Fl_Paged_Device::print_window(Fl_Window *win, int x_offset, int y_offset)
this->print_widget(win, x_offset, y_offset + bt); // print the window inner part
}
#include <dlfcn.h>
/* Returns the address of a Carbon function after dynamically loading the Carbon library if needed.
Supports old Mac OS X versions that may use a couple of Carbon calls:

View File

@ -34,13 +34,13 @@ static void fl_diamond_up_box(int x,int y,int w,int h,Fl_Color bgcolor) {
int y1 = y+h/2;
fl_color(bgcolor); fl_polygon(x+3, y1, x1,y+3, x+w-3,y1, x1,y+h-3);
const uchar *g = fl_gray_ramp();
fl_color(g['W']); fl_line(x+1, y1, x1, y+1, x+w-1, y1);
fl_color(g['U']); fl_line(x+2, y1, x1, y+2, x+w-2, y1);
fl_color(g['S']); fl_line(x+3, y1, x1, y+3, x+w-3, y1);
fl_color(g['P']); fl_line(x+3, y1, x1, y+h-3, x+w-3, y1);
fl_color(g['N']); fl_line(x+2, y1, x1, y+h-2, x+w-2, y1);
fl_color(g['H']); fl_line(x+1, y1, x1, y+h-1, x+w-1, y1);
fl_color(g['A']); fl_loop(x, y1, x1, y, x+w, y1, x1, y+h);
fl_color(g[(int)'W']); fl_line(x+1, y1, x1, y+1, x+w-1, y1);
fl_color(g[(int)'U']); fl_line(x+2, y1, x1, y+2, x+w-2, y1);
fl_color(g[(int)'S']); fl_line(x+3, y1, x1, y+3, x+w-3, y1);
fl_color(g[(int)'P']); fl_line(x+3, y1, x1, y+h-3, x+w-3, y1);
fl_color(g[(int)'N']); fl_line(x+2, y1, x1, y+h-2, x+w-2, y1);
fl_color(g[(int)'H']); fl_line(x+1, y1, x1, y+h-1, x+w-1, y1);
fl_color(g[(int)'A']); fl_loop(x, y1, x1, y, x+w, y1, x1, y+h);
}
static void fl_diamond_down_box(int x,int y,int w,int h,Fl_Color bgcolor) {
@ -49,14 +49,14 @@ static void fl_diamond_down_box(int x,int y,int w,int h,Fl_Color bgcolor) {
int x1 = x+w/2;
int y1 = y+h/2;
const uchar *g = fl_gray_ramp();
fl_color(g['P']); fl_line(x+0, y1, x1, y+0, x+w-0, y1);
fl_color(g['N']); fl_line(x+1, y1, x1, y+1, x+w-1, y1);
fl_color(g['H']); fl_line(x+2, y1, x1, y+2, x+w-2, y1);
fl_color(g['W']); fl_line(x+2, y1, x1, y+h-2, x+w-2, y1);
fl_color(g['U']); fl_line(x+1, y1, x1, y+h-1, x+w-1, y1);
fl_color(g['S']); fl_line(x+0, y1, x1, y+h-0, x+w-0, y1);
fl_color(g[(int)'P']); fl_line(x+0, y1, x1, y+0, x+w-0, y1);
fl_color(g[(int)'N']); fl_line(x+1, y1, x1, y+1, x+w-1, y1);
fl_color(g[(int)'H']); fl_line(x+2, y1, x1, y+2, x+w-2, y1);
fl_color(g[(int)'W']); fl_line(x+2, y1, x1, y+h-2, x+w-2, y1);
fl_color(g[(int)'U']); fl_line(x+1, y1, x1, y+h-1, x+w-1, y1);
fl_color(g[(int)'S']); fl_line(x+0, y1, x1, y+h-0, x+w-0, y1);
fl_color(bgcolor); fl_polygon(x+3, y1, x1,y+3, x+w-3,y1, x1,y+h-3);
fl_color(g['A']); fl_loop(x+3, y1, x1, y+3, x+w-3, y1, x1, y+h-3);
fl_color(g[(int)'A']); fl_loop(x+3, y1, x1, y+3, x+w-3, y1, x1, y+h-3);
}
extern void fl_internal_boxtype(Fl_Boxtype, Fl_Box_Draw_F*);