1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-25 10:47:00 +00:00

entered into RCS

This commit is contained in:
Paul Reilly 1994-09-16 17:37:05 +00:00
parent dfdcaf49f3
commit 2af916816f
2 changed files with 107 additions and 9 deletions

View File

@ -222,6 +222,8 @@ xaw_pop_instance (instance, up)
{
int x, y, w, h;
Widget topmost = instance->parent;
Arg args[2];
w = shell->core.width;
h = shell->core.height;
while (topmost->core.parent && XtIsRealized (topmost->core.parent))
@ -230,7 +232,12 @@ xaw_pop_instance (instance, up)
else x = topmost->core.x + ((topmost->core.width - w) / 2);
if (topmost->core.height < h) y = topmost->core.y;
else y = topmost->core.y + ((topmost->core.height - h) / 2);
XtMoveWidget (shell, x, y);
/* Using XtMoveWidget caused the widget to come
out in the wrong place with vtwm.
Question of virtual vs real coords, perhaps. */
XtSetArg (args[0], XtNx, x);
XtSetArg (args[1], XtNy, y);
XtSetValues (shell, args, 2);
}
/* Finally, pop it up. */
@ -617,9 +624,24 @@ xaw_create_scrollbar (instance)
#endif
}
static Widget
xaw_create_main (instance)
widget_instance *instance;
{
Arg al[1];
int ac;
/* Create a vertical Paned to hold menubar */
ac = 0;
XtSetArg (al[ac], XtNborderWidth, 0); ac++;
return XtCreateWidget (instance->info->name, panedWidgetClass,
instance->parent, al, ac);
}
widget_creation_entry
xaw_creation_table [] =
{
{"scrollbar", xaw_create_scrollbar},
{"main", xaw_create_main},
{NULL, NULL}
};

View File

@ -53,6 +53,10 @@ ERROR! At least one of USE_LUCID, USE_MOTIF or USE_OLIT must be defined.
ERROR! no more than one of USE_MOTIF and USE_OLIT may be defined.
#endif
#ifndef max
#define max(x, y) ((x) > (y) ? (x) : (y))
#endif
/* List of all widgets managed by the library. */
static widget_info*
all_widget_info = NULL;
@ -397,14 +401,6 @@ safe_strcmp (s1, s2)
return (s1 && s2) ? strcmp (s1, s2) : s1 ? False : !!s2;
}
static int
max (i1, i2)
int i1;
int i2;
{
return i1 > i2 ? i1 : i2;
}
#if 0
# define EXPLAIN(name, oc, nc, desc, a1, a2) \
@ -1299,3 +1295,83 @@ lw_show_busy (w, busy)
}
}
}
/* This hack exists because Lucid/Athena need to execute the strange
function below to support geometry management. */
void
lw_refigure_widget (w, doit)
Widget w;
Boolean doit;
{
#if defined (XAW)
XawPanedSetRefigureMode (w, doit);
#endif
#if defined (USE_MOTIF)
if (doit)
XtUnmanageChild (w);
else
XtManageChild (w);
#endif
}
/* Toolkit independent way of determining if an event window is in the
menubar. */
Boolean
lw_window_is_in_menubar (win, menubar_widget)
Window win;
Widget menubar_widget;
{
return menubar_widget
#if defined (USE_LUCID)
&& XtWindow (menubar_widget) == win;
#endif
#if defined (USE_MOTIF)
&& XtWindowToWidget (XtDisplay (menubar_widget), win)
&& (XtParent (XtWindowToWidget (XtDisplay (menubar_widget), win))
== menubar_widget);
#endif
}
/* Motif hack to set the main window areas. */
void
lw_set_main_areas (parent, menubar, work_area)
Widget parent;
Widget menubar;
Widget work_area;
{
#if defined (USE_MOTIF)
XmMainWindowSetAreas (parent,
menubar, /* menubar (maybe 0) */
0, /* command area (psheets) */
0, /* horizontal scroll */
0, /* vertical scroll */
work_area); /* work area */
#endif
}
/* Manage resizing for Motif. This disables resizing when the menubar
is about to be modified. */
void
lw_allow_resizing (w, flag)
Widget w;
Boolean flag;
{
#if defined (USE_MOTIF)
if (flag)
{
/* Enable the edit widget for resizing. */
Arg al[1];
XtSetArg (al[0], XtNallowShellResize, 0);
XtSetValues (w, al, 1);
}
else
{
/* Disable the edit widget from resizing. */
Arg al[1];
XtSetArg (al[0], XtNallowShellResize, 0);
XtSetValues (w, al, 1);
}
#endif
}