248 lines
5.1 KiB
Plaintext
248 lines
5.1 KiB
Plaintext
|
# PIKA - Photo and Image Kooker Application
|
||
|
# Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||
|
|
||
|
# This program is free software: you can redistribute it and/or modify
|
||
|
# it under the terms of the GNU General Public License as published by
|
||
|
# the Free Software Foundation; either version 3 of the License, or
|
||
|
# (at your option) any later version.
|
||
|
|
||
|
# This program is distributed in the hope that it will be useful,
|
||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
# GNU General Public License for more details.
|
||
|
|
||
|
# You should have received a copy of the GNU General Public License
|
||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||
|
|
||
|
# "Perlized" from C source by Manish Singh <yosh@gimp.org>
|
||
|
|
||
|
sub version {
|
||
|
$blurb = 'Returns the host PIKA version.';
|
||
|
|
||
|
$help = <<'HELP';
|
||
|
This procedure returns the version number of the currently running PIKA.
|
||
|
HELP
|
||
|
|
||
|
&yosh_pdb_misc('1999');
|
||
|
|
||
|
@outargs = (
|
||
|
{ name => 'version', type => 'string',
|
||
|
desc => 'PIKA version number' }
|
||
|
);
|
||
|
|
||
|
%invoke = (
|
||
|
headers => [ qw("libpikabase/pikabase.h") ],
|
||
|
code => <<'CODE'
|
||
|
{
|
||
|
version = g_strdup (PIKA_VERSION);
|
||
|
}
|
||
|
CODE
|
||
|
);
|
||
|
}
|
||
|
|
||
|
sub getpid {
|
||
|
$blurb = 'Returns the PID of the host PIKA process.';
|
||
|
|
||
|
$help = <<'HELP';
|
||
|
This procedure returns the process ID of the currently running PIKA.
|
||
|
HELP
|
||
|
|
||
|
&mitch_pdb_misc('2005', '2.4');
|
||
|
|
||
|
@outargs = (
|
||
|
{ name => 'pid', type => 'int32',
|
||
|
desc => 'The PID' }
|
||
|
);
|
||
|
|
||
|
%invoke = (
|
||
|
headers => [ qw("core/pika-utils.h") ],
|
||
|
code => <<'CODE'
|
||
|
{
|
||
|
pid = pika_get_pid ();
|
||
|
}
|
||
|
CODE
|
||
|
);
|
||
|
}
|
||
|
|
||
|
sub quit {
|
||
|
$blurb = 'Causes PIKA to exit gracefully.';
|
||
|
|
||
|
$help = <<'HELP';
|
||
|
If there are unsaved images in an interactive PIKA session, the user
|
||
|
will be asked for confirmation. If force is TRUE, the application is
|
||
|
quit without querying the user to save any dirty images.
|
||
|
HELP
|
||
|
|
||
|
&std_pdb_misc;
|
||
|
|
||
|
@inargs = (
|
||
|
{ name => 'force', type => 'boolean',
|
||
|
desc => 'Force PIKA to quit without asking' }
|
||
|
);
|
||
|
|
||
|
%invoke = (
|
||
|
code => <<'CODE'
|
||
|
{
|
||
|
pika_exit (pika, force);
|
||
|
}
|
||
|
CODE
|
||
|
);
|
||
|
}
|
||
|
|
||
|
sub attach_parasite {
|
||
|
$blurb = 'Add a global parasite.';
|
||
|
|
||
|
$help = <<'HELP';
|
||
|
This procedure attaches a global parasite. It has no return values.
|
||
|
HELP
|
||
|
|
||
|
&jay_pdb_misc('1998', '2.8');
|
||
|
|
||
|
@inargs = (
|
||
|
{ name => 'parasite', type => 'parasite',
|
||
|
desc => 'The parasite to attach' }
|
||
|
);
|
||
|
|
||
|
%invoke = (
|
||
|
code => <<'CODE'
|
||
|
{
|
||
|
if (pika_parasite_validate (pika, parasite, error))
|
||
|
pika_parasite_attach (pika, parasite);
|
||
|
else
|
||
|
success = FALSE;
|
||
|
}
|
||
|
CODE
|
||
|
);
|
||
|
}
|
||
|
|
||
|
sub detach_parasite {
|
||
|
$blurb = 'Removes a global parasite.';
|
||
|
|
||
|
$help = <<'HELP';
|
||
|
This procedure detaches a global parasite from. It has no return values.
|
||
|
HELP
|
||
|
|
||
|
&jay_pdb_misc('1998', '2.8');
|
||
|
|
||
|
@inargs = (
|
||
|
{ name => 'name', type => 'string',
|
||
|
desc => 'The name of the parasite to detach.' }
|
||
|
);
|
||
|
|
||
|
%invoke = (
|
||
|
code => <<'CODE'
|
||
|
{
|
||
|
pika_parasite_detach (pika, name);
|
||
|
}
|
||
|
CODE
|
||
|
);
|
||
|
}
|
||
|
|
||
|
sub get_parasite {
|
||
|
$blurb = 'Look up a global parasite.';
|
||
|
|
||
|
$help = <<'HELP';
|
||
|
Finds and returns the global parasite that was previously attached.
|
||
|
HELP
|
||
|
|
||
|
&jay_pdb_misc('1998', '2.8');
|
||
|
|
||
|
@inargs = (
|
||
|
{ name => 'name', type => 'string',
|
||
|
desc => 'The name of the parasite to find' }
|
||
|
);
|
||
|
|
||
|
@outargs = (
|
||
|
{ name => 'parasite', type => 'parasite',
|
||
|
desc => 'The found parasite' }
|
||
|
);
|
||
|
|
||
|
%invoke = (
|
||
|
code => <<'CODE'
|
||
|
{
|
||
|
parasite = pika_parasite_copy (pika_parasite_find (pika, name));
|
||
|
|
||
|
if (! parasite)
|
||
|
success = FALSE;
|
||
|
}
|
||
|
CODE
|
||
|
);
|
||
|
}
|
||
|
|
||
|
sub get_parasite_list {
|
||
|
$blurb = 'List all parasites.';
|
||
|
$help = 'Returns a list of all currently attached global parasites.';
|
||
|
|
||
|
&marc_pdb_misc('1999', '2.8');
|
||
|
|
||
|
@outargs = (
|
||
|
{ name => 'parasites', type => 'strv',
|
||
|
desc => 'The names of currently attached parasites' }
|
||
|
);
|
||
|
|
||
|
%invoke = (
|
||
|
code => <<'CODE'
|
||
|
{
|
||
|
parasites = pika_parasite_list (pika);
|
||
|
}
|
||
|
CODE
|
||
|
);
|
||
|
}
|
||
|
|
||
|
sub temp_file {
|
||
|
$blurb = 'Generates a unique temporary file.';
|
||
|
|
||
|
$help = <<'HELP';
|
||
|
Generates a unique file using the temp path supplied in the user's pikarc.
|
||
|
HELP
|
||
|
|
||
|
&josh_pdb_misc('1997');
|
||
|
|
||
|
@inargs = (
|
||
|
{ name => 'extension', type => 'string',
|
||
|
allow_non_utf8 => 1, null_ok => 1,
|
||
|
desc => 'The extension the file will have' }
|
||
|
);
|
||
|
|
||
|
@outargs = (
|
||
|
{ name => 'file', type => 'file',
|
||
|
desc => 'The new temp file' }
|
||
|
);
|
||
|
|
||
|
%invoke = (
|
||
|
code => <<'CODE'
|
||
|
{
|
||
|
file = pika_get_temp_file (pika, extension);
|
||
|
}
|
||
|
CODE
|
||
|
);
|
||
|
}
|
||
|
|
||
|
|
||
|
@headers = qw("core/pika.h"
|
||
|
"core/pika-parasites.h");
|
||
|
|
||
|
@procs = qw(version
|
||
|
getpid
|
||
|
quit
|
||
|
attach_parasite
|
||
|
detach_parasite
|
||
|
get_parasite
|
||
|
get_parasite_list
|
||
|
temp_file);
|
||
|
|
||
|
%exports = (app => [@procs], lib => [@procs[0..1,3..7]]);
|
||
|
|
||
|
$desc = 'Pika';
|
||
|
$doc_title = 'pika';
|
||
|
$doc_short_desc = 'Main functions needed for building a PIKA plug-in.';
|
||
|
$doc_long_desc = <<'DESC';
|
||
|
Main functions needed for building a PIKA plug-in.
|
||
|
This header includes all other PIKA Library headers.
|
||
|
|
||
|
Also contains some miscellaneous procedures that don't fit in any
|
||
|
other category.
|
||
|
DESC
|
||
|
|
||
|
1;
|