|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 3020 (0xbcc) Types: TextFile Names: »message.c«
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12 └─⟦c319c2751⟧ »unix3.0/TeX3.0.tar.Z« └─⟦036c765ac⟧ └─⟦this⟧ »TeX3.0/MFcontrib/fonttool/message.c« └─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89 └─⟦this⟧ »./tex82/MFcontrib/fonttool/message.c« └─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12 └─⟦63303ae94⟧ »unix3.14/TeX3.14.tar.Z« └─⟦c58930e5c⟧ └─⟦this⟧ »TeX3.14/MFcontrib/fonttool/message.c«
/* * File: * * message.c * * Author: * * Brad Rullman * Department of Computer Science FR-35 * University of Washington * Seattle, Washington 98155 * email: ecola@cs.washington.edu * * Copyright @ March, 1987 - This program, or any subset of the functions * herein, is not to be redistributed, or used for personal or commercial * gain in the form of fame, fortune, or shorter working hours, without * the consent of the author. * * Function: * * A file of functions which implement the interface to the * Message subwindow. * * Contents: * * Public: * * InitMessageSW Initializes the Message subwindow. * ShowMsg Displays a message in the MessageSW. * ClearMsg Clears MessageSW if it contains an error msg. * Confirm Forces user to confirm an action with mouse. * * Private: * */ #include "global.h" #include <suntool/fullscreen.h> static Panel_item msgBox; static int errorMsgDisplayed = 0; /* * InitMessageSW * * Input: * none. * Output: * none. * Action: * Create a panel window for displaying messages from FontTool. */ void InitMessageSW() { MessageSW = window_create(FontToolFrame, PANEL, 0); msgBox = panel_create_item(MessageSW, PANEL_MESSAGE, PANEL_LABEL_STRING, "Welcome to FontTool. Left button paints, \ middle erases, right undoes.", WIN_CURSOR, MainCursor, 0); window_fit_height(MessageSW); } /* * ShowMsg * * Input: * msg: A message to be displayed in the Message subwindow. * Output: * none. * Action: * Prints the given message in the Message subwindow. If it's an * error message, it rings a bell and flashes the MessageSW. */ void ShowMsg(msg) char *msg; { if (*msg == '*') { errorMsgDisplayed++; window_bell(MessageSW); } else { errorMsgDisplayed = 0; } panel_set(msgBox, PANEL_LABEL_STRING, msg, 0); } /* * ClearMsg * * Input: * none. * Output: * none. * Action: * Clears the Message subwindow IF it is currently displaying * an error message, otherwise leaves it alone. */ void ClearMsg() { if (errorMsgDisplayed) { panel_set(msgBox, PANEL_LABEL_STRING, "", 0); } errorMsgDisplayed = 0; } /* * Confirm * * Input: * none. * Output: * 1 if the user has confirmed his action with the left mouse button, * 0 otherwise. * Action: * Waits for the user to confirm or cancel some action. This can be * done by pressing the appropriate mouse button anywhere on the screen. */ int Confirm() { int framefd; struct fullscreen *screen; Event event; int result; framefd = (int) window_get(FontToolFrame, WIN_FD); screen = fullscreen_init(framefd); while (1) { if (input_readevent(framefd, &event) == -1) { AbortWithError("Confirm: input_readevent failed."); } switch (event.ie_code) { case MS_LEFT: result = 1; break; case MS_MIDDLE: result = 0; break; case MS_RIGHT: result = 0; break; default: continue; } fullscreen_destroy(screen); ClearMsg(); return(result); } }