mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-22 08:57:17 -06:00
231 lines
6.6 KiB
OpenEdge ABL
231 lines
6.6 KiB
OpenEdge ABL
/*
|
|
* gnucash_core.i -- SWIG interface file for the core parts of GnuCash
|
|
*
|
|
* Copyright (C) 2008 ParIT Worker Co-operative <paritinfo@parit.ca>
|
|
*
|
|
* 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 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 General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, contact:
|
|
*
|
|
* Free Software Foundation Voice: +1-617-542-5942
|
|
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
|
|
* Boston, MA 02110-1301, USA gnu@gnu.org
|
|
*
|
|
* @author Mark Jenkins, ParIT Worker Co-operative <mark@parit.ca>
|
|
* @author Jeff Green, ParIT Worker Co-operative <jeff@parit.ca>
|
|
*/
|
|
|
|
/** @file
|
|
@brief SWIG interface file for the core parts of GnuCash
|
|
|
|
This file is processed by SWIG and the resulting files are gnucash_core.c and gnucash_core_c.py.
|
|
Have a look at the includes to see which parts of the GnuCash source SWIG takes as input.
|
|
@author Mark Jenkins, ParIT Worker Co-operative <mark@parit.ca>
|
|
@author Jeff Green, ParIT Worker Co-operative <jeff@parit.ca>
|
|
@ingroup python_bindings
|
|
|
|
@file gnucash_core.c
|
|
@brief SWIG output file.
|
|
@ingroup python_bindings
|
|
@file gnucash_core_c.py
|
|
@brief SWIG output file.
|
|
@ingroup python_bindings
|
|
*/
|
|
|
|
%feature("autodoc", "1");
|
|
%module(package="gnucash") gnucash_core_c
|
|
|
|
%{
|
|
#include <config.h>
|
|
#include <datetime.h>
|
|
#include "qofsession.h"
|
|
#include "qofbook.h"
|
|
#include "qofbackend.h"
|
|
#include "qoflog.h"
|
|
#include "qofutil.h"
|
|
#include "qofid.h"
|
|
#include "guid.h"
|
|
#include "qofquery.h"
|
|
#include "qofquerycore.h"
|
|
#include "gnc-engine.h"
|
|
#include "Transaction.h"
|
|
#include "Split.h"
|
|
#include "Account.h"
|
|
#include "gnc-commodity.h"
|
|
#include "gnc-environment.h"
|
|
#include "gnc-lot.h"
|
|
#include "gnc-numeric.h"
|
|
#include "gncCustomer.h"
|
|
#include "gncCustomerP.h"
|
|
#include "gncEmployee.h"
|
|
#include "gncVendor.h"
|
|
#include "gncVendorP.h"
|
|
#include "gncAddress.h"
|
|
#include "gncBillTerm.h"
|
|
#include "gncOwner.h"
|
|
#include "gncInvoice.h"
|
|
#include "gncInvoiceP.h"
|
|
#include "gncJob.h"
|
|
#include "gncEntry.h"
|
|
#include "gncTaxTable.h"
|
|
#include "gncIDSearch.h"
|
|
#include "gnc-pricedb.h"
|
|
#include "gnc-prefs-utils.h"
|
|
#include "cap-gains.h"
|
|
#include "Scrub3.h"
|
|
%}
|
|
|
|
%include <time64.i>
|
|
|
|
%include <base-typemaps.i>
|
|
|
|
%include <engine-common.i>
|
|
|
|
%include <qofbackend.h>
|
|
|
|
// this function is defined in qofsession.h, but isn't found in the libraries,
|
|
// ignored because SWIG attempts to link against (to create language bindings)
|
|
%ignore qof_session_not_saved;
|
|
%include <qofsession.h>
|
|
|
|
%include <qofbook.h>
|
|
|
|
%include <qofid.h>
|
|
|
|
%include <qofquery.h>
|
|
|
|
%include <qofquerycore.h>
|
|
|
|
/* SWIG doesn't like this macro, so redefine it to simply mean const */
|
|
#define G_CONST_RETURN const
|
|
%include <guid.h>
|
|
|
|
/* %include <Transaction.h>
|
|
%include <Split.h>
|
|
%include <Account.h> */
|
|
|
|
//Ignored because it is unimplemented
|
|
%ignore gnc_numeric_convert_with_error;
|
|
%include <gnc-numeric.h>
|
|
|
|
%include <gnc-commodity.h>
|
|
|
|
%typemap(out) GncOwner * {
|
|
GncOwnerType owner_type = gncOwnerGetType($1);
|
|
PyObject * owner_tuple = PyTuple_New(2);
|
|
PyTuple_SetItem(owner_tuple, 0, PyInt_FromLong( (long) owner_type ) );
|
|
PyObject * swig_wrapper_object;
|
|
if (owner_type == GNC_OWNER_CUSTOMER ){
|
|
swig_wrapper_object = SWIG_NewPointerObj(
|
|
gncOwnerGetCustomer($1), $descriptor(GncCustomer *), 0);
|
|
}
|
|
else if (owner_type == GNC_OWNER_JOB){
|
|
swig_wrapper_object = SWIG_NewPointerObj(
|
|
gncOwnerGetJob($1), $descriptor(GncJob *), 0);
|
|
}
|
|
else if (owner_type == GNC_OWNER_VENDOR){
|
|
swig_wrapper_object = SWIG_NewPointerObj(
|
|
gncOwnerGetVendor($1), $descriptor(GncVendor *), 0);
|
|
}
|
|
else if (owner_type == GNC_OWNER_EMPLOYEE){
|
|
swig_wrapper_object = SWIG_NewPointerObj(
|
|
gncOwnerGetEmployee($1), $descriptor(GncEmployee *), 0);
|
|
}
|
|
else {
|
|
swig_wrapper_object = Py_None;
|
|
Py_INCREF(Py_None);
|
|
}
|
|
PyTuple_SetItem(owner_tuple, 1, swig_wrapper_object);
|
|
$result = owner_tuple;
|
|
}
|
|
|
|
|
|
%typemap(in) GncOwner * {
|
|
GncOwner * temp_owner = gncOwnerNew();
|
|
void * pointer_to_real_thing;
|
|
if ((SWIG_ConvertPtr($input, &pointer_to_real_thing,
|
|
$descriptor(GncCustomer *),
|
|
SWIG_POINTER_EXCEPTION)) == 0){
|
|
gncOwnerInitCustomer(temp_owner, (GncCustomer *)pointer_to_real_thing);
|
|
$1 = temp_owner;
|
|
}
|
|
else if ((SWIG_ConvertPtr($input, &pointer_to_real_thing,
|
|
$descriptor(GncJob *),
|
|
SWIG_POINTER_EXCEPTION)) == 0){
|
|
gncOwnerInitJob(temp_owner, (GncJob *)pointer_to_real_thing);
|
|
$1 = temp_owner;
|
|
}
|
|
else if ((SWIG_ConvertPtr($input, &pointer_to_real_thing,
|
|
$descriptor(GncVendor *),
|
|
SWIG_POINTER_EXCEPTION)) == 0){
|
|
gncOwnerInitVendor(temp_owner, (GncVendor *)pointer_to_real_thing);
|
|
$1 = temp_owner;
|
|
}
|
|
else if ((SWIG_ConvertPtr($input, &pointer_to_real_thing,
|
|
$descriptor(GncEmployee *),
|
|
SWIG_POINTER_EXCEPTION)) == 0){
|
|
gncOwnerInitEmployee(temp_owner, (GncEmployee *)pointer_to_real_thing);
|
|
$1 = temp_owner;
|
|
}
|
|
else {
|
|
PyErr_SetString(
|
|
PyExc_ValueError,
|
|
"Python object passed to function with GncOwner * argument "
|
|
"couldn't be converted back to pointer of that type");
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
%typemap(freearg) GncOwner * {
|
|
gncOwnerFree($1);
|
|
}
|
|
|
|
static const GncGUID * gncEntryGetGUID(GncEntry *x);
|
|
|
|
%include <gnc-lot.h>
|
|
|
|
//core business includes
|
|
%include <gncOwner.h>
|
|
%include <gncCustomer.h>
|
|
%include <gncCustomerP.h>
|
|
%include <gncEmployee.h>
|
|
%include <gncVendor.h>
|
|
%include <gncVendorP.h>
|
|
%include <gncAddress.h>
|
|
%include <gncBillTerm.h>
|
|
%include <gncInvoice.h>
|
|
%include <gncInvoiceP.h>
|
|
%include <gncJob.h>
|
|
%include <gncEntry.h>
|
|
%include <gncTaxTable.h>
|
|
%include <gncIDSearch.h>
|
|
|
|
// Commodity prices includes and stuff
|
|
%include <gnc-pricedb.h>
|
|
|
|
%include <cap-gains.h>
|
|
%include <Scrub3.h>
|
|
|
|
%include <qoflog.h>
|
|
|
|
%init %{
|
|
gnc_environment_setup();
|
|
qof_log_init();
|
|
qof_init();
|
|
qof_query_init();
|
|
char * no_args[1] = { NULL };
|
|
gnc_engine_init(0, no_args);
|
|
gnc_prefs_init();
|
|
%}
|
|
//We must explicitly declare this or it gets left out and we can't create books.
|
|
QofBook* qof_book_new (void);
|