1785 lines
77 KiB
C
1785 lines
77 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
|
|
*/
|
|
/* $TOG: CreateActionAppShell.c /main/11 1998/10/26 17:17:50 mgreess $ */
|
|
/*******************************************************************************
|
|
CreateActionAppShell.c
|
|
|
|
Associated Header file: CreateActionAppShell.h
|
|
*******************************************************************************/
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <sys/stat.h>
|
|
|
|
#include <Xm/Xm.h>
|
|
#include <Xm/MwmUtil.h>
|
|
#include <Xm/MenuShell.h>
|
|
#include <Xm/Text.h>
|
|
#include <Xm/ToggleBG.h>
|
|
#include <Xm/List.h>
|
|
#include <Xm/ScrolledW.h>
|
|
#include <Xm/Text.h>
|
|
#include <Xm/PushBG.h>
|
|
#include <Xm/TextF.h>
|
|
#include <Xm/Label.h>
|
|
#include <Xm/Form.h>
|
|
#include <Xm/CascadeB.h>
|
|
#include <Xm/ToggleB.h>
|
|
#include <Xm/Separator.h>
|
|
#include <Xm/PushB.h>
|
|
#include <Xm/RowColumn.h>
|
|
#include <Xm/MainW.h>
|
|
#include <Xm/Protocols.h>
|
|
#include <Xm/AtomMgr.h>
|
|
|
|
#include <X11/Shell.h>
|
|
#include <X11/cursorfont.h>
|
|
|
|
#include <Dt/Dt.h>
|
|
#include <Dt/Icon.h>
|
|
#include <Dt/Action.h>
|
|
#include <Dt/HourGlass.h>
|
|
#include <Dt/Wsm.h>
|
|
|
|
#include "dtcreate.h"
|
|
#include "UxXt.h"
|
|
#include "af_aux.h"
|
|
#include "ca_aux.h"
|
|
#include "cmncbs.h"
|
|
#include "cmnrtns.h"
|
|
#include "fileio.h"
|
|
#include "Confirmed.h"
|
|
#include "ErrorDialog.h"
|
|
|
|
#define CONTEXT_MACRO_ACCESS 1
|
|
#include "CreateActionAppShell.h"
|
|
#undef CONTEXT_MACRO_ACCESS
|
|
|
|
/*******************************************************************************
|
|
Includes, Defines, and Global variables from the Declarations Editor:
|
|
*******************************************************************************/
|
|
|
|
XtArgVal /* Dimension */ winheight, xprtheight, newheight, wintypeheight;
|
|
Widget FileTypes;
|
|
|
|
/*******************************************************************************
|
|
The following are callback functions.
|
|
*******************************************************************************/
|
|
static char * GetDefinitionFileName( char *pszName);
|
|
static void CreateFiles(void);
|
|
static void questionCB_ReplaceFile(Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg);
|
|
static void questionCB_CancelSave(Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg);
|
|
|
|
static char * GetDefinitionFileName( char *pszName)
|
|
{
|
|
char *pszEnvVar;
|
|
char *defname = (char *)NULL;
|
|
int bytesneeded = 0;
|
|
char *msgPtr, *errPtr;
|
|
char *newName;
|
|
|
|
/****************************************************************/
|
|
/* Create definition file name. */
|
|
/****************************************************************/
|
|
newName = ReplaceSpaces(pszName);
|
|
pszEnvVar = getenv("HOME");
|
|
if ( pszEnvVar && strlen(pszEnvVar) ) {
|
|
bytesneeded = strlen("/.dt/types/.dt") + strlen(pszEnvVar) + strlen(newName) + 1;
|
|
defname = (char *)XtMalloc(bytesneeded);
|
|
sprintf(defname, "%s/.dt/types/%s.dt", pszEnvVar, newName);
|
|
} else {
|
|
msgPtr = GETMESSAGE(5, 170,
|
|
"The HOME environment variable is not set.\n\
|
|
The HOME environment variable must be set in order\n\
|
|
for this action to be saved.");
|
|
errPtr = XtNewString(msgPtr);
|
|
display_error_message(CreateActionAppShell, errPtr);
|
|
XtFree(errPtr);
|
|
}
|
|
XtFree(newName);
|
|
return(defname);
|
|
}
|
|
|
|
|
|
static void CreateFiles(void)
|
|
{
|
|
Boolean bHaveError = False;
|
|
ushort usRc = 0;
|
|
char *pszDefName;
|
|
char *msgPtr1, *msgPtr2, *fmtPtr, *bufPtr;
|
|
#ifdef UNDO_CMVC_3571
|
|
char *msgPtr3;
|
|
#endif
|
|
|
|
/******************************************************************/
|
|
/* Create Definition file name. */
|
|
/******************************************************************/
|
|
pszDefName = GetDefinitionFileName(AD.pszName);
|
|
if (!pszDefName) {
|
|
bHaveError = True;
|
|
}
|
|
|
|
/******************************************************************/
|
|
/* Create Definition file. */
|
|
/******************************************************************/
|
|
if ( !bHaveError && ((usRc = WriteDefinitionFile(pszDefName, &AD)) != 0) ) {
|
|
bHaveError = TRUE;
|
|
}
|
|
|
|
/******************************************************************/
|
|
/* Create Action file. */
|
|
/******************************************************************/
|
|
if ( !bHaveError && ((usRc = WriteActionFile(&AD)) != 0) ) {
|
|
bHaveError = TRUE;
|
|
}
|
|
|
|
/******************************************************************/
|
|
/* Copy icon files to home directory ~/.dt/icons */
|
|
/******************************************************************/
|
|
if ( !bHaveError && ((usRc = CopyIconFiles(&AD)) != 0) ) {
|
|
bHaveError = TRUE;
|
|
}
|
|
|
|
/*******************************************************************/
|
|
/* Reload action database and pop up confirmation message if */
|
|
/* operation was successful. */
|
|
/*******************************************************************/
|
|
if (!bHaveError) {
|
|
_DtTurnOnHourGlass(CreateActionAppShell);
|
|
if (!DbInitDone) {
|
|
DtInitialize(UxDisplay, UxTopLevel, pszExecName, pszExecName);
|
|
DtDbLoad();
|
|
DbInitDone = TRUE;
|
|
}
|
|
DtActionInvoke(UxTopLevel, "ReloadActions",
|
|
NULL, 0, NULL, NULL, NULL, 0, NULL, NULL);
|
|
|
|
_DtTurnOffHourGlass(CreateActionAppShell);
|
|
|
|
msgPtr1 = XtNewString(GETMESSAGE(5, 70, "The new action"));
|
|
msgPtr2 = XtNewString(GETMESSAGE(5, 71,
|
|
"has been placed in your home folder."));
|
|
#ifdef UNDO_CMVC_3571
|
|
msgPtr3 = XtNewString(GETMESSAGE(5, 73,
|
|
"The action definition file that was created is called:"));
|
|
fmtPtr = "%s\n\n %s\n\n%s\n\n%s\n %s";
|
|
#else
|
|
fmtPtr = "%s\n\n %s\n\n%s";
|
|
#endif
|
|
|
|
bufPtr = XtMalloc((strlen(msgPtr1) + strlen(msgPtr2) +
|
|
strlen(AD.pszName) +
|
|
#ifdef UNDO_CMVC_3571
|
|
strlen(msgPtr3) + strlen(pszFile) +
|
|
#endif
|
|
strlen(fmtPtr) + 1) * sizeof(char));
|
|
|
|
sprintf(bufPtr, fmtPtr, msgPtr1, AD.pszName, msgPtr2
|
|
#ifdef UNDO_CMVC_3571
|
|
, msgPtr3, pszFile
|
|
#endif
|
|
);
|
|
|
|
display_confirmed_message(CreateActionAppShell, bufPtr);
|
|
|
|
XtFree(bufPtr);
|
|
#ifdef UNDO_CMVC_3571
|
|
XtFree(msgPtr3);
|
|
#endif
|
|
XtFree(msgPtr2);
|
|
XtFree(msgPtr1);
|
|
|
|
}
|
|
|
|
/*******************************************************************/
|
|
/* Update the copy of the AD structure. This will be used to */
|
|
/* determine if the user has saved the most recent data before */
|
|
/* exiting. */
|
|
/*******************************************************************/
|
|
FreeAndClearAD(pMyCopyAD);
|
|
XtFree((char *) pMyCopyAD);
|
|
pMyCopyAD = copyAD(&AD);
|
|
|
|
}
|
|
|
|
|
|
static void questionCB_ReplaceFile(Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg)
|
|
{
|
|
CreateFiles();
|
|
XtDestroyWidget(XtParent(UxWidget));
|
|
}
|
|
|
|
static void questionCB_CancelSave(Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg)
|
|
{
|
|
XtDestroyWidget(XtParent(UxWidget));
|
|
}
|
|
|
|
|
|
void activateCB_CA_MB_FileSave(Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg)
|
|
|
|
{
|
|
ushort usRc = 0;
|
|
char *pszActionFile = NULL;
|
|
char *msgPtr, *bufPtr;
|
|
Boolean bHaveError = FALSE;
|
|
struct stat statbuf;
|
|
char *newName;
|
|
char *pszEnvVar;
|
|
|
|
/*********************************************************************/
|
|
/* Check that required fields are filled in for main window. */
|
|
/*********************************************************************/
|
|
if (!CreateActionAppShellCheckFields()) {
|
|
|
|
/*******************************************************************/
|
|
/* Query fields from main window and save into structure. */
|
|
/*******************************************************************/
|
|
readCAFromGUI(&AD);
|
|
|
|
/*******************************************************************/
|
|
/* Write the files. */
|
|
/*******************************************************************/
|
|
#ifdef UNDO_CMVC_4662
|
|
if (pszFileToEdit) {
|
|
strcpy(pszFile, pszFileToEdit);
|
|
} else {
|
|
#endif
|
|
|
|
/****************************************************************/
|
|
/* Create Action file name. */
|
|
/****************************************************************/
|
|
newName = ReplaceSpaces(AD.pszName);
|
|
pszActionFile = NULL;
|
|
pszEnvVar = getenv("HOME");
|
|
if ( pszEnvVar && strlen(pszEnvVar) ) {
|
|
pszActionFile = malloc(strlen(pszEnvVar)+strlen(newName)+10);
|
|
if (pszActionFile)
|
|
sprintf(pszActionFile, "%s/%s", pszEnvVar, newName);
|
|
} else {
|
|
msgPtr = GETMESSAGE(5, 170,
|
|
"The HOME environment variable is not set.\n\
|
|
The HOME environment variable must be set in order\n\
|
|
for this action to be saved.");
|
|
bufPtr = XtNewString(msgPtr);
|
|
display_error_message(CreateActionAppShell, bufPtr);
|
|
XtFree(bufPtr);
|
|
bHaveError = TRUE;
|
|
}
|
|
|
|
/****************************************************************/
|
|
/* Check if action file exists and flag a warning if it does. */
|
|
/****************************************************************/
|
|
if ( (!bHaveError) &&
|
|
(pszActionFile) &&
|
|
(!stat(pszActionFile, &statbuf)) ) {
|
|
|
|
/* INTERNATIONALIZE */
|
|
msgPtr = "A file named\n\n %s\n\n\
|
|
already exists in your home folder.\n\
|
|
The existing file may be an application,\n\
|
|
data file, or an action file.\n\n\
|
|
What do you want to do?";
|
|
bufPtr = XtMalloc((strlen(msgPtr) + strlen(newName) + 1) *
|
|
sizeof(char));
|
|
sprintf(bufPtr, msgPtr, newName);
|
|
|
|
/* INTERNATIONALIZE */
|
|
display_question_message(CreateActionAppShell, bufPtr,
|
|
"Replace", questionCB_ReplaceFile,
|
|
"Cancel Save", questionCB_CancelSave,
|
|
(char *)NULL, (XtCallbackProc)NULL);
|
|
XtFree(bufPtr);
|
|
bHaveError = True;
|
|
}
|
|
|
|
/****************************************************************/
|
|
/* Now we are done with the newName variable and can free. */
|
|
/****************************************************************/
|
|
XtFree(newName);
|
|
|
|
#ifdef UNDO_CMVC_4662
|
|
}
|
|
#endif
|
|
|
|
if (!bHaveError) {
|
|
CreateFiles();
|
|
}
|
|
|
|
}
|
|
|
|
XtFree(pszActionFile);
|
|
}
|
|
|
|
static void activateCB_CA_FiletypesDelete( Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg)
|
|
{
|
|
int *poslist, poscnt;
|
|
int *p, n;
|
|
XmString *items;
|
|
FiletypeData **papArray;
|
|
int i, k;
|
|
int cnt;
|
|
Boolean bFound;
|
|
char *msgPtr1, *msgPtr2, *fmtPtr, *errPtr;
|
|
size_t len;
|
|
|
|
/**************************************************************************/
|
|
/* Determine the filetypes to delete and delete them. */
|
|
/**************************************************************************/
|
|
XtVaGetValues(FileTypes, XmNitems, &items, NULL);
|
|
if (XmListGetSelectedPos(FileTypes, &poslist, &poscnt)) {
|
|
n = poscnt;
|
|
p = poslist + (n-1);
|
|
while (n--) {
|
|
/*********************************************************************/
|
|
/* Delete the filetype name from the listbox. */
|
|
/*********************************************************************/
|
|
XmListDeleteItem(FileTypes, items[*p -1]);
|
|
p--;
|
|
}
|
|
|
|
/***********************************************************************/
|
|
/* Remove the filetypes from the filetype array in the ActionData */
|
|
/* structure. */
|
|
/***********************************************************************/
|
|
if ((AD.cFiletypes - poscnt) > 0) {
|
|
if ( papArray = (FiletypeData **) XtMalloc(sizeof(FiletypeData *) * (AD.cFiletypes - poscnt)) ) {
|
|
cnt = 0;
|
|
for (i = 0; i < AD.cFiletypes; i++) {
|
|
bFound = FALSE;
|
|
for (k = 0; k < poscnt; k++) {
|
|
if ((i + 1) == poslist[k]) {
|
|
bFound = TRUE;
|
|
break;
|
|
}
|
|
}
|
|
/**************************************************************/
|
|
/* If did not find this element in the delete list, then add */
|
|
/* it back to our good list. */
|
|
/* Else do not include in the good list and free its memory. */
|
|
/**************************************************************/
|
|
if (!bFound) {
|
|
papArray[cnt] = AD.papFiletypes[i];
|
|
cnt++;
|
|
} else {
|
|
free_Filetypedata(AD.papFiletypes[i]);
|
|
}
|
|
}
|
|
if (AD.papFiletypes) {
|
|
XtFree((XtPointer)AD.papFiletypes);
|
|
}
|
|
AD.papFiletypes = papArray;
|
|
AD.cFiletypes = cnt;
|
|
}
|
|
} else {
|
|
/********************************************************************/
|
|
/* Delete the entire array. */
|
|
/********************************************************************/
|
|
for (i = 0; i < AD.cFiletypes; i++) {
|
|
free_Filetypedata(AD.papFiletypes[i]);
|
|
}
|
|
AD.papFiletypes = (FiletypeData **)NULL;
|
|
AD.cFiletypes = 0;
|
|
}
|
|
} else {
|
|
msgPtr1 = XtNewString(GETMESSAGE(5, 120,
|
|
"You have not selected a Datatype from the\n\
|
|
'Datatypes That Use This Action' list."));
|
|
msgPtr2 = XtNewString(GETMESSAGE(5, 125,
|
|
"Please select the Datatype you would like to Delete."));
|
|
fmtPtr = "%s\n%s";
|
|
len = (strlen(msgPtr1) + strlen(msgPtr2) + strlen(fmtPtr) + 2);
|
|
errPtr = XtMalloc(len);
|
|
snprintf(errPtr,len - 1, fmtPtr, msgPtr1, msgPtr2);
|
|
XtFree(msgPtr2);
|
|
XtFree(msgPtr1);
|
|
display_error_message(CreateActionAppShell, errPtr);
|
|
XtFree(errPtr);
|
|
}
|
|
}
|
|
|
|
#if 0
|
|
/*****************************************************************************/
|
|
/* */
|
|
/* valueChangedCB_CA_WinType */
|
|
/* */
|
|
/*****************************************************************************/
|
|
static void valueChangedCB_CA_WinType( Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg)
|
|
{
|
|
Boolean bSetToggle;
|
|
|
|
bSetToggle = ((XmToggleButtonCallbackStruct *)UxCallbackArg)->set;
|
|
#ifdef DEBUG
|
|
printf("Wintype change before %X\n", AD.fsFlags);
|
|
#endif
|
|
switch ((int)UxClientData) {
|
|
case CA_WT_XWINDOWS :
|
|
if (bSetToggle) AD.fsFlags |= CA_WT_XWINDOWS;
|
|
else AD.fsFlags &= (~(CA_WT_XWINDOWS));
|
|
break;
|
|
case CA_WT_TERM :
|
|
if (bSetToggle) AD.fsFlags |= CA_WT_TERM;
|
|
else AD.fsFlags &= (~(CA_WT_TERM));
|
|
break;
|
|
case CA_WT_PERMTERM :
|
|
if (bSetToggle) AD.fsFlags |= CA_WT_PERMTERM;
|
|
else AD.fsFlags &= (~(CA_WT_PERMTERM));
|
|
break;
|
|
}
|
|
#ifdef DEBUG
|
|
printf("Wintype change after %X\n", AD.fsFlags);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
/* */
|
|
/* valueChangedCB_DroppableFiletypes */
|
|
/* */
|
|
/*****************************************************************************/
|
|
static void valueChangedCB_DroppableFiletypes( Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg)
|
|
{
|
|
if (((XmToggleButtonCallbackStruct *)UxCallbackArg)->set) {
|
|
AD.fsFlags |= CA_DF_ONLYFTFILES;
|
|
} else {
|
|
AD.fsFlags &= (~(CA_DF_ONLYFTFILES));
|
|
}
|
|
}
|
|
|
|
/*****************************************************************************/
|
|
/* */
|
|
/* simpleCB_WindowTypeOptionMenu */
|
|
/* */
|
|
/*****************************************************************************/
|
|
static void activateCB_WindowTypeOptionMenu( Widget UxWidget,
|
|
XtPointer UxClientData,
|
|
XtPointer UxCallbackArg)
|
|
{
|
|
AD.fsFlags &= (~(CA_WT_XWINDOWS | CA_WT_TERM | CA_WT_PERMTERM));
|
|
switch ((int)(XtArgVal)UxClientData) {
|
|
case CA_WT_XWINDOWS :
|
|
AD.fsFlags |= CA_WT_XWINDOWS;
|
|
break;
|
|
case CA_WT_TERM :
|
|
AD.fsFlags |= CA_WT_TERM;
|
|
break;
|
|
case CA_WT_PERMTERM :
|
|
AD.fsFlags |= CA_WT_PERMTERM;
|
|
break;
|
|
}
|
|
}
|
|
|
|
/*******************************************************************************
|
|
The 'build_' function creates all the widgets
|
|
using the resource values specified in the Property Editor.
|
|
*******************************************************************************/
|
|
|
|
static Widget _Uxbuild_CreateActionAppShell(void)
|
|
{
|
|
Widget _UxParent;
|
|
Widget CA_MB_FileOption_shell;
|
|
Widget CA_MB_HelpOption_shell;
|
|
Widget CA_MB_Help_Sep1;
|
|
Widget CA_MB_Help_Sep2;
|
|
Widget CA_MB_OptionsOption_shell;
|
|
char *UxTmp0;
|
|
|
|
Widget CA_WindowType_OptionMenuShell;
|
|
Widget CA_WindowType_Pane;
|
|
Widget CA_WindowType_OptionMenu;
|
|
char mnemonic[2];
|
|
XtArgVal /* Dimension */ dim1, dim2;
|
|
Widget CA_MED_IconForm, CA_TINY_IconForm, CA_LRG_IconForm;
|
|
IconData *pIconData;
|
|
|
|
XmString emptyString;
|
|
char titleBuf[MAXBUFSIZE];
|
|
|
|
#define ICON_MIN_HEIGHT 83
|
|
#define FINDEDIT_SPACING 6
|
|
#define BORDER_OFFSET 3
|
|
|
|
/* Creation of CreateActionAppShell */
|
|
_UxParent = UxParent;
|
|
if ( _UxParent == NULL )
|
|
{
|
|
_UxParent = UxTopLevel;
|
|
}
|
|
|
|
snprintf(titleBuf, sizeof(titleBuf), "%s", GETMESSAGE(3, 10, "Create Action"));
|
|
CreateActionAppShell = XtVaCreatePopupShell( "CreateActionAppShell",
|
|
applicationShellWidgetClass,
|
|
_UxParent,
|
|
/*
|
|
XmNx, 35,
|
|
XmNy, 8,
|
|
XmNminWidth, -1,
|
|
XmNminHeight, -1,
|
|
*/
|
|
XmNiconName, titleBuf,
|
|
XmNtitle, titleBuf,
|
|
XmNallowShellResize, TRUE,
|
|
XmNheight, 550,
|
|
XmNdeleteResponse, XmDO_NOTHING, /* CDExc19440 */
|
|
NULL );
|
|
|
|
/* CDExc19440 - make sure user doesn't accidentally lose work. */
|
|
XmAddWMProtocolCallback(CreateActionAppShell,
|
|
XmInternAtom(UxDisplay,
|
|
"WM_DELETE_WINDOW",
|
|
False),
|
|
activateCB_FileQuit,
|
|
(XtPointer)NULL);
|
|
|
|
if (bLowRes) {
|
|
/* Creation of CreateActionMainWindow */
|
|
CreateActionMainWindow = XtVaCreateManagedWidget( "CreateActionMainWindow",
|
|
xmMainWindowWidgetClass,
|
|
CreateActionAppShell,
|
|
XmNunitType, XmPIXELS,
|
|
XmNx, 0,
|
|
XmNy, 0,
|
|
XmNscrollingPolicy, XmAUTOMATIC,
|
|
NULL );
|
|
} else {
|
|
/* Creation of CreateActionMainWindow */
|
|
CreateActionMainWindow = XtVaCreateManagedWidget( "CreateActionMainWindow",
|
|
xmMainWindowWidgetClass,
|
|
CreateActionAppShell,
|
|
XmNunitType, XmPIXELS,
|
|
XmNx, 0,
|
|
XmNy, 0,
|
|
NULL );
|
|
}
|
|
XtAddCallback( CreateActionMainWindow, XmNhelpCallback,
|
|
(XtCallbackProc) helpCB_general,
|
|
(XtPointer) HELP_ONITEM );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* MenuBar */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_MenuBar */
|
|
CA_MenuBar = XtVaCreateManagedWidget( "CA_MenuBar",
|
|
xmRowColumnWidgetClass,
|
|
CreateActionMainWindow,
|
|
XmNrowColumnType, XmMENU_BAR,
|
|
XmNmenuAccelerator, "<KeyUp>F10",
|
|
XmNpacking, XmPACK_TIGHT,
|
|
XmNentryAlignment, XmALIGNMENT_BEGINNING,
|
|
XmNorientation, XmHORIZONTAL,
|
|
NULL );
|
|
|
|
/* Creation of CA_MB_FileOption */
|
|
CA_MB_FileOption_shell = XtVaCreatePopupShell ("CA_MB_FileOption_shell",
|
|
xmMenuShellWidgetClass, CA_MenuBar,
|
|
XmNwidth, 1,
|
|
XmNheight, 1,
|
|
XmNallowShellResize, TRUE,
|
|
XmNoverrideRedirect, TRUE,
|
|
NULL );
|
|
|
|
CA_MB_FileOption = XtVaCreateWidget( "CA_MB_FileOption",
|
|
xmRowColumnWidgetClass,
|
|
CA_MB_FileOption_shell,
|
|
XmNrowColumnType, XmMENU_PULLDOWN,
|
|
NULL );
|
|
|
|
/* Creation of CA_MB_FileNew */
|
|
/*
|
|
mnemonic = GETMESSAGE(2, 21, "N");
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 21, "N"));
|
|
CA_MB_FileNew = XtVaCreateManagedWidget( "CA_MB_FileNew",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_FileOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 20, "New")),
|
|
XmNmnemonic, mnemonic[0],
|
|
NULL );
|
|
XtAddCallback( CA_MB_FileNew, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_FileNew,
|
|
(XtPointer) NULL );
|
|
|
|
/* Creation of CA_MB_FileOpen */
|
|
/*
|
|
mnemonic = GETMESSAGE(2, 16, "O");
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 16, "O"));
|
|
CA_MB_FileOpen = XtVaCreateManagedWidget( "CA_MB_FileOpen",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_FileOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 15, "Open...")),
|
|
XmNmnemonic, mnemonic[0],
|
|
NULL );
|
|
XtAddCallback( CA_MB_FileOpen, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_FileOpen,
|
|
(XtPointer) NULL );
|
|
|
|
/* Creation of CA_MB_FileSave */
|
|
/*
|
|
mnemonic = GETMESSAGE(2, 26, "S");
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 26, "S"));
|
|
CA_MB_FileSave = XtVaCreateManagedWidget( "CA_MB_FileSave",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_FileOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 25, "Save")),
|
|
XmNmnemonic, mnemonic[0],
|
|
NULL );
|
|
XtAddCallback( CA_MB_FileSave, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_CA_MB_FileSave,
|
|
(XtPointer) NULL );
|
|
|
|
/* Creation of CA_MB_Sep */
|
|
CA_MB_Sep = XtVaCreateManagedWidget( "CA_MB_Sep",
|
|
xmSeparatorWidgetClass,
|
|
CA_MB_FileOption,
|
|
NULL );
|
|
|
|
/* Creation of CA_MB_FileExit */
|
|
/*
|
|
mnemonic = GETMESSAGE(2, 31, "x");
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 31, "x"));
|
|
CA_MB_FileExit = XtVaCreateManagedWidget( "CA_MB_FileExit",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_FileOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 30, "Exit")),
|
|
XmNmnemonic, mnemonic[0],
|
|
NULL );
|
|
XtAddCallback( CA_MB_FileExit, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_FileQuit,
|
|
(XtPointer) NULL );
|
|
|
|
/* Creation of CA_MB_FileTop */
|
|
/*
|
|
mnemonic = GETMESSAGE(2, 11, "F");
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 11, "F"));
|
|
CA_MB_FileTop = XtVaCreateManagedWidget( "CA_MB_FileTop",
|
|
xmCascadeButtonWidgetClass,
|
|
CA_MenuBar,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 10, "File")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNsubMenuId, CA_MB_FileOption,
|
|
NULL );
|
|
|
|
/* Creation of CA_MB_HelpOption */
|
|
CA_MB_HelpOption_shell = XtVaCreatePopupShell ("CA_MB_HelpOption_shell",
|
|
xmMenuShellWidgetClass, CA_MenuBar,
|
|
XmNwidth, 1,
|
|
XmNheight, 1,
|
|
XmNallowShellResize, TRUE,
|
|
XmNoverrideRedirect, TRUE,
|
|
NULL );
|
|
|
|
CA_MB_HelpOption = XtVaCreateWidget( "CA_MB_HelpOption",
|
|
xmRowColumnWidgetClass,
|
|
CA_MB_HelpOption_shell,
|
|
XmNrowColumnType, XmMENU_PULLDOWN,
|
|
NULL );
|
|
|
|
/*
|
|
* Creation of CA_MB_HelpOverview
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 61, "v"));
|
|
CA_MB_HelpOverview = XtVaCreateManagedWidget( "CA_MB_HelpOverview",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_HelpOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 60, "Overview")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNuserData, CreateActionAppShell,
|
|
NULL );
|
|
XtAddCallback( CA_MB_HelpOverview, XmNactivateCallback,
|
|
(XtCallbackProc) helpCB_general,
|
|
(XtPointer) HELP_OVERVIEW );
|
|
|
|
/*
|
|
* Creation of CA_MB_HelpTasks
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 71, "T"));
|
|
CA_MB_HelpTasks = XtVaCreateManagedWidget( "CA_MB_HelpTasks",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_HelpOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 70, "Tasks")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNuserData, CreateActionAppShell,
|
|
NULL );
|
|
XtAddCallback( CA_MB_HelpTasks, XmNactivateCallback,
|
|
(XtCallbackProc) helpCB_general,
|
|
(XtPointer) HELP_TASKS );
|
|
|
|
#if 0
|
|
/* Creation of CA_MB_HelpTOC */
|
|
/*
|
|
mnemonic = GETMESSAGE(2, 66, "T");
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 66, "T"));
|
|
CA_MB_HelpTOC = XtVaCreateManagedWidget( "CA_MB_HelpTOC",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_HelpOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 65, "Table Of Contents...")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNuserData, CreateActionAppShell,
|
|
NULL );
|
|
#endif
|
|
/*
|
|
* Creation of CA_MB_HelpReference
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 76, "R"));
|
|
CA_MB_HelpReference = XtVaCreateManagedWidget( "CA_MB_HelpReference",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_HelpOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 75, "Reference")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNuserData, CreateActionAppShell,
|
|
NULL );
|
|
XtAddCallback( CA_MB_HelpReference, XmNactivateCallback,
|
|
(XtCallbackProc) helpCB_general,
|
|
(XtPointer) HELP_REFERENCE );
|
|
|
|
/*
|
|
* Creation of CA_MB_Help_Sep1
|
|
*/
|
|
CA_MB_Help_Sep1 = XtVaCreateManagedWidget( "CA_MB_Help_Sep1",
|
|
xmSeparatorWidgetClass,
|
|
CA_MB_HelpOption,
|
|
NULL );
|
|
|
|
/*
|
|
* Creation of CA_MB_HelpUsing
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 81, "U"));
|
|
CA_MB_HelpUsing = XtVaCreateManagedWidget( "CA_MB_HelpUsing",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_HelpOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 80, "Using Help")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNuserData, CreateActionAppShell,
|
|
NULL );
|
|
XtAddCallback( CA_MB_HelpUsing, XmNactivateCallback,
|
|
(XtCallbackProc) helpCB_general,
|
|
(XtPointer) HELP_USING );
|
|
|
|
/*
|
|
* Creation of CA_MB_Help_Sep2
|
|
*/
|
|
CA_MB_Help_Sep2 = XtVaCreateManagedWidget( "CA_MB_Help_Sep2",
|
|
xmSeparatorWidgetClass,
|
|
CA_MB_HelpOption,
|
|
NULL );
|
|
|
|
/*
|
|
* Creation of CA_MB_HelpAbout
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 86, "A"));
|
|
CA_MB_HelpAbout = XtVaCreateManagedWidget( "CA_MB_HelpAbout",
|
|
xmPushButtonWidgetClass,
|
|
CA_MB_HelpOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 85, "About Create Action")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNuserData, CreateActionAppShell,
|
|
NULL );
|
|
XtAddCallback( CA_MB_HelpAbout, XmNactivateCallback,
|
|
(XtCallbackProc) helpCB_general,
|
|
(XtPointer) HELP_ABOUT );
|
|
|
|
/*
|
|
* Creation of CA_MB_HelpTop
|
|
*/
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 54, "H"));
|
|
CA_MB_HelpTop = XtVaCreateManagedWidget( "CA_MB_HelpTop",
|
|
xmCascadeButtonWidgetClass,
|
|
CA_MenuBar,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 53, "Help")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNsubMenuId, CA_MB_HelpOption,
|
|
XmNuserData, CreateActionAppShell,
|
|
NULL );
|
|
|
|
/* Creation of CA_MB_OptionsOption */
|
|
CA_MB_OptionsOption_shell = XtVaCreatePopupShell ("CA_MB_OptionsOption_shell",
|
|
xmMenuShellWidgetClass, CA_MenuBar,
|
|
XmNwidth, 1,
|
|
XmNheight, 1,
|
|
XmNallowShellResize, TRUE,
|
|
XmNoverrideRedirect, TRUE,
|
|
NULL );
|
|
|
|
CA_MB_OptionsOption = XtVaCreateWidget( "CA_MB_OptionsOption",
|
|
xmRowColumnWidgetClass,
|
|
CA_MB_OptionsOption_shell,
|
|
XmNrowColumnType, XmMENU_PULLDOWN,
|
|
NULL );
|
|
|
|
/* Creation of ColorMonoOption */
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 50, "M"));
|
|
ColorMonoOption = XtVaCreateManagedWidget( "ColorMonoOption",
|
|
xmToggleButtonWidgetClass,
|
|
CA_MB_OptionsOption,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 49, "Show Monochrome Icons")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNindicatorSize, 20,
|
|
XmNhighlightThickness, 0,
|
|
NULL );
|
|
XtAddCallback( ColorMonoOption, XmNvalueChangedCallback,
|
|
(XtCallbackProc) valueChangedCB_ColorMonoOption,
|
|
(XtPointer) NULL );
|
|
createCB_ColorMonoOption(ColorMonoOption);
|
|
|
|
|
|
/* Creation of CA_MB_OptionTop */
|
|
snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 36, "O"));
|
|
CA_MB_OptionTop = XtVaCreateManagedWidget( "CA_MB_OptionTop",
|
|
xmCascadeButtonWidgetClass,
|
|
CA_MenuBar,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(2, 35, "Options")),
|
|
XmNmnemonic, mnemonic[0],
|
|
XmNsubMenuId, CA_MB_OptionsOption,
|
|
NULL );
|
|
|
|
/* Creation of CA_Form */
|
|
CA_Form = XtVaCreateManagedWidget( "CA_Form",
|
|
xmFormWidgetClass,
|
|
CreateActionMainWindow,
|
|
XmNnoResize, FALSE,
|
|
XmNresizePolicy, XmRESIZE_ANY,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Action Name */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_ActionNameLabel */
|
|
CA_ActionNameLabel = XtVaCreateManagedWidget( "CA_ActionNameLabel",
|
|
xmLabelWidgetClass,
|
|
CA_Form,
|
|
XmNx, 10,
|
|
XmNy, 30,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 12, "Action Name (Icon Label):")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 20,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
|
|
/* Creation of CA_ActionNameTextField */
|
|
CA_ActionNameTextField = XtVaCreateManagedWidget( "CA_ActionNameTextField",
|
|
xmTextFieldWidgetClass,
|
|
CA_Form,
|
|
XmNx, 10,
|
|
XmNy, 50,
|
|
XmNtopOffset, 0,
|
|
XmNtopWidget, CA_ActionNameLabel,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
#if 0
|
|
XtAddCallback( CA_ActionNameTextField, XmNvalueChangedCallback,
|
|
(XtCallbackProc) valueChangedCB_CA_ActionNameTextField,
|
|
(XtPointer) NULL );
|
|
#endif
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Icons */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_ActionIconLabel */
|
|
CA_ActionIconLabel = XtVaCreateManagedWidget( "CA_ActionIconLabel",
|
|
xmLabelWidgetClass,
|
|
CA_Form,
|
|
XmNx, 10,
|
|
XmNy, 95,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 13, "Action Icons:")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 15,
|
|
XmNtopWidget, CA_ActionNameTextField,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
|
|
/* Creation of CA_ActionIconForm */
|
|
CA_ActionIconForm = XtVaCreateManagedWidget( "CA_ActionIconForm",
|
|
xmFormWidgetClass,
|
|
CA_Form,
|
|
XmNresizePolicy, XmRESIZE_NONE,
|
|
XmNx, 10,
|
|
XmNy, 121,
|
|
XmNborderWidth, 0,
|
|
XmNnavigationType, XmTAB_GROUP,
|
|
XmNtopOffset, 0,
|
|
XmNtopWidget, CA_ActionIconLabel,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNshadowThickness, 3,
|
|
XmNshadowType, XmSHADOW_ETCHED_IN,
|
|
XmNautoUnmanage, FALSE,
|
|
XmNnoResize, FALSE,
|
|
XmNallowOverlap, TRUE,
|
|
XmNmarginHeight, 0,
|
|
XmNverticalSpacing, 5,
|
|
NULL );
|
|
|
|
CA_MED_IconForm = XtVaCreateManagedWidget( "CA_MED_IconForm",
|
|
xmFormWidgetClass,
|
|
CA_ActionIconForm,
|
|
XmNresizePolicy, XmRESIZE_NONE,
|
|
XmNborderWidth, ICON_BORDER_WIDTH,
|
|
XmNleftPosition, 32,
|
|
XmNleftOffset, 0,
|
|
XmNleftAttachment, XmATTACH_POSITION,
|
|
XmNbottomPosition, 88,
|
|
XmNbottomOffset, 0,
|
|
XmNbottomAttachment, XmATTACH_POSITION,
|
|
NULL );
|
|
|
|
/* Creation of CA_MED_IconGadget */
|
|
emptyString = XmStringCreateLocalized("");
|
|
pIconData = (IconData *)XtMalloc(sizeof(IconData));
|
|
memset(pIconData, 0, sizeof(IconData));
|
|
IconDataList[CA_MED] = pIconData;
|
|
CA_MED_IconGadget = XtVaCreateManagedWidget( "CA_MED_IconGadget",
|
|
dtIconGadgetClass,
|
|
CA_MED_IconForm,
|
|
XmNalignment, XmALIGNMENT_CENTER,
|
|
XmNuserData, pIconData,
|
|
XmNstring, emptyString,
|
|
XmNrecomputeSize, TRUE,
|
|
XmNleftOffset, BORDER_OFFSET,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, BORDER_OFFSET,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, BORDER_OFFSET,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNbottomOffset, BORDER_OFFSET,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
/*
|
|
XmNleftPosition, 32,
|
|
XmNleftOffset, 0,
|
|
XmNleftAttachment, XmATTACH_POSITION,
|
|
XmNbottomPosition, 88,
|
|
XmNbottomOffset, 0,
|
|
XmNbottomAttachment, XmATTACH_POSITION,
|
|
*/
|
|
NULL );
|
|
pIconData->wid = CA_MED_IconGadget;
|
|
pIconData->size = Medium_Icon;
|
|
XtAddCallback( CA_MED_IconGadget, XmNcallback,
|
|
(XtCallbackProc) activateCB_action_icon,
|
|
(XtPointer) NULL );
|
|
createCB_IconGadget( CA_MED_IconGadget, TRUE, Medium_Icon );
|
|
last_action_pushed = CA_MED_IconGadget;
|
|
|
|
CA_TINY_IconForm = XtVaCreateManagedWidget( "CA_TINY_IconForm",
|
|
xmFormWidgetClass,
|
|
CA_ActionIconForm,
|
|
XmNresizePolicy, XmRESIZE_NONE,
|
|
XmNborderWidth, 0,
|
|
XmNleftPosition, 52,
|
|
XmNleftOffset, 1,
|
|
XmNleftAttachment, XmATTACH_POSITION,
|
|
XmNbottomPosition, 88,
|
|
XmNbottomOffset, 0,
|
|
XmNbottomAttachment, XmATTACH_POSITION,
|
|
NULL );
|
|
|
|
/* Creation of CA_TINY_IconGadget */
|
|
pIconData = (IconData *)XtMalloc(sizeof(IconData));
|
|
memset(pIconData, 0, sizeof(IconData));
|
|
IconDataList[CA_TINY] = pIconData;
|
|
CA_TINY_IconGadget = XtVaCreateManagedWidget( "CA_TINY_IconGadget",
|
|
dtIconGadgetClass,
|
|
CA_TINY_IconForm,
|
|
XmNalignment, XmALIGNMENT_CENTER,
|
|
XmNuserData, pIconData,
|
|
XmNrecomputeSize, TRUE,
|
|
XmNstring, emptyString,
|
|
XmNleftOffset, BORDER_OFFSET,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, BORDER_OFFSET,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, BORDER_OFFSET,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNbottomOffset, BORDER_OFFSET,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
pIconData->wid = CA_TINY_IconGadget;
|
|
pIconData->size = Tiny_Icon;
|
|
XtAddCallback( CA_TINY_IconGadget, XmNcallback,
|
|
(XtCallbackProc) activateCB_action_icon,
|
|
(XtPointer) NULL );
|
|
createCB_IconGadget( CA_TINY_IconGadget, TRUE, Tiny_Icon );
|
|
|
|
CA_LRG_IconForm = XtVaCreateManagedWidget( "CA_LRG_IconForm",
|
|
xmFormWidgetClass,
|
|
CA_ActionIconForm,
|
|
XmNresizePolicy, XmRESIZE_NONE,
|
|
XmNborderWidth, 0,
|
|
XmNleftPosition, 11,
|
|
XmNleftOffset, -1,
|
|
XmNleftAttachment, XmATTACH_POSITION,
|
|
XmNbottomPosition, 88,
|
|
XmNbottomOffset, 0,
|
|
XmNbottomAttachment, XmATTACH_POSITION,
|
|
NULL );
|
|
|
|
/* Creation of CA_LRG_IconGadget */
|
|
pIconData = (IconData *)XtMalloc(sizeof(IconData));
|
|
memset(pIconData, 0, sizeof(IconData));
|
|
IconDataList[CA_LRG] = pIconData;
|
|
CA_LRG_IconGadget = XtVaCreateManagedWidget( "CA_LRG_IconGadget",
|
|
dtIconGadgetClass,
|
|
CA_LRG_IconForm,
|
|
XmNalignment, XmALIGNMENT_CENTER,
|
|
XmNuserData, pIconData,
|
|
XmNstring, emptyString,
|
|
XmNrecomputeSize, TRUE,
|
|
XmNleftOffset, BORDER_OFFSET,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, BORDER_OFFSET,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, BORDER_OFFSET,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNbottomOffset, BORDER_OFFSET,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
pIconData->wid = CA_LRG_IconGadget;
|
|
pIconData->size = Large_Icon;
|
|
XtAddCallback( CA_LRG_IconGadget, XmNcallback,
|
|
(XtCallbackProc) activateCB_action_icon,
|
|
(XtPointer) NULL );
|
|
createCB_IconGadget( CA_LRG_IconGadget, TRUE, Large_Icon );
|
|
|
|
XmStringFree(emptyString);
|
|
|
|
/* Creation of CA_EditIcon_button */
|
|
CA_EditIcon_button = XtVaCreateManagedWidget( "CA_EditIcon_button",
|
|
xmPushButtonGadgetClass,
|
|
CA_ActionIconForm,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(6, 20, "Edit Icon...")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNleftPosition, 68,
|
|
XmNleftOffset, 1,
|
|
XmNleftAttachment, XmATTACH_POSITION,
|
|
XmNtopPosition, 50,
|
|
XmNtopOffset, (int)(FINDEDIT_SPACING / 2),
|
|
XmNtopAttachment, XmATTACH_POSITION,
|
|
NULL );
|
|
XtAddCallback( CA_EditIcon_button, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_edit_icon,
|
|
(XtPointer) CA_ACTION_ICONS );
|
|
|
|
/* Creation of CA_FindSet_button */
|
|
CA_FindSet_button = XtVaCreateManagedWidget( "CA_FindSet_button",
|
|
xmPushButtonGadgetClass,
|
|
CA_ActionIconForm,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(6, 19, "Find Set...")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNmultiClick, XmMULTICLICK_DISCARD,
|
|
XmNleftPosition, 68,
|
|
XmNleftOffset, 0,
|
|
XmNleftAttachment, XmATTACH_POSITION,
|
|
XmNbottomPosition, 50,
|
|
XmNbottomOffset, (int)(FINDEDIT_SPACING / 2),
|
|
XmNbottomAttachment, XmATTACH_POSITION,
|
|
NULL );
|
|
XtAddCallback( CA_FindSet_button, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_open_FindSet,
|
|
(XtPointer) CA_ACTION_ICONS );
|
|
|
|
/******************************************************************/
|
|
/* Determine which button is wider, and attach the short on to it */
|
|
/******************************************************************/
|
|
XtVaGetValues(CA_EditIcon_button, XmNwidth, &dim1, NULL);
|
|
XtVaGetValues(CA_FindSet_button, XmNwidth, &dim2, NULL);
|
|
if (dim1 > dim2) {
|
|
XtVaSetValues(CA_FindSet_button,
|
|
XmNwidth, dim1,
|
|
NULL);
|
|
} else {
|
|
XtVaSetValues(CA_EditIcon_button,
|
|
XmNwidth, dim2,
|
|
NULL);
|
|
}
|
|
/******************************************************************/
|
|
/* Determine vertical positioning for findset and edit buttons */
|
|
/******************************************************************/
|
|
XtVaGetValues(CA_EditIcon_button, XmNheight, &dim1, NULL);
|
|
XtVaGetValues(CA_FindSet_button, XmNheight, &dim2, NULL);
|
|
if ((int)(dim1 + dim2) + (3*(FINDEDIT_SPACING)) > ICON_MIN_HEIGHT) {
|
|
XtVaSetValues(CA_EditIcon_button,
|
|
XmNbottomOffset, FINDEDIT_SPACING,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
NULL);
|
|
XtVaSetValues(CA_FindSet_button,
|
|
XmNbottomOffset, FINDEDIT_SPACING,
|
|
XmNbottomWidget, CA_EditIcon_button,
|
|
XmNbottomAttachment, XmATTACH_WIDGET,
|
|
XmNtopOffset, FINDEDIT_SPACING,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
NULL);
|
|
}
|
|
|
|
|
|
/******************************************************************/
|
|
/* Bogus separator to keep ActionIconForm a minimum height */
|
|
/******************************************************************/
|
|
separator1 = XtVaCreateManagedWidget( "separator1",
|
|
xmSeparatorWidgetClass,
|
|
CA_ActionIconForm,
|
|
XmNx, 10,
|
|
XmNy, 10,
|
|
XmNwidth, 20,
|
|
XmNheight, ICON_MIN_HEIGHT,
|
|
XmNorientation, XmVERTICAL,
|
|
XmNseparatorType, XmNO_LINE,
|
|
XmNtopOffset, 5,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNbottomOffset, 5,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Open Command */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_DblClkLabel */
|
|
CA_DblClkLabel = XtVaCreateManagedWidget( "CA_DblClkLabel",
|
|
xmLabelWidgetClass,
|
|
CA_Form,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 22, "Command When Action Is Opened (Double-clicked):")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 15,
|
|
XmNtopWidget, CA_ActionIconForm,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
|
|
/* Creation of CA_DblClkText */
|
|
CA_DblClkText = XtVaCreateManagedWidget( "CA_DblClkText",
|
|
xmTextFieldWidgetClass,
|
|
CA_Form,
|
|
XmNnavigationType, XmTAB_GROUP,
|
|
XmNtopOffset, 0,
|
|
XmNtopWidget, CA_DblClkLabel,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNrows, 1,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Help Text Label */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_HlpTxtLabel */
|
|
CA_HlpTxtLabel = XtVaCreateManagedWidget( "CA_HlpTxtLabel",
|
|
xmLabelWidgetClass,
|
|
CA_Form,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 30, "Help Text For Action Icon:")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 15,
|
|
XmNtopWidget, CA_DblClkText,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Advanced Features Area */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of XprtOptionForm */
|
|
XprtOptionForm = XtVaCreateManagedWidget( "XprtOptionForm",
|
|
xmFormWidgetClass,
|
|
CA_Form,
|
|
XmNresizePolicy, XmRESIZE_ANY,
|
|
XmNleftOffset, 1,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 1,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNbottomOffset, 0,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Optional Separator */
|
|
/* */
|
|
/*********************************************************************/
|
|
|
|
/* Creation of CA_XprtSep1 */
|
|
CA_XprtSep1 = XtVaCreateManagedWidget( "CA_XprtSep1",
|
|
xmSeparatorWidgetClass,
|
|
XprtOptionForm,
|
|
XmNleftOffset, 1,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 1,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 0,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Prompt Field */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_ActionOpenLabel */
|
|
CA_ActionOpenLabel = XtVaCreateManagedWidget( "CA_ActionOpenLabel",
|
|
xmLabelWidgetClass,
|
|
XprtOptionForm,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(4, 11, "When Action Opens, Ask Users for:")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 15,
|
|
XmNtopWidget, CA_XprtSep1,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
NULL );
|
|
|
|
/* Creation of CA_XprtActionOpenText */
|
|
CA_XprtActionOpenText = XtVaCreateManagedWidget( "CA_XprtActionOpenText",
|
|
xmTextWidgetClass,
|
|
XprtOptionForm,
|
|
XmNvalue, "",
|
|
XmNnavigationType, XmTAB_GROUP,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 0,
|
|
XmNtopWidget, CA_ActionOpenLabel,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
/*XmNeditMode, XmMULTI_LINE_EDIT,*/
|
|
/*XmNwordWrap, TRUE,*/
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Filetypes that use this Action area */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_FiletypesLabel */
|
|
CA_FiletypesLabel = XtVaCreateManagedWidget( "CA_FiletypesLabel",
|
|
xmLabelWidgetClass,
|
|
XprtOptionForm,
|
|
XmNx, 10,
|
|
XmNy, 122,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(4, 12, "Datatypes That Use This Action:")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 15,
|
|
XmNtopWidget, CA_XprtActionOpenText,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Add, Delete, Edit buttons for Filetypes */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of rowColumn1 */
|
|
rowColumn1 = XtVaCreateManagedWidget( "rowColumn1",
|
|
xmRowColumnWidgetClass,
|
|
XprtOptionForm,
|
|
XmNnavigationType, XmTAB_GROUP,
|
|
XmNtopOffset, 0,
|
|
XmNtopWidget, CA_FiletypesLabel,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
|
|
/* Creation of CA_FiletypesAdd */
|
|
CA_FiletypesAdd = XtVaCreateManagedWidget( "CA_FiletypesAdd",
|
|
xmPushButtonGadgetClass,
|
|
rowColumn1,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(4, 13, "Add...")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNmarginLeft, 5,
|
|
XmNmarginRight, 5,
|
|
NULL );
|
|
XtAddCallback( CA_FiletypesAdd, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_add_filetype,
|
|
(XtPointer) NULL );
|
|
|
|
/* Creation of CA_FiletypesDelete */
|
|
CA_FiletypesDelete = XtVaCreateManagedWidget( "CA_FiletypesDelete",
|
|
xmPushButtonGadgetClass,
|
|
rowColumn1,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(4, 14, "Delete")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNmarginLeft, 5,
|
|
XmNmarginRight, 5,
|
|
NULL );
|
|
XtAddCallback( CA_FiletypesDelete, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_CA_FiletypesDelete,
|
|
(XtPointer) NULL );
|
|
|
|
/* Creation of CA_FiletypesEdit */
|
|
CA_FiletypesEdit = XtVaCreateManagedWidget( "CA_FiletypesEdit",
|
|
xmPushButtonGadgetClass,
|
|
rowColumn1,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(4, 15, "Edit...")),
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
XmNmarginLeft, 5,
|
|
XmNmarginRight, 5,
|
|
NULL );
|
|
XtAddCallback( CA_FiletypesEdit, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_edit_filetype,
|
|
(XtPointer) NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Filetypes Listbox Area */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_FiletypesWindow */
|
|
CA_FiletypesWindow = XtVaCreateManagedWidget( "CA_FiletypesWindow",
|
|
xmScrolledWindowWidgetClass,
|
|
XprtOptionForm,
|
|
XmNx, 10,
|
|
XmNy, 140,
|
|
XmNshadowThickness, 2,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 0,
|
|
XmNtopWidget, CA_FiletypesLabel,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNbottomOffset, 0,
|
|
XmNbottomWidget, rowColumn1,
|
|
XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
|
|
XmNrightOffset, 10,
|
|
XmNrightWidget, rowColumn1,
|
|
XmNrightAttachment, XmATTACH_WIDGET,
|
|
NULL );
|
|
|
|
/* Creation of CA_FiletypesList */
|
|
CA_FiletypesList = XtVaCreateManagedWidget( "CA_FiletypesList",
|
|
xmListWidgetClass,
|
|
CA_FiletypesWindow,
|
|
XmNselectionPolicy, XmSINGLE_SELECT,
|
|
XmNshadowThickness, 0,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Droppable Filetypes Toggle Area */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_DroppableFiletypesLabel */
|
|
CA_DroppableFiletypesLabel = XtVaCreateManagedWidget( "CA_DroppableFiletypesLabel",
|
|
xmLabelWidgetClass,
|
|
XprtOptionForm,
|
|
XmNx, 10,
|
|
XmNy, 204,
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(4, 16, "Dropable Datatypes:")),
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNtopOffset, 15,
|
|
XmNtopWidget, rowColumn1,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
NULL );
|
|
|
|
if (bLowRes) {
|
|
/* Creation of CA_DroppableFiletypesRowColumn */
|
|
CA_DroppableFiletypesRowColumn = XtVaCreateManagedWidget( "CA_DroppableFiletypesRowColumn",
|
|
xmRowColumnWidgetClass,
|
|
XprtOptionForm,
|
|
XmNx, 200,
|
|
XmNy, 204,
|
|
RES_CONVERT( XmNlabelString, "" ),
|
|
XmNorientation, XmHORIZONTAL,
|
|
XmNpacking, XmPACK_TIGHT,
|
|
XmNradioBehavior, TRUE,
|
|
XmNwhichButton, 1,
|
|
XmNnavigationType, XmTAB_GROUP,
|
|
XmNtopOffset, 0,
|
|
XmNtopWidget, CA_DroppableFiletypesLabel,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNbottomOffset, 0,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
} else {
|
|
/* Creation of CA_DroppableFiletypesRowColumn */
|
|
CA_DroppableFiletypesRowColumn = XtVaCreateManagedWidget( "CA_DroppableFiletypesRowColumn",
|
|
xmRowColumnWidgetClass,
|
|
XprtOptionForm,
|
|
RES_CONVERT( XmNlabelString, "" ),
|
|
XmNorientation, XmHORIZONTAL,
|
|
XmNpacking, XmPACK_TIGHT,
|
|
XmNradioBehavior, TRUE,
|
|
XmNwhichButton, 1,
|
|
XmNnavigationType, XmTAB_GROUP,
|
|
XmNtopOffset, -7,
|
|
XmNtopWidget, CA_DroppableFiletypesLabel,
|
|
XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
|
|
XmNbottomOffset, 0,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
XmNleftOffset, 0,
|
|
XmNleftWidget, CA_DroppableFiletypesLabel,
|
|
XmNleftAttachment, XmATTACH_WIDGET,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
NULL );
|
|
}
|
|
|
|
/* Creation of CA_AllFiletypesToggle */
|
|
CA_AllFiletypesToggle = XtVaCreateManagedWidget( "CA_AllFiletypesToggle",
|
|
xmToggleButtonWidgetClass,
|
|
CA_DroppableFiletypesRowColumn,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(4, 17, "All Datatypes")),
|
|
XmNset, TRUE,
|
|
NULL );
|
|
|
|
/* Creation of CA_FiletypesInListToggle */
|
|
CA_FiletypesInListToggle = XtVaCreateManagedWidget( "CA_FiletypesInListToggle",
|
|
xmToggleButtonWidgetClass,
|
|
CA_DroppableFiletypesRowColumn,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(4, 18, "Only Above List")),
|
|
NULL );
|
|
XtAddCallback( CA_FiletypesInListToggle, XmNvalueChangedCallback,
|
|
(XtCallbackProc) valueChangedCB_DroppableFiletypes,
|
|
(XtPointer) CA_DF_ONLYFTFILES );
|
|
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Expand button */
|
|
/* */
|
|
/*********************************************************************/
|
|
CA_Expand = XtVaCreateManagedWidget( "CA_Expand",
|
|
xmPushButtonWidgetClass,
|
|
CA_Form,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 50, "Advanced")),
|
|
XmNmultiClick, XmMULTICLICK_DISCARD,
|
|
XmNnavigationType, XmTAB_GROUP,
|
|
XmNmarginLeft, 5,
|
|
XmNmarginRight, 5,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNbottomOffset, 20,
|
|
XmNbottomWidget, XprtOptionForm,
|
|
XmNbottomAttachment, XmATTACH_WIDGET,
|
|
NULL );
|
|
XtAddCallback( CA_Expand, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_ExpertOption,
|
|
(XtPointer) NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Start of WindowType Option Menu */
|
|
/* */
|
|
/*********************************************************************/
|
|
CA_WindowType_OptionMenuShell = XtVaCreatePopupShell ("CA_WindowType_OptionMenuShell",
|
|
xmMenuShellWidgetClass,
|
|
CA_Form,
|
|
XmNwidth, 1,
|
|
XmNheight, 1,
|
|
XmNallowShellResize, TRUE,
|
|
XmNoverrideRedirect, TRUE,
|
|
NULL );
|
|
|
|
CA_WindowType_Pane = XtVaCreateWidget( "CA_WindowType_Pane",
|
|
xmRowColumnWidgetClass,
|
|
/*CA_WindowType,*/
|
|
CA_WindowType_OptionMenuShell,
|
|
XmNrowColumnType, XmMENU_PULLDOWN,
|
|
NULL );
|
|
|
|
CA_WinTypeX = XtVaCreateManagedWidget( "CA_WinTypeX",
|
|
xmPushButtonWidgetClass,
|
|
CA_WindowType_Pane,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 34, "Graphical (X-Window)")),
|
|
NULL );
|
|
XtAddCallback( CA_WinTypeX, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_WindowTypeOptionMenu,
|
|
(XtPointer) CA_WT_XWINDOWS );
|
|
|
|
CA_WinTypeAutoClose = XtVaCreateManagedWidget( "CA_WinTypeAutoClose",
|
|
xmPushButtonWidgetClass,
|
|
CA_WindowType_Pane,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 36, "Terminal (Auto-Close)")),
|
|
NULL );
|
|
XtAddCallback( CA_WinTypeAutoClose, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_WindowTypeOptionMenu,
|
|
(XtPointer) CA_WT_TERM );
|
|
|
|
CA_WinTypeManualClose = XtVaCreateManagedWidget( "CA_WinTypeManualClose",
|
|
xmPushButtonWidgetClass,
|
|
CA_WindowType_Pane,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 38, "Terminal (Manual Close)")),
|
|
NULL );
|
|
XtAddCallback( CA_WinTypeManualClose, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_WindowTypeOptionMenu,
|
|
(XtPointer) CA_WT_PERMTERM );
|
|
|
|
CA_WinTypeNoOutput = XtVaCreateManagedWidget( "CA_WinTypeNoOutput",
|
|
xmPushButtonWidgetClass,
|
|
CA_WindowType_Pane,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 40, "No Output")),
|
|
NULL );
|
|
XtAddCallback( CA_WinTypeNoOutput, XmNactivateCallback,
|
|
(XtCallbackProc) activateCB_WindowTypeOptionMenu,
|
|
(XtPointer) CA_WT_XWINDOWS );
|
|
|
|
CA_WindowType_OptionMenu = XtVaCreateManagedWidget( "CA_WindowType_OptionMenu",
|
|
xmRowColumnWidgetClass,
|
|
CA_Form,
|
|
XmNrowColumnType, XmMENU_OPTION,
|
|
XmNsubMenuId, CA_WindowType_Pane,
|
|
RES_CONVERT( XmNlabelString, GETMESSAGE(3, 32, "Window Type: ")),
|
|
XmNnavigationType, XmTAB_GROUP,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNbottomOffset, 15,
|
|
XmNbottomWidget, CA_Expand,
|
|
XmNbottomAttachment, XmATTACH_WIDGET,
|
|
NULL );
|
|
CA_WindowTypeArea = CA_WindowType_OptionMenu;
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Help Text Window */
|
|
/* */
|
|
/*********************************************************************/
|
|
/* Creation of CA_HelpTextWindow */
|
|
CA_HelpTextWindow = XtVaCreateManagedWidget( "CA_HelpTextWindow",
|
|
xmScrolledWindowWidgetClass,
|
|
CA_Form,
|
|
XmNx, 10,
|
|
XmNy, 336,
|
|
XmNshadowThickness, 0,
|
|
XmNtopOffset, 0,
|
|
XmNtopWidget, CA_HlpTxtLabel,
|
|
XmNtopAttachment, XmATTACH_WIDGET,
|
|
XmNleftOffset, 10,
|
|
XmNleftAttachment, XmATTACH_FORM,
|
|
XmNrightOffset, 10,
|
|
XmNrightAttachment, XmATTACH_FORM,
|
|
XmNbottomOffset, 15,
|
|
XmNbottomWidget, CA_WindowTypeArea,
|
|
XmNbottomAttachment, XmATTACH_WIDGET,
|
|
NULL );
|
|
|
|
/* Creation of CA_HelpText */
|
|
CA_HelpText = XtVaCreateManagedWidget( "CA_HelpText",
|
|
xmTextWidgetClass,
|
|
CA_HelpTextWindow,
|
|
XmNeditMode, XmMULTI_LINE_EDIT ,
|
|
XmNscrollVertical, TRUE,
|
|
XmNscrollHorizontal, FALSE,
|
|
XmNwordWrap, TRUE,
|
|
XmNx, 12,
|
|
XmNy, 0,
|
|
XmNrows, 3,
|
|
NULL );
|
|
|
|
/*********************************************************************/
|
|
/* */
|
|
/* Misc. */
|
|
/* */
|
|
/*********************************************************************/
|
|
XtVaSetValues(CA_MenuBar,
|
|
XmNmenuHelpWidget, CA_MB_HelpTop,
|
|
NULL );
|
|
|
|
XtAddCallback( CreateActionAppShell, XmNdestroyCallback,
|
|
(XtCallbackProc) UxDestroyContextCB,
|
|
(XtPointer) NULL );
|
|
|
|
XmMainWindowSetAreas( CreateActionMainWindow, CA_MenuBar, (Widget) NULL,
|
|
(Widget) NULL, (Widget) NULL, CA_Form );
|
|
|
|
return ( CreateActionAppShell );
|
|
}
|
|
|
|
/*******************************************************************************
|
|
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_applicationShell1(swidget _UxUxParent)
|
|
{
|
|
Widget rtrn;
|
|
_UxCCreateActionAppShell *UxContext;
|
|
Dimension dimHeight;
|
|
Dimension dimWidth;
|
|
Dimension dimTmp;
|
|
Widget widTmp;
|
|
|
|
UxCreateActionAppShellContext = UxContext =
|
|
(_UxCCreateActionAppShell *) UxNewContext( sizeof(_UxCCreateActionAppShell), False );
|
|
|
|
UxParent = _UxUxParent;
|
|
|
|
rtrn = _Uxbuild_CreateActionAppShell();
|
|
|
|
/******************************************************************/
|
|
/* Need to realize app shell widget now, because we need to */
|
|
/* determine initial geometry before the advanced area is */
|
|
/* unmanaged in set_ca_dialog_height routine. */
|
|
/******************************************************************/
|
|
XtSetMappedWhenManaged(rtrn, False);
|
|
XtRealizeWidget(rtrn);
|
|
XmProcessTraversal(CA_ActionNameTextField, XmTRAVERSE_CURRENT);
|
|
|
|
FileTypes = (Widget)CA_FiletypesList;
|
|
|
|
set_ca_dialog_height ();
|
|
|
|
if (sessiondata.useSession) {
|
|
XtVaSetValues (CreateActionAppShell,
|
|
XmNx, sessiondata.x,
|
|
XmNy, sessiondata.y,
|
|
XmNwidth, sessiondata.width,
|
|
XmNheight, sessiondata.height,
|
|
XmNinitialState, sessiondata.iconicState,
|
|
NULL);
|
|
|
|
/* display in workspace */
|
|
|
|
if (sessiondata.workspaces[0])
|
|
{
|
|
char *workspaces = sessiondata.workspaces;
|
|
char *ptr;
|
|
Atom * workspace_atoms = NULL;
|
|
int num_workspaces = 0;
|
|
do
|
|
{
|
|
ptr = strchr (workspaces, '*');
|
|
if (ptr != NULL) *ptr = '\0';
|
|
|
|
workspace_atoms = (Atom *) XtRealloc (
|
|
(char *)workspace_atoms,
|
|
sizeof (Atom) * (num_workspaces + 1));
|
|
workspace_atoms[num_workspaces] = XmInternAtom(
|
|
XtDisplay(CreateActionAppShell),
|
|
workspaces, True);
|
|
|
|
num_workspaces++;
|
|
if (ptr != NULL)
|
|
{
|
|
*ptr = '*';
|
|
workspaces = ptr + 1;
|
|
}
|
|
} while (ptr != NULL);
|
|
DtWsmSetWorkspacesOccupied( XtDisplay(CreateActionAppShell),
|
|
XtWindow(CreateActionAppShell),
|
|
workspace_atoms,
|
|
num_workspaces);
|
|
XtFree ((char *) workspace_atoms);
|
|
workspace_atoms = NULL;
|
|
}
|
|
}
|
|
else if (bLowRes) {
|
|
XtVaGetValues (CA_Form,
|
|
XmNheight, &dimHeight,
|
|
XmNwidth, &dimWidth,
|
|
NULL);
|
|
XtVaGetValues (CreateActionMainWindow,
|
|
XmNverticalScrollBar, &widTmp,
|
|
NULL);
|
|
XtVaGetValues (widTmp,
|
|
XmNwidth, &dimTmp,
|
|
NULL);
|
|
dimHeight += dimTmp;
|
|
dimWidth += dimTmp;
|
|
|
|
XtVaGetValues (CA_MenuBar,
|
|
XmNheight, &dimTmp,
|
|
NULL);
|
|
dimHeight += dimTmp;
|
|
|
|
XtVaSetValues (CreateActionAppShell,
|
|
XmNheight, dimHeight,
|
|
XmNwidth, dimWidth,
|
|
NULL);
|
|
}
|
|
|
|
XtSetMappedWhenManaged(rtrn, True);
|
|
XtManageChild(rtrn);
|
|
|
|
return(rtrn);
|
|
}
|
|
|
|
/*******************************************************************************
|
|
END OF FILE
|
|
*******************************************************************************/
|
|
|