PHP-GTK
Wednesday, July 23, 2014 
download | documentation | applications | faq | changelog | resources 


search for in the  


previousGtkFileFilter Constructor
GtkFileFilter::add_mime_typenext

Last updated: Sun, 12 May 2013
view this page in English

GtkFileFilter::add_custom

void add_custom(GtkFileFilterFlags flags, callback [, user_param]);

Sometimes is filtering by mime type or file name pattern not enough, and you need to define your own method that checks a file for validity. add_custom allows exactly this.

The callback function referred in the callback parameter needs by default one parameter; it's an array of four values containing either null or a string - depending on the settings in flags. The first element is the file name, second is the URI of the file. Third array element is the "display name" that is displayed in the file chooser, and the fourth element is the mime type of the file.

array(4) {
  [0]=>
  string(48) "/data/cvs/phpgtk2/test/window_set_icon_list.phpw"
  [1]=>
  string(55) "file:///data/cvs/phpgtk2/test/window_set_icon_list.phpw"
  [2]=>
  string(25) "window_set_icon_list.phpw"
  [3]=>
  string(17) "application/x-php"
}

You may pass any number of user defined parameters after the callback parameter; they get also passed to the callback function.

Your callback needs to return true if the file matches your filter and shall be displayed, false if not.

Example 65. Filtering files by characters

<?php
/**
*   Our file check function. It returns
*   true whenever a file matches our requirements.
*/
function fileCheck($info, $char) {
    $display_name = $info[2];
    return strpos($display_name, $char) !== false;
}
 
//Create a new file filter
$filterA = new GtkFileFilter();
//Set a name so we can recognize it in the file dialog
$filterA->set_name('My first custom filter "a"');
/**
*   Add our filter:
*   - first the information we need about the files
*   - second the callback function's name
*   - the third parameter is normally not needed;
*       here it's a user-defined parameter that lets us
*       customize the filter function a bit.
*/
$filterA->add_custom(
    Gtk::FILE_FILTER_DISPLAY_NAME | Gtk::FILE_FILTER_MIME_TYPE,
    'fileCheck',
    'a'
);
 
//Add a second one with different filter parameter
$filterB = new GtkFileFilter();
$filterB->set_name('My first custom filter "b"');
$filterB->add_custom(
    Gtk::FILE_FILTER_DISPLAY_NAME | Gtk::FILE_FILTER_MIME_TYPE,
    'fileCheck', 'b'
);
 
//Now add those filters to the file dialog
$filedlg = new GtkFileChooserDialog('custom filter demo');
$filedlg->add_filter($filterA);
$filedlg->add_filter($filterB);
 
$filedlg->run();
 
?>

User Contributed Notes
gtk.gtkfilefilter.method.add_custom.php
add a note about notes
There are no user contributed notes for this page.


previousGtkFileFilter Constructor
GtkFileFilter::add_mime_typenext

Last updated: Sun, 12 May 2013
view this page in English


credits 

PHP  Copyright © 2001-2014 The PHP Group
 All rights reserved.
Last updated: Sun May 12 20:50:57 2013 CEST