예제 #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
function setup_yes_no_dialog()
{
    $dialog = new GtkDialog();
    // note 1
    $dialog->set_title('Yes/No Dialog');
    $label = new GtkLabel("Do you like PHP-Gtk2?");
    $dialog->vbox->pack_start($label);
    // note 2
    $dialog->add_buttons(array(Gtk::STOCK_YES, Gtk::RESPONSE_YES, Gtk::STOCK_NO, Gtk::RESPONSE_NO));
    //
    $dialog->show_all();
    $response_id = $dialog->run();
    // note 4
    $dialog->destroy();
    // note 5
    global $response;
    switch ($response_id) {
        // note 6
        case Gtk::RESPONSE_YES:
            $response->set_text("{$response_id} (Yes)");
            // note 7
            break;
        case Gtk::RESPONSE_NO:
            $response->set_text("{$response_id} (No)");
            break;
    }
}
예제 #3
0
 function on_delete_confirm()
 {
     $dialog = new GtkDialog('CAUTION!', $this, 0, array(Gtk::STOCK_OK, Gtk::RESPONSE_OK, Gtk::STOCK_CANCEL, Gtk::RESPONSE_CANCEL));
     $hbox = new GtkHBox(false, 8);
     $hbox->set_border_width(8);
     $stock = GtkImage::new_from_stock(Gtk::STOCK_DIALOG_QUESTION, Gtk::ICON_SIZE_DIALOG);
     $confirm_text1 = new GtkLabel('Are you sure you want to proceed ?');
     $confirm_text2 = new GtkLabel('Note: This process is irreversible.');
     $confirm_text3 = new GtkLabel($this->selected_file);
     $confirm_text3->modify_fg(Gtk::STATE_NORMAL, GdkColor::parse("#ff0000"));
     $vbox2 = new GtkVBox();
     $vbox2->pack_start($confirm_text1);
     $vbox2->pack_start($confirm_text2);
     $vbox2->pack_start($confirm_text3);
     $hbox->pack_start($stock, false, false, 0);
     $hbox->pack_start($vbox2, false, false, 0);
     $dialog->vbox->pack_start($hbox, false, false, 0);
     $dialog->show_all();
     $response = $dialog->run();
     if ($response == Gtk::RESPONSE_OK) {
         $resp = $this->delete_file();
         if ($resp) {
             $this->on_delete_successful();
             $this->selected_file = "";
             $this->file_label->set_text($this->file_label_default);
         } else {
             $this->selected_file = "";
             $this->file_label->set_text('Unable to delete the specified file.');
         }
     }
     $dialog->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 on_interactive_dialog_clicked($button)
 {
     $dialog = new GtkDialog('Interactive Dialog', $this, 0, array(Gtk::STOCK_OK, Gtk::RESPONSE_OK, '_Non-stock button', Gtk::RESPONSE_CANCEL));
     $hbox = new GtkHBox(false, 8);
     $hbox->set_border_width(8);
     $dialog->vbox->pack_start($hbox, false, false, 0);
     $stock = GtkImage::new_from_stock(Gtk::STOCK_DIALOG_QUESTION, Gtk::ICON_SIZE_DIALOG);
     $hbox->pack_start($stock, false, false, 0);
     $table = new GtkTable(2, 2);
     $table->set_row_spacings(4);
     $table->set_col_spacings(4);
     $hbox->pack_start($table, true, true, 0);
     $label = new GtkLabel('Entry _1');
     $label->set_use_underline(true);
     $table->attach($label, 0, 1, 0, 1);
     $local_entry1 = new GtkEntry();
     $local_entry1->set_text($this->entry1->get_text());
     $table->attach($local_entry1, 1, 2, 0, 1);
     $label->set_mnemonic_widget($local_entry1);
     $label = new GtkLabel('Entry _2');
     $label->set_use_underline(true);
     $table->attach($label, 0, 1, 1, 2);
     $local_entry2 = new GtkEntry();
     $local_entry2->set_text($this->entry2->get_text());
     $table->attach($local_entry2, 1, 2, 1, 2);
     $label->set_mnemonic_widget($local_entry2);
     $dialog->show_all();
     $response = $dialog->run();
     if ($response == Gtk::RESPONSE_OK) {
         $this->entry1->set_text($local_entry1->get_text());
         $this->entry2->set_text($local_entry2->get_text());
     }
     $dialog->destroy();
 }
예제 #6
0
파일: login.php 프로젝트: amitjoy/php-gtk
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();
}
예제 #7
0
<?php

$dialog = new GtkDialog();
$dialog->connect_simple('destroy', array('Gtk', 'main_quit'));
$dialog->set_size_request(400, 150);
// display title
$title = new GtkLabel("Set Default Button - Part 1\n" . "using set_default_response");
$title->modify_font(new PangoFontDescription("Times New Roman Italic 10"));
$title->modify_fg(Gtk::STATE_NORMAL, GdkColor::parse("#0000ff"));
$title->set_size_request(-1, 40);
$title->set_justify(Gtk::JUSTIFY_CENTER);
$alignment = new GtkAlignment(0.5, 0, 0, 0);
$alignment->add($title);
$dialog->vbox->pack_start($alignment, 0, 0);
$dialog->vbox->pack_start(new GtkLabel(), 0, 0);
$dialog->add_buttons(array('button 1', 100, 'button 2', 101, 'button 3', 102));
$dialog->set_default_response(101);
// note 2
$dialog->set_has_separator(0);
$dialog->show_all();
$response = $dialog->run();
echo "response = {$response}\n";
예제 #8
0
 function enter_text()
 {
     $dialog = new GtkDialog('Enter text', $this, 0, array(Gtk::STOCK_OK, Gtk::RESPONSE_OK, Gtk::STOCK_CANCEL, Gtk::RESPONSE_CANCEL));
     $hbox = new GtkHBox(false);
     $dialog->vbox->pack_start($hbox, false, false, 0);
     $label = new GtkLabel('String :');
     $entry = new GtkEntry();
     $hbox->pack_start($label);
     $hbox->pack_start($entry);
     $dialog->show_all();
     $response = $dialog->run();
     if ($response == Gtk::RESPONSE_OK) {
         $this->hash_label->set_text($entry->get_text());
         $this->selected_file = $entry->get_text();
     }
     $dialog->destroy();
 }