1/*  This file is part of PLGI.
    2
    3    Copyright (C) 2015 Keri Harris <keri@gentoo.org>
    4
    5    PLGI is free software: you can redistribute it and/or modify
    6    it under the terms of the GNU Lesser General Public License as
    7    published by the Free Software Foundation, either version 2.1
    8    of the License, or (at your option) any later version.
    9
   10    PLGI is distributed in the hope that it will be useful,
   11    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   13    GNU General Public License for more details.
   14
   15    You should have received a copy of the GNU General Public License
   16    along with PLGI.  If not, see <http://www.gnu.org/licenses/>.
   17*/
   18
   19:- module('GObject_overrides',
   20          [
   21            g_closure_invoke/4,
   22            g_is_object/1,
   23            g_is_value/1,
   24            g_object_new/3,
   25            g_object_get_property/3,
   26            g_object_set_property/3,
   27            g_object_type/2,
   28            g_param_spec_value_type/2,
   29            g_signal_connect/5,
   30            g_signal_connect_after/5,
   31            g_signal_connect_data/6,
   32            g_signal_connect_swapped/5,
   33            g_signal_emit/4,
   34            g_value_get_boxed/2,
   35            g_value_holds/2,
   36            g_value_init/2,
   37            g_value_set_boxed/2
   38          ]).   39
   40
   41
   42/* GClosure */
   43g_closure_invoke(Closure, ReturnValue, ParamValues, InvocationHint) :-
   44	plgi:plgi_g_closure_invoke(Closure, ReturnValue, ParamValues, InvocationHint).
   45
   46
   47
   48/* GObject */
   49g_is_object(Object) :-
   50	plgi:plgi_g_is_object(Object).
   51
   52g_object_new(ObjectType, Properties, Object) :-
   53	plgi:plgi_object_new(ObjectType, Properties, Object).
   54
   55g_object_get_property(Object, PropertyName, PropertyValue) :-
   56	plgi:plgi_object_get_property(Object, PropertyName, PropertyValue).
   57
   58g_object_set_property(Object, PropertyName, PropertyValue) :-
   59	plgi:plgi_object_set_property(Object, PropertyName, PropertyValue).
   60
   61g_object_type(Object, Type) :-
   62	plgi:plgi_g_object_type(Object, Type).
   63
   64
   65
   66/* GParamSpec */
   67g_param_spec_value_type(GParamSpec, ValueType) :-
   68	plgi:plgi_g_param_spec_value_type(GParamSpec, ValueType).
   69
   70
   71
   72/* GSignal */
   73g_signal_connect(Object, Signal, Handler, UserData, HandlerId) :-
   74	g_signal_connect_data(Object, Signal, Handler, UserData, [], HandlerId).
   75
   76g_signal_connect_after(Object, Signal, Handler, UserData, HandlerId) :-
   77	g_signal_connect_data(Object, Signal, Handler, UserData, ['G_CONNECT_AFTER'], HandlerId).
   78
   79g_signal_connect_swapped(Object, Signal, Handler, UserData, HandlerId) :-
   80	g_signal_connect_data(Object, Signal, Handler, UserData, ['G_CONNECT_SWAPPED'], HandlerId).
   81
   82g_signal_connect_data(Object, Signal, Handler, UserData, ConnectFlags, HandlerId) :-
   83	plgi:plgi_signal_connect_data(Object, Signal, Handler, UserData, ConnectFlags, HandlerId).
   84
   85g_signal_emit(Object, Signal, Detail, Args) :-
   86	plgi:plgi_signal_emit(Object, Signal, Detail, Args).
   87
   88
   89
   90/* GValue */
   91g_value_init(GType, GValue) :-
   92	plgi:plgi_g_value_init(GType, GValue).
   93
   94g_value_get_boxed(GValue, Boxed) :-
   95	plgi:plgi_g_value_get_boxed(GValue, Boxed).
   96
   97g_value_set_boxed(GValue, Boxed) :-
   98	plgi:plgi_g_value_set_boxed(GValue, Boxed).
   99
  100g_is_value(GValue) :-
  101	plgi:plgi_g_is_value(GValue).
  102
  103g_value_holds(GValue, GType) :-
  104	plgi:plgi_g_value_holds(GValue, GType)