Об использовании Continuity в качестве графического интерфейса для Perl - PullRequest
1 голос
/ 01 февраля 2011

Я играл с использованием Continuity в качестве "независимого от платформы многопользовательского GUI" для Perl.Однако я заинтересован в нескольких вещах, чтобы сделать его пригодным для использования / безопасным.

  1. Мне не известно о диалоге «поиск папок» с HTML, может ли это быть каким-то образом взломано вместе, или это мое знаниеустарел.
  2. Могу ли я запретить серверу, на котором Continuity запускается, глобально просматриваться (т.е. я могу сделать его доступным только из localhost).
  3. Могу ли я сделать скриптзапустить браузер (возможно, системный по умолчанию) и отправить его по правильному адресу и порту, когда сервер настроен на цикл?Я думаю, что это будет достигнуто с fork, за исключением того, что цикл не возвращается.

    Наконец, возможно, кто-то с большим влиянием должен добавить тег для continuity (и пометить это).

1 Ответ

4 голосов
/ 01 февраля 2011

Хотя это не относится к Continuity, я написал модуль XUL :: Gui , который визуализирует графический интерфейс в Firefox из Perl. (он также имеет кросс-браузерный режим Web :: Gui с меньшим количеством функций) Возможно, он соответствует вашим потребностям. В частности, он предлагает диалоговое окно выбора файлов (только XUL :: Gui), доступно только с локального хоста и автоматически запускает окно браузера и управляет им.

Если вы проданы на Continuity в качестве основы, вы можете позаимствовать логику, которую XUL :: Gui использует для достижения вышеуказанных функций. (ищите sub filepicker и sub start в источнике)

Наконец, вот пример простого графического интерфейса для приложения командной строки:

use XUL::Gui;

display Window
    title     => 'Foo Processor',
    minheight => 300,
    Hbox( MIDDLE,
        (map {
            my $id = $_;
            CheckBox
                id     => $id,
                label  => "use $id",
                option => sub {
                    shift->checked eq 'true' ? " -$id" : ()
                }
        } qw/foo bar baz/),
        Label(
            value => 'num: '
        ),
        TextBox(
            id     => 'num',
            type   => 'number',
            option => sub {' -num ' . shift->value}
        ),
        Button(
            label     => 'run',
            oncommand => sub {
                my @opts = map {ID($_)->option} qw/foo bar baz num/;

                ID(txt)->value = "fooproc @opts";
            }
        ),
    ),
    TextBox( FILL SCROLL id => 'txt', multiline => 'true' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...