Esempio n. 1
0
/* SetSymbols()
 * ====================================================================
 * Sets the flags and buttons for the outline dialog box Symbol and
 * Hebrew font setups. See above when they are used.
 * Also used when the user selects the button to enable/disable the
 * symbol/hebrew font.
 */
BOOLEAN
SetSymbols( BOOLEAN *flag, int Text, int Title, char *filename, char *title_field, BOOLEAN draw_flag )
{
   BOOLEAN out_flag;
   
   ObString( Text ) = &none_text[0];
   Disable( Title );
   Disable( Text );
   out_flag = TRUE;
   
   if( *flag )
   {
      Enable( Title );
      Enable( Text );
   
      if( *filename )
        ObString( Text ) = filename;
      else
        out_flag = SymButton( filename, Title, Text, title_field, flag );
   }
   
   if( draw_flag )
   {
      Objc_draw( tree, Title, MAX_DEPTH, NULL );
      Objc_draw( tree, Text, MAX_DEPTH, NULL );
      return( out_flag );
   }
   return( FALSE );  
}
Esempio n. 2
0
/* SymButton()
 * ====================================================================
 * Handles the routine when the Symbol Text button or Hebrew Text button
 * is pressed. A file selector is brought up to allow the user to select
 * a new Symbol font or Hebrew font.
 */
BOOLEAN
SymButton( char *filename, int Title, int Text, char *title_field, BOOLEAN *flag )
{
  int  out;
  long i;
    
  if( !IsDisabled( Text ) )
  {
     Deselect( Text );
     strcpy( newpath, dirpath );
     for( i = strlen( newpath ); i && ( newpath[i] != '\\'); newpath[ i-- ] = '\0' );
     if( strlen( filename ) )
     {
        strcat( newpath, filename );
        strcat( newpath, ".QFM" );
     }  
     out = fsel_name( FALSE, newpath, "*.QFM", title_field );
     if( ( ( out == A_OK ) || ( out == A_CANCEL )) && ( newpath[0] != '\0' ) )
     {
        if( out == A_OK )
        {
  	  for( i = strlen( newpath ); i && ( newpath[i] != '.'); newpath[ i-- ] = '\0' );
          newpath[i--] = '\0';
 	  for( i = strlen( newpath ); i && ( newpath[i] != '\\'); i-- );
	  strcpy( filename, &newpath[ i + 1 ] );     		          
	  ObString( Text ) = filename;
     	}
     	else
     	{ /* Clicked on OK with no filename, so we'll put none there */
     	  filename[0] = '\0';
     	  ObString( Text ) = &none_text[0];
          out = A_OK;
     	}  
  	Objc_draw( tree, Text, MAX_DEPTH, NULL );
        Change_Flag = TRUE;
    }
  }
  if( !(*filename) )
  {
    Disable( Title );
    Disable( Text );
    *flag = FALSE;
    Objc_draw( tree, Title, MAX_DEPTH, NULL );
    Objc_draw( tree, Text, MAX_DEPTH, NULL );
    Change_Flag = TRUE;
  }
  return( out == A_OK );
}
Esempio n. 3
0
/* Driver_Dialog()
 * ================================================================
 */
int
driver_dialog( void )
{
   int flag;
   static int sflag = FALSE;

   /* Setup the Printer Menu */
   if( !sflag )
   {
      sflag = TRUE;
      SetPrinterMenu();
   }
   else
   {
      menu_icheck( ad_submenu, SNONE + gl_printer, 0 );
      menu_icheck( ad_submenu, SNONE, 1 );
      gl_printer = 0;
   }

   ActiveTree( ad_driver );   
   ObString( PBUTTON ) = anone;

   SetDriverWindow();

   flag = driver_handler();
   return( flag );
}
Esempio n. 4
0
/* SymHebFontChange()
 * ====================================================================
 * Called whenever the Symbol or Hebrew Font is changed, turned on
 * or turned off.
 */
void
SymHebFontChange( void )
{
#if 0
     Current.Width = FALSE;
     ObString( WIDTHFLG ) = width_text[ Current.Width ];
/*   Objc_draw( tree, WIDTHFLG, MAX_DEPTH, NULL );*/

     CacheCheck( 0 ); /* Do I need to check if the cache is large enuf? NO!*/
#endif
     
     /* This is to prevent the warning from popping up all the time.
      * It will show ONCE and that is that. It is initialized when
      * the CPX or desk accessory is first opened.
      */
     if( !Symbol_Change )
     {
         Objc_draw( tree, ROOT, MAX_DEPTH, NULL );
         form_alert( 1, sym_alert );
     }    
     Symbol_Change   = TRUE;	
     Make_Width_Flag = TRUE;    /* Make sure we prompt for a make
     				 * width tables after an extend.sys
     				 */
}
Esempio n. 5
0
/* Do_Font_Setup()
 * ====================================================================
 * Setup the variables for outline tree dialog.
 */
void
Do_Font_Setup( void )
{
     Undo_Fnodes( hdptr, ( FON_PTR )NULL );

     Reset_Tree( Oxtree );  
     
     /* Setup the variables appropriately for the OUTLINE Font Setup */
     /* Width Table */
     ObString( WIDTHFLG ) = width_text[ Current.Width ];

     /* Font Directory Path */
     strcpy( dirpath, Current.FontPath );
     strcat( dirpath, "\\*.QFM");

     dircount = 0;
     dirsize = ( int )strlen( dirpath );
     
     strcpy( view_path, underbar );
     strncpy( view_path, dirpath, ( DIR_MAX, dirsize ) );
     if( dirsize > DIR_MAX )
     	  view_path[ DIR_MAX - 1 ] = 0xAF;
     TedText( FSMPATH ) = view_path;


     /* Hebrew and Symbol Font Setup */
     SetSymbols( &Current.SymbolFlag, SYMTEXT, SYMTITLE, Current.SymbolFont, title_symbol, FALSE );
     SetSymbols( &Current.HebrewFlag, HEBTEXT, HEBTITLE, Current.HebrewFont, title_hebrew, FALSE );

     Objc_draw( tree, ROOT, MAX_DEPTH, NULL );
                             
     push_outline();   		  
}
Esempio n. 6
0
/* DoCopy()
 * ================================================================
 */
void
DoCopy( char *fname )
{
   GRECT  area;
   int    flag;

   if( ad_tree == ad_copy )
       flag = TRUE;
   else
       flag = FALSE;
      
   ActiveTree( ad_copy );
   ObString( CFNAME ) = fname;

   if( !flag )
   {
      SetNewDialog( ad_copy );
      ObjcDraw( ad_copy, ROOT, MAX_DEPTH, NULL );
   }
   else
   {
      objc_xywh( ad_copy, CFNAME, &area );
      Do_Redraw( ad_copy, &area );
   }
}
Esempio n. 7
0
    int ObPermInfoKey::build_get_param(ObGetParam & get_param)
    {
      int ret = OB_SUCCESS;
      ObCellInfo cell_info;
      ObRowkey rowkey;
      ObObj rowkey_obj;
      ObVersionRange ver_range;
      int64_t pos = 0;
      if (NULL == buffer_)
      {
        buffer_ = reinterpret_cast<char*>(ob_malloc(BUF_SIZE, ObModIds::OB_PERM_INFO));
      }

      if (NULL != buffer_)
      {
        int64_t encode_pos = pos;
        ret = serialization::encode_i64(buffer_, BUF_SIZE, encode_pos, table_id_);
        if (OB_SUCCESS != ret)
        {
          TBSYS_LOG(ERROR, "encode failed table_id=%ld", table_id_);
        }
        else
        {
          memcpy(buffer_ + encode_pos, user_name_, length_);
          encode_pos += length_;
          rowkey_obj.set_varchar(
              ObString(0, static_cast<int32_t>(encode_pos - pos), buffer_ + pos));
          rowkey.assign(&rowkey_obj, 1);
          get_param.set_is_result_cached(true);
          cell_info.table_id_  = PERM_TABLE_ID;
          cell_info.row_key_   = rowkey;
          cell_info.column_id_ = PERM_COL_ID;
          ret = get_param.add_cell(cell_info);
          if (OB_SUCCESS != ret)
          {
            TBSYS_LOG(ERROR, "Get param add cell failed table_id[%lu]", cell_info.table_id_);
          }
          else
          {
            ver_range.start_version_ = 0;
            ver_range.end_version_   = INT64_MAX - 1;
            ver_range.border_flag_.set_inclusive_start();
            ver_range.border_flag_.set_inclusive_end();
            get_param.set_version_range(ver_range);
          }
        }
      }
      else
      {
        TBSYS_LOG(ERROR, "malloc key buffer failed");
        ret = OB_ERROR;
      }
      return ret;
    }
Esempio n. 8
0
    int ObSKeyInfoKey::build_get_param(ObGetParam& get_param)
    {
      int ret = OB_SUCCESS;
      ObCellInfo cell_info;
      ObRowkey rowkey;
      ObObj rowkey_obj;
      ObVersionRange ver_range;
      int64_t pos = 0;
      if (NULL == buffer_)
      {
        buffer_ = reinterpret_cast<char*>(ob_malloc(BUF_SIZE, ObModIds::OB_SKEY_INFO_KEY));
      }

      ret = serialization::encode_i64(buffer_, BUF_SIZE, pos, skey_version_);
      if (OB_SUCCESS != ret)
      {
        TBSYS_LOG(ERROR, "encode failed pkey_version=%ld", skey_version_);
      }
      else
      {
        rowkey_obj.set_varchar(ObString(0, static_cast<int32_t>(pos), buffer_));
        rowkey.assign(&rowkey_obj, 1);
        get_param.reset();
        get_param.set_is_result_cached(true);
        cell_info.table_id_  = SKEY_TABLE_ID;
        cell_info.row_key_   = rowkey;
        cell_info.column_id_ = SKEY_COL_ID;
        ret = get_param.add_cell(cell_info);
        if (OB_SUCCESS != ret)
        {
          TBSYS_LOG(ERROR, "Get param add cell failed table_id[%lu]", cell_info.table_id_);
        }
        else
        {
          ver_range.start_version_ = 0;
          ver_range.end_version_   = INT64_MAX - 1;
          ver_range.border_flag_.set_inclusive_start();
          ver_range.border_flag_.set_inclusive_end();
          get_param.set_version_range(ver_range);
        }
      }
      return ret;
    }
Esempio n. 9
0
/* SetPrinterMenu()
 * ================================================================
 */
void
SetPrinterMenu( void )
{
     int i;
     int obj;

     ActiveTree( ad_submenu );
     menu_icheck( ad_submenu, SNONE, 1 );

     for( i = 0; i < gl_num_printers; i++ )
     {
	obj = i + SNONE + 1;
	ObString( obj ) =  MenuNode[i + 1].mname;
     }

     for( i = SLAST; i > obj; i-- )
     {
	objc_delete( ad_submenu, i );
	ObH( ROOT ) -= gl_hchar;
     }
}
 TEST_F(TestObSingleLogReader, test_tmp)
 {
   ObFileReader file;
   ASSERT_EQ(file.open(ObString(5, 5, "ttttt"), true), OB_FILE_NOT_EXIST);
 }
Esempio n. 11
0
/* driver_handler()
 * ================================================================
 */
int
driver_handler( void )
{
    int   msg[8];
    int   button;
    int   done;
    GRECT clip;
    int   dummy;
    MENU  Menu;
    MENU  MData;
    GRECT rect;

    done = FALSE;
    do
    {
      button = xform_do( ad_tree, 0, msg );

      switch( button )
      {
	 case DSETUP:   done = TRUE;
			Deselect( DSETUP );
			break;

	 case DEXIT:    CheckExit();
			deselect( ad_tree, DEXIT );
			break;

	 case PMETA:
	 case PMETA2: 	gl_meta ^= 1;
			if( gl_meta )
			{
		          objc_xywh( ad_driver, PMETA2, &clip );
			  msg[3] = wid;
			  msg[4] = clip.g_x;
			  msg[5] = clip.g_y;
			  msg[6] = clip.g_w;
			  msg[7] = clip.g_h;
        		  driver_redraw( msg );
			}
			else
			  ObjcDraw( ad_driver, PMETA2, MAX_DEPTH, NULL );
		        evnt_button( 1, 1, 0, &dummy, &dummy, &dummy, &dummy );
			break;

	 case PMEM:
	 case PMEM2:	gl_mem ^= 1;
			if( gl_mem )
			{
		          objc_xywh( ad_driver, PMEM2, &clip );
			  msg[3] = wid;
			  msg[4] = clip.g_x;
			  msg[5] = clip.g_y;
			  msg[6] = clip.g_w;
			  msg[7] = clip.g_h;
        		  driver_redraw( msg );
			}
			else
			  ObjcDraw( ad_driver, PMEM2, MAX_DEPTH, NULL );
		        evnt_button( 1, 1, 0, &dummy, &dummy, &dummy, &dummy );
			break;

	 case PBUTTON:  select( ad_driver, PBUTTON );
		        evnt_button( 1, 1, 0, &dummy, &dummy, &dummy, &dummy );
			select( ad_driver, PTITLE );

			objc_xywh( ad_driver, PBUTTON, &rect );
			Menu.mn_tree   = ad_submenu;
			Menu.mn_menu   = ROOT;
			Menu.mn_item   = SNONE + gl_printer;
			Menu.mn_scroll = FALSE;	
			if( menu_popup( &Menu, rect.g_x, rect.g_y, &MData ))
			{
			   menu_icheck( ad_submenu, SNONE + gl_printer, 0 );
			   gl_printer = MData.mn_item - SNONE;
			   menu_icheck( ad_submenu, SNONE + gl_printer, 1 );
			   if( gl_printer )
			   {
		     	      ObString( PBUTTON ) = MenuNode[ gl_printer ].name;
			   }
			   else
			     ObString( PBUTTON ) = anone;
			}
			deselect( ad_driver, PTITLE );
			Deselect( PBUTTON );
			objc_xywh( ad_driver, PBUTTON, &rect );
			rect.g_x -= 1;
			rect.g_w += 2;
			ObjcDraw( ad_driver, PBUTTON, MAX_DEPTH, &rect );
			break;

	 default: if( button == NIL )
		  {
		     switch( msg[0] )
		     {
			case  WM_REDRAW: driver_redraw( msg );
					 break;

		        case  WM_CLOSED: return( FALSE );
					 break;

			case  CT_KEY:    if( msg[3] == K_F10 )
					   CheckExit();
					 break;
			default:
				 break;
		     }
		  }
		  break;
      }
    }while( !done );
    return( TRUE );
}
namespace meta_table_cname
{
  const ObString TID(0, static_cast<int32_t>(strlen(SCOL_TID)), SCOL_TID);
  const ObString TABLET_VERSION[OB_TABLET_MAX_REPLICA_COUNT] = 
  {
    ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[0])), SCOL_TABLET_VERSION[0]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[1])), SCOL_TABLET_VERSION[1]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[2])), SCOL_TABLET_VERSION[2]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[3])), SCOL_TABLET_VERSION[3]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[4])), SCOL_TABLET_VERSION[4]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_TABLET_VERSION[5])), SCOL_TABLET_VERSION[5]),
  };
  const ObString OCCUPY_SIZE[OB_TABLET_MAX_REPLICA_COUNT] =
  {
    ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[0])), SCOL_OCCUPY_SIZE[0]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[1])), SCOL_OCCUPY_SIZE[1]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[2])), SCOL_OCCUPY_SIZE[2]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[3])), SCOL_OCCUPY_SIZE[3]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[4])), SCOL_OCCUPY_SIZE[4]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_OCCUPY_SIZE[5])), SCOL_OCCUPY_SIZE[5]),
  };
  const ObString ROW_COUNT[OB_TABLET_MAX_REPLICA_COUNT] = 
  {
    ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[0])), SCOL_ROW_COUNT[0]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[1])), SCOL_ROW_COUNT[1]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[2])), SCOL_ROW_COUNT[2]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[3])), SCOL_ROW_COUNT[3]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[4])), SCOL_ROW_COUNT[4]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_ROW_COUNT[5])), SCOL_ROW_COUNT[5]),
  };
  const ObString PORT[OB_TABLET_MAX_REPLICA_COUNT] = 
  {
    ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[0])), SCOL_PORT[0]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[1])), SCOL_PORT[1]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[2])), SCOL_PORT[2]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[3])), SCOL_PORT[3]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[4])), SCOL_PORT[4]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_PORT[5])), SCOL_PORT[5]),
  };
  const ObString IPV4[OB_TABLET_MAX_REPLICA_COUNT] = 
  {
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[0])), SCOL_IPV4[0]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[1])), SCOL_IPV4[1]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[2])), SCOL_IPV4[2]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[3])), SCOL_IPV4[3]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[4])), SCOL_IPV4[4]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV4[5])), SCOL_IPV4[5]),
  };
  const ObString IPV6_HIGH[OB_TABLET_MAX_REPLICA_COUNT] = 
  {
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[0])), SCOL_IPV6_HIGH[0]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[1])), SCOL_IPV6_HIGH[1]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[2])), SCOL_IPV6_HIGH[2]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[3])), SCOL_IPV6_HIGH[3]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[4])), SCOL_IPV6_HIGH[4]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_HIGH[5])), SCOL_IPV6_HIGH[5]),
  };
  const ObString IPV6_LOW[OB_TABLET_MAX_REPLICA_COUNT] = 
  {
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[0])), SCOL_IPV6_LOW[0]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[1])), SCOL_IPV6_LOW[1]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[2])), SCOL_IPV6_LOW[2]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[3])), SCOL_IPV6_LOW[3]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[4])), SCOL_IPV6_LOW[4]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_IPV6_LOW[5])), SCOL_IPV6_LOW[5]),
  };
  const ObString CHECKSUM[OB_TABLET_MAX_REPLICA_COUNT] = 
  {
    ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[0])), SCOL_CHECKSUM[0]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[1])), SCOL_CHECKSUM[1]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[2])), SCOL_CHECKSUM[2]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[3])), SCOL_CHECKSUM[3]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[4])), SCOL_CHECKSUM[4]),
    ObString(0, static_cast<int32_t>(strlen(SCOL_CHECKSUM[5])), SCOL_CHECKSUM[5]),
  };
  const ObString STARTKEY_OBJ_PREFIX(0, static_cast<int32_t>(strlen(SCOL_STARTKEY_OBJ_PREFIX)), SCOL_STARTKEY_OBJ_PREFIX);
  const ObString ENDKEY_OBJ_PREFIX(0, static_cast<int32_t>(strlen(SCOL_ENDKEY_OBJ_PREFIX)), SCOL_ENDKEY_OBJ_PREFIX);
} // end namespace meta_table_columns_name
Esempio n. 13
0
/* Outline_Buttons()
 * ====================================================================
 * Handle the button events for the outline font dialog.
 */
int
Outline_Buttons( int button, WORD *msg )
{
  int quit = FALSE;
  int out;
  long i;
  MRETS mk;

  if( ( button != -1 ) && ( button & 0x8000 ) )
      button &= 0x7FFF;      
  
  switch( button )
  {
     case OCANCEL:pop_outline();	/* restore */
     		   
     case OEXIT:  Deselect( button );
		  if( OEXIT == button )
		  {
		     /* Read in ONLY if new directory path */
		     if( strcmp( Current.FontPath, Backup.FontPath ) )
		     {
		       MF_Save();
		       push_outline();
		       Scan_Message( ad_scan, TRUE );
		       read_fonts( 1 );
		       Scan_Message( ad_scan, FALSE );
		       pop_outline();
		       MF_Restore();
		     }  
		  }
		  Return_To_Maintree( Maintree );
     		  break;

     case SETCACHE: deselect( tree, SETCACHE );
     		    Do_Cache_Size();
     		    break;

     case DEFPOINT: Deselect( button );
     		    Do_Point_Sizes( 0, DEFAULT_POINTS );
		    break;
     
     case FSMLEFT:  select( tree, FSMLEFT );
     		    do
     		    {
     		       Graf_mkstate( &mk );
     		       if( dircount )
     		       {
     		         dircount--;
     		         strncpy( view_path, &dirpath[ dircount ], min( DIR_MAX, dirsize - dircount ) );
     		         if( dircount )
     		       	   view_path[0] = 0xAE;
     		         if((dirsize - dircount ) > DIR_MAX )
     		       	   view_path[ DIR_MAX - 1 ] = 0xAF;
     		         TedText( FSMPATH ) = view_path;
     		         Objc_draw( tree, FSMPATH, MAX_DEPTH, NULL );
     		       }  
     		    }while( mk.buttons );
     		    deselect( tree, FSMLEFT );
     		    break;
     		    
     case FSMRIGHT: select( tree, FSMRIGHT );
     		    do
     		    {
     		       Graf_mkstate( &mk );
  		       if( ( dirsize > DIR_MAX ) && ((dircount + DIR_MAX ) < dirsize ))
  		       {
  		          dircount++;
  		          strncpy( view_path, &dirpath[ dircount], min( DIR_MAX, dirsize - dircount) );
  		          view_path[0] = 0xAE;
  		          if( (dirsize - dircount) > DIR_MAX )
  		          	view_path[ DIR_MAX - 1 ] = 0xAF;
  		          TedText( FSMPATH ) = view_path;
  		          Objc_draw( tree, FSMPATH, MAX_DEPTH, NULL );
  		       }	   		    
     		    }while( mk.buttons );
     		    deselect( tree, FSMRIGHT );
     		    break;
     		    
     case FSMPATH:  wait_up();
    		    strcpy( newpath, dirpath );
    		    for( i = strlen( newpath ); i && ( newpath[i] != '\\'); newpath[ i-- ] = '\0' );
     		    out = fsel_name( FALSE, newpath, "*.QFM", title_fsmpath );
     		    if( ( ( out == A_OK ) || ( out == A_CANCEL )) && ( newpath[0] != '\0' ) )
     		    {
	     	         for( i = strlen( newpath ); i && ( newpath[i] != '\\'); newpath[ i-- ] = '\0' );
	     	         
  		         strcpy( dirpath, newpath );
  		         
  		         newpath[i] = '\0';	/* Get rid of the '\\' */
  		         strcpy( Current.FontPath, newpath );
  		         
  		         strcat( dirpath, "*.QFM" );
  		         dirsize = (int)strlen( &dirpath[0] );
  		         strcpy( view_path, underbar );
  		         strncpy( view_path, dirpath, min( DIR_MAX, dirsize) );
  		         dircount = 0;
  		         if( dirsize > DIR_MAX )
  		            view_path[ DIR_MAX - 1 ] = 0xAF;
		         TedText( FSMPATH ) = view_path;
		         Objc_draw( tree, FSMPATH, MAX_DEPTH, NULL );
                         Change_Flag = TRUE;
		    }
		    break;
		    
     case WIDTHFLG: Current.Width ^= TRUE;
    		    deselect( tree, button ); 
		    ObString( WIDTHFLG ) = width_text[ Current.Width ];
    		    Objc_draw( tree, WIDTHFLG, MAX_DEPTH, NULL );
                    Change_Flag = TRUE;
                    CacheCheck( 0 );
     		    break;
  
     		    
     case SYMFLAG:  Current.SymbolFlag ^= TRUE;
                    if( SetSymbols( &Current.SymbolFlag, SYMTEXT, SYMTITLE, Current.SymbolFont, title_symbol, TRUE ) )
			SymHebFontChange();
   		    deselect( tree, SYMFLAG );
                    Change_Flag = TRUE;
		    break;
		         
     case HEBFLAG:  Current.HebrewFlag ^= TRUE;
		    if( SetSymbols( &Current.HebrewFlag, HEBTEXT, HEBTITLE, Current.HebrewFont, title_hebrew, TRUE ))
			SymHebFontChange();
    		    deselect( tree, HEBFLAG );
                    Change_Flag = TRUE;
     		    break;     	 	              

     case SYMTEXT:  if( SymButton( Current.SymbolFont, SYMTITLE, SYMTEXT, title_symbol, &Current.SymbolFlag ) )
			SymHebFontChange();
     		    break;

     case HEBTEXT:  if( SymButton( Current.HebrewFont, HEBTITLE, HEBTEXT, title_hebrew, &Current.HebrewFlag ) )
			SymHebFontChange();
     		    break;

     default:	if( button == -1 )
     		{
     		   switch( msg[0] )
     		   {
     		     case WM_REDRAW: 
     		     		     break;
     			     		     
     		     case AC_CLOSE:  quit = TRUE;
     		     		     break;
     				     		     
     		     case WM_CLOSED: quit = TRUE;
				     do_write_extend( FALSE );
				     break;
		 
		     case CT_KEY: 
		     		     break;		     
     		     default:
     		     		break;
     		   }
     		}
     		break;

  }
  return( quit );
}
Esempio n. 14
0
/*
 * Initialize CPX
 */
CPXINFO * cdecl
cpx_init( XCPB *Xcpb )
{
    OBJECT *tree;
    xcpb = Xcpb;

    ma_installed = xcpb->getcookie( COOKIE, (long *)(&ma_info) );

    if( xcpb->booting )
    {
	Supexec( (long(*)())get_ptime );
      /* Read in defaults and set the options */
	if( ma_installed )
	    set_info( ma_info, &save_info );
    }
    else
    {
      if( !xcpb->SkipRshFix )
      {
           xcpb->rsh_fix( NUM_OBS, NUM_FRSTR, NUM_FRIMG, NUM_TREE, rs_object,
			  rs_tedinfo, rs_strings, rs_iconblk, rs_bitblk,
			  rs_frstr, rs_frimg, rs_trindex, rs_imdope );
           tree = (OBJECT *)rs_trindex[MACCEL];
	   switch (xcpb->Country_Code) {
	   case CP_FRG:
		ObString(OK) = (char *)rs_frstr[FRGOK];
                ObString(CANCEL) = (char *)rs_frstr[FRGCAN];
                ObString(SAVE) = (char *)rs_frstr[FRGSAVE];
		alertbox = (char *)rs_frstr[FRGLOAD];
	   break;
	   case CP_FRA:
		ObString(OK) = (char *)rs_frstr[FRAOK];
                ObString(CANCEL) = (char *)rs_frstr[FRACAN];
                ObString(SAVE) = (char *)rs_frstr[FRASAVE];
		alertbox = (char *)rs_frstr[FRALOAD];
	   break;
           case CP_SPA:
		ObString(OK) = (char *)rs_frstr[SPAOK];
                ObString(CANCEL) = (char *)rs_frstr[SPACAN];
                ObString(SAVE) = (char *)rs_frstr[SPASAVE];
		alertbox = (char *)rs_frstr[SPALOAD];
	   break;
           case CP_ITA:
		ObString(OK) = (char *)rs_frstr[ITAOK];
                ObString(CANCEL) = (char *)rs_frstr[ITACAN];
                ObString(SAVE) = (char *)rs_frstr[ITASAVE];
		alertbox = (char *)rs_frstr[ITALOAD];
	   break;
           case CP_SWE:
		ObString(OK) = (char *)rs_frstr[SWEOK];
                ObString(CANCEL) = (char *)rs_frstr[SWECAN];
                ObString(SAVE) = (char *)rs_frstr[SWESAVE];
		alertbox = (char *)rs_frstr[SWELOAD];
	   break;
	   default:
	   	alertbox = (char *)rs_frstr[NOLOAD];
	   }
      }
      cpxinfo.cpx_call   = cpx_call;
      cpxinfo.cpx_draw   = NULL;
      cpxinfo.cpx_wmove  = NULL;
      cpxinfo.cpx_timer  = NULL;
      cpxinfo.cpx_key    = NULL;
      cpxinfo.cpx_button = NULL;
      cpxinfo.cpx_m1 	 = NULL;
      cpxinfo.cpx_m2	 = NULL;
      cpxinfo.cpx_hook   = NULL;
      cpxinfo.cpx_close  = NULL;
    }

    return &cpxinfo;
}
Esempio n. 15
0
/* show configuration dial, return 1 to cancel installation */
int
configure( void )
{
    OBJECT *tree = rs_object;
    int quit = 0;
    int x, y, w, h, ox, oy;
    MRETS mk;
    int savelinear, saveudset, savetime, saveptime;

    if( ma_info == &start ) /* ma_info points at our start */
	ObString(OK) = (char *)(rs_frstr[INSTRING]);

/* set accel buttons */
    savelinear = ma_info->linear;
    set_accelbox( savelinear );
/* set screensave buttons */
    saveudset = ma_info->udset;
    set_screenbox( saveudset );
    savetime = (ma_info->timeout)/3600;
    sl_x( SAVEBOX, savetime, SAVE_MIN, SAVE_MAX );
    /* set modem switch */
    if( ma_info->watch ) {
	Select(MODEM);
    } else {
	Deselect(MODEM);
    }
/* set stacy options box */
    if( ma_info->stacy ) {
	ObFlags( SWITCH ) = ObFlags( LITE ) = TOUCHEXIT;
    	if( ma_info->stacmask & SH_SCREEN ) Select( SWITCH );
    	if( ma_info->stacmask & SH_LIGHT ) Select( LITE );
    } else {
	ObFlags(SWITCH) = ObFlags(LITE) = NONE;
	ObState(SWITCH) = ObState(LITE) = DISABLED; /* deselects */
    }

/* set up park box */
    Supexec((long(*)())get_parktime);
    if( parktime >= 0 ) parktime = ma_info->savepark;
    saveptime = parktime;
    if( saveptime == 0 ) saveptime = 1;
    set_parkbox();
    if( parktime >= 0 )
    	sl_x( PARKBOX, parktime, PARK_MIN, PARK_MAX );
    	

/* set appropriate icons */
    graf_handle( &x, &y, &w, &h );
    if( y < 16 ) {
    /* if char cell is < 16 pixels high, use 8 pixel icons */
	ObSpec(IACCOFF).bitblk = (BITBLK *)(rs_frimg[ACCOFF8]);
	ObSpec(IACCSLOW).bitblk = (BITBLK *)(rs_frimg[ACCSLOW8]);
	ObSpec(IACCFAST).bitblk = (BITBLK *)(rs_frimg[ACCFAST8]);
	ObSpec(ISCREEN).bitblk = (BITBLK *)(rs_frimg[SCREEN8]);
	ObSpec(SAVEUP).bitblk = (BITBLK *)(rs_frimg[TIMEHI8]);
	ObSpec(SAVEDOWN).bitblk = (BITBLK *)(rs_frimg[TIMELO8]);
	ObSpec(IMODEM).bitblk = (BITBLK *)(rs_frimg[MODEM8]);
	ObSpec(IPARK).bitblk = (BITBLK *)(rs_frimg[PARK8]);
	ObSpec(PARKUP).bitblk = (BITBLK *)(rs_frimg[TIMEHI8]);
	ObSpec(PARKDOWN).bitblk = (BITBLK *)(rs_frimg[TIMELO8]);
	ObSpec(ILITE).bitblk = (BITBLK *)(rs_frimg[LITE8]);
	ObSpec(ISWITCH).bitblk = (BITBLK *)(rs_frimg[SCREEN8]);
    }

    form_center( rs_object, &x, &y, &w, &h );
    form_dial( FMD_START, 0, 0, 0, 0, x, y, w, h );
    form_dial( FMD_GROW, 0, 0, 0, 0, x, y, w, h );
    objc_draw( tree, 0, MAX_DEPTH, x, y, w, h );
    graf_mouse( ARROW, 0L );
    do {
	switch( form_do( rs_object, 0 ) & 0x7fff ) {
	case LITE:
	    if( IsSelected(LITE) ) { /* deselecting */
	    /* don't allow user to select screensave without litesave */
	    	Deselect(SWITCH);
	    	Deselect(LITE);
	    } else {
	    	Select(LITE);
	    }
	    Objc_draw( tree, STACOPTS, MAX_DEPTH, NULL );
	    break;
	case SWITCH:
	    if( IsSelected(SWITCH) ) { /* deselecting */
	    	Deselect(SWITCH);
	    } else {
	    /* don't allow user to select screensave without litesave */
		Select(LITE);
		Select(SWITCH);
	    }
	    Objc_draw( tree, STACOPTS, MAX_DEPTH, NULL );
	    break;
	case SCREEN:
	/* floggle the bit */
	    ma_info->udset ^= 1;
	    ma_info->updown = ma_info->udset;
	    set_screenbox( ma_info->udset );
	    Objc_draw( tree, SCRNSECT, MAX_DEPTH, NULL);
	    break;
	case ACCOFF:
	    ma_info->linear = -1;
	    break;
	case ACCSLOW:
	    ma_info->linear = 1;
	    break;
	case ACCFAST:
	    ma_info->linear = 0;
	    break;
	case SAVEUP:
	    sl_arrow( SAVEBOX, SAVEUP, 1, SAVE_MIN, SAVE_MAX, &savetime );
	    break;
	case SAVEDOWN:
	    sl_arrow( SAVEBOX, SAVEDOWN, -1, SAVE_MIN, SAVE_MAX, &savetime );
	    break;
	case SAVESLID:
	    sl_drag( SAVEBOX, SAVE_MIN, SAVE_MAX, &savetime );
	    break;
	case SAVEBOX:
    	    Graf_mkstate( &mk );
    	    objc_offset( tree, SAVESLID, &ox, &oy );
    	    if( mk.x < ox )
    	    	oy = -SAVE_PAGE;
    	    else
    	        oy = SAVE_PAGE;
	    sl_arrow( SAVEBOX, -1, oy, SAVE_MIN, SAVE_MAX, &savetime );
	    break;
	case PARK:
	    if( IsSelected( PARK ) ) { /* deselecting */
		saveptime = parktime;
	    	parktime = 0;
	    } else {
	    	parktime = saveptime;
		sl_x( PARKBOX, parktime, PARK_MIN, PARK_MAX );
	    }
	    set_parkbox();
	    Objc_draw( tree, PARKSECT, MAX_DEPTH, NULL );
	    break;
	case PARKUP:
	    sl_arrow( PARKBOX, PARKUP, 1, PARK_MIN, PARK_MAX, &parktime );
	    break;
	case PARKDOWN:
	    sl_arrow( PARKBOX, PARKDOWN, -1, PARK_MIN, PARK_MAX, &parktime );
	    break;
	case PARKSLID:
	    sl_drag( PARKBOX, PARK_MIN, PARK_MAX, &parktime );
	    break;
	case PARKBOX:
    	    Graf_mkstate( &mk );
    	    objc_offset( tree, PARKSLID, &ox, &oy );
    	    if( mk.x < ox )
    	    	oy = -PARK_PAGE;
    	    else
    	        oy = PARK_PAGE;
	    sl_arrow( PARKBOX, -1, oy, PARK_MIN, PARK_MAX, &parktime );
	    break;
	case SAVE:
	    save_conf( savetime );
	    rs_object[SAVE].ob_state = NORMAL;
	    Objc_draw( tree, ROOT, MAX_DEPTH, NULL );
	    break;
	case OK:
	    quit = OK;
	    break;
	case CANCEL:
	    quit = CANCEL;
	    break;
	}
	/* delay after touchexit objects */
	wait_bup();
    } while (!quit);


    form_dial( FMD_SHRINK, 0, 0, 0, 0, x, y, w, h );
    form_dial( FMD_FINISH, 0, 0, 0, 0, x, y, w, h );

    if( quit == CANCEL ) {
	ma_info->updown = ma_info->udset = saveudset;
	ma_info->linear = savelinear;
    } else {
    	if( IsSelected(MODEM) ) ma_info->watch = 1;
    	else ma_info->watch = 0;
	if( ma_info->stacy ) {
	    if( IsSelected(SWITCH) ) {
		ma_info->stacmask |= SH_SCREEN;
	    } else {
		ma_info->stacmask &= ~SH_SCREEN;
	    }
	    if( IsSelected(LITE) ) {
		ma_info->stacmask |= SH_LIGHT;
	    } else {
		ma_info->stacmask &= ~SH_LIGHT;
	    }
	}
 
	ma_info->timeout = savetime * 3600;
	ma_info->savepark = parktime;
	Supexec((long(*)())set_ptime);
    }
    return (quit == CANCEL);
}
Esempio n. 16
0
/* MAIN()
 * ================================================================
 */
VOID
main( VOID )
{
	WORD    button;
	BOOLEAN done;
	OBJECT  *tree;
       

	appl_init();

	phys_handle = graf_handle( &gl_wchar, &gl_hchar, &gl_wbox, &gl_hbox );

	open_vwork();
	
        graf_mouse( ARROW, 0L );
        
        rsrc_load( "DEMO.RSC" );

        rsrc_gaddr( 0, MENUBAR, &ad_menubar );
        rsrc_gaddr( 0, ATREE, &ad_tree );
	rsrc_gaddr( 0, FONTTREE, &ad_fonts );
	rsrc_gaddr( 0, STREE, &ad_style );
	rsrc_gaddr( 0, POSTREE, &ad_position );
	rsrc_gaddr( 0, CTREE, &ad_color );
        rsrc_gaddr( 0, PTREE, &ad_pattern );
	rsrc_gaddr( 0, MTREE, &ad_modem );

	rsrc_gaddr( 0, BAUDRATE, &ad_baudrate );
	rsrc_gaddr( 0, PARTREE, &ad_parity );
	rsrc_gaddr( 0, BITTREE, &ad_bittree );
	rsrc_gaddr( 0, STOPTREE, &ad_stoptree );
	rsrc_gaddr( 0, PORTTREE, &ad_porttree );
	rsrc_gaddr( 0, FLOWTREE, &ad_flowtree );

	rsrc_gaddr( 0, LTREE, &ad_list );
	rsrc_gaddr( 0, TOOLBOX, &ad_tools );
	rsrc_gaddr( 0, BLANK, &ad_blank );
	rsrc_gaddr( 0, TOOLBOX2, &ad_box2 );
	rsrc_gaddr( 0, TOOLBAR, &ad_box3 );

	rsrc_gaddr( 0, FONT2, &ad_font2 );


	/* Attach all Submenus that are being attached */
	AttachMenus();


	/* CheckMark the Current Menu Items in their respective menus */
	menu_icheck( ad_baudrate, CurBaudRate, 1 );
	menu_icheck( ad_parity, CurParity, 1 );
	menu_icheck( ad_bittree, CurBits, 1 );
	menu_icheck( ad_stoptree, CurStopBits, 1 );
	menu_icheck( ad_porttree, CurPort, 1 );
	menu_icheck( ad_flowtree, CurFlow, 1 );

	menu_icheck( ad_style, CurStyle, 1 );
	menu_icheck( ad_position, CurPos, 1 );
	menu_icheck( ad_fonts, CurFonts, 1 );
	menu_icheck( ad_font2, CurFont2, 1 );

        /* display menubar stuff here */
        menu_bar( ad_menubar, TRUE );

	/* initialize windows */
        wind_get( 0, WF_FULLXYWH, &desk.g_x, &desk.g_y, &desk.g_w, &desk.g_h );
	cur_tree = ad_tools;
	menu_flag = TRUE;			/* Set Toggle Flags */
	SubFlag   = TRUE;
	ToolFlag  = TRUE;

	CurRect.g_x = desk.g_x;
	CurRect.g_y = desk.g_y;
	CurRect.g_w = 320;
	CurRect.g_h = 200;

	InitObjects();

	InitWindow();
	menu_ienable( ad_menubar, FOPEN, 0 );
	menu_ienable( ad_menubar, FCLOSE, 1 );



        done = FALSE;
	do
	{

	    evnt_mesag( msg );
	    
	    wind_update( BEG_UPDATE );

	    if( msg[0] == MN_SELECTED )
	    {
		/* msg[7] is the parent of FQUIT - which the user can't know */
		ptr = ( OBJECT **)&msg[5];
	if( *ptr == ad_menubar )
		{
		   switch( msg[4] )
		   {
		      case FQUIT:
				  button = form_alert( 1, "[1][ |  EXIT PROGRAM? ][OK|Cancel]");
				  if( button == 1 )
		 		      done = TRUE;
		       		  break;

		      case ABOUTX: execform( ad_tree, 0 );
				   break;

		      case PHONE: do_modem();
				  break;

		      case TABOUT: /* Enable, Disable About PLUS change TEXT */
				   menu_flag ^= 1;
				   menu_ienable( ad_menubar, ABOUTX, menu_flag );
				   menu_text( ad_menubar, TABOUT, TextAbout[ menu_flag ] );

				  if( menu_flag )
				    menu_text( ad_menubar, ABOUTX, "  About Demo...     " );
				  else
				    menu_text( ad_menubar, ABOUTX, "  Disabled...       " );
				  break;

		       case TSUB: /* Enable/Disable all Submenus */
				  SubFlag ^= 1;
				  menu_text( ad_menubar, TSUB, TextSubMenu[ SubFlag ] );
				  if( SubFlag )
				    AttachMenus();
				  else
				    DetachMenus();
				  break;

		       case SLISTS: DoList();			/* Do A Drop Down List Dialog */
				    break;

		       case TOOLFLAG: /* Enable/Disable ToolBox */
				      ToolFlag ^= 1;
				      menu_text( ad_menubar, TOOLFLAG, TextToolBox[ ToolFlag ] );
				      if( ToolFlag )
				      {
					*( (LONG *)&tree_data[0] ) = ( LONG )cur_tree;
					wind_set( wid, WF_TOOLBAR, tree_data[0], tree_data[1], dummy, dummy );
				      }
				      else
					wind_set( wid, WF_TOOLBAR, 0, 0, dummy, dummy );
				      break;

		        case SWITCH: /* Switch ToolBoxes */
					if( cur_tree == ad_tools )
					   cur_tree = ad_box2;
					else if( cur_tree == ad_box2 ) {
					         cur_tree = ad_box3;

					         ActiveTree( ad_fonts );
      						 textptr = ObString( CurFonts );
						 strncpy( &tbuff[0], &textptr[1], 28 );

      						 ActiveTree( ad_box3 );
      						 TedText( FBUTT1 ) = &tbuff[0];
					     }
					     else
					       cur_tree = ad_tools;
					*( (LONG *)&tree_data[0] ) = ( LONG )cur_tree;
					ToolFlag = TRUE;
	  	    		        menu_text( ad_menubar, TOOLFLAG, TextToolBox[ ToolFlag ] );
					wind_set( wid, WF_TOOLBAR, tree_data[0], tree_data[1], dummy, dummy );
				     break;

			case FCLOSE: /* close Window */
				     if( wid ) {
					wind_get( wid, WF_CURRXYWH,
						  &CurRect.g_x, &CurRect.g_y,
						  &CurRect.g_w, &CurRect.g_h );
			                wind_close( wid );
			                wind_delete( wid );
			                wid = 0;
					menu_ienable( ad_menubar, FCLOSE, 0 );
					menu_ienable( ad_menubar, FOPEN, 1 );
				     }
				     break;

			case FOPEN:  /* open Window */
				     if( !wid ) {
					InitWindow();
					menu_ienable( ad_menubar, FOPEN, 0 );
					menu_ienable( ad_menubar, FCLOSE, 1 );
				     }				 
				     break;

		      default:
				   break;
		   }
		}

		
		/* MENU SELECTED -> Font Style Menu Clicked on as a SUBMENU from the Menubar*/
		if( *ptr == ad_style )
		{
		   menu_icheck( ad_style, CurStyle, 0 );	/* Turn OFF Old Checkmark */
		   menu_icheck( ad_style, msg[4], 1 );		/* Turn ON New CheckMark  */
		   CurStyle = msg[4];				/* Update Current Var     */
		   menu_istart( 1, ad_style, ROOT, CurStyle );	/* Reset Starting Position*/
		}


		/* MENU SELECTED -> Font Position Clicked on as a SUBMENU from the menubar */
		if( *ptr == ad_position )
		{
		   menu_icheck( ad_position, CurPos, 0 );
		   menu_icheck( ad_position, msg[4], 1 );
		   CurPos = msg[4];
		   menu_istart( 1, ad_position, ROOT, CurPos );
		}


		/* MENU SELECTED -> Fonts Menu Clicked on as a SUBMENU from the menubar */
		if( *ptr == ad_fonts )
		{
		   menu_icheck( ad_fonts, CurFonts, 0 );
		   menu_icheck( ad_fonts, msg[4], 1 );
		   CurFonts = msg[4];
		   menu_istart( 1, ad_fonts, ROOT, CurFonts );
		}

		menu_tnormal( ad_menubar, msg[3], TRUE );
            }

	    if( msg[0] != MN_SELECTED ) {
		switch( msg[0] ) {
		   case WM_FULLED:
			DoFull( msg[3] );
			break;

		   case WM_REDRAW:
			 DoRedraw( msg );
			 break;

		   case WM_ARROWED:
		   case WM_HSLID:
		   case WM_VSLID:
			 break;

		   case WM_MOVED:
			 if( msg[3] == wid ) {
			    wind_set( wid, WF_CURRXYWH, msg[4],
				      msg[5], msg[6], msg[7] );
			 }
			 break;

		   case WM_TOPPED:
			 if( msg[3] == wid ) {
			    wind_set( wid, WF_TOP );
			 }
			 break;

		   case WM_CLOSED:
			 if( msg[3] == wid ) {
			    wind_get( wid, WF_CURRXYWH,
				      &CurRect.g_x, &CurRect.g_y,
				      &CurRect.g_w, &CurRect.g_h );

			    wind_close( wid );
			    wind_delete( wid );
			    wid = 0;
			    menu_ienable( ad_menubar, FCLOSE, 0 );
			    menu_ienable( ad_menubar, FOPEN, 1 );
			 }
			 break;

		   case WM_SIZED:
			DoSizer( msg );
			break;

		   case WM_TOOLBAR:
			if( msg[3] == wid ) {
			      /* Button Handling for ToolBox #1 */
			      if( cur_tree == ad_tools ) {
			        switch( msg[4] ) {
			           case T1B1:  button = B1B1;
				        break;
			           case T1B2:  button = B1B2;
				        break;
			           case T1B3:  button = B1B3;
				        break;
			           case T1B4:  button = B1B4;
				        break;
			           case T1B5:  button = B1B5;
				        break;
				}
			      }

			      /* Button Handling for TOOLBOX 2 */
			      if( cur_tree == ad_box2 ) {
			        switch( msg[4] ) {
			           case T2I1:  button = T2B1;
				        break;
			           case T2I2:  button = T2B2;
				        break;
			           case T2I3:  button = T2B3;
				        break;
			           case T2I4:  button = T2B4;
				        break;
			           case T2I5:  button = T2B5;
				        break;
				}
			      }

			      /* Word Processing Tree */
			      if( cur_tree == ad_box3 ) {
				switch( msg[4] ) {
				   case FBUTT1:
				   case FBUTT2: DoFonts();
						break;

				   default:
					    break;
				}
			      }



			   if( cur_tree != ad_box3 ) {
			     if( cur_tree[ button ].ob_state & SELECTED )
			       cur_tree[ button ].ob_state &= ~SELECTED;
			     else
			       cur_tree[ button ].ob_state |= SELECTED;

			     objc_offset( cur_tree, button, &r.g_x, &r.g_y );
			     r.g_x -= 2;
			     r.g_y -= 2;
			     r.g_w = cur_tree[ button ].ob_width + 4;
			     r.g_h = cur_tree[ button ].ob_height + 4;
			     do_redraw( cur_tree, button, &r );
			   }

			}  /* end of msg[3] == wid */
			break;

			case WM_ICONIFY:
			     if( msg[3] == wid )
			       wind_set( msg[3], WF_ICONIFY, msg[4], msg[5], msg[6], msg[7] );
			     break;

			case WM_UNICONIFY:
			     if( msg[3] == wid )
			       wind_set( msg[3], WF_UNICONIFY, msg[4], msg[5], msg[6], msg[7] );
			     break;

		   default:
			break;
		}  /* end of switch */
	    }
	    wind_update( END_UPDATE );
	    	    
	}while( !done );
	if( wid > 0 )
	   wind_delete( wid );

        menu_bar( ad_menubar, FALSE );
	
	graf_mouse( ARROW, 0L );	
	
        rsrc_free();

       	close_vwork();
	appl_exit();
}