#ifndef MTE_ARGS_H
#define MTE_ARGS_H

#include "mteintrinsics.h"
#include "mtewidgets.h"

#define MTE_DEF_WIDTH  330
#define MTE_DEF_HEIGHT 200
#define MTE_FIELD_WIDTH  332
#define MTE_FIELD_HEIGHT 23

#define MTE_KEY_WIDTH  180
#define MTE_KEY_HEIGHT MTE_FIELD_HEIGHT-2
#define MTE_FT_WIDTH  120
#define MTE_FT_HEIGHT MTE_FIELD_HEIGHT-2

/* #define MENU_WIDTH  20 */
/* #define MENU_HEIGHT 21 */

/* These two parameters depend on the size of the button bitmap in teh
   file button.bm  which is included in the xstuff.c  this is not realy
	good    */
#define MENU_BUTTON_W 18
#define MENU_BUTTON_H 18
#define MENU_BUTTON_D 1

#define MTE_ZERO_WIDTH 0

#define MTE_KEY_LENGTH 50

#define MTE_GLOBAL_CURSOR 132
#define MTE_EDIT_CURSOR 152

static Arg mte_ShellArgs[]= {
  { XtNallowShellResize, (XtArgVal) TRUE },
  { XtNminWidth, (XtArgVal) 50 },
  { XtNminHeight, (XtArgVal) 50 },
  { NULL, NULL },
};

static Arg mte_OuterArgs[]={
  { XtNheight, (XtArgVal) MTE_DEF_HEIGHT },
  { XtNwidth, (XtArgVal) MTE_DEF_WIDTH },
  { XtNresizable, (XtArgVal) TRUE },
  { NULL, (XtArgVal) NULL },
};

static Arg mte_TopTBArgs[]={                 /* a form widget */
  { XtNwidth, (XtArgVal) MTE_FIELD_WIDTH },
  { XtNvertDistance, (XtArgVal) 2 },
  { XtNhorizDistance, (XtArgVal) 2 },
  { XtNdefaultDistance, (XtArgVal) 2 },
  { XtNborderWidth, (XtArgVal) 1 },
  { XtNtraversalOn, (XtArgVal) FALSE },
  { XtNresizable, (XtArgVal) TRUE },
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainTop },
  { XtNleft, (XtArgVal) XtChainLeft },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};

static Arg mte_DumbLabelArgs[]={   /* labelWidgetClass, child of form */
  { XtNvertDistance, (XtArgVal) 0 },
  { XtNhorizDistance, (XtArgVal) 0 },
  { XtNborderWidth, (XtArgVal) MTE_ZERO_WIDTH },
  { XtNjustify, (XtArgVal) XtJustifyRight },
  { XtNresizable, (XtArgVal) FALSE },
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainTop },
  { XtNleft, (XtArgVal) XtChainRight },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};

static Arg mte_BlackLineArgs[]={   /* labelWidgetClass, child of form */
  { XtNwidth, (XtArgVal) MTE_FIELD_WIDTH }, 
  { XtNheight, (XtArgVal) 2 }, 
  { XtNvertDistance, (XtArgVal) 0 },
  { XtNhorizDistance, (XtArgVal) 0 },
  { XtNborderWidth, (XtArgVal) 0 },
  { XtNjustify, (XtArgVal) XtJustifyRight },
  { XtNlabel, (XtArgVal) "" },
  { XtNinternalHeight, (XtArgVal) 0 },
  { XtNinternalWidth, (XtArgVal) 0 },
  { XtNresizable, (XtArgVal) FALSE },
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainTop },
  { XtNleft, (XtArgVal) XtChainLeft },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};

static Arg mte_ContainerArgs[]={         /* formWidgetClass */
  { XtNheight, (XtArgVal) MTE_FIELD_HEIGHT },
  { XtNwidth, (XtArgVal) MTE_FIELD_WIDTH },
  { XtNvertDistance, (XtArgVal) 2 },
  { XtNhorizDistance, (XtArgVal) 2 },
  { XtNdefaultDistance, (XtArgVal) 2 },
  { XtNborderWidth, (XtArgVal) MTE_ZERO_WIDTH },
  { XtNtraversalOn, (XtArgVal) FALSE },
  { XtNresizable, (XtArgVal) TRUE },
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainTop },
  { XtNleft, (XtArgVal) XtChainLeft },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};

static Arg mte_BotTBArgs[]={
  { XtNwidth, (XtArgVal) MTE_FIELD_WIDTH },
  { XtNheight, (XtArgVal) MTE_FIELD_HEIGHT },
  { XtNresizable, (XtArgVal) TRUE },
  { XtNtop, (XtArgVal) XtChainBottom },
  { XtNbottom, (XtArgVal) XtChainBottom },
  { XtNleft, (XtArgVal) XtChainLeft },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};


static Arg mte_field_containerArgs[]={  /* formWidgetClass, son of form */
  { XtNheight, (XtArgVal) MTE_FIELD_HEIGHT },
  { XtNwidth, (XtArgVal) MTE_FIELD_WIDTH },
  { XtNmappedWhenManaged, (XtArgVal) TRUE },
  { XtNvertDistance, (XtArgVal) 2 },
  { XtNhorizDistance, (XtArgVal) 0 },
  { XtNborderWidth, (XtArgVal)  MTE_ZERO_WIDTH },
  { XtNdefaultDistance, (XtArgVal) 2 },
  { XtNresizable, (XtArgVal) TRUE },
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainTop },
  { XtNleft, (XtArgVal) XtChainLeft },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};


static Arg mte_KeyEditArgs[]={      /* asciiStringWidgetClass, child of form */
  { XtNwidth, (XtArgVal) MTE_KEY_WIDTH },
  { XtNheight, (XtArgVal) MTE_KEY_HEIGHT },
  { XtNvertDistance, (XtArgVal) 0 },
  { XtNhorizDistance, (XtArgVal) 2 },
  { XtNborderWidth, (XtArgVal) 1 },
  { XtNeditType, (XtArgVal) XttextEdit }, 
  { XtNtextOptions, resizeWidth | editable  },
  { XtNresizable, (XtArgVal) TRUE }, 
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainBottom },
  { XtNleft, (XtArgVal) XtChainLeft },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};

static Arg mte_KeyArgs[]={   /* labelWidgetClass, child of form */
  { XtNwidth, (XtArgVal) MTE_KEY_WIDTH },
  { XtNheight, (XtArgVal) MTE_KEY_HEIGHT },
  { XtNvertDistance, (XtArgVal) 0 },
  { XtNhorizDistance, (XtArgVal) 2 },
  { XtNborderWidth, (XtArgVal) MTE_ZERO_WIDTH },
  { XtNjustify, (XtArgVal) XtJustifyRight },
  { XtNresizable, (XtArgVal) TRUE },
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainBottom },
  { XtNleft, (XtArgVal) XtChainLeft },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};

static Arg mte_MenuBoxArgs[]={
  { XtNheight, (XtArgVal) MENU_BUTTON_H },
  { XtNwidth, (XtArgVal) MENU_BUTTON_W },
  { XtNvertDistance, (XtArgVal) 2 },
  { XtNhorizDistance, (XtArgVal) 2 },
  { XtNhSpace, (XtArgVal) 0 },
  { XtNvSpace, (XtArgVal) 0 },
  { XtNborderWidth, (XtArgVal) MTE_ZERO_WIDTH },
  { XtNresizable, (XtArgVal) FALSE }, 
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainBottom },
  { XtNleft, (XtArgVal) XtChainRight },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL, },
};

static Arg mte_MenuRasterArgs[]={
  { XtNhighlightThickness, (XtArgVal) 0 },
  { XtNhighlightStyle, (XtArgVal) XwSHADOW_BORDER },
  { XtNborderWidth, (XtArgVal) 0 },
  { XtNwidth, (XtArgVal) MENU_BUTTON_W },
  { XtNheight, (XtArgVal) MENU_BUTTON_H },
  { XtNlabel, (XtArgVal) "" },
  { XtNinternalHeight, (XtArgVal) 0 },
  { XtNinternalWidth, (XtArgVal) 0 },
  { NULL, NULL },
};


static Arg mte_FTArgs[]={   /* labelWidgetClass, child of form */
  { XtNwidth, (XtArgVal) MTE_FT_WIDTH },
  { XtNheight, (XtArgVal) MTE_FT_HEIGHT },
  { XtNvertDistance, (XtArgVal) 0 },
  { XtNhorizDistance, (XtArgVal) 2 },
  { XtNborderWidth, (XtArgVal) MTE_ZERO_WIDTH },
  { XtNjustify, (XtArgVal) XtJustifyLeft },
  { XtNresizable, (XtArgVal) FALSE },
  { XtNtop, (XtArgVal) XtChainTop },
  { XtNbottom, (XtArgVal) XtChainBottom },
  { XtNleft, (XtArgVal) XtChainRight },
  { XtNright, (XtArgVal) XtChainRight },
  { NULL, NULL },
};


static Arg mte_QuitArgs[]={
  { XtNheight, (XtArgVal) 20 },
  { XtNjustify, (XtArgVal) XtJustifyCenter },
  { XtNlabel, (XtArgVal) "Quit" },
  { XtNregion, (XtArgVal) XwALIGN_LEFT },
  { XtNposition, (XtArgVal) 0 },
  { XtNprecedence, (XtArgVal) 0 },
  { XtNhighlightThickness, (XtArgVal) 2 },
  { NULL, NULL },
};

static Arg mte_SaveArgs[]={
  { XtNheight, (XtArgVal) 20 },
  { XtNjustify, (XtArgVal) XtJustifyCenter },
  { XtNlabel, (XtArgVal) "Save" },
  { XtNregion, (XtArgVal) XwALIGN_RIGHT },
  { XtNposition, (XtArgVal) 0 },
  { XtNprecedence, (XtArgVal) 0 },
  { XtNhighlightThickness, (XtArgVal) 2 },
  { NULL, NULL },
};

static Arg mte_AddFieldArgs[]={
  { XtNheight, (XtArgVal) 20 },
  { XtNjustify, (XtArgVal) XtJustifyCenter },
  { XtNlabel, (XtArgVal) "Add Field" },
  { XtNregion, (XtArgVal) XwALIGN_CENTER },
  { XtNposition, (XtArgVal) 0 },
  { XtNprecedence, (XtArgVal) 0 },
  { XtNhighlightThickness, (XtArgVal) 2 },
  { NULL, NULL },
};

#endif
