---
name: "Tcl_MacSetEventProc"
section: "3tcl"
platform: "linux"
package: "tcl8.4-doc"
version: "8.4.19-5"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Tcl_MacSetEventProc"
---

# Tcl\_MacSetEventProc(3tcl)

procedures to handle Macintosh resources and other Macintosh specifics

```

```

## NAME

Tcl\_MacSetEventProc, Tcl\_MacConvertTextResource, Tcl\_MacEvalResource, Tcl\_MacFindResource, Tcl\_GetOSTypeFromObj, Tcl\_SetOSTypeObj, Tcl\_NewOSTypeObj - procedures to handle Macintosh resources and other Macintosh specifics

## SYNOPSIS

```
#include <tcl.h>

int
Tcl_MacEvalResource(interp, resourceName, resourceNumber, fileName)

char*
Tcl_MacConvertTextResource(resource)

Handle
Tcl_MacFindResource(interp, resourceType, resourceName, resourceNumber, resFileRef, releaseIt)

Tcl_Obj*
Tcl_NewOSTypeObj(newOSType)

void
Tcl_SetOSTypeObj(objPtr, newOSType)

int
Tcl_GetOSTypeFromObj(interp, objPtr, osTypePtr)

void
Tcl_MacSetEventProc(procPtr)
```

## ARGUMENTS

- Tcl\_Interp *\*interp* (in)

  Interpreter to use for error reporting, or NULL if no error reporting is desired.

- CONST char *\*resourceName* (in)

  Name of TEXT resource to source, NULL if number should be used.

- int *resourceNumber* (in)

  Resource id of source.

- CONST char *\*fileName* (in)

  Name of file to process. NULL if application resource.

- Handle *resource* (in)

  Handle to TEXT resource.

- long *resourceType* (in)

  Type of resource to load.

- CONST char *\*resFileRef* (in)

  Registered resource file reference, NULL if searching all open resource files.

- int *\*releaseIt* (out)

  Should we release this resource when done.

- int *newOSType* (in)

  Int used to initialize the new object or set the object's value.

- Tcl\_Obj *\*objPtr* (in)

  Object whose internal representation is to be set or retrieved.

- osTypePtr *out*

  Place to store the resulting integer.

- Tcl\_MacConvertEventPtr *procPtr* (in)

  Reference to the new function to handle all incoming Mac events.

  ```

  ```

## INTRODUCTION

The described routines are used to implement the Macintosh specific **resource** command and the Mac specific notifier.. They manipulate or use Macintosh resources and provide administration for open resource file references.

## DESCRIPTION

**Tcl\_MacEvalResource** extends the **source** command to Macintosh resources.  It sources Tcl code from a Text resource. Currently only sources the resource by name, file IDs may be supported at a later date.

**Tcl\_MacConvertTextResource** converts a TEXT resource into a Tcl suitable string. It mallocs the returned memory, converts \`\`\\r'' to \`\`\\n'', and appends a null. The caller has the responsibility for freeing the memory.

**Tcl\_MacFindResource** provides a higher level interface for loading resources. It is used by **resource read**.

**Tcl\_NewOSTypeObj** is used to create a new resource name type object. The object type is "ostype".

**Tcl\_SetOSTypeObj** modifies an object to be a resource type and to have the specified long value.

**Tcl\_GetOSTypeFromObj** attempts to return an int from the Tcl object "objPtr". If the object is not already an int, an attempt will be made to convert it to one.

**Tcl\_MacSetEventProc** sets the event handling procedure for the application. This function will be passed all incoming Mac events. This function usually controls the console or some other entity like Tk.

## RESOURCE TYPES

Resource types are 4-byte values used by the macintosh resource facility to tag parts of the resource fork in a file so that the OS knows how to handle them. As all 4 bytes are restricted to printable characters such a type can be interpreted as a 4 character string too.

## KEYWORDS

macintosh, mac, resource, notifier
