/***************************************************************************
 *                          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: Tuesday, October 14, 2003 17:07:07
 */

#if !defined(zmServices_h_included)
#define zmServices_h_included

#include <zmodeler.h>

namespace services
{
//
// dialog sizing stuff
//
#define DSS_MOVE              0x0001
#define DSS_SIZE              0x0100

#define DSS_1_SCALE(x)        (x)
#define DSS_2_SCALE(x)        ((x)<<1)
#define DSS_3_SCALE(x)        ((x)<<2)
#define DSS_4_SCALE(x)        ((x)<<3)
#define DSS_23_SCALE(x)       ((x)<<4)
#define DSS_34_SCALE(x)       ((x)<<5)

#define DSS_HORIZONTAL(mode)  (mode)
#define DSS_VERTICAL(mode)    ((mode)<<16)

#define DSS_GETVALUE(x, mode)                                                 \
    (((x) & DSS_1_SCALE(mode)) == DSS_1_SCALE(mode)) ? 1.0f :                 \
      ((((x) & DSS_2_SCALE(mode)) == DSS_2_SCALE(mode)) ? 0.5f :              \
        ((((x) & DSS_3_SCALE(mode)) == DSS_3_SCALE(mode)) ? 0.33333f :        \
          ((((x) & DSS_4_SCALE(mode)) == DSS_4_SCALE(mode)) ? 0.25f :         \
            ((((x) & DSS_23_SCALE(mode)) == DSS_23_SCALE(mode)) ? 0.66666f :  \
              ((((x) & DSS_34_SCALE(mode)) == DSS_34_SCALE(mode)) ? 0.75f : 0.0f)))))

//
// message box service
//
  // buttons and icons:
#define MB_YESNO_TOALL          0x00000006L
#define MB_CANSURPRESS          0x00004000L //overload MB_HELP
#define MB_ICONZMODELER         0x00000050L
#define MB_ICONBUSY             0x00000060L
#define IDYESTOALL              10
#define IDNOTOALL               11

// render manager createrendert target flags:
#define RENDMAN_RT_TEXTURE          0x00000001L
#define RENDMAN_RT_OFFSCREENBUF     0x00000002L
#define RENDMAN_RT_SHADOWMAP        0x00000004L
#define RENDMAN_RT_LIGHTMAP         0x00000008L
#define RENDMAN_RT_MULTISAMPLING    0x00000100L
#define RENDMAN_RT_LOCKABLE         0x00000200L

};//services

#endif