/*

Miranda IM: the free IM client for Microsoft* Windows*

Copyright 2000-2008 Miranda ICQ/IM project, 
all portions of this codebase are copyrighted to the people 
listed in contributors.txt.

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, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

Created by Pescuma

*/

#pragma once

#ifndef __ROWHEIGHT_FUNCS_H__
# define __ROWHEIGHT_FUNCS_H__

#include "modern_clc.h"

#define ROW_SPACE_BEETWEEN_LINES 2
#define ICON_HEIGHT 16
#define ICON_WIDTH	16



BOOL RowHeights_Initialize(struct ClcData *dat);
void RowHeights_Free(struct ClcData *dat);
void RowHeights_Clear(struct ClcData *dat);

BOOL RowHeights_Alloc(struct ClcData *dat, int size);

// Calc and store max row height
int RowHeights_GetMaxRowHeight(struct ClcData *dat, HWND hwnd);

// Calc and store row height
int RowHeights_GetRowHeight(struct ClcData *dat, HWND hwnd, struct ClcContact *contact, int item);

// Calc and store row height for all itens in the list
void RowHeights_CalcRowHeights(struct ClcData *dat, HWND hwnd);

// Calc item top Y (using stored data)
int cliGetRowTopY(struct ClcData *dat, int item);

// Calc item bottom Y (using stored data)
int cliGetRowBottomY(struct ClcData *dat, int item);

// Calc total height of rows (using stored data)
int cliGetRowTotalHeight(struct ClcData *dat);

// Return the line that pos_y is at or -1 (using stored data). Y start at 0
int cliRowHitTest(struct ClcData *dat, int pos_y);

// Returns the height of the chosen row
int cliGetRowHeight(struct ClcData *dat, int item);

#endif // __ROWHEIGHT_FUNCS_H__
