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

📄 toolbox.h

📁 本文件是ni公司的labwindows/cvi软件的部分例子和源程序
💻 H
📖 第 1 页 / 共 2 页
字号:
    /*** Lists ***/    /*  Note:   FRONT_OF_LIST and END_OF_LIST only substitute for item positions in the        arguments to a list function, they are not returned as item positions and should        not be compared to item positions.    */#define     FRONT_OF_LIST    -1      /* Handy Constants that substitute for item positions */#define     END_OF_LIST      0       /* END_OF_LIST means one past current length of list when                                        inserting. Otherwise it refers the last item in the list. */typedef struct ListStructTag **ListType;        /* The list abstract data type */typedef int (CVICALLBACK * ListApplicationFunc)(int index, void *ptrToItem, void *callbackData);    /* Basic List Operations */ListType    CVIFUNC ListCreate(int elementSize);void        CVIFUNC ListDispose(ListType list);void        CVIFUNC ListDisposePtrList(ListType list);int         CVIFUNC ListNumItems(ListType list);int         CVIFUNC ListInsertItem(ListType list, void *ptrToItem, int itemPosition);void        CVIFUNC ListGetItem(ListType list, void *itemDestination, int itemPosition);void        CVIFUNC ListReplaceItem(ListType list, void *ptrToItem, int itemPosition);void        CVIFUNC ListRemoveItem(ListType list, void *itemDestination, int itemPosition);int         CVIFUNC ListInsertItems(ListType list, void *ptrToItems, int firstItemPosition, int numItemsToInsert);void        CVIFUNC ListGetItems(ListType list, void *itemsDestination, int firstItemPosition, int numItemsToGet);void        CVIFUNC ListReplaceItems(ListType list, void *ptrToItems, int firstItemPosition, int numItemsToReplace);void        CVIFUNC ListRemoveItems(ListType list, void *itemsDestination, int firstItemPosition, int numItemsToRemove);ListType    CVIFUNC ListCopy(ListType originalList);int         CVIFUNC ListAppend(ListType list1, ListType list2);void        CVIFUNC ListClear(ListType list);int         CVIFUNC ListEqual(ListType list1, ListType list2);int         CVIFUNC ListInsertInOrder(ListType list, void *ptrToItem, CompareFunction compareFunction);void        * CVIFUNC ListGetPtrToItem(ListType list, int itemPosition);void        * CVIFUNC ListGetDataPtr(ListType list);int         CVIFUNC ListApplyToEach(ListType list, int ascending, ListApplicationFunc funcToApply, void *callbackData);    /* List Searching and Sorting */int         CVIFUNC ListFindItem(ListType list, void *ptrToItem, int startingPosition, CompareFunction compareFunction);void        CVIFUNC ListRemoveDuplicates(ListType list, CompareFunction compareFunction);int         CVIFUNC ListBinSearch(ListType list, void *itemPtr, CompareFunction compareFunction);void        CVIFUNC ListQuickSort(ListType list, CompareFunction compareFunction);void        CVIFUNC ListHeapSort(ListType list, CompareFunction compareFunction);void        CVIFUNC ListInsertionSort(ListType list, CompareFunction compareFunction);int         CVIFUNC ListIsSorted(ListType list, CompareFunction compareFunction);    /* List Output to Files and Standard I/O */typedef int (CVICALLBACK * ItemOutputFunction)(FILE *stream, void *ptrToItem);int         CVICALLBACK OutputStringItem(FILE *stream, void *ptrToItem);int         CVICALLBACK OutputShortItem(FILE *stream, void *ptrToItem);int         CVICALLBACK OutputDoubleItem(FILE *stream, void *ptrToItem);int         CVICALLBACK OutputIntegerItem(FILE *stream, void *ptrToItem);int         CVIFUNC     OutputList(ListType list, FILE *stream, char *listPrefix, char *listSuffix, char *itemPrefix, char *itemSuffix, ItemOutputFunction itemOutputFunction);    /*  Advanced List Functions */void        CVIFUNC ListSetAllocationPolicy(ListType list, int minItemsPerAlloc, int percentIncreasePerAlloc);void        CVIFUNC ListCompact(ListType list);int         CVIFUNC ListPreAllocate(ListType list, int numItems);int         CVIFUNC ListGetItemSize(ListType list);int         CVIFUNC GetIntListFromParmInfo(va_list parmInfo, int numIntegers, ListType *integerList);    /* no function panel, too obscure */ListType    CVIFUNC_C BuildIntegerList(int numIntegers, ...);             /* no function panel */int         CVIFUNC_C AppendToIntegerList(ListType listToAppendTo, int numIntegers, ...);     /* no function panel */int         CVIFUNC ListInsertAfterItem(ListType list, void *ptrToItem, void *ptrToItemToInsertAfter, CompareFunction compareFunction);     /* no function panel */int         CVIFUNC ListInsertBeforeItem(ListType list, void *ptrToItem, void *ptrToItemToInsertBefore, CompareFunction compareFunction);   /* no function panel */    /*** User Interface Utility Functions ***/    /*  Constants helpful for precise control positioning */#define LIST_BOX_SCROLL_BAR_WIDTH     16#define TEXT_BOX_FRAME_WIDTH           3#define LIST_BOX_FRAME_WIDTH           3#define LIST_BOX_RIGHT_MARGIN          2#define LIST_BOX_LEFT_MARGIN           4#define LIST_BOX_HORIZ_OVERHEAD       28  /* right position: 16 for scroll bar, 3+3 for frame, 4+2 for margins */#define LIST_BOX_CHECKMARK_AREA_WIDTH 16#define LIST_BOX_LEFT_PIXEL_POS        5  /* based in empirical observation */#define RING_HORIZ_OVERHEAD           24  /* 16 + 8 extra for margin */#define INC_DEC_WIDTH                  9    /*  Values for the direction parameter of DistributeCtrls() */#define VAL_TB_HORIZONTAL_DISTRIBUTION  0#define VAL_TB_VERTICAL_DISTRIBUTION    1    /*  Values for the spacing parameter of DistributeCtrls() */#define VAL_TB_AREA_SPACING             0#define VAL_TB_FIXED_GAP_SPACING        1    /*  Values for the whichExtreme parameter of SetAllCtrlsToIntAttributeExtreme() */#define VAL_TB_MAX                      0#define VAL_TB_MIN                      1typedef enum  /* these values may be passed to the AttrMinMax... functions */    {    ATTR_TB_BOUNDS_TOP = 6000,    ATTR_TB_BOUNDS_LEFT,    ATTR_TB_BOUNDS_HEIGHT,      /* gettable only */    ATTR_TB_BOUNDS_WIDTH        /* gettable only */    } ExtraToolBoxAttributes;typedef enum    {    CANCELED        = 0,    CHANGE_MADE     = 1,    NO_CHANGE_MADE  = 2    } ResponseCode;     /* useful for generic dialog box return codes and other places too */int     CVIFUNC PutLabelOnLeft(int panel, int ctrl, int labelToCtrlGap);int     CVIFUNC SetCommonDialogShortcutKeys(int panel, int enterCtrl, int escCtrl, int closeCtrl);int     CVIFUNC GetDataTypeSize(int dataType);int     CVIFUNC_C SetAttributeForCtrls(int panel, int attribute, int value, int numCtrls, ...);int     CVIFUNC_C AttributeMaxAndMin(int panel, int attribute, int numCtrls, int *max, int *ctrlWithMax, int *min, int *ctrlWithMin, ...);int     CVIFUNC_C SetCtrlsToAttributeExtreme(int panel, int attribute, int whichExtreme, int numCtrls, ...);int     CVIFUNC_C DistributeCtrls(int panel, int direction, int spacing, int *position, int gap, int numCtrls, ...);int     CVIFUNC_C PutLabelsOnLeft(int panel, int labelToCtrlGap, int numCtrls, ...);int     CVIFUNC SetAttributeForList(int panel, ListType ctrlList, int attribute, int value);int     CVIFUNC AttrMaxAndMinForList(int panel, ListType ctrlList, int attribute, int *max, int *ctrlWithMax, int *min, int *ctrlWithMin);int     CVIFUNC SetAttributeToExtremeForList(int panel, ListType ctrlList, int attribute, int whichExtreme);int     CVIFUNC DistributeCtrlsInList(int panel, ListType ctrlList, int direction, int spacing, int *position, int gap);int     CVIFUNC PutLabelsOnLeftForList(int panel, ListType ctrlList, int labelToCtrlGap);int     CVIFUNC MoveInFront(int panel, int ctrl, int ctrlToMove);int     CVIFUNC MoveBehind(int panel, int ctrl, int ctrlToMove);int     CVIFUNC PlaceAfter(int panel, int ctrl, int ctrlToMove);int     CVIFUNC PlaceBefore(int panel, int ctrl, int ctrlToMove);int     CVIFUNC GetNumericAttributeAsType(int panel, int ctrl, int attribute, int destType, void *value); /* no function panel, too obscure */int     CVIFUNC CenterCtrl(int panel, int ctrl, int top, int left, int height, int width);int     CVIFUNC SizeRingCtrlToText(int panel, int ring);int     CVIFUNC ConformCtrlBitmapToPanel (int panel, int control, int index, int bitmap3dColor, int new3dColor, int bitmapTextColor, int newTextColor);void    CVIFUNC SetCtrlRightPosition(int panel, int control, int right);        /* no function panel */int     CVIFUNC GetCtrlBoundRectAttribute(int panel, int ctrl, int attribute, int *value);      /* no function panel */int     CVIFUNC SetCtrlBoundRectAttribute(int panel, int ctrl, int attribute, int value);       /* no function panel */int     CVIFUNC PreviousCtrl(int panel, int ctrl, int wrap);                    /* no function panel */int     CVIFUNC CtrlCanBeTabStop(int panel, int ctrl);                          /* no function panel */int     CVIFUNC NextCtrlInTabOrder(int panel, int ctrl, int forward, int wrap); /* no function panel */int     CVIFUNC ActivateFirstCtrl(int panel);                                   /* no function panel */void    CVIFUNC DiscardCtrlNoBOLE(int panel, int ctrl, int noDiscardEvent);     /* no function panel */void    CVIFUNC DiscardPanelNoBOLE(int panel, int noDiscardEvent);              /* no function panel */int     CVIFUNC GetMetaFontInfo(char metaFont[], char typeface[], int *bold, int *underline, int *strikeout,  int *italic, int *size); int     CVIFUNC IsMetaFont(char fontname[256]);                                 int     CVIFUNC GetCtrlList(int panel, ListType *ctrlList);                     /* no function panel */void    CVIFUNC SortCtrlListByTabOrder(int panel, ListType ctrlList);           /* no function panel */char    * CVIFUNC UILEventString(int event);int     CVIFUNC ChainCtrlCallback(int panel, int ctrl, CtrlCallbackPtr newCallback, void *newCallbackData, char *type);int     CVIFUNC GetChainedCallbackData(int panel, int ctrl, char *type, void **callbackData);int     CVIFUNC CallCtrlCallback(int panel, int ctrl, int event, int eventData1, int eventData2, int *returnValue);int     CVIFUNC UnchainCtrlCallback(int panel, int ctrl, char *type);int     CVIFUNC ChainPanelCallback(int panel, PanelCallbackPtr newCallback, void *newCallbackData, char *type); int     CVIFUNC GetChainedPanelCallbackData(int panel, char *type, void **callbackData);                        int     CVIFUNC CallPanelCallback(int panel, int event, int eventData1, int eventData2, int *returnValue);      int     CVIFUNC UnchainPanelCallback(int panel, char *type);int     CVIFUNC EnableExtendedMouseEvents(int panel, int ctrl, double minPeriod);int     CVIFUNC DisableExtendedMouseEvents(int panel, int ctrl);int     CVIFUNC ConvertMouseCoordinates(int panel, int ctrl, int relativeToCtrl, int clipToControl, int *x, int *y);    /*** Popup Dialogs ***/typedef void (CVICALLBACK * ShowColorChangeFunction)(ListType colorList, void *colorChangeCallbackData, int colorListIndex);typedef struct    {    char    *name;    int     defaultColor;    int     color;    } ColorChangeEntry;int     CVIFUNC ColorChangePopup(char *title, ListType colorList, int allowDefault, ShowColorChangeFunction showColorChangeFunc, void *colorChangeCallbackData);int     CVIFUNC CreateProgressDialog(char title[], char indicatorLabel[], int modal, int indicatorMarkerStyle, char cancelButtonLabel[]);int     CVIFUNC UpdateProgressDialog(int panel, int percentDone, int processEvents);void    CVIFUNC DiscardProgressDialog(int panel);    /*** Constants and Conversions ***/    /*  Note: A 8-byte double has 15 digits of precision */#define PI                          3.1415926535897932384626433832795028841971#define TWO_PI                      6.28318530717958646#define HALF_PI                     1.57079632679489661#define THREE_HALVES_PI             4.71238898038468990#define RECIPROCAL_OF_PI            0.31830988618379067153#define LN_OF_PI                    1.14472988584940017414#define LOG_10_OF_PI                0.49714987269413385435#define EULER                       2.71828182845904523536#define RECIPROCAL_OF_EULER         0.36787944117144232159#define LOG_10_OF_EULER             0.4342944819032518276511289189166050822944#define LN_OF_10                    2.3025850929940456840179914546843642076011#define LN_OF_2                     0.6931471805599453094172321214581765680755#define PLANCK_CONSTANT             6.626176e-34        /* 1/Hz, uncertainty 5.4 ppm */#define ELEMENTARY_CHARGE           1.6021892e-19       /* Coulombs, uncertainty 2.9 ppm */#define SPEED_OF_LIGHT              299792458.0         /* Meters/Second, uncertainty 0.004 ppm */#define GRAVITATIONAL_CONSTANT      6.6720e-11          /* N*M^2/K^2, uncertainty 615 ppm */#define AVOGADRO_CONSTANT           6.022045e23         /* 1/mol, uncertainty 5.1 ppm */#define RYDBERG_CONSTANT            10973731.77         /* 1/m, uncertainty 0.075 ppm */#define MOLAR_GAS_CONSTANT          8.31441             /* 1/(m * K), uncertainty 31 ppm */#define RAD_TO_DEG(r)               ((r)*(360.0/TWO_PI))#define DEG_TO_RAD(d)               ((d)*(TWO_PI/360.0))#define CELSIUS_TO_KELVIN(c)        ((c) + 273.15)#define KELVIN_TO_CELSIUS(k)        ((k) - 273.15)#define CELSIUS_TO_FAHRENHEIT(c)    (((c)*(9.0/5.0))+32.0)#define FAHRENHEIT_TO_CELSIUS(f)    (((f)-32.0) * (5.0/9.0))#define METERS_TO_FEET(m)           ((m)*3.2808399)#define FEET_TO_METERS(f)           ((f)/3.2808399)#define KILOMETERS_TO_MILES(k)      ((k)*0.62137119)#define MILES_TO_KILOMETERS(m)      ((m)/0.62137119)#define KILOGRAMS_TO_POUNDS(k)      ((k)*2.2046226)     /* avdp.*/#define POUNDS_TO_KILOGRAMS(p)      ((p)/2.2046226)#define LITERS_TO_GALLONS(l)        ((l)*0.26417205)    /* U.S. Liquid */#define GALLONS_TO_LITERS(g)        ((g)/0.26417205)    /* U.S. Liquid */double CVIFUNC Pi(void);double CVIFUNC TwoPi(void);double CVIFUNC HalfPi(void);double CVIFUNC ThreeHalvesPi(void);double CVIFUNC ReciprocalOfPi(void);double CVIFUNC LnOfPi(void);double CVIFUNC Log10OfPi(void);double CVIFUNC Euler(void);double CVIFUNC ReciprocalOfEuler(void);double CVIFUNC Log10OfEuler(void);double CVIFUNC Ln10(void);double CVIFUNC Ln2(void);double CVIFUNC PlanckConstant(void);double CVIFUNC ElementaryCharge(void);double CVIFUNC SpeedOfLight(void);double CVIFUNC GravitationalConstant(void);double CVIFUNC AvogadroConstant(void);double CVIFUNC RydbergConstant(void);double CVIFUNC MolarGasConstant(void);double CVIFUNC DegToRad(double degrees);double CVIFUNC RadToDeg(double radians);double CVIFUNC CelsiusToKelvin(double degreesCelsius);double CVIFUNC KelvinToCelsius(double degreesKelvin);double CVIFUNC CelsiusToFahrenheit(double degreesCelsius);double CVIFUNC FahrenheitToCelsius(double degreesFahrenheit);double CVIFUNC MetersToFeet(double meters);double CVIFUNC FeetToMeters(double feet);double CVIFUNC KilometersToMiles(double kilometers);double CVIFUNC MilesToKilometers(double miles);double CVIFUNC KilogramsToPounds(double kilograms);double CVIFUNC PoundsToKilograms(double pounds);double CVIFUNC LitersToGallons(double liters);double CVIFUNC GallonsToLiters(double gallons);#ifdef __cplusplus    }#endif#endif /* TOOLBOX_HEADER */

⌨️ 快捷键说明

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