(*--------------------------------------------------------------------------- Copyright (c) 2025 Anil Madhavapeddy. All rights reserved. SPDX-License-Identifier: ISC ---------------------------------------------------------------------------*) type t = { source_x : int option; source_y : int option; source_width : int option; source_height : int option; cell_x_offset : int option; cell_y_offset : int option; columns : int option; rows : int option; z_index : int option; placement_id : int option; cursor : Kgp_cursor.t option; unicode_placeholder : bool; } let empty = { source_x = None; source_y = None; source_width = None; source_height = None; cell_x_offset = None; cell_y_offset = None; columns = None; rows = None; z_index = None; placement_id = None; cursor = None; unicode_placeholder = false; } let make ?source_x ?source_y ?source_width ?source_height ?cell_x_offset ?cell_y_offset ?columns ?rows ?z_index ?placement_id ?cursor ?(unicode_placeholder = false) () = { source_x; source_y; source_width; source_height; cell_x_offset; cell_y_offset; columns; rows; z_index; placement_id; cursor; unicode_placeholder; } let source_x t = t.source_x let source_y t = t.source_y let source_width t = t.source_width let source_height t = t.source_height let cell_x_offset t = t.cell_x_offset let cell_y_offset t = t.cell_y_offset let columns t = t.columns let rows t = t.rows let z_index t = t.z_index let placement_id t = t.placement_id let cursor t = t.cursor let unicode_placeholder t = t.unicode_placeholder