> 2nd better API implementation is as follows?

Yes.

(You can use `rb_call_super()` instead of `gtk_container_add()`. `rb_scan_args()` should use `"12"` because `widget` argument is not optional.)