## GdkMonitor

GdkMonitor — Object representing an output

## Functions

GdkDisplay * | gdk_monitor_get_display ()
void | gdk_monitor_get_geometry ()
void | gdk_monitor_get_workarea ()
int | gdk_monitor_get_width_mm ()
int | gdk_monitor_get_height_mm ()
const char * | gdk_monitor_get_manufacturer ()
const char * | gdk_monitor_get_model ()
int | gdk_monitor_get_scale_factor ()
int | gdk_monitor_get_refresh_rate ()
GdkSubpixelLayout | gdk_monitor_get_subpixel_layout ()
gboolean | gdk_monitor_is_primary ()

## Properties

GdkDisplay * | display | Read / Write / Construct Only
GdkRectangle * | geometry | Read
int | height-mm | Read
char * | manufacturer | Read
char * | model | Read
int | refresh-rate | Read
int | scale-factor | Read
GdkSubpixelLayout | subpixel-layout | Read
int | width-mm | Read
GdkRectangle * | workarea | Read

## Signals

void | invalidate | Run First

## Types and Values

| GdkMonitor
enum | GdkSubpixelLayout

## Object Hierarchy

        GObject
        ╰── GdkMonitor

## Includes

    #include <gdk/gdkwayland.h>

## Description

GdkMonitor objects represent the individual outputs that are associated with a GdkDisplay. GdkDisplay has APIs to enumerate monitors with `gdk_display_get_n_monitors()` and `gdk_display_get_monitor()`, and to find particular monitors with `gdk_display_get_primary_monitor()` or `gdk_display_get_monitor_at_window()`.

GdkMonitor was introduced in GTK+ 3.22 and supersedes earlier APIs in GdkScreen to obtain monitor-related information.

## Functions

### gdk_monitor_get_display ()

    GdkDisplay *
    gdk_monitor_get_display (GdkMonitor *monitor);

Gets the display that this monitor belongs to.

#### Parameters

monitor | a GdkMonitor |

#### Returns

the display.

[transfer none]

Since: 3.22

### gdk_monitor_get_geometry ()

    void
    gdk_monitor_get_geometry (GdkMonitor *monitor,
                              GdkRectangle *geometry);

Retrieves the size and position of an individual monitor within the display coordinate space. The returned geometry is in ”application pixels”, not in ”device pixels” (see `gdk_monitor_get_scale_factor()`).

#### Parameters

monitor | a GdkMonitor |
geometry | a GdkRectangle to be filled with the monitor geometry. | [out]

Since: 3.22

### gdk_monitor_get_workarea ()

    void
    gdk_monitor_get_workarea (GdkMonitor *monitor,
                              GdkRectangle *workarea);

Retrieves the size and position of the “work area” on a monitor within the display coordinate space. The returned geometry is in ”application pixels”, not in ”device pixels” (see `gdk_monitor_get_scale_factor()`).

The work area should be considered when positioning menus and similar popups, to avoid placing them below panels, docks or other desktop components.

Note that not all backends may have a concept of workarea. This function will return the monitor geometry if a workarea is not available, or does not apply.

#### Parameters

monitor | a GdkMonitor |
workarea | a GdkRectangle to be filled with the monitor workarea. | [out]

Since: 3.22

### gdk_monitor_get_width_mm ()

    int
    gdk_monitor_get_width_mm (GdkMonitor *monitor);

Gets the width in millimeters of the monitor.

#### Parameters

monitor | a GdkMonitor |

#### Returns

the physical width of the monitor

Since: 3.22

### gdk_monitor_get_height_mm ()

    int
    gdk_monitor_get_height_mm (GdkMonitor *monitor);

Gets the height in millimeters of the monitor.

#### Parameters

monitor | a GdkMonitor |

#### Returns

the physical height of the monitor

Since: 3.22

### gdk_monitor_get_manufacturer ()

    const char *
    gdk_monitor_get_manufacturer (GdkMonitor *monitor);

Gets the name or PNP ID of the monitor's manufacturer, if available.

Note that this value might also vary depending on actual display backend.

PNP ID registry is located at https://uefi.org/pnp_id_list

#### Parameters

monitor | a GdkMonitor |

#### Returns

the name of the manufacturer, or `NULL`.

[transfer none][nullable]

### gdk_monitor_get_model ()

    const char *
    gdk_monitor_get_model (GdkMonitor *monitor);

Gets the a string identifying the monitor model, if available.

#### Parameters

monitor | a GdkMonitor |

#### Returns

the monitor model, or `NULL`.

[transfer none][nullable]

### gdk_monitor_get_scale_factor ()

    int
    gdk_monitor_get_scale_factor (GdkMonitor *monitor);

Gets the internal scale factor that maps from monitor coordinates to the actual device pixels. On traditional systems this is 1, but on very high density outputs this can be a higher value (often 2).

This can be used if you want to create pixel based data for a particular monitor, but most of the time you’re drawing to a window where it is better to use `gdk_window_get_scale_factor()` instead.

#### Parameters

monitor | a GdkMonitor |

#### Returns

the scale factor

Since: 3.22

### gdk_monitor_get_refresh_rate ()

    int
    gdk_monitor_get_refresh_rate (GdkMonitor *monitor);

Gets the refresh rate of the monitor, if available.

The value is in milli-Hertz, so a refresh rate of 60Hz is returned as 60000.

#### Parameters

monitor | a GdkMonitor |

#### Returns

the refresh rate in milli-Hertz, or 0

Since: 3.22

### gdk_monitor_get_subpixel_layout ()

    GdkSubpixelLayout
    gdk_monitor_get_subpixel_layout (GdkMonitor *monitor);

Gets information about the layout of red, green and blue primaries for each pixel in this monitor, if available.

#### Parameters

monitor | a GdkMonitor |

#### Returns

the subpixel layout

Since: 3.22

### gdk_monitor_is_primary ()

    gboolean
    gdk_monitor_is_primary (GdkMonitor *monitor);

Gets whether this monitor should be considered primary (see `gdk_display_get_primary_monitor()`).

#### Parameters

monitor | a GdkMonitor |

#### Returns

`TRUE` if `monitor` is primary

Since: 3.22

## Types and Values

### GdkMonitor

    typedef struct _GdkMonitor GdkMonitor;

### enum GdkSubpixelLayout

This enumeration describes how the red, green and blue components of physical pixels on an output device are laid out.

#### Members

GDK_SUBPIXEL_LAYOUT_UNKNOWN | The layout is not known |
GDK_SUBPIXEL_LAYOUT_NONE | Not organized in this way |
GDK_SUBPIXEL_LAYOUT_HORIZONTAL_RGB | The layout is horizontal, the order is RGB |
GDK_SUBPIXEL_LAYOUT_HORIZONTAL_BGR | The layout is horizontal, the order is BGR |
GDK_SUBPIXEL_LAYOUT_VERTICAL_RGB | The layout is vertical, the order is RGB |
GDK_SUBPIXEL_LAYOUT_VERTICAL_BGR | The layout is vertical, the order is BGR |

Since: 3.22

## Property Details

### The `“display”` property

      “display”                  GdkDisplay *

The display of the monitor.

Owner: GdkMonitor

Flags: Read / Write / Construct Only

### The `“geometry”` property

      “geometry”                 GdkRectangle *

The geometry of the monitor.

Owner: GdkMonitor

Flags: Read

### The `“height-mm”` property

      “height-mm”                int

The height of the monitor, in millimeters.

Owner: GdkMonitor

Flags: Read

Allowed values: >= 0

Default value: 0

### The `“manufacturer”` property

      “manufacturer”             char *

The manufacturer name.

Owner: GdkMonitor

Flags: Read

Default value: NULL

### The `“model”` property

      “model”                    char *

The model name.

Owner: GdkMonitor

Flags: Read

Default value: NULL

### The `“refresh-rate”` property

      “refresh-rate”             int

The refresh rate, in millihertz.

Owner: GdkMonitor

Flags: Read

Allowed values: >= 0

Default value: 0

### The `“scale-factor”` property

      “scale-factor”             int

The scale factor.

Owner: GdkMonitor

Flags: Read

Allowed values: >= 0

Default value: 1

### The `“subpixel-layout”` property

      “subpixel-layout”          GdkSubpixelLayout

The subpixel layout.

Owner: GdkMonitor

Flags: Read

Default value: GDK_SUBPIXEL_LAYOUT_UNKNOWN

### The `“width-mm”` property

      “width-mm”                 int

The width of the monitor, in millimeters.

Owner: GdkMonitor

Flags: Read

Allowed values: >= 0

Default value: 0

### The `“workarea”` property

      “workarea”                 GdkRectangle *

The workarea of the monitor.

Owner: GdkMonitor

Flags: Read

## Signal Details

### The `“invalidate”` signal

    void
    user_function (GdkMonitor *gdkmonitor,
                   gpointer    user_data)

Flags: Run First