Author: manolo
Date: 2010-12-23 06:24:29 -0800 (Thu, 23 Dec 2010)
New Revision: 8113
Log:
Adopted use of FL_LIBRARY #define symbol under Mac OS X. This allows to compile
client applications without including Mac OS system headers, with a gain in
speed of
compilation and portability. The source files of all FLTK libraries must now be
compiled with
-DFL_LIBRARY under Mac OS X. Make, CMake and Xcode project support files
have been modified accordingly.
Modified:
branches/branch-1.3/FL/Fl_Printer.H
branches/branch-1.3/FL/mac.H
branches/branch-1.3/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
branches/branch-1.3/ide/Xcode3/fltk.pch
branches/branch-1.3/makeinclude.in
branches/branch-1.3/src/CMakeLists.txt
branches/branch-1.3/src/Fl.cxx
branches/branch-1.3/src/Fl_cocoa.mm
branches/branch-1.3/src/Makefile
branches/branch-1.3/test/demo.cxx
Modified: branches/branch-1.3/FL/Fl_Printer.H
===================================================================
--- branches/branch-1.3/FL/Fl_Printer.H 2010-12-23 09:49:57 UTC (rev 8112)
+++ branches/branch-1.3/FL/Fl_Printer.H 2010-12-23 14:24:29 UTC (rev 8113)
@@ -58,9 +58,9 @@
float scale_x;
float scale_y;
float angle; // rotation angle in radians
- PMPrintSession printSession;
- PMPageFormat pageFormat;
- PMPrintSettings printSettings;
+ Fl_PMPrintSession printSession;
+ Fl_PMPageFormat pageFormat;
+ Fl_PMPrintSettings printSettings;
#elif defined(WIN32)
int abortPrint;
PRINTDLG pd;
Modified: branches/branch-1.3/FL/mac.H
===================================================================
--- branches/branch-1.3/FL/mac.H 2010-12-23 09:49:57 UTC (rev 8112)
+++ branches/branch-1.3/FL/mac.H 2010-12-23 14:24:29 UTC (rev 8113)
@@ -34,9 +34,29 @@
# error "Never use <FL/mac.H> directly; include <FL/x.H> instead."
#endif // !Fl_X_H
+typedef void* Window; // this is really a pointer to the subclass
FLWindow of NSWindow
+typedef void* Fl_Offscreen; // this is really a CGContextRef
+typedef void* Fl_Bitmask; // this is really a CGImageRef
+
+#ifndef FL_LIBRARY // this part is used when compiling an application program
+
+typedef void* Fl_Region;
+typedef void* Fl_CGContextRef;
+typedef void* Fl_PMPrintSettings;
+typedef void* Fl_PMPageFormat;
+typedef void* Fl_PMPrintSession;
+
+#else // this part must be compiled when building the FLTK libraries
+
// Standard MacOS Carbon API includes...
#include <Carbon/Carbon.h>
+#undef check // because of Fl::check()
+typedef CGContextRef Fl_CGContextRef;
+typedef PMPrintSettings Fl_PMPrintSettings;
+typedef PMPageFormat Fl_PMPageFormat;
+typedef PMPrintSession Fl_PMPrintSession;
+
#ifndef MAC_OS_X_VERSION_10_3
#define MAC_OS_X_VERSION_10_3 1030
#endif
@@ -53,6 +73,16 @@
#define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_10_3
#endif
+typedef struct flCocoaRegion {
+ int count;
+ CGRect *rects;
+} *Fl_Region; // a region is the union of a series of rectangles
+
+# include "Fl_Window.H"
+
+// Some random X equivalents
+struct XPoint { int x, y; };
+struct XRectangle {int x, y, width, height;};
#ifndef CGFLOAT_DEFINED //appears with 10.5 in CGBase.h
#if defined(__LP64__) && __LP64__
typedef double CGFloat;
@@ -61,21 +91,7 @@
#endif
#endif // CGFLOAT_DEFINED
-
-// Now make some fixes to the headers...
-#undef check // Dunno where this comes from...
-
-// Some random X equivalents
-struct XPoint { int x, y; };
-struct XRectangle {int x, y, width, height;};
-
-typedef void *Window; // this is really a pter to the subclass FLWindow of
NSWindow
-typedef struct flCocoaRegion {
- int count;
- CGRect *rects;
-} *Fl_Region; // a region is the union of a series of rectangles
extern CGRect fl_cgrectmake_cocoa(int x, int y, int w, int h);
-
inline Fl_Region XRectangleRegion(int x, int y, int w, int h) {
Fl_Region R = (Fl_Region)malloc(sizeof(*R));
R->count = 1;
@@ -85,26 +101,20 @@
}
inline void XDestroyRegion(Fl_Region r) {
if(r) {
- free(r->rects);
- free(r);
- }
+ free(r->rects);
+ free(r);
+ }
}
+extern void *fl_system_menu;
extern void *fl_default_cursor;
-extern void *fl_system_menu;
-typedef CGContextRef Fl_Offscreen;
-typedef CGImageRef Fl_Bitmask;
-void fl_clip_region(Fl_Region);
-
-# include "Fl_Window.H"
-
// This object contains all mac-specific stuff about a window:
// WARNING: this object is highly subject to change!
class Fl_X
{
public:
Window xid; // pointer to the Cocoa window object (FLWindow*)
- Fl_Offscreen other_xid; // pointer for offscreen bitmaps (doublebuffer)
+ Fl_Offscreen other_xid; // pointer for offscreen bitmaps (overlay window)
Fl_Window *w; // FLTK window for
Fl_Region region;
Fl_Region subRegion; // region for this specific subwindow
@@ -147,36 +157,32 @@
static void relink(Fl_Window*, Fl_Window*);
};
-inline Window fl_xid(const Fl_Window*w)
-{
- return Fl_X::i(w)->xid;
-}
-
extern struct Fl_XMap {
RGBColor rgb;
ulong pen;
} *fl_current_xmap;
+extern FL_EXPORT Window fl_window;
-extern FL_EXPORT void *fl_display;
-extern FL_EXPORT Window fl_window;
-extern FL_EXPORT CGContextRef fl_gc;
+#endif // FL_LIBRARY
+
+extern FL_EXPORT Fl_CGContextRef fl_gc;
extern FL_EXPORT class Fl_Sys_Menu_Bar *fl_sys_menu_bar;
+extern Window fl_xid(const Fl_Window*);
+void fl_clip_region(Fl_Region);
+extern FL_EXPORT Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *data);
+extern FL_EXPORT Fl_Bitmask fl_create_alphamask(int w, int h, int d, int ld,
const uchar *data);
+extern FL_EXPORT void fl_delete_bitmask(Fl_Bitmask bm);
extern Fl_Offscreen fl_create_offscreen(int w, int h);
extern void fl_copy_offscreen(int x,int y,int w,int h, Fl_Offscreen gWorld,
int srcx,int srcy);
extern void fl_delete_offscreen(Fl_Offscreen gWorld);
extern void fl_begin_offscreen(Fl_Offscreen gWorld);
extern void fl_end_offscreen();
-
-extern FL_EXPORT Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *data);
-extern FL_EXPORT Fl_Bitmask fl_create_alphamask(int w, int h, int d, int ld,
const uchar *data);
-extern FL_EXPORT void fl_delete_bitmask(Fl_Bitmask bm);
-
+extern FL_EXPORT int fl_parse_color(const char* p, uchar& r, uchar& g, uchar&
b);
extern void fl_open_display();
-extern FL_EXPORT int fl_parse_color(const char* p, uchar& r, uchar& g, uchar&
b);
#endif // FL_DOXYGEN
/** \defgroup group_macosx Mac OS X-specific functions
Modified: branches/branch-1.3/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
===================================================================
--- branches/branch-1.3/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
2010-12-23 09:49:57 UTC (rev 8112)
+++ branches/branch-1.3/ide/Xcode3/FLTK.xcodeproj/project.pbxproj
2010-12-23 14:24:29 UTC (rev 8113)
@@ -10999,6 +10999,7 @@
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = fltk.pch;
+ GCC_PREPROCESSOR_DEFINITIONS = FL_LIBRARY;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
../../,
@@ -11873,8 +11874,6 @@
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
GCC_PREPROCESSOR_DEFINITIONS = "USING_XCODE=1";
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -12065,8 +12064,6 @@
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
GCC_PREPROCESSOR_DEFINITIONS = "USING_XCODE=1";
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -12561,8 +12558,6 @@
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
../../,
@@ -12594,6 +12589,7 @@
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = fltk.pch;
+ GCC_PREPROCESSOR_DEFINITIONS = FL_LIBRARY;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -12660,8 +12656,6 @@
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
../../,
@@ -12975,8 +12969,6 @@
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
GCC_PREPROCESSOR_DEFINITIONS = "USING_XCODE=1";
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -13047,6 +13039,7 @@
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = fltk.pch;
+ GCC_PREPROCESSOR_DEFINITIONS = FL_LIBRARY;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -13108,8 +13101,6 @@
FRAMEWORK_VERSION = A;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
../../,
@@ -13447,8 +13438,6 @@
FRAMEWORK_VERSION = A;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
../../,
@@ -13791,8 +13780,6 @@
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
GCC_PREPROCESSOR_DEFINITIONS = "USING_XCODE=1";
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -13913,8 +13900,6 @@
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
GCC_PREPROCESSOR_DEFINITIONS = "USING_XCODE=1";
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -14074,6 +14059,7 @@
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = fltk.pch;
+ GCC_PREPROCESSOR_DEFINITIONS = FL_LIBRARY;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
../../,
@@ -14290,12 +14276,12 @@
AC3226B9FE17327A0476ACA0 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ONLY_ACTIVE_ARCH_PRE_XCODE_3_1)";
+ ARCHS = "$(NATIVE_ARCH_ACTUAL)";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- ONLY_ACTIVE_ARCH_PRE_XCODE_3_1 =
"$(NATIVE_ARCH_ACTUAL)";
+ ONLY_ACTIVE_ARCH = YES;
PREBINDING = NO;
SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
};
@@ -14770,6 +14756,7 @@
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = fltk.pch;
+ GCC_PREPROCESSOR_DEFINITIONS = FL_LIBRARY;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -14801,8 +14788,6 @@
FRAMEWORK_VERSION = A;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
../../,
@@ -15639,8 +15624,6 @@
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_MODEL_TUNING = G5;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
GCC_PREPROCESSOR_DEFINITIONS = "USING_XCODE=1";
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -15769,6 +15752,7 @@
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = fltk.pch;
+ GCC_PREPROCESSOR_DEFINITIONS = FL_LIBRARY;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
@@ -15925,8 +15909,6 @@
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = fltk.pch;
HEADER_SEARCH_PATHS = (
../../ide/XCode3/,
../../,
Modified: branches/branch-1.3/ide/Xcode3/fltk.pch
===================================================================
--- branches/branch-1.3/ide/Xcode3/fltk.pch 2010-12-23 09:49:57 UTC (rev
8112)
+++ branches/branch-1.3/ide/Xcode3/fltk.pch 2010-12-23 14:24:29 UTC (rev
8113)
@@ -6,3 +6,6 @@
#import <Cocoa/Cocoa.h>
#endif
+#ifdef FL_LIBRARY
+#include <Carbon/Carbon.h>
+#endif
Modified: branches/branch-1.3/makeinclude.in
===================================================================
--- branches/branch-1.3/makeinclude.in 2010-12-23 09:49:57 UTC (rev 8112)
+++ branches/branch-1.3/makeinclude.in 2010-12-23 14:24:29 UTC (rev 8113)
@@ -60,7 +60,7 @@
ARCHFLAGS = @ARCHFLAGS@
OPTIM = @OPTIM@
CFLAGS = $(OPTIM) @LARGEFILE@ @PTHREAD_FLAGS@ @CPPFLAGS@ @CFLAGS@
-CXXFLAGS = $(OPTIM) @LARGEFILE@ @PTHREAD_FLAGS@ @CPPFLAGS@ @CXXFLAGS@
+CXXFLAGS = $(OPTIM) @LARGEFILE@ @PTHREAD_FLAGS@ @CPPFLAGS@ @CXXFLAGS@
$(FLTKFLAGS)
# program to make the archive:
LIBNAME = @LIBNAME@
Modified: branches/branch-1.3/src/CMakeLists.txt
===================================================================
--- branches/branch-1.3/src/CMakeLists.txt 2010-12-23 09:49:57 UTC (rev
8112)
+++ branches/branch-1.3/src/CMakeLists.txt 2010-12-23 14:24:29 UTC (rev
8113)
@@ -194,6 +194,7 @@
)
if(APPLE)
+ add_definitions(-DFL_LIBRARY)
set(MMFILES
Fl_cocoa.mm
Fl_Quartz_Printer.mm
Modified: branches/branch-1.3/src/Fl.cxx
===================================================================
--- branches/branch-1.3/src/Fl.cxx 2010-12-23 09:49:57 UTC (rev 8112)
+++ branches/branch-1.3/src/Fl.cxx 2010-12-23 14:24:29 UTC (rev 8113)
@@ -667,7 +667,7 @@
*/
void Fl::first_window(Fl_Window* window) {
if (!window || !window->shown()) return;
- fl_find(fl_xid(window));
+ fl_find( Fl_X::i(window)->xid );
}
/**
Modified: branches/branch-1.3/src/Fl_cocoa.mm
===================================================================
--- branches/branch-1.3/src/Fl_cocoa.mm 2010-12-23 09:49:57 UTC (rev 8112)
+++ branches/branch-1.3/src/Fl_cocoa.mm 2010-12-23 14:24:29 UTC (rev 8113)
@@ -3266,6 +3266,11 @@
return CGRectMake(x, y, w > 0 ? w - 0.9 : 0, h > 0 ? h - 0.9 : 0);
}
+Window fl_xid(const Fl_Window* w)
+{
+ return Fl_X::i(w)->xid;
+}
+
#endif // __APPLE__
//
Modified: branches/branch-1.3/src/Makefile
===================================================================
--- branches/branch-1.3/src/Makefile 2010-12-23 09:49:57 UTC (rev 8112)
+++ branches/branch-1.3/src/Makefile 2010-12-23 14:24:29 UTC (rev 8113)
@@ -217,7 +217,7 @@
xutf8/utf8Wrap.c
################################################################
-
+FLTKFLAGS = -DFL_LIBRARY
include ../makeinclude
MMFILES = $(shell if test $(USEMMFILES) = Yes; then echo $(OBJCPPFILES); fi)
Modified: branches/branch-1.3/test/demo.cxx
===================================================================
--- branches/branch-1.3/test/demo.cxx 2010-12-23 09:49:57 UTC (rev 8112)
+++ branches/branch-1.3/test/demo.cxx 2010-12-23 14:24:29 UTC (rev 8113)
@@ -136,6 +136,8 @@
# define chdir _chdir
# define putenv _putenv
# endif // !__WATCOMC__
+#elif defined USING_XCODE
+#include <Carbon/Carbon.h>
#else
# include <unistd.h>
#endif
_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit