Updated config stuff to allow for --enable-quartz ofr Mac OS X which in
turn defined USE_QUARTZ to 1 and defines __APPLE_QUARTZ__. If Quartz is not disabled, it will define __APPLE_QD__ for Quickdraw. I also replaced all relevand #ifdef __APPLE__ with #ifdef __APPLE_QD__ #elif defined(__APPLE_QUARTZ__). This does not affect the compile at this time and both version will generate the same Quickdraw code. I will start to replace all QD calls with Quartz calls for the remainder of the week until I can completely remove all QD calls from the Quartz branch. Thanks to Robert Smith for a great initial Quartz implementation. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3782 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
522f98d523
commit
8327822026
18
configh.in
18
configh.in
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* "$Id: configh.in,v 1.11.2.11.2.17 2004/04/11 04:38:53 easysw Exp $"
|
||||
* "$Id: configh.in,v 1.11.2.11.2.18 2004/08/25 00:20:24 matthiaswm Exp $"
|
||||
*
|
||||
* Configuration file for the Fast Light Tool Kit (FLTK).
|
||||
* @configure_input@
|
||||
@ -98,6 +98,20 @@
|
||||
|
||||
#define USE_XDBE HAVE_XDBE
|
||||
|
||||
/*
|
||||
* USE_QUARTZ:
|
||||
*
|
||||
* Use Quartz instead of Quickdraw on Apple Mac OS X machines.
|
||||
* FLTK was originally ported to Quickdraw which is no longer
|
||||
* supported by Apple. If USE_QUARTZ is defined, FLTK will be
|
||||
* compiled using Quartz instead. This flag has no meaning on
|
||||
* other operating systems.
|
||||
*/
|
||||
|
||||
#define USE_QUARTZ 0
|
||||
#undef __APPLE_QUARTZ__
|
||||
#undef __APPLE_QD__
|
||||
|
||||
/*
|
||||
* HAVE_OVERLAY:
|
||||
*
|
||||
@ -220,5 +234,5 @@
|
||||
|
||||
|
||||
/*
|
||||
* End of "$Id: configh.in,v 1.11.2.11.2.17 2004/04/11 04:38:53 easysw Exp $".
|
||||
* End of "$Id: configh.in,v 1.11.2.11.2.18 2004/08/25 00:20:24 matthiaswm Exp $".
|
||||
*/
|
||||
|
16
configure.in
16
configure.in
@ -1,7 +1,7 @@
|
||||
dnl -*- sh -*-
|
||||
dnl the "configure" script is made from this by running GNU "autoconf"
|
||||
dnl
|
||||
dnl "$Id: configure.in,v 1.33.2.31.2.116 2004/07/29 18:13:10 easysw Exp $"
|
||||
dnl "$Id: configure.in,v 1.33.2.31.2.117 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
dnl
|
||||
dnl Configuration script for the Fast Light Tool Kit (FLTK).
|
||||
dnl
|
||||
@ -223,6 +223,18 @@ AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support
|
||||
|
||||
AC_ARG_WITH(optim, [ --with-optim="flags" use custom optimization flags])
|
||||
|
||||
case $uname in
|
||||
Darwin*)
|
||||
AC_ARG_ENABLE(quartz, [ --enable-quartz use Quartz instead of Quickdraw (default=no)])
|
||||
if test "x$enable_quartz" = "xyes"; then
|
||||
AC_DEFINE(USE_QUARTZ, 1)
|
||||
AC_DEFINE(__APPLE_QUARTZ__)
|
||||
else
|
||||
AC_DEFINE(__APPLE_QD__)
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl Find commands...
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
@ -899,5 +911,5 @@ dnl Make sure the fltk-config script is executable...
|
||||
chmod +x fltk-config
|
||||
|
||||
dnl
|
||||
dnl End of "$Id: configure.in,v 1.33.2.31.2.116 2004/07/29 18:13:10 easysw Exp $".
|
||||
dnl End of "$Id: configure.in,v 1.33.2.31.2.117 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
dnl
|
||||
|
58
src/Fl.cxx
58
src/Fl.cxx
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl.cxx,v 1.24.2.41.2.62 2004/04/11 04:38:56 easysw Exp $"
|
||||
// "$Id: Fl.cxx,v 1.24.2.41.2.63 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// Main event handling code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -317,7 +317,10 @@ Fl_X* Fl_X::first;
|
||||
Fl_Window* fl_find(Window xid) {
|
||||
Fl_X *window;
|
||||
for (Fl_X **pp = &Fl_X::first; (window = *pp); pp = &window->next)
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
if (window->xid == xid && !window->w->window()) {
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning QUARTZ
|
||||
if (window->xid == xid && !window->w->window()) {
|
||||
#else
|
||||
if (window->xid == xid) {
|
||||
@ -368,12 +371,19 @@ void Fl::flush() {
|
||||
|
||||
#ifdef WIN32
|
||||
GdiFlush();
|
||||
#elif defined (__APPLE__)
|
||||
#elif defined (__APPLE_QD__)
|
||||
GrafPtr port; GetPort( &port );
|
||||
if ( port )
|
||||
{
|
||||
QDFlushPortBuffer( port, 0 );
|
||||
}
|
||||
#elif defined (__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
GrafPtr port; GetPort( &port );
|
||||
if ( port )
|
||||
{
|
||||
QDFlushPortBuffer( port, 0 );
|
||||
}
|
||||
#else
|
||||
if (fl_display) XFlush(fl_display);
|
||||
#endif
|
||||
@ -734,13 +744,21 @@ void Fl_Window::hide() {
|
||||
for (; *pp != ip; pp = &(*pp)->next) if (!*pp) return;
|
||||
*pp = ip->next;
|
||||
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
// remove all childwindow links
|
||||
for ( Fl_X *pc = Fl_X::first; pc; pc = pc->next )
|
||||
{
|
||||
if ( pc->xidNext == ip ) pc->xidNext = ip->xidNext;
|
||||
if ( pc->xidChildren == ip ) pc->xidChildren = ip->xidNext;
|
||||
}
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
// remove all childwindow links
|
||||
for ( Fl_X *pc = Fl_X::first; pc; pc = pc->next )
|
||||
{
|
||||
if ( pc->xidNext == ip ) pc->xidNext = ip->xidNext;
|
||||
if ( pc->xidChildren == ip ) pc->xidChildren = ip->xidNext;
|
||||
}
|
||||
#endif // __APPLE__
|
||||
|
||||
i = 0;
|
||||
@ -773,14 +791,26 @@ void Fl_Window::hide() {
|
||||
fl_window = (HWND)-1;
|
||||
fl_gc = 0;
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if ( ip->xid == fl_window )
|
||||
fl_window = 0;
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
if ( ip->xid == fl_window )
|
||||
fl_window = 0;
|
||||
#else
|
||||
if (ip->region) XDestroyRegion(ip->region);
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
if ( !parent() ) // don't destroy shared windows!
|
||||
{
|
||||
//+ RemoveTrackingHandler( dndTrackingHandler, ip->xid );
|
||||
//+ RemoveReceiveHandler( dndReceiveHandler, ip->xid );
|
||||
XDestroyWindow(fl_display, ip->xid);
|
||||
}
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
if ( !parent() ) // don't destroy shared windows!
|
||||
{
|
||||
//+ RemoveTrackingHandler( dndTrackingHandler, ip->xid );
|
||||
@ -835,9 +865,13 @@ int Fl_Window::handle(int ev)
|
||||
Fl_Widget* p = parent(); for (;p->visible();p = p->parent()) {}
|
||||
if (p->type() >= FL_WINDOW) break; // don't do the unmap
|
||||
}
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
hide();
|
||||
set_visible();
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
hide();
|
||||
set_visible();
|
||||
#else
|
||||
XUnmapWindow(fl_display, fl_xid(this));
|
||||
#endif // __APPLE__
|
||||
@ -956,11 +990,17 @@ void Fl_Widget::damage(uchar fl, int X, int Y, int W, int H) {
|
||||
Fl_Region R = XRectangleRegion(X, Y, W, H);
|
||||
CombineRgn(i->region, i->region, R, RGN_OR);
|
||||
XDestroyRegion(R);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
Fl_Region R = NewRgn();
|
||||
SetRectRgn(R, X, Y, X+W, Y+H);
|
||||
UnionRgn(R, i->region, i->region);
|
||||
DisposeRgn(R);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
Fl_Region R = NewRgn();
|
||||
SetRectRgn(R, X, Y, X+W, Y+H);
|
||||
UnionRgn(R, i->region, i->region);
|
||||
DisposeRgn(R);
|
||||
#else
|
||||
XRectangle R;
|
||||
R.x = X; R.y = Y; R.width = W; R.height = H;
|
||||
@ -985,5 +1025,5 @@ void Fl_Window::flush() {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: Fl.cxx,v 1.24.2.41.2.62 2004/04/11 04:38:56 easysw Exp $".
|
||||
// End of "$Id: Fl.cxx,v 1.24.2.41.2.63 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.23 2004/04/11 04:38:57 easysw Exp $"
|
||||
// "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.24 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// Bitmap drawing routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -31,7 +31,7 @@
|
||||
#include <FL/Fl_Bitmap.H>
|
||||
#include "flstring.h"
|
||||
|
||||
#ifdef __APPLE__ // MacOS bitmask functions
|
||||
#ifdef __APPLE_QD__ // MacOS bitmask functions
|
||||
Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *array) {
|
||||
Rect srcRect;
|
||||
srcRect.left = 0; srcRect.right = w;
|
||||
@ -74,6 +74,51 @@ Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *array) {
|
||||
return gw; /* tell caller we succeeded! */
|
||||
}
|
||||
|
||||
void fl_delete_bitmask(Fl_Bitmask id) {
|
||||
if (id) DisposeGWorld(id);
|
||||
}
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
Fl_Bitmask fl_create_bitmask(int w, int h, const uchar *array) {
|
||||
Rect srcRect;
|
||||
srcRect.left = 0; srcRect.right = w;
|
||||
srcRect.top = 0; srcRect.bottom = h;
|
||||
GrafPtr savePort;
|
||||
|
||||
GetPort(&savePort); // remember the current port
|
||||
|
||||
Fl_Bitmask gw;
|
||||
NewGWorld( &gw, 1, &srcRect, 0L, 0L, 0 );
|
||||
PixMapHandle pm = GetGWorldPixMap( gw );
|
||||
if ( pm )
|
||||
{
|
||||
LockPixels( pm );
|
||||
if ( *pm )
|
||||
{
|
||||
uchar *base = (uchar*)GetPixBaseAddr( pm );
|
||||
if ( base )
|
||||
{
|
||||
PixMapPtr pmp = *pm;
|
||||
// verify the parameters for direct memory write
|
||||
if ( pmp->pixelType == 0 || pmp->pixelSize == 1 || pmp->cmpCount == 1 || pmp->cmpSize == 1 )
|
||||
{
|
||||
static uchar reverse[16] = /* Bit reversal lookup table */
|
||||
{ 0x00, 0x88, 0x44, 0xcc, 0x22, 0xaa, 0x66, 0xee, 0x11, 0x99, 0x55, 0xdd, 0x33, 0xbb, 0x77, 0xff };
|
||||
uchar *dst = base;
|
||||
const uchar *src = array;
|
||||
int rowBytesSrc = (w+7)>>3 ;
|
||||
int rowPatch = (pmp->rowBytes&0x3fff) - rowBytesSrc;
|
||||
for ( int j=0; j<h; j++,dst+=rowPatch )
|
||||
for ( int i=0; i<rowBytesSrc; i++,src++ )
|
||||
*dst++ = (reverse[*src & 0x0f] & 0xf0) | (reverse[(*src >> 4) & 0x0f] & 0x0f);
|
||||
}
|
||||
}
|
||||
UnlockPixels( pm );
|
||||
}
|
||||
}
|
||||
SetPort(savePort);
|
||||
return gw; /* tell caller we succeeded! */
|
||||
}
|
||||
void fl_delete_bitmask(Fl_Bitmask id) {
|
||||
if (id) DisposeGWorld(id);
|
||||
}
|
||||
@ -213,7 +258,7 @@ void fl_delete_bitmask(Fl_Bitmask bm) {
|
||||
// If you want to test/fix this, uncomment the "#ifdef __APPLE__" and comment out
|
||||
// the "#if 0" here. Also see Fl_Image.cxx for a similar check...
|
||||
|
||||
//#ifdef __APPLE__
|
||||
//#ifdef __APPLE_QD__
|
||||
#if 0
|
||||
// Create an 8-bit mask used for alpha blending
|
||||
Fl_Bitmask fl_create_alphamask(int w, int h, int d, int ld, const uchar *array) {
|
||||
@ -356,7 +401,7 @@ void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
// secret bitblt code found in old MSWindows reference manual:
|
||||
BitBlt(fl_gc, X, Y, W, H, tempdc, cx, cy, 0xE20746L);
|
||||
DeleteDC(tempdc);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if (!id) id = fl_create_bitmask(w(), h(), array);
|
||||
GrafPtr dstPort;
|
||||
GetPort( &dstPort );
|
||||
@ -370,6 +415,21 @@ void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
&dst, // dst bounds
|
||||
srcOr, // mode
|
||||
0L); // mask region
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
if (!id) id = fl_create_bitmask(w(), h(), array);
|
||||
GrafPtr dstPort;
|
||||
GetPort( &dstPort );
|
||||
Rect src, dst;
|
||||
GetPortBounds( (Fl_Offscreen)id, &src );
|
||||
SetRect( &src, cx, cy, cx+W, cy+H );
|
||||
SetRect( &dst, X, Y, X+W, Y+H );
|
||||
CopyBits(GetPortBitMapForCopyBits((Fl_Offscreen)id), // srcBits
|
||||
GetPortBitMapForCopyBits(dstPort), // dstBits
|
||||
&src, // src bounds
|
||||
&dst, // dst bounds
|
||||
srcOr, // mode
|
||||
0L); // mask region
|
||||
#else
|
||||
if (!id) id = fl_create_bitmask(w(), h(), array);
|
||||
|
||||
@ -474,5 +534,5 @@ Fl_Image *Fl_Bitmap::copy(int W, int H) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.23 2004/04/11 04:38:57 easysw Exp $".
|
||||
// End of "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.24 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Double_Window.cxx,v 1.12.2.4.2.9 2004/04/11 04:38:57 easysw Exp $"
|
||||
// "$Id: Fl_Double_Window.cxx,v 1.12.2.4.2.10 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// Double-buffered window code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -94,11 +94,8 @@ void fl_copy_offscreen(int x,int y,int w,int h,HBITMAP bitmap,int srcx,int srcy)
|
||||
|
||||
extern void fl_restore_clip();
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
|
||||
/**
|
||||
* Mac:
|
||||
*/
|
||||
GWorldPtr fl_create_offscreen(int w, int h) {
|
||||
GWorldPtr gw;
|
||||
Rect bounds;
|
||||
@ -111,9 +108,6 @@ GWorldPtr fl_create_offscreen(int w, int h) {
|
||||
return gw;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mac:
|
||||
*/
|
||||
void fl_copy_offscreen(int x,int y,int w,int h,GWorldPtr gWorld,int srcx,int srcy) {
|
||||
Rect src;
|
||||
if ( !gWorld ) return;
|
||||
@ -129,9 +123,6 @@ void fl_copy_offscreen(int x,int y,int w,int h,GWorldPtr gWorld,int srcx,int src
|
||||
CopyBits(GetPortBitMapForCopyBits(gWorld), GetPortBitMapForCopyBits(dstPort), &src, &dst, srcCopy, 0L);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mac:
|
||||
*/
|
||||
void fl_delete_offscreen(GWorldPtr gWorld) {
|
||||
DisposeGWorld(gWorld);
|
||||
}
|
||||
@ -139,9 +130,6 @@ void fl_delete_offscreen(GWorldPtr gWorld) {
|
||||
static GrafPtr prevPort;
|
||||
static GDHandle prevGD;
|
||||
|
||||
/**
|
||||
* Mac:
|
||||
*/
|
||||
void fl_begin_offscreen(GWorldPtr gWorld) {
|
||||
GetGWorld( &prevPort, &prevGD );
|
||||
if ( gWorld )
|
||||
@ -162,9 +150,75 @@ void fl_begin_offscreen(GWorldPtr gWorld) {
|
||||
fl_push_no_clip();
|
||||
}
|
||||
|
||||
/**
|
||||
* Mac:
|
||||
*/
|
||||
void fl_end_offscreen() {
|
||||
GWorldPtr currPort;
|
||||
GDHandle currGD;
|
||||
GetGWorld( &currPort, &currGD );
|
||||
fl_pop_clip();
|
||||
PixMapHandle pm = GetGWorldPixMap(currPort);
|
||||
UnlockPixels(pm);
|
||||
SetGWorld( prevPort, prevGD );
|
||||
fl_window = GetWindowFromPort( prevPort );
|
||||
}
|
||||
|
||||
extern void fl_restore_clip();
|
||||
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
GWorldPtr fl_create_offscreen(int w, int h) {
|
||||
GWorldPtr gw;
|
||||
Rect bounds;
|
||||
bounds.left=0; bounds.right=w; bounds.top=0; bounds.bottom=h;
|
||||
QDErr err = NewGWorld(&gw, 0, &bounds, 0L, 0L, 0); // 'useTempMem' should not be used (says the Carbon port manual)
|
||||
if ( err == -108 )
|
||||
{ }
|
||||
// fl_message( "The application memory is low. Please increase the initial memory assignment.\n" );
|
||||
if (err!=noErr || gw==0L) return 0L;
|
||||
return gw;
|
||||
}
|
||||
|
||||
void fl_copy_offscreen(int x,int y,int w,int h,GWorldPtr gWorld,int srcx,int srcy) {
|
||||
Rect src;
|
||||
if ( !gWorld ) return;
|
||||
src.top = srcy; src.left = srcx; src.bottom = srcy+h; src.right = srcx+w;
|
||||
Rect dst;
|
||||
GrafPtr dstPort; GetPort(&dstPort);
|
||||
dst.top = y; dst.left = x; dst.bottom = y+h; dst.right = x+w;
|
||||
RGBColor rgb;
|
||||
rgb.red = 0xffff; rgb.green = 0xffff; rgb.blue = 0xffff;
|
||||
RGBBackColor( &rgb );
|
||||
rgb.red = 0x0000; rgb.green = 0x0000; rgb.blue = 0x0000;
|
||||
RGBForeColor( &rgb );
|
||||
CopyBits(GetPortBitMapForCopyBits(gWorld), GetPortBitMapForCopyBits(dstPort), &src, &dst, srcCopy, 0L);
|
||||
}
|
||||
|
||||
void fl_delete_offscreen(GWorldPtr gWorld) {
|
||||
DisposeGWorld(gWorld);
|
||||
}
|
||||
|
||||
static GrafPtr prevPort;
|
||||
static GDHandle prevGD;
|
||||
|
||||
void fl_begin_offscreen(GWorldPtr gWorld) {
|
||||
GetGWorld( &prevPort, &prevGD );
|
||||
if ( gWorld )
|
||||
{
|
||||
SetGWorld( gWorld, 0 ); // sets the correct port
|
||||
PixMapHandle pm = GetGWorldPixMap(gWorld);
|
||||
Boolean ret = LockPixels(pm);
|
||||
if ( ret == false )
|
||||
{
|
||||
Rect rect;
|
||||
GetPortBounds( gWorld, &rect );
|
||||
UpdateGWorld( &gWorld, 0, &rect, 0, 0, 0 );
|
||||
pm = GetGWorldPixMap( gWorld );
|
||||
LockPixels( pm );
|
||||
}
|
||||
fl_window = 0;
|
||||
}
|
||||
fl_push_no_clip();
|
||||
}
|
||||
|
||||
void fl_end_offscreen() {
|
||||
GWorldPtr currPort;
|
||||
GDHandle currGD;
|
||||
@ -195,7 +249,16 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
||||
XdbeAllocateBackBufferName(fl_display, fl_xid(this), XdbeUndefined);
|
||||
else
|
||||
#endif
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
// the Apple OS X window manager double buffers ALL windows
|
||||
// anyway, so there is no need to waste memory and time.
|
||||
//
|
||||
// BTW: Windows2000 and later also forces doublebuffering if
|
||||
// transparent windows are beeing used (alpha channel)
|
||||
if ( ( !QDIsPortBuffered( GetWindowPort(myi->xid) ) ) || force_doublebuffering_ )
|
||||
myi->other_xid = fl_create_offscreen(w(), h());
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
// the Apple OS X window manager double buffers ALL windows
|
||||
// anyway, so there is no need to waste memory and time.
|
||||
//
|
||||
@ -243,7 +306,7 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
||||
draw();
|
||||
DeleteDC(fl_gc);
|
||||
fl_gc = _sgc;
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if ( myi->other_xid ) {
|
||||
fl_begin_offscreen( myi->other_xid );
|
||||
fl_clip_region( 0 );
|
||||
@ -252,6 +315,16 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
||||
} else {
|
||||
draw();
|
||||
}
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
if ( myi->other_xid ) {
|
||||
fl_begin_offscreen( myi->other_xid );
|
||||
fl_clip_region( 0 );
|
||||
draw();
|
||||
fl_end_offscreen();
|
||||
} else {
|
||||
draw();
|
||||
}
|
||||
#else // X:
|
||||
fl_window = myi->other_xid;
|
||||
draw();
|
||||
@ -262,7 +335,10 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
||||
// on Irix (at least) it is faster to reduce the area copied to
|
||||
// the current clip region:
|
||||
int X,Y,W,H; fl_clip_box(0,0,w(),h(),X,Y,W,H);
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
if (myi->other_xid) fl_copy_offscreen(X, Y, W, H, myi->other_xid, X, Y);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
if (myi->other_xid) fl_copy_offscreen(X, Y, W, H, myi->other_xid, X, Y);
|
||||
#else
|
||||
fl_copy_offscreen(X, Y, W, H, myi->other_xid, X, Y);
|
||||
@ -299,5 +375,5 @@ Fl_Double_Window::~Fl_Double_Window() {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Double_Window.cxx,v 1.12.2.4.2.9 2004/04/11 04:38:57 easysw Exp $".
|
||||
// End of "$Id: Fl_Double_Window.cxx,v 1.12.2.4.2.10 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Font.H,v 1.6.2.3.2.5 2004/04/11 04:38:57 easysw Exp $"
|
||||
// "$Id: Fl_Font.H,v 1.6.2.3.2.6 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// Font definitions for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -36,6 +36,8 @@
|
||||
#ifndef FL_FONT_
|
||||
#define FL_FONT_
|
||||
|
||||
#include <config.h>
|
||||
|
||||
# if USE_XFT
|
||||
typedef struct _XftFont XftFont;
|
||||
# endif // USE_XFT
|
||||
@ -48,7 +50,14 @@ public:
|
||||
int width[256];
|
||||
TEXTMETRIC metr;
|
||||
FL_EXPORT Fl_FontSize(const char* fontname, int size);
|
||||
# elif defined(__APPLE__)
|
||||
# elif defined(__APPLE_QD__)
|
||||
FL_EXPORT Fl_FontSize(const char* fontname, int size);
|
||||
short font, face, size;
|
||||
short ascent, descent;
|
||||
short width[256];
|
||||
bool knowMetrics;
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
FL_EXPORT Fl_FontSize(const char* fontname, int size);
|
||||
short font, face, size;
|
||||
short ascent, descent;
|
||||
@ -94,5 +103,5 @@ FL_EXPORT char *fl_find_fontsize(char *name);
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Font.H,v 1.6.2.3.2.5 2004/04/11 04:38:57 easysw Exp $".
|
||||
// End of "$Id: Fl_Font.H,v 1.6.2.3.2.6 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Gl_Choice.H,v 1.4.2.6.2.3 2001/12/18 11:00:09 matthiaswm Exp $"
|
||||
// "$Id: Fl_Gl_Choice.H,v 1.4.2.6.2.4 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// OpenGL definitions for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -57,7 +57,12 @@
|
||||
#ifdef WIN32
|
||||
# include <FL/gl.h>
|
||||
# define GLContext HGLRC
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
# include <OpenGL/gl.h>
|
||||
# include <AGL/agl.h>
|
||||
# define GLContext AGLContext
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
# include <OpenGL/gl.h>
|
||||
# include <AGL/agl.h>
|
||||
# define GLContext AGLContext
|
||||
@ -75,7 +80,10 @@ public:
|
||||
#ifdef WIN32
|
||||
int pixelformat; // the visual to use
|
||||
PIXELFORMATDESCRIPTOR pfd; // some wgl calls need this thing
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
AGLPixelFormat pixelformat;
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
AGLPixelFormat pixelformat;
|
||||
#else
|
||||
XVisualInfo *vis; // the visual to use
|
||||
@ -93,7 +101,12 @@ class Fl_Window;
|
||||
|
||||
GLContext fl_create_gl_context(Fl_Window*, const Fl_Gl_Choice*, int layer=0);
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
|
||||
GLContext fl_create_gl_context(Fl_Window*, const Fl_Gl_Choice*, int layer=0);
|
||||
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
|
||||
GLContext fl_create_gl_context(Fl_Window*, const Fl_Gl_Choice*, int layer=0);
|
||||
|
||||
@ -115,5 +128,5 @@ void fl_delete_gl_context(GLContext);
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Gl_Choice.H,v 1.4.2.6.2.3 2001/12/18 11:00:09 matthiaswm Exp $".
|
||||
// End of "$Id: Fl_Gl_Choice.H,v 1.4.2.6.2.4 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Gl_Choice.cxx,v 1.5.2.7.2.19 2004/05/15 22:58:18 easysw Exp $"
|
||||
// "$Id: Fl_Gl_Choice.cxx,v 1.5.2.7.2.20 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// OpenGL visual selection code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -33,7 +33,10 @@
|
||||
# include <FL/gl_draw.H>
|
||||
# include "flstring.h"
|
||||
|
||||
# ifdef __APPLE__
|
||||
# ifdef __APPLE_QD__
|
||||
# include <FL/Fl_Window.H>
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
# include <FL/Fl_Window.H>
|
||||
# endif
|
||||
|
||||
@ -49,7 +52,7 @@ Fl_Gl_Choice *Fl_Gl_Choice::find(int m, const int *alistp) {
|
||||
if (g->mode == m && g->alist == alistp)
|
||||
return g;
|
||||
|
||||
# ifdef __APPLE__
|
||||
# ifdef __APPLE_QD__
|
||||
const int *blist;
|
||||
int list[32];
|
||||
|
||||
@ -97,6 +100,56 @@ Fl_Gl_Choice *Fl_Gl_Choice::find(int m, const int *alistp) {
|
||||
fl_open_display();
|
||||
AGLPixelFormat fmt = aglChoosePixelFormat(NULL, 0, (GLint*)blist);
|
||||
if (!fmt) return 0;
|
||||
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
const int *blist;
|
||||
int list[32];
|
||||
|
||||
if (alistp)
|
||||
blist = alistp;
|
||||
else {
|
||||
int n = 0;
|
||||
if (m & FL_INDEX) {
|
||||
list[n++] = AGL_BUFFER_SIZE;
|
||||
list[n++] = 8; // glut tries many sizes, but this should work...
|
||||
} else {
|
||||
list[n++] = AGL_RGBA;
|
||||
list[n++] = AGL_GREEN_SIZE;
|
||||
list[n++] = (m & FL_RGB8) ? 8 : 1;
|
||||
if (m & FL_ALPHA) {
|
||||
list[n++] = AGL_ALPHA_SIZE;
|
||||
list[n++] = 1;
|
||||
}
|
||||
if (m & FL_ACCUM) {
|
||||
list[n++] = AGL_ACCUM_GREEN_SIZE;
|
||||
list[n++] = 1;
|
||||
if (m & FL_ALPHA) {
|
||||
list[n++] = AGL_ACCUM_ALPHA_SIZE;
|
||||
list[n++] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m & FL_DOUBLE) {
|
||||
list[n++] = AGL_DOUBLEBUFFER;
|
||||
}
|
||||
if (m & FL_DEPTH) {
|
||||
list[n++] = AGL_DEPTH_SIZE; list[n++] = 24;
|
||||
}
|
||||
if (m & FL_STENCIL) {
|
||||
list[n++] = AGL_STENCIL_SIZE; list[n++] = 1;
|
||||
}
|
||||
# ifdef AGL_STEREO
|
||||
if (m & FL_STEREO) {
|
||||
list[n++] = AGL_STEREO;
|
||||
}
|
||||
# endif
|
||||
list[n] = AGL_NONE;
|
||||
blist = list;
|
||||
}
|
||||
fl_open_display();
|
||||
AGLPixelFormat fmt = aglChoosePixelFormat(NULL, 0, (GLint*)blist);
|
||||
if (!fmt) return 0;
|
||||
|
||||
# elif !defined(WIN32)
|
||||
|
||||
@ -205,7 +258,10 @@ Fl_Gl_Choice *Fl_Gl_Choice::find(int m, const int *alistp) {
|
||||
# ifdef WIN32
|
||||
g->pixelformat = pixelformat;
|
||||
g->pfd = chosen_pfd;
|
||||
# elif defined(__APPLE__)
|
||||
# elif defined(__APPLE_QD__)
|
||||
g->pixelformat = fmt;
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
g->pixelformat = fmt;
|
||||
# else
|
||||
g->vis = visp;
|
||||
@ -271,7 +327,7 @@ GLContext fl_create_gl_context(Fl_Window* window, const Fl_Gl_Choice* g, int lay
|
||||
return context;
|
||||
}
|
||||
|
||||
# elif defined(__APPLE__)
|
||||
# elif defined(__APPLE_QD__)
|
||||
GLContext fl_create_gl_context(Fl_Window* window, const Fl_Gl_Choice* g, int layer) {
|
||||
GLContext context, shared_ctx = context_list ? context_list[0] : 0;
|
||||
context = aglCreateContext( g->pixelformat, shared_ctx);
|
||||
@ -286,6 +342,22 @@ GLContext fl_create_gl_context(Fl_Window* window, const Fl_Gl_Choice* g, int lay
|
||||
aglSetDrawable( context, GetWindowPort( fl_xid(window) ) );
|
||||
return (context);
|
||||
}
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
GLContext fl_create_gl_context(Fl_Window* window, const Fl_Gl_Choice* g, int layer) {
|
||||
GLContext context, shared_ctx = context_list ? context_list[0] : 0;
|
||||
context = aglCreateContext( g->pixelformat, shared_ctx);
|
||||
if (!context) return 0;
|
||||
add_context((GLContext)context);
|
||||
if ( window->parent() ) {
|
||||
Rect wrect; GetWindowPortBounds( fl_xid(window), &wrect );
|
||||
GLint rect[] = { window->x(), wrect.bottom-window->h()-window->y(), window->w(), window->h() };
|
||||
aglSetInteger( (GLContext)context, AGL_BUFFER_RECT, rect );
|
||||
aglEnable( (GLContext)context, AGL_BUFFER_RECT );
|
||||
}
|
||||
aglSetDrawable( context, GetWindowPort( fl_xid(window) ) );
|
||||
return (context);
|
||||
}
|
||||
# else
|
||||
|
||||
GLContext fl_create_gl_context(XVisualInfo* vis) {
|
||||
@ -307,7 +379,7 @@ void fl_set_gl_context(Fl_Window* w, GLContext context) {
|
||||
cached_window = w;
|
||||
# ifdef WIN32
|
||||
wglMakeCurrent(Fl_X::i(w)->private_dc, context);
|
||||
# elif defined(__APPLE__)
|
||||
# elif defined(__APPLE_QD__)
|
||||
if ( w->parent() ) { //: resize our GL buffer rectangle
|
||||
Rect wrect; GetWindowPortBounds( fl_xid(w), &wrect );
|
||||
GLint rect[] = { w->x(), wrect.bottom-w->h()-w->y(), w->w(), w->h() };
|
||||
@ -316,6 +388,16 @@ void fl_set_gl_context(Fl_Window* w, GLContext context) {
|
||||
}
|
||||
aglSetDrawable(context, GetWindowPort( fl_xid(w) ) );
|
||||
aglSetCurrentContext(context);
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
#warning
|
||||
if ( w->parent() ) { //: resize our GL buffer rectangle
|
||||
Rect wrect; GetWindowPortBounds( fl_xid(w), &wrect );
|
||||
GLint rect[] = { w->x(), wrect.bottom-w->h()-w->y(), w->w(), w->h() };
|
||||
aglSetInteger( context, AGL_BUFFER_RECT, rect );
|
||||
aglEnable( context, AGL_BUFFER_RECT );
|
||||
}
|
||||
aglSetDrawable(context, GetWindowPort( fl_xid(w) ) );
|
||||
aglSetCurrentContext(context);
|
||||
# else
|
||||
glXMakeCurrent(fl_display, fl_xid(w), context);
|
||||
# endif
|
||||
@ -327,7 +409,10 @@ void fl_no_gl_context() {
|
||||
cached_window = 0;
|
||||
# ifdef WIN32
|
||||
wglMakeCurrent(0, 0);
|
||||
# elif defined(__APPLE__)
|
||||
# elif defined(__APPLE_QD__)
|
||||
aglSetCurrentContext(0);
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
aglSetCurrentContext(0);
|
||||
# else
|
||||
glXMakeCurrent(fl_display, 0, 0);
|
||||
@ -338,10 +423,15 @@ void fl_delete_gl_context(GLContext context) {
|
||||
if (cached_context == context) fl_no_gl_context();
|
||||
# ifdef WIN32
|
||||
wglDeleteContext(context);
|
||||
# elif defined(__APPLE__)
|
||||
# elif defined(__APPLE_QD__)
|
||||
aglSetCurrentContext( NULL );
|
||||
aglSetDrawable( context, NULL );
|
||||
aglDestroyContext( context );
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
aglSetCurrentContext( NULL );
|
||||
aglSetDrawable( context, NULL );
|
||||
aglDestroyContext( context );
|
||||
# else
|
||||
glXDestroyContext(fl_display, context);
|
||||
# endif
|
||||
@ -352,5 +442,5 @@ void fl_delete_gl_context(GLContext context) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Gl_Choice.cxx,v 1.5.2.7.2.19 2004/05/15 22:58:18 easysw Exp $".
|
||||
// End of "$Id: Fl_Gl_Choice.cxx,v 1.5.2.7.2.20 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.20 2004/04/11 04:38:57 easysw Exp $"
|
||||
// "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.21 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// OpenGL window code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -106,7 +106,10 @@ int Fl_Gl_Window::mode(int m, const int *a) {
|
||||
hide();
|
||||
show();
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
redraw();
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
redraw();
|
||||
#else
|
||||
// under X, if the visual changes we must make a new X window (yuck!):
|
||||
@ -189,7 +192,10 @@ void Fl_Gl_Window::swap_buffers() {
|
||||
# else
|
||||
SwapBuffers(Fl_X::i(this)->private_dc);
|
||||
# endif
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
aglSwapBuffers((AGLContext)context_);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
aglSwapBuffers((AGLContext)context_);
|
||||
#else
|
||||
glXSwapBuffers(fl_display, fl_xid(this));
|
||||
@ -204,7 +210,16 @@ int fl_overlay_depth = 0;
|
||||
void Fl_Gl_Window::flush() {
|
||||
uchar save_valid = valid_;
|
||||
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
//: clear previous clipping in this shared port
|
||||
GrafPtr port = GetWindowPort( fl_xid(this) );
|
||||
Rect rect; SetRect( &rect, 0, 0, 0x7fff, 0x7fff );
|
||||
GrafPtr old; GetPort( &old );
|
||||
SetPort( port );
|
||||
ClipRect( &rect );
|
||||
SetPort( old );
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
//: clear previous clipping in this shared port
|
||||
GrafPtr port = GetWindowPort( fl_xid(this) );
|
||||
Rect rect; SetRect( &rect, 0, 0, 0x7fff, 0x7fff );
|
||||
@ -251,7 +266,10 @@ void Fl_Gl_Window::flush() {
|
||||
glDrawBuffer(GL_BACK);
|
||||
|
||||
if (!SWAP_TYPE) {
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
SWAP_TYPE = COPY;
|
||||
#elif defined __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
SWAP_TYPE = COPY;
|
||||
#else
|
||||
SWAP_TYPE = UNDEFINED;
|
||||
@ -338,7 +356,25 @@ void Fl_Gl_Window::resize(int X,int Y,int W,int H) {
|
||||
// printf("Fl_Gl_Window::resize(X=%d, Y=%d, W=%d, H=%d)\n", X, Y, W, H);
|
||||
if (W != w() || H != h()) {
|
||||
valid(0);
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
GLint xywh[4];
|
||||
|
||||
if (window()) {
|
||||
// MRS: This isn't quite right, but the parent window won't have its W and H updated yet...
|
||||
xywh[0] = x();
|
||||
xywh[1] = window()->h() - y() - h();
|
||||
} else {
|
||||
xywh[0] = 0;
|
||||
xywh[1] = 0;
|
||||
}
|
||||
|
||||
xywh[2] = W;
|
||||
xywh[3] = H;
|
||||
aglSetInteger(context_, AGL_BUFFER_RECT, xywh);
|
||||
// printf("resize: xywh=[%d %d %d %d]\n", xywh[0], xywh[1], xywh[2], xywh[3]);
|
||||
|
||||
aglUpdateContext(context_);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
GLint xywh[4];
|
||||
|
||||
if (window()) {
|
||||
@ -409,5 +445,5 @@ void Fl_Gl_Window::draw_overlay() {}
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.20 2004/04/11 04:38:57 easysw Exp $".
|
||||
// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.21 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Image.cxx,v 1.5.2.3.2.32 2004/04/11 04:38:57 easysw Exp $"
|
||||
// "$Id: Fl_Image.cxx,v 1.5.2.3.2.33 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// Image drawing code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -329,7 +329,7 @@ void Fl_RGB_Image::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
} else {
|
||||
fl_copy_offscreen(X, Y, W, H, (Fl_Offscreen)id, cx, cy);
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if (mask) {
|
||||
Rect src, dst;
|
||||
// MRS: STR #114 says we should be using cx, cy, W, and H...
|
||||
@ -364,6 +364,42 @@ void Fl_RGB_Image::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
} else {
|
||||
fl_copy_offscreen(X, Y, W, H, (Fl_Offscreen)id, cx, cy);
|
||||
}
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
if (mask) {
|
||||
Rect src, dst;
|
||||
// MRS: STR #114 says we should be using cx, cy, W, and H...
|
||||
// src.left = 0; src.right = w();
|
||||
// src.top = 0; src.bottom = h();
|
||||
// dst.left = X; dst.right = X+w();
|
||||
// dst.top = Y; dst.bottom = Y+h();
|
||||
src.left = cx; src.right = cx+W;
|
||||
src.top = cy; src.bottom = cy+H;
|
||||
dst.left = X; dst.right = X+W;
|
||||
dst.top = Y; dst.bottom = Y+H;
|
||||
RGBColor rgb;
|
||||
rgb.red = 0xffff; rgb.green = 0xffff; rgb.blue = 0xffff;
|
||||
RGBBackColor(&rgb);
|
||||
rgb.red = 0x0000; rgb.green = 0x0000; rgb.blue = 0x0000;
|
||||
RGBForeColor(&rgb);
|
||||
|
||||
# if 0
|
||||
// MRS: This *should* work, but doesn't on my system (iBook); change to
|
||||
// "#if 1" and restore the corresponding code in Fl_Bitmap.cxx
|
||||
// to test the real alpha channel support.
|
||||
CopyDeepMask(GetPortBitMapForCopyBits((GrafPtr)id),
|
||||
GetPortBitMapForCopyBits((GrafPtr)mask),
|
||||
GetPortBitMapForCopyBits(GetWindowPort(fl_window)),
|
||||
&src, &src, &dst, blend, NULL);
|
||||
# else // Fallback to screen-door transparency...
|
||||
CopyMask(GetPortBitMapForCopyBits((GrafPtr)id),
|
||||
GetPortBitMapForCopyBits((GrafPtr)mask),
|
||||
GetPortBitMapForCopyBits(GetWindowPort(fl_window)),
|
||||
&src, &src, &dst);
|
||||
# endif // 0
|
||||
} else {
|
||||
fl_copy_offscreen(X, Y, W, H, (Fl_Offscreen)id, cx, cy);
|
||||
}
|
||||
#else
|
||||
if (mask) {
|
||||
// I can't figure out how to combine a mask with existing region,
|
||||
@ -397,5 +433,5 @@ void Fl_RGB_Image::label(Fl_Menu_Item* m) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Image.cxx,v 1.5.2.3.2.32 2004/04/11 04:38:57 easysw Exp $".
|
||||
// End of "$Id: Fl_Image.cxx,v 1.5.2.3.2.33 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.28 2004/04/11 04:38:58 easysw Exp $"
|
||||
// "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.29 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// Pixmap drawing code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -104,7 +104,7 @@ void Fl_Pixmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
} else {
|
||||
fl_copy_offscreen(X, Y, W, H, (Fl_Offscreen)id, cx, cy);
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if (mask) {
|
||||
Rect src, dst;
|
||||
src.left = cx; src.right = cx+W;
|
||||
@ -123,6 +123,26 @@ void Fl_Pixmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
} else {
|
||||
fl_copy_offscreen(X, Y, W, H, (Fl_Offscreen)id, cx, cy);
|
||||
}
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
if (mask) {
|
||||
Rect src, dst;
|
||||
src.left = cx; src.right = cx+W;
|
||||
src.top = cy; src.bottom = cy+H;
|
||||
dst.left = X; dst.right = X+W;
|
||||
dst.top = Y; dst.bottom = Y+H;
|
||||
RGBColor rgb;
|
||||
rgb.red = 0xffff; rgb.green = 0xffff; rgb.blue = 0xffff;
|
||||
RGBBackColor(&rgb);
|
||||
rgb.red = 0x0000; rgb.green = 0x0000; rgb.blue = 0x0000;
|
||||
RGBForeColor(&rgb);
|
||||
CopyMask(GetPortBitMapForCopyBits((GrafPtr)id),
|
||||
GetPortBitMapForCopyBits((GrafPtr)mask),
|
||||
GetPortBitMapForCopyBits(GetWindowPort(fl_window)),
|
||||
&src, &src, &dst);
|
||||
} else {
|
||||
fl_copy_offscreen(X, Y, W, H, (Fl_Offscreen)id, cx, cy);
|
||||
}
|
||||
#else
|
||||
if (mask) {
|
||||
// I can't figure out how to combine a mask with existing region,
|
||||
@ -461,5 +481,5 @@ void Fl_Pixmap::desaturate() {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.28 2004/04/11 04:38:58 easysw Exp $".
|
||||
// End of "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.29 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Widget.cxx,v 1.5.2.4.2.23 2004/04/11 04:38:58 easysw Exp $"
|
||||
// "$Id: Fl_Widget.cxx,v 1.5.2.4.2.24 2004/08/25 00:20:25 matthiaswm Exp $"
|
||||
//
|
||||
// Base widget class for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -150,7 +150,7 @@ Fl_Widget::draw_focus(Fl_Boxtype B, int X, int Y, int W, int H) const {
|
||||
|
||||
fl_color(fl_contrast(FL_BLACK, color()));
|
||||
|
||||
#if defined(WIN32) || defined(__APPLE__)
|
||||
#if defined(WIN32) || defined(__APPLE_QD__)
|
||||
// Windows 95/98/ME do not implement the dotted line style, so draw
|
||||
// every other pixel around the focus area...
|
||||
//
|
||||
@ -245,5 +245,5 @@ int Fl_Widget::contains(const Fl_Widget *o) const {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Widget.cxx,v 1.5.2.4.2.23 2004/04/11 04:38:58 easysw Exp $".
|
||||
// End of "$Id: Fl_Widget.cxx,v 1.5.2.4.2.24 2004/08/25 00:20:25 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Window_fullscreen.cxx,v 1.5.2.3.2.6 2004/04/11 04:38:58 easysw Exp $"
|
||||
// "$Id: Fl_Window_fullscreen.cxx,v 1.5.2.3.2.7 2004/08/25 00:20:26 matthiaswm Exp $"
|
||||
//
|
||||
// Fullscreen window support for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -36,6 +36,10 @@
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/x.H>
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
void Fl_Window::border(int b) {
|
||||
if (b) {
|
||||
if (border()) return;
|
||||
@ -47,8 +51,10 @@ void Fl_Window::border(int b) {
|
||||
#ifdef WIN32
|
||||
// not yet implemented, but it's possible
|
||||
// for full fullscreen we have to make the window topmost as well
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
// \todo Mac : not yet implemeted
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
#else
|
||||
if (shown()) Fl_X::i(this)->sendxjunk();
|
||||
#endif
|
||||
@ -73,5 +79,5 @@ void Fl_Window::fullscreen_off(int X,int Y,int W,int H) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Window_fullscreen.cxx,v 1.5.2.3.2.6 2004/04/11 04:38:58 easysw Exp $".
|
||||
// End of "$Id: Fl_Window_fullscreen.cxx,v 1.5.2.3.2.7 2004/08/25 00:20:26 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_get_key_mac.cxx,v 1.1.2.9 2004/06/19 01:50:31 matthiaswm Exp $"
|
||||
// "$Id: Fl_get_key_mac.cxx,v 1.1.2.10 2004/08/25 00:20:26 matthiaswm Exp $"
|
||||
//
|
||||
// MacOS keyboard state routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -29,6 +29,11 @@
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/x.H>
|
||||
#include <config.h>
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
#endif
|
||||
|
||||
// convert an FLTK (X) keysym to a MacOS symbol:
|
||||
// See also the inverse converter in Fl_mac.cxx
|
||||
@ -99,5 +104,5 @@ int Fl::get_key(int k) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_get_key_mac.cxx,v 1.1.2.9 2004/06/19 01:50:31 matthiaswm Exp $".
|
||||
// End of "$Id: Fl_get_key_mac.cxx,v 1.1.2.10 2004/08/25 00:20:26 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_mac.cxx,v 1.1.2.56 2004/06/19 01:50:31 matthiaswm Exp $"
|
||||
// "$Id: Fl_mac.cxx,v 1.1.2.57 2004/08/25 00:20:26 matthiaswm Exp $"
|
||||
//
|
||||
// MacOS specific code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -45,6 +45,7 @@ extern "C" {
|
||||
#include <pthread.h>
|
||||
}
|
||||
|
||||
#include <config.h>
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/x.H>
|
||||
#include <FL/Fl_Tooltip.H>
|
||||
@ -55,6 +56,10 @@ extern "C" {
|
||||
#include "flstring.h"
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
#endif
|
||||
|
||||
// #define DEBUG_SELECT // UNCOMMENT FOR SELECT()/THREAD DEBUGGING
|
||||
#ifdef DEBUG_SELECT
|
||||
#include <stdio.h> // testing
|
||||
@ -1922,6 +1927,6 @@ void Fl::paste(Fl_Widget &receiver, int clipboard) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_mac.cxx,v 1.1.2.56 2004/06/19 01:50:31 matthiaswm Exp $".
|
||||
// End of "$Id: Fl_mac.cxx,v 1.1.2.57 2004/08/25 00:20:26 matthiaswm Exp $".
|
||||
//
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_arci.cxx,v 1.4.2.5.2.5 2004/04/11 04:38:59 easysw Exp $"
|
||||
// "$Id: fl_arci.cxx,v 1.4.2.5.2.6 2004/08/25 00:20:26 matthiaswm Exp $"
|
||||
//
|
||||
// Arc (integer) drawing functions for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -38,6 +38,9 @@
|
||||
#ifdef WIN32
|
||||
#include <FL/math.h>
|
||||
#endif
|
||||
#ifdef __APPLE__
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
void fl_arc(int x,int y,int w,int h,double a1,double a2) {
|
||||
if (w <= 0 || h <= 0) return;
|
||||
@ -47,7 +50,12 @@ void fl_arc(int x,int y,int w,int h,double a1,double a2) {
|
||||
int xb = x+w/2+int(w*cos(a2/180.0*M_PI));
|
||||
int yb = y+h/2-int(h*sin(a2/180.0*M_PI));
|
||||
Arc(fl_gc, x, y, x+w, y+h, xa, ya, xb, yb);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
Rect r; r.left=x; r.right=x+w; r.top=y; r.bottom=y+h;
|
||||
a1 = a2-a1; a2 = 450-a2;
|
||||
FrameArc(&r, (short int)a2, (short int)a1);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
# warning quartz
|
||||
Rect r; r.left=x; r.right=x+w; r.top=y; r.bottom=y+h;
|
||||
a1 = a2-a1; a2 = 450-a2;
|
||||
FrameArc(&r, (short int)a2, (short int)a1);
|
||||
@ -66,7 +74,12 @@ void fl_pie(int x,int y,int w,int h,double a1,double a2) {
|
||||
int yb = y+h/2-int(h*sin(a2/180.0*M_PI));
|
||||
SelectObject(fl_gc, fl_brush());
|
||||
Pie(fl_gc, x, y, x+w, y+h, xa, ya, xb, yb);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
Rect r; r.left=x; r.right=x+w; r.top=y; r.bottom=y+h;
|
||||
a1 = a2-a1; a2 = 450-a2;
|
||||
PaintArc(&r, (short int)a2, (short int)a1);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
Rect r; r.left=x; r.right=x+w; r.top=y; r.bottom=y+h;
|
||||
a1 = a2-a1; a2 = 450-a2;
|
||||
PaintArc(&r, (short int)a2, (short int)a1);
|
||||
@ -76,5 +89,5 @@ void fl_pie(int x,int y,int w,int h,double a1,double a2) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_arci.cxx,v 1.4.2.5.2.5 2004/04/11 04:38:59 easysw Exp $".
|
||||
// End of "$Id: fl_arci.cxx,v 1.4.2.5.2.6 2004/08/25 00:20:26 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_color_mac.cxx,v 1.1.2.6 2004/04/11 04:38:59 easysw Exp $"
|
||||
// "$Id: fl_color_mac.cxx,v 1.1.2.7 2004/08/25 00:20:26 matthiaswm Exp $"
|
||||
//
|
||||
// MacOS color functions for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -35,6 +35,10 @@
|
||||
#include <FL/x.H>
|
||||
#include <FL/fl_draw.H>
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
#endif
|
||||
|
||||
static unsigned fl_cmap[256] = {
|
||||
#include "fl_cmap.h" // this is a file produced by "cmap.cxx":
|
||||
};
|
||||
@ -86,5 +90,5 @@ void Fl::set_color(Fl_Color i, unsigned c) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_color_mac.cxx,v 1.1.2.6 2004/04/11 04:38:59 easysw Exp $".
|
||||
// End of "$Id: fl_color_mac.cxx,v 1.1.2.7 2004/08/25 00:20:26 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_cursor.cxx,v 1.6.2.6.2.10 2004/04/11 04:38:59 easysw Exp $"
|
||||
// "$Id: fl_cursor.cxx,v 1.6.2.6.2.11 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// Mouse cursor support for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -109,6 +109,9 @@ void Fl_Window::cursor(Fl_Cursor c, Fl_Color, Fl_Color) {
|
||||
}
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning are cursor shaped handled in Quickdraw/Quartz or in Carbon?
|
||||
#endif
|
||||
|
||||
static Cursor crsrHAND =
|
||||
{
|
||||
@ -312,5 +315,5 @@ void Fl_Window::cursor(Fl_Cursor c, Fl_Color fg, Fl_Color bg) {
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: fl_cursor.cxx,v 1.6.2.6.2.10 2004/04/11 04:38:59 easysw Exp $".
|
||||
// End of "$Id: fl_cursor.cxx,v 1.6.2.6.2.11 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_dnd_mac.cxx,v 1.1.2.5 2004/04/11 04:38:59 easysw Exp $"
|
||||
// "$Id: fl_dnd_mac.cxx,v 1.1.2.6 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// Drag & Drop code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -31,6 +31,10 @@
|
||||
#include <FL/x.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
#endif
|
||||
|
||||
extern EventRef fl_os_event;
|
||||
extern char *fl_selection_buffer;
|
||||
extern int fl_selection_length;
|
||||
@ -81,5 +85,5 @@ int Fl::dnd()
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: fl_dnd_mac.cxx,v 1.1.2.5 2004/04/11 04:38:59 easysw Exp $".
|
||||
// End of "$Id: fl_dnd_mac.cxx,v 1.1.2.6 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_draw_image_mac.cxx,v 1.1.2.6 2004/04/11 04:38:59 easysw Exp $"
|
||||
// "$Id: fl_draw_image_mac.cxx,v 1.1.2.7 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// MacOS image drawing code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -30,6 +30,10 @@
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/x.H>
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
#endif
|
||||
|
||||
#define MAXBUFFER 0x40000 // 256k
|
||||
|
||||
/**
|
||||
@ -275,5 +279,5 @@ void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_draw_image_mac.cxx,v 1.1.2.6 2004/04/11 04:38:59 easysw Exp $".
|
||||
// End of "$Id: fl_draw_image_mac.cxx,v 1.1.2.7 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_font_mac.cxx,v 1.1.2.15 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_font_mac.cxx,v 1.1.2.16 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// MacOS font selection routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -23,6 +23,12 @@
|
||||
// Please report all bugs and problems to "fltk-bugs@fltk.org".
|
||||
//
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
#endif
|
||||
|
||||
//: MeasureText, FontMetrics, WidthTabHandle, GetSysFont, SysFontSize
|
||||
//: TextSize, TextFont
|
||||
//: GetFNum (theName: Str255; VAR familyID: Integer);
|
||||
@ -195,5 +201,5 @@ void fl_draw(const char* str, int n, int x, int y) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: fl_font_mac.cxx,v 1.1.2.15 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_font_mac.cxx,v 1.1.2.16 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_line_style.cxx,v 1.3.2.3.2.14 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_line_style.cxx,v 1.3.2.3.2.15 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// Line style code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -54,7 +54,7 @@ void fl_line_style(int style, int width, char* dashes) {
|
||||
HPEN oldpen = (HPEN)SelectObject(fl_gc, newpen);
|
||||
DeleteObject(oldpen);
|
||||
fl_current_xmap->pen = newpen;
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
// QuickDraw supports pen size and pattern, but no arbitrary line styles.
|
||||
static Pattern styles[] = {
|
||||
{ { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } }, // FL_SOLID
|
||||
@ -65,6 +65,21 @@ void fl_line_style(int style, int width, char* dashes) {
|
||||
if (!width) width = 1;
|
||||
PenSize(width, width);
|
||||
|
||||
style &= 0xff;
|
||||
if (style > 2) style = 2;
|
||||
PenPat(styles + style);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
// QuickDraw supports pen size and pattern, but no arbitrary line styles.
|
||||
static Pattern styles[] = {
|
||||
{ { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } }, // FL_SOLID
|
||||
{ { 0xf0, 0xf0, 0xf0, 0xf0, 0x0f, 0x0f, 0x0f, 0x0f } }, // FL_DASH
|
||||
{ { 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55 } } // FL_DOT
|
||||
};
|
||||
|
||||
if (!width) width = 1;
|
||||
PenSize(width, width);
|
||||
|
||||
style &= 0xff;
|
||||
if (style > 2) style = 2;
|
||||
PenPat(styles + style);
|
||||
@ -104,5 +119,5 @@ void fl_line_style(int style, int width, char* dashes) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: fl_line_style.cxx,v 1.3.2.3.2.14 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_line_style.cxx,v 1.3.2.3.2.15 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_overlay.cxx,v 1.4.2.3.2.4 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_overlay.cxx,v 1.4.2.3.2.5 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// Overlay support for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -30,6 +30,9 @@
|
||||
|
||||
#include <FL/x.H>
|
||||
#include <FL/fl_draw.H>
|
||||
#ifdef __APPLE__
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
static int px,py,pw,ph;
|
||||
|
||||
@ -38,7 +41,12 @@ static void draw_current_rect() {
|
||||
int old = SetROP2(fl_gc, R2_NOT);
|
||||
fl_rect(px, py, pw, ph);
|
||||
SetROP2(fl_gc, old);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
PenMode( patXor );
|
||||
fl_rect(px, py, pw, ph);
|
||||
PenMode( patCopy );
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
PenMode( patXor );
|
||||
fl_rect(px, py, pw, ph);
|
||||
PenMode( patCopy );
|
||||
@ -66,5 +74,5 @@ void fl_overlay_rect(int x, int y, int w, int h) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_overlay.cxx,v 1.4.2.3.2.4 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_overlay.cxx,v 1.4.2.3.2.5 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_read_image_mac.cxx,v 1.1.2.5 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_read_image_mac.cxx,v 1.1.2.6 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// WIN32 image reading routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -23,6 +23,12 @@
|
||||
// Please report all bugs and problems to "fltk-bugs@fltk.org".
|
||||
//
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
#endif
|
||||
|
||||
//
|
||||
// 'fl_read_image()' - Read an image from the current window.
|
||||
//
|
||||
@ -116,5 +122,5 @@ fl_read_image(uchar *p, // I - Pixel buffer or NULL to allocate
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: fl_read_image_mac.cxx,v 1.1.2.5 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_read_image_mac.cxx,v 1.1.2.6 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
173
src/fl_rect.cxx
173
src/fl_rect.cxx
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_rect.cxx,v 1.10.2.4.2.11 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_rect.cxx,v 1.10.2.4.2.12 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// Rectangle drawing routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -28,6 +28,7 @@
|
||||
// Also all fl_clip routines, since they are always linked in so
|
||||
// that minimal update works.
|
||||
|
||||
#include <config.h>
|
||||
#include <FL/Fl_Widget.H>
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/x.H>
|
||||
@ -40,7 +41,12 @@ void fl_rect(int x, int y, int w, int h) {
|
||||
LineTo(fl_gc, x+w-1, y+h-1);
|
||||
LineTo(fl_gc, x, y+h-1);
|
||||
LineTo(fl_gc, x, y);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
Rect rect;
|
||||
SetRect(&rect, x, y, x+w, y+h);
|
||||
FrameRect(&rect);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
Rect rect;
|
||||
SetRect(&rect, x, y, x+w, y+h);
|
||||
FrameRect(&rect);
|
||||
@ -56,7 +62,12 @@ void fl_rectf(int x, int y, int w, int h) {
|
||||
rect.left = x; rect.top = y;
|
||||
rect.right = x + w; rect.bottom = y + h;
|
||||
FillRect(fl_gc, &rect, fl_brush());
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
Rect rect;
|
||||
SetRect(&rect, x, y, x+w, y+h);
|
||||
PaintRect(&rect);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
Rect rect;
|
||||
SetRect(&rect, x, y, x+w, y+h);
|
||||
PaintRect(&rect);
|
||||
@ -68,7 +79,10 @@ void fl_rectf(int x, int y, int w, int h) {
|
||||
void fl_xyline(int x, int y, int x1) {
|
||||
#ifdef WIN32
|
||||
MoveToEx(fl_gc, x, y, 0L); LineTo(fl_gc, x1+1, y);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y); LineTo(x1, y);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y); LineTo(x1, y);
|
||||
#else
|
||||
XDrawLine(fl_display, fl_window, fl_gc, x, y, x1, y);
|
||||
@ -82,10 +96,15 @@ void fl_xyline(int x, int y, int x1, int y2) {
|
||||
MoveToEx(fl_gc, x, y, 0L);
|
||||
LineTo(fl_gc, x1, y);
|
||||
LineTo(fl_gc, x1, y2);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y);
|
||||
LineTo(x1, y2);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y);
|
||||
LineTo(x1, y2);
|
||||
#else
|
||||
XPoint p[3];
|
||||
p[0].x = x; p[0].y = p[1].y = y;
|
||||
@ -102,11 +121,17 @@ void fl_xyline(int x, int y, int x1, int y2, int x3) {
|
||||
LineTo(fl_gc, x1, y);
|
||||
LineTo(fl_gc, x1, y2);
|
||||
LineTo(fl_gc, x3, y2);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y);
|
||||
LineTo(x1, y2);
|
||||
LineTo(x3, y2);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y);
|
||||
LineTo(x1, y2);
|
||||
LineTo(x3, y2);
|
||||
#else
|
||||
XPoint p[4];
|
||||
p[0].x = x; p[0].y = p[1].y = y;
|
||||
@ -121,7 +146,10 @@ void fl_yxline(int x, int y, int y1) {
|
||||
if (y1 < y) y1--;
|
||||
else y1++;
|
||||
MoveToEx(fl_gc, x, y, 0L); LineTo(fl_gc, x, y1);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y); LineTo(x, y1);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y); LineTo(x, y1);
|
||||
#else
|
||||
XDrawLine(fl_display, fl_window, fl_gc, x, y, x, y1);
|
||||
@ -135,10 +163,15 @@ void fl_yxline(int x, int y, int y1, int x2) {
|
||||
MoveToEx(fl_gc, x, y, 0L);
|
||||
LineTo(fl_gc, x, y1);
|
||||
LineTo(fl_gc, x2, y1);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y);
|
||||
LineTo(x, y1);
|
||||
LineTo(x2, y1);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y);
|
||||
LineTo(x, y1);
|
||||
LineTo(x2, y1);
|
||||
#else
|
||||
XPoint p[3];
|
||||
p[0].x = p[1].x = x; p[0].y = y;
|
||||
@ -155,11 +188,17 @@ void fl_yxline(int x, int y, int y1, int x2, int y3) {
|
||||
LineTo(fl_gc, x, y1);
|
||||
LineTo(fl_gc, x2, y1);
|
||||
LineTo(fl_gc, x2, y3);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y);
|
||||
LineTo(x, y1);
|
||||
LineTo(x2, y1);
|
||||
LineTo(x2, y3);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y);
|
||||
LineTo(x, y1);
|
||||
LineTo(x2, y1);
|
||||
LineTo(x2, y3);
|
||||
#else
|
||||
XPoint p[4];
|
||||
p[0].x = p[1].x = x; p[0].y = y;
|
||||
@ -176,9 +215,13 @@ void fl_line(int x, int y, int x1, int y1) {
|
||||
// Draw the last point *again* because the GDI line drawing
|
||||
// functions will not draw the last point ("it's a feature!"...)
|
||||
SetPixel(fl_gc, x1, y1, fl_RGB());
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
#else
|
||||
XDrawLine(fl_display, fl_window, fl_gc, x, y, x1, y1);
|
||||
#endif
|
||||
@ -192,10 +235,15 @@ void fl_line(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
// Draw the last point *again* because the GDI line drawing
|
||||
// functions will not draw the last point ("it's a feature!"...)
|
||||
SetPixel(fl_gc, x2, y2, fl_RGB());
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
LineTo(x2, y2);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
LineTo(x2, y2);
|
||||
#else
|
||||
XPoint p[3];
|
||||
p[0].x = x; p[0].y = y;
|
||||
@ -211,11 +259,17 @@ void fl_loop(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
LineTo(fl_gc, x1, y1);
|
||||
LineTo(fl_gc, x2, y2);
|
||||
LineTo(fl_gc, x, y);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
LineTo(x2, y2);
|
||||
LineTo(x, y);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
LineTo(x2, y2);
|
||||
LineTo(x, y);
|
||||
#else
|
||||
XPoint p[4];
|
||||
p[0].x = x; p[0].y = y;
|
||||
@ -233,12 +287,19 @@ void fl_loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
LineTo(fl_gc, x2, y2);
|
||||
LineTo(fl_gc, x3, y3);
|
||||
LineTo(fl_gc, x, y);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
LineTo(x2, y2);
|
||||
LineTo(x3, y3);
|
||||
LineTo(x, y);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
LineTo(x2, y2);
|
||||
LineTo(x3, y3);
|
||||
LineTo(x, y);
|
||||
#else
|
||||
XPoint p[5];
|
||||
p[0].x = x; p[0].y = y;
|
||||
@ -258,7 +319,16 @@ void fl_polygon(int x, int y, int x1, int y1, int x2, int y2) {
|
||||
#ifdef WIN32
|
||||
SelectObject(fl_gc, fl_brush());
|
||||
Polygon(fl_gc, p, 3);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
PolyHandle poly = OpenPoly();
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
LineTo(x2, y2);
|
||||
ClosePoly();
|
||||
PaintPoly(poly);
|
||||
KillPoly(poly);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
PolyHandle poly = OpenPoly();
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
@ -282,7 +352,17 @@ void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
#ifdef WIN32
|
||||
SelectObject(fl_gc, fl_brush());
|
||||
Polygon(fl_gc, p, 4);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
PolyHandle poly = OpenPoly();
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
LineTo(x2, y2);
|
||||
LineTo(x3, y3);
|
||||
ClosePoly();
|
||||
PaintPoly(poly);
|
||||
KillPoly(poly);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
PolyHandle poly = OpenPoly();
|
||||
MoveTo(x, y);
|
||||
LineTo(x1, y1);
|
||||
@ -301,8 +381,11 @@ void fl_polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) {
|
||||
void fl_point(int x, int y) {
|
||||
#ifdef WIN32
|
||||
SetPixel(fl_gc, x, y, fl_RGB());
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
MoveTo(x, y); Line(0, 0);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
MoveTo(x, y); Line(0, 0);
|
||||
#else
|
||||
XDrawPoint(fl_display, fl_window, fl_gc, x, y);
|
||||
#endif
|
||||
@ -328,7 +411,10 @@ Fl_Region XRectangleRegion(int x, int y, int w, int h) {
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#ifdef __APPLE_QD__
|
||||
extern Fl_Region fl_window_region;
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
extern Fl_Region fl_window_region;
|
||||
#endif
|
||||
|
||||
@ -338,7 +424,7 @@ void fl_restore_clip() {
|
||||
Fl_Region r = rstack[rstackptr];
|
||||
#ifdef WIN32
|
||||
SelectClipRgn(fl_gc, r); //if r is NULL, clip is automatically cleared
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
# if 1
|
||||
if ( fl_window )
|
||||
{
|
||||
@ -359,6 +445,20 @@ void fl_restore_clip() {
|
||||
ClipRect(&rect);
|
||||
}
|
||||
# endif
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
if ( fl_window )
|
||||
{
|
||||
GrafPtr port = GetWindowPort( fl_window );
|
||||
if ( port ) {
|
||||
RgnHandle portClip = NewRgn();
|
||||
CopyRgn( fl_window_region, portClip ); // changed
|
||||
if ( r )
|
||||
SectRgn( portClip, r, portClip );
|
||||
SetPortClipRegion( port, portClip );
|
||||
DisposeRgn( portClip );
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (r) XSetRegion(fl_display, fl_gc, r);
|
||||
else XSetClipMask(fl_display, fl_gc, 0);
|
||||
@ -387,8 +487,11 @@ void fl_push_clip(int x, int y, int w, int h) {
|
||||
if (current) {
|
||||
#ifdef WIN32
|
||||
CombineRgn(r,r,current,RGN_AND);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
SectRgn(r, current, r);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
SectRgn(r, current, r);
|
||||
#else
|
||||
Fl_Region temp = XCreateRegion();
|
||||
XIntersectRegion(current, r, temp);
|
||||
@ -399,9 +502,13 @@ void fl_push_clip(int x, int y, int w, int h) {
|
||||
} else { // make empty clip region:
|
||||
#ifdef WIN32
|
||||
r = CreateRectRgn(0,0,0,0);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
r = NewRgn();
|
||||
SetEmptyRgn(r);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
r = NewRgn();
|
||||
SetEmptyRgn(r);
|
||||
#else
|
||||
r = XCreateRegion();
|
||||
#endif
|
||||
@ -435,7 +542,13 @@ int fl_not_clipped(int x, int y, int w, int h) {
|
||||
RECT rect;
|
||||
rect.left = x; rect.top = y; rect.right = x+w; rect.bottom = y+h;
|
||||
return RectInRegion(r,&rect);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if (!r) return 1;
|
||||
Rect rect;
|
||||
rect.left = x; rect.top = y; rect.right = x+w; rect.bottom = y+h;
|
||||
return RectInRgn(&rect, r);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
if (!r) return 1;
|
||||
Rect rect;
|
||||
rect.left = x; rect.top = y; rect.right = x+w; rect.bottom = y+h;
|
||||
@ -472,7 +585,21 @@ int fl_clip_box(int x, int y, int w, int h, int& X, int& Y, int& W, int& H){
|
||||
DeleteObject(temp);
|
||||
DeleteObject(rr);
|
||||
return ret;
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
RgnHandle rr = NewRgn();
|
||||
SetRectRgn( rr, x, y, x+w, y+h );
|
||||
SectRgn( r, rr, rr );
|
||||
Rect rp; GetRegionBounds(rr, &rp);
|
||||
X = rp.left;
|
||||
Y = rp.top;
|
||||
W = rp.right - X;
|
||||
H = rp.bottom - Y;
|
||||
DisposeRgn( rr );
|
||||
if ( H==0 ) return 2;
|
||||
if ( h==H && w==W ) return 0;
|
||||
return 0;
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
RgnHandle rr = NewRgn();
|
||||
SetRectRgn( rr, x, y, x+w, y+h );
|
||||
SectRgn( r, rr, rr );
|
||||
@ -508,5 +635,5 @@ int fl_clip_box(int x, int y, int w, int h, int& X, int& Y, int& W, int& H){
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_rect.cxx,v 1.10.2.4.2.11 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_rect.cxx,v 1.10.2.4.2.12 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_scroll_area.cxx,v 1.4.2.3.2.6 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_scroll_area.cxx,v 1.4.2.3.2.7 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// Scrolling routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -27,6 +27,7 @@
|
||||
// a "callback" which is called to draw rectangular areas that are moved
|
||||
// into the drawing area.
|
||||
|
||||
#include <config.h>
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/x.H>
|
||||
|
||||
@ -102,7 +103,15 @@ void fl_scroll(int X, int Y, int W, int H, int dx, int dy,
|
||||
if (temp > limit) {
|
||||
draw_area(data, dest_x, dest_y + src_h - temp + limit, src_w, temp - limit);
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
Rect src = { src_y, src_x, src_y+src_h, src_x+src_w };
|
||||
Rect dst = { dest_y, dest_x, dest_y+src_h, dest_x+src_w };
|
||||
static RGBColor bg = { 0xffff, 0xffff, 0xffff }; RGBBackColor( &bg );
|
||||
static RGBColor fg = { 0x0000, 0x0000, 0x0000 }; RGBForeColor( &fg );
|
||||
CopyBits( GetPortBitMapForCopyBits( GetWindowPort(fl_window) ),
|
||||
GetPortBitMapForCopyBits( GetWindowPort(fl_window) ), &src, &dst, srcCopy, 0L);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning
|
||||
Rect src = { src_y, src_x, src_y+src_h, src_x+src_w };
|
||||
Rect dst = { dest_y, dest_x, dest_y+src_h, dest_x+src_w };
|
||||
static RGBColor bg = { 0xffff, 0xffff, 0xffff }; RGBBackColor( &bg );
|
||||
@ -127,5 +136,5 @@ void fl_scroll(int X, int Y, int W, int H, int dx, int dy,
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_scroll_area.cxx,v 1.4.2.3.2.6 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_scroll_area.cxx,v 1.4.2.3.2.7 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_set_fonts_mac.cxx,v 1.1.2.10 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_set_fonts_mac.cxx,v 1.1.2.11 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// MacOS font utilities for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -23,6 +23,12 @@
|
||||
// Please report all bugs and problems to "fltk-bugs@fltk.org".
|
||||
//
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ifdef __APPLE_QUARTZ__
|
||||
#warning quartz
|
||||
#endif
|
||||
|
||||
// This function fills in the fltk font table with all the fonts that
|
||||
// are found on the X server. It tries to place the fonts into families
|
||||
// and to sort them so the first 4 in a family are normal, bold, italic,
|
||||
@ -162,5 +168,5 @@ int Fl::get_font_sizes(Fl_Font fnum, int*& sizep) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_set_fonts_mac.cxx,v 1.1.2.10 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_set_fonts_mac.cxx,v 1.1.2.11 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_vertex.cxx,v 1.5.2.3.2.8 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_vertex.cxx,v 1.5.2.3.2.9 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// Portable drawing routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -26,6 +26,7 @@
|
||||
// Portable drawing code for drawing arbitrary shapes with
|
||||
// simple 2D transformations. See also fl_arc.cxx
|
||||
|
||||
#include <config.h>
|
||||
#include <FL/fl_draw.H>
|
||||
#include <FL/x.H>
|
||||
#include <FL/math.h>
|
||||
@ -123,8 +124,11 @@ void fl_vertex(double x,double y) {
|
||||
void fl_end_points() {
|
||||
#ifdef WIN32
|
||||
for (int i=0; i<n; i++) SetPixel(fl_gc, p[i].x, p[i].y, fl_RGB());
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
for (int i=0; i<n; i++) { MoveTo(p[i].x, p[i].y); Line(0, 0); }
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
for (int i=0; i<n; i++) { MoveTo(p[i].x, p[i].y); Line(0, 0); }
|
||||
#else
|
||||
if (n>1) XDrawPoints(fl_display, fl_window, fl_gc, p, n, 0);
|
||||
#endif
|
||||
@ -137,7 +141,12 @@ void fl_end_line() {
|
||||
}
|
||||
#ifdef WIN32
|
||||
if (n>1) Polyline(fl_gc, p, n);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if (n<=1) return;
|
||||
MoveTo(p[0].x, p[0].y);
|
||||
for (int i=1; i<n; i++) LineTo(p[i].x, p[i].y);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning
|
||||
if (n<=1) return;
|
||||
MoveTo(p[0].x, p[0].y);
|
||||
for (int i=1; i<n; i++) LineTo(p[i].x, p[i].y);
|
||||
@ -167,7 +176,16 @@ void fl_end_polygon() {
|
||||
SelectObject(fl_gc, fl_brush());
|
||||
Polygon(fl_gc, p, n);
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if (n<=1) return;
|
||||
PolyHandle ph = OpenPoly();
|
||||
MoveTo(p[0].x, p[0].y);
|
||||
for (int i=1; i<n; i++) LineTo(p[i].x, p[i].y);
|
||||
ClosePoly();
|
||||
PaintPoly(ph);
|
||||
KillPoly(ph);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
if (n<=1) return;
|
||||
PolyHandle ph = OpenPoly();
|
||||
MoveTo(p[0].x, p[0].y);
|
||||
@ -218,7 +236,16 @@ void fl_end_complex_polygon() {
|
||||
SelectObject(fl_gc, fl_brush());
|
||||
PolyPolygon(fl_gc, p, counts, numcount);
|
||||
}
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
if (n<=1) return;
|
||||
PolyHandle ph = OpenPoly();
|
||||
MoveTo(p[0].x, p[0].y);
|
||||
for (int i=1; i<n; i++) LineTo(p[i].x, p[i].y);
|
||||
ClosePoly();
|
||||
PaintPoly(ph);
|
||||
KillPoly(ph);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
if (n<=1) return;
|
||||
PolyHandle ph = OpenPoly();
|
||||
MoveTo(p[0].x, p[0].y);
|
||||
@ -250,7 +277,11 @@ void fl_circle(double x, double y,double r) {
|
||||
Pie(fl_gc, llx, lly, llx+w, lly+h, 0,0, 0,0);
|
||||
} else
|
||||
Arc(fl_gc, llx, lly, llx+w, lly+h, 0,0, 0,0);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
Rect rt; rt.left=llx; rt.right=llx+w; rt.top=lly; rt.bottom=lly+h;
|
||||
(what == POLYGON ? PaintOval : FrameOval)(&rt);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning
|
||||
Rect rt; rt.left=llx; rt.right=llx+w; rt.top=lly; rt.bottom=lly+h;
|
||||
(what == POLYGON ? PaintOval : FrameOval)(&rt);
|
||||
#else
|
||||
@ -260,5 +291,5 @@ void fl_circle(double x, double y,double r) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_vertex.cxx,v 1.5.2.3.2.8 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_vertex.cxx,v 1.5.2.3.2.9 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: gl_draw.cxx,v 1.7.2.5.2.13 2004/05/15 22:58:19 easysw Exp $"
|
||||
// "$Id: gl_draw.cxx,v 1.7.2.5.2.14 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// OpenGL drawing support routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -56,7 +56,13 @@ void gl_font(int fontid, int size) {
|
||||
fl_fontsize->listbase = glGenLists(256);
|
||||
wglUseFontBitmaps(fl_gc, base, count, fl_fontsize->listbase+base);
|
||||
SelectObject(fl_gc, oldFid);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
// undefined characters automatically receive an empty GL list in aglUseFont
|
||||
fl_fontsize->listbase = glGenLists(256);
|
||||
aglUseFont(aglGetCurrentContext(), fl_fontsize->font, fl_fontsize->face,
|
||||
fl_fontsize->size, 0, 256, fl_fontsize->listbase);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
// undefined characters automatically receive an empty GL list in aglUseFont
|
||||
fl_fontsize->listbase = glGenLists(256);
|
||||
aglUseFont(aglGetCurrentContext(), fl_fontsize->font, fl_fontsize->face,
|
||||
@ -207,5 +213,5 @@ void gl_draw_image(const uchar* b, int x, int y, int w, int h, int d, int ld) {
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: gl_draw.cxx,v 1.7.2.5.2.13 2004/05/15 22:58:19 easysw Exp $".
|
||||
// End of "$Id: gl_draw.cxx,v 1.7.2.5.2.14 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: gl_start.cxx,v 1.6.2.5.2.9 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: gl_start.cxx,v 1.6.2.5.2.10 2004/08/25 00:20:27 matthiaswm Exp $"
|
||||
//
|
||||
// OpenGL context routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -65,9 +65,12 @@ void gl_start() {
|
||||
#ifdef WIN32
|
||||
if (!gl_choice) Fl::gl_visual(0);
|
||||
context = fl_create_gl_context(Fl_Window::current(), gl_choice);
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
// \todo Mac : We need to check the code and verify it with Apple Sample code. The 'shiny'-test should at least work with the software OpenGL emulator
|
||||
context = fl_create_gl_context(Fl_Window::current(), gl_choice);
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning quartz
|
||||
context = fl_create_gl_context(Fl_Window::current(), gl_choice);
|
||||
#else
|
||||
context = fl_create_gl_context(fl_visual);
|
||||
#endif
|
||||
@ -110,7 +113,10 @@ int Fl::gl_visual(int mode, int *alist) {
|
||||
if (!c) return 0;
|
||||
#ifdef WIN32
|
||||
gl_choice = c;
|
||||
#elif defined(__APPLE__)
|
||||
#elif defined(__APPLE_QD__)
|
||||
gl_choice = c;
|
||||
#elif defined(__APPLE_QUARTZ__)
|
||||
#warning
|
||||
gl_choice = c;
|
||||
#else
|
||||
fl_visual = c->vis;
|
||||
@ -122,5 +128,5 @@ int Fl::gl_visual(int mode, int *alist) {
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: gl_start.cxx,v 1.6.2.5.2.9 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: gl_start.cxx,v 1.6.2.5.2.10 2004/08/25 00:20:27 matthiaswm Exp $".
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user