summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXScale.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2007-04-13 14:51:17 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2007-04-13 14:51:17 (GMT)
commit57c91ad391ab148036a5c6e4f0fdee7381352a85 (patch)
treee9f3f498ec12ff4c5603356d84573c8242a537e0 /macosx/tkMacOSXScale.c
parent59b73712486121720aa582183db730964dc8c8a9 (diff)
downloadtk-57c91ad391ab148036a5c6e4f0fdee7381352a85.zip
tk-57c91ad391ab148036a5c6e4f0fdee7381352a85.tar.gz
tk-57c91ad391ab148036a5c6e4f0fdee7381352a85.tar.bz2
Reduce the #ifdef count a lot by adding debug-print macros
Diffstat (limited to 'macosx/tkMacOSXScale.c')
-rw-r--r--macosx/tkMacOSXScale.c308
1 files changed, 149 insertions, 159 deletions
diff --git a/macosx/tkMacOSXScale.c b/macosx/tkMacOSXScale.c
index 8c5e694..d90791d 100644
--- a/macosx/tkMacOSXScale.c
+++ b/macosx/tkMacOSXScale.c
@@ -1,16 +1,16 @@
-/*
+/*
* tkMacOSXScale.c --
*
- * This file implements the Macintosh specific portion of the
- * scale widget.
+ * This file implements the Macintosh specific portion of the scale
+ * widget.
*
* Copyright (c) 1996 by Sun Microsystems, Inc.
* Copyright (c) 1998-2000 by Scriptics Corporation.
*
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkMacOSXScale.c,v 1.8 2006/04/28 06:02:49 das Exp $
+ * RCS: @(#) $Id: tkMacOSXScale.c,v 1.9 2007/04/13 14:51:18 dkf Exp $
*/
#include "tkMacOSXInt.h"
@@ -19,6 +19,7 @@
/*
* Defines used in this file.
*/
+
#define slider 1110
#define inSlider 1
#define inInc 2
@@ -43,10 +44,10 @@ static ControlActionUPP scaleActionProc = NULL; /* Pointer to func. */
* Forward declarations for procedures defined later in this file:
*/
-static void MacScaleEventProc _ANSI_ARGS_((ClientData clientData,
- XEvent *eventPtr));
-static pascal void ScaleActionProc _ANSI_ARGS_((ControlRef theControl,
- ControlPartCode partCode));
+static void MacScaleEventProc(ClientData clientData,
+ XEvent *eventPtr);
+static pascal void ScaleActionProc(ControlRef theControl,
+ ControlPartCode partCode);
/*
*----------------------------------------------------------------------
@@ -65,20 +66,19 @@ static pascal void ScaleActionProc _ANSI_ARGS_((ControlRef theControl,
*/
TkScale *
-TkpCreateScale(tkwin)
- Tk_Window tkwin;
+TkpCreateScale(
+ Tk_Window tkwin)
{
- MacScale *macScalePtr;
-
- macScalePtr = (MacScale *) ckalloc(sizeof(MacScale));
+ MacScale *macScalePtr = (MacScale *) ckalloc(sizeof(MacScale));
+
macScalePtr->scaleHandle = NULL;
if (scaleActionProc == NULL) {
scaleActionProc = NewControlActionUPP(ScaleActionProc);
}
-
+
Tk_CreateEventHandler(tkwin, ButtonPressMask,
MacScaleEventProc, (ClientData) macScalePtr);
-
+
return (TkScale *) macScalePtr;
}
@@ -99,14 +99,15 @@ TkpCreateScale(tkwin)
*/
void
-TkpDestroyScale(scalePtr)
- TkScale *scalePtr;
+TkpDestroyScale(
+ TkScale *scalePtr)
{
MacScale *macScalePtr = (MacScale *) scalePtr;
-
+
/*
* Free Macintosh control.
*/
+
if (macScalePtr->scaleHandle != NULL) {
DisposeControl(macScalePtr->scaleHandle);
}
@@ -117,8 +118,8 @@ TkpDestroyScale(scalePtr)
*
* TkpDisplayScale --
*
- * This procedure is invoked as an idle handler to redisplay
- * the contents of a scale widget.
+ * This procedure is invoked as an idle handler to redisplay the contents
+ * of a scale widget.
*
* Results:
* None.
@@ -130,8 +131,8 @@ TkpDestroyScale(scalePtr)
*/
void
-TkpDisplayScale(clientData)
- ClientData clientData; /* Widget record for scale. */
+TkpDisplayScale(
+ ClientData clientData) /* Widget record for scale. */
{
TkScale *scalePtr = (TkScale *) clientData;
Tk_Window tkwin = scalePtr->tkwin;
@@ -141,19 +142,13 @@ TkpDisplayScale(clientData)
MacScale *macScalePtr = (MacScale *) clientData;
Rect r;
WindowRef windowRef;
- CGrafPtr destPort;
- CGrafPtr saveWorld;
+ CGrafPtr destPort, saveWorld;
GDHandle saveDevice;
MacDrawable *macDraw;
- SInt32 initialValue;
- SInt32 minValue;
- SInt32 maxValue;
- UInt16 numTicks;
-
-
-#ifdef TK_MAC_DEBUG
- fprintf(stderr,"TkpDisplayScale\n");
-#endif
+ SInt32 initialValue, minValue, maxValue;
+ UInt16 numTicks;
+
+ ERR_MSG("TkpDisplayScale");
scalePtr->flags &= ~REDRAW_PENDING;
if ((scalePtr->tkwin == NULL) || !Tk_IsMapped(scalePtr->tkwin)) {
goto done;
@@ -167,8 +162,7 @@ TkpDisplayScale(clientData)
if ((scalePtr->flags & INVOKE_COMMAND) && (scalePtr->command != NULL)) {
Tcl_Preserve((ClientData) interp);
sprintf(string, scalePtr->format, scalePtr->value);
- result = Tcl_VarEval(interp, scalePtr->command, " ", string,
- (char *) NULL);
+ result = Tcl_VarEval(interp, scalePtr->command, " ", string, NULL);
if (result != TCL_OK) {
Tcl_AddErrorInfo(interp, "\n (command executed by scale)");
Tcl_BackgroundError(interp);
@@ -183,15 +177,13 @@ TkpDisplayScale(clientData)
Tcl_Release((ClientData) scalePtr);
/*
- * Now handle the part of redisplay that is the same for
- * horizontal and vertical scales: border and traversal
- * highlight.
+ * Now handle the part of redisplay that is the same for horizontal and
+ * vertical scales: border and traversal highlight.
*/
if (scalePtr->highlightWidth != 0) {
- GC gc;
-
- gc = Tk_GCForColor(scalePtr->highlightColorPtr, Tk_WindowId(tkwin));
+ GC gc = Tk_GCForColor(scalePtr->highlightColorPtr,Tk_WindowId(tkwin));
+
Tk_DrawFocusHighlight(tkwin, gc, scalePtr->highlightWidth,
Tk_WindowId(tkwin));
}
@@ -204,6 +196,7 @@ TkpDisplayScale(clientData)
/*
* Set up port for drawing Macintosh control.
*/
+
macDraw = (MacDrawable *) Tk_WindowId(tkwin);
destPort = TkMacOSXGetDrawablePort(Tk_WindowId(tkwin));
windowRef = GetWindowFromPort(destPort);
@@ -218,79 +211,76 @@ TkpDisplayScale(clientData)
#define MAC_OSX_SCROLL_WIDTH 10
if (scalePtr->orient == ORIENT_HORIZONTAL) {
- int offset;
- offset = (Tk_Height(tkwin) - MAC_OSX_SCROLL_WIDTH)/2;
- if (offset < 0) {
- offset = 0;
- }
-
- r.left = macDraw->xOff + scalePtr->inset;
- r.top = macDraw->yOff + offset;
- r.right = macDraw->xOff+Tk_Width(tkwin) - scalePtr->inset;
- r.bottom = macDraw->yOff + offset + MAC_OSX_SCROLL_WIDTH/2;
+ int offset = (Tk_Height(tkwin) - MAC_OSX_SCROLL_WIDTH)/2;
+
+ if (offset < 0) {
+ offset = 0;
+ }
+
+ r.left = macDraw->xOff + scalePtr->inset;
+ r.top = macDraw->yOff + offset;
+ r.right = macDraw->xOff+Tk_Width(tkwin) - scalePtr->inset;
+ r.bottom = macDraw->yOff + offset + MAC_OSX_SCROLL_WIDTH/2;
} else {
- int offset;
-
- offset = (Tk_Width(tkwin) - MAC_OSX_SCROLL_WIDTH)/2;
- if (offset < 0) {
- offset = 0;
- }
-
- r.left = macDraw->xOff + offset;
- r.top = macDraw->yOff + scalePtr->inset;
- r.right = macDraw->xOff + offset + MAC_OSX_SCROLL_WIDTH/2;
- r.bottom = macDraw->yOff+Tk_Height(tkwin) - scalePtr->inset;
+ int offset = (Tk_Width(tkwin) - MAC_OSX_SCROLL_WIDTH)/2;
+
+ if (offset < 0) {
+ offset = 0;
+ }
+
+ r.left = macDraw->xOff + offset;
+ r.top = macDraw->yOff + scalePtr->inset;
+ r.right = macDraw->xOff + offset + MAC_OSX_SCROLL_WIDTH/2;
+ r.bottom = macDraw->yOff+Tk_Height(tkwin) - scalePtr->inset;
}
if (macScalePtr->scaleHandle == NULL) {
-
-#ifdef TK_MAC_DEBUG
- fprintf(stderr,"Initialising scale\n");
-#endif
-
- initialValue = scalePtr->value;
- if (scalePtr->orient == ORIENT_HORIZONTAL) {
- minValue = scalePtr->fromValue;
- maxValue = scalePtr->toValue;
- } else {
- minValue = scalePtr->fromValue;
- maxValue = scalePtr->toValue;
- }
-
- if (scalePtr->tickInterval == 0) {
- numTicks = 0;
- } else {
- numTicks = (maxValue - minValue)/scalePtr->tickInterval;
- }
-
- CreateSliderControl(windowRef, &r, initialValue, minValue, maxValue,
- kControlSliderPointsDownOrRight, numTicks,
- 1, scaleActionProc,
- &(macScalePtr->scaleHandle));
- SetControlReference(macScalePtr->scaleHandle, (UInt32) scalePtr);
+ ERR_MSG("Initialising scale");
+
+ initialValue = scalePtr->value;
+ if (scalePtr->orient == ORIENT_HORIZONTAL) {
+ minValue = scalePtr->fromValue;
+ maxValue = scalePtr->toValue;
+ } else {
+ minValue = scalePtr->fromValue;
+ maxValue = scalePtr->toValue;
+ }
+
+ if (scalePtr->tickInterval == 0) {
+ numTicks = 0;
+ } else {
+ numTicks = (maxValue - minValue)/scalePtr->tickInterval;
+ }
+
+ CreateSliderControl(windowRef, &r, initialValue, minValue, maxValue,
+ kControlSliderPointsDownOrRight, numTicks, 1, scaleActionProc,
+ &(macScalePtr->scaleHandle));
+ SetControlReference(macScalePtr->scaleHandle, (UInt32) scalePtr);
/*
* If we are foremost than make us active.
*/
+
if (windowRef == FrontWindow()) {
macScalePtr->flags |= ACTIVE;
}
} else {
- SetControlBounds(macScalePtr->scaleHandle, &r);
- SetControl32BitValue(macScalePtr->scaleHandle, scalePtr->value);
- SetControl32BitMinimum(macScalePtr->scaleHandle, scalePtr->fromValue);
- SetControl32BitMaximum(macScalePtr->scaleHandle, scalePtr->toValue);
+ SetControlBounds(macScalePtr->scaleHandle, &r);
+ SetControl32BitValue(macScalePtr->scaleHandle, scalePtr->value);
+ SetControl32BitMinimum(macScalePtr->scaleHandle, scalePtr->fromValue);
+ SetControl32BitMaximum(macScalePtr->scaleHandle, scalePtr->toValue);
}
/*
* Finally draw the control.
*/
+
SetControlVisibility(macScalePtr->scaleHandle,true,true);
HiliteControl(macScalePtr->scaleHandle,0);
Draw1Control(macScalePtr->scaleHandle);
SetGWorld(saveWorld, saveDevice);
-done:
+ done:
scalePtr->flags &= ~REDRAW_ALL;
}
@@ -299,13 +289,12 @@ done:
*
* TkpScaleElement --
*
- * Determine which part of a scale widget lies under a given
- * point.
+ * Determine which part of a scale widget lies under a given point.
*
* Results:
- * The return value is either TROUGH1, SLIDER, TROUGH2, or
- * OTHER, depending on which of the scale's active elements
- * (if any) is under the point at (x,y).
+ * The return value is either TROUGH1, SLIDER, TROUGH2, or OTHER,
+ * depending on which of the scale's active elements (if any) is under
+ * the point at (x,y).
*
* Side effects:
* None.
@@ -314,9 +303,9 @@ done:
*/
int
-TkpScaleElement(scalePtr, x, y)
- TkScale *scalePtr; /* Widget record for scale. */
- int x, y; /* Coordinates within scalePtr's window. */
+TkpScaleElement(
+ TkScale *scalePtr, /* Widget record for scale. */
+ int x, int y) /* Coordinates within scalePtr's window. */
{
MacScale *macScalePtr = (MacScale *) scalePtr;
ControlPartCode part;
@@ -324,10 +313,9 @@ TkpScaleElement(scalePtr, x, y)
Rect bounds;
CGrafPtr saveWorld;
GDHandle saveDevice;
- GWorldPtr destPort;
-#ifdef TK_MAC_DEBUG
- fprintf(stderr,"TkpScaleElement\n");
-#endif
+ GWorldPtr destPort;
+
+ ERR_MSG("TkpScaleElement");
destPort = TkMacOSXGetDrawablePort(Tk_WindowId(scalePtr->tkwin));
GetGWorld(&saveWorld, &saveDevice);
@@ -335,37 +323,35 @@ TkpScaleElement(scalePtr, x, y)
/*
* All of the calculations in this procedure mirror those in
- * DisplayScrollbar. Be sure to keep the two consistent.
+ * DisplayScrollbar. Be sure to keep the two consistent.
*/
- TkMacOSXWinBounds((TkWindow *) scalePtr->tkwin, &bounds);
+ TkMacOSXWinBounds((TkWindow *) scalePtr->tkwin, &bounds);
where.h = x + bounds.left;
where.v = y + bounds.top;
part = TestControl(macScalePtr->scaleHandle, where);
-
+
SetGWorld(saveWorld, saveDevice);
-#ifdef TK_MAC_DEBUG
- fprintf (stderr,"ScalePart %d, pos ( %d %d )\n", part, where.h, where.v );
-#endif
-
+ ERR_MSG("ScalePart %d, pos ( %d %d )", part, where.h, where.v);
+
switch (part) {
- case inSlider:
- return SLIDER;
- case inInc:
- if (scalePtr->orient == ORIENT_VERTICAL) {
- return TROUGH1;
- } else {
- return TROUGH2;
- }
- case inDecr:
- if (scalePtr->orient == ORIENT_VERTICAL) {
- return TROUGH2;
- } else {
- return TROUGH1;
- }
- default:
- return OTHER;
+ case inSlider:
+ return SLIDER;
+ case inInc:
+ if (scalePtr->orient == ORIENT_VERTICAL) {
+ return TROUGH1;
+ } else {
+ return TROUGH2;
+ }
+ case inDecr:
+ if (scalePtr->orient == ORIENT_VERTICAL) {
+ return TROUGH2;
+ } else {
+ return TROUGH1;
+ }
+ default:
+ return OTHER;
}
}
@@ -374,23 +360,23 @@ TkpScaleElement(scalePtr, x, y)
*
* MacScaleEventProc --
*
- * This procedure is invoked by the Tk dispatcher for
- * ButtonPress events on scales.
+ * This procedure is invoked by the Tk dispatcher for ButtonPress events
+ * on scales.
*
* Results:
* None.
*
* Side effects:
- * When the window gets deleted, internal structures get
- * cleaned up. When it gets exposed, it is redisplayed.
+ * When the window gets deleted, internal structures get cleaned up. When
+ * it gets exposed, it is redisplayed.
*
*--------------------------------------------------------------
*/
static void
-MacScaleEventProc(clientData, eventPtr)
- ClientData clientData; /* Information about window. */
- XEvent *eventPtr; /* Information about event. */
+MacScaleEventProc(
+ ClientData clientData, /* Information about window. */
+ XEvent *eventPtr) /* Information about event. */
{
MacScale *macScalePtr = (MacScale *) clientData;
Point where;
@@ -400,44 +386,43 @@ MacScaleEventProc(clientData, eventPtr)
GDHandle saveDevice;
GWorldPtr destPort;
-#ifdef TK_MAC_DEBUG
- fprintf(stderr,"MacScaleEventProc\n" );
-#endif
+ ERR_MSG("MacScaleEventProc");
+
/*
- * To call Macintosh control routines we must have the port
- * set to the window containing the control. We will then test
- * which part of the control was hit and act accordingly.
+ * To call Macintosh control routines we must have the port set to the
+ * window containing the control. We will then test which part of the
+ * control was hit and act accordingly.
*/
+
destPort = TkMacOSXGetDrawablePort(Tk_WindowId(macScalePtr->info.tkwin));
GetGWorld(&saveWorld, &saveDevice);
SetGWorld(destPort, NULL);
TkMacOSXSetUpClippingRgn(Tk_WindowId(macScalePtr->info.tkwin));
- TkMacOSXWinBounds((TkWindow *) macScalePtr->info.tkwin, &bounds);
+ TkMacOSXWinBounds((TkWindow *) macScalePtr->info.tkwin, &bounds);
where.h = eventPtr->xbutton.x + bounds.left;
where.v = eventPtr->xbutton.y + bounds.top;
-#ifdef TK_MAC_DEBUG
- fprintf(stderr,"calling TestControl\n");
-#endif
+ ERR_MSG("calling TestControl");
part = TestControl(macScalePtr->scaleHandle, where);
if (part == 0) {
return;
}
-
+
part = TrackControl(macScalePtr->scaleHandle, where, scaleActionProc);
-
+
/*
* Update the value for the widget.
*/
+
macScalePtr->info.value = GetControlValue(macScalePtr->scaleHandle);
/* TkScaleSetValue(&macScalePtr->info, macScalePtr->info.value, 1, 0); */
/*
- * The TrackControl call will "eat" the ButtonUp event. We now
- * generate a ButtonUp event so Tk will unset implicit grabs etc.
+ * The TrackControl call will "eat" the ButtonUp event. We now generate a
+ * ButtonUp event so Tk will unset implicit grabs etc.
*/
- TkGenerateButtonEventForXPointer(Tk_WindowId(macScalePtr->info.tkwin));
+ TkGenerateButtonEventForXPointer(Tk_WindowId(macScalePtr->info.tkwin));
SetGWorld(saveWorld, saveDevice);
}
@@ -446,9 +431,9 @@ MacScaleEventProc(clientData, eventPtr)
*
* ScaleActionProc --
*
- * Callback procedure used by the Macintosh toolbox call
- * TrackControl. This call will update the display while
- * the scrollbar is being manipulated by the user.
+ * Callback procedure used by the Macintosh toolbox call TrackControl.
+ * This call will update the display while the scrollbar is being
+ * manipulated by the user.
*
* Results:
* None.
@@ -467,13 +452,18 @@ ScaleActionProc(
int value;
TkScale *scalePtr = (TkScale *) GetControlReference(theControl);
-#ifdef TK_MAC_DEBUG
- fprintf(stderr,"ScaleActionProc\n");
-#endif
- value = GetControlValue(theControl);
+ ERR_MSG("ScaleActionProc");
+ value = GetControlValue(theControl);
TkScaleSetValue(scalePtr, value, 1, 1);
Tcl_Preserve((ClientData) scalePtr);
Tcl_DoOneEvent(TCL_IDLE_EVENTS);
Tcl_Release((ClientData) scalePtr);
}
-
+
+/*
+ * Local Variables:
+ * mode: c
+ * c-basic-offset: 4
+ * fill-column: 78
+ * End:
+ */