151 lines
3.7 KiB
C
151 lines
3.7 KiB
C
|
/* $Xorg: log.c,v 1.4 2001/02/09 02:06:01 xorgcvs Exp $ */
|
|||
|
/******************************************************************************
|
|||
|
|
|||
|
Copyright 1994, 1998 The Open Group
|
|||
|
|
|||
|
Permission to use, copy, modify, distribute, and sell this software and its
|
|||
|
documentation for any purpose is hereby granted without fee, provided that
|
|||
|
the above copyright notice appear in all copies and that both that
|
|||
|
copyright notice and this permission notice appear in supporting
|
|||
|
documentation.
|
|||
|
|
|||
|
The above copyright notice and this permission notice shall be included in
|
|||
|
all copies or substantial portions of the Software.
|
|||
|
|
|||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|||
|
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|||
|
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
|
|||
|
Except as contained in this notice, the name of The Open Group shall not be
|
|||
|
used in advertising or otherwise to promote the sale, use or other dealings
|
|||
|
in this Software without prior written authorization from The Open Group.
|
|||
|
******************************************************************************/
|
|||
|
/* $XFree86: xc/programs/xsm/log.c,v 1.4 2001/01/17 23:46:29 dawes Exp $ */
|
|||
|
|
|||
|
#include "xsm.h"
|
|||
|
#include "save.h"
|
|||
|
#include "popup.h"
|
|||
|
#include "log.h"
|
|||
|
|
|||
|
#include <X11/Shell.h>
|
|||
|
#include <X11/Xaw/Form.h>
|
|||
|
#include <X11/Xaw/Command.h>
|
|||
|
#include <X11/Xaw/AsciiText.h>
|
|||
|
|
|||
|
Widget logPopup;
|
|||
|
Widget logForm;
|
|||
|
Widget logText;
|
|||
|
Widget logOkButton;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
void
|
|||
|
DisplayLogXtProc(Widget w, XtPointer client_data, XtPointer callData)
|
|||
|
{
|
|||
|
static int first_time = 1;
|
|||
|
|
|||
|
if (client_log_visible)
|
|||
|
{
|
|||
|
/* Make sure it is visible */
|
|||
|
|
|||
|
XMapRaised (XtDisplay (topLevel), XtWindow (logPopup));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
PopupPopup (mainWindow, logPopup,
|
|||
|
False, first_time, 50, 50, "DelLogWinAction()");
|
|||
|
|
|||
|
client_log_visible = 1;
|
|||
|
|
|||
|
if (first_time)
|
|||
|
first_time = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
static void
|
|||
|
logOkXtProc(Widget w, XtPointer client_data, XtPointer callData)
|
|||
|
{
|
|||
|
XtPopdown (logPopup);
|
|||
|
client_log_visible = 0;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
void
|
|||
|
add_log_text(char *str)
|
|||
|
{
|
|||
|
XawTextPosition pos = XawTextGetInsertionPoint (logText);
|
|||
|
XawTextBlock text;
|
|||
|
|
|||
|
text.firstPos = 0;
|
|||
|
text.length = strlen (str);
|
|||
|
text.ptr = str;
|
|||
|
text.format = XawFmt8Bit;
|
|||
|
|
|||
|
XawTextReplace (logText, pos, pos, &text);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
static void
|
|||
|
DelLogWinAction(Widget w, XEvent *event, String *params, Cardinal *num_params)
|
|||
|
{
|
|||
|
XtCallCallbacks (logOkButton, XtNcallback, NULL);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
void
|
|||
|
create_log_popup(void)
|
|||
|
|
|||
|
{
|
|||
|
/*
|
|||
|
* Pop up for session log
|
|||
|
*/
|
|||
|
|
|||
|
static XtActionsRec actions[] = {
|
|||
|
{"DelLogWinAction", DelLogWinAction}
|
|||
|
};
|
|||
|
|
|||
|
XtAppAddActions (appContext, actions, XtNumber (actions));
|
|||
|
|
|||
|
logPopup = XtVaCreatePopupShell ("logPopup",
|
|||
|
topLevelShellWidgetClass, topLevel,
|
|||
|
XtNallowShellResize, True,
|
|||
|
NULL);
|
|||
|
|
|||
|
logForm = XtVaCreateManagedWidget (
|
|||
|
"logForm", formWidgetClass, logPopup,
|
|||
|
NULL);
|
|||
|
|
|||
|
logText = XtVaCreateManagedWidget (
|
|||
|
"logText", asciiTextWidgetClass, logForm,
|
|||
|
XtNfromHoriz, NULL,
|
|||
|
XtNfromVert, NULL,
|
|||
|
XtNeditType, XawtextAppend,
|
|||
|
XtNdisplayCaret, False,
|
|||
|
XtNscrollVertical, XawtextScrollAlways,
|
|||
|
XtNscrollHorizontal, XawtextScrollWhenNeeded,
|
|||
|
XtNresizable, True,
|
|||
|
XtNtop, XawChainTop,
|
|||
|
XtNbottom, XawChainBottom,
|
|||
|
NULL);
|
|||
|
|
|||
|
logOkButton = XtVaCreateManagedWidget (
|
|||
|
"logOkButton", commandWidgetClass, logForm,
|
|||
|
XtNfromHoriz, NULL,
|
|||
|
XtNfromVert, logText,
|
|||
|
XtNtop, XawChainBottom,
|
|||
|
XtNbottom, XawChainBottom,
|
|||
|
XtNleft, XawChainLeft,
|
|||
|
XtNright, XawChainLeft,
|
|||
|
NULL);
|
|||
|
|
|||
|
XtAddCallback (logOkButton, XtNcallback, logOkXtProc, 0);
|
|||
|
}
|