Пример #1
0
function alert($msg)
{
    // note 1
    $dialog = new GtkDialog('Alert', null, Gtk::DIALOG_MODAL);
    // create a new dialog
    $dialog->set_position(Gtk::WIN_POS_CENTER_ALWAYS);
    $top_area = $dialog->vbox;
    // note 2
    $top_area->pack_start($hbox = new GtkHBox());
    // note 3
    $stock = GtkImage::new_from_stock(Gtk::STOCK_DIALOG_WARNING, Gtk::ICON_SIZE_DIALOG);
    // note 4
    $hbox->pack_start($stock, 0, 0);
    // stuff in the icon
    $hbox->pack_start(new GtkLabel($msg));
    // and the msg
    $dialog->add_button(Gtk::STOCK_OK, Gtk::RESPONSE_OK);
    // note 5
    $dialog->set_has_separator(false);
    // don't display the set_has_separator
    $dialog->show_all();
    // show the dialog
    $dialog->run();
    // the dialog in action
    $dialog->destroy();
    // done. close the dialog box.
}
Пример #2
0
 /**
  * Class Constructor
  * @param  $message    A string containint the question
  * @param  $action_yes Action taken for YES response
  * @param  $action_no  Action taken for NO  response
  */
 public function __construct($message, TAction $action_yes, TAction $action_no = NULL)
 {
     $buttons = array(Gtk::STOCK_YES, Gtk::RESPONSE_YES);
     if ($action_no instanceof TAction) {
         $buttons[] = Gtk::STOCK_NO;
         $buttons[] = Gtk::RESPONSE_NO;
     }
     $buttons[] = Gtk::STOCK_CANCEL;
     $buttons[] = Gtk::RESPONSE_CANCEL;
     parent::__construct('', NULL, Gtk::DIALOG_MODAL, $buttons);
     parent::set_position(Gtk::WIN_POS_CENTER);
     parent::set_size_request(500, 300);
     $textview = new GtkTextView();
     $textview->set_wrap_mode(Gtk::WRAP_WORD);
     $textview->set_border_width(12);
     $textbuffer = $textview->get_buffer();
     $tagtable = $textbuffer->get_tag_table();
     $customTag = new GtkTextTag();
     $tagtable->add($customTag);
     $customTag->set_property('foreground', '#525252');
     $tagBegin = $textbuffer->create_mark('tagBegin', $textbuffer->get_end_iter(), true);
     $textbuffer->insert_at_cursor("\n   " . $message);
     $tagEnd = $textbuffer->create_mark('tagEnd', $textbuffer->get_end_iter(), true);
     $start = $textbuffer->get_iter_at_mark($tagBegin);
     $end = $textbuffer->get_iter_at_mark($tagEnd);
     $textbuffer->apply_tag($customTag, $start, $end);
     $textview->set_editable(FALSE);
     $textview->set_cursor_visible(FALSE);
     $pango = new PangoFontDescription('Sans 14');
     $textview->modify_font($pango);
     $image = GtkImage::new_from_stock(Gtk::STOCK_DIALOG_QUESTION, Gtk::ICON_SIZE_DIALOG);
     $scroll = new GtkScrolledWindow();
     $scroll->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_ALWAYS);
     $scroll->add($textview);
     $hbox = new GtkHBox();
     $this->vbox->pack_start($hbox);
     $hbox->pack_start($image, FALSE, FALSE);
     $hbox->pack_start($scroll, TRUE, TRUE);
     $this->show_all();
     $result = parent::run();
     if ($result == Gtk::RESPONSE_YES) {
         parent::destroy();
         call_user_func_array($action_yes->getAction(), array($action_yes->getParameters()));
     } else {
         if ($result == Gtk::RESPONSE_NO) {
             parent::destroy();
             call_user_func_array($action_no->getAction(), array($action_no->getParameters()));
         } else {
             parent::destroy();
         }
     }
 }
Пример #3
0
 /**
  * Class Constructor
  * @param $type    Type of the message (info, error)
  * @param $message Message to be shown
  * @param $action  Action to be processed when closing the dialog
  */
 public function __construct($type, $message, TAction $action = NULL)
 {
     parent::__construct('', NULL, Gtk::DIALOG_MODAL, array(Gtk::STOCK_OK, Gtk::RESPONSE_OK));
     parent::set_position(Gtk::WIN_POS_CENTER);
     parent::set_size_request(500, 300);
     $textview = new GtkTextView();
     $textview->set_wrap_mode(Gtk::WRAP_WORD);
     $textview->set_border_width(12);
     $textbuffer = $textview->get_buffer();
     $tagtable = $textbuffer->get_tag_table();
     $customTag = new GtkTextTag();
     $tagtable->add($customTag);
     $customTag->set_property('foreground', '#525252');
     $message = "\n   " . str_replace('<br>', "\n   ", $message);
     $tagBegin = $textbuffer->create_mark('tagBegin', $textbuffer->get_end_iter(), true);
     $textbuffer->insert_at_cursor(strip_tags($message));
     $tagEnd = $textbuffer->create_mark('tagEnd', $textbuffer->get_end_iter(), true);
     $start = $textbuffer->get_iter_at_mark($tagBegin);
     $end = $textbuffer->get_iter_at_mark($tagEnd);
     $textbuffer->apply_tag($customTag, $start, $end);
     $textview->set_editable(FALSE);
     $textview->set_cursor_visible(FALSE);
     $pango = new PangoFontDescription('Sans 14');
     $textview->modify_font($pango);
     $image = $type == 'info' ? GtkImage::new_from_stock(Gtk::STOCK_DIALOG_INFO, Gtk::ICON_SIZE_DIALOG) : GtkImage::new_from_stock(Gtk::STOCK_DIALOG_ERROR, Gtk::ICON_SIZE_DIALOG);
     $scroll = new GtkScrolledWindow();
     $scroll->set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_ALWAYS);
     $scroll->add($textview);
     $hbox = new GtkHBox();
     $this->vbox->pack_start($hbox);
     $hbox->pack_start($image, FALSE, FALSE);
     $hbox->pack_start($scroll, TRUE, TRUE);
     $this->show_all();
     parent::connect('key_press_event', array($this, 'onClose'));
     $result = parent::run();
     if ($result == Gtk::RESPONSE_OK) {
         if ($action) {
             $parameters = $action->getParameters();
             call_user_func_array($action->getAction(), array($parameters));
         }
     }
     parent::destroy();
 }
Пример #4
0
 function GetDate()
 {
     $dialog = new GtkDialog('Get Date', null, Gtk::DIALOG_MODAL);
     $dialog->set_position(Gtk::WIN_POS_CENTER_ALWAYS);
     $top_area = $dialog->vbox;
     //setlocale(LC_ALL, 'english');
     $top_area->pack_start($hbox = new GtkHBox());
     // set up the calendar
     $this->calendar = new GtkCalendar();
     $top_area->pack_start($this->calendar, 0, 0);
     // add an OK button
     $dialog->add_button(Gtk::STOCK_OK, Gtk::RESPONSE_OK);
     $this->dialog = $dialog;
     $dialog->set_has_separator(false);
     $dialog->show_all();
     $dialog->run();
     $dialog->destroy();
 }
Пример #5
0
function alert($msg)
{
    $dialog = new GtkDialog('Alert', null, Gtk::DIALOG_MODAL);
    $dialog->set_position(Gtk::WIN_POS_CENTER_ALWAYS);
    $top_area = $dialog->vbox;
    $top_area->pack_start($hbox = new GtkHBox());
    $stock = GtkImage::new_from_stock(Gtk::STOCK_DIALOG_WARNING, Gtk::ICON_SIZE_DIALOG);
    $hbox->pack_start($stock, 0, 0);
    $hbox->pack_start(new GtkLabel($msg));
    $dialog->add_button(Gtk::STOCK_OK, Gtk::RESPONSE_OK);
    $dialog->set_has_separator(false);
    $dialog->show_all();
    $dialog->run();
    $dialog->destroy();
}