A static char[128] returned from _gc_id_new is overwritten on every
call, so multiple gadget instances would alias the same id once gadcon
compares or stores it. eina_stringshare_add gives each instance its
own stable id.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
When connected, picks the icon from the active network's signal tier
(network-wireless-signal-{none,weak,ok,good,excellent}) instead of
hardcoding the excellent tier. Tooltip shows SSID/security/signal when
connected, or the current state otherwise. Right-click opens the
settings dialog via e_iwd_config_dialog_show.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
e_gadcon_popup hosts a status label, a scrollable list of networks
(snapshotted from iwd_manager and sorted: connected → known → alpha),
and Rescan/Enable/Disable action buttons. Clicking a network calls
Network.Connect; iwd then asks our Agent for a passphrase, which is
routed to a modal elm_popup via iwd_manager_set_passphrase_handler.
The passphrase handler is installed at module init so iwd-initiated
auth works even when the popup is closed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Register an "iwd" gadcon client; each instance carries an elm_icon
that swaps freedesktop standard names based on Iwd_State.
Click toggles the (still stubbed) popup. Listener on iwd_manager
refreshes every active instance on state changes.
E 0.27 only ships the legacy gadcon API (no e_gadget header), so
this targets gadcon for compatibility.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Meson build, module entry points, and stub layout for the iwd backend
(D-Bus client, gadget, popup, config, UI widgets). Bodies are TODOs;
this compiles against EFL/E headers but performs no D-Bus work yet.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>