/* $Header$ */
#include <stdio.h>
+#include <string.h>
#include <X11/StringDefs.h>
#include <X11/IntrinsicP.h>
#include <X11/Shell.h>
#include <X11/Core.h>
#include <X11/CoreP.h>
+#include <X11/CompositeP.h>
#include <Xm/Xm.h>
#include <Xm/BulletinB.h>
-#include <Xm/BulletinBP.h>
#include <Xm/Label.h>
#include <Xm/Text.h>
#include <Xm/TextP.h>
#include <Xm/ToggleB.h>
#include <Xm/ToggleBG.h>
#include <Xm/RowColumn.h>
-#include <Xm/RowColumnP.h>
#include <Xm/Separator.h>
#include <Xm/Traversal.h>
#include "mmoira.h"
int foo = 30;
Widget children[20];
static XtTranslations trans = NULL;
-#define newtrans "<FocusOut>: focusOut() MoiraFocusOut()"
-
for ( current = (*myinputlines), localy = 0, i = 0;
current;
if (current->type == FT_KEYWORD) {
char *p;
- p = index(current->prompt, '|');
+ p = strchr(current->prompt, '|');
if (p) {
*p++ = 0;
current->keyword_name = p;
XtAppAddActions(XtWidgetToApplicationContext(children[i]),
myactions, XtNumber(myactions));
- trans = XtParseTranslationTable(newtrans);
+ trans = XtParseTranslationTable(resources.text_trans);
}
XtOverrideTranslations(children[i], trans);
if (current->returnvalue.stringvalue) {
Dimension x, y, parent_y, oldheight, newheight;
Arg wargs[4];
Widget w;
- XmBulletinBoardWidget bb;
- XmRowColumnWidget rc;
static XtTranslations trans = NULL;
extern char form_override_table[];
int i;
MapWidgetToForm(w, form);
XmAddTabGroup(w);
if (newheight > oldheight) {
- bb = (XmBulletinBoardWidget) form->formpointer;
parent_y = y;
- for (i = 0; i < bb->composite.num_children; i++) {
+ for (i = 0; i < NumChildren(form->formpointer); i++) {
XtSetArg(wargs[0], XtNy, &y);
- XtGetValues(bb->composite.children[i], wargs, 1);
+ XtGetValues(NthChild(form->formpointer, i), wargs, 1);
if (y > parent_y) {
y = (y + newheight) - oldheight;
XtSetArg(wargs[0], XtNy, y);
- XtSetValues(bb->composite.children[i], wargs, 1);
+ XtSetValues(NthChild(form->formpointer, i), wargs, 1);
}
}
}
if (trans == NULL)
- trans = XtParseTranslationTable(form_override_table);
+ trans = XtParseTranslationTable(resources.form_trans);
XtOverrideTranslations(w, trans);
- rc = (XmRowColumnWidget) w;
- for (i = 0; i < rc->composite.num_children; i++)
- XtOverrideTranslations(rc->composite.children[i], trans);
+ for (i = 0; i < NumChildren(w); i++)
+ XtOverrideTranslations(NthChild(w, i), trans);
XtManageChild(w);
}
xmPushButtonWidgetClass,
parent, wargs, n);
- XtAddCallback( newbutton, XmNactivateCallback,
- current->returnfunction, spec);
+ XtAddCallback(newbutton, XmNactivateCallback,
+ (XtCallbackProc) current->returnfunction,
+ spec);
n = 0;
XtSetArg(wargs[n], XtNwidth, &newwidth); n++;
XtGetValues (newbutton, wargs, n);
XmTextRec *tr = (XmTextRec *)w;
int i;
- if (tr->core.self != w || tr->core.widget_class != xmTextWidgetClass)
+ if (!tr || tr->core.self != w || tr->core.widget_class != xmTextWidgetClass)
return;
newvalue = XmTextGetString(w);
f = WidgetToForm(w);
UserPrompt *current = (UserPrompt *)client_data;
EntryForm *form, *f;
int i;
- static MenuItem *mi = NULL;
+ static MenuItem mi;
if (current->keyword_name == NULL) {
PopupErrorMessage("Sorry, that keyword cannot be changed.", NULL);
if (form->inputlines[i] == current)
break;
f = GetAndClearForm("add_new_value");
- if (mi == NULL) {
- mi = (MenuItem *)malloc(sizeof(*mi));
- mi->operation = MM_NEW_VALUE;
- mi->query = "add_alias";
- mi->argc = 3;
- }
- mi->form = form->formname;
- mi->accel = (char *) i;
- f->menu = mi;
+ mi.operation = MM_NEW_VALUE;
+ mi.query = "add_alias";
+ mi.argc = 3;
+ mi.form = form->formname;
+ mi.accel = (char *) i;
+ f->menu = &mi;
f->extrastuff = current->keyword_name;
DisplayForm(f);
}
{
return((EntryForm *) hash_lookup(WFmap, w));
}
+
+
+/* Routines to deal with children of composite widgets */
+
+Widget NthChild(w, n)
+CompositeRec *w;
+int n;
+{
+ return(w->composite.children[n]);
+}
+
+int NumChildren(w)
+CompositeRec *w;
+{
+ return(w->composite.num_children);
+}