Mercurial
diff infinite_canvas/canvas.h @ 280:49e9e591c9bb
Add persistent dictation, prewarmed WebRTC speech input, Copilot SDK routing, animated conversation lifecycle controls, parking, and architecture coverage.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Tue, 18 Aug 2026 19:14:53 -0700 |
| parents | 8d560f50ed4c |
| children | c57149ad216e |
line wrap: on
line diff
--- a/infinite_canvas/canvas.h Mon Aug 17 22:22:36 2026 -0700 +++ b/infinite_canvas/canvas.h Tue Aug 18 19:14:53 2026 -0700 @@ -31,6 +31,7 @@ CANVAS_ENTITY_SCROLL_AREA, CANVAS_ENTITY_IMAGE, CANVAS_ENTITY_WEB_CONTENT, + CANVAS_ENTITY_CONVERSATION, CANVAS_ENTITY_LUCIDE_GALLERY, CANVAS_ENTITY_TYPE_COUNT, } Canvas_Entity_Type; @@ -41,6 +42,7 @@ Vector2 position; Vector2 size; Color color; + char label[128]; char text[CANVAS_ENTITY_TEXT_CAPACITY]; int32 value; int32 text_cursor; @@ -50,12 +52,16 @@ boolean active; boolean pinned; boolean removing; + boolean agent_working; + boolean text_muted; + boolean parked; boolean screen_space_initialized; float hover_amount; float animation_amount; float web_chrome_amount; Vector2 pinned_screen_position; Vector2 pinned_screen_size; + Vector2 parked_restore_position; } Canvas_Entity; typedef struct { @@ -133,6 +139,37 @@ void Canvas_Scene_Init(Canvas_Scene *p_scene, Dowa_Arena *p_arena); boolean Canvas_Scene_Add(Canvas_Scene *p_scene, Canvas_Entity_Type type, Vector2 position); +void Canvas_Text_Area_Set_Content( + Canvas_Entity *p_entity, + Font font, + const char *p_text, + boolean muted); +uint32 Canvas_Scene_Add_Conversation( + Canvas_Scene *p_scene, + const char *p_title, + const char *p_prompt, + const char *p_response, + Vector2 position); +boolean Canvas_Scene_Append_Conversation( + Canvas_Scene *p_scene, + uint32 entity_id, + const char *p_prompt, + const char *p_response); +void Canvas_Conversation_Scroll_To_End( + Canvas_Entity *p_entity, + Font font); +void Canvas_Conversation_Set_Collapsed( + Canvas_Entity *p_entity, + boolean collapsed); +size_t Canvas_Scene_Parked_Conversation_Count( + const Canvas_Scene *p_scene); +boolean Canvas_Scene_Set_Conversation_Parked( + Canvas_Scene *p_scene, + uint32 entity_id, + boolean parked); +boolean Canvas_Scene_Show_Parking_Lot( + Canvas_Scene *p_scene, + Canvas_Camera *p_camera); void Canvas_Scene_Clear(Canvas_Scene *p_scene); void Canvas_Scene_Fade_Out_All(Canvas_Scene *p_scene); void Canvas_Scene_Fade_Out_Selected(Canvas_Scene *p_scene);