Gtk_FileDrop の使用法
<?php
$accepted_types = array(
'text/html',
'text/plain',
'.dat'
);
Gtk_FileDrop::attach($widget, $accepted_types);
?>
ここで、有効なファイルタイプの配列を設定します。
ウィジェットが受け付けるファイルは、MIME タイプが
text/html か text/plain のもの、
そして名前が .dat で終わるものです。
この後、$widget がこのファイルを受け取るように設定します。
<?php
$accepted_types = array(
'inode/directory',
);
?>
ディレクトリを有効にしたい場合は、MIME タイプ
inode/directory を使用する必要があります。
ディレクトリのみを許可しているウィジェットにファイルをドロップすると、
そのファイルが存在するディレクトリがドロップされたものとみなされます。
<?php
function filesDropped($widget, $arFiles) {
foreach($arFiles as $strFile) {
echo "ファイル \"$strFile\" がドロップされました\r\n";
}
}
$accepted_types = array(
'text/html',
'text/plain',
'.dat'
);
Gtk_FileDrop::attach($widget, $accepted_types, 'filesDropped', false);
?>
この例では、コールバック関数を使用して、
ドロップされたファイルをコンソールに表示します。
さらに四番目のパラメータを false
に設定することで、ウィジェットの値が自動的に変更されることがないようにしています。
コールバックでオブジェクトを使用するには、
オブジェクトへの参照を配列で渡します。
<?php
Gtk_FileDrop::attach($widget, $accepted_types, array( &$this, 'filesDropped'));
?>
<?php
if (!extension_loaded('gtk')) {
dl('php_gtk.' . PHP_SHLIB_SUFFIX);
}
require_once('Gtk/FileDrop.php');
$window = &new GtkWindow();
$window->set_default_size(300, 30);
$window->connect_object('destroy', array('gtk', 'main_quit'));
$window->show();
$entry =& new GtkEntry();
$window->add($entry);
$entry->set_text('テキストファイルをドロップしてください');
Gtk_FileDrop::attach($entry, array('text/plain'));
$window->show_all();
gtk::main();
?>