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

📄 rowcol.c

📁 linux下的E_MAIL客户端源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/* * $Id: RowCol.c,v 1.4 2000/05/07 12:26:11 fnevgeny Exp $ * * Copyright (c) 1994 HAL Computer Systems International, Ltd. *  *          HAL COMPUTER SYSTEMS INTERNATIONAL, LTD. *                  1315 Dell Avenue *                  Campbell, CA  95008 * * Author: Greg Hilton * Contributors: Tom Lang, Frank Bieser, and others * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * 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 General Public License for more details. * * http://www.gnu.org/copyleft/gpl.html * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */#include <config.h>#include "RowColP.h"#include <Xm/TransltnsP.h>/* Missing in Motif-2.* declarations */#ifndef HAVE__XMINPUTFORGADGET_DECLXmGadget _XmInputForGadget(Widget cw, int x, int y);#endif#ifndef HAVE__XMGETFOCUSPOLICY_DECLunsigned char _XmGetFocusPolicy(Widget w);#endif#ifndef HAVE__XMSHELLISEXCLUSIVE_DECLBoolean _XmShellIsExclusive(Widget wid);#endif/* This is not declared in 1.2 either */XmNavigability _XmGetNavigability(Widget w);#define	MARGIN_DEFAULT		10#define defaultTranslations	_XmDrawingA_defaultTranslations#define traversalTranslations	_XmDrawingA_traversalTranslations/********    Static Function Declarations    ********/static void		ChangeManaged(Widget wid);static void		ClassInitialize(void);static void		ClassPartInitialize(WidgetClass);static void		ConstraintInitialize(Widget, Widget, ArgList,					     Cardinal*);static XtGeometryResult GeometryManager(Widget, XtWidgetGeometry*,					XtWidgetGeometry*);static void		Initialize(Widget, Widget, ArgList, Cardinal*);static XtGeometryResult	QueryGeometry(Widget, XtWidgetGeometry*,				      XtWidgetGeometry*);static void		Redisplay(Widget, XEvent*, Region);static void		Resize(Widget);static Boolean		SetValues(Widget, Widget, Widget, ArgList, Cardinal*);static XmNavigability	WidgetNavigable(Widget);/********    End Static Function Declarations    ********/static XtActionsRec actionsList[] ={   { "DrawingAreaInput", _RowColInput },};/*  Resource definitions for RowCol */static XmSyntheticResource syn_resources[] ={#if XmVersion < 2000	{	XmNmarginWidth,		sizeof (Dimension),		XtOffsetOf( struct _RowColRec, rowcol.marginWd),		_XmFromHorizontalPixels,		_XmToHorizontalPixels	},	{	XmNmarginHeight,		sizeof (Dimension),		XtOffsetOf( struct _RowColRec, rowcol.marginHt),		_XmFromVerticalPixels,		_XmToVerticalPixels	}#endif};static XtResource resources[] ={#if XmVersion < 2000	{	XmNmarginWidth,		XmCMarginWidth, XmRHorizontalDimension, sizeof (Dimension),		XtOffsetOf(RowColRec, rowcol.marginWd),		XmRImmediate, (XtPointer) MARGIN_DEFAULT	},	{	XmNmarginHeight,		XmCMarginHeight, XmRVerticalDimension, sizeof (Dimension),		XtOffsetOf(RowColRec, rowcol.marginHt),		XmRImmediate, (XtPointer) MARGIN_DEFAULT	},#endif	{	XmNresizeCallback,		XmCCallback, XmRCallback, sizeof (XtCallbackList),		XtOffsetOf(RowColRec, rowcol.resizeCallback),		XmRImmediate, (XtPointer) NULL	},	{	XmNexposeCallback,		XmCCallback, XmRCallback, sizeof (XtCallbackList),		XtOffsetOf(RowColRec, rowcol.exposeCallback),		XmRImmediate, (XtPointer) NULL	},	{	XmNinputCallback,		XmCCallback, XmRCallback, sizeof (XtCallbackList),		XtOffsetOf(RowColRec, rowcol.inputCallback),		XmRImmediate, (XtPointer) NULL	},	{	RcNgeometryCallback,		XmCCallback, XmRCallback, sizeof(XtCallbackList),		XtOffsetOf(RowColRec, rowcol.geometryCallback),		XmRImmediate, (XtPointer)NULL	},	{	RcNchildGeometryCallback,		XmCCallback, XmRCallback, sizeof(XtCallbackList),		XtOffsetOf(RowColRec, rowcol.childGeometryCallback),		XmRImmediate, (XtPointer)NULL	},	{	RcNwidthResizePolicy,		RcCWidthResizePolicy, XmRResizePolicy, sizeof(unsigned char),		XtOffsetOf(RowColRec, rowcol.wResizePolicy),		XmRImmediate, (XtPointer)XmRESIZE_ANY	},	{	RcNheightResizePolicy,		RcCHeightResizePolicy, XmRResizePolicy, sizeof(unsigned char),		XtOffsetOf(RowColRec, rowcol.hResizePolicy),		XmRImmediate, (XtPointer)XmRESIZE_ANY	},	{	RcNrowAlignment,		RcCRowAlignment, XmRAlignment, sizeof(unsigned char),		XtOffsetOf(RowColRec, rowcol.rowAlignment),		XmRImmediate, (XtPointer)XmALIGNMENT_CENTER	},	{	RcNcolAlignment,		RcCColAlignment, XmRAlignment, sizeof(unsigned char),		XtOffsetOf(RowColRec, rowcol.colAlignment),		XmRImmediate, (XtPointer)XmALIGNMENT_CENTER	},	{	RcNrowHeightAdjust,		RcCRowHeightAdjust, RcRAdjust, sizeof(RcAdjustT),		XtOffsetOf(RowColRec, rowcol.rowAdjust),		XmRImmediate, (XtPointer)RcADJUST_NONE	},	{	RcNcolWidthAdjust,		RcCColWidthAdjust, RcRAdjust, sizeof(RcAdjustT),		XtOffsetOf(RowColRec, rowcol.colAdjust),		XmRImmediate, (XtPointer)RcADJUST_NONE	},	{	RcNallowRowResize,		RcCAllowRowResize, XmRBoolean, sizeof(Boolean),		XtOffsetOf(RowColRec, rowcol.rowResizeOk),		XmRImmediate, (XtPointer)True	},	{	RcNallowColResize,		RcCAllowColResize, XmRBoolean, sizeof(Boolean),		XtOffsetOf(RowColRec, rowcol.colResizeOk),		XmRImmediate, (XtPointer)True	},	{	XmNorientation,		XmCOrientation, RcROrient, sizeof(RcOrientT),		XtOffsetOf(RowColRec, rowcol.orient),		XmRImmediate, (XtPointer)RcROW_MAJOR	},	{	RcNrowCount,		RcCRowCount, XmRInt, sizeof(int),		XtOffsetOf(RowColRec, rowcol.rowCount),		XmRImmediate, (XtPointer)1	},	{	RcNcolCount,		RcCColCount, XmRInt, sizeof(int),		XtOffsetOf(RowColRec, rowcol.colCount),		XmRImmediate, (XtPointer)1	},	{	RcNuniformRows,		RcCUniformRows, XmRBoolean, sizeof(Boolean),		XtOffsetOf(RowColRec, rowcol.uniformRows),		XmRImmediate, (XtPointer)False	},	{	RcNuniformCols,		RcCUniformCols, XmRBoolean, sizeof(Boolean),		XtOffsetOf(RowColRec, rowcol.uniformCols),		XmRImmediate, (XtPointer)False	},	{	RcNrowSpacing,		RcCRowSpacing, XmRDimension, sizeof(Dimension),		XtOffsetOf(RowColRec, rowcol.rowSpacing),		XmRImmediate, (XtPointer)0	},	{	RcNcolSpacing,		RcCColSpacing, XmRDimension, sizeof(Dimension),		XtOffsetOf(RowColRec, rowcol.colSpacing),		XmRImmediate, (XtPointer)0	},};/**************************************************************** * * Full class record constant * ****************************************************************/static XmBaseClassExtRec baseClassExtRec = {    NULL,    NULLQUARK,    XmBaseClassExtVersion,    sizeof(XmBaseClassExtRec),    NULL,				/* InitializePrehook	*/    NULL,				/* SetValuesPrehook	*/    NULL,				/* InitializePosthook	*/    NULL,				/* SetValuesPosthook	*/    NULL,				/* secondaryObjectClass	*/    NULL,				/* secondaryCreate	*/    NULL,               		/* getSecRes data	*/    { 0 },      			/* fastSubclass flags	*/    NULL,				/* getValuesPrehook	*/    NULL,				/* getValuesPosthook	*/    NULL,                               /* classPartInitPrehook */    NULL,                               /* classPartInitPosthook*/    NULL,                               /* ext_resources        */    NULL,                               /* compiled_ext_resources*/    0,                                  /* num_ext_resources    */    FALSE,                              /* use_sub_resources    */    WidgetNavigable,                    /* widgetNavigable      */    NULL                                /* focusChange          */};externaldef( xmrowcolclassrec) RowColClassRec rowColClassRec ={   {			/* core_class fields      */      (WidgetClass) &xmManagerClassRec,		/* superclass         */      "RowCol",				/* class_name         */      sizeof(RowColRec),			/* widget_size        */      ClassInitialize,	        		/* class_initialize   */      ClassPartInitialize,			/* class_part_init    */      FALSE,					/* class_inited       */      Initialize,       			/* initialize         */      NULL,					/* initialize_hook    */      XtInheritRealize,				/* realize            */      actionsList,				/* actions	      */      XtNumber(actionsList),			/* num_actions	      */      resources,				/* resources          */      XtNumber(resources),			/* num_resources      */      NULLQUARK,				/* xrm_class          */      TRUE,					/* compress_motion    */      XtExposeCompressMaximal | XtExposeGraphicsExposeMerged,      						/* compress_exposure  */      TRUE,					/* compress_enterlv   */      FALSE,					/* visible_interest   */      NULL,			                /* destroy            */      Resize,           			/* resize             */      Redisplay,	        		/* expose             */      SetValues,                		/* set_values         */      NULL,					/* set_values_hook    */      XtInheritSetValuesAlmost,	        	/* set_values_almost  */      NULL,					/* get_values_hook    */      NULL,					/* accept_focus       */      XtVersion,				/* version            */      NULL,					/* callback_private   */      defaultTranslations,			/* tm_table           */      QueryGeometry,                    	/* query_geometry     */      NULL,             	                /* display_accelerator*/      (XtPointer)&baseClassExtRec,              /* extension          */   },   {		/* composite_class fields */      GeometryManager,    	                /* geometry_manager   */      ChangeManaged,	                	/* change_managed     */      XtInheritInsertChild,			/* insert_child       */      XtInheritDeleteChild,     		/* delete_child       */      NULL,                                     /* extension          */   },   {		/* constraint_class fields */      NULL,					/* resource list        */         0,					/* num resources        */         sizeof(RowColConstraintRec),		/* constraint size      */         ConstraintInitialize,			/* init proc            */         NULL,					/* destroy proc         */         NULL,					/* set values proc      */         NULL,                                     /* extension            */   },   {		/* manager_class fields */      traversalTranslations,			/* translations           */      syn_resources,				/* syn_resources      	  */      XtNumber (syn_resources),			/* num_get_resources 	  */      NULL,					/* syn_cont_resources     */      0,					/* num_get_cont_resources */      XmInheritParentProcess,                   /* parent_process         */      NULL,					/* extension           */       },   {		/* RowCol class */           (XtPointer) NULL,				/* extension pointer */   }	};externaldef( xmrowcolwidgetclass) WidgetClass rowColWidgetClass                                       = (WidgetClass) &rowColClassRec;/*--------------------------------------------------------------- * Type converter for RcAdjustT */static Boolean_CvtStringToAdjust(        Display *display,        XrmValue *args,        Cardinal *num_args,        XrmValue *from,        XrmValue *to,        XtPointer *converter_data){   static RcAdjustT	fallback;   if ( !to->addr ) {      to->addr = (XPointer)&fallback;      to->size = sizeof(RcAdjustT);   }   if ( to->size < sizeof(RcAdjustT) ) {      to->size = sizeof(RcAdjustT);      return False;   }   if ( strcasecmp(from->addr, "none")        == 0 ||	strcasecmp(from->addr, "adjustnone")  == 0 ||	strcasecmp(from->addr, "adjust_none") == 0 )      *(RcAdjustT*)to->addr = RcADJUST_NONE;   else if ( strcasecmp(from->addr, "equal")        == 0 ||	     strcasecmp(from->addr, "adjustequal")  == 0 ||	     strcasecmp(from->addr, "adjust_equal") == 0 )      *(RcAdjustT*)to->addr = RcADJUST_EQUAL;   else if ( strcasecmp(from->addr, "attach")        == 0 ||	     strcasecmp(from->addr, "adjustattach")  == 0 ||	     strcasecmp(from->addr, "adjust_attach") == 0 )      *(RcAdjustT*)to->addr = RcADJUST_ATTACH;   else {      XtStringConversionWarning((char *)from->addr, RcRAdjust);      return False;   }   return True;}/*--------------------------------------------------------------- * Type converter for RcOrientT */static Boolean_CvtStringToOrient(        Display *display,        XrmValue *args,        Cardinal *num_args,        XrmValue *from,        XrmValue *to,        XtPointer *converter_data){   static RcOrientT	fallback;   if ( !to->addr ) {      to->addr = (XPointer)&fallback;      to->size = sizeof(RcOrientT);   }   if ( to->size < sizeof(RcOrientT) ) {      to->size = sizeof(RcOrientT);      return False;   }   if ( strcasecmp(from->addr, "row")      == 0 ||	strcasecmp(from->addr, "rowmajor") == 0 ||	strcasecmp(from->addr, "row_major") )      *(RcOrientT*)to->addr = RcROW_MAJOR;   else if ( strcasecmp(from->addr, "col")      == 0 ||	     strcasecmp(from->addr, "colmajor") == 0 ||	     strcasecmp(from->addr, "col_major") )      *(RcOrientT*)to->addr = RcCOL_MAJOR;   else {      XtStringConversionWarning((char *)from->addr, RcROrient);      return False;   }   return True;}/****************************************************************/

⌨️ 快捷键说明

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