-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchecksum.php
37 lines (31 loc) · 1.61 KB
/
checksum.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
/**
* @copyright Copyright (C) 2009, Вавилов Егор (Shecspi)
* @license http://www.opensource.org/licenses/mit-license.php MIT License
* @link http://code.google.com/p/flight-files/ Домашняя страница проекта
*/
/**
* Создаёт диалоговое окно, в котором отображается контрольная сумма указанного файла.
* @param string $filename Адрес файла, для которого необходимо произвести операцию
* @param string $alg Алгоритм шифрования (поддерживается MD5, SHA1 и CRC32)
*/
function checksum_window($filename, $alg)
{
global $lang, $main_window;
$dialog = new GtkDialog(str_replace('%s', $alg, $lang['checksum']['title']), NULL, Gtk::DIALOG_MODAL);
$dialog->set_icon(GdkPixbuf::new_from_file(ICON_PROGRAM));
$dialog->set_skip_taskbar_hint(TRUE);
$dialog->set_position(Gtk::WIN_POS_CENTER);
$dialog->set_size_request(400, -1);
$dialog->set_transient_for($main_window);
$dialog->set_has_separator(FALSE);
$dialog->add_button($lang['checksum']['button_ok'], Gtk::RESPONSE_OK);
$vbox = $dialog->vbox;
$vbox->pack_start(new GtkLabel(str_replace('%s', basename($filename), $lang['checksum']['text'])));
$vbox->pack_start($hbox = new GtkHBox());
$hbox->pack_start(GtkImage::new_from_stock(Gtk::STOCK_DIALOG_INFO, Gtk::ICON_SIZE_DIALOG), FALSE, FALSE);
$hbox->pack_start(new GtkEntry(hash_file($alg, $filename), 40), TRUE, TRUE );
$dialog->show_all();
$dialog->run();
$dialog->destroy();
}