GoTLiuM InSPiRiT:
> Посмотрел FlightFiles, но вот исходных размеров окна при закрытии он не
> запоминает.
> При чем если даже ресайзить, или жать на крестик.
> А так прикольно сделано ;-)
> Сам мечтал написать нормальный файл менеджер для себя,
> но честно говоря меня Krusader устроил))
>
> 18 апреля 2010 г. 15:35 пользователь Shecspi <she...@gmail.com> написал:
>
> > Метод get_position() возвращает именно координаты начального положения
> > окна, как и get_resizable() для размеров. Именно с последним у меня
> > возникали проблемы при работе над FlightFiles, когда необходимо было
> > реаилизовать сохранение размеров окна. Как я с этим справился - не
> > помню, но Вы можете посмотреть в исходном коде, может аналогично можно
> > и с координатами окна.
> >
> > --
> > Вы получили это сообщение, поскольку подписаны на группу Русское сообщество
> > PHP-GTK.
> >
> > Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу
> > php-g...@googlegroups.com.
> > Чтобы отменить подписку на эту группу, отправьте сообщение по адресу
> > php-gtk-ru+...@googlegroups.com<php-gtk-ru%2Bunsu...@googlegroups.com>
19.04.10, ASLok<aslo...@gmail.com> написал(а):
--
------------------------
С уважением, Вавилов Егор aka Shecspi.
On 19 апр, 12:30, Shecspi <shec...@gmail.com> wrote:
> Сигнал 'destroy' вызывается именно при разрушении окна, а при его
> закрытии издается 'delete-event'. Попробуйте использовать этот сигнал.
>
> 19.04.10, ASLok<aslok...@gmail.com> написал(а):
> О дополнительных функциях можно узнать в группе по адресуhttp://groups.google.com/group/php-gtk-ru?hl=ru.
19.04.10, ASLok<aslo...@gmail.com> написал(а):
function on_quit_clicked()
{
log_message('debug',
'Вызвана ф-ия выхода');
quit();
}
function quit()
{
log_message('debug',
'Сохраняем конфиг');
save_config();
log_message('debug',
'Выход');
Gtk::main_quit();
}
$config = false;
load_config();
$window1->show_all();
Gtk::main();
function save_config()
{
global $config;
if (!is_array($config))
{
log_message('debug',
'Конфиг файл будет создан');
$config = array ('General' => array ('My_text' => ''));
}
before_save_config();
$out = '';
foreach ($config as $group_name => $group)
{
$out .= '[' . $group_name . ']' . N;
foreach ($group as $value_name => $value)
{
if ($value_name != 'My_text')
{
$out .= $value_name . ' = ' . $value . N;
}
}
}
if (md5($config['General']['My_text']) != md5($out))
{
$config['General']['My_text'] = $out;
file_put_contents(BASE . APP_NAME . '.ini', $out);
}
}
function before_save_config()
{
global $window1, $config;
$window1_pos = $window1->get_position();
$config['General']['Position_x'] = $window1_pos[0];
$config['General']['Position_y'] = $window1_pos[1];
}
function load_config()
{
global $config;
log_message('debug',
'Загружаем сохраненный конфиг');
$config_file_name = BASE . APP_NAME . '.ini';
if (!file_exists($config_file_name))
{
log_message('debug',
'Конфиг не найден');
save_config();
}
$config = parse_ini_file($config_file_name, true);
after_load_config();
$config['General']['My_text'] =
file_get_contents($config_file_name);
}
function after_load_config()
{
global $window1, $config;
$window1->move($config['General']['Position_x'],
$config['General']['Position_y']);
log_message('debug',
'Перемещаем окно к ' . $config['General']
['Position_x'] .
'x' . $config['General']['Position_y']);
}
function log_message($type, $message)
{
print ($type . ': ' . $message . N);
}
On 19 апр, 17:17, Shecspi <shec...@gmail.com> wrote:
> А как осуществляете выход из программы?
>
> 19.04.10, ASLok<aslok...@gmail.com> написал(а):
> О дополнительных функциях можно узнать в группе по адресуhttp://groups.google.com/group/php-gtk-ru?hl=ru.
19.04.10, ASLok<aslo...@gmail.com> написал(а):
function on_quit_clicked()
{
log_message('debug',
'Вызвана ф-ия выхода');
log_message('debug',
'Сохраняем конфиг');
save_config();
quit();
}
function quit()
{
log_message('debug',
'Выход');
Gtk::main_quit();
}
Повесил on_quit_clicked() на кнопку выход, quit() на destroy,
save_config на delete-event, выключил сохранение по событию configure-
event. Сохраняет по прежнему отлично, но "Аварийный останов" всё равно
пишет. Вот из консоли:
$ ./PHP-GTK/window1.php
PHP Warning: Module 'SQLite' already loaded in Unknown on line 0
debug: Загружаем сохраненный конфиг
debug: Перемещаем окно к 761x665
debug: Выход
Аварийный останов
On 19 апр, 18:25, Shecspi <shec...@gmail.com> wrote:
> А если попробовать на delete-event повесить сохранение настроек, а на
> destroy - выход?
>
> 19.04.10, ASLok<aslok...@gmail.com> написал(а):
> Вы получили это сообщение, поскольку...
>
> продолжение >>
19.04.10, ASLok<aslo...@gmail.com> написал(а):
$ ./PHP-GTK/window1.php
PHP Warning: Module 'SQLite' already loaded in Unknown on line 0
debug: Загружаем сохраненный конфиг
debug: Перемещаем окно к 761x665
debug: Выход
Аварийный останов
19 апреля 2010 г. 19:08 пользователь Shecspi <she...@gmail.com> написал: