---
name: "cdk_objs"
section: "3"
platform: "linux"
package: "libcdk5-dev"
version: "5.0.20250116-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cdk_objs"
---

# cdk\_objs(3)

Cdk object-support functions

## NAME

cdk\_objs - *Cdk* object-support functions

## SYNOPSIS

**cc** \[ *flag* ... \] *file* ... **-lcdk** \[ *library* ... \]

```

```

- **void cleanCdkTitle (**

  **CDKOBJS \****obj***);**

- **void drawCdkTitle (**

  **WINDOW \****window***,** **CDKOBJS \****object***);**

- **char \* getCdkTitle (**

  **CDKOBJS \****obj***);**

- **void positionCDKObject (**

  **CDKOBJS \****object***,** **WINDOW \****win***);**

- **void setCDKObjectBackgroundColor (**

  **CDKOBJS \****object***,** **const 3char \****color***);**

- **void setCDKObjectPostProcess (**

  **CDKOBJS \****object***,** **PROCESSFN** *func***,** **void \****data***);**

- **void setCDKObjectPreProcess (**

  **CDKOBJS \****object***,** **PROCESSFN** *func***,** **void \****data***);**

- **void setCdkExitType(**

  **CDKOBJS \****obj***,** **EExitType \****type***,** **chtyp** *ch***);**

- **int setCdkTitle (**

  **CDKOBJS \****obj***,** **const char \****title***,** **int** *boxWidth***);**

- **bool validCDKObject (**

  **CDKOBJS \****obj***);**

## DESCRIPTION

Cdk is written in ANSI C, which has "no" object support. Most of the object support in Cdk is done using macros and a small number of types which hold object information:

- CDKFUNCS

  contains the function pointers for common methods of the widgets. It is separate from CDKOBJS because it is compiled into each widget's C code (see the DeclareCDKObjects() and DeclareSetXXchar() macros. The widget instances point to a single copy of CDKFUNCS for each widget.

- CDKOBJS

  Holds data common to all objects (widget instances). It appears first in each widget's struct to allow Cdk to use generic functions in binding.c, cdkscreen.c, position.c, etc.

## AVAILABLE FUNCTIONS

The functions declared in \<cdk\_objs.h\> are used in situations where the expressions are too complex for a macro.

- **cleanCdkTitle**

  Remove storage for the widget's title.

- **drawCdkTitle**

  Draw the widget's title.

- **getCdkTitle**

  Returns the widget's title as a string. Colors are encoded as described in [**cdk\_display**(3)](/cdk_display/3.md). The lines of text in a multi-line title are separated by “\<#10\>” markers (an encoded *newline*).

- **positionCDKObject**

  This allows the user to use the cursor keys to adjust the position of the widget.

- **setCDKObjectBackgroundColor**

  Set the background color of the widget.

- **setCDKObjectPostProcess**

  Set data for postprocessing.

- **setCDKObjectPreProcess**

  Set data for preprocessing.

- **setCdkExitType**

  Set the object's exit-type based on the input. The **.exitType** field should have been part of the CDKOBJS struct, but it is used too pervasively in Cdk4 applications to move.

- **setCdkTitle**

  Set the widget's title.

- **validCDKObject**

  Returns true if a "new" was done on the object but no "destroy".

## SEE ALSO

[**cdk\_binding**(3)](/cdk_binding/3.md), [**cdk\_display**(3)](/cdk_display/3.md), [**cdk\_process**(3)](/cdk_process/3.md).
