linea.h

// $Id:$
//***************************************************************
//
//  PROYECTO: AJUSTAR
//
//  NOMBRE MODULO: Linea
//  PREFIJO:       LIN
//
//  AUTOR/ES: M. Collado
//
//  DESCRIPCION DEL MODULO:
//    Clase Linea
//
//***************************************************************

#ifndef _LINEA_H
#define _LINEA_H

// Módulos de sistema

// Otros módulos de la aplicación
#include "palabra.h"

//---------------------------------------------------------------
// Literales, macros y definiciones de tipos:
//---------------------------------------------------------------

const int LIN_MAXCAR = PAL_MAXCAR;      // Máximo tamaño de línea, en caracteres
const int LIN_MAXPAL = LIN_MAXCAR / 2;  // Máximo número de palabras en una línea


//---------------------------------------------------------------
// Variables:
//---------------------------------------------------------------

//---------------------------------------------------------------
// Prototipos de funciones:
//---------------------------------------------------------------

//---------------------------------------------------------------
// Definiciones de clases:
//---------------------------------------------------------------

class LIN_c
{
public:

    // Iniciar una línea
    void LIN_Iniciar (int sangrado);

    // Poner una nueva palabra
    void LIN_PonerPalabra (const PAL_c* palabra_p);

    // Imprimir la línea, sin ajustar
    void LIN_Imprimir () const;

    // Imprimir la línea, ajustada
    void LIN_ImprimirAjustada () const;

    // Determinar si cabe otra palabra
    bool LIN_CabePalabra (const PAL_c* palabra_p) const;

private:
    int LIN_sangrado;       // sangrado
    int LIN_numPal;         // número de palabras
    int LIN_longitud;       // longitud total sin ajustar, en caracteres
    PAL_c LIN_palabras[LIN_MAXPAL];     // secuencia de palabras
};


#endif _LINEA_H

//****************** Fin de fichero incluido ********************