extern si_t register_window(si_t parent_window_descriptor, const char* title, si_t x, si_t y, si_t width, si_t height, si_t minimize_enable, si_t maximize_enable, si_t modal) { struct packet_body_register_window body; request_set_register_window(&body, parent_window_descriptor, title, strlen(title) + 1, x, y, width, height, minimize_enable, maximize_enable, modal); /** * 注册窗口较为复杂的请求包:标准请求包外加窗口标题字符串 **/ return send_body_with_extra_context_and_return_respond(REQUEST_TYPE_REGISTER_WINDOW, RESPOND_TYPE_REGISTER_WINDOW, (const_addr_t)&body, sizeof(body), (const_addr_t)title, strlen(title) + 1); }
/** * 发送注册窗口请求 **/ int fake_register_window(struct egui_uds* uds_ptr, si_t parent_fd, char* title) { struct packet_body_register_window body; si_t ret = 0; request_set_register_window(&body, parent_fd, title, strlen(title) + 1, 0, 0, 0, 0, 0, 0, 0); if(0 != comm_send_request_with_extra(uds_ptr, REQUEST_TYPE_REGISTER_WINDOW, &body, sizeof(body), title, strlen(title) + 1)) { EGUI_PRINT_ERROR("failed to send register window request"); return -1; } if(0 != comm_recv_respond(uds_ptr, RESPOND_TYPE_REGISTER_WINDOW, &ret, NULL)) { EGUI_PRINT_ERROR("failed to recv register window respond"); return -1; } EGUI_PRINT_INFO("send register window request, recv ret %d", (int)ret); return 0; }