Exemple

Exemple – Comment utiliser Gtk_FileDrop

Utiliser Gtk_FileDrop

Configuration générale

<?php
$accepted_types 
= array(
    
'text/html',
    
'text/plain',
    
'.dat'
);
Gtk_FileDrop::attach($widget$accepted_types);
?>

Ici, nous définissons un tableau contenant les types de fichiers acceptés : La widget doit accepter les fichiers ayant pour type MIME text/html, text/plain ainsi que les fichiers finissant par .dat. Après cela, nous paramétrons le $widget pour accepter ces fichiers.

Accepter les répertoires

<?php
$accepted_types 
= array(
    
'inode/directory',
);
?>

Le type MIME inode/directory doit être utilisé si le widget doit accepter les dossiers.

Lorsqu'un fichier est déposé sur un widget qui n'accepte que les dossier, le dossier contenant le fichier sera utilisé.

Configuration avec callback

<?php
function filesDropped($widget$arFiles) {
    foreach(
$arFiles as $strFile) {
        echo 
"Le fichier \"$strFile\" a été déposé\r\n";
    }
}

$accepted_types = array(
    
'text/html',
    
'text/plain',
    
'.dat'
);
Gtk_FileDrop::attach($widget$accepted_types'filesDropped'false);
?>

Dans cet exemple, nous utilisons une fonction de callback pour afficher tous les fichiers déposés sur la console. Nous déterminons également le quatrième paramètre à FALSE ce qui signifie que la valeur du widget n'est pas modifiée automatiquement.

Pour utiliser le callback avec des objets, vous devez passer un tableau avec la référence à l'objet :

Utilisation d'un callback

<?php
Gtk_FileDrop
::attach($widget$accepted_types, array( &$this'filesDropped'));
?>

Exemple d'utilisation

<?php
if (!extension_loaded('gtk')) {    
    
dl('php_gtk.' PHP_SHLIB_SUFFIX);
}
require_once(
'Gtk/FileDrop.php');

$window = &new GtkWindow();
$window->set_default_size(30030);
$window->connect_object('destroy', array('gtk''main_quit'));
$window->show();

$entry =& new GtkEntry();
$window->add($entry);
$entry->set_text('glisser des fichiers sur moi');
Gtk_FileDrop::attach($entry, array('text/plain'));

$window->show_all();
gtk::main();
?>
Gestion des glisser / déposer sur des types différents de Widget (Previous) Gtk_ScrollingLabel (Next)
Last updated: Sun, 29 Aug 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.