一般的な設定
<?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 を使用する必要があります。
Note: ディレクトリのみを許可しているウィジェットにファイルをドロップすると、 そのファイルが存在するディレクトリがドロップされたものとみなされます。
コールバックの設定
<?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();
?>
NPO法人とはという基本的内容から実際のNPO法人設立まで広くお手伝いいたします。これからNPO法人をお考えの方はオススメ。NPO法人とはNon Profit Organizationの略であり、特定非営利活動法人を指します。法人なので当然に登記され、独立した人格として活動ができるようになります。