/***************************************************************************
 *                          Zanoza Modeler v2.x                            *
 *      This is unpublished propietary source code of Zanoza Software.     *
 *      The copyright notice does not evidence any actual or intended      *
 *                    publication of such source code.                     *
 *                                                                         *
 *                   Copyright (c) 2002 Zanoza Software.                   *
 *                                                                         *
 *                        All rights reserved.                             *
 ***************************************************************************
 *--------------------------------------------------------------------------
 * @author:   Oleg Melashenko
 *--------------------------------------------------------------------------
 * @purpose:
   *--------------------------------------------------------------------------
 * @created: Thursday, May 15, 2003 12:05:51
 */

#if !defined(uiControls_h_included)
#define uiControls_h_included

#include <zmodeler.h>

// ui controls types and typedefs
#define   ZM_UICONTROL_VISIBLE            0x00000001
#define   ZM_UICONTROL_ENABLED            0x00000002
#define   ZM_UICONTROL_READONLY           0x00000004
#define   ZM_UICONTROL_INPLACEEDIT        0x00000010
#define   ZM_UICONTROL_INPLACEDELETE      0x00000020
#define   ZM_UICONTROL_QUICKEDIT          0x00000040
#define   ZM_UICONTROL_TEXTBOLD           0x00000100
#define   ZM_UICONTROL_TEXTITALIC         0x00000200

// control styles in range 0x0000FFFF - 0xFFFF0000 are reserved for
// per-control specific styles

//list-, grid- and tree- control uses the following bits:
#define   ZM_LISTCONTROL_DRAGANDDROP      0x00010000
#define   ZM_LISTCONTROL_DRAGSORT         0x00020000
#define   ZM_LISTCONTROL_SWITCHSTATE      0x00040000
#define   ZM_LISTCONTROL_SHOWIMAGES       0x00080000
#define   ZM_LISTCONTROL_SHOWSTATEIMAGES  0x00100000
#define   ZM_LISTCONTROL_MULTIPLESEL      0x00200000
#define   ZM_LISTCONTROL_DRAWGRID         0x00400000
#define   ZM_LISTCONTROL_INCOMPLETEGRID   0x00800000

namespace core
{
  namespace ui
  {
    namespace controls
    {
      enum eOptionControlType
      {
        editBox       = 0,
        comboBox      = 1,  //out-value as string[0] in "0".."n-1" format
        numericBox    = 2,  //in-out value as string in [0] member, value of [1] and [2] are min-max values
        floatBox      = 3,  //in-out value as string in [0] member
        floatBox1     = 4,  //"a.b" value in range (-3276.6 3276.6). in-out value as string in [0] member, value of [1] and [2] are min-max values
        floatBox2     = 5,  //"a.bb" value in range (-327.66 327.66).
        floatBox3     = 6,  //"a.bbb" value in range (-32.766 32.766).
        floatBox4     = 7,  //"a.bbbb" value in range (-3.2766 3.2766).
        colorBox      = 8,  //in-out value as numbers; "(red,green,blue)" in [0] member
        fileBox       = 9,  //in-out value pathname in [0] member. file filter string in [1] member
        pathBox       = 10,
        checkBox      = 11, //in-out value as "0" or "1" in [0] member
        radioBox      = 12, //multy-items radio box (not implemented)
      };
    };
  };
};

#endif