/* Chrysalide - Outil d'analyse de fichiers binaires
* glinecursor.c - suivi de positions dans des panneaux de chargement
*
* Copyright (C) 2018 Cyrille Bagard
*
* This file is part of Chrysalide.
*
* Chrysalide 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.
*
* Chrysalide 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 Chrysalide. If not, see .
*/
#include "glinecursor.h"
#include
#include "glinecursor-int.h"
/* Procède à l'initialisation d'une classe de suivi de position. */
static void g_line_cursor_class_init(GLineCursorClass *);
/* Procède à l'initialisation d'un suivi de positions. */
static void g_line_cursor_init(GLineCursor *);
/* Supprime toutes les références externes. */
static void g_line_cursor_dispose(GLineCursor *);
/* Procède à la libération totale de la mémoire. */
static void g_line_cursor_finalize(GLineCursor *);
/* Détermine le type du gestionnaire de largeurs associées aux lignes. */
G_DEFINE_TYPE(GLineCursor, g_line_cursor, G_TYPE_OBJECT);
/******************************************************************************
* *
* Paramètres : class = classe de composant GTK à initialiser. *
* *
* Description : Procède à l'initialisation d'une classe de suivi de position.*
* *
* Retour : - *
* *
* Remarques : - *
* *
******************************************************************************/
static void g_line_cursor_class_init(GLineCursorClass *class)
{
GObjectClass *object; /* Autre version de la classe */
object = G_OBJECT_CLASS(class);
object->dispose = (GObjectFinalizeFunc/* ! */)g_line_cursor_dispose;
object->finalize = (GObjectFinalizeFunc)g_line_cursor_finalize;
}
/******************************************************************************
* *
* Paramètres : cursor = composant GLib à initialiser. *
* *
* Description : Procède à l'initialisation d'un suivi de positions. *
* *
* Retour : - *
* *
* Remarques : - *
* *
******************************************************************************/
static void g_line_cursor_init(GLineCursor *cursor)
{
}
/******************************************************************************
* *
* Paramètres : cursor = instance d'objet GLib à traiter. *
* *
* Description : Supprime toutes les références externes. *
* *
* Retour : - *
* *
* Remarques : - *
* *
******************************************************************************/
static void g_line_cursor_dispose(GLineCursor *cursor)
{
G_OBJECT_CLASS(g_line_cursor_parent_class)->dispose(G_OBJECT(cursor));
}
/******************************************************************************
* *
* Paramètres : cursor = instance d'objet GLib à traiter. *
* *
* Description : Procède à la libération totale de la mémoire. *
* *
* Retour : - *
* *
* Remarques : - *
* *
******************************************************************************/
static void g_line_cursor_finalize(GLineCursor *cursor)
{
G_OBJECT_CLASS(g_line_cursor_parent_class)->finalize(G_OBJECT(cursor));
}
/******************************************************************************
* *
* Paramètres : cursor = premier suivi d'emplacement à comparer. *
* other = second suivi d'emplacement à comparer. *
* *
* Description : Compare deux suivis d'emplacements. *
* *
* Retour : Bilan de la comparaison. *
* *
* Remarques : - *
* *
******************************************************************************/
int g_line_cursor_compare(const GLineCursor *cursor, const GLineCursor *other)
{
int result; /* Bilan à renvoyer */
assert(G_OBJECT_TYPE(cursor) == G_OBJECT_TYPE(other));
result = G_LINE_CURSOR_GET_CLASS(cursor)->compare(cursor, other);
return result;
}
/******************************************************************************
* *
* Paramètres : cursor = suivi d'emplacement à consulter. *
* *
* Description : Détermine si un suivi d'emplacement est valide ou non. *
* *
* Retour : Bilan de validité. *
* *
* Remarques : - *
* *
******************************************************************************/
bool g_line_cursor_is_valid(const GLineCursor *cursor)
{
bool result; /* Bilan à renvoyer */
result = G_LINE_CURSOR_GET_CLASS(cursor)->is_valid(cursor);
return result;
}