Criei uma classe para as mais comuns dialogs que uso nos projetos, para evitar de escrever tanto código ou repetir as mesmas coisas. Se eu quero dar um alerta ao usuario tudo que eu tenho que fazer é instanciar a classe e passar os parâmetros para o método mensagem.
Ex:
$msg = new Mensagem;
Nota - Nome da janela pai serve para não mostrar a janela chamada no taskbar (como se fosse um MDI) (set_set_transient_for)
$msg->aviso(nome da janela pai, mensagem, titulo);
<? ####################### #POr stêffano de Moura# ####################### class Mensagem { public $resposta; function erro($janela_pai, $message, $titulo) { $this->errod = new GtkMessageDialog($janela_pai, Gtk::DIALOG_MODAL, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, $message); $this->errod->set_transient_for($janela_pai); //$this->errod->set_default_icon_from_file("C:/php-gtk2/teste/ico/cube_molecule.ico");//icone $this->errod->set_title($titulo); $this->errod->set_markup("\r\n". "<span foreground='red'>" . $message . "</span>"); $this->errod->set_position(Gtk::WIN_POS_CENTER); $this->errod->set_skip_taskbar_hint(true); $this->errod->get_skip_taskbar_hint(); $this->errod->run(); $this->errod->destroy(); } function certo($janela_pai, $message, $titulo) { $this->certod = new GtkMessageDialog($janela_pai, Gtk::DIALOG_MODAL, Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK, $message); $this->certod->set_transient_for($janela_pai); //$this->certod->set_default_icon_from_file("C:/php-gtk2/teste/ico/cube_molecule.ico"); $this->certod->set_title($titulo); $this->certod->set_markup("\r\n". "<span foreground='black'>" . $message . "</span>"); $this->certod->set_position(Gtk::WIN_POS_CENTER); $this->certod->set_skip_taskbar_hint(true); $this->certod->get_skip_taskbar_hint(); $this->certod->run(); $this->certod->destroy(); } function aviso($janela_pai, $message, $titulo) { $this->avisod = new GtkMessageDialog($janela_pai, Gtk::DIALOG_MODAL, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, $message); $this->avisod->set_transient_for($janela_pai); //$this->avisod->set_default_icon_from_file("C:/php-gtk2/teste/ico/cube_molecule.ico"); $this->avisod->set_title($titulo); $this->avisod->set_markup("\r\n". "<span foreground='black'>" . $message . "</span>"); $this->avisod->set_position(Gtk::WIN_POS_CENTER); $this->avisod->set_skip_taskbar_hint(true); $this->avisod->get_skip_taskbar_hint(); $this->avisod->run(); $this->avisod->destroy(); } function pergunta($janela_pai, $message, $titulo) { $this->resposta = ''; $this->perguntad = new GtkMessageDialog($janela_pai, Gtk::DIALOG_MODAL, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO, $message); $this->perguntad->set_transient_for($janela_pai); //$this->perguntad->set_default_icon_from_file("C:/php-gtk2/teste/ico/cube_molecule.ico"); $this->perguntad->set_title($titulo); $this->perguntad->set_markup("\r\n". "<span foreground='black'>" . $message . "</span>"); $this->perguntad->set_position(Gtk::WIN_POS_CENTER); $this->perguntad->set_skip_taskbar_hint(true); $this->perguntad->get_skip_taskbar_hint(); $this->result = $this->perguntad->run(); $this->perguntad->destroy(); if($this->result == Gtk::RESPONSE_YES) { $this->resposta = "sim"; return $this->resposta; } else { $this->resposta = "nao"; return $this->resposta; } } } $msg = new Mensagem; $msg->pergunta(NULL, "Voce tem certeza que isso é um teste?", "Isso é um teste?"); $msg->aviso(NULL, "Voce tem certeza que isso é um teste?", "Isso é um teste?"); $msg->certo(NULL, "Voce tem certeza que isso é um teste?", "Isso é um teste?"); $msg->erro(NULL, "Voce tem certeza que isso é um teste?", "Isso é um teste?"); ?>