/**************************************************************
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 *************************************************************/


#define TTSTART				12345

#define DisplayHidToolBox	( TTSTART + 0 )
#define TT_SHOW				1
#define TT_SHOW2			( TTSTART + 1 )
#define TT_OUTPUT			3
#define TT_SEND_DATA		4
#define TT_ALLWIN			5
#define TT_KURZNAME			6
#define TT_LANGNAME			7
#define TT_ALTERNATE_CAPTION ( TTSTART + 2 )

#define TT_INLINE_TRANSLATION ( TTSTART + 3)
#define TT_GB_TRANSLATION	1
#define TT_E_NEW			2
#define TT_FT_OLD			3
#define TT_GB_COMMENT		4
#define TT_E_COMMENT		5

#define TT_PB_SELECT		6
#define TT_PB_RESTORE		7
#define TT_PB_ACCEPT		8
#define TT_PB_NEXT			9

#define TT_DISCARD_CHANGED_DATA ( TTSTART + 4 )
#define TT_NO_CONTROL		( TTSTART + 5 )


#define TT_GPF				( TTSTART + 6 )
