summaryrefslogtreecommitdiff
path: root/Build/source/utils/dialog/dialog-1.1-20110707/arrows.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/dialog/dialog-1.1-20110707/arrows.c')
-rw-r--r--Build/source/utils/dialog/dialog-1.1-20110707/arrows.c260
1 files changed, 0 insertions, 260 deletions
diff --git a/Build/source/utils/dialog/dialog-1.1-20110707/arrows.c b/Build/source/utils/dialog/dialog-1.1-20110707/arrows.c
deleted file mode 100644
index 6a25fd94f82..00000000000
--- a/Build/source/utils/dialog/dialog-1.1-20110707/arrows.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * $Id: arrows.c,v 1.36 2011/06/27 09:13:56 tom Exp $
- *
- * arrows.c -- draw arrows to indicate end-of-range for lists
- *
- * Copyright 2000-2010,2011 Thomas E. Dickey
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License, version 2.1
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it 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 this program; if not, write to
- * Free Software Foundation, Inc.
- * 51 Franklin St., Fifth Floor
- * Boston, MA 02110, USA.
- */
-
-#include <dialog.h>
-
-#ifdef USE_WIDE_CURSES
-#if defined(CURSES_WACS_ARRAY) && !defined(CURSES_WACS_SYMBOLS)
-/* workaround for NetBSD 5.1 curses */
-#undef WACS_DARROW
-#undef WACS_UARROW
-#define WACS_DARROW &(CURSES_WACS_ARRAY['.'])
-#define WACS_UARROW &(CURSES_WACS_ARRAY['-'])
-#endif
-#define add_acs(win, code) wadd_wch(win, W ## code)
-#else
-#define add_acs(win, code) waddch(win, dlg_boxchar(code))
-#endif
-
-/* size of decorations */
-#define ON_LEFT 4
-#define ON_RIGHT 3
-
-#ifdef HAVE_COLOR
-static chtype
-merge_colors(chtype foreground, chtype background)
-{
- chtype result = foreground;
- if ((foreground & A_COLOR) != (background & A_COLOR)) {
- short fg_f, bg_f;
- short fg_b, bg_b;
- short fg_pair = (short) PAIR_NUMBER(foreground);
- short bg_pair = (short) PAIR_NUMBER(background);
-
- if (pair_content(fg_pair, &fg_f, &bg_f) != ERR
- && pair_content(bg_pair, &fg_b, &bg_b) != ERR) {
- result &= ~A_COLOR;
- result |= dlg_color_pair(fg_f, bg_b);
- }
- }
- return result;
-}
-#else
-#define merge_colors(f,b) (f)
-#endif
-
-/*
- * If we have help-line text, e.g., from "--hline", draw it between the other
- * decorations at the bottom of the dialog window.
- */
-void
-dlg_draw_helpline(WINDOW *win, bool decorations)
-{
- int cur_x, cur_y;
- int bottom;
-
- if (dialog_vars.help_line != 0
- && (bottom = getmaxy(win) - 1) > 0) {
- chtype attr = A_NORMAL;
- const int *cols = dlg_index_columns(dialog_vars.help_line);
- int other = decorations ? (ON_LEFT + ON_RIGHT) : 0;
- int avail = (getmaxx(win) - other - 2);
- int limit = dlg_limit_columns(dialog_vars.help_line, avail, 0);
-
- if (limit > 0) {
- getyx(win, cur_y, cur_x);
- other = decorations ? ON_LEFT : 0;
- (void) wmove(win, bottom, other + (avail - limit) / 2);
- waddch(win, '[');
- dlg_print_text(win, dialog_vars.help_line, cols[limit], &attr);
- waddch(win, ']');
- wmove(win, cur_y, cur_x);
- }
- }
-}
-
-void
-dlg_draw_arrows2(WINDOW *win,
- int top_arrow,
- int bottom_arrow,
- int x,
- int top,
- int bottom,
- chtype attr,
- chtype borderattr)
-{
- chtype save = dlg_get_attrs(win);
- int cur_x, cur_y;
- int limit_x = getmaxx(win);
- bool draw_top = TRUE;
-
- getyx(win, cur_y, cur_x);
-
- /*
- * If we're drawing a centered title, do not overwrite with the arrows.
- */
- if (dialog_vars.title) {
- int have = (limit_x - dlg_count_columns(dialog_vars.title)) / 2;
- int need = x + 5;
- if (need > have)
- draw_top = FALSE;
- }
-
- if (draw_top) {
- (void) wmove(win, top, x);
- if (top_arrow) {
- wattrset(win, merge_colors(uarrow_attr, attr));
- (void) add_acs(win, ACS_UARROW);
- (void) waddstr(win, "(-)");
- } else {
- wattrset(win, attr);
- (void) whline(win, dlg_boxchar(ACS_HLINE), ON_LEFT);
- }
- }
- mouse_mkbutton(top, x - 1, 6, KEY_PPAGE);
-
- (void) wmove(win, bottom, x);
- if (bottom_arrow) {
- wattrset(win, merge_colors(darrow_attr, attr));
- (void) add_acs(win, ACS_DARROW);
- (void) waddstr(win, "(+)");
- } else {
- wattrset(win, borderattr);
- (void) whline(win, dlg_boxchar(ACS_HLINE), ON_LEFT);
- }
- mouse_mkbutton(bottom, x - 1, 6, KEY_NPAGE);
-
- (void) wmove(win, cur_y, cur_x);
- wrefresh(win);
-
- wattrset(win, save);
-}
-
-void
-dlg_draw_scrollbar(WINDOW *win,
- long first_data,
- long this_data,
- long next_data,
- long total_data,
- int left,
- int right,
- int top,
- int bottom,
- chtype attr,
- chtype borderattr)
-{
- char buffer[80];
- int percent;
- int len;
- int oldy, oldx, maxy, maxx;
-
- chtype save = dlg_get_attrs(win);
- int top_arrow = (first_data != 0);
- int bottom_arrow = (next_data < total_data);
-
- getyx(win, oldy, oldx);
- getmaxyx(win, maxy, maxx);
-
- dlg_draw_helpline(win, TRUE);
- if (bottom_arrow || top_arrow || dialog_state.use_scrollbar) {
- percent = (!total_data
- ? 100
- : (int) ((next_data * 100)
- / total_data));
-
- if (percent < 0)
- percent = 0;
- else if (percent > 100)
- percent = 100;
-
- wattrset(win, position_indicator_attr);
- (void) sprintf(buffer, "%d%%", percent);
- (void) wmove(win, bottom, right - 7);
- (void) waddstr(win, buffer);
- if ((len = dlg_count_columns(buffer)) < 4) {
- wattrset(win, border_attr);
- whline(win, dlg_boxchar(ACS_HLINE), 4 - len);
- }
- }
-#define BARSIZE(num) (int) (((all_high * (num)) + all_high - 1) / total_data)
-
- if (dialog_state.use_scrollbar) {
- int all_high = (bottom - top - 1);
-
- if (total_data > 0 && all_high > 0) {
- int bar_high;
- int bar_y;
-
- bar_high = BARSIZE(next_data - this_data);
- if (bar_high <= 0)
- bar_high = 1;
-
- if (bar_high < all_high) {
- wmove(win, top + 1, right);
-
- wattrset(win, save);
- wvline(win, ACS_VLINE | A_REVERSE, all_high);
-
- bar_y = BARSIZE(this_data);
- if (bar_y > all_high - bar_high)
- bar_y = all_high - bar_high;
-
- wmove(win, top + 1 + bar_y, right);
-
- wattrset(win, position_indicator_attr);
- wattron(win, A_REVERSE);
- wvline(win, ACS_BLOCK, bar_high);
- }
- }
- }
- dlg_draw_arrows2(win,
- top_arrow,
- bottom_arrow,
- left + ARROWS_COL,
- top,
- bottom,
- attr,
- borderattr);
-
- wattrset(win, save);
- wmove(win, oldy, oldx);
-}
-
-void
-dlg_draw_arrows(WINDOW *win,
- int top_arrow,
- int bottom_arrow,
- int x,
- int top,
- int bottom)
-{
- dlg_draw_helpline(win, TRUE);
- dlg_draw_arrows2(win,
- top_arrow,
- bottom_arrow,
- x,
- top,
- bottom,
- menubox_attr,
- menubox_border_attr);
-}