Skip to content

sco_widgets_v1.remove_panel

Removes an owned panel. Absent ID returns NOT_FOUND; success ends pending callbacks for that generation and permits immediate ctx destruction, including inside its callback. Failure preserves the panel.

sco_result (*)(sco_plugin *, const char *)

Service index

Property Value
Symbol sco_widgets_v1.remove_panel
Record ID sco-widgets-v1-remove-panel
Service sco.widgets
Table sco_widgets_v1
Version macro SCO_WIDGETS_VERSION_1_1
Packed table version 65537
Since / availability size >= 24; 1.0
Complete member extent (x64 bytes) 24
Table size (x64 bytes) 48

Header source

sco_result (*remove_panel)(sco_plugin* self, const char* id);
Removes an owned panel. Absent ID returns NOT_FOUND; success ends pending callbacks for that generation and permits immediate ctx destruction, including inside its callback. Failure preserves the panel.

OK; WRONG_THREAD off game thread; UNAVAILABLE stopped service/host; BAD_ARG invalid/released owner or malformed ID; NOT_FOUND absent owned panel. Failure leaves registration unchanged.

query_service NOT_FOUND absent service; UNAVAILABLE incompatible version. No game capability or renderer requirement.

Host releases copied tree and borrowed callback registration, never frees plugin ctx; caller may free ctx after success.

Game thread only; WRONG_THREAD elsewhere. Callbacks game thread under owner callout guard.

Event, text and panel ID borrowed during callback only; callback ctx is plugin-owned.

Callbacks may invoke commands or replace/remove own panel; generation change drops remaining stale events, new tree renders next pass. Registry lock not held during plugin code.

Successful replacement/removal and ordinary owner release discard stale-generation events and end borrowed callbacks. Fault guard stops delivery; retained-provider faults skip ordinary resource release until restart. No separate cancel token.

Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.

Language Catalogue status Source evidence / wrapper tokens
c direct include/sco_widgets.h
(*remove_panel)
cpp typed-wrapper include/scosdk/widgets.hpp
return table_->remove_panel(self_, id);
csharp typed-wrapper sdk/csharp/Sco.Sdk/Widgets.cs
_t->set_panel(_plugin.SelfPtr
sdk/csharp/Sco.Sdk/Widgets.cs
_t->remove_panel(_plugin.SelfPtr
sdk/csharp/Sco.Sdk/WidgetsInterop.cs
public unsafe struct ScoWidgetsV1
lua typed-wrapper plugins/lua/sco_lua.c
t->set_panel(s->self
plugins/lua/sco_lua.c
t->remove_panel(s->self

ABI pins prove layout, not semantic behavior or a live game session.