summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--FL/mac.H5
-rw-r--r--configure.in6
-rw-r--r--ide/Xcode3/FLTK.xcodeproj/project.pbxproj285
-rw-r--r--ide/Xcode3/fltk.pch2
-rw-r--r--src/Fl_Gl_Choice.cxx26
-rw-r--r--src/Fl_Gl_Window.cxx4
-rw-r--r--src/Fl_Preferences.cxx2
-rw-r--r--src/Fl_Quartz_Printer.mm12
-rw-r--r--src/Fl_cocoa.mm234
-rw-r--r--src/Fl_compose.cxx2
-rw-r--r--src/Fl_get_key_mac.cxx11
-rw-r--r--test/demo.cxx2
13 files changed, 177 insertions, 416 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d85ce33ab..1faeaecef 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -60,7 +60,7 @@ if(APPLE)
set(HAVE_STRTOLL 1)
set(HAVE_STRCASECMP 1)
set(HAVE_DIRENT_H 1)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa -framework Carbon")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
endif(APPLE)
if(WIN32)
diff --git a/FL/mac.H b/FL/mac.H
index d85b63bc1..2c945a953 100644
--- a/FL/mac.H
+++ b/FL/mac.H
@@ -49,8 +49,8 @@ typedef void* Fl_PMPrintSession;
#else // this part must be compiled when building the FLTK libraries
-// Standard MacOS Carbon API includes...
-#include <Carbon/Carbon.h>
+// Standard MacOS C/C++ includes...
+#include <ApplicationServices/ApplicationServices.h>
#undef check // because of Fl::check()
typedef CGContextRef Fl_CGContextRef;
@@ -154,6 +154,7 @@ public:
static CGContextRef nesw_cursor_image(void);
static CGContextRef nwse_cursor_image(void);
static CGContextRef none_cursor_image(void);
+ static void *get_carbon_function(const char *name);
private:
static void relink(Fl_Window*, Fl_Window*);
};
diff --git a/configure.in b/configure.in
index ead24a53f..9f93584c2 100644
--- a/configure.in
+++ b/configure.in
@@ -842,8 +842,8 @@ case $uname_GUI in
;;
Darwin*)
- # MacOS X uses Cocoa for graphics. There are still some Carbon leftovers.
- LIBS="$LIBS -framework Cocoa -framework Carbon"
+ # MacOS X uses Cocoa for graphics.
+ LIBS="$LIBS -framework Cocoa"
if test x$have_pthread = xyes; then
AC_DEFINE(HAVE_PTHREAD)
@@ -853,7 +853,7 @@ case $uname_GUI in
if test x$enable_gl != xno; then
AC_DEFINE(HAVE_GL)
AC_DEFINE(HAVE_GL_GLU_H)
- GLLIB="-framework AGL -framework OpenGL"
+ GLLIB="-framework AGL -framework OpenGL -framework ApplicationServices"
else
LINKFLTKGL=""
GLLIBNAME=""
diff --git a/ide/Xcode3/FLTK.xcodeproj/project.pbxproj b/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
index 4b14db619..18e5f4b6f 100644
--- a/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
+++ b/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
@@ -313,6 +313,7 @@
7E8E2DC7A53A62D0F1EB860E /* fltk.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
7EA88708B9A088FCEB7CAA27 /* file_chooser.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 39CD231E22E0B53E92CABDC9 /* file_chooser.cxx */; };
7EC3AD9A56535A54430B8DCD /* Fl_Browser_.cxx in Sources */ = {isa = PBXBuildFile; fileRef = AAD25B747F4122A2C5224708 /* Fl_Browser_.cxx */; };
+ 7F4762EE12D22C470073A4F9 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F4762ED12D22C470073A4F9 /* ApplicationServices.framework */; };
7F66B1D912BB924C00C67B59 /* Fl_cocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7F66B1D612BB924C00C67B59 /* Fl_cocoa.mm */; };
7F66B1DA12BB924C00C67B59 /* Fl_Native_File_Chooser_MAC.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7F66B1D712BB924C00C67B59 /* Fl_Native_File_Chooser_MAC.mm */; };
7F66B1DB12BB924C00C67B59 /* Fl_Quartz_Printer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7F66B1D812BB924C00C67B59 /* Fl_Quartz_Printer.mm */; };
@@ -496,13 +497,10 @@
C95961881274CEA1009C0594 /* README.Xcode in Headers */ = {isa = PBXBuildFile; fileRef = C95961641274CDEC009C0594 /* README.Xcode */; settings = {ATTRIBUTES = (Public, ); }; };
C95961891274CEA4009C0594 /* README.Xcode in Headers */ = {isa = PBXBuildFile; fileRef = C95961641274CDEC009C0594 /* README.Xcode */; settings = {ATTRIBUTES = (Public, ); }; };
C959618A1274CEA6009C0594 /* README.Xcode in Headers */ = {isa = PBXBuildFile; fileRef = C95961641274CDEC009C0594 /* README.Xcode */; settings = {ATTRIBUTES = (Public, ); }; };
- C96290C11274D0CD007D3CFE /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9628FFB1274D0B3007D3CFE /* Carbon.framework */; };
C96290C21274D0CF007D3CFE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9628FFD1274D0B3007D3CFE /* Cocoa.framework */; };
C96290E21274D0EF007D3CFE /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C96290E11274D0EF007D3CFE /* AGL.framework */; };
C96290E61274D100007D3CFE /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C96290E51274D100007D3CFE /* OpenGL.framework */; };
- C962910E1274D1D7007D3CFE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9628FFD1274D0B3007D3CFE /* Cocoa.framework */; };
C96291151274D1FD007D3CFE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9628FFD1274D0B3007D3CFE /* Cocoa.framework */; };
- C96291E712756D5E007D3CFE /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9628FFB1274D0B3007D3CFE /* Carbon.framework */; };
C984AFA812D02A1800D66DAD /* demo.menu in Resources */ = {isa = PBXBuildFile; fileRef = C984AFA712D02A1800D66DAD /* demo.menu */; };
C9A374AB3AD29E141C659819 /* fltk.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = FEB0F8FE6383384180570D94 /* fltk.framework */; };
C9C4C91FDA73557BB6B69F3D /* jchuff.c in Sources */ = {isa = PBXBuildFile; fileRef = D9DB580DCA05DE487FACA272 /* jchuff.c */; };
@@ -4295,6 +4293,7 @@
7DF4AD3769671959EA813845 /* jcparam.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = ../../jpeg/jcparam.c; sourceTree = SOURCE_ROOT; };
7E05602BE68211B11E493E18 /* Fl_Menu.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Menu.cxx; path = ../../src/Fl_Menu.cxx; sourceTree = SOURCE_ROOT; };
7E51DAB7D0F93ACFB736EE9A /* Fl_Tree_Prefs.H */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Fl_Tree_Prefs.H; path = ../../FL/Fl_Tree_Prefs.H; sourceTree = SOURCE_ROOT; };
+ 7F4762ED12D22C470073A4F9 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = System/Library/Frameworks/ApplicationServices.framework; sourceTree = SDKROOT; };
7F4B8ADD01CB2F8BFE43ACBA /* Fl_Menu_Bar.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Menu_Bar.cxx; path = ../../src/Fl_Menu_Bar.cxx; sourceTree = SOURCE_ROOT; };
7F66B1D612BB924C00C67B59 /* Fl_cocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Fl_cocoa.mm; path = ../../src/Fl_cocoa.mm; sourceTree = SOURCE_ROOT; };
7F66B1D712BB924C00C67B59 /* Fl_Native_File_Chooser_MAC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Fl_Native_File_Chooser_MAC.mm; path = ../../src/Fl_Native_File_Chooser_MAC.mm; sourceTree = SOURCE_ROOT; };
@@ -4472,7 +4471,6 @@
C9165EAF1291A304003FF4F0 /* utf8.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = utf8.app; sourceTree = BUILT_PRODUCTS_DIR; };
C9165ED31291A376003FF4F0 /* unittests.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = unittests.cxx; path = ../../test/unittests.cxx; sourceTree = SOURCE_ROOT; };
C95961641274CDEC009C0594 /* README.Xcode */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.Xcode; path = ../../FL/README.Xcode; sourceTree = SOURCE_ROOT; };
- C9628FFB1274D0B3007D3CFE /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
C9628FFD1274D0B3007D3CFE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
C96290E11274D0EF007D3CFE /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = System/Library/Frameworks/AGL.framework; sourceTree = SDKROOT; };
C96290E51274D100007D3CFE /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
@@ -5122,11 +5120,10 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- C96291E712756D5E007D3CFE /* Carbon.framework in Frameworks */,
- C962910E1274D1D7007D3CFE /* Cocoa.framework in Frameworks */,
04C166D5213DD80648BE1F4D /* fltk.framework in Frameworks */,
C96290E21274D0EF007D3CFE /* AGL.framework in Frameworks */,
C96290E61274D100007D3CFE /* OpenGL.framework in Frameworks */,
+ 7F4762EE12D22C470073A4F9 /* ApplicationServices.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5201,7 +5198,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- C96290C11274D0CD007D3CFE /* Carbon.framework in Frameworks */,
C96290C21274D0CF007D3CFE /* Cocoa.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -6355,7 +6351,7 @@
C9628FFA1274D0A1007D3CFE /* Resources */ = {
isa = PBXGroup;
children = (
- C9628FFB1274D0B3007D3CFE /* Carbon.framework */,
+ 7F4762ED12D22C470073A4F9 /* ApplicationServices.framework */,
C9628FFD1274D0B3007D3CFE /* Cocoa.framework */,
C96290E11274D0EF007D3CFE /* AGL.framework */,
C96290E51274D100007D3CFE /* OpenGL.framework */,
@@ -8408,7 +8404,6 @@
isa = PBXProject;
buildConfigurationList = 615453DB5B8EBEE070930DA7 /* Build configuration list for PBXProject "FLTK" */;
compatibilityVersion = "Xcode 3.0";
- developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
English,
@@ -10977,8 +10972,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = line_style;
WARNING_CFLAGS = (
@@ -11041,8 +11034,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = ask;
WARNING_CFLAGS = (
@@ -11075,8 +11066,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = tile;
WARNING_CFLAGS = (
@@ -11109,8 +11098,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = mandelbrot;
WARNING_CFLAGS = (
@@ -11143,8 +11130,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = hello;
WARNING_CFLAGS = (
@@ -11174,8 +11159,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = list_visuals;
WARNING_CFLAGS = (
@@ -11205,8 +11188,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = image;
WARNING_CFLAGS = (
@@ -11239,8 +11220,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = keyboard;
WARNING_CFLAGS = (
@@ -11270,8 +11249,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = tiled_image;
WARNING_CFLAGS = (
@@ -11304,8 +11281,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = utf8;
WARNING_CFLAGS = (
@@ -11335,8 +11310,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = checkers;
WARNING_CFLAGS = (
@@ -11369,8 +11342,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = doublebuffer;
WARNING_CFLAGS = (
@@ -11403,8 +11374,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = overlay;
WARNING_CFLAGS = (
@@ -11437,8 +11406,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = checkers;
WARNING_CFLAGS = (
@@ -11468,8 +11435,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = radio;
WARNING_CFLAGS = (
@@ -11499,8 +11464,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = navigation;
WARNING_CFLAGS = (
@@ -11530,8 +11493,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = tile;
WARNING_CFLAGS = (
@@ -11561,8 +11522,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = utf8;
WARNING_CFLAGS = (
@@ -11592,8 +11551,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = output;
WARNING_CFLAGS = (
@@ -11655,8 +11612,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = editor;
WARNING_CFLAGS = (
@@ -11689,8 +11644,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = tree;
WARNING_CFLAGS = (
@@ -11723,8 +11676,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = tabs;
WARNING_CFLAGS = (
@@ -11757,8 +11708,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = image;
WARNING_CFLAGS = (
@@ -11788,8 +11737,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = help;
WARNING_CFLAGS = (
@@ -11822,8 +11769,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = bitmap;
WARNING_CFLAGS = (
@@ -11856,8 +11801,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = list_visuals;
WARNING_CFLAGS = (
@@ -11888,8 +11831,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = arc;
WARNING_CFLAGS = (
@@ -11919,8 +11860,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = resizebox;
WARNING_CFLAGS = (
@@ -11950,8 +11889,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = sudoku;
WARNING_CFLAGS = (
@@ -11984,8 +11921,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = boxtype;
WARNING_CFLAGS = (
@@ -12015,8 +11950,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = label;
WARNING_CFLAGS = (
@@ -12046,8 +11979,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = gl_overlay;
WARNING_CFLAGS = (
@@ -12107,8 +12038,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = browser;
WARNING_CFLAGS = (
@@ -12141,8 +12070,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = cursor;
WARNING_CFLAGS = (
@@ -12175,8 +12102,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = blocks;
WARNING_CFLAGS = (
@@ -12209,8 +12134,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = colbrowser;
WARNING_CFLAGS = (
@@ -12243,8 +12166,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = glpuzzle;
WARNING_CFLAGS = (
@@ -12274,8 +12195,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = clock;
WARNING_CFLAGS = (
@@ -12305,8 +12224,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = inactive;
WARNING_CFLAGS = (
@@ -12339,8 +12256,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = help;
WARNING_CFLAGS = (
@@ -12370,8 +12285,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = valuators;
WARNING_CFLAGS = (
@@ -12401,8 +12314,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = fast_slow;
WARNING_CFLAGS = (
@@ -12435,8 +12346,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = navigation;
WARNING_CFLAGS = (
@@ -12469,8 +12378,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = resize;
WARNING_CFLAGS = (
@@ -12503,8 +12410,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = pack;
WARNING_CFLAGS = (
@@ -12537,8 +12442,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = symbols;
WARNING_CFLAGS = (
@@ -12635,8 +12538,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = message;
WARNING_CFLAGS = (
@@ -12699,8 +12600,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = cube;
WARNING_CFLAGS = (
@@ -12730,8 +12629,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = fonts;
WARNING_CFLAGS = (
@@ -12790,8 +12687,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = shape;
WARNING_CFLAGS = (
@@ -12821,8 +12716,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = iconize;
WARNING_CFLAGS = (
@@ -12855,8 +12748,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = "native-filechooser";
WARNING_CFLAGS = (
@@ -12889,8 +12780,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = menubar;
WARNING_CFLAGS = (
@@ -12920,8 +12809,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = fractals;
WARNING_CFLAGS = (
@@ -12954,8 +12841,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = valuators;
WARNING_CFLAGS = (
@@ -12983,8 +12868,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = arc;
WARNING_CFLAGS = (
@@ -13014,8 +12897,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = device;
WARNING_CFLAGS = (
@@ -13081,8 +12962,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = minimum;
WARNING_CFLAGS = (
@@ -13155,8 +13034,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = rotated_text;
WARNING_CFLAGS = (
@@ -13189,8 +13066,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = iconize;
WARNING_CFLAGS = (
@@ -13223,8 +13098,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = sudoku;
WARNING_CFLAGS = (
@@ -13257,8 +13130,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = pixmap_browser;
WARNING_CFLAGS = (
@@ -13288,8 +13159,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = preferences;
WARNING_CFLAGS = (
@@ -13319,8 +13188,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = forms;
WARNING_CFLAGS = (
@@ -13353,8 +13220,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = preferences;
WARNING_CFLAGS = (
@@ -13387,8 +13252,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = label;
WARNING_CFLAGS = (
@@ -13418,8 +13281,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = buttons;
WARNING_CFLAGS = (
@@ -13505,8 +13366,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = glpuzzle;
WARNING_CFLAGS = (
@@ -13539,8 +13398,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = button;
WARNING_CFLAGS = (
@@ -13573,8 +13430,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = fast_slow;
WARNING_CFLAGS = (
@@ -13604,8 +13459,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = message;
WARNING_CFLAGS = (
@@ -13635,8 +13488,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = editor;
WARNING_CFLAGS = (
@@ -13666,8 +13517,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = bitmap;
WARNING_CFLAGS = (
@@ -13700,8 +13549,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = inactive;
WARNING_CFLAGS = (
@@ -13734,8 +13581,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = clock;
WARNING_CFLAGS = (
@@ -13765,8 +13610,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = file_chooser;
WARNING_CFLAGS = (
@@ -13820,8 +13663,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = curve;
WARNING_CFLAGS = (
@@ -13851,8 +13692,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = fullscreen;
WARNING_CFLAGS = (
@@ -13882,8 +13721,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = colbrowser;
WARNING_CFLAGS = (
@@ -13940,8 +13777,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = browser;
WARNING_CFLAGS = (
@@ -13971,8 +13806,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = tree;
WARNING_CFLAGS = (
@@ -14005,8 +13838,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = scroll;
WARNING_CFLAGS = (
@@ -14036,8 +13867,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = hello;
WARNING_CFLAGS = (
@@ -14100,8 +13929,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = pack;
WARNING_CFLAGS = (
@@ -14134,8 +13961,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = device;
WARNING_CFLAGS = (
@@ -14168,8 +13993,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = subwindow;
WARNING_CFLAGS = (
@@ -14199,8 +14022,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = doublebuffer;
WARNING_CFLAGS = (
@@ -14230,8 +14051,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = mandelbrot;
WARNING_CFLAGS = (
@@ -14264,8 +14083,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = resizebox;
WARNING_CFLAGS = (
@@ -14309,8 +14126,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = pixmap_browser;
WARNING_CFLAGS = (
@@ -14340,8 +14155,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = color_chooser;
WARNING_CFLAGS = (
@@ -14406,8 +14219,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = buttons;
WARNING_CFLAGS = (
@@ -14440,8 +14251,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = minimum;
WARNING_CFLAGS = (
@@ -14474,8 +14283,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = input;
WARNING_CFLAGS = (
@@ -14508,8 +14315,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = file_chooser;
WARNING_CFLAGS = (
@@ -14542,8 +14347,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = fonts;
WARNING_CFLAGS = (
@@ -14573,8 +14376,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = tabs;
WARNING_CFLAGS = (
@@ -14636,8 +14437,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = input_choice;
WARNING_CFLAGS = (
@@ -14667,8 +14466,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = keyboard;
WARNING_CFLAGS = (
@@ -14698,8 +14495,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = scroll;
WARNING_CFLAGS = (
@@ -14732,8 +14527,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = curve;
WARNING_CFLAGS = (
@@ -14829,8 +14622,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = menubar;
WARNING_CFLAGS = (
@@ -14860,8 +14651,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = table;
WARNING_CFLAGS = (
@@ -14894,8 +14683,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = rotated_text;
WARNING_CFLAGS = (
@@ -14928,8 +14715,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = input_choice;
WARNING_CFLAGS = (
@@ -14962,8 +14747,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = output;
WARNING_CFLAGS = (
@@ -14993,8 +14776,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = boxtype;
WARNING_CFLAGS = (
@@ -15027,8 +14808,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = table;
WARNING_CFLAGS = (
@@ -15061,8 +14840,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = threads;
WARNING_CFLAGS = (
@@ -15090,13 +14867,11 @@
../../png,
../../jpeg,
);
- INFOPLIST_FILE = "plists/utf8-Info copy.plist";
+ INFOPLIST_FILE = "plists/utf8-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = utf8;
WARNING_CFLAGS = (
@@ -15121,13 +14896,11 @@
../../png,
../../jpeg,
);
- INFOPLIST_FILE = "plists/utf8-Info copy.plist";
+ INFOPLIST_FILE = "plists/utf8-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = utf8;
WARNING_CFLAGS = (
@@ -15157,8 +14930,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = button;
WARNING_CFLAGS = (
@@ -15191,8 +14962,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = gl_overlay;
WARNING_CFLAGS = (
@@ -15225,8 +14994,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = tiled_image;
WARNING_CFLAGS = (
@@ -15259,8 +15026,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = pixmap;
WARNING_CFLAGS = (
@@ -15293,8 +15058,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = radio;
WARNING_CFLAGS = (
@@ -15324,8 +15087,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = pixmap;
WARNING_CFLAGS = (
@@ -15355,8 +15116,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = line_style;
WARNING_CFLAGS = (
@@ -15386,8 +15145,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = shape;
WARNING_CFLAGS = (
@@ -15417,8 +15174,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = subwindow;
WARNING_CFLAGS = (
@@ -15448,8 +15203,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = overlay;
WARNING_CFLAGS = (
@@ -15482,8 +15235,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = ask;
WARNING_CFLAGS = (
@@ -15513,8 +15264,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = input;
WARNING_CFLAGS = (
@@ -15547,8 +15296,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = forms;
WARNING_CFLAGS = (
@@ -15578,8 +15325,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = cube;
WARNING_CFLAGS = (
@@ -15609,8 +15354,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = blocks;
WARNING_CFLAGS = (
@@ -15664,8 +15407,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = cursor;
WARNING_CFLAGS = (
@@ -15695,8 +15436,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = "native-filechooser";
WARNING_CFLAGS = (
@@ -15729,8 +15468,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = color_chooser;
WARNING_CFLAGS = (
@@ -15794,8 +15531,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = symbols;
WARNING_CFLAGS = (
@@ -15825,8 +15560,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = resize;
WARNING_CFLAGS = (
@@ -15888,8 +15621,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = fractals;
WARNING_CFLAGS = (
@@ -15952,8 +15683,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = fullscreen;
WARNING_CFLAGS = (
@@ -15983,8 +15712,6 @@
OTHER_LDFLAGS = (
"-framework",
Cocoa,
- "-framework",
- Carbon,
);
PRODUCT_NAME = threads;
WARNING_CFLAGS = (
diff --git a/ide/Xcode3/fltk.pch b/ide/Xcode3/fltk.pch
index 83be8d454..05a9d2508 100644
--- a/ide/Xcode3/fltk.pch
+++ b/ide/Xcode3/fltk.pch
@@ -7,5 +7,5 @@
#endif
#ifdef FL_LIBRARY
-#include <Carbon/Carbon.h>
+#include <ApplicationServices/ApplicationServices.h>
#endif
diff --git a/src/Fl_Gl_Choice.cxx b/src/Fl_Gl_Choice.cxx
index fa99d2705..df6267650 100644
--- a/src/Fl_Gl_Choice.cxx
+++ b/src/Fl_Gl_Choice.cxx
@@ -37,8 +37,8 @@
# include <FL/fl_utf8.h>
# ifdef __APPLE__
+# include <ApplicationServices/ApplicationServices.H>
# include <FL/Fl_Window.H>
-# include <Carbon/Carbon.h>
# endif
# ifdef WIN32
@@ -296,6 +296,14 @@ GLContext fl_create_gl_context(Fl_Window* window, const Fl_Gl_Choice* g, int lay
}
# elif defined(__APPLE_QUARTZ__)
+static CGrafPtr fl_GetWindowPort(WindowRef window)
+{
+ typedef CGrafPtr (*wf)(WindowRef);
+ static wf f = NULL;
+ if ( ! f) f = (wf)Fl_X::get_carbon_function("GetWindowPort");
+ return (*f)(window);
+}
+
// warning: the Quartz version should probably use Core GL (CGL) instead of AGL
GLContext fl_create_gl_context(Fl_Window* window, const Fl_Gl_Choice* g, int layer) {
GLContext context, shared_ctx = 0;
@@ -312,17 +320,17 @@ GLContext fl_create_gl_context(Fl_Window* window, const Fl_Gl_Choice* g, int lay
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
#if __LP64__
// 64 bit version
- aglSetWindowRef(context, Fl_X::i(window)->window_ref()/*fl_mac_windowref(window)*/ );
+ aglSetWindowRef(context, Fl_X::i(window)->window_ref() );
#else
// 32 bit version >= 10.5
if (aglSetWindowRef != NULL)
- aglSetWindowRef(context, Fl_X::i(window)->window_ref()/*fl_mac_windowref(window)*/ );
+ aglSetWindowRef(context, Fl_X::i(window)->window_ref() );
else
- aglSetDrawable( context, GetWindowPort( Fl_X::i(window)->window_ref()/*fl_mac_windowref(window)*/ ) );
+ aglSetDrawable( context, fl_GetWindowPort( Fl_X::i(window)->window_ref() ) );
#endif
#else
// 32 bit version < 10.5
- aglSetDrawable( context, GetWindowPort( Fl_X::i(window)->window_ref()/*fl_mac_windowref(window)*/ ) );
+ aglSetDrawable( context, fl_GetWindowPort( Fl_X::i(window)->window_ref() ) );
#endif
return (context);
}
@@ -352,17 +360,17 @@ void fl_set_gl_context(Fl_Window* w, GLContext context) {
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
#if __LP64__
// 64 bit version
- aglSetWindowRef(context, Fl_X::i(w)->window_ref()/*fl_mac_windowref(w)*/ );
+ aglSetWindowRef(context, Fl_X::i(w)->window_ref() );
#else
// 32 bit version >= 10.5
if (aglSetWindowRef != NULL)
- aglSetWindowRef(context, Fl_X::i(w)->window_ref()/*fl_mac_windowref(w)*/ );
+ aglSetWindowRef(context, Fl_X::i(w)->window_ref() );
else
- aglSetDrawable( context, GetWindowPort( Fl_X::i(w)->window_ref()/*fl_mac_windowref(w)*/ ) );
+ aglSetDrawable( context, fl_GetWindowPort( Fl_X::i(w)->window_ref() ) );
#endif
#else
// 32 bit version < 10.5
- aglSetDrawable( context, GetWindowPort( Fl_X::i(w)->window_ref()/*fl_mac_windowref(w)*/ ) );
+ aglSetDrawable( context, fl_GetWindowPort( Fl_X::i(w)->window_ref() ) );
#endif
aglSetCurrentContext(context);
# else
diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx
index 0f46b23bb..52bf72bad 100644
--- a/src/Fl_Gl_Window.cxx
+++ b/src/Fl_Gl_Window.cxx
@@ -277,12 +277,12 @@ void Fl_Gl_Window::flush() {
// warning: the Quartz version should probably use Core GL (CGL) instead of AGL
//: clear previous clipping in this shared port
#if ! __LP64__
- GrafPtr port = GetWindowPort( Fl_X::i(this)->window_ref() );
+/*GrafPtr port = GetWindowPort( Fl_X::i(this)->window_ref() );
Rect rect; SetRect( &rect, 0, 0, 0x7fff, 0x7fff );
GrafPtr old; GetPort( &old );
SetPort( port );
ClipRect( &rect );
- SetPort( old );
+ SetPort( old );*/
#endif
#endif
diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx
index eb393cf3f..7e70e7316 100644
--- a/src/Fl_Preferences.cxx
+++ b/src/Fl_Preferences.cxx
@@ -47,7 +47,7 @@
# define access _access
# define mkdir _mkdir
#elif defined (__APPLE__)
-# include <Carbon/Carbon.h>
+# include <ApplicationServices/ApplicationServices.h>
# include <unistd.h>
# include <dlfcn.h>
#else
diff --git a/src/Fl_Quartz_Printer.mm b/src/Fl_Quartz_Printer.mm
index 825826457..e531fa706 100644
--- a/src/Fl_Quartz_Printer.mm
+++ b/src/Fl_Quartz_Printer.mm
@@ -92,7 +92,11 @@ int Fl_Printer::start_job (int pagecount, int *frompage, int *topage)
status = PMCreatePageFormat(&pageFormat);
status = PMSessionDefaultPageFormat(printSession, pageFormat);
if (status != noErr) return 1;
- status = PMSessionPageSetupDialog(printSession, pageFormat, &accepted);
+ // get pointer to the PMSessionPageSetupDialog Carbon fucntion
+ typedef OSStatus (*dialog_f)(PMPrintSession, PMPageFormat, Boolean *);
+ static dialog_f f = NULL;
+ if (!f) f = (dialog_f)Fl_X::get_carbon_function("PMSessionPageSetupDialog");
+ status = (*f)(printSession, pageFormat, &accepted);
if (status != noErr || !accepted) {
Fl::first_window()->show();
return 1;
@@ -102,7 +106,11 @@ int Fl_Printer::start_job (int pagecount, int *frompage, int *topage)
status = PMSessionDefaultPrintSettings (printSession, printSettings);
if (status != noErr) return 1;
PMSetPageRange(printSettings, 1, (UInt32)kPMPrintAllPages);
- status = PMSessionPrintDialog(printSession, printSettings, pageFormat, &accepted);
+ // get pointer to the PMSessionPrintDialog Carbon fucntion
+ typedef OSStatus (*dialog_f2)(PMPrintSession, PMPrintSettings, PMPageFormat, Boolean *);
+ static dialog_f2 f2 = NULL;
+ if (!f2) f2 = (dialog_f2)Fl_X::get_carbon_function("PMSessionPrintDialog");
+ status = (*f2)(printSession, printSettings, pageFormat, &accepted);
if (!accepted) status = kPMCancel;
if (status != noErr) {
Fl::first_window()->show();
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm
index 2ad315037..20a7250f8 100644
--- a/src/Fl_cocoa.mm
+++ b/src/Fl_cocoa.mm
@@ -38,23 +38,6 @@
// One Compile to copy them all and in the bundle bind them,
// in the Land of MacOS X where the Drop-Shadows lie."
-/*
- TODO: The following messages point to the last Carbon remainders. We should
- really remove these as well, so we can stop linking to Carbon alltogether.
-
- "_GetKeys", referenced from:
- Fl::get_key(int) in Fl_get_key.o (kept only for pre-10.4 runs)
-
- "_GetEventParameter", referenced from:
- carbonTextHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) in Fl.o
-
- "_InstallEventHandler", referenced from:
- fl_open_display() in Fl.o
-
- "_GetEventDispatcherTarget", referenced from:
- fl_open_display() in Fl.o
-*/
-
#ifdef __APPLE__
#define CONSOLIDATE_MOTION 0
@@ -84,7 +67,7 @@ extern "C" {
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
-typedef int NSInteger;
+typedef long NSInteger;
typedef unsigned int NSUInteger;
#endif
#endif
@@ -878,77 +861,14 @@ static void calc_e_text(CFStringRef s, char *buffer, size_t len, unsigned sym)
}
}
+static int cocoaKeyboardHandler(NSEvent *theEvent);
-// this gets called by CJK character palette input
-static OSStatus carbonTextHandler( EventHandlerCallRef nextHandler, EventRef event, void *unused )
+@interface FLTextView : NSTextView
+// this subclass is needed under OS X 10.3 and 10.4 but not under 10.6 where the base class is enough
{
- // make sure the key window is an FLTK window
- NSWindow *keywindow = [NSApp keyWindow];
- if (keywindow == nil || ![keywindow isMemberOfClass:[FLWindow class]]) return eventNotHandledErr;
- // under 10.5 this gets called only after character palette inputs
- // but under 10.6 this gets also called by interpretKeyEvents
- // during keyboard input when we don't want to run it
- if ([[NSApp currentEvent] type] != NSSystemDefined) return eventNotHandledErr;
- Fl_Window *window = [(FLWindow*)keywindow getFl_Window];
- fl_lock_function();
- UniChar ucs[20];
- ByteCount actual_size;
- unsigned int i;
- GetEventParameter( event, kEventParamTextInputSendText, typeUnicodeText,
- NULL, 20, &actual_size, ucs );
- char utf8buf[50], *p;
- p = utf8buf;
- for(i=0; i < actual_size/2; i++) {
- p += fl_utf8encode(ucs[i], p);
- }
- int len = p - utf8buf;
- utf8buf[len]=0;
-
- Fl::e_length = len;
- Fl::e_text = utf8buf;
- while (window->parent()) window = window->window();
- Fl::handle(FL_KEYBOARD, window);
- fl_unlock_function();
- fl_lock_function();
- Fl::handle(FL_KEYUP, window);
- fl_unlock_function();
- // for some reason, the window does not redraw until the next mouse move or button push
- // sending a 'redraw()' or 'awake()' does not solve the issue!
- Fl::flush();
- return noErr;
-}
-
-static OSStatus cocoaKeyboardHandler(NSEvent *theEvent);
-
-@interface FLTextView : NSTextView
-{
- BOOL compose_key; // YES iff entering a character composition
- BOOL needKBhandler_val;
}
-- (BOOL)needKBhandler;
-- (void)needKBhandler:(BOOL)value;
-- (BOOL)compose;
-- (void)compose:(BOOL)value;
-- (void)insertText:(id)aString;
-- (void)doCommandBySelector:(SEL)aSelector;
@end
@implementation FLTextView
-- (BOOL)needKBhandler
-{
- return needKBhandler_val;
-}
-- (void)needKBhandler:(BOOL)value
-{
- needKBhandler_val = value;
-}
-- (BOOL)compose
-{
- return compose_key;
-}
-- (void)compose:(BOOL)value
-{
- compose_key = value;
-}
- (void)insertText:(id)aString
{
cocoaKeyboardHandler([NSApp currentEvent]);
@@ -960,7 +880,7 @@ static OSStatus cocoaKeyboardHandler(NSEvent *theEvent);
@end
/*
- * handle cocoa keyboard events
+Handle cocoa keyboard events
Events during a character composition sequence:
- keydown with deadkey -> [[theEvent characters] length] is 0
- keyup -> [theEvent characters] contains the deadkey: display it temporarily
@@ -968,7 +888,7 @@ Events during a character composition sequence:
replace the temporary character by this one
- keyup -> [theEvent characters] contains the standard character
*/
-static OSStatus cocoaKeyboardHandler(NSEvent *theEvent)
+static int cocoaKeyboardHandler(NSEvent *theEvent)
{
static char buffer[32];
int sendEvent = 0, retval = 0;
@@ -984,8 +904,6 @@ static OSStatus cocoaKeyboardHandler(NSEvent *theEvent)
unsigned short sym = 0;
keyCode = [theEvent keyCode];
NSString *s = [theEvent characters];
- FLTextView *edit = (FLTextView*)[[theEvent window] fieldEditor:YES forObject:nil];
- [edit needKBhandler:NO];
if ( (mods & NSShiftKeyMask) && (mods & NSCommandKeyMask) ) {
s = [s uppercaseString]; // US keyboards return lowercase letter in s if cmd-shift-key is hit
}
@@ -999,7 +917,6 @@ static OSStatus cocoaKeyboardHandler(NSEvent *theEvent)
sendEvent = FL_KEYBOARD;
// fall through
case NSKeyUp:
- if([edit compose]) sendEvent = FL_KEYBOARD; // when composing, the temporary character appears at KeyUp
if ( !sendEvent ) {
sendEvent = FL_KEYUP;
Fl::e_state &= 0xbfffffff; // clear the deadkey flag
@@ -1026,13 +943,9 @@ static OSStatus cocoaKeyboardHandler(NSEvent *theEvent)
}
if (sendEvent) {
retval = Fl::handle(sendEvent,window);
- if([edit compose]) {
- Fl::compose_state = 1;
- [edit compose:NO];
- }
}
fl_unlock_function();
- return retval ? (int)noErr : (int)eventNotHandledErr; // return noErr if FLTK handled the event
+ return retval;
}
@@ -1310,8 +1223,7 @@ extern "C" {
static FLTextView *view = nil;
if (!view) {
view = [[FLTextView alloc] initWithFrame:rect];
- [view compose:NO];
- }
+ }
return view;
}
@end
@@ -1422,12 +1334,6 @@ void fl_open_display() {
}
}
createAppleMenu();
- // Install Carbon Event handler for character palette input
- static EventTypeSpec textEvents[] = {
- { kEventClassTextInput, kEventTextInputUnicodeForKeyEvent }
- };
- EventHandlerUPP textHandler = NewEventHandlerUPP( carbonTextHandler );
- InstallEventHandler(GetEventDispatcherTarget(), textHandler, 1, textEvents, NULL, 0L);
[[NSNotificationCenter defaultCenter] addObserver:mydelegate
selector:@selector(anywindowwillclosenotif:)
@@ -1653,7 +1559,7 @@ static void q_set_window_title(NSWindow *nsw, const char * name ) {
}
-@interface FLView : NSView {
+@interface FLView : NSView <NSTextInput> {
}
- (void)drawRect:(NSRect)rect;
- (BOOL)acceptsFirstResponder;
@@ -1694,8 +1600,8 @@ static void q_set_window_title(NSWindow *nsw, const char * name ) {
}
- (BOOL)performKeyEquivalent:(NSEvent*)theEvent
{
- OSStatus err = cocoaKeyboardHandler(theEvent);
- return (err ? NO : YES);
+ int err = cocoaKeyboardHandler(theEvent);
+ return (err ? YES : NO);
}
- (BOOL)acceptsFirstMouse:(NSEvent*)theEvent
{
@@ -1738,12 +1644,7 @@ static void q_set_window_title(NSWindow *nsw, const char * name ) {
}
- (void)keyDown:(NSEvent *)theEvent {
FLTextView *edit = (FLTextView*)[[theEvent window] fieldEditor:YES forObject:nil];
- if ([[theEvent characters] length] == 0) [edit compose:YES];
- if (Fl::compose_state) [edit needKBhandler:YES];
- else [edit needKBhandler:NO];
[edit interpretKeyEvents:[NSArray arrayWithObject:theEvent]];
- // in some cases (e.g., some Greek letters with tonos) interpretKeyEvents does not call insertText
- if ([edit needKBhandler]) cocoaKeyboardHandler(theEvent);
}
- (void)keyUp:(NSEvent *)theEvent {
cocoaKeyboardHandler(theEvent);
@@ -1843,6 +1744,99 @@ static void q_set_window_title(NSWindow *nsw, const char * name ) {
{
return NSDragOperationGeneric;
}
+
+// These functions implement text input.
+// Only two-stroke character composition works at this point.
+// Needs much elaboration to fully support CJK text input,
+// but this is the way to go.
+- (void)doCommandBySelector:(SEL)aSelector {
+}
+
+- (void)insertText:(id)aString {
+ NSEvent *event = [NSApp currentEvent];
+ NSEventType type = [event type];
+ NSString *str = @"";
+ NSString *received;
+ if ([aString isKindOfClass:[NSAttributedString class]]) {
+ received = [(NSAttributedString*)aString string];
+ } else {
+ received = (NSString*)aString;
+ }
+//NSLog(@"insertText: received=%@ event type=%d",received, type);
+ if (type == NSKeyDown ) {
+ str = [event characters];
+ }
+ if ([received isEqualToString:@"\b"] || [str isEqualToString:received]) {
+ if (type == NSKeyDown ) cocoaKeyboardHandler(event);
+ } else {
+ fl_lock_function();
+ Fl_Window *window = [(FLWindow*)[NSApp keyWindow] getFl_Window];
+ Fl::e_text = (char*)[received UTF8String];
+ Fl::e_length = strlen(Fl::e_text);
+ Fl::handle(FL_KEYBOARD, window);
+ Fl::handle(FL_KEYUP, window);
+ fl_unlock_function();
+ // for some reason, the window does not redraw until the next mouse move or button push
+ // sending a 'redraw()' or 'awake()' does not solve the issue!
+ Fl::flush();
+ }
+}
+
+- (void)setMarkedText:(id)aString selectedRange:(NSRange)newSelection {
+ // NSLog(@"setMarkedText: %@ %d %d Fl::compose_state=%d",
+ // aString,newSelection.location,newSelection.length,newSelection.location);
+ [self insertText:aString];
+ Fl::compose_state = newSelection.location;
+}
+
+- (void)unmarkText {
+ Fl::compose_state = 0;
+ //NSLog(@"unmarkText");
+}
+
+- (NSRange)selectedRange {
+ return NSMakeRange(NSNotFound, 0);
+}
+
+- (NSRange)markedRange {
+ //NSLog(@"markedRange ?");
+ return NSMakeRange(NSNotFound, Fl::compose_state);
+}
+
+- (BOOL)hasMarkedText {
+ //NSLog(@"hasMarkedText %s", Fl::compose_state > 0?"YES":"NO");
+ return (Fl::compose_state > 0);
+}
+
+- (NSAttributedString *)attributedSubstringFromRange:(NSRange)aRange {
+ //NSLog(@"attributedSubstringFromRange: %d %d",aRange.location,aRange.length);
+ return nil;
+}
+
+- (NSArray *)validAttributesForMarkedText {
+ return nil;
+}
+
+- (NSRect)firstRectForCharacterRange:(NSRange)aRange {
+ NSRect glyphRect, frame;
+
+ frame = [self frame];
+ glyphRect.origin.x = frame.size.width;
+ glyphRect.origin.y = 0;
+ glyphRect.size.width = glyphRect.size.height = 0;
+ // Convert the rect to screen coordinates
+ glyphRect.origin = [[self window] convertBaseToScreen:glyphRect.origin];
+ return glyphRect;
+}
+
+- (NSUInteger)characterIndexForPoint:(NSPoint)aPoint {
+ return 0;
+}
+
+- (NSInteger)conversationIdentifier {
+ return (NSInteger)self;
+}
+
@end
@@ -3271,6 +3265,26 @@ Window fl_xid(const Fl_Window* w)
return Fl_X::i(w)->xid;
}
+#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:
+ GetKeys used by OS X 10.3 or before (in Fl::get_key())
+ PMSessionPageSetupDialog and PMSessionPrintDialog used by 10.4 or before (in Fl_Printer::start_job())
+ GetWindowPort used by 10.4 or before (in Fl_Gl_Choice.cxx)
+ */
+void *Fl_X::get_carbon_function(const char *function_name) {
+ static void *carbon = NULL;
+ void *f = NULL;
+ if (!carbon) {
+ carbon = dlopen("/System/Library/Frameworks/Carbon.framework/Carbon", RTLD_LAZY);
+ }
+ if (carbon) {
+ f = dlsym(carbon, function_name);
+ }
+ return f;
+}
+
#endif // __APPLE__
//
diff --git a/src/Fl_compose.cxx b/src/Fl_compose.cxx
index c773c6bef..7069c1f27 100644
--- a/src/Fl_compose.cxx
+++ b/src/Fl_compose.cxx
@@ -65,7 +65,7 @@ int Fl::compose(int& del) {
if ((e_state & (FL_ALT | FL_META)) && !(ascii & 128)) return 0;
#endif
if(Fl::compose_state) {
- del = 1;
+ del = Fl::compose_state;
Fl::compose_state = 0;
} else {
#ifndef __APPLE__
diff --git a/src/Fl_get_key_mac.cxx b/src/Fl_get_key_mac.cxx
index 7f3c7a227..126b17806 100644
--- a/src/Fl_get_key_mac.cxx
+++ b/src/Fl_get_key_mac.cxx
@@ -83,8 +83,6 @@ int Fl::event_key(int k) {
return get_key(k);
}
-#include <stdio.h>
-
//: returns true, if that key is pressed right now
int Fl::get_key(int k) {
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
@@ -94,8 +92,13 @@ int Fl::get_key(int k) {
else
#endif
{
- KeyMap foo;
- GetKeys(foo);
+ typedef UInt32 fl_KeyMap[4];
+ fl_KeyMap foo;
+ // use the GetKeys Carbon function
+ typedef void (*keymap_f)(fl_KeyMap);
+ static keymap_f f = NULL;
+ if (!f) f = ( keymap_f )Fl_X::get_carbon_function("GetKeys");
+ (*f)(foo);
#ifdef MAC_TEST_FOR_KEYCODES
static int cnt = 0;
if (cnt++>1024) {
diff --git a/test/demo.cxx b/test/demo.cxx
index 66e34ba0c..b1f30eb17 100644
--- a/test/demo.cxx
+++ b/test/demo.cxx
@@ -37,7 +37,7 @@
# define putenv _putenv
# endif // !__WATCOMC__
#elif defined USING_XCODE
-#include <Carbon/Carbon.h>
+#include <ApplicationServices/ApplicationServices.h>
#else
# include <unistd.h>
#endif