X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=cde%2Fprograms%2Fdtlogin%2Fdtchooser.c;h=d299a26805102501764cd9961c6f0b504eaa12d2;hb=751505e6ab7f594cb03fa378b7b8edbcb82e8cb0;hp=9fc02da1344c524a5f2a95844935195a1c263af4;hpb=83b6996daa2c5ae22fc2b69093814cb08314954a;p=oweals%2Fcde.git
diff --git a/cde/programs/dtlogin/dtchooser.c b/cde/programs/dtlogin/dtchooser.c
index 9fc02da1..d299a268 100644
--- a/cde/programs/dtlogin/dtchooser.c
+++ b/cde/programs/dtlogin/dtchooser.c
@@ -1,3 +1,25 @@
+/*
+ * 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: dtchooser.c /main/8 1998/04/20 12:56:18 mgreess $ */
/* *
* (c) Copyright 1993, 1994 Hewlett-Packard Company *
@@ -67,8 +89,9 @@
#include "vgmsg.h"
#include
-
-
+#ifdef USE_XINERAMA
+#include
+#endif
/***************************************************************************
@@ -242,6 +265,13 @@ static
XtRString, sizeof(char *), XtOffset(AppInfoPtr, languageList),
XtRString, NULL },
+#if defined(USE_XINERAMA)
+ { "xineramaPreferredScreen", "XineramaPreferredScreen",
+ XtRInt, sizeof(int), XtOffset(AppInfoPtr, xineramaPreferredScreen),
+ XtRImmediate, (XtPointer) 0
+ },
+#endif
+
#if defined (ENABLE_DYNAMIC_LANGLIST)
{"languageListCmd", "LanguageListCmd",
XtRString, sizeof(char *), XtOffset(AppInfoPtr, languageListCmd),
@@ -286,7 +316,7 @@ MakeRootCursor( void )
void
MakeBackground( void )
{
- register int i;
+ int i;
/*
* Get resources first
@@ -400,7 +430,7 @@ MakeBackground( void )
void
MakeButtons( void )
{
- register int i;
+ int i;
Dimension width;
@@ -629,19 +659,20 @@ MakeChooser( void )
void
MakeDialog( DialogType dtype )
{
- register int i, j;
+ int i, j;
int width;
- FILE *fp, *fopen();
+ FILE *fp = NULL, *fopen();
char buffer[128];
char *str;
Widget w, text;
Dimension txt_width, txt_height;
XmString ok, cancel, nw, sv;
-
-
+
+ Widget tlev;
+
/*
* do things common to all dialogs...
*/
@@ -662,13 +693,25 @@ MakeDialog( DialogType dtype )
* create the various dialogs...
*/
+ /* JET - check the matte widget, and if non-null, well use that as
+ * the parent for dialogs. Otherwise use table (the original
+ * toplevel widget for this func). This is useful for Xinerama so
+ * that child dialogs are centered on the matte, and not the whole
+ * SLS screen.
+ */
+ if (matte != (Widget)NULL)
+ tlev = matte;
+ else
+ tlev = table;
+
+
switch (dtype) {
case error:
xmstr = ReadCatalogXms(MC_ERROR_SET, MC_LOGIN, "");
XtSetArg(argt[i], XmNmessageString, xmstr ); i++;
- w = XmCreateErrorDialog(table, "error_message", argt, i);
+ w = XmCreateErrorDialog(tlev, "error_message", argt, i);
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_CANCEL_BUTTON));
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));
@@ -679,7 +722,7 @@ MakeDialog( DialogType dtype )
case help:
xmstr = ReadCatalogXms(MC_HELP_SET, MC_HELP, MC_DEF_HELP);
XtSetArg(argt[i], XmNmessageString, xmstr ); i++;
- w = XmCreateInformationDialog(table, "help_message", argt, i);
+ w = XmCreateInformationDialog(tlev, "help_message", argt, i);
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_CANCEL_BUTTON));
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));
@@ -706,13 +749,8 @@ MakeDialog( DialogType dtype )
case copyright:
if ((fp = fopen(COPYRIGHT,"r")) == NULL)
-#if defined( __hp_osf )
- xmstr = XmStringCreate("Cannot open copyright file '/usr/X11/copyright'.",
- XmFONTLIST_DEFAULT_TAG);
-#else
xmstr = XmStringCreate("Cannot open copyright file '/etc/copyright'.",
XmFONTLIST_DEFAULT_TAG);
-#endif
else {
xmstr = (XmString) NULL;
@@ -729,10 +767,12 @@ MakeDialog( DialogType dtype )
}
}
- fclose(fp);
+ if(fp) {
+ fclose(fp);
+ }
XtSetArg(argt[i], XmNmessageString, xmstr ); i++;
- w = XmCreateInformationDialog(table, "copyright_msg", argt, i);
+ w = XmCreateInformationDialog(tlev, "copyright_msg", argt, i);
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_CANCEL_BUTTON));
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));
@@ -752,7 +792,7 @@ MakeDialog( DialogType dtype )
XtSetArg(argt[i], XmNokLabelString, nw ); i++;
XtSetArg(argt[i], XmNcancelLabelString, sv ); i++;
- w = XmCreateWarningDialog(table, "hostname_msg", argt, i);
+ w = XmCreateWarningDialog(tlev, "hostname_msg", argt, i);
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));
@@ -769,7 +809,7 @@ MakeDialog( DialogType dtype )
MC_DEF_PASSWD_EXPIRED);
XtSetArg(argt[i], XmNmessageString, xmstr ); i++;
- w = XmCreateQuestionDialog(table, "password_msg", argt, i);
+ w = XmCreateQuestionDialog(tlev, "password_msg", argt, i);
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));
@@ -780,7 +820,7 @@ MakeDialog( DialogType dtype )
case help_chooser:
xmstr = ReadCatalogXms(MC_HELP_SET, MC_HELP_CHOOSER, MC_DEF_HELP_CHOOSER);
- w = XmCreateInformationDialog(table, "help_message", argt, i);
+ w = XmCreateInformationDialog(tlev, "help_message", argt, i);
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_CANCEL_BUTTON));
XtUnmanageChild(XmMessageBoxGetChild(w,XmDIALOG_HELP_BUTTON));
@@ -987,7 +1027,7 @@ MakeOptionsMenu( void )
static int
ErrorHandler( Display *dpy, XErrorEvent *event )
{
- return;
+ return 0;
}