O libX11 é muito baixo para isso - você precisa de uma biblioteca de toolkit de nível superior (como GTK ou Qt) para implementar botões e ícones, eo toolkit traduz isso em chamadas libX11 para desenhar imagens e monitorar regiões para eventos de pressionamento de botão.