⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scrolldefaults.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
    bar_width_item = panel_create_item(control, PANEL_CYCLE,	PANEL_LABEL_X, ATTR_COL(0), PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_LABEL_STRING, "           Bar Width",	PANEL_CHOICE_STRINGS,	 /* MIN_THICKNESS */ "2", "4", "6", "8", "10", "12", "14",	"16", "18", "20", "22", "24", 0,	PANEL_NOTIFY_PROC, bar_width_proc,	0);    end_point_area_item = panel_create_item(control, PANEL_CYCLE,	PANEL_LABEL_X, ATTR_COL(0), PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_LABEL_STRING, "      End point area",	PANEL_CHOICE_STRINGS, "0", "2", "4", "6", "8", "10", "12", "14",	"16", "18", "20", "22", "24", 0,	PANEL_NOTIFY_PROC, end_point_area_proc,	0);    repeat_item = panel_create_item(control, PANEL_CYCLE,	PANEL_LABEL_X, ATTR_COL(0), PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_LABEL_STRING, "Repeat time (tenths)",	PANEL_CHOICE_STRINGS, "0", "1", "2", "3", "4", "5", "6", "7",	"8", "9", "10", 0,	PANEL_NOTIFY_PROC, repeat_proc,	0);    border_item = panel_create_item(control, PANEL_CYCLE,	PANEL_LABEL_X, ATTR_COL(0), PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_LABEL_STRING, "              Border",	PANEL_CHOICE_STRINGS, "Yes", "No", 0,	PANEL_NOTIFY_PROC, border_proc,	0);    have_buttons_item = panel_create_item(control, PANEL_CYCLE,	PANEL_LABEL_X, ATTR_COL(0), PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_LABEL_STRING, "        Page Buttons",	PANEL_CHOICE_STRINGS, "Yes", "No", 0,	PANEL_NOTIFY_PROC, have_buttons_proc,	0);    button_length_item = panel_create_item(control, PANEL_CYCLE,	PANEL_LABEL_X, ATTR_COL(0), PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_LABEL_STRING, "  Page Button Length",	PANEL_CHOICE_STRINGS, "0", "1", "2", "3", "4", "5", "6", "7",	"8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18",	"19", "20", "21", "22", "23", "24", 0,	PANEL_NOTIFY_PROC, button_length_proc,	0);    row++;        (void)panel_create_item(control, PANEL_BUTTON,	PANEL_LABEL_X, ATTR_COL(0), PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_LABEL_IMAGE, panel_button_image(control, "Save", 7, (Pixfont *)NULL),	PANEL_NOTIFY_PROC, save_proc,	0);    (void)panel_create_item(control, PANEL_BUTTON,	PANEL_LABEL_IMAGE, panel_button_image(control, "Reset", 7,  (Pixfont *)NULL),	PANEL_NOTIFY_PROC, default_proc,	0);    (void)panel_create_item(control, PANEL_BUTTON,	PANEL_LABEL_IMAGE, panel_button_image(control, "Quit", 7,  (Pixfont *)NULL),	PANEL_NOTIFY_PROC, quit_proc,	0);    row++;        have_v_sb_item = panel_create_item(control, PANEL_TOGGLE,	PANEL_LABEL_X, 20, PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_FEEDBACK, PANEL_MARKED,	PANEL_CHOICE_STRINGS, "Vertical Scrollbar", 0,	PANEL_VALUE, 1,	PANEL_NOTIFY_PROC, have_v_sb_proc,	0);    have_h_sb_item = panel_create_item(control, PANEL_TOGGLE,	PANEL_LABEL_X, 20, PANEL_LABEL_Y, ATTR_ROW(row++),	PANEL_FEEDBACK, PANEL_MARKED,	PANEL_CHOICE_STRINGS, "Horizontal Scrollbar", 0,	PANEL_VALUE, 1,	PANEL_NOTIFY_PROC, have_h_sb_proc,	0);    if (debugging)	(void)panel_create_item(control, PANEL_TOGGLE,	    PANEL_LABEL_X, 20, PANEL_LABEL_Y, ATTR_ROW(row++),	    PANEL_FEEDBACK, PANEL_MARKED,	    PANEL_CHOICE_STRINGS, "Use Normalization", 0,	    PANEL_VALUE, 1,	    PANEL_NOTIFY_PROC, use_normalize_proc,	    0);    (void)window_fit(control);    set_panel_from_scrollbars();}static voidset_panel_from_scrollbars(){    Scrollbar_setting setting;    int             val;    /* gravity */    setting = (Scrollbar_setting)	scrollbar_get(horizontal_sb, SCROLL_PLACEMENT);    val = setting == SCROLL_MIN ? 0 : 1;    (void)panel_set(h_gravity_item, PANEL_VALUE, val, 0);    setting = (Scrollbar_setting)    	scrollbar_get(vertical_sb, SCROLL_PLACEMENT);    val = setting == SCROLL_MIN ? 0 : 1;    (void)panel_set(v_gravity_item, PANEL_VALUE, val, 0);    /* bar display level */    setting = (Scrollbar_setting)	scrollbar_get(horizontal_sb, SCROLL_BAR_DISPLAY_LEVEL);    switch (setting) {    case SCROLL_ALWAYS:	val = 0;	break;    case SCROLL_ACTIVE:	val = 1;	break;    case SCROLL_NEVER:	val = 2;	break;    }    (void)panel_set(bar_display_item, PANEL_VALUE, val, 0);    /* bubble display level */    setting = (Scrollbar_setting)	scrollbar_get(horizontal_sb, SCROLL_BUBBLE_DISPLAY_LEVEL);    switch (setting) {    case SCROLL_ALWAYS:	val = 0;	break;    case SCROLL_ACTIVE:	val = 1;	break;    case SCROLL_NEVER:	val = 2;	break;    }    (void)panel_set(bubble_display_item, PANEL_VALUE, val, 0);    /* border */    val = (int) scrollbar_get(horizontal_sb, SCROLL_BORDER);    val = val ? 0 : 1;    (void)panel_set(border_item, PANEL_VALUE, val, 0);    /* bar thickness */    val = (int) scrollbar_get(horizontal_sb, SCROLL_THICKNESS);    val = (val - MIN_THICKNESS) / 2;    (void)panel_set(bar_width_item, PANEL_VALUE, val, 0);    /* end point area */    val = (int) scrollbar_get(horizontal_sb, SCROLL_END_POINT_AREA);    val = val / 2;    (void)panel_set(end_point_area_item, PANEL_VALUE, val, 0);    /* repeat */    val = (int) scrollbar_get(horizontal_sb, SCROLL_REPEAT_TIME);    (void)panel_set(repeat_item, PANEL_VALUE, val, 0);    /* page buttons */    val = (int) scrollbar_get(horizontal_sb, SCROLL_PAGE_BUTTONS);    val = val ? 0 : 1;    (void)panel_set(have_buttons_item, PANEL_VALUE, val, 0);    /* page button length */    val = (int) scrollbar_get(horizontal_sb, SCROLL_PAGE_BUTTON_LENGTH);    (void)panel_set(button_length_item, PANEL_VALUE, val, 0);    /* bubble margin */    val = (int) scrollbar_get(horizontal_sb, SCROLL_BUBBLE_MARGIN);    (void)panel_set(bubble_margin_item, PANEL_VALUE, val, 0);    /* bar color */    setting = (Scrollbar_setting)	scrollbar_get(horizontal_sb, SCROLL_BAR_COLOR);    val = setting == SCROLL_GREY ? 0 : 1;    (void)panel_set(bar_color_item, PANEL_VALUE, val, 0);    /* bubble color */    setting = (Scrollbar_setting)	scrollbar_get(horizontal_sb, SCROLL_BUBBLE_COLOR);    val = setting == SCROLL_GREY ? 0 : 1;    (void)panel_set(bubble_color_item, PANEL_VALUE, val, 0);}static voidinit_panel(){    int             row, col, x, y;    char           *s;    struct pixrect *image;    static char    *file_names[16][4] = {	{"/cursors", "tek.c", "ttyansi.c", "usr_profile.c"},	{"cursor_init.c", "teksw.c", "/tty_backup", "usr_profile_db.c"},	{"demo_cursor.c", "teksw_ui.c", "ttyselect.c", "usr_profile_hs.h"},	{"/demo", "tool_bdry.c", "ttysw_get.c", "usr_profile_panel.c"},	{"emptysw.c", "tool_begin.c", "ttysw_gtty.c", "usr_profile_util.c"},	{"expand_name.c", "tool_create.c", "ttysw_help.c", "/window"},	{"fullscreen.c", "tool_destroy.c", "ttysw_main.c", "wmgr_cursor.c"},	{"gfxsw.c", "tool_display.c", "ttysw_mapkey.c", "wmgr_findspace.c"},	{"gfxsw_input.c", "tool_help.c", "ttysw_notify.c", "wmgr_help.c"},	{"/icons", "tool_input.c", "ttysw_old.c", "wmgr_menu.c"},	{"menu.c", "tool_install.c", "tty_set.c", "wmgr_policy.c"},	{"menu_util.c", "tool_layout.c", "tty_stty.c", "wmgr_rect.c"},	{"/optionsw", "tool_position.c", "ttysw_tio.c", "wmgr_state.c"},	{"/panel", "tool_select.c", "ttysw_tsw.c", "wmgr_usage.c"},	{"scrollbar.c", "tool_usage.c", "ttysw_usage.c", "wmgr_util.c"},	{"scrollbar_util.c", "tool_yak.c", "ttysw_util.c", "wmgr_valid.c"}    };    panel = window_create(base_frame, PANEL,	WIN_WIDTH,		(texttoo ? 2 * 120 : ATTR_COLS(47)),	PANEL_SHOW_MENU,	FALSE,	WIN_ERROR_MSG,		"panel creation error!",	WIN_VERTICAL_SCROLLBAR, vertical_sb,	WIN_HORIZONTAL_SCROLLBAR, horizontal_sb,	0);    if (panel == NULL) {         (void)fprintf(stderr,"defaultstool: unable to create panel\n");         exit(1);     }    for (col = 0, x = my_margin; col <= 3; col++) {	for (row = 0, y = my_margin; row <= 15; row++) {	    s = file_names[row][col];	    image = (s[0] == '/') ? &scrd_folder_image : &scrd_paper_image;	    (void)panel_create_item(panel, PANEL_MESSAGE,		PANEL_LABEL_X, x, PANEL_LABEL_Y, y,		PANEL_LABEL_IMAGE, image,		0);	    y += 55;	    (void)panel_create_item(panel, PANEL_BUTTON,		PANEL_LABEL_X, x, PANEL_LABEL_Y, y,		PANEL_LABEL_STRING, s,		0);	    y -= 55;	    y += my_row_height;	}	x += my_col_width;    }}/**************************************************************************//* notify procs                                                           *//**************************************************************************//* ARGSUSED */static voidhave_v_sb_proc(ip, val)    caddr_t         ip;    int             val;{    if (val) {	if (!(Scrollbar) panel_get(panel, PANEL_VERTICAL_SCROLLBAR)) {	    (void)panel_set(panel, PANEL_VERTICAL_SCROLLBAR, vertical_sb, 0);	    (void)panel_paint(panel, PANEL_CLEAR);	    return;	}    } else {	if ((Scrollbar) panel_get(panel, PANEL_VERTICAL_SCROLLBAR)) {	    (void)panel_set(panel, PANEL_VERTICAL_SCROLLBAR, 0, 0);	    (void)panel_paint(panel, PANEL_CLEAR);	    return;	}    }}/* ARGSUSED */static voidhave_h_sb_proc(ip, val)    caddr_t         ip;    int             val;{    if (val) {	if (!(Scrollbar) panel_get(panel, PANEL_HORIZONTAL_SCROLLBAR)) {	    (void)panel_set(panel, PANEL_HORIZONTAL_SCROLLBAR, horizontal_sb, 0);	    (void)panel_paint(panel, PANEL_CLEAR);	    return;	}    } else {	if ((Scrollbar) panel_get(panel, PANEL_HORIZONTAL_SCROLLBAR)) {	    (void)panel_set(panel, PANEL_HORIZONTAL_SCROLLBAR, 0, 0);	    (void)panel_paint(panel, PANEL_CLEAR);	    return;	}    }}/* ARGSUSED */static voiduse_normalize_proc(ip, normalize, event)    caddr_t         ip;    int             normalize;    Event          *event;{    int             shift = event_shift_is_down(event);    int             grid_normalize = (normalize && shift);    normalize = (normalize && !shift);    (void)scrollbar_set(horizontal_sb,	SCROLL_NORMALIZE, normalize,	SCROLL_TO_GRID, grid_normalize,	SCROLL_MARGIN, (normalize) ? my_gap : my_margin,	SCROLL_LINE_HEIGHT, (shift) ? my_col_width : 0,	SCROLL_GAP, my_gap,	0);    (void)scrollbar_set(vertical_sb,	SCROLL_NORMALIZE, normalize,	SCROLL_TO_GRID, grid_normalize,	SCROLL_MARGIN, (normalize) ? my_gap : my_margin,	SCROLL_LINE_HEIGHT, (shift) ? my_row_height : 0,	SCROLL_GAP, my_gap,	0);}/* ARGSUSED */static voidh_gravity_proc(ip, val)    caddr_t         ip;    int             val;{    register Scrollbar_setting gravity_val;    gravity_val = val ? SCROLL_SOUTH : SCROLL_NORTH;    (void)scrollbar_set(horizontal_sb, SCROLL_PLACEMENT, gravity_val, 0);    /* must detach/attach scrollbar to get the corner handled properly */    if (panel_get_value(have_h_sb_item)) {	(void)panel_set(panel, PANEL_HORIZONTAL_SCROLLBAR, 0, 0);	(void)panel_set(panel, PANEL_HORIZONTAL_SCROLLBAR, horizontal_sb, 0);    }    (void)panel_paint(panel, PANEL_CLEAR);}/* ARGSUSED */static voidv_gravity_proc(ip, val)    caddr_t         ip;    int             val;{    register Scrollbar_setting gravity_val;    gravity_val = val ? SCROLL_EAST : SCROLL_WEST;    (void)scrollbar_set(vertical_sb, SCROLL_PLACEMENT, gravity_val, 0);    /* must detach/attach scrollbar to get the corner handled properly */    if (panel_get_value(have_v_sb_item)) {	(void)panel_set(panel, PANEL_VERTICAL_SCROLLBAR, 0, 0);	(void)panel_set(panel, PANEL_VERTICAL_SCROLLBAR, vertical_sb, 0);    }    (void)panel_paint(panel, PANEL_CLEAR);}/* ARGSUSED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -