/* * Copyright (c) 2005 Brian Tarricone * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2 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 Library General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "xfce4perl.h" MODULE = Xfce4 PACKAGE = Xfce4 PREFIX = xfce_ BOOT: { #include "register.xsh" #include "boot.xsh" gperl_handle_logs_for("Xfce"); } ##################### libxfce4util/xfce-miscutils.h ##################### =for object Xfce4::licenses Builtin License Information =cut =head1 DESCRIPTION The Xfce library contains copies of the three licenses used by Xfce: BSD, LGPL, and GPL. These are mostly useful with L. =cut =for apidoc Returns a string containing the entire text of the BSD license (without advertising clause). =cut const gchar * LICENSE_BSD() PREINIT: extern const char xfce_builtin_license_BSD[]; CODE: RETVAL = xfce_builtin_license_BSD; OUTPUT: RETVAL =for apidoc Returns a string containing the entire text of the GNU General Public License. =cut const gchar * LICENSE_GPL() PREINIT: extern const char xfce_builtin_license_GPL[]; CODE: RETVAL = xfce_builtin_license_GPL; OUTPUT: RETVAL =for apidoc Returns a string containing the entire text of the GNU Lesser General Public License. =cut const gchar * LICENSE_LGPL() PREINIT: extern const char xfce_builtin_license_LGPL[]; CODE: RETVAL = xfce_builtin_license_LGPL; OUTPUT: RETVAL =for object Xfce4::misc Miscellaneous Functions =cut =head1 SYNOPSIS Miscellaneous utility functions useful for Xfce application programmers. =cut =for apidoc =for signature string = Xfce4->get_homedir Returns a value for the user's homedir. Tries harder than g_get_homedir(). =cut const gchar * xfce_get_homedir(class) C_ARGS: /* void */ ## rest of stuff in libxfce4util/xfce-miscutils.h aren't too useful in a ## perl environment. ##################### libxfcegui4/xfce-exec.h ##################### ## gboolean xfce_exec(const char *exec, ## gboolean in_terminal, ## gboolean use_sn, ## GError **error) =for apidoc =for signature boolean = Xfce4->exec ($cmd, $in_terminal, $use_sn) Runs 'cmd' and forks the process off into the background. If 'in_termnial' is true, will spawn a terminal first. If 'use_sn' is true, will activate startup notification. =cut gboolean xfce_exec(class, cmd, in_terminal, use_sn) const char *cmd gboolean in_terminal gboolean use_sn PREINIT: GError *error = NULL; CODE: RETVAL = xfce_exec(cmd, in_terminal, use_sn, &error); if(!RETVAL) gperl_croak_gerror(cmd, error); OUTPUT: RETVAL ## TODO: implement me, use hash value for envp instead of "key=value" array ## gboolean xfce_exec_with_envp(const char *cmd, ## gboolean in_terminal, ## gboolean use_sn, ## GError **error, ## char **envp) ## gboolean xfce_exec_sync(const char *exec, ## gboolean in_terminal, ## gboolean use_sn, ## GError **error) =for apidoc =for signature boolean = Xfce4->exec_sync ($cmd, $in_terminal, $use_sn) Runs 'cmd' and waits for it to return before proceeding. If 'in_termnial' is true, will spawn a terminal first. If 'use_sn' is true, will activate startup notification. =cut gboolean xfce_exec_sync(class, cmd, in_terminal, use_sn) const char *cmd gboolean in_terminal gboolean use_sn PREINIT: GError *error = NULL; CODE: RETVAL = xfce_exec_sync(cmd, in_terminal, use_sn, &error); if(!RETVAL) gperl_croak_gerror(cmd, error); OUTPUT: RETVAL ## TODO: implement me, use hash value for envp instead of "key=value" array ## gboolean xfce_exec_sync_with_envp(const char *cmd, ## gboolean in_terminal, ## gboolean use_sn, ## GError **error, ## char **envp) ## versioning stuff ## =for object Xfce4::version Library Version Information =cut =head1 DESCRIPTION Various version-related constants and functions. Note that these all refer to the Xfce C library versions (e.g., libxfce4util), and not the version of this perl module. =cut =for apidoc Returns a string containing the runtime Xfce version. =cut const gchar * xfce_version_string() =for apidoc Provides a mechanism for checking the version that Xfce4 was compiled against. Equivalent to the LIBXFCE4UTIL_CHECK_VERSION() macro. You usually want to use this to check for widget/function availability at perl runtime. =cut gboolean XFCE_CHECK_VERSION(class, major, minor, micro) guint major guint minor guint micro CODE: RETVAL = LIBXFCE4UTIL_CHECK_VERSION(major, minor, micro); OUTPUT: RETVAL =for apidoc Xfce4::MAJOR_VERSION __function__ The major version of the Xfce library against which Xfce4 was compiled. =cut =for apidoc Xfce4::MINOR_VERSION __function__ The minor version of the Xfce library against which Xfce4 was compiled. =cut =for apidoc Xfce4::MICRO_VERSION __function__ The micro version of the Xfce library against which Xfce4 was compiled. =cut guint MAJOR_VERSION() ALIAS: Xfce4::MINOR_VERSION = 1 Xfce4::MICRO_VERSION = 2 CODE: switch(ix) { case 0: RETVAL = LIBXFCE4UTIL_MAJOR_VERSION; break; case 1: RETVAL = LIBXFCE4UTIL_MINOR_VERSION; break; case 2: RETVAL = LIBXFCE4UTIL_MICRO_VERSION; break; default: RETVAL = -1; g_assert_not_reached(); } OUTPUT: RETVAL =for apidoc Xfce4::major_version __function__ The major version of the Xfce library currently in use at runtime. =cut =for apidoc Xfce4::minor_version __function__ The minor version of the Xfce library currently in use at runtime. =cut =for apidoc Xfce4::micro_version __function__ The micron version of the Xfce library currently in use at runtime. =cut guint xfce_major_version() ALIAS: Xfce4::minor_version = 1 Xfce4::micro_version = 2 CODE: guint major = 0, minor = 0, micro = 0; if(sscanf(xfce_version_string(), "%u.%u.%u", &major, &minor, µ) == 3) { switch(ix) { case 0: RETVAL = major; break; case 1: RETVAL = minor; break; case 2: RETVAL = micro; break; default: RETVAL = -1; g_assert_not_reached(); } } else RETVAL = 0; OUTPUT: RETVAL