<--- Cannot embed stylesheet: [Errno 2] No such file or directory: '../../../../aros.css' --->

Popasl.mui

MUIA_Popasl_Active

Function

Report whether the stored requester-process pointer is non-NULL.

Inputs

Get only, BOOL. Initially FALSE; true after successful process creation
until the deferred close hook clears the pointer.

Notes

No TRUE notification is explicitly emitted when starting. Close
processing emits Active FALSE using nfset, which disables Group
forwarding, not notifications. The getter can remain TRUE after the
worker has finished while close work is pending. It is not a process
join or proof that no instructions remain in the worker.

MUIA_Popasl_StartHook

Function

Customize per-open requester tags or reject an opening attempt.

Inputs

Initialize and set, borrowed pointer to struct Hook; default NULL. No
local getter despite the header annotation.

Notes

Called synchronously as CallHookPkt(hook, popaslObject, tagList). Return
nonzero to continue or zero to abort. The instance has 20 TagItems; the
first five are screen, private IDCMP, initial left/top/width, followed
by TAG_DONE. Keep edits and termination within this capacity. Providing
this hook replaces default file/font initialization. Referenced data
must survive asynchronous requester use; do not leave worker tags
pointing into callback-local storage.

MUIA_Popasl_StopHook

Function

Handle an accepted requester result.

Inputs

Initialize and set, borrowed pointer to struct Hook; default NULL. No
local getter despite the header annotation.

Notes

Called as CallHookPkt(hook, popaslObject, aslRequester) only for a
nonzero deferred Close result. Return value is ignored. Providing the
hook replaces default string and Acknowledge updates; cancellation does
not call it. The requester is borrowed and remains class-owned. The
stored hook at close-processing time is used, so retain its data until
then.

MUIA_Popasl_Type

Function

Choose the ASL requester type at construction.

Inputs

Initialize only in this implementation, ULONG; default ASL_FileRequest.
No local getter despite the header annotation.

Notes

Passed to AllocAslRequest together with constructor tags. Built-in
string conversion exists only for file and font requesters. Changing
Type after construction is not implemented. Use suitable
StartHook/StopHook processing for other accepted ASL types.

MUIC_Popasl

Superclass

Popstring.mui

Description

Run an ASL requester in a separate process and transfer accepted results
to the string. Type defaults ASL_FileRequest. AllocAslRequest receives
the constructor tag list; failure returns NULL. If Popstring
construction fails afterward, this path does not free the allocated
requester. On success the class owns the requester and installs internal
opening/closing hooks, forcing Toggle FALSE.
Open creates a process and waits synchronously for its startup-message
reply, with no timeout. The process then runs AslRequest and queues
Close(TRUE/FALSE) on the application. The close hook runs in a further
queued CallHook. Keep the application, object, string, requester and
referenced tag data alive through all these stages.

Methods

Without StartHook, file opening derives InitialFile and InitialDrawer
from String_Contents; font opening derives a .font name and size from a
name/size string. Invalid numeric font size is not checked. Accepted
file results combine drawer/file; accepted font results remove the first
.font substring and append size. The default close hook sets
String_Contents and then String_Acknowledge from the retrieved stored
contents. Allocation failure can leave the string unchanged without a
separate error. Other requester types have no built-in string
conversion.
Cleanup requests AbortAslRequest if active and then delegates; it does
not wait for the process or queued close. Dispose frees the requester
without joining the worker. An explicit inherited Close merely queues
bookkeeping/result processing; it does not abort or wait for ASL. Do not
use it to force-close a running requester.

Notes

Do not dispose while the worker or queued callbacks can still access
this object/requester. Active is based on a stored process pointer, not
a process-liveness query or join. That pointer is cleared only in the
deferred close hook. Queue failures are not checked and can leave state
stuck. The initial filename can point into the String's current buffer,
so keep it stable while the worker may read startup tags.
The open path leaks its temporary name/drawer buffer if message-port
allocation, startup allocation or process creation fails after buffer
creation. Startup reply handling frees the startup message without
explicitly dequeuing the reply. These limitations are documented, not
corrected here. Hook tags are borrowed, and asynchronous execution
provides no automatic ownership protection.