cdesktopenv/cde/programs/dticon/dtIconShell.c

2503 lines
83 KiB
C

/*
* CDE - Common Desktop Environment
*
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/* $XConsortium: dtIconShell.c /main/5 1996/10/21 15:27:41 mgreess $ */
/*********************************************************************
* (c) Copyright 1993, 1994 Hewlett-Packard Company
* (c) Copyright 1993, 1994 International Business Machines Corp.
* (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
* (c) Copyright 1993, 1994 Unix System Labs, Inc., a subsidiary of
* Novell, Inc.
**********************************************************************/
/*******************************************************************************
dtIconShell.c
*******************************************************************************/
#include <stdio.h>
#include <Xm/Xm.h>
#include <Xm/MenuShell.h>
#include <Xm/CascadeB.h>
#include <Xm/SeparatoG.h>
#include <Xm/Label.h>
#include <Xm/CascadeBG.h>
#include <Xm/PushBG.h>
#include <Xm/DrawingA.h>
#include <Xm/ScrolledW.h>
#include <Xm/ToggleBG.h>
#include <Xm/ToggleB.h>
#include <Xm/RowColumn.h>
#include <Xm/Frame.h>
#include <Xm/LabelG.h>
#include <Xm/DrawnB.h>
#include <Xm/Form.h>
#include <Xm/MainW.h>
#include <X11/Shell.h>
#include <Dt/TitleBox.h>
#define PIXMAP_HEIGHT 48
#define PIXMAP_WIDTH 48
#define COLOR_BUTTON_SIZE 30
#define VIEWPORT_INITIAL_HEIGHT 290
/*******************************************************************************
Includes, Defines, and Global variables from the Declarations Editor:
*******************************************************************************/
void ProcessTabletEvent(
Widget w,
XEvent *xptr,
String *params,
Cardinal num_params ); // event.c
#include "externals.h"
#include "main.h"
#include "utils.h"
#include "process.h"
#define RES_CONVERT( res_name, res_value) \
XtVaTypedArg, (res_name), XmRString, (res_value), strlen(res_value) + 1
static Widget instructionText;
extern Widget coordinateText;
static Widget cmdButtonForm;
static Widget cmdButtonMgr;
static Widget cmdForm;
static Widget rotateMenu_pb1;
static Widget rotateMenu_pb2;
static Widget flipMenu_pb1;
static Widget flipMenu_pb2;
Widget staticColorsBox;
Widget symbolicColorsBox;
Widget staticGreysBox;
Widget dtIconShell;
Widget mainWindow;
Widget mainForm;
Widget iconForm;
Widget iconImage;
Widget iconSize;
Widget monoImage;
Widget monoLabel;
Widget pointButton;
Widget lineButton;
Widget rectangleButton;
Widget circleButton;
Widget eraseButton;
Widget floodButton;
Widget polylineButton;
Widget polygonButton;
Widget ellipseButton;
Widget selectButton;
Widget fillToggle;
Widget stdColorPens;
Widget color_pb1;
Widget color_pb2;
Widget color_pb3;
Widget color_pb4;
Widget color_pb5;
Widget color_pb6;
Widget color_pb7;
Widget color_pb8;
Widget stdGreyPens;
Widget grey_pb1;
Widget grey_pb2;
Widget grey_pb3;
Widget grey_pb4;
Widget grey_pb5;
Widget grey_pb6;
Widget grey_pb7;
Widget grey_pb8;
Widget symbolicColorPens;
Widget fgColorToggle;
Widget bgColorToggle;
Widget tsColorToggle;
Widget bsColorToggle;
Widget selectColorToggle;
Widget transparentColorToggle;
Widget viewport;
Widget tabletBorder;
Widget tabletFrame;
Widget tablet;
Widget menu1;
Widget fileMenu;
Widget fileMenu_new_pb;
Widget fileMenu_open_pb;
Widget fileMenu_save_pb;
Widget fileMenu_saveAs_pb;
Widget fileMenu_quit_pb;
Widget fileMenu_top_pb;
Widget editMenu;
Widget editMenu_undo_pb;
Widget editMenu_cut_pb;
Widget editMenu_copy_pb;
Widget editMenu_paste_pb;
Widget rotateMenu;
Widget editMenu_rotate_pb;
Widget flipMenu;
Widget editMenu_flip_pb;
Widget editMenu_scale_pb;
Widget editMenu_resize_pb;
Widget editMenu_addHS_pb;
Widget editMenu_deleteHS_pb;
Widget editMenu_clear_pb;
Widget editMenu_grabImage_pb;
Widget editMenu_top_pb;
Widget optionsMenu;
Widget optionsMenu_grid;
Widget formatMenu;
Widget formatMenu_xbm_tb;
Widget formatMenu_xpm_tb;
Widget optionsMenu_format;
Widget magnificationMenu;
Widget magMenu_2x_tb;
Widget magMenu_3x_tb;
Widget magMenu_4x_tb;
Widget magMenu_5x_tb;
Widget magMenu_6x_tb;
Widget magMenu_8x_tb;
Widget magMenu_10x_tb;
Widget magMenu_12x_tb;
Widget optionsMenu_magnify;
Widget optionsMenu_top_pb;
Widget helpMenu;
Widget helpMenu_intro_pb;
Widget helpMenu_tasks_pb;
Widget helpMenu_ref_pb;
Widget helpMenu_item_pb;
Widget helpMenu_using_pb;
Widget helpMenu_version_pb;
Widget helpMenu_top_pb;
/*******************************************************************************
The following are translation tables.
*******************************************************************************/
static char *transTable1 = "#replace\n\
<Btn1Down>:tablet_event(\"DOWN\",\"1\")\n\
<Btn1Motion>:tablet_event(\"MOVE\",\"1\")\n\
<Btn1Up>:tablet_event(\"UP\",\"1\")\n\
<EnterWindow>:tablet_event(\"ENTER\",\"0\")\n\
<LeaveWindow>:tablet_event(\"LEAVE\",\"0\")\n\
<Expose>:tablet_event(\"EXPOSE\",\"0\")\n\
<FocusIn>:tablet_event(\"F_IN\",\"0\")\n\
<FocusOut>:tablet_event(\"F_OUT\",\"0\")\n\
<Motion>:tablet_event(\"MOVE\",\"0\")\n";
static char *transTable2 = "#override\n\
<Expose>:tablet_event(\"EXPOSE\",\"0\")\n";
/*******************************************************************************
Forward declarations of functions that are defined later in this file.
*******************************************************************************/
Widget create_dtIconShell();
static void NewGraphicsOp();
/*******************************************************************************
The following are Action functions.
*******************************************************************************/
static void
action_tablet_event(
Widget w,
XEvent *event,
String *params,
Cardinal *numParams )
{
ProcessTabletEvent(w, event, params, *numParams);
}
/*******************************************************************************
The following are callback functions.
*******************************************************************************/
static void
armCB_pointButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = POINT;
NewGraphicsOp();
}
static void
armCB_lineButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = LINE;
NewGraphicsOp();
}
static void
armCB_rectangleButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = RECTANGLE;
NewGraphicsOp();
}
static void
armCB_circleButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = CIRCLE;
NewGraphicsOp();
}
static void
armCB_eraseButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = ERASER;
NewGraphicsOp();
}
static void
armCB_floodButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = FLOOD;
NewGraphicsOp();
}
static void
armCB_polylineButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = POLYLINE;
NewGraphicsOp();
}
static void
armCB_polygonButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = POLYGON;
NewGraphicsOp();
}
static void
armCB_ellipseButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = ELLIPSE;
NewGraphicsOp();
}
static void
armCB_selectButton(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
GraphicsOp = SELECT;
NewGraphicsOp();
}
static void
valueChangedCB_fillToggle(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Switch_FillSolids();
NewGraphicsOp();
}
static void
valueChangedCB_color_pb1(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(COLOR1);
}
static void
valueChangedCB_color_pb2(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(COLOR2);
}
static void
valueChangedCB_color_pb3(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(COLOR3);
}
static void
valueChangedCB_color_pb4(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(COLOR4);
}
static void
valueChangedCB_color_pb5(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(COLOR5);
}
static void
valueChangedCB_color_pb6(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(COLOR6);
}
static void
valueChangedCB_color_pb7(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(COLOR7);
}
static void
valueChangedCB_color_pb8(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(COLOR8);
}
static void
valueChangedCB_grey_pb1(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(GREY1);
}
static void
valueChangedCB_grey_pb2(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(GREY2);
}
static void
valueChangedCB_grey_pb3(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(GREY3);
}
static void
valueChangedCB_grey_pb4(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(GREY4);
}
static void
valueChangedCB_grey_pb5(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(GREY5);
}
static void
valueChangedCB_grey_pb6(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(GREY6);
}
static void
valueChangedCB_grey_pb7(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(GREY7);
}
static void
valueChangedCB_grey_pb8(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(GREY8);
}
static void
valueChangedCB_fgColorToggle(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(FG_COLOR);
}
static void
valueChangedCB_bgColorToggle(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(BG_COLOR);
}
static void
valueChangedCB_tsColorToggle(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(TS_COLOR);
}
static void
valueChangedCB_bsColorToggle(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(BS_COLOR);
}
static void
valueChangedCB_selectColorToggle(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(SELECT_COLOR);
}
static void
valueChangedCB_transparentColorToggle(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Select_New_Pen(TRANS_COLOR);
}
static void
activateCB_fileMenu_new_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_New();
}
static void
activateCB_fileMenu_open_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Open();
}
static void
activateCB_fileMenu_save_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Save();
}
static void
activateCB_fileMenu_saveAs_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_SaveAs();
}
static void
activateCB_fileMenu_quit_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Quit();
}
static void
activateCB_editMenu_undo_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Undo();
}
static void
activateCB_editMenu_cut_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Cut();
}
static void
activateCB_editMenu_copy_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Copy(&CutCopy, &CutCopy_mono);
}
static void
activateCB_editMenu_paste_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Paste();
}
static void
activateCB_rotateMenu_pb1(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_RotateLeft();
}
static void
activateCB_rotateMenu_pb2(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_RotateRight();
}
static void
activateCB_flipMenu_pb1(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_FlipV();
}
static void
activateCB_flipMenu_pb2(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_FlipH();
}
static void
activateCB_editMenu_scale_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Scale();
}
static void
activateCB_editMenu_resize_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Resize();
}
static void
activateCB_editMenu_addHS_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_AddHotspot();
XtSetSensitive( editMenu_deleteHS_pb, True );
}
static void
activateCB_editMenu_deleteHS_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_DeleteHotspot();
XtSetSensitive( editMenu_deleteHS_pb, False );
}
static void
activateCB_editMenu_grabImage_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_GrabImage();
}
static void
activateCB_editMenu_clear_pb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_Clear();
}
static void
valueChangedCB_optionsMenu_grid(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
Process_GridState();
}
static void
valueChangedCB_formatMenu_xbm_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_FileFormat(FORMAT_XBM);
}
static void
valueChangedCB_formatMenu_xpm_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_FileFormat(FORMAT_XPM);
}
static void
valueChangedCB_magMenu_2x_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_MagFactor(2);
}
static void
valueChangedCB_magMenu_3x_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_MagFactor(3);
}
static void
valueChangedCB_magMenu_4x_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_MagFactor(4);
}
static void
valueChangedCB_magMenu_5x_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_MagFactor(5);
}
static void
valueChangedCB_magMenu_6x_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_MagFactor(6);
}
static void
valueChangedCB_magMenu_8x_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_MagFactor(8);
}
static void
valueChangedCB_magMenu_10x_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_MagFactor(10);
}
static void
valueChangedCB_magMenu_12x_tb(
Widget w,
XtPointer clientData,
XtPointer callbackArg )
{
New_MagFactor(12);
}
/*******************************************************************************
The 'build_' function creates all the widgets
using the resource values specified in the Property Editor.
*******************************************************************************/
static Widget
build_dtIconShell( void )
{
Widget fileMenu_shell;
Widget editMenu_shell;
Widget rotateMenu_shell;
Widget flipMenu_shell;
Widget optionsMenu_shell;
Widget formatMenu_shell;
Widget magnificationMenu_shell;
Widget helpMenu_shell;
XmString tmpXmStr, tmpXmStr2, tmpXmStr3, tmpXmStr4;
char *tmpStr, *tmpStr2;
static char geometry[40];
/* GETSTR uses a static buffer which may be overwritten */
/* on subsequent calls, so save character in mnemonic */
char * mnemonicStr;
KeySym mnemonic;
/* use tmpStr as tmp string holder so GETSTR won't trash string */
tmpStr2 = GETSTR(12,3, "Icon Editor - (UNTITLED)");
tmpStr = XtNewString (tmpStr2);
if (!session.useSession)
{
XtVaSetValues( TopLevel,
XmNminWidth, 10,
XmNminHeight, 10,
XmNtitle, tmpStr,
XmNiconName, GETSTR(10,66, "(UNTITLED)"),
XmNdeleteResponse, XmDO_NOTHING,
NULL);
dtIconShell = TopLevel;
}
else
{
sprintf(geometry, "=%dx%d+%d+%d", session.width, session.height,
session.x, session.y);
XtVaSetValues( TopLevel,
XmNminWidth, 10,
XmNminHeight, 10,
XmNtitle, tmpStr,
XmNiconName, GETSTR(10,66, "(UNTITLED)"),
XmNdeleteResponse, XmDO_NOTHING,
XmNgeometry, geometry,
XmNinitialState, session.iconicState,
NULL);
dtIconShell = TopLevel;
}
mainWindow = XtVaCreateManagedWidget( "mainWindow",
xmMainWindowWidgetClass, dtIconShell,
NULL);
mainForm = XtVaCreateManagedWidget( "mainForm",
xmFormWidgetClass, mainWindow,
NULL);
tmpXmStr = GETXMSTR(12,204, "Pencil");
instructionText = XtVaCreateManagedWidget( "instructionText",
xmLabelGadgetClass, mainForm,
XmNlabelString, tmpXmStr,
XmNtopOffset, 5,
XmNtopAttachment, XmATTACH_FORM,
XmNrightOffset, -230,
XmNrightAttachment, XmATTACH_OPPOSITE_FORM,
XmNleftOffset, 5,
XmNleftAttachment, XmATTACH_FORM,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = XmStringCreateLocalized (" ");
coordinateText = XtVaCreateManagedWidget( "coordinateText",
xmLabelGadgetClass, mainForm,
XmNlabelString, tmpXmStr,
XmNalignment, XmALIGNMENT_BEGINNING,
XmNtopOffset, 5,
XmNtopAttachment, XmATTACH_FORM,
XmNbottomOffset, 1,
XmNbottomWidget, viewport,
XmNrightOffset, 70,
XmNrightAttachment, XmATTACH_FORM,
XmNleftOffset, 230,
XmNleftAttachment, XmATTACH_WIDGET,
NULL);
XmStringFree(tmpXmStr);
iconForm = XtVaCreateManagedWidget( "iconForm",
xmFormWidgetClass, mainForm,
XmNtopWidget, instructionText,
XmNtopOffset, 5,
XmNtopAttachment, XmATTACH_WIDGET,
XmNrightOffset, 5,
XmNrightAttachment, XmATTACH_FORM,
NULL);
iconImage = XtVaCreateManagedWidget( "iconImage",
xmDrawnButtonWidgetClass, iconForm,
RES_CONVERT( XmNtranslations, transTable2 ),
XmNtopAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNshadowType, XmSHADOW_ETCHED_OUT,
XmNtraversalOn, False,
NULL);
tmpXmStr = XmStringCreateLocalized ("32 x 32");
iconSize = XtVaCreateManagedWidget( "iconSize",
xmLabelGadgetClass, iconForm,
XmNtopWidget, iconImage,
XmNtopAttachment, XmATTACH_WIDGET,
XmNrightAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
monoImage = XtVaCreateManagedWidget( "monoImage",
xmDrawnButtonWidgetClass, iconForm,
RES_CONVERT( XmNtranslations, transTable2 ),
XmNshadowType, XmSHADOW_ETCHED_OUT,
XmNtopWidget, iconSize,
XmNtopOffset, 20,
XmNtopAttachment, XmATTACH_WIDGET,
XmNleftAttachment, XmATTACH_FORM,
XmNtraversalOn, False,
NULL);
tmpXmStr = GETXMSTR(12,2, "2 Color");
monoLabel = XtVaCreateManagedWidget( "monoLabel",
xmLabelGadgetClass, iconForm,
XmNtopWidget, monoImage,
XmNtopAttachment, XmATTACH_WIDGET,
XmNrightAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNlabelString, (tmpXmStr ),
NULL);
XmStringFree(tmpXmStr);
cmdButtonForm = XtVaCreateManagedWidget( "cmdButtonForm",
xmFormWidgetClass, mainForm,
XmNtopWidget, instructionText,
XmNtopOffset, 5,
XmNtopAttachment, XmATTACH_WIDGET,
XmNleftOffset, 5,
XmNleftAttachment, XmATTACH_FORM,
NULL);
cmdButtonMgr = XtVaCreateManagedWidget( "cmdButtonMgr",
xmRowColumnWidgetClass, cmdButtonForm,
XmNtopAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNresizable, FALSE,
XmNnumColumns, 2,
XmNborderWidth, 1,
XmNmarginHeight, 0,
XmNmarginWidth, 0,
XmNspacing, 1,
XmNradioAlwaysOne, TRUE,
XmNradioBehavior, TRUE,
NULL);
pointButton = XtVaCreateManagedWidget( "pointButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
lineButton = XtVaCreateManagedWidget( "lineButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
rectangleButton = XtVaCreateManagedWidget( "rectangleButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
circleButton = XtVaCreateManagedWidget( "circleButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
eraseButton = XtVaCreateManagedWidget( "eraseButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
floodButton = XtVaCreateManagedWidget( "floodButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
polylineButton = XtVaCreateManagedWidget( "polylineButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
polygonButton = XtVaCreateManagedWidget( "polygonButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
ellipseButton = XtVaCreateManagedWidget( "ellipseButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
selectButton = XtVaCreateManagedWidget( "selectButton",
xmToggleButtonWidgetClass, cmdButtonMgr,
XmNshadowThickness, 2,
XmNlabelType, XmPIXMAP,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNrecomputeSize, FALSE,
XmNwidth, PIXMAP_WIDTH,
XmNheight, PIXMAP_HEIGHT,
NULL);
tmpXmStr = GETXMSTR(12,6, "Fill Solids");
fillToggle = XtVaCreateManagedWidget( "fillToggle",
xmToggleButtonGadgetClass, cmdButtonForm,
XmNmarginHeight, 0,
XmNmarginTop, 0,
XmNmarginBottom, 0,
XmNtopWidget, cmdButtonMgr,
XmNtopAttachment, XmATTACH_WIDGET,
XmNrightAttachment, XmATTACH_FORM,
XmNleftAttachment, XmATTACH_FORM,
XmNshadowThickness, 0,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
cmdForm = XtVaCreateManagedWidget( "cmdForm",
xmFormWidgetClass, mainForm,
XmNrightOffset, 5,
XmNrightAttachment, XmATTACH_FORM,
XmNbottomOffset, 5,
XmNbottomAttachment, XmATTACH_FORM,
XmNleftOffset, 5,
XmNleftAttachment, XmATTACH_FORM,
XmNshadowThickness, 0,
NULL);
tmpXmStr = GETXMSTR(12,8, "Static Colors");
staticColorsBox = XtVaCreateManagedWidget( "staticColorsBox",
dtTitleBoxWidgetClass, cmdForm,
XmNmarginWidth, 5,
XmNmarginHeight, 5,
XmNtitleString, tmpXmStr,
XmNleftAttachment, XmATTACH_FORM,
XmNshadowType, XmSHADOW_ETCHED_OUT,
NULL);
XmStringFree(tmpXmStr);
stdColorPens = XtVaCreateManagedWidget( "stdColorPens",
xmFormWidgetClass, staticColorsBox,
NULL);
color_pb1 = XtVaCreateManagedWidget( "color_pb1",
xmToggleButtonWidgetClass, stdColorPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_FORM,
NULL);
color_pb2 = XtVaCreateManagedWidget( "color_pb2",
xmToggleButtonWidgetClass, stdColorPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, COLOR_BUTTON_SIZE,
NULL);
color_pb3 = XtVaCreateManagedWidget( "color_pb3",
xmToggleButtonWidgetClass, stdColorPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, color_pb1,
NULL);
color_pb4 = XtVaCreateManagedWidget( "color_pb4",
xmToggleButtonWidgetClass, stdColorPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, color_pb2,
XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, COLOR_BUTTON_SIZE,
NULL);
color_pb5 = XtVaCreateManagedWidget( "color_pb5",
xmToggleButtonWidgetClass, stdColorPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, color_pb3,
NULL);
color_pb6 = XtVaCreateManagedWidget( "color_pb6",
xmToggleButtonWidgetClass, stdColorPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, color_pb4,
XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, COLOR_BUTTON_SIZE,
NULL);
color_pb7 = XtVaCreateManagedWidget( "color_pb7",
xmToggleButtonWidgetClass, stdColorPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, color_pb5,
NULL);
color_pb8 = XtVaCreateManagedWidget( "color_pb8",
xmToggleButtonWidgetClass, stdColorPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, color_pb6,
XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, COLOR_BUTTON_SIZE,
NULL);
tmpXmStr = GETXMSTR(12,12, "Static Grays");
staticGreysBox = XtVaCreateManagedWidget( "staticGreysBox",
dtTitleBoxWidgetClass, cmdForm,
XmNmarginWidth, 5,
XmNmarginHeight, 5,
XmNtitleString, tmpXmStr,
XmNleftWidget, staticColorsBox,
XmNleftOffset, 5,
XmNleftAttachment, XmATTACH_WIDGET,
XmNshadowType, XmSHADOW_ETCHED_OUT,
NULL);
XmStringFree(tmpXmStr);
stdGreyPens = XtVaCreateManagedWidget( "stdGreyPens",
xmFormWidgetClass, staticGreysBox,
NULL);
grey_pb1 = XtVaCreateManagedWidget( "grey_pb1",
xmToggleButtonWidgetClass, stdGreyPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_FORM,
NULL);
grey_pb2 = XtVaCreateManagedWidget( "grey_pb2",
xmToggleButtonWidgetClass, stdGreyPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_FORM,
XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, COLOR_BUTTON_SIZE,
NULL);
grey_pb3 = XtVaCreateManagedWidget( "grey_pb3",
xmToggleButtonWidgetClass, stdGreyPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, grey_pb1,
NULL);
grey_pb4 = XtVaCreateManagedWidget( "grey_pb4",
xmToggleButtonWidgetClass, stdGreyPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, grey_pb2,
XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, COLOR_BUTTON_SIZE,
NULL);
grey_pb5 = XtVaCreateManagedWidget( "grey_pb5",
xmToggleButtonWidgetClass, stdGreyPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, grey_pb3,
NULL);
grey_pb6 = XtVaCreateManagedWidget( "grey_pb6",
xmToggleButtonWidgetClass, stdGreyPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, grey_pb4,
XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, COLOR_BUTTON_SIZE,
NULL);
grey_pb7 = XtVaCreateManagedWidget( "grey_pb7",
xmToggleButtonWidgetClass, stdGreyPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, grey_pb5,
NULL);
grey_pb8 = XtVaCreateManagedWidget( "grey_pb8",
xmToggleButtonWidgetClass, stdGreyPens,
XmNshadowThickness, 2,
XmNrecomputeSize, FALSE,
XmNlabelType, XmPIXMAP,
XmNindicatorType, XmONE_OF_MANY,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
XmNwidth, COLOR_BUTTON_SIZE,
XmNheight, COLOR_BUTTON_SIZE,
XmNleftAttachment, XmATTACH_WIDGET,
XmNleftWidget, grey_pb6,
XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, COLOR_BUTTON_SIZE,
NULL);
tmpXmStr = GETXMSTR(12,10, "Dynamic Colors");
symbolicColorsBox = XtVaCreateManagedWidget( "symbolicColorsBox",
dtTitleBoxWidgetClass, cmdForm,
XmNmarginWidth, 5,
XmNmarginHeight, 5,
XmNtitleString, tmpXmStr,
XmNleftWidget, staticGreysBox,
XmNleftOffset, 5,
XmNleftAttachment, XmATTACH_WIDGET,
XmNshadowType, XmSHADOW_ETCHED_OUT,
NULL);
XmStringFree(tmpXmStr);
symbolicColorPens = XtVaCreateManagedWidget( "symbolicColorPens",
xmRowColumnWidgetClass, symbolicColorsBox,
XmNpacking, XmPACK_COLUMN,
XmNradioAlwaysOne, FALSE,
XmNentryClass, xmToggleButtonWidgetClass,
XmNspacing, 0,
XmNmarginWidth, 0,
XmNmarginHeight, 0,
XmNradioBehavior, FALSE,
XmNorientation, XmHORIZONTAL,
XmNnumColumns, 3,
NULL);
tmpXmStr = GETXMSTR(12,14, "Foreground");
fgColorToggle = XtVaCreateManagedWidget( "fgColorToggle",
xmToggleButtonWidgetClass, symbolicColorPens,
XmNshadowThickness, 2,
XmNlabelString, tmpXmStr,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,16, "Background");
bgColorToggle = XtVaCreateManagedWidget( "bgColorToggle",
xmToggleButtonWidgetClass, symbolicColorPens,
XmNshadowThickness, 2,
XmNlabelString, tmpXmStr,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,18, "TopShadow");
tsColorToggle = XtVaCreateManagedWidget( "tsColorToggle",
xmToggleButtonWidgetClass, symbolicColorPens,
XmNshadowThickness, 2,
XmNlabelString, tmpXmStr,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,20, "BottomShadow");
bsColorToggle = XtVaCreateManagedWidget( "bsColorToggle",
xmToggleButtonWidgetClass, symbolicColorPens,
XmNshadowThickness, 2,
XmNlabelString, tmpXmStr,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,22, "Select");
selectColorToggle = XtVaCreateManagedWidget( "selectColorToggle",
xmToggleButtonWidgetClass, symbolicColorPens,
XmNshadowThickness, 2,
XmNlabelString, tmpXmStr,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,24, "Transparent");
transparentColorToggle=XtVaCreateManagedWidget("transparentColorToggle",
xmToggleButtonWidgetClass, symbolicColorPens,
XmNshadowThickness, 2,
XmNlabelString, tmpXmStr,
XmNindicatorOn, FALSE,
XmNfillOnSelect, FALSE,
NULL);
XmStringFree(tmpXmStr);
viewport = XtVaCreateManagedWidget( "viewport",
xmScrolledWindowWidgetClass, mainForm,
XmNheight, VIEWPORT_INITIAL_HEIGHT,
XmNtopWidget, instructionText,
XmNtopOffset, 5,
XmNtopAttachment, XmATTACH_WIDGET,
XmNrightWidget, iconForm,
XmNrightOffset, 5,
XmNrightAttachment, XmATTACH_WIDGET,
XmNbottomWidget, cmdForm,
XmNbottomOffset, 20,
XmNbottomAttachment, XmATTACH_WIDGET,
XmNleftWidget, cmdButtonForm,
XmNleftOffset, 5,
XmNleftAttachment, XmATTACH_WIDGET,
XmNscrollingPolicy, XmAUTOMATIC,
NULL);
tabletBorder = XtVaCreateManagedWidget( "tabletBorder",
xmDrawingAreaWidgetClass, viewport,
XmNmarginWidth, 10,
XmNmarginHeight, 10,
XmNtraversalOn, False,
NULL);
tabletFrame = XtVaCreateManagedWidget( "tabletFrame",
xmFrameWidgetClass, tabletBorder,
XmNshadowType, XmSHADOW_ETCHED_OUT,
XmNmarginWidth, 0,
XmNmarginHeight, 0,
NULL);
tablet = XtVaCreateManagedWidget( "tablet",
xmDrawnButtonWidgetClass, tabletFrame,
RES_CONVERT( XmNtranslations, transTable1 ),
XmNshadowThickness, 0,
XmNmarginWidth, 0,
XmNmarginHeight, 0,
XmNhighlightThickness, 0,
NULL);
menu1 = XtVaCreateManagedWidget( "menu1",
xmRowColumnWidgetClass, mainWindow,
XmNmenuAccelerator, "<KeyUp>F10",
XmNrowColumnType, XmMENU_BAR,
NULL);
fileMenu_shell = XtVaCreatePopupShell ("fileMenu_shell",
xmMenuShellWidgetClass, menu1,
XmNwidth, 10,
XmNheight, 10,
NULL);
fileMenu = XtVaCreateWidget( "fileMenu",
xmRowColumnWidgetClass, fileMenu_shell,
XmNrowColumnType, XmMENU_PULLDOWN,
NULL);
mnemonicStr = GETSTR(12,26, "N");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,28, "New");
fileMenu_new_pb = XtVaCreateManagedWidget( "new",
xmPushButtonGadgetClass, fileMenu,
XmNmnemonic, mnemonic,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,30, "O");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,32, "Open...");
fileMenu_open_pb = XtVaCreateManagedWidget( "open",
xmPushButtonGadgetClass, fileMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtVaCreateManagedWidget( "fileMenu_separator1",
xmSeparatorGadgetClass, fileMenu, NULL);
mnemonicStr = GETSTR(12,34, "S");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,36, "Save");
fileMenu_save_pb = XtVaCreateManagedWidget( "save",
xmPushButtonGadgetClass, fileMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,38, "A");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,40, "Save As...");
fileMenu_saveAs_pb = XtVaCreateManagedWidget( "saveas",
xmPushButtonGadgetClass, fileMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtVaCreateManagedWidget( "fileMenu_separator1",
xmSeparatorGadgetClass, fileMenu, NULL);
mnemonicStr = GETSTR(12,42, "x");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,44, "Exit");
fileMenu_quit_pb = XtVaCreateManagedWidget( "exit",
xmPushButtonGadgetClass, fileMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,48, "File");
mnemonicStr = GETSTR(12,46, "F");
mnemonic = mnemonicStr[0];
fileMenu_top_pb = XtVaCreateManagedWidget( "fileMenu_top_pb",
xmCascadeButtonWidgetClass, menu1,
XmNsubMenuId, fileMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
editMenu_shell = XtVaCreatePopupShell ("editMenu_shell",
xmMenuShellWidgetClass, menu1,
XmNwidth, 10,
XmNheight, 10,
NULL);
editMenu = XtVaCreateWidget( "editMenu",
xmRowColumnWidgetClass, editMenu_shell,
XmNrowColumnType, XmMENU_PULLDOWN,
NULL);
mnemonicStr = GETSTR(12,50, "U");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,52, "Undo");
editMenu_undo_pb = XtVaCreateManagedWidget( "undo",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtSetSensitive( editMenu_undo_pb, False);
XtVaCreateManagedWidget( "editMenu_separator",
xmSeparatorGadgetClass, editMenu, NULL);
mnemonicStr = GETSTR(12,54, "t");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,56, "Cut Area");
editMenu_cut_pb = XtVaCreateManagedWidget( "cut",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtSetSensitive( editMenu_cut_pb, False);
mnemonicStr = GETSTR(12,58, "C");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,60, "Copy Area");
editMenu_copy_pb = XtVaCreateManagedWidget( "copy",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtSetSensitive( editMenu_copy_pb, False);
mnemonicStr = GETSTR(12,62, "P");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,64, "Paste Area");
editMenu_paste_pb = XtVaCreateManagedWidget( "paste",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtSetSensitive( editMenu_paste_pb, False);
XtVaCreateManagedWidget( "editMenu_separator",
xmSeparatorGadgetClass, editMenu, NULL);
rotateMenu_shell = XtVaCreatePopupShell ("rotateMenu_shell",
xmMenuShellWidgetClass, editMenu,
XmNwidth, 10,
XmNheight, 10,
NULL);
rotateMenu = XtVaCreateWidget( "rotateMenu",
xmRowColumnWidgetClass, rotateMenu_shell,
XmNrowColumnType, XmMENU_PULLDOWN,
NULL);
mnemonicStr = GETSTR(12,68, "L");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,70, "Left");
rotateMenu_pb1 = XtVaCreateManagedWidget( "rotateMenu_pb1",
xmPushButtonGadgetClass, rotateMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,72, "R");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,74, "Right");
rotateMenu_pb2 = XtVaCreateManagedWidget( "rotateMenu_pb2",
xmPushButtonGadgetClass, rotateMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,76, "R");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,78, "Rotate Area");
editMenu_rotate_pb = XtVaCreateManagedWidget( "editMenu_rotate_pb",
xmCascadeButtonGadgetClass, editMenu,
XmNsubMenuId, rotateMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtSetSensitive(editMenu_rotate_pb, False);
flipMenu_shell = XtVaCreatePopupShell ("flipMenu_shell",
xmMenuShellWidgetClass, editMenu,
XmNwidth, 10,
XmNheight, 10,
NULL);
flipMenu = XtVaCreateWidget( "flipMenu",
xmRowColumnWidgetClass, flipMenu_shell,
XmNrowColumnType, XmMENU_PULLDOWN,
NULL);
mnemonicStr = GETSTR(12,82, "V");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,84, "Vertical");
flipMenu_pb1 = XtVaCreateManagedWidget( "flipMenu_pb1",
xmPushButtonGadgetClass, flipMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,86, "H");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,88, "Horizontal");
flipMenu_pb2 = XtVaCreateManagedWidget( "flipMenu_pb2",
xmPushButtonGadgetClass, flipMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,90, "F");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,92, "Flip Area");
editMenu_flip_pb = XtVaCreateManagedWidget( "editMenu_flip_pb",
xmCascadeButtonGadgetClass, editMenu,
XmNsubMenuId, flipMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtSetSensitive(editMenu_flip_pb, False);
mnemonicStr = GETSTR(12,94, "S");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,96, "Scale Area");
editMenu_scale_pb = XtVaCreateManagedWidget( "editMenu_scale_pb",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtSetSensitive(editMenu_scale_pb, False);
mnemonicStr = GETSTR(12,98, "z");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,100, "Resize Icon...");
editMenu_resize_pb = XtVaCreateManagedWidget( "editMenu_resize_pb",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtVaCreateManagedWidget( "editMenu_separator",
xmSeparatorGadgetClass, editMenu, NULL);
mnemonicStr = GETSTR(12,102, "A");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,104, "Add Hot Spot");
editMenu_addHS_pb = XtVaCreateManagedWidget( "editMenu_addHS_pb",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,106, "D");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,108, "Delete Hot Spot");
editMenu_deleteHS_pb = XtVaCreateManagedWidget( "editMenu_deleteHS_pb",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
XtNsensitive, False,
NULL);
XmStringFree(tmpXmStr);
XtVaCreateManagedWidget( "editMenu_separator",
xmSeparatorGadgetClass, editMenu, NULL);
mnemonicStr = GETSTR(12,110, "G");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,112, "Grab Screen Image");
editMenu_grabImage_pb = XtVaCreateManagedWidget("editMenu_grabImage_pb",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,114, "e");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,116, "Clear Icon");
editMenu_clear_pb = XtVaCreateManagedWidget( "editMenu_clear_pb",
xmPushButtonGadgetClass, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,118, "E");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,120, "Edit");
editMenu_top_pb = XtVaCreateManagedWidget( "editMenu_top_pb",
xmCascadeButtonWidgetClass, menu1,
XmNsubMenuId, editMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
optionsMenu_shell = XtVaCreatePopupShell ("optionsMenu_shell",
xmMenuShellWidgetClass, menu1,
XmNwidth, 10,
XmNheight, 10,
NULL);
optionsMenu = XtVaCreateWidget( "optionsMenu",
xmRowColumnWidgetClass, optionsMenu_shell,
XmNrowColumnType, XmMENU_PULLDOWN,
NULL);
mnemonicStr = GETSTR(12,122, "V");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,124, "Visible Grid");
optionsMenu_grid = XtVaCreateManagedWidget( "optionsMenu_grid",
xmToggleButtonGadgetClass, optionsMenu,
XmNmnemonic, mnemonic,
XmNvisibleWhenOff, TRUE,
XmNindicatorType, XmN_OF_MANY,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
formatMenu_shell = XtVaCreatePopupShell ("formatMenu_shell",
xmMenuShellWidgetClass, optionsMenu,
XmNwidth, 10,
XmNheight, 10,
NULL);
formatMenu = XtVaCreateWidget( "formatMenu",
xmRowColumnWidgetClass, formatMenu_shell,
XmNradioBehavior, TRUE,
XmNrowColumnType, XmMENU_PULLDOWN,
NULL);
mnemonicStr = GETSTR(12,128, "B");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,130, "XBM");
formatMenu_xbm_tb = XtVaCreateManagedWidget( "formatMenu_xbm_tb",
xmToggleButtonGadgetClass, formatMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,134, "P");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,136, "XPM");
formatMenu_xpm_tb = XtVaCreateManagedWidget("formatMenu_xpm_tb",
xmToggleButtonGadgetClass, formatMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,138, "O");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,140, "Output Format");
optionsMenu_format = XtVaCreateManagedWidget( "optionsMenu_format",
xmCascadeButtonGadgetClass, optionsMenu,
XmNsubMenuId, formatMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
magnificationMenu_shell =XtVaCreatePopupShell("magnificationMenu_shell",
xmMenuShellWidgetClass, optionsMenu,
XmNwidth, 10,
XmNheight, 10,
NULL);
magnificationMenu = XtVaCreateWidget( "magnificationMenu",
xmRowColumnWidgetClass, magnificationMenu_shell,
XmNradioBehavior, TRUE,
XmNrowColumnType, XmMENU_PULLDOWN,
NULL);
tmpXmStr = GETXMSTR(12,144, "2x");
magMenu_2x_tb = XtVaCreateManagedWidget( "magMenu_2x_tb",
xmToggleButtonGadgetClass, magnificationMenu,
XmNvisibleWhenOff, FALSE,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,146, "3x");
magMenu_3x_tb = XtVaCreateManagedWidget( "magMenu_3x_tb",
xmToggleButtonGadgetClass, magnificationMenu,
XmNvisibleWhenOff, FALSE,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,148, "4x");
magMenu_4x_tb = XtVaCreateManagedWidget( "magMenu_4x_tb",
xmToggleButtonGadgetClass, magnificationMenu,
XmNvisibleWhenOff, FALSE,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,150, "5x");
magMenu_5x_tb = XtVaCreateManagedWidget( "magMenu_5x_tb",
xmToggleButtonGadgetClass, magnificationMenu,
XmNvisibleWhenOff, FALSE,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,152, "6x");
magMenu_6x_tb = XtVaCreateManagedWidget( "magMenu_6x_tb",
xmToggleButtonGadgetClass, magnificationMenu,
XmNvisibleWhenOff, FALSE,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,154, "8x");
magMenu_8x_tb = XtVaCreateManagedWidget( "magMenu_8x_tb",
xmToggleButtonGadgetClass, magnificationMenu,
XmNvisibleWhenOff, FALSE,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,156, "10x");
magMenu_10x_tb = XtVaCreateManagedWidget( "magMenu_10x_tb",
xmToggleButtonGadgetClass, magnificationMenu,
XmNvisibleWhenOff, FALSE,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
tmpXmStr = GETXMSTR(12,158, "12x");
magMenu_12x_tb = XtVaCreateManagedWidget( "magMenu_12x_tb",
xmToggleButtonGadgetClass, magnificationMenu,
XmNvisibleWhenOff, FALSE,
XmNlabelString,tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,160, "M");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,162, "Magnification");
optionsMenu_magnify = XtVaCreateManagedWidget( "optionsMenu_magnify",
xmCascadeButtonGadgetClass, optionsMenu,
XmNmnemonic, mnemonic,
XmNsubMenuId, magnificationMenu,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,164, "O");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,166, "Options");
optionsMenu_top_pb = XtVaCreateManagedWidget( "optionsMenu_top_pb",
xmCascadeButtonWidgetClass, menu1,
XmNmnemonic, mnemonic,
XmNsubMenuId, optionsMenu,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
helpMenu_shell = XtVaCreatePopupShell ("helpMenu_shell",
xmMenuShellWidgetClass, menu1,
XmNwidth, 10,
XmNheight, 10,
NULL);
helpMenu = XtVaCreateWidget( "helpMenu",
xmRowColumnWidgetClass, helpMenu_shell,
XmNrowColumnType, XmMENU_PULLDOWN,
NULL);
mnemonicStr = GETSTR(12,168, "v");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,170, "Overview...");
helpMenu_intro_pb = XtVaCreateManagedWidget( "helpMenu_intro_pb",
xmPushButtonGadgetClass, helpMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtVaCreateManagedWidget( "helpMenu_separator1",
xmSeparatorGadgetClass, helpMenu, NULL);
mnemonicStr = GETSTR(12,172, "T");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,174, "Tasks...");
helpMenu_tasks_pb = XtVaCreateManagedWidget( "helpMenu_tasks_pb",
xmPushButtonGadgetClass, helpMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,176, "R");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,178, "Reference...");
helpMenu_ref_pb = XtVaCreateManagedWidget( "helpMenu_ref_pb",
xmPushButtonGadgetClass, helpMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,180, "O");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,182, "On Item");
helpMenu_item_pb = XtVaCreateManagedWidget( "helpMenu_item_pb",
xmPushButtonGadgetClass, helpMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtVaCreateManagedWidget( "helpMenu_separator2",
xmSeparatorGadgetClass, helpMenu, NULL);
mnemonicStr = GETSTR(12,188, "U");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,190, "Using Help...");
helpMenu_using_pb = XtVaCreateManagedWidget("helpMenu_using_pb",
xmPushButtonGadgetClass, helpMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
XtVaCreateManagedWidget( "helpMenu_separator3",
xmSeparatorGadgetClass, helpMenu, NULL);
mnemonicStr = GETSTR(12,192, "A");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,194, "About the Icon Editor...");
helpMenu_version_pb = XtVaCreateManagedWidget( "helpMenu_version_pb",
xmPushButtonGadgetClass, helpMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
mnemonicStr = GETSTR(12,196, "H");
mnemonic = mnemonicStr[0];
tmpXmStr = GETXMSTR(12,198, "Help");
helpMenu_top_pb = XtVaCreateManagedWidget( "helpMenu_top_pb",
xmCascadeButtonWidgetClass, menu1,
XmNsubMenuId, helpMenu,
XmNmnemonic, mnemonic,
XmNlabelString, tmpXmStr,
NULL);
XmStringFree(tmpXmStr);
/* set up meaningful tab groups */
XmAddTabGroup(cmdButtonMgr); /* drawing tools */
XmAddTabGroup(fillToggle); /* fill toggle */
XmAddTabGroup(viewport); /* drawing tablet */
XmAddTabGroup(stdColorPens); /* static colors */
XmAddTabGroup(stdGreyPens); /* static greys */
XmAddTabGroup(symbolicColorPens); /* symbolic colors */
/* set up initial focus */
XmAddTabGroup(mainWindow); /* main window */
XtVaSetValues(mainWindow, XmNinitialFocus, viewport, NULL);
XtAddCallback(pointButton, XmNvalueChangedCallback,
armCB_pointButton, NULL);
XtAddCallback(lineButton, XmNvalueChangedCallback,
armCB_lineButton, NULL);
XtAddCallback(rectangleButton, XmNvalueChangedCallback,
armCB_rectangleButton, NULL);
XtAddCallback(circleButton, XmNvalueChangedCallback,
armCB_circleButton, NULL);
XtAddCallback(eraseButton, XmNvalueChangedCallback,
armCB_eraseButton, NULL);
XtAddCallback(floodButton, XmNvalueChangedCallback,
armCB_floodButton, NULL);
XtAddCallback(polylineButton, XmNvalueChangedCallback,
armCB_polylineButton, NULL);
XtAddCallback(polygonButton, XmNvalueChangedCallback,
armCB_polygonButton, NULL);
XtAddCallback(ellipseButton, XmNvalueChangedCallback,
armCB_ellipseButton, NULL);
XtAddCallback(selectButton, XmNvalueChangedCallback,
armCB_selectButton, NULL);
XtAddCallback(fillToggle, XmNvalueChangedCallback,
valueChangedCB_fillToggle, NULL);
XtAddCallback(color_pb1, XmNvalueChangedCallback,
valueChangedCB_color_pb1, NULL);
XtAddCallback(color_pb2, XmNvalueChangedCallback,
valueChangedCB_color_pb2, NULL);
XtAddCallback(color_pb3, XmNvalueChangedCallback,
valueChangedCB_color_pb3, NULL);
XtAddCallback(color_pb4, XmNvalueChangedCallback,
valueChangedCB_color_pb4, NULL);
XtAddCallback(color_pb5, XmNvalueChangedCallback,
valueChangedCB_color_pb5, NULL);
XtAddCallback(color_pb6, XmNvalueChangedCallback,
valueChangedCB_color_pb6, NULL);
XtAddCallback(color_pb7, XmNvalueChangedCallback,
valueChangedCB_color_pb7, NULL);
XtAddCallback(color_pb8, XmNvalueChangedCallback,
valueChangedCB_color_pb8, NULL);
XtAddCallback(grey_pb1, XmNvalueChangedCallback,
valueChangedCB_grey_pb1, NULL);
XtAddCallback(grey_pb2, XmNvalueChangedCallback,
valueChangedCB_grey_pb2, NULL);
XtAddCallback(grey_pb3, XmNvalueChangedCallback,
valueChangedCB_grey_pb3, NULL);
XtAddCallback(grey_pb4, XmNvalueChangedCallback,
valueChangedCB_grey_pb4, NULL);
XtAddCallback(grey_pb5, XmNvalueChangedCallback,
valueChangedCB_grey_pb5, NULL);
XtAddCallback(grey_pb6, XmNvalueChangedCallback,
valueChangedCB_grey_pb6, NULL);
XtAddCallback(grey_pb7, XmNvalueChangedCallback,
valueChangedCB_grey_pb7, NULL);
XtAddCallback(grey_pb8, XmNvalueChangedCallback,
valueChangedCB_grey_pb8, NULL);
XtAddCallback(fgColorToggle, XmNvalueChangedCallback,
valueChangedCB_fgColorToggle, NULL);
XtAddCallback(bgColorToggle, XmNvalueChangedCallback,
valueChangedCB_bgColorToggle, NULL);
XtAddCallback(tsColorToggle, XmNvalueChangedCallback,
valueChangedCB_tsColorToggle, NULL);
XtAddCallback(bsColorToggle, XmNvalueChangedCallback,
valueChangedCB_bsColorToggle, NULL);
XtAddCallback(selectColorToggle, XmNvalueChangedCallback,
valueChangedCB_selectColorToggle, NULL);
XtAddCallback(transparentColorToggle, XmNvalueChangedCallback,
valueChangedCB_transparentColorToggle, NULL);
XtVaSetValues(menu1, XmNmenuHelpWidget, helpMenu_top_pb, NULL);
XtAddCallback(fileMenu_new_pb, XmNactivateCallback,
activateCB_fileMenu_new_pb, NULL);
XtAddCallback(fileMenu_open_pb, XmNactivateCallback,
activateCB_fileMenu_open_pb, NULL);
XtAddCallback(fileMenu_save_pb, XmNactivateCallback,
activateCB_fileMenu_save_pb, NULL);
XtAddCallback(fileMenu_saveAs_pb, XmNactivateCallback,
activateCB_fileMenu_saveAs_pb, NULL);
XtAddCallback(fileMenu_quit_pb, XmNactivateCallback,
activateCB_fileMenu_quit_pb, NULL);
XtAddCallback(editMenu_undo_pb, XmNactivateCallback,
activateCB_editMenu_undo_pb, NULL);
XtAddCallback(editMenu_cut_pb, XmNactivateCallback,
activateCB_editMenu_cut_pb, NULL);
XtAddCallback(editMenu_copy_pb, XmNactivateCallback,
activateCB_editMenu_copy_pb, NULL);
XtAddCallback(editMenu_paste_pb, XmNactivateCallback,
activateCB_editMenu_paste_pb, NULL);
XtAddCallback(rotateMenu_pb1, XmNactivateCallback,
activateCB_rotateMenu_pb1, NULL);
XtAddCallback(rotateMenu_pb2, XmNactivateCallback,
activateCB_rotateMenu_pb2, NULL);
XtAddCallback(flipMenu_pb1, XmNactivateCallback,
activateCB_flipMenu_pb1, NULL);
XtAddCallback(flipMenu_pb2, XmNactivateCallback,
activateCB_flipMenu_pb2, NULL);
XtAddCallback(editMenu_scale_pb, XmNactivateCallback,
activateCB_editMenu_scale_pb, NULL);
XtAddCallback(editMenu_resize_pb, XmNactivateCallback,
activateCB_editMenu_resize_pb, NULL);
XtAddCallback(editMenu_addHS_pb, XmNactivateCallback,
activateCB_editMenu_addHS_pb, NULL);
XtAddCallback(editMenu_deleteHS_pb, XmNactivateCallback,
activateCB_editMenu_deleteHS_pb, NULL);
XtAddCallback(editMenu_grabImage_pb, XmNactivateCallback,
activateCB_editMenu_grabImage_pb, NULL);
XtAddCallback(editMenu_clear_pb, XmNactivateCallback,
activateCB_editMenu_clear_pb, NULL);
XtAddCallback(optionsMenu_grid, XmNvalueChangedCallback,
valueChangedCB_optionsMenu_grid, NULL);
XtAddCallback(formatMenu_xbm_tb, XmNvalueChangedCallback,
valueChangedCB_formatMenu_xbm_tb, NULL);
XtAddCallback(formatMenu_xpm_tb, XmNvalueChangedCallback,
valueChangedCB_formatMenu_xpm_tb, NULL);
XtAddCallback(magMenu_2x_tb, XmNvalueChangedCallback,
valueChangedCB_magMenu_2x_tb, NULL);
XtAddCallback(magMenu_3x_tb, XmNvalueChangedCallback,
valueChangedCB_magMenu_3x_tb, NULL);
XtAddCallback(magMenu_4x_tb, XmNvalueChangedCallback,
valueChangedCB_magMenu_4x_tb, NULL);
XtAddCallback(magMenu_5x_tb, XmNvalueChangedCallback,
valueChangedCB_magMenu_5x_tb, NULL);
XtAddCallback(magMenu_6x_tb, XmNvalueChangedCallback,
valueChangedCB_magMenu_6x_tb, NULL);
XtAddCallback(magMenu_8x_tb, XmNvalueChangedCallback,
valueChangedCB_magMenu_8x_tb, NULL);
XtAddCallback(magMenu_10x_tb, XmNvalueChangedCallback,
valueChangedCB_magMenu_10x_tb, NULL);
XtAddCallback(magMenu_12x_tb, XmNvalueChangedCallback,
valueChangedCB_magMenu_12x_tb, NULL);
XmMainWindowSetAreas( mainWindow, menu1, (Widget) NULL,
(Widget) NULL, (Widget) NULL, mainForm );
return ( dtIconShell );
}
/*******************************************************************************
NewGraphicsOp - sets the text in the instruction line
*******************************************************************************/
static void NewGraphicsOp(void)
{
static char *fillOnStr = NULL;
int fillOp = False;
char *graphicsOpStr = NULL;
char *tmpStr = NULL;
XmString tmpXmStr = NULL;
Arg args[10];
int n;
XtSetSensitive( editMenu_cut_pb, False);
XtSetSensitive( editMenu_copy_pb, False);
XtSetSensitive(editMenu_rotate_pb, False);
XtSetSensitive(editMenu_flip_pb, False);
XtSetSensitive(editMenu_scale_pb, False);
XSync(dpy, 0);
/* set the instruction text line to current drawing mode */
switch (GraphicsOp) {
case POINT:
tmpStr = GETSTR(12, 204, "Pencil");
break;
case FLOOD:
tmpStr = GETSTR(12, 206, "Flood");
break;
case LINE:
tmpStr = GETSTR(12, 208, "Line");
break;
case POLYLINE:
tmpStr = GETSTR(12, 210, "Polyline");
break;
case RECTANGLE:
tmpStr = GETSTR(12, 212, "Rectangle");
fillOp = True;
break;
case POLYGON:
tmpStr = GETSTR(12, 214, "Polygon");
fillOp = True;
break;
case CIRCLE:
tmpStr = GETSTR(12, 216, "Circle");
fillOp = True;
break;
case ELLIPSE:
tmpStr = GETSTR(12, 218, "Ellipse");
fillOp = True;
break;
case ERASER:
tmpStr = GETSTR(12, 220, "Erase");
break;
case SELECT:
tmpStr = GETSTR(12, 222, "Select");
break;
default :
tmpStr = GETSTR(12, 224, "Invalid");
break;
} /* switch GraphicsOp */
graphicsOpStr = XtNewString (tmpStr);
/* create full help string */
if ( fillOp && FillSolids)
{
/* if fill mode is on append fillOnStr to end of string */
if (!fillOnStr)
{
tmpStr = GETSTR(12, 202, "(Filled)");
fillOnStr = XtNewString (tmpStr);
}
tmpStr = (char *)XtMalloc(strlen(graphicsOpStr) + strlen(fillOnStr) +2);
tmpStr = strcpy (tmpStr, graphicsOpStr);
tmpStr = strcat (tmpStr, " ");
tmpStr = strcat (tmpStr, fillOnStr);
tmpXmStr = XMSTR(tmpStr);
XtFree (tmpStr);
XtFree (graphicsOpStr);
}
else
{
tmpXmStr = XMSTR(graphicsOpStr);
XtFree (graphicsOpStr);
}
n = 0;
XtSetArg (args[n], XmNlabelString, tmpXmStr); n++;
XtSetValues (instructionText, args, n);
XmStringFree(tmpXmStr);
}
/*******************************************************************************
The following is the 'Interface function' which is the
external entry point for creating this interface.
This function should be called from your application or from
a callback function.
*******************************************************************************/
Widget
create_dtIconShell( void )
{
Widget w;
static int init = 0;
if ( !init )
{
static XtActionsRec actions[] = {
{ "tablet_event", action_tablet_event }
};
XtAppAddActions( AppContext,
actions,
XtNumber(actions) );
init = 1;
}
w = build_dtIconShell();
Init_Editor(w);
return (w);
}
/*******************************************************************************
END OF FILE
*******************************************************************************/