diff options
author | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2015-11-10 09:00:41 -0800 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2015-11-11 21:38:48 +0100 |
commit | 4f85a1eb76d1e7109bcc60ba6f3262a5654ac61b (patch) | |
tree | e996818c6aa6b6f702a6c805c447c20724eff265 /payloads/libpayload/curses/PDCurses-3.4/x11/ScrollBox.c | |
parent | 2ea24dabd658b8396e0abf79318a538ef0f3a5b8 (diff) |
libpayload: Rename PDCurses-3.4 to PDCurses
Change-Id: If881ec130833c7e7e62caa3d31e350a531f5bc8e
Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-on: http://review.coreboot.org/12398
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'payloads/libpayload/curses/PDCurses-3.4/x11/ScrollBox.c')
-rw-r--r-- | payloads/libpayload/curses/PDCurses-3.4/x11/ScrollBox.c | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/payloads/libpayload/curses/PDCurses-3.4/x11/ScrollBox.c b/payloads/libpayload/curses/PDCurses-3.4/x11/ScrollBox.c deleted file mode 100644 index e77d2c78ce..0000000000 --- a/payloads/libpayload/curses/PDCurses-3.4/x11/ScrollBox.c +++ /dev/null @@ -1,321 +0,0 @@ -/* - * Copyright 1989 O'Reilly and Associates, Inc. - - The X Consortium, and any party obtaining a copy of these files from - the X Consortium, directly or indirectly, is granted, free of charge, a - full and unrestricted irrevocable, world-wide, paid up, royalty-free, - nonexclusive right and license to deal in this software and - documentation files (the "Software"), including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons who receive - copies from any such party to do so. This license includes without - limitation a license to do the foregoing actions under any patents of - the party supplying this software to the X Consortium. - - $Id: ScrollBox.c,v 1.15 2008/07/14 04:24:52 wmcbrine Exp $ - */ - -/* ScrollBox.c - scrollBox composite widget */ - -#include <X11/IntrinsicP.h> -#include <X11/StringDefs.h> -#include <X11/Shell.h> - -#include "x11/ScrollBoxP.h" - -#include <stdio.h> - -#define INITIAL_WIDTH 300 -#define INITIAL_HEIGHT 300 - -/************************************************************************ - * * - * scrollBox Resources * - * * - ************************************************************************/ - -static XtResource resources[] = -{ - { XtNhSpace, XtCHSpace, XtRDimension, sizeof(Dimension), - XtOffset(ScrollBoxWidget, scrollBox.h_space), - XtRImmediate, (XtPointer)4 }, - { XtNvSpace, XtCVSpace, XtRDimension, sizeof(Dimension), - XtOffset(ScrollBoxWidget, scrollBox.v_space), - XtRImmediate, (XtPointer)4 }, - { XtNheightInc, XtCHeightInc, XtRDimension, sizeof(Dimension), - XtOffset(ScrollBoxWidget, scrollBox.increment_height), - XtRImmediate, (XtPointer)13 }, - { XtNwidthInc, XtCWidthInc, XtRDimension, sizeof(Dimension), - XtOffset(ScrollBoxWidget, scrollBox.increment_width), - XtRImmediate, (XtPointer)7 }, -}; - -/************************************************************************ - * * - * Full class record constant * - * * - ************************************************************************/ - -static void Initialize(Widget, Widget, ArgList, Cardinal *); -static void Resize(Widget); -static Boolean SetValues(Widget, Widget, Widget, ArgList, Cardinal *); -static void ChangeManaged(Widget); -static XtGeometryResult QueryGeometry(Widget, XtWidgetGeometry *, - XtWidgetGeometry *); -static XtGeometryResult GeometryManager(Widget, XtWidgetGeometry *, - XtWidgetGeometry *); -static void RefigureLocations(Widget); - -ScrollBoxClassRec scrollBoxClassRec = { - { - /* core_class fields */ - /* superclass */ (WidgetClass) &compositeClassRec, - /* class_name */ "scrollBox", - /* widget_size */ sizeof(ScrollBoxRec), - /* class_initialize */ NULL, - /* class_part_init */ NULL, - /* class_inited */ FALSE, - /* initialize */ Initialize, - /* initialize_hook */ NULL, - /* realize */ XtInheritRealize, - /* actions */ NULL, - /* num_actions */ 0, - /* resources */ resources, - /* num_resources */ XtNumber(resources), - /* xrm_class */ NULLQUARK, - /* compress_motion */ TRUE, - /* compress_exposure */ TRUE, - /* compress_enterleave */ TRUE, - /* visible_interest */ FALSE, - /* destroy */ NULL, - /* resize */ Resize, - /* expose */ NULL, - /* set_values */ SetValues, - /* set_values_hook */ NULL, - /* set_values_almost */ XtInheritSetValuesAlmost, - /* get_values_hook */ NULL, - /* accept_focus */ NULL, - /* version */ XtVersion, - /* callback_private */ NULL, - /* tm_table */ NULL, - /* query_geometry */ QueryGeometry, - /* display_accelerator */ XtInheritDisplayAccelerator, - /* extension */ NULL - },{ - /* composite_class fields */ - /* geometry_manager */ GeometryManager, - /* change_managed */ ChangeManaged, - /* insert_child */ XtInheritInsertChild, - /* delete_child */ XtInheritDeleteChild, - /* extension */ NULL - },{ - /* scrollBox class fields */ - /* empty */ 0, - } -}; - -WidgetClass scrollBoxWidgetClass = (WidgetClass)&scrollBoxClassRec; - - -/************************************************************************ - * * - * Private Routines * - * * - ************************************************************************/ - -/* Do a layout, either actually assigning positions, or just - calculating size. */ - -static void DoLayout(Widget w, Boolean doit) -{ - ScrollBoxWidget sbw = (ScrollBoxWidget)w; - Widget wmain, vscroll, hscroll, child; - Dimension mw, mh; /* main window */ - Dimension vh; /* vertical scrollbar length (height) */ - Dimension hw; /* horizontal scrollbar length (width) */ - Position vx; - Position hy; - Cardinal i; - - if (sbw->composite.num_children != 3) - XtAppError(XtWidgetToApplicationContext(w), - "ScrollBox: must manage exactly three widgets."); - - for (i = 0; i < sbw->composite.num_children; i++) - { - child = sbw->composite.children[i]; - - if (!XtIsManaged(child)) - XtAppError(XtWidgetToApplicationContext(w), - "ScrollBox: all three widgets must be managed."); - } - - /* Child one is the main window, two is the vertical scrollbar, - and three is the horizontal scrollbar. */ - - wmain = sbw->composite.children[0]; - vscroll = sbw->composite.children[1]; - hscroll = sbw->composite.children[2]; - - /* Size all three widgets so that space is fully utilized. */ - - mw = sbw->core.width - (2 * sbw->scrollBox.h_space) - - vscroll->core.width - (2 * vscroll->core.border_width) - - (2 * wmain->core.border_width); - - mh = sbw->core.height - (2 * sbw->scrollBox.v_space) - - hscroll->core.height - (2 * hscroll->core.border_width) - - (2 * wmain->core.border_width); - - /* Force the main window to be sized to the appropriate increment. */ - - mw = (mw / sbw->scrollBox.increment_width) * - sbw->scrollBox.increment_width; - - mh = ((mh / sbw->scrollBox.increment_height) * - sbw->scrollBox.increment_height) + - sbw->scrollBox.increment_height; - - vx = wmain->core.x + mw + sbw->scrollBox.h_space + - wmain->core.border_width + vscroll->core.border_width; - - hy = wmain->core.y + mh + sbw->scrollBox.v_space + - wmain->core.border_width + hscroll->core.border_width; - - vh = mh; /* scrollbars are always same length as main window */ - hw = mw; - - if (doit) - { - XtResizeWidget(wmain, mw, mh, 1); - - XtResizeWidget(vscroll, vscroll->core.width, vh, 1); - XtMoveWidget(vscroll, vx, vscroll->core.y); - - XtResizeWidget(hscroll, hw, hscroll->core.height, 1); - XtMoveWidget(hscroll, hscroll->core.x, hy); - } -} - -static XtGeometryResult GeometryManager(Widget w, XtWidgetGeometry *request, - XtWidgetGeometry *reply) -{ - XtWidgetGeometry allowed; - - if (request->request_mode & ~(XtCWQueryOnly | CWWidth | CWHeight)) - return XtGeometryNo; - - if (request->request_mode & CWWidth) - allowed.width = request->width; - else - allowed.width = w->core.width; - - if (request->request_mode & CWHeight) - allowed.height = request->height; - else - allowed.height = w->core.height; - - if (allowed.width == w->core.width && allowed.height == w->core.height) - return XtGeometryNo; - - if (!(request->request_mode & XtCWQueryOnly)) - RefigureLocations(w); - - return XtGeometryYes; -} - -static void RefigureLocations(Widget w) -{ - DoLayout(w, False); -} - -/* Calculate preferred size. We can't just use the current sizes - of the children, because that calculation would always end up with - our current size. Could query each child, and use that size to - recalculate a size for us, then if it ends up being larger than width - and height passed in, accept bounding box. However, we know our - children and they don't have any particular preferred geometry, - except the bigger the better. Therefore, if the parent suggested a - size, we'll take it. */ - -static XtGeometryResult QueryGeometry(Widget w, XtWidgetGeometry *request, - XtWidgetGeometry *reply_return) -{ - XtGeometryResult result=XtGeometryNo; - - request->request_mode &= CWWidth | CWHeight; - - /* parent isn't going to change w or h, so nothing to re-compute */ - - if (request->request_mode == 0) - return XtGeometryYes; - - /* if proposed size is large enough, accept it. Otherwise, suggest - our arbitrary initial size. */ - - if (request->request_mode & CWHeight) - { - if (request->height < INITIAL_HEIGHT) - { - result = XtGeometryAlmost; - reply_return->height = INITIAL_HEIGHT; - reply_return->request_mode &= CWHeight; - } - else - result = XtGeometryYes; - } - - if (request->request_mode & CWWidth) - { - if (request->width < INITIAL_WIDTH) - { - result = XtGeometryAlmost; - reply_return->width = INITIAL_WIDTH; - reply_return->request_mode &= CWWidth; - } - else - result = XtGeometryYes; - } - - return result; -} - -/* Actually layout the scrollBox */ - -static void Resize(Widget w) -{ - DoLayout(w, True); -} - -static void ChangeManaged(Widget w) -{ - DoLayout(w, True); -} - -static void Initialize(Widget request, Widget new, - ArgList args, Cardinal *num_args) -{ - ScrollBoxWidget newsbw = (ScrollBoxWidget)new; - - if (newsbw->core.width == 0) - newsbw->core.width = INITIAL_WIDTH; - - if (newsbw->core.height == 0) - newsbw->core.height = INITIAL_HEIGHT; - -} - -static Boolean SetValues(Widget current, Widget request, Widget new, - ArgList args, Cardinal *num_args) -{ - ScrollBoxWidget sbwcurrent = (ScrollBoxWidget)current; - ScrollBoxWidget sbwnew = (ScrollBoxWidget)new; - - /* need to relayout if h_space or v_space change */ - - if ((sbwnew->scrollBox.h_space != sbwcurrent->scrollBox.h_space) || - (sbwnew->scrollBox.v_space != sbwcurrent->scrollBox.v_space)) - DoLayout(new, True); - - return False; -} |