Explicação
Um programador sempre necessita estilizar suas aplicações para facilitar a interação com o usuário. O método mais eficaz é a utilização de cores, elas facilitam bastante o usuário a deduzir certas coisas no sistema, como um cadastro bloqueado, o estado do sistema (busca? inserção? edição?). Para este efeito em algum widgets como o GtkLabel, necessitamos da ajuda do GtkEventBox. Com ele conseguimos mais eventos e mais ajustes ao GtkLabel.
Imagem
Solução
Criar um GtkEventBox() e adiciona-se um GtkLabel();
Mudamos a cor do GtkEventBox().
Exemplo
widgets['evtTeste'] = new GtkEventBox();
// Cria o label
$this->widgets['lblTeste'] = new GtkLabel("Meu Label");
$this->widgets['evtTeste']->add($this->widgets['lblTeste']);
// Muda a cor do GtkEventBox
$this->widgets['evtTeste']->modify_bg(
Gtk::STATE_NORMAL,
GdkColor::parse("#FFD79B")
);
// Cria um fixed
$fix = new GtkFixed();
$fix->put($this->widgets['evtTeste'], 8, 8);
// Cria a janela
$this->widgets['frmTeste'] = new GtkWindow();
$this->widgets['frmTeste']->set_size_request(300, 200);
$this->widgets['frmTeste']->set_resizable(FALSE);
$this->widgets['frmTeste']->set_title("Teste");
$this->widgets['frmTeste']->add($fix);
$this->widgets['frmTeste']->set_position(GTK::WIN_POS_CENTER);
$this->widgets['frmTeste']->show_all();
// Conecta o destroy
$this->widgets['frmTeste']->connect_simple(
"destroy",
array("Gtk", "main_quit")
);
}
}
// Inicia a aplicação
$teste = new Teste();
gtk::main();
Referências
http://gtk.php.net/manual/en/gtk.gtkwidget.method.modify_bg.php