/***************************************************************************
 *                          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:
   *   layout package types declaration
 *--------------------------------------------------------------------------
 * @created: Friday, September 27, 2002 10:31:32
 */

#if !defined(layoutTypes_h_included)
#define layoutTypes_h_included

#include <zmodeler.h>

#include "IChildDialog.h"
//-------------------------------------
// layout-related types
//-------------------------------------
namespace core
{
  namespace layout
  {
    //---------------------------------
    //some forwards and in-zm classes
    class CBarButton;

    //
    // Command bar should accept the following
    // kinds (tabs)
    //
    typedef enum tCommandBarTab
    {
      LAYOUT_CB_TAB_CREATE      = 1,
      LAYOUT_CB_TAB_MODIFY      = 2,
      LAYOUT_CB_TAB_SURFACE     = 3,
      LAYOUT_CB_TAB_SELECT      = 4,
      LAYOUT_CB_TAB_DISPLAY     = 5,
      LAYOUT_CB_TAB_ANIMATION   = 6,
      //
      // add other buttons here
      //
      LAYOUT_CB_TAB_NONE        = 10
    }tCommandBarTab;

// command-bar (CB), Menu (MM) and ToolBar (TB) item kinds:
//standard press-able button
#define LAYOUT_CB_BUTTON_PRESSABLE        0x0001
#define LAYOUT_MM_ITEM_CHECKABLE          LAYOUT_CB_BUTTON_PRESSABLE
#define LAYOUT_TB_ITEM_CHECKABLE          LAYOUT_CB_BUTTON_PRESSABLE
//button with a dialog extension
#define LAYOUT_CB_BUTTON_EXTENDED         0x0002
#define LAYOUT_MM_ITEM_SINGLECLICK        LAYOUT_CB_BUTTON_EXTENDED
#define LAYOUT_TB_BUTTON_EXTENDED         LAYOUT_CB_BUTTON_EXTENDED

#define LAYOUT_TB_ITEM_CHECKGROUPSTART    0x0004
#define LAYOUT_TB_ITEM_CHECKGROUPEND      0x0008

//button with integrated dialog with a sort of 'apply' button
#define LAYOUT_CB_BUTTON_INTEGRATED_TOOL  0x000A
//custom control instead of regular button. IToolBarLayout::deploy is called
#define LAYOUT_TB_CUSTOM_CONTROL          0x0010
//getVariationName is called in order to onbtain group of buttons.
#define LAYOUT_TB_VARIATION_GROUP         0x0020
  };//layout
};//core

#endif