/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 * 
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org 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 version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/
#ifndef __com_sun_star_awt_grid_UnoControlGridModel_idl__ 
#define __com_sun_star_awt_grid_UnoControlGridModel_idl__ 

#include <com/sun/star/awt/grid/XGridColumnModel.idl> 
#include <com/sun/star/awt/grid/XGridDataModel.idl> 
#include <com/sun/star/awt/UnoControlModel.idl> 
#include <com/sun/star/view/SelectionType.idl>
#include <com/sun/star/awt/FontDescriptor.idl>
#include <com/sun/star/style/VerticalAlignment.idl>
#include <com/sun/star/util/Color.idl>

//============================================================================= 
 
module com {  module sun {  module star {  module awt { module grid { 
 
//============================================================================= 
 
/** specifies the standard model of a <type>UnoControlGrid</type> control.

    @since OOo 3.3
 */
service UnoControlGridModel
{ 
    /** specifies the standard model of an <type scope="com::sun::star::awt">UnoControl</type>. */
    service com::sun::star::awt::UnoControlModel; 
 
    /** Specifies whether the grid control should display a special header column.

    <p>The default value is <FALSE/></p>
    */
    [property] boolean ShowRowHeader;
    
    /** specifies the width of the row header column, if applicable.

        <p>The width is specified in application font units - see <type scope="com::sun::star::util">MeasureUnit</type>.</p>

        <p>The value given here is ignored if <member>ShowRowHeader</member> is <FALSE/>.</p>
    */
    [property] long RowHeaderWidth;

    /** Specifies whether the grid control should display a title row.

    <p>The default value is <TRUE/></p>
    */
    [property] boolean ShowColumnHeader;
    
    /** specifies the height of the column header row, if applicable.

        <p>The height is specified in application font units - see <type scope="com::sun::star::util">MeasureUnit</type>.</p>

        <p>The value given here is ignored if <member>ShowColumnHeader</member> is <FALSE/>.</p>

        <p>If the property is <void/>, the grid control shall automatically determine a height which conveniently allows,
        according to the used font, to display one line of text.</p>
    */
    [property, maybevoid] long ColumnHeaderHeight;

    /** Specifies the height of rows in the grid control.

        <p>The height is specified in application font units - see <type scope="com::sun::star::util">MeasureUnit</type>.</p>
    */
    [property, maybevoid] long RowHeight;

    /**	Specifies the <type>XGridColumnModel</type> that is providing the column structure.

        <p>You can implement your own instance of <type>XGridColumnModel</type> or use
        the <type>DefaultGridColumnModel</type>.

        <p>The column model is in the ownership of the grid model: When you set a new column model, or dispose
        the grid model, then the (old) column model is disposed, too.</p>

        <p>The default for this property is an empty instance of the <type>DefaultGridColumnModel</type>.</p>
    */
    [property] XGridColumnModel ColumnModel;
    
    /**	Specifies the <type>XGridDataModel</type> that is providing the hierarchical data.

        <p>You can implement your own instance of <type>XGridDataModel</type> or use
        the <type>DefaultGridDataModel</type>.

        <p>The data model is in the ownership of the grid model: When you set a new data model, or dispose
        the grid model, then the (old) data model is disposed, too.</p>

        <p>The default for this property is an empty instance of the <type>DefaultGridDataModel</type>.</p>
    */
    [property] XGridDataModel GridDataModel;
    
    /** Specifies the vertical scrollbar mode.
        <p>The default value is <FALSE/></p>
    */
    [property] boolean HScroll;
    
    /** Specifies the horizontal scrollbar mode.
        <p>The default value is <FALSE/></p>
    */
    [property] boolean VScroll;

    /** Specifies that the control can be reached with the TAB key.
     */
    [property] boolean Tabstop; 

    /** Specifies the selection mode that is enabled for this grid control.
        <p>The default value is <member scope="com::sun::star::view">SelectionType::SINGLE</member></p>
    */
    [property] ::com::sun::star::view::SelectionType SelectionModel;

    /** controls whether or not to paint horizontal and vertical lines between the grid cells.

        @see LineColor
    */
    [property] boolean UseGridLines;

    /** specifies the color to be used when drawing lines between cells

        <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
        depending on the system's style settings.</p>

        @see UseGridLines
    */
    [property, maybevoid] ::com::sun::star::util::Color             GridLineColor;

    /** specifies the color to be used when drawing the background of row or column headers

        <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
        depending on the system's style settings.</p>
    */
    [property, maybevoid] ::com::sun::star::util::Color             HeaderBackgroundColor;

    /** specifies the color to be used when drawing the text within row or column headers

        <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
        depending on the system's style settings.</p>
    */
    [property, maybevoid] ::com::sun::star::util::Color             HeaderTextColor;

    /** specifies the colors to be used as background for data rows.

        <p>If this sequence is non-empty, the data rows will be rendered with alternating background colors: Assuming
        the sequence has <code>n</code> elements, each row will use the background color as specified by its number's
        remainder modulo <code>n</code>.</p>

        <p>If this sequence is empty, all rows will use the same background color as the control as whole.</p>

        <p>If this property does not exist at a particular implementation, or is <VOID/>, rows will be painted
        in alternating background colors, every second row having a background color derived from the control's
        selection color.</p>
    */
    [property, maybevoid] sequence< ::com::sun::star::util::Color > RowBackgroundColors;

    /** specifies the vertical alignment of the content in the control.

        <pre>
            TOP
            MIDDLE
            BOTTOM
        </pre>
     */	
    [property] com::sun::star::style::VerticalAlignment VerticalAlign;
    
    /** specifies the font attributes of the text in the control.
     */
    [property] com::sun::star::awt::FontDescriptor FontDescriptor;

    /** specifies the color to be used when drawing cell texts

        <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
        depending on the system's style settings.</p>
    */
    [property, maybevoid] ::com::sun::star::util::Color             TextColor;

    /** specifies the color to be used when drawing text lines (underlining and strikethrough)

        <p>If this property has a value of <VOID/>, the grid control renderer will use some default color,
        depending on the system's style settings.</p>
     */
    [property, maybevoid] com::sun::star::util::Color               TextLineColor;

    /** specifies the <type scope="com::sun::star::text">FontEmphasis</type>
        value of the text in the control.
     */
    [property] short FontEmphasisMark;

    /** specifies the <type scope="com::sun::star::text">FontRelief</type>
        value of the text in the control.
     */
    [property] short FontRelief;

    /** specifies the help text of the control.
     */
    [property] string HelpText;

    /** specifies the help URL of the control.
     */
    [property] string HelpURL;

}; 
 
//============================================================================= 
 
}; }; }; }; }; 
 
#endif 
