
int graduatedname_handle;

int graduatedname_entry(int entry,int subcode)
{
 setgraduated(entry);
 return(0);
}

int graduatedname_flags(int entry,string & text)
{
 return(currentgraduated(entry)==0);
}

int graduatedname_menu(int open)
{
 int    i;
 string s;

 if(graduatedname_handle) return(graduatedname_handle);

 graduatedname_handle=create_menu("Graduated");

 i=0;
 while(graduatedname(i++,s))
  addentry_menu(graduatedname_handle,"graduatedname_entry",
                                     "graduatedname_flags","","",s);

 return(graduatedname_handle);
}


/***************************************************************************/

int blobwidth_handle;
int blobwidth0,blobwidth1,blobwidth2,blobwidth3,blobwidth4,blobwidth5;

int blobwidth_entry(int entry,int subcode)
{
 int uwidth;

 switch(entry)
 {
  case 0:
         uwidth=blobwidth0;
         break;
  case 1:
         uwidth=blobwidth1;
         break;
  case 2:
         uwidth=blobwidth2;
         break;
  case 3:
         uwidth=blobwidth3;
         break;
  case 4:
         uwidth=blobwidth4;
         break;
  case 5:
         uwidth=blobwidth5;
         break;
  case 6:
         uwidth=stringu(string_menu(blobwidth_handle,6),-1);
         break;
 }
 setblobwidth(uwidth);
 return(0);
}

int blobwidth_flags(int entry,string & text)
{
 int width;
 int uwidth;

 width=getblobwidth();

 switch(entry)
 {
  case 0:
         tick=0;
         uwidth=blobwidth0;
         break;
  case 1:
         uwidth=blobwidth1;
         break;
  case 2:
         uwidth=blobwidth2;
         break;
  case 3:
         uwidth=blobwidth3;
         break;
  case 4:
         uwidth=blobwidth4;
         break;
  case 5:
         uwidth=blobwidth5;
         break;
  case 6:
         uwidth=width;
         break;
 }
 if(uwidth || entry==6) text=ustring(uwidth,-1);
 else                   text="Thin";
 if(entry==6 && tick) text="";

 if(entry==6) return((8<<24)|(8<<16)|WRITEABLE|!tick);
 if(uwidth==width) return(tick=1);
 return(0);     
}

int blobwidth_menu(int open)
{
 return(blobwidth_handle);
}



/**************************************************************************/


int blobstyle_handle;

int blobstyle_entry(int entry,int subcode)
{
 int ustyle;
 int l;

 switch(entry)
 {
  case 0:
         ustyle=0xFFFFFFFF;
         l = 5120;
         break;
  case 1:
         ustyle=0xFCFCFCFC;
         l = 2880;
         break;
  case 2:
         ustyle=0xEEEEEEEE;
         l = 3840;
         break;
  case 3:
         ustyle=0xAAAAAAAA;
         l = 5120;
         break;
  case 4:
         ustyle=0xFAFAFAFA;
         l = 3200;
         break;
 }
 setblobpattern(ustyle,l);
 return(0);
}

int blobstyle_flags(int entry,string & text)
{
 int style;
 int scale;
 int ustyle;
 int l;

 style=getblobpattern();
 scale=getblobscale();

 switch(entry)
 {
  case 0:
         ustyle=0xFFFFFFFF;
         l = 5120;
         break;
  case 1:
         ustyle=0xFCFCFCFC;
         l = 2880;
         break;
  case 2:
         ustyle=0xEEEEEEEE;
         l = 3840;
         break;
  case 3:
         ustyle=0xAAAAAAAA;
         l = 5120;
         break;
  case 4:
         ustyle=0xFAFAFAFA;
         l = 3200;
         break;
 }
 return(style==ustyle && scale==l);
}

int blobstyle_menu(int open)
{
 return(blobstyle_handle);
}









int blobname_handle;

int blobname_entry(int entry,int subcode)
{
 setblob(entry);
 return(0);
}

int blobname_flags(int entry,string & text)
{
 return(currentblob(entry)==0);
}

int blobname_menu(int open)
{
 int    i;
 string s;

 if(blobname_handle) return(blobname_handle);

 blobname_handle=create_menu("Blob");

 i=0;
 while(blobname(i++,s))
  addentry_menu(blobname_handle,"blobname_entry","blobname_flags","","",s);

 return(blobname_handle);
}



/***************************************************************************/

int hatchwidth_handle;
int hatchwidth0,hatchwidth1,hatchwidth2,hatchwidth3,hatchwidth4,hatchwidth5;

int hatchwidth_entry(int entry,int subcode)
{
 int uwidth;

 switch(entry)
 {
  case 0:
         uwidth=hatchwidth0;
         break;
  case 1:
         uwidth=hatchwidth1;
         break;
  case 2:
         uwidth=hatchwidth2;
         break;
  case 3:
         uwidth=hatchwidth3;
         break;
  case 4:
         uwidth=hatchwidth4;
         break;
  case 5:
         uwidth=hatchwidth5;
         break;
  case 6:
         uwidth=stringu(string_menu(hatchwidth_handle,6),-1);
         break;
 }
 sethatchwidth(uwidth);
 return(0);
}

int hatchwidth_flags(int entry,string & text)
{
 int width;
 int uwidth;

 width=gethatchwidth();

 switch(entry)
 {
  case 0:
         tick=0;
         uwidth=hatchwidth0;
         break;
  case 1:
         uwidth=hatchwidth1;
         break;
  case 2:
         uwidth=hatchwidth2;
         break;
  case 3:
         uwidth=hatchwidth3;
         break;
  case 4:
         uwidth=hatchwidth4;
         break;
  case 5:
         uwidth=hatchwidth5;
         break;
  case 6:
         uwidth=width;
         break;
 }
 if(uwidth || entry==6) text=ustring(uwidth,-1);
 else                   text="Thin";
 if(entry==6 && tick) text="";

 if(entry==6) return((8<<24)|(8<<16)|WRITEABLE|!tick);
 if(uwidth==width) return(tick=1);
 return(0);     
}

int hatchwidth_menu(int open)
{
 return(hatchwidth_handle);
}



/**************************************************************************/


int hatchstyle_handle;

int hatchstyle_entry(int entry,int subcode)
{
 int ustyle;
 int l;

 switch(entry)
 {
  case 0:
         ustyle=0xFFFFFFFF;
         l = 5120;
         break;
  case 1:
         ustyle=0xFCFCFCFC;
         l = 2880;
         break;
  case 2:
         ustyle=0xEEEEEEEE;
         l = 3840;
         break;
  case 3:
         ustyle=0xAAAAAAAA;
         l = 5120;
         break;
  case 4:
         ustyle=0xFAFAFAFA;
         l = 3200;
         break;
 }
 sethatchpattern(ustyle,l);
 return(0);
}

int hatchstyle_flags(int entry,string & text)
{
 int style;
 int scale;
 int ustyle;
 int l;

 style=gethatchpattern();
 scale=gethatchscale();

 switch(entry)
 {
  case 0:
         ustyle=0xFFFFFFFF;
         l = 5120;
         break;
  case 1:
         ustyle=0xFCFCFCFC;
         l = 2880;
         break;
  case 2:
         ustyle=0xEEEEEEEE;
         l = 3840;
         break;
  case 3:
         ustyle=0xAAAAAAAA;
         l = 5120;
         break;
  case 4:
         ustyle=0xFAFAFAFA;
         l = 3200;
         break;
 }
 return(style==ustyle && scale==l);
}

int hatchstyle_menu(int open)
{
 return(hatchstyle_handle);
}



/***************************************************************************/

int fillname_handle;

int fillname_entry(int entry,int subcode)
{
 setfill(entry);
 return(0);
}

int fillname_flags(int entry,string & text)
{
 return(0);
}

int fillname_menu(int open)
{
 int    i;
 string s;

 if(fillname_handle) return(fillname_handle);

 fillname_handle=create_menu("Fill");

 i=0;
 while(fillname(i++,s))
  addentry_menu(fillname_handle,"fillname_entry","fillname_flags","","",s);

 return(fillname_handle);
}

/***************************************************************************/


int fill_entry(int entry,int subcode)
{
 openfillbox();
}


int fill_flags(int entry,string & text)
{
 return((nselected() && canmodify())?0:SHADED);
}
