Tk\_SetClassProcs(3) Tk Library Procedures Tk\_SetClassProcs(3)

```

```

# [NAME](#NAME)

Tk\_SetClassProcs - register widget specific procedures

# [SYNOPSIS](#SYNOPSIS)

```
#include <tk.h>

Tk_SetClassProcs(tkwin, procs, instanceData)
```

# [ARGUMENTS](#ARGUMENTS)

Tk\_Window *tkwin* (in)

Token for window to modify.

const Tk\_ClassProcs *\*procs* (in)

Pointer to data structure containing widget specific procedures. The data structure pointed to by *procs* must be static: Tk keeps a reference to it as long as the window exists.

void *\*instanceData* (in)

Arbitrary one-word value to pass to widget callbacks.

```
    
```

# [DESCRIPTION](#DESCRIPTION)

**Tk\_SetClassProcs** is called to register a set of procedures that are used as callbacks in different places.

The structure pointed to by *procs* contains the following:

```
typedef struct {


    Tcl_Size size;


    Tk_ClassWorldChangedProc *worldChangedProc;


    Tk_ClassCreateProc *createProc;


    Tk_ClassModalProc *modalProc;
} Tk_ClassProcs;
```

The *size* field is used to simplify future expansion of the structure. It should always be set to (literally) **sizeof(Tk\_ClassProcs)**.

*worldChangedProc* is invoked when the system has altered in some way that requires some reaction from the widget. For example, when a font alias (see the **font** manual entry) is reconfigured, widgets configured to use that font alias must update their display accordingly. *worldChangedProc* should have arguments and results that match the type **Tk\_ClassWorldChangedProc**:

```
typedef void Tk_ClassWorldChangedProc(


        void *instanceData);
```

The *instanceData* parameter passed to the *worldChangedProc* will be identical to the *instanceData* parameter passed to **Tk\_SetClassProcs**.

*createProc* is used to create platform-dependent windows. It is invoked by **Tk\_MakeWindowExist**. *createProc* should have arguments and results that match the type **Tk\_ClassCreateProc**:

```
typedef Window Tk_ClassCreateProc(


        Tk_Window tkwin,


        Window parent,


        void *instanceData);
```

The *tkwin* and *instanceData* parameters will be identical to the *tkwin* and *instanceData* parameters passed to **Tk\_SetClassProcs**. The *parent* parameter will be the parent of the window to be created. The *createProc* should return the created window.

*modalProc* is invoked after all bindings on a widget have been triggered in order to handle a modal loop. *modalProc* should have arguments and results that match the type **Tk\_ClassModalProc**:

```
typedef void Tk_ClassModalProc(


        Tk_Window tkwin,


        XEvent *eventPtr);
```

The *tkwin* parameter to *modalProc* will be identical to the *tkwin* parameter passed to **Tk\_SetClassProcs**. The *eventPtr* parameter will be a pointer to an XEvent structure describing the event being processed.

# [KEYWORDS](#KEYWORDS)

callback, class

8.4 Tk

---

Document: Tk_SetClassProcs(3) from tk 9.1.0-r0 (Chainguard OS)
Source: https://downloads.sourceforge.net/sourceforge/tcl/tk9.1.0-src.tar.gz
