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

📄 panel.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lint#ifdef sccsstatic  char sccsid[] = "@(#)panel.c 1.1 92/07/30 Copyr 1985 Sun Micro";#endif#endif/*****************************************************************************//*                               panel.c                                     *//*               Copyright (c) 1985 by Sun Microsystems, Inc.                *//*****************************************************************************/#include <sunwindow/rect.h>#include <suntool/panel_impl.h>#include <suntool/window.h>#include <suntool/frame.h>#ifdef KEYMAP_DEBUG#include "../../libsunwindow/win/win_keymap.h"#else#include <sunwindow/win_keymap.h>#endifextern panel_default_event();static panel_handle	init_panel();static void		layout();/*****************************************************************************//* panel_window_object                                                       *//* called from win_create().  Calls init_panel(), which calls                *//* panel_create_panel_struct() to actually malloc and initialize the panel   *//* struct.                                                                   *//*****************************************************************************/caddr_tpanel_window_object(win)Window win;{       register panel_handle	panel;   if (!(panel = init_panel(win))) return NULL;    (void)window_set(win, 	       WIN_NOTIFY_INFO,  	PW_FIXED_IMAGE | PW_INPUT_DEFAULT,	       WIN_OBJECT,       	panel, 	       WIN_SET_PROC,     	panel->ops->set_attr,	       WIN_GET_PROC,     	panel->ops->get_attr,	       WIN_NOTIFY_EVENT_PROC,   panel_notify_event,	       WIN_EVENT_PROC,		panel_default_event,	       WIN_DEFAULT_EVENT_PROC,  panel_default_event,	       WIN_NOTIFY_DESTROY_PROC, panel_destroy,	       WIN_LAYOUT_PROC,		layout,	       WIN_TYPE,		PANEL_TYPE,	       WIN_TOP_MARGIN,		PANEL_ITEM_Y_START,	       WIN_LEFT_MARGIN,		PANEL_ITEM_X_START,	       WIN_ROW_GAP,		ITEM_Y_GAP,	       0);    return (caddr_t)panel;}static panel_handleinit_panel(win)Window	win;{   register panel_handle	panel;   void pw_use_fast_monochrome();   int	windowfd =    		(int)    window_get(win, WIN_FD);   Frame frame =    	(Window) window_get(win, WIN_OWNER);	int ownerfd = (int)window_get(frame, WIN_FD);   if (!(panel = panel_create_panel_struct((caddr_t)win, windowfd)))       return NULL;   panel->status |= USING_NOTIFIER;   panel->status |= USING_WRAPPER;      (void)panel_set_inputmask(panel, windowfd);   panel->tool		= (Tool *)(LINT_CAST(frame));   panel->pixwin	= (Pixwin *) (LINT_CAST(window_get(win, WIN_PIXWIN)));   /* Use fast monochrome plane group (if available) */   pw_use_fast_monochrome(panel->pixwin);   panel->view_pixwin = pw_region(panel->pixwin, 0, 0,                                  panel->rect.r_width,                                  panel->rect.r_height);   return panel;}/* update the panel when the window is * resized from window_set(). *//* ARGSUSED */static voidlayout(owner, panel, op)Window			owner;register panel_handle	panel;Window_layout_op	op;{    register Rect	*new_win_rect;    if (op != WIN_ADJUSTED)	return;    /* Note: maybe this should post a resize event     * to the panel (or call panel_resize() directly).     */    new_win_rect = (Rect *) (LINT_CAST(window_get((Window)(LINT_CAST(panel)),     			WIN_RECT)));    panel->rect  = *new_win_rect;}

⌨️ 快捷键说明

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