diff options
author | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:56:41 -0800 |
---|---|---|
committer | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:59:33 -0800 |
commit | d577d991b97ae2b5ee1af23641bcffc3f83af5b2 (patch) | |
tree | 590639d50205d1bcfaff2a7d2dc6ebf3f373c7ed /iup/src/iup_classbase.h |
Initial import. Contains the im, cd and iup librairies, and a "working" Makefile for them under linux.
Diffstat (limited to 'iup/src/iup_classbase.h')
-rwxr-xr-x | iup/src/iup_classbase.h | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/iup/src/iup_classbase.h b/iup/src/iup_classbase.h new file mode 100755 index 0000000..1ced9c6 --- /dev/null +++ b/iup/src/iup_classbase.h @@ -0,0 +1,175 @@ +/** \file + * \brief Base Class + * + * See Copyright Notice in "iup.h" + */ + +#ifndef __IUP_CLASSBASE_H +#define __IUP_CLASSBASE_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/** \defgroup iclassbase Base Class + * \par + * See \ref iup_classbase.h + * \ingroup iclass + */ + + +/** Register all common base attributes: \n + * WID \n + * SIZE, RASTERSIZE, POSITION \n + * FONT (and derived) \n\n + * All controls that are positioned inside a dialog must register all common base attributes. + * \ingroup iclassbase */ +void iupBaseRegisterCommonAttrib(Iclass* ic); + +/** Register all visual base attributes: \n + * VISIBLE, ACTIVE \n + * ZORDER, X, Y \n + * TIP (and derived) \n\n + * All controls that are positioned inside a dialog must register all visual base attributes. + * \ingroup iclassbase */ +void iupBaseRegisterVisualAttrib(Iclass* ic); + +/** Register all common callbacks: \n +* MAP_CB, UNMAP_CB, GETFOCUS_CB, KILLFOCUS_CB, ENTERWINDOW_CB, LEAVEWINDOW_CB, K_ANY, HELP_CB. +* \ingroup iclassbase */ +void iupBaseRegisterCommonCallbacks(Iclass* ic); + +/* Register driver dependent common attributes. + Used only from iupBaseRegisterCommonAttrib */ +void iupdrvBaseRegisterCommonAttrib(Iclass* ic); + +/** Updates the expand member of the IUP object from the EXPAND attribute. + * Should be called in the beginning of the ComputeNaturalSize for a container. + * \ingroup iclassbase */ +void iupBaseContainerUpdateExpand(Ihandle* ih); + +/** Initializes the natural size using the user size, then + * if a container then update the "expand" member from the EXPAND attribute, then + * call \ref iupClassObjectComputeNaturalSize for containers if they have children or + * call \ref iupClassObjectComputeNaturalSize for non-containers if user size is not defined. + * Must be called for each children in the container. \n + * First call is in iupLayoutCompute. + * \ingroup iclassbase */ +void iupBaseComputeNaturalSize(Ihandle* ih); + +/** Update the current size from the available size, the natural size, expand and shrink. + * Call \ref iupClassObjectSetChildrenCurrentSize for containers if they have children. + * Must be called for each children in the container. \n + * First call is in iupLayoutCompute. + * \ingroup iclassbase */ +void iupBaseSetCurrentSize(Ihandle* ih, int w, int h, int shrink); + +/** Set the current position and update children position for containers. + * Call \ref iupClassObjectSetChildrenPosition for containers if they have children. + * Must be called for each children in the container. \n + * First call is in iupLayoutCompute. + * \ingroup iclassbase */ +void iupBaseSetPosition(Ihandle* ih, int x, int y); + +/* Updates the SIZE attribute if defined. + Called only from iupdrvSetStandardFontAttrib. */ +void iupBaseUpdateSizeFromFont(Ihandle* ih); + + +/** \defgroup iclassbasemethod Base Class Methods + * \par + * See \ref iup_classbase.h + * \ingroup iclassbase + */ + +/** Driver dependent \ref Iclass::LayoutUpdate method. + * \ingroup iclassbasemethod */ +void iupdrvBaseLayoutUpdateMethod(Ihandle *ih); + +/** Driver dependent \ref Iclass::UnMap method. + * \ingroup iclassbasemethod */ +void iupdrvBaseUnMapMethod(Ihandle* ih); + +/** Native type void \ref Iclass::Map method. + * \ingroup iclassbasemethod */ +int iupBaseTypeVoidMapMethod(Ihandle* ih); + + +/** \defgroup iclassbaseattribfunc Base Class Attribute Functions + * \par + * Used by the controls for iupClassRegisterAttribute. + * \par + * See \ref iup_classbase.h + * \ingroup iclassbase + * @{ + */ + +/* common */ +char* iupBaseGetWidAttrib(Ihandle* ih); +int iupBaseSetNameAttrib(Ihandle* ih, const char* value); +int iupBaseSetRasterSizeAttrib(Ihandle* ih, const char* value); +int iupBaseSetSizeAttrib(Ihandle* ih, const char* value); +char* iupBaseGetSizeAttrib(Ihandle* ih); +char* iupBaseGetRasterSizeAttrib(Ihandle* ih); + +/* visual */ +char* iupBaseGetVisibleAttrib(Ihandle* ih); +int iupBaseSetVisibleAttrib(Ihandle* ih, const char* value); +char* iupBaseGetActiveAttrib(Ihandle *ih); +int iupBaseSetActiveAttrib(Ihandle* ih, const char* value); +int iupdrvBaseSetZorderAttrib(Ihandle* ih, const char* value); +char *iupdrvBaseGetXAttrib(Ihandle *ih); +char *iupdrvBaseGetYAttrib(Ihandle *ih); +int iupdrvBaseSetTipAttrib(Ihandle* ih, const char* value); +int iupdrvBaseSetTipVisibleAttrib(Ihandle* ih, const char* value); +int iupdrvBaseSetBgColorAttrib(Ihandle* ih, const char* value); +int iupdrvBaseSetFgColorAttrib(Ihandle* ih, const char* value); +char* iupBaseNativeParentGetBgColorAttrib(Ihandle* ih); + +/* other */ +char* iupBaseContainerGetExpandAttrib(Ihandle* ih); +int iupdrvBaseSetCursorAttrib(Ihandle* ih, const char* value); +char* iupdrvBaseGetClientSizeAttrib(Ihandle* ih); + +/* Windows Only */ +char* iupdrvBaseGetTitleAttrib(Ihandle* ih); +int iupdrvBaseSetTitleAttrib(Ihandle* ih, const char* value); + +/** @} */ + + + +/** \defgroup iclassbaseutil Base Class Utilities + * \par + * See \ref iup_classbase.h + * \ingroup iclassbase + * @{ + */ + +#define iupMAX(_a,_b) ((_a)>(_b)?(_a):(_b)) +#define iupROUND(_x) ((int)((_x)>0? (_x)+0.5: (_x)-0.5)) + +#define iupCOLOR8TO16(_x) ((unsigned short)(_x*257)) /* 65535/255 = 257 */ +#define iupCOLOR16TO8(_x) ((unsigned char)(_x/257)) + +#define iupBYTECROP(_x) ((unsigned char)((_x)<0?0:((_x)>255)?255:(_x))) + +enum{IUP_ALIGN_ALEFT, IUP_ALIGN_ACENTER, IUP_ALIGN_ARIGHT}; +#define IUP_ALIGN_ABOTTOM IUP_ALIGN_ARIGHT +#define IUP_ALIGN_ATOP IUP_ALIGN_ALEFT + +enum{IUP_SB_NONE, IUP_SB_HORIZ, IUP_SB_VERT}; +int iupBaseGetScrollbar(Ihandle* ih); + +char* iupBaseNativeParentGetBgColor(Ihandle* ih); +void iupBaseCallValueChangedCb(Ihandle* ih); + +/** @} */ + + +#ifdef __cplusplus +} +#endif + +#endif |