/*
This source file is part of Scol
For the latest info, see http://www.scolring.org

Copyright (c) 2010 Stephane Bisaro, aka Iri <iri@irizone.net>

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 Lesser 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, or go to
http://www.gnu.org/copyleft/lesser.txt

For others informations, please contact us from http://www.scolring.org/
*/

#include "../include/scol_gtk_memory.h"


int SCOL_gtk_memory_createObject (mmachine m, void *obj, size_t objsize, int objtyp, int flag, int typ, int typparent, int objparent)
{
    int mem, k;

    mem = MMmalloc (m, objsize, typ);
    if (mem == NIL)
        g_error ("SCOL_gtk_memory_createObject : memory errorn");

    if (obj == NULL)
        g_warning ("SCOL_gtk_memory_createObject error : object is null");

    MMstore (m, mem, flag, (int) obj);
    MMpush (m, PTOM (mem));
    k = OBJcreate (m, objtyp, (int) obj, typparent, objparent);
    return k;
}

int SCOL_gtk_memory_createObjectTAB (mmachine m, void *obj, int objtyp, int flag)
{
    return SCOL_gtk_memory_createObject (m, obj, sizeof (obj)+1, objtyp, flag, TYPETAB, -1, -1);
}

int SCOL_gtk_memory_createObjectBUF (mmachine m, void *obj, int objtyp, int flag)
{
    return SCOL_gtk_memory_createObject (m, obj, sizeof (obj)+1, objtyp, flag, TYPEBUF, -1, -1);
}


ScolWidgetObject SCOL_gtk_memory_allocate_handle (void)
{
    ScolWidgetObject o;

    o = (ScolWidgetObject) g_malloc (sizeof (struct SCOLWidgetObject));
    if (o == NULL)
        g_error ("SCOL_gtk_memory_allocate_handle : memory is not enough !");
    return o;
}





