TUIX v0.5Beta
API bufferů
Modul buffers je bezpečný veřejný povrch pro lifecycle bufferů, hierarchii, z-index, layout override, grid placement a snapshoty.
| Metoda | Jak ji použít | Proč existuje |
|---|---|---|
| buffers.free_buffer(scene_name, uid) -> None | Uvolněte konkrétní UID objektu/bufferu při odstranění ze scény. | Uvolňuje nativní prostředky bufferu/objektu bez čištění celé scény. |
| buffers.set_buffer_parent(scene_name, uid, parent_uid) -> int | Připojte existující buffer pod parent buffer. | Buduje hierarchii pro vnořený layout, clipping a traversal-order kompozici. |
| buffers.get_buffer_parent(scene_name, uid) -> int | Čtěte parent UID při debugování hierarchie nebo odpojování dětí. | Umožňuje aplikaci bezpečně zkontrolovat aktuální hierarchický vztah. |
| buffers.get_buffer_z_index(scene_name, uid) -> int | Čtěte z-index root bufferu pro diagnostiku nebo ordering UI. | Vystavuje pořadí kreslení bez čtení raw paměti bufferu. |
| buffers.set_buffer_z_index(scene_name, uid, z_index) -> int | Nastavte root-level vrstvení pro překrývající se widgety. | Řídí painter order celé scény při zachování traversal dětí. |
| buffers.set_buffer_layout_slot_by_uid(uid, *, grow=0.0, shrink=1.0, basis=-1, min_w=0, min_h=0, max_w=-1, max_h=-1, align_self=-1, grid_row=0, grid_col=0, row_span=1, col_span=1) -> int | Nakonfigurujte, jak se dítě účastní Row, Column nebo Grid layoutu. | Dává parent layout builderům typované constrainty a placement data dětí. |
| buffers.get_buffer_layout_slot_by_uid(uid) -> dict | None | Zkontrolujte layout slot dítěte při debugování layout výstupu. | Ukazuje grow, shrink, min/max, align a grid pole bez raw přístupu. |
| buffers.set_buffer_layout_rect_by_uid(uid, offset_left, offset_top, width, height) -> int | Zapište explicitní obdélník v terminálových buňkách pro child buffer. | Umožňuje layout builderům nebo pokročilým aplikacím přepsat finální geometrii dítěte. |
| buffers.clear_buffer_layout_rect_by_uid(uid) -> int | Odstraňte explicitní override layout obdélníku. | Vrátí dítě do běžného proporcionálního nebo parent-driven layoutu. |
| buffers.set_buffer_grid_placement_by_uid(uid, row, col, row_span=1, col_span=1) -> int | Umístěte dítě do řádků a sloupců Gridu. | Poskytuje stručný helper pro nejběžnější grid slot pole. |
| buffers.get_buffer_snapshot(scene_name, uid) -> dict | None | Čtěte stav bufferu pro známou scénu a UID. | Poskytuje lock-safe inspekci geometrie, vlastnictví, hierarchie a layout dat. |
| buffers.get_buffer_snapshot_by_uid(uid) -> dict | None | Čtěte stav bufferu, když znáte UID a lookup scény má být automatický. | Zjednodušuje diagnostiku a wrappery, které globálně sledují UID. |
Klíče snapshotu
Snapshoty bufferů mohou obsahovat uid, pixels_owned, width, height, required_redraw, margin_left, margin_top, parent_uid, z_index, flat_index, children_count, children_capacity, layout_slot a layout_rect.
Příklad layoutu
row_uid = objects.create_object(builders.ROW, 'Main', 0.9, 0.2, 0.05, 0.05)
row = objects.get_object_by_uid(row_uid)
child_uid = objects.tuix_stack_add_object(row, 'Main', builders.TEXT, 1.0, 1.0)
buffers.set_buffer_layout_slot_by_uid(child_uid, grow=1.0, min_w=12)
snap = buffers.get_buffer_snapshot_by_uid(child_uid)