Mac OS X: introduced global variable fl_mac_os_version and cleaned a few unused variables.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7892 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
0f3e028a13
commit
7eb27fa4bd
5
FL/mac.H
5
FL/mac.H
@ -185,6 +185,11 @@ extern void fl_open_callback(void (*cb)(const char *));
|
||||
* \param shortcut optional shortcut to attach to the "About myprog" menu item (e.g., FL_META+'a')
|
||||
*/
|
||||
extern void fl_mac_set_about( Fl_Callback *cb, void *user_data, int shortcut = 0);
|
||||
|
||||
/** The version number of the running Mac OS X (e.g., 0x1064 for 10.6.4)
|
||||
*/
|
||||
extern int fl_mac_os_version;
|
||||
|
||||
/** @} */
|
||||
|
||||
//
|
||||
|
@ -687,7 +687,7 @@ Returns the Fl_Window that corresponds to the given window reference,
|
||||
or \c NULL if not found. FLTK windows that are children of top-level
|
||||
windows share the \c Window of the top-level window.
|
||||
|
||||
void fl_open_callback(void (*cb)(const char *))
|
||||
void \ref fl_open_callback(void (*cb)(const char *))
|
||||
|
||||
\par
|
||||
\c cb will be called with a single Unix-style file name and path.
|
||||
@ -749,7 +749,9 @@ handle the Resource Fork correctly.
|
||||
|
||||
\par Mac File Paths
|
||||
|
||||
FLTK uses UNIX-style filenames and paths.
|
||||
FLTK uses UTF-8-encoded UNIX-style filenames and paths.
|
||||
|
||||
\sa group_macosx
|
||||
|
||||
|
||||
\htmlonly
|
||||
|
@ -130,19 +130,16 @@ void *fl_system_menu; // this is really a NSMenu*
|
||||
Fl_Sys_Menu_Bar *fl_sys_menu_bar = 0;
|
||||
void *fl_default_cursor; // this is really a NSCursor*
|
||||
void *fl_capture = 0; // (NSWindow*) we need this to compensate for a missing(?) mouse capture
|
||||
//ulong fl_event_time; // the last timestamp from an x event
|
||||
char fl_key_vector[32]; // used by Fl::get_key()
|
||||
bool fl_show_iconic; // true if called from iconize() - shows the next created window in collapsed state
|
||||
int fl_disable_transient_for; // secret method of removing TRANSIENT_FOR
|
||||
//const Fl_Window* fl_modal_for; // parent of modal() window
|
||||
Window fl_window;
|
||||
Fl_Window *Fl_Window::current_;
|
||||
//EventRef fl_os_event; // last (mouse) event
|
||||
int fl_mac_os_version = 0; // the version number of the running Mac OS X (e.g., 0x1064 for 10.6.4)
|
||||
|
||||
// forward declarations of variables in this file
|
||||
static int got_events = 0;
|
||||
static Fl_Window* resize_from_system;
|
||||
static SInt32 MACsystemVersion;
|
||||
|
||||
#if CONSOLIDATE_MOTION
|
||||
static Fl_Window* send_motion;
|
||||
@ -1371,8 +1368,10 @@ void fl_open_display() {
|
||||
while (ign_event);
|
||||
|
||||
fl_default_cursor = [NSCursor arrowCursor];
|
||||
Gestalt(gestaltSystemVersion, &MACsystemVersion);
|
||||
|
||||
SInt32 version;
|
||||
Gestalt(gestaltSystemVersion, &version);
|
||||
fl_mac_os_version = (int)version;
|
||||
|
||||
// bring the application into foreground without a 'CARB' resource
|
||||
Boolean same_psn;
|
||||
ProcessSerialNumber cur_psn, front_psn;
|
||||
@ -2757,7 +2756,7 @@ int MACscreen_init(XRectangle screens[])
|
||||
{
|
||||
NSDictionary *options;
|
||||
options = [NSDictionary dictionaryWithObjectsAndKeys:
|
||||
[NSString stringWithFormat:@" FLTK %d.%d Cocoa", FL_MAJOR_VERSION,
|
||||
[NSString stringWithFormat:@" GUI with FLTK %d.%d", FL_MAJOR_VERSION,
|
||||
FL_MINOR_VERSION ], @"Copyright",
|
||||
nil];
|
||||
[NSApp orderFrontStandardAboutPanelWithOptions:options];
|
||||
@ -2815,13 +2814,12 @@ static void createAppleMenu(void)
|
||||
FLaboutItemTarget *about = [[FLaboutItemTarget alloc] init];
|
||||
[menuItem setTarget:about];
|
||||
[appleMenu addItem:[NSMenuItem separatorItem]];
|
||||
// temporary for testing Fl_Printer. Contains also printPanel of class FLaboutItemTarget.
|
||||
// Print front window
|
||||
menuItem = [appleMenu addItemWithTitle:@"Print front window" action:@selector(printPanel) keyEquivalent:@""];
|
||||
[menuItem setTarget:about];
|
||||
[appleMenu setAutoenablesItems:NO];
|
||||
[menuItem setEnabled:YES];
|
||||
[appleMenu addItem:[NSMenuItem separatorItem]];
|
||||
// end of temporary for testing Fl_Printer
|
||||
// Services Menu
|
||||
services = [[NSMenu alloc] init];
|
||||
[appleMenu addItemWithTitle:@"Services" action:nil keyEquivalent:@""];
|
||||
@ -2844,7 +2842,7 @@ static void createAppleMenu(void)
|
||||
[menuItem setSubmenu:appleMenu];
|
||||
mainmenu = [[NSMenu alloc] initWithTitle:@""];
|
||||
[mainmenu addItem:menuItem];
|
||||
if (MACsystemVersion < 0x1060) {
|
||||
if (fl_mac_os_version < 0x1060) {
|
||||
// [NSApp setAppleMenu:appleMenu];
|
||||
// to avoid compiler warning raised by use of undocumented setAppleMenu :
|
||||
[NSApp performSelector:@selector(setAppleMenu:) withObject:appleMenu];
|
||||
@ -3208,7 +3206,7 @@ unsigned char *MACbitmapFromRectOfWindow(Fl_Window *win, int x, int y, int w, in
|
||||
win = win->window();
|
||||
}
|
||||
CGFloat epsilon = 0;
|
||||
if (MACsystemVersion >= 0x1060) epsilon = 0.001;
|
||||
if (fl_mac_os_version >= 0x1060) epsilon = 0.001;
|
||||
// The epsilon offset is absolutely necessary under 10.6. Without it, the top pixel row and
|
||||
// left pixel column are not read, and bitmap is read shifted by one pixel in both directions.
|
||||
// Under 10.5, we want no offset.
|
||||
|
@ -33,10 +33,6 @@
|
||||
#include <FL/x.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
|
||||
// warning: this function is only implemented in Quickdraw. The function
|
||||
// below may not work if FLTK is compiled with Quartz enabled
|
||||
|
||||
extern EventRef fl_os_event;
|
||||
extern char *fl_selection_buffer;
|
||||
extern int fl_selection_length;
|
||||
|
||||
|
@ -34,9 +34,6 @@ extern unsigned fl_utf8toUtf16(const char* src, unsigned srclen, unsigned short*
|
||||
#define check_default_font() {if (!fl_fontsize) fl_font(0, 12);}
|
||||
|
||||
static const CGAffineTransform font_mx = { 1, 0, 0, -1, 0, 0 };
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
static SInt32 MACsystemVersion = 0;
|
||||
#endif
|
||||
|
||||
Fl_Font_Descriptor::Fl_Font_Descriptor(const char* name, Fl_Fontsize Size) {
|
||||
next = 0;
|
||||
@ -50,9 +47,8 @@ Fl_Font_Descriptor::Fl_Font_Descriptor(const char* name, Fl_Fontsize Size) {
|
||||
size = Size;
|
||||
minsize = maxsize = Size;
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if(MACsystemVersion == 0) Gestalt(gestaltSystemVersion, &MACsystemVersion);
|
||||
|
||||
if(MACsystemVersion >= 0x1050) {//unfortunately, CTFontCreateWithName != NULL on 10.4 also!
|
||||
if(fl_mac_os_version == 0) fl_open_display();
|
||||
if(fl_mac_os_version >= 0x1050) {//unfortunately, CTFontCreateWithName != NULL on 10.4 also!
|
||||
CFStringRef str = CFStringCreateWithCString(NULL, name, kCFStringEncodingUTF8);
|
||||
fontref = CTFontCreateWithName(str, size, NULL);
|
||||
CGGlyph glyph[2];
|
||||
@ -170,7 +166,7 @@ Fl_Font_Descriptor::~Fl_Font_Descriptor() {
|
||||
*/
|
||||
if (this == fl_fontsize) fl_fontsize = 0;
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if(MACsystemVersion >= 0x1050) CFRelease(fontref);
|
||||
if(fl_mac_os_version >= 0x1050) CFRelease(fontref);
|
||||
#else
|
||||
/* ATSUDisposeTextLayout(layout);
|
||||
ATSUDisposeStyle(style); */
|
||||
@ -273,7 +269,7 @@ double fl_width(const UniChar* txt, int n) {
|
||||
return 8*n; // user must select a font first!
|
||||
}
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if(MACsystemVersion >= 0x1050) {
|
||||
if(fl_mac_os_version >= 0x1050) {
|
||||
CTFontRef fontref = fl_fontsize->fontref;
|
||||
CFStringRef str = CFStringCreateWithBytes(NULL, (const UInt8*)txt, n * sizeof(UniChar), kCFStringEncodingUTF16, false);
|
||||
CFAttributedStringRef astr = CFAttributedStringCreate(NULL, str, NULL);
|
||||
@ -342,7 +338,7 @@ void fl_text_extents(const UniChar* txt, int n, int &dx, int &dy, int &w, int &h
|
||||
return;
|
||||
}
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if(MACsystemVersion >= 0x1050) {
|
||||
if(fl_mac_os_version >= 0x1050) {
|
||||
CTFontRef fontref = fl_fontsize->fontref;
|
||||
CFStringRef str16 = CFStringCreateWithBytes(NULL, (const UInt8*)txt, n *sizeof(UniChar), kCFStringEncodingUTF16, false);
|
||||
CFAttributedStringRef astr = CFAttributedStringCreate(NULL, str16, NULL);
|
||||
@ -435,7 +431,7 @@ void fl_draw(const char *str, int n, float x, float y) {
|
||||
// convert to UTF-16 first
|
||||
UniChar *uniStr = mac_Utf8_to_Utf16(str, n, &n);
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if(MACsystemVersion >= 0x1050) {
|
||||
if(fl_mac_os_version >= 0x1050) {
|
||||
CFStringRef keys[2];
|
||||
CFTypeRef values[2];
|
||||
CFStringRef str16 = CFStringCreateWithBytes(NULL, (const UInt8*)uniStr, n * sizeof(UniChar), kCFStringEncodingUTF16, false);
|
||||
|
@ -63,9 +63,8 @@ Fl_Font Fl::set_fonts(const char* xstarname) {
|
||||
if (fl_free_font > FL_FREE_FONT) return (Fl_Font)fl_free_font; // if already called
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
static SInt32 MACsystemVersion = 0;
|
||||
if(MACsystemVersion == 0) Gestalt(gestaltSystemVersion, &MACsystemVersion);
|
||||
if(MACsystemVersion >= 0x1050) {
|
||||
if(fl_mac_os_version == 0) fl_open_display();
|
||||
if(fl_mac_os_version >= 0x1050) {
|
||||
//if(CTFontCreateWithFontDescriptor != NULL) {// CTFontCreateWithFontDescriptor != NULL on 10.4 also!
|
||||
int value[1] = {1};
|
||||
CFDictionaryRef dict = CFDictionaryCreate(NULL,
|
||||
@ -131,7 +130,7 @@ else {
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
}
|
||||
#endif
|
||||
return 0; // FIXME: I do not understand the shuffeling of the above ifdef's and why they are here!
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int array[128];
|
||||
|
Loading…
Reference in New Issue
Block a user