📄 eibdrv_fl.h
字号:
/* --------------------------------------------------------------------------- eibdrv_fl.h --------------------------------------------------------------------------- eibdrv_fl Version 0.2.1 Copyright (C) 2002, Wolfgang Tumfart Donaustrasse 104/9 A-2344 Maria Enzersdorf Austria (Europe) tumfart@auto.tuwien.ac.at 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. 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., 675 Mass Ave, Cambridge, MA 02139, USA. --------------------------------------------------------------------------- *//* --------------------------------------------------------------------------- This file represents only a rough and incomplete implementation of some functions to access the Forms Library for buidling the GUI of all eibdrv-Tools. --------------------------------------------------------------------------- *//* --------------------------------------------------------------------------- FormsLibrary is copyrighted by T.C. Zhao and Mark Overmars. It is not public domain, but may be used for running publically available free software. --------------------------------------------------------------------------- */#ifndef EIBDRV_FL_H#define EIBDRV_FL_H#define FL_EXT_INVISIBLE 0#define FL_EXT_VISIBLE 1#define BOX_COL1 FL_COL1#define BOX_COL2 FL_COL1#define TEXT_COL1 FL_COL1#define TEXT_COL2 FL_MCOL#define INPUT_COL1 FL_COL1#define INPUT_COL2 FL_MCOL#define INPUT_COLTEXT FL_BLACK#define INPUT_COLCUR FL_BLACK#define BUTTON_COL1 FL_COL1#define BUTTON_COL2 FL_MCOL#define CHECKBUTTON_COL1 FL_COL1#define CHECKBUTTON_COL2 FL_YELLOW#define LIGHTBUTTON_COL1 FL_COL1#define LIGHTBUTTON_COL2 FL_YELLOW#define BROWSER_COL1 FL_COL1#define BROWSER_COL2 FL_YELLOW#define CHOICE_COL1 FL_COL1#define CHOICE_COL2 LABEL_COL#define FRAME_COL1 FL_YELLOW#define FRAME_COL2 FL_YELLOW#define LABELFRAME_COL1 FL_YELLOW#define LABELFRAME_COL2 FL_COL1#define INDICATOR_STOPPED_COL FL_RED#define INDICATOR_RUNNING_COL FL_GREEN#define INDICATOR_FINISHED_COL FL_GREEN#define COUNTER_COL1 FL_COL1#define COUNTER_COL2 FL_BLACK#define LABEL_COL FL_BLACK#define FL_EXT_SOMAXCONN 1#define NORMAL_INFOPANEL 1#define CONTINUE_CANCEL_PANEL 2#define OKBTN 1#define CONTINUEBTN 2#define CANCELBTN 3#define QUITBTN 4extern int errutility;extern int bin_input_filter(FL_OBJECT *obj, const char *old, const char *cur, int c);extern int hex_input_filter(FL_OBJECT *obj, const char *old, const char *cur, int c);extern int dec_input_filter(FL_OBJECT *obj, const char *old, const char *cur, int c);extern int asciiID_input_filter2(FL_OBJECT *obj,const char *old,const char *cur,int c);extern long BinToLong(char *Bin);extern char *BinToHex(char *Bin,char *Hex);extern char *HexToBin(char *Hex,char *Bin);extern int hextobin(char *hex,char *bin);extern void IntToString2(int value, char *string);extern int info_panel(int x, int y, int w, int InfoPanelType, char *title, char *text);extern int read_ValueEditfield(FL_OBJECT *obj,int base,unsigned long *value);extern int write_ValueEditfield(FL_OBJECT *obj,int base,unsigned long value,int maxchars);extern void fl_ext_activate_button(FL_OBJECT *Button);extern void fl_ext_deactivate_button(FL_OBJECT *Button);extern void fl_ext_activate_object(FL_OBJECT *obj);extern void fl_ext_deactivate_object(FL_OBJECT *obj);extern int count_Lines(char *Text);int load_DefaultParam(int (*read_Param_from_File)(char *,void *),void *Param, void (*init_Param)(void *), char *DefaultFile);int save_DefaultParam(int (*write_Param_to_File)(char *,void *),void *Param, char *DefaultFile);extern char *check_ReadString(char *String);extern char *check_WriteString(char *String);extern void fl_ext_formobjects_add_btn(FL_OBJECT **Btn,int Type,int x,int y,int width,int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_checkbtn(FL_OBJECT **Btn,int Type,int x,int y,int width,int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_lightbtn(FL_OBJECT **Btn,int Type,int x,int y,int width,int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_box(int Type,int x,int y,int width,int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_box2(FL_OBJECT **Box,int Type,int x,int y,int width,int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_browser(FL_OBJECT **Browser,int Type,int x,int y,int width, int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_choice(FL_OBJECT **Choice,int Type,int x,int y,int width,int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_inp(FL_OBJECT **Inp,int Type,int x,int y,int width, int height,char *Title,int MaxChars,int ReturnType, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_text(FL_OBJECT **Text,int boxtype,int x,int y,int width, int height,char *Label, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_frame(int Type,int x,int y,int width, int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_labelframe(int Type,int x,int y,int width, int height,char *Title, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_bitmap(int Type,int x,int y,int width, int height,char *Title,char *BitmapFile, unsigned howresize,unsigned NWgravity,unsigned SEgravity);extern void fl_ext_formobjects_add_counter(FL_OBJECT **counter,int Type,int x,int y,int width, int height,char *Title,int lalign, double min_bound,double max_bound,double small_step,double large_step,int prec, unsigned howresize,unsigned NWgravity,unsigned SEgravity);#define FL_EXT_PANEL_OK 1#define FL_EXT_PANEL_CONTINUE_CANCEL 2#define FL_EXT_BROWSERPANEL_OK 3#define FL_EXT_BROWSERPANEL_CONTINUE_CANCEL 4#define FL_EXT_PANEL_OKBTN 1#define FL_EXT_PANEL_CONTINUEBTN 2#define FL_EXT_PANEL_CANCELBTN 3#define FL_EXT_PANEL_QUITBTN 4#define FL_EXT_PANEL_NULLBTN 99#define FL_EXT_PANEL_BORDER_WIDTH 2#define FL_EXT_PANEL_OFFSET_X 20#define FL_EXT_PANEL_OFFSET_Y 20#define FL_EXT_PANEL_LINEHEIGHT 15#define FL_EXT_PANEL_DEFAULT_COL FL_BLACK#define FL_EXT_PANEL_ICON_COL FL_YELLOW#define FL_EXT_PANEL_BOX_COL1 FL_COL1#define FL_EXT_PANEL_BOX_COL2 FL_COL1#define FL_EXT_PANEL_BUTTON_COL1 FL_COL1#define FL_EXT_PANEL_BUTTON_COL2 FL_MCOL#define FL_EXT_PANEL_BROWSER_COL1 FL_COL1#define FL_EXT_PANEL_BROWSER_COL2 FL_YELLOW#define FL_EXT_PANEL_LABEL_COL FL_BLACKtypedef struct { FL_FORM *Form; FL_OBJECT *Browser; FL_OBJECT *OkBtn; FL_OBJECT *ContinueBtn; FL_OBJECT *CancelBtn; void *UserData; void (*Panel_cb)(void *,int); } PanelType;typedef struct { int Type; int X; int Y; int Width; int Height; char *Title; char *Text1; char *Text2; } PanelContent;extern PanelContent *getPanelContentA(int size);extern void returnPanelContentA(PanelContent *ContentA,int size);extern int write_PanelContentA(char *file,PanelContent *PanelContentA,int count);extern int read_PanelContentA(char *file,PanelContent **PanelContentA);extern void *fl_ext_panel1(PanelContent *Content,void *UserData, void (*Panel_cb)(void *,int));extern void *fl_ext_ppanel1(PanelContent *Content,void *UserData, void (*Panel_cb)(void *,int));extern void *fl_ext_panel2(PanelContent *Content,void *UserData, void (*Panel_cb)(void *,int));extern void fl_ext_hide_panel(PanelType *Panel);extern void fl_ext_free_panel(PanelType *Panel);extern void fl_ext_cancel_panel(PanelType *Panel);#include "time.h"#define FL_EXT_INDICATOR_MINHEIGHT 160#define FL_EXT_INDICATOR_MINWIDTH 280#define FL_EXT_INDICATOR_INITIAL -1#define FL_EXT_INDICATOR_STOPPED 0#define FL_EXT_INDICATOR_RUNNING 1#define FL_EXT_INDICATOR_FINISHED 2#define FL_EXT_INDICATOR_ACTUAL_TIME 1#define FL_EXT_INDICATOR_ACTUAL_AND_ESTIMATED_TIME 2typedef struct { FL_FORM *Form; FL_OBJECT *PercentValueText; FL_OBJECT *StateText; FL_OBJECT *EstimatedTimeText; FL_OBJECT *ActualTimeText; FL_OBJECT *OuterBox; FL_OBJECT *InnerBox; double PercentValue; int State; time_t StartTime; } IndicatorType;extern IndicatorType *fl_ext_add_indicator(FL_FORM *Form,int PosX,int PosY, int Width,int Height,int FL_Gravity);extern void fl_ext_reset_indicator(IndicatorType *Indicator);extern void fl_ext_start_indicator(IndicatorType *Indicator);extern void fl_ext_update_indicator(IndicatorType *Indicator, int StateNew,double PercentValueNew);extern void fl_ext_time_indicator(IndicatorType *Indicator, int Mode);extern void fl_ext_free_indicator(IndicatorType *Indicator);#define P(id) pv(id,-1)#define V(id) pv(id,1)extern void pv(int id,int operation);#ifndef PV#define PV/* The following makros implement the P- and V-operations for synchronizing access of several processes to common data. A Semaphor with the P- and V-operations should be used by the following steps: 1. Create a new semaphorset (id) with one semaphore (0) with semget. 2. Initialize the created semaphor with 1. 3. Use the makro P(id) when entering the section of code, which is to be guarded by the semaphore. 4. Use the makro V(id) when leaving the section of code. Unused semaphores have to be deleted with semctl. */#define P(id) pv(id,-1)#define V(id) pv(id,1)extern void pv(int id,int operation);#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -