# Const

### `NSWindowStyleMask` constants are used to determine the type of window that is created via then newWindow() proc, and should be self explanatory.

### StyleMasks are typically `or'd` together


```nim
NSWindowStyleMaskBorderless*             = 0
NSWindowStyleMaskTitled*                 = 1 shl 0
NSWindowStyleMaskClosable*               = 1 shl 1
NSWindowStyleMaskMiniaturizable*         = 1 shl 2
NSWindowStyleMaskResizable*              = 1 shl 3
NSWindowStyleMaskUtilityWindow*          = 1 shl 4
NSWindowStyleMaskDocModalWindow*         = 1 shl 6
NSWindowStyleMaskNonactivatingPanel*     = 1 shl 7
NSWindowStyleMaskUnifiedTitleAndToolbar* = 1 shl 12
NSWindowStyleMaskHUDWindow*              = 1 shl 13
NSWindowStyleMaskFullScreen*             = 1 shl 14
NSWindowStyleMaskFullSizeContentView*    = 1 shl 15
```

____

# Flags for the GUI Anchor System

### These flags inform the GUI object how they should react when the window is resized.

### There is no need for a box/container paradigm because of this.  You can determine both how a widget resizes, and how it 'flows' on resize events. Below is a breakdown of what each flag does.



## # akNone                 No Anchor

## # akRight                 Anchor to Right of Window

## # akWidth                Anchor to Left and Right (width)

## # akLeft                    Anchor to Left

## # akBottom             Anchor to Bottom

## # akHeight              Anchor to Top and Bottom

## # akFull                    Anchor to Left/Right/Top/Bottom

## # akTop                    Anchor to Top

```nim
akNone*      = 0
akRight*     = 1
akWidth*     = 2
akLeft*      = 4
akBottom*    = 8
akHeight*    = 16
akFull*      = 18
akTop*       = 32
```

____

____

# Procs

## Cocoa_Init*

```nim
proc Cocoa_Init*() {.cdecl, importc: "Cocoa_Init".}
```

#### **REQUIRED**

#### Initializes the Cocoa Runtime.  Place before any GUI instantiation.

____

## Cocoa_Run*

```nim
proc Cocoa_Run*(a2: ID) {.cdecl, importc: "Cocoa_Run".}
```

#### **REQUIRED**

#### Launches the Cocoa Runtime. Place after GUI instantiation is complete, passing the mainwindow as a parameter.

____

## Cocoa_Quit*

```nim
proc Cocoa_Quit*(a2: ID) {.cdecl, importc: "Cocoa_Quit".}
```

### Exits the Cocoa Runtime when early exit is desired.

____

## Cocoa_About*

```nim
proc Cocoa_About*() {.cdecl, importc: "Cocoa_About".}
```

### Shows an About dialog

____

## anchor=*

```nim
proc `anchor=`*(widget: ID; value: cint) {.cdecl, importc: "Pin".}
```

### Used to set the anchor flags for an object

____

## text=*

```nim
proc `text=`*(widget: ID; txt: cstring) {.cdecl, importc: "SetText".}
```

### Sets the text/label of an object

____

## text*

```nim
proc text*(widget: ID): cstring {.cdecl, importc: "GetText".}
```

### Retrieves the text/label value of an object

____

## value*

```nim
proc value*(widget: ID): cint {.cdecl, importc: "GetValue".}
```

### Retrieves the numerical value of an object

____

## value=*

```nim
proc `value=`*(widget: ID; value: cint) {.cdecl, importc: "SetValue".}
```

### Sets the numerical value of an object

____

## add*

```nim
proc add*(widget: ID; txt: cstring) {.cdecl, importc: "AddItem".}
```

### Adds a string value to a Combobox/Listbox

____

## `action=`*

```nim
proc `action=`*(widget: ID; `func`: ACTION) {.cdecl, importc: "SetAction".}
```

### Sets the callback proc for an object that supports callbacks

____

## state=*

```nim
proc `state=`*(widget: ID; state: bool) {.cdecl, importc: "SetState".}
```

### Sets the state of RadioButton/Checkbox objects

____

## state*

```nim
proc state*(widget: ID): cint {.cdecl, importc: "State".}
```

### Retrieves the state of RadioButton/Checkbox objects

____

## clear*

```nim
proc clear*(widget: ID) {.cdecl, importc: "LB_Clear".}
```

### Clears a ListBox object

____

## `item=`

```nim
proc `item=`(widget: ID; pos: cint) {.cdecl, importc: "SetItem".}
```

### Not Used

____

## remove*

```nim
proc remove*(widget: ID; pos: cint) {.cdecl, importc: "RemoveItem".}
```

### Not Used

---____

## getColor*

```nim
proc getColor*(panel: ID): cstring {.cdecl, importc: "getColor".}
```

### Not Used

---____

## hexColor*

```nim
proc hexColor*(cPanel: ID): cstring {.cdecl, importc: "hexColor".}
```

### Not Used

---____

## Notify*

```nim
proc Notify*(title: cstring; subtitle: cstring; text: cstring) {.cdecl, importc: "Notify".}
```

### Sends Notification to the macOS Notification Center

____

## newSeparator*

```nim
proc newSeparator*(parent: ID; x: cint; y: cint; width: cint): ID {.cdecl, importc: "createLine".}
```

### Creates a line to separate objects on a window form

____