gui.h
Last updated: 17-Sep-2025
Go to the documentation of this file.
1Â // -*- Mode: C++; -*- 2Â #ifndef GUI_H_2013_03_14 3Â #define GUI_H_2013_03_14 4Â 10Â #include <stdarg.h> 11Â #include <pthread.h> 12Â #include "jsobject.h" 13Â #include "timestamp.h" 14Â #include "gui_error.h" 15Â #include "types.h" 16Â 17Â #if defined _WIN32 && defined VFI_GUIPRT_SHARED_EXPORT 18Â # define DllSpec __declspec(dllexport) 19Â #elif defined __GNUC__ && defined VFI_GUIPRT_SHARED_EXPORT 20Â # define DllSpec __attribute__((visibility ("default"))) 21Â #else 22Â # define DllSpec 23Â #endif 24Â 26Â #ifndef DOXYGEN 27Â namespace vfigui { 28Â #endif 29Â #if 0 30Â } // just to satisfy automatic indentation of the editor 31Â #endif 32Â 33Â using namespace vfihtml; // import common interfaces 34Â 51Â typedef bool (*uiCallback)(void *data); 52Â 54Â enum UICBType { UI_CB_RESULT, 55Â UI_CB_UPDATE, 56Â UI_CB_LOAD, 57Â UI_CB_ERROR_LIST, 58Â UI_CB_STATISTICS, 59Â UI_CB_EVENT 60Â }; 61Â 62Â struct UIErrorEntry; 63Â struct UIStatistics; 64Â 66Â class UICBData { 67Â public: 68Â 70Â virtual ~UICBData() {} 71Â 73Â virtual int &result()=0; 74Â 76Â virtual int txn_id()=0; 77Â 79Â virtual stringmap &value()=0; 80Â 82Â virtual std::string &url()=0; 83Â 85Â virtual std::vector<UIErrorEntry> &error()=0; 86Â 88Â virtual std::string &script_error()=0; 89Â 91Â virtual UIStatistics &statistics()=0; 92Â 93Â }; 94Â 95Â 105Â typedef void (*uiAsyncCallback)(void *data, UICBType type, UICBData &uidata); 106Â 109Â struct UIRegion { 110Â int id; 111Â int left; 112Â int top; 113Â int right; 114Â int bottom; 115Â int flags; 116Â }; 117Â 118Â enum { UI_REGION_DEFAULT=0 119Â }; 120Â 121Â enum { 122Â UI_REGION_FLAG_HIDDEN=1 124Â }; 125Â 126Â 131Â DllSpec void uiSetConnectAttempts(int num); 132Â 136Â DllSpec int uiGetConnectAttempts(); 137Â 143Â typedef void (*uiDisconnectCallback)(int display); 144Â 150Â DllSpec void uiSetDisconnectCallback(uiDisconnectCallback cb); 151Â 155Â DllSpec uiDisconnectCallback uiGetDisconnectCallback(); 156Â 163Â DllSpec void uiSetKeepalive(int count, int interval); 164Â 169Â DllSpec void uiGetKeepalive(int &count, int &interval); 170Â 175Â DllSpec void uiDisconnect(int display); 176Â 184Â DllSpec int uiReadRuntimeID(int display, std::string &id, int timeout_msec=5000); 185Â 194Â DllSpec std::string uiPrint(const char *format, ...); 195Â 198Â DllSpec std::string uiPrintV(const char *format, va_list va); 199Â 200Â 204Â DllSpec int uiDisplayCount(); 205Â 206Â 214Â DllSpec int uiDisplay(int display, int region_id, const std::string &text); 215Â 216Â DllSpec int uiDisplay(int region_id, const std::string &text); 217Â 218Â inline int uiDisplay(const std::string &text) { return uiDisplay(0,UI_REGION_DEFAULT,text); } 219Â 220Â 232Â DllSpec int uiInvoke(int display, int region_id, stringmap &value, const std::string &text, uiCallback cb=0, void *cbdata=0); 233Â 234Â DllSpec int uiInvoke(int region_id, stringmap &value, const std::string &text, uiCallback cb=0, void *cbdata=0); 235Â 236Â inline int uiInvoke(stringmap &value, const std::string &text, uiCallback cb=0, void *cbdata=0) 237Â { return uiInvoke(0,UI_REGION_DEFAULT,value,text,cb,cbdata); } 238Â 239Â inline int uiInvoke(int display, int region_id, const std::string &text, uiCallback cb=0, void *cbdata=0) 240Â { stringmap value; return uiInvoke(display, region_id,value,text,cb,cbdata); } 241Â 242Â inline int uiInvoke(int region_id, const std::string &text, uiCallback cb=0, void *cbdata=0) 243Â { stringmap value; return uiInvoke(0,region_id,value,text,cb,cbdata); } 244Â 245Â inline int uiInvoke(const std::string &text, uiCallback cb=0, void *cbdata=0) 246Â { stringmap value; return uiInvoke(0,UI_REGION_DEFAULT,value,text,cb,cbdata); } 247Â 260Â DllSpec int uiInvokeTemplate(int display, int region_id, stringmap &value, const std::string &template_name, const std::string &text, uiCallback cb=0, void *cbdata=0); 261Â 262Â DllSpec int uiInvokeTemplate(int region_id, stringmap &value, const std::string &template_name, const std::string &text, uiCallback cb=0, void *cbdata=0); 263Â 264Â inline int uiInvokeTemplate(stringmap &value, const std::string &template_name, const std::string &text, uiCallback cb=0, void *cbdata=0) 265Â { return uiInvokeTemplate(0,UI_REGION_DEFAULT,value,template_name,text,cb,cbdata); } 266Â 267Â inline int uiInvokeTemplate(int display, int region_id, const std::string &template_name, const std::string &text, uiCallback cb=0, void *cbdata=0) 268Â { stringmap value; return uiInvokeTemplate(display,region_id,value,template_name,text,cb,cbdata); } 269Â 270Â inline int uiInvokeTemplate(int region_id, const std::string &template_name, const std::string &text, uiCallback cb=0, void *cbdata=0) 271Â { stringmap value; return uiInvokeTemplate(0,region_id,value,template_name,text,cb,cbdata); } 272Â 273Â inline int uiInvokeTemplate(const std::string &template_name, const std::string &text, uiCallback cb=0, void *cbdata=0) 274Â { stringmap value; return uiInvokeTemplate(0,UI_REGION_DEFAULT,value,template_name,text,cb,cbdata); } 275Â 276Â 289Â DllSpec int uiInvokeURL(int display, int region_id, stringmap &value, const char *url, uiCallback cb=0, void *cbdata=0); 290Â 292Â DllSpec int uiInvokeURL(int region_id, stringmap &value, const char *url, uiCallback cb=0, void *cbdata=0); 293Â 295Â inline int uiInvokeURL(stringmap &value, const char *url, uiCallback cb=0, void *cbdata=0) 296Â { return uiInvokeURL(0,UI_REGION_DEFAULT,value,url,cb,cbdata); } 297Â 299Â inline int uiInvokeURL(int display, int region_id, const char *url, uiCallback cb=0, void *cbdata=0) 300Â { stringmap value; return uiInvokeURL(display, region_id,value,url,cb,cbdata); } 301Â 303Â inline int uiInvokeURL(int region_id, const char *url, uiCallback cb=0, void *cbdata=0) 304Â { stringmap value; return uiInvokeURL(0,region_id,value,url,cb,cbdata); } 305Â 307Â inline int uiInvokeURL(const char *url, uiCallback cb=0, void *cbdata=0) 308Â { stringmap value; return uiInvokeURL(0,UI_REGION_DEFAULT,value,url,cb,cbdata); } 309Â 310Â 323Â DllSpec int uiInvokeURL(int display, int region_id, stringmap &value, const std::string &url, uiCallback cb=0, void *cbdata=0); 324Â 326Â inline int uiInvokeURL(int region_id, stringmap &value, const std::string &url, uiCallback cb=0, void *cbdata=0) 327Â { return uiInvokeURL(0,region_id,value,url,cb,cbdata); } 328Â 330Â inline int uiInvokeURL(stringmap &value, const std::string &url, uiCallback cb=0, void *cbdata=0) 331Â { return uiInvokeURL(0,UI_REGION_DEFAULT,value,url,cb,cbdata); } 332Â 334Â inline int uiInvokeURL(int display, int region_id, const std::string &url, uiCallback cb=0, void *cbdata=0) 335Â { stringmap value; return uiInvokeURL(display,region_id,value,url,cb,cbdata); } 336Â 338Â inline int uiInvokeURL(int region_id, const std::string &url, uiCallback cb=0, void *cbdata=0) 339Â { stringmap value; return uiInvokeURL(0,region_id,value,url,cb,cbdata); } 340Â 342Â inline int uiInvokeURL(const std::string &url, uiCallback cb=0, void *cbdata=0) 343Â { stringmap value; return uiInvokeURL(0,UI_REGION_DEFAULT, value,url,cb,cbdata); } 344Â 345Â 358Â DllSpec int uiInvokeAsync(int display, int region_id, const stringmap &value, const std::string &text, uiAsyncCallback cb=0, void *data=0); 359Â 361Â DllSpec int uiInvokeAsync(int region_id, const stringmap &value, const std::string &text, uiAsyncCallback cb=0, void *data=0); 362Â 364Â inline int uiInvokeAsync(const stringmap &value, const std::string &text, uiAsyncCallback cb=0, void *data=0) 365Â { return uiInvokeAsync(0,UI_REGION_DEFAULT, value, text,cb,data); } 366Â 368Â inline int uiInvokeAsync(int display, int region_id, const std::string &text, uiAsyncCallback cb=0, void *data=0) 369Â { stringmap value; return uiInvokeAsync(display, region_id,value,text,cb,data); } 370Â 372Â inline int uiInvokeAsync(int region_id, const std::string &text, uiAsyncCallback cb=0, void *data=0) 373Â { stringmap value; return uiInvokeAsync(0,region_id,value,text,cb,data); } 374Â 376Â inline int uiInvokeAsync(const std::string &text, uiAsyncCallback cb=0, void *data=0) 377Â { stringmap value; return uiInvokeAsync(0,UI_REGION_DEFAULT, value, text,cb,data); } 378Â 392Â DllSpec int uiInvokeTemplateAsync(int display, int region_id, const stringmap &value, const std::string &template_name, const std::string &text, uiAsyncCallback cb=0, void *data=0); 393Â 395Â DllSpec int uiInvokeTemplateAsync(int region_id, const stringmap &value, const std::string &template_name, const std::string &text, uiAsyncCallback cb=0, void *data=0); 396Â 398Â inline int uiInvokeTemplateAsync(const stringmap &value, const std::string &template_name, const std::string &text, uiAsyncCallback cb=0, void *data=0) 399Â { return uiInvokeTemplateAsync(0, UI_REGION_DEFAULT, value, template_name, text, cb,data); } 400Â 402Â inline int uiInvokeTemplateAsync(int display, int region_id, const std::string &template_name, const std::string &text, uiAsyncCallback cb=0, void *data=0) 403Â { stringmap value; return uiInvokeTemplateAsync(display,region_id,value,template_name,text, cb,data); } 404Â 406Â inline int uiInvokeTemplateAsync(int region_id, const std::string &template_name, const std::string &text, uiAsyncCallback cb=0, void *data=0) 407Â { stringmap value; return uiInvokeTemplateAsync(0,region_id,value,template_name,text, cb,data); } 408Â 410Â inline int uiInvokeTemplateAsync(const std::string &template_name, const std::string &text, uiAsyncCallback cb=0, void *data=0) 411Â { stringmap value; return uiInvokeTemplateAsync(0,UI_REGION_DEFAULT, value, template_name, text, cb,data); } 412Â 413Â 427Â DllSpec int uiInvokeURLAsync(int display, int region_id, const stringmap &value, const char *url, uiAsyncCallback cb=0, void *data=0); 428Â 430Â DllSpec int uiInvokeURLAsync(int region_id, const stringmap &value, const char *url, uiAsyncCallback cb=0, void *data=0); 431Â 433Â inline int uiInvokeURLAsync(const stringmap &value, const char *url, uiAsyncCallback cb=0, void *data=0) 434Â { return uiInvokeURLAsync(0, UI_REGION_DEFAULT, value, url,cb,data); } 435Â 437Â inline int uiInvokeURLAsync(int display, int region_id,const char *url, uiAsyncCallback cb=0, void *data=0) 438Â { stringmap value; return uiInvokeURLAsync(display, region_id,value,url,cb,data); } 439Â 441Â inline int uiInvokeURLAsync(int region_id,const char *url, uiAsyncCallback cb=0, void *data=0) 442Â { stringmap value; return uiInvokeURLAsync(0,region_id,value,url,cb,data); } 443Â 445Â inline int uiInvokeURLAsync(const char *url, uiAsyncCallback cb=0, void *data=0) 446Â { stringmap value; return uiInvokeURLAsync(0, UI_REGION_DEFAULT, value, url,cb,data); } 447Â 448Â 462Â DllSpec int uiInvokeURLAsync(int display, int region_id, const stringmap &value, const std::string &url, uiAsyncCallback cb=0, void *data=0); 463Â 465Â inline int uiInvokeURLAsync(int region_id, const stringmap &value, const std::string &url, uiAsyncCallback cb=0, void *data=0) 466Â { return uiInvokeURLAsync(0, region_id, value, url,cb,data); } 467Â 469Â inline int uiInvokeURLAsync(const stringmap &value, const std::string &url, uiAsyncCallback cb=0, void *data=0) 470Â { return uiInvokeURLAsync(0, UI_REGION_DEFAULT, value, url,cb,data); } 471Â 473Â inline int uiInvokeURLAsync(int display, int region_id,const std::string &url, uiAsyncCallback cb=0, void *data=0) 474Â { stringmap value; return uiInvokeURLAsync(display, region_id,value,url,cb,data); } 475Â 477Â inline int uiInvokeURLAsync(int region_id,const std::string &url, uiAsyncCallback cb=0, void *data=0) 478Â { stringmap value; return uiInvokeURLAsync(0,region_id,value,url,cb,data); } 479Â 481Â inline int uiInvokeURLAsync(const std::string &url, uiAsyncCallback cb=0, void *data=0) 482Â { stringmap value; return uiInvokeURLAsync(0, UI_REGION_DEFAULT, value, url,cb,data); } 483Â 484Â 496Â DllSpec int uiInvokeWait(int txn_id, std::map<std::string,std::string> &value, int timeout_msec=-1); 497Â 498Â 500Â inline int uiInvokeWait(int txn_id, int timeout_msec=-1) 501Â { 502Â std::map<std::string,std::string> value; 503Â return uiInvokeWait(txn_id,value,timeout_msec); 504Â } 505Â 515Â DllSpec int uiInvokeCancel(int txn_id, std::map<std::string,std::string> &value); 516Â 518Â inline int uiInvokeCancel(int txn_id) 519Â { 520Â std::map<std::string,std::string> value; 521Â return uiInvokeCancel(txn_id,value); 522Â } 523Â 527Â DllSpec int uiInvokeCancelAsync(int txn_id); 528Â 539Â DllSpec int uiInvokeURLDetached(int display, int region_id, const char *url); 540Â 542Â DllSpec int uiInvokeURLDetached(int region_id, const char *url); 543Â 545Â inline int uiInvokeURLDetached(const char *url) 546Â { return uiInvokeURLDetached(0, UI_REGION_DEFAULT,url); } 547Â 548Â 555Â DllSpec int uiClear(int display, int region_id); 556Â 558Â inline int uiClear(int region_id) { return uiClear(0,region_id); } 559Â 561Â enum UIPropertyInt { 562Â UI_PROP_TIMEOUT=0, 563Â UI_PROP_PASSWORD_CHAR, 564Â UI_PROP_DEFAULT_FONT_SIZE, 565Â UI_PROP_PIN_AUTO_ENTER, 566Â UI_PROP_PIN_CLEAR_ALL, 567Â UI_PROP_PIN_BYPASS_KEY, 572Â UI_PROP_PIN_ALGORITHM, 574Â UI_PROP_PIN_INTERCHAR_TIMEOUT, 575Â UI_PROP_PASSWORD_SHOW_CHAR, 576Â UI_PROP_KEEP_DISPLAY, 579Â UI_PROP_UPDATE_EVENTS, 581Â UI_PROP_CIRCULAR_MENU, 583Â UI_PROP_TOUCH_ACTION_BEEP, 585Â UI_PROP_STATISTICS, 586Â UI_PROP_RESTRICTED, 587Â UI_PROP_CP_APP_MODE, 588Â UI_PROP_SCROLL_COLOR, 589Â UI_PROP_INPUT_ERROR_BEEP, 592Â UI_PROP_ZOOM_MAX, 593Â UI_PROP_SCROLL_DISPLAY, 595Â UI_PROP_JS_QUOTA_SIZE, 597Â // Readonly properties 598Â UI_DEVICE_WIDTH=1000, 599Â UI_DEVICE_HEIGHT, 600Â UI_DEVICE_COLOR_DEPTH, 601Â UI_DEVICE_SUPPORTS_TOUCH, 602Â UI_DEVICE_SUPPORTS_BEEPER, // not supported, do not use. Left here for compatibility reasons. 603Â UI_DEVICE_SUPPORTS_AUDIO, 604Â UI_DEVICE_SUPPORTS_VIDEO, 605Â UI_DEVICE_SUPPORTS_SIGCAP, 606Â UI_DEVICE_SUPPORTS_COLOR_DISPLAY, 607Â UI_DEVICE_HAS_CAP_TOUCH_KEYPAD, 608Â UI_DEVICE_SUPPORTS_NAVIGATOR_MODE, 609Â UI_DEVICE_KEY_COUNT 610Â }; 611Â 613Â enum UIPropertyString { 614Â UI_PROP_DECIMAL_SEPARATOR=2000, 615Â UI_PROP_THOUSANDS_SEPARATOR, 616Â UI_PROP_DEFAULT_FONT, 617Â UI_PROP_RESOURCE_PATH, 618Â UI_PROP_FILE_PREFIX, 620Â UI_PROP_KEYMAP, 621Â UI_PROP_CSS, 622Â UI_PROP_RESOURCE_DEFAULT_PATH, 623Â UI_PROP_GUI_EXTENSIONS, 624Â UI_PROP_HTTP_HEADER_FIELDS, 626Â UI_PROP_CP_APP_DIR, 628Â UI_PROP_LANGUAGE, 636Â UI_PROP_JS_ROOT, 639Â UI_PROP_PRINT_ROOT, 641Â UI_PROP_PRINT_CSS, 643Â UI_PROP_JS_QUOTA_ROOT, 645Â // Readonly properties 646Â UI_DEVICE_MODEL=3000 647Â }; 648Â 656Â DllSpec int uiSetPropertyInt(int display, enum UIPropertyInt property, int value); 657Â 659Â DllSpec int uiSetPropertyInt(enum UIPropertyInt property, int value); 660Â 668Â DllSpec int uiGetPropertyInt(int display, enum UIPropertyInt property, int *value); 669Â 671Â DllSpec int uiGetPropertyInt(enum UIPropertyInt property, int *value); 672Â 680Â DllSpec int uiSetPropertyString(int display, enum UIPropertyString property, const char *value); 681Â 683Â DllSpec int uiSetPropertyString(enum UIPropertyString property, const char *value); 684Â 692Â inline int uiSetPropertyString(int display, enum UIPropertyString property, const std::string &value) 693Â { return uiSetPropertyString(display,property,value.c_str()); } 694Â 696Â inline int uiSetPropertyString(enum UIPropertyString property, const std::string &value) 697Â { return uiSetPropertyString(0,property,value.c_str()); } 698Â 707Â DllSpec int uiGetPropertyString(int display, enum UIPropertyString property, char* value, int len); 708Â 710Â DllSpec int uiGetPropertyString(enum UIPropertyString property, char* value, int len); 711Â 719Â DllSpec int uiGetPropertyString(int display, enum UIPropertyString property, std::string &value); 720Â 722Â DllSpec int uiGetPropertyString(enum UIPropertyString property, std::string &value); 723Â 724Â 726Â enum UIServerProperty { 727Â UI_SERVER_TOUCH_ACTION_BEEP, 730Â UI_SERVER_INPUT_ERROR_BEEP, 733Â UI_SERVER_KEYMAP, 735Â }; 736Â 743Â DllSpec int uiSetServerProperty(int display, enum UIServerProperty property, const std::string &value); 744Â 751Â DllSpec int uiGetServerProperty(int display, enum UIServerProperty property, std::string &value); 752Â 760Â DllSpec std::string uiGetTerminalResourceDir(int display, const std::string &www_path); 761Â 763Â DllSpec std::string uiGetTerminalResourceDir(const std::string &www_path); 764Â 767Â DllSpec std::string uiGetKeypadType(int display); 768Â 774Â DllSpec void uiSetLocalProperties(bool local); 775Â 777Â DllSpec bool uiGetLocalProperties(); 778Â 792Â DllSpec int uiLayout(int display, const UIRegion *region, int regcnt, const UIRegion *oldreg, int oldregcnt); 793Â 795Â DllSpec int uiLayout(const UIRegion *region, int regcnt, const UIRegion *oldreg, int oldregcnt); 796Â 798Â DllSpec int uiLayout(int display, const UIRegion *region, int regcnt); 799Â 801Â DllSpec int uiLayout(const UIRegion *region, int regcnt); 802Â 810Â inline int uiLayout(int display, const std::vector<UIRegion> ®) { 811Â UIRegion dummy; 812Â return uiLayout(display, reg.size() ? ®[0] : &dummy,reg.size()); 813Â } 814Â 816Â inline int uiLayout(const std::vector<UIRegion> ®) { 817Â UIRegion dummy; 818Â return uiLayout(0, reg.size() ? ®[0] : &dummy,reg.size()); 819Â } 820Â 831Â inline int uiLayout(int display, const std::vector<UIRegion> ®, const std::vector<UIRegion> &oldreg) 832Â { 833Â UIRegion dummy; 834Â return uiLayout(display, reg.size() ? ®[0] : &dummy,reg.size(), oldreg.size() ? &oldreg[0] : &dummy, oldreg.size()); 835Â } 836Â 838Â inline int uiLayout(const std::vector<UIRegion> ®, const std::vector<UIRegion> &oldreg) 839Â { 840Â UIRegion dummy; 841Â return uiLayout(0,reg.size() ? ®[0] : &dummy,reg.size(), oldreg.size() ? &oldreg[0] : &dummy, oldreg.size()); 842Â } 843Â 851Â DllSpec int uiLayout(int display, const char *name); 852Â 854Â DllSpec int uiLayout(const char *name); 855Â 862Â DllSpec int uiGetLayout(int display, std::vector<UIRegion> ®ion); 863Â 865Â DllSpec int uiGetLayout(std::vector<UIRegion> ®ion); 866Â 874Â DllSpec int uiGetRegionSize(int display, int region_id, int &width, int &height); 875Â 877Â inline int uiGetRegionSize(int region_id, int &width, int &height) 878Â { 879Â return uiGetRegionSize(0,region_id,width,height); 880Â } 881Â 890Â DllSpec int uiEnterRegion(int display, int region_id); 891Â 893Â DllSpec int uiEnterRegion(int region_id); 894Â 899Â DllSpec int uiLeaveRegion(int display); 900Â 902Â DllSpec int uiLeaveRegion(); 903Â 912Â DllSpec std::string uiCurrentRegionPath(int display); 913Â 915Â DllSpec std::string uiCurrentRegionPath(); 916Â 923Â DllSpec int uiSetCurrentRegionPath(int display, const std::string &path); 924Â 926Â DllSpec int uiSetCurrentRegionPath(const std::string &path); 927Â 928Â 934Â DllSpec int uiRegionIsVisible(int display, int region_id); 935Â 940Â inline int uiRegionIsVisible(int region_id) 941Â {return uiRegionIsVisible(0,region_id); } 942Â 943Â 952Â DllSpec void uiReadConfig(int display); 953Â 955Â DllSpec void uiReadConfig(); 956Â 957Â 966Â DllSpec int uiSetCatalog(int display, const std::string &filename); 967Â 969Â DllSpec int uiSetCatalog(const std::string &filename); 970Â 976Â DllSpec std::string uiGetCatalog(int display); 977Â 979Â DllSpec std::string uiGetCatalog(); 980Â 988Â DllSpec void uiCatalogSetDelayedRelease(unsigned num); 989Â 995Â DllSpec unsigned uiCatalogGetDelayedRelease(); 996Â 997Â 1006Â DllSpec std::string uiGetText(int display, const std::string &name, const std::string &deflt=""); 1007Â 1009Â DllSpec std::string uiGetText(const std::string &name, const std::string &deflt=""); 1010Â 1027Â DllSpec std::string uiGetText(int display, const std::string &filename, const std::string &name, const std::string &deflt); 1028Â 1030Â DllSpec std::string uiGetText(const std::string &filename, const std::string &name, const std::string &deflt); 1031Â 1041Â DllSpec int uiGetHtml(int display, const std::map<std::string,std::string> &value, const std::string &text, std::string &html); 1042Â 1044Â DllSpec int uiGetHtml(const std::map<std::string,std::string> &value, const std::string &text, std::string &html); 1045Â 1056Â DllSpec int uiGetHtmlURL(int display, const std::map<std::string,std::string> &value, const std::string &url, std::string &html); 1057Â 1059Â DllSpec int uiGetHtmlURL(const std::map<std::string,std::string> &value, const std::string &url, std::string &html); 1060Â 1061Â 1069Â DllSpec std::string uiGetURLPath(int display, const std::string &url); 1070Â 1072Â DllSpec std::string uiGetURLPath(const std::string &url); 1073Â 1074Â 1082Â DllSpec int uiScreenshotPNG(int display, const char *filename); 1083Â 1085Â DllSpec int uiScreenshotPNG(const char *filename); 1086Â 1099Â DllSpec int uiScreenshotPNG(int display, const char *filename, int x, int y, int w, int h); 1100Â 1102Â inline int uiScreenshotPNG(const char *filename, int x, int y, int w, int h) 1103Â { 1104Â return uiScreenshotPNG(0,filename,x,y,w,h); 1105Â } 1106Â 1107Â 1115Â DllSpec int uiScreenshotPNGData(int display, std::vector<unsigned char> &data); 1116Â 1118Â DllSpec int uiScreenshotPNGData(std::vector<unsigned char> &data); 1119Â 1132Â DllSpec int uiScreenshotPNGData(int display, std::vector<unsigned char> &data, int x, int y, int w, int h); 1133Â 1135Â inline int uiScreenshotPNGData(std::vector<unsigned char> &data, int x, int y, int w, int h) 1136Â { 1137Â return uiScreenshotPNGData(0,data,x,y,w,h); 1138Â } 1139Â 1140Â 1151Â DllSpec int uiURL2PNG(const char *filename, int width, int height, const std::map<std::string,std::string> &value, const std::string &url); 1152Â 1163Â DllSpec int uiURL2PNGData(std::vector<unsigned char> &data, int width, int height, const std::map<std::string,std::string> &value, const std::string &url); 1164Â 1174Â DllSpec int uiHTML2PNG(const char *filename, int width, int height, const std::map<std::string,std::string> &value, const std::string &text); 1175Â 1185Â DllSpec int uiHTML2PNGData(std::vector<unsigned char> &data, int width, int height, const std::map<std::string,std::string> &value, const std::string &text); 1186Â 1190Â DllSpec const char *uiLibVersion(); 1191Â 1195Â DllSpec const char *gui_GetVersion(); 1196Â 1197Â 1202Â DllSpec const char *gui_GetSvcVersion(int display); 1203Â DllSpec const char *gui_GetSvcVersion(); 1204Â 1206Â enum { 1207Â // lowest 4 bits: direction flags 1208Â UI_TRANS_UP =0x1, 1209Â UI_TRANS_RIGHT =0x2, 1210Â UI_TRANS_DOWN =0x4, 1211Â UI_TRANS_LEFT =0x8, 1213Â UI_TRANS_DIRECTION_MASK=0xf, 1215Â // 2 bits affecting speed: 1216Â UI_TRANS_EASE_IN =0x10, 1217Â UI_TRANS_EASE_OUT =0x20, 1218Â UI_TRANS_EASE_INOUT =0x30, 1220Â UI_TRANS_EASE_MASK=0x30, 1222Â // Transition type 1223Â UI_TRANS_NONE =0x000, 1224Â UI_TRANS_SLIDE =0x100, 1225Â UI_TRANS_SLIDEON =0x200, 1226Â UI_TRANS_SWAP =0x300, 1228Â UI_TRANS_CROSSFADE=0x400, 1230Â UI_TRANS_TYPE_MASK=0xfff00 1231Â }; 1232Â 1242Â DllSpec int uiSetTransition(int display, int region_id, unsigned transtype, int duration_ms); 1243Â 1245Â DllSpec int uiSetTransition(int region_id, unsigned transtype, int duration_ms); 1246Â 1248Â inline int uiSetTransition(unsigned transtype, int duration_ms) 1249Â { return uiSetTransition(0,UI_REGION_DEFAULT,transtype,duration_ms); } 1250Â 1251Â 1253Â struct UIErrorEntry { 1255Â enum ErrorType { NOT_FOUND, 1256Â UNSUPPORTED, 1257Â CORRUPT 1258Â } type; 1259Â std::string name; 1261Â UIErrorEntry(ErrorType t, const std::string &n) :type(t),name(n) {} 1262Â }; 1263Â 1270Â DllSpec const std::vector<UIErrorEntry> &uiErrorList(); 1271Â 1273Â struct UIStatistics { 1274Â vfigui::TimeStamp start; 1275Â vfigui::TimeStamp css; 1276Â vfigui::TimeStamp html; 1277Â vfigui::TimeStamp draw; 1278Â }; 1279Â 1280Â 1286Â DllSpec const UIStatistics &uiStatistics(); 1287Â 1288Â 1292Â DllSpec std::string uiScriptError(); 1293Â 1294Â 1298Â DllSpec int uiGetIdleTime(int display=0); 1299Â 1303Â DllSpec void uiSetLogMask(unsigned mask); 1304Â 1308Â DllSpec unsigned uiGetLogMask(void); 1309Â 1311Â enum UILEDShape { 1312Â UI_SHAPE_RECTANGLE, 1313Â UI_SHAPE_ELLIPSE 1314Â }; 1315Â 1329Â DllSpec int uiConfigLEDs(int display, 1330Â UILEDShape shape, int width, int height, 1331Â unsigned off_rgba, 1332Â unsigned on0_rgba, unsigned on1_rgba, unsigned on2_rgba, unsigned on3_rgba); 1333Â 1335Â DllSpec int uiConfigLEDs(UILEDShape shape, int width, int height, 1336Â unsigned off_rgba, 1337Â unsigned on0_rgba, unsigned on1_rgba, unsigned on2_rgba, unsigned on3_rgba); 1338Â 1339Â 1349Â DllSpec int uiConfigLEDs(int display, const char *filename); 1350Â 1352Â DllSpec int uiConfigLEDs(const char *filename); 1353Â 1355Â enum UIEdge { 1356Â UI_EDGE_TOP, 1357Â UI_EDGE_RIGHT, 1358Â UI_EDGE_BOTTOM, 1359Â UI_EDGE_LEFT 1360Â }; 1361Â 1378Â DllSpec int uiShowLEDArea(int display, UIEdge edge, int width, int height, unsigned bg_rgba); 1379Â 1381Â DllSpec int uiShowLEDArea(UIEdge edge, int width, int height, unsigned bg_rgba); 1382Â 1387Â DllSpec int uiHideLEDArea(int display); 1388Â 1390Â DllSpec int uiHideLEDArea(); 1391Â 1398Â DllSpec int uiSetLED(int display, unsigned led, bool state); 1399Â 1401Â DllSpec int uiSetLED(unsigned led, bool state); 1402Â 1403Â 1405Â struct UIBacklight { 1406Â unsigned brightness; 1407Â unsigned timeout; 1409Â }; 1410Â 1424Â DllSpec int uiSetBacklightConfig(int display, const std::vector<UIBacklight> &levels); 1425Â 1431Â DllSpec int uiGetBacklightConfig(int display, std::vector<UIBacklight> &levels); 1432Â 1440Â DllSpec int uiSetBacklightLevel(int display, int level); 1441Â 1447Â DllSpec int uiGetBacklightLevel(int display, int &level); 1448Â 1449Â 1457Â DllSpec int uiSetInput(int display, int region_id, const std::string &name, const std::string &value); 1458Â 1460Â inline int uiSetInput(int region_id, const std::string &name, const std::string &value) 1461Â { 1462Â return uiSetInput(0,region_id,name,value); 1463Â } 1464Â 1471Â DllSpec int uiRunAction(int display, int region_id, const std::string &name); 1472Â 1474Â inline int uiRunAction(int region_id, const std::string &name) 1475Â { 1476Â return uiRunAction(0,region_id,name); 1477Â } 1478Â 1479Â 1486Â DllSpec int uiRunAction2(int display, int region_id, const std::string &name); 1487Â 1489Â inline int uiRunAction2(int region_id, const std::string &name) 1490Â { 1491Â return uiRunAction2(0,region_id,name); 1492Â } 1493Â 1507Â DllSpec int uiAddOption(int display, int region_id, const std::string &name, const std::string &value, const std::string &text, const std::string &style="", const std::string &action="", int position=-1); 1508Â 1510Â inline int uiAddOption(int region_id, const std::string &name, const std::string &value, const std::string &text, const std::string &style="", const std::string &action="", int position=-1) 1511Â { 1512Â return uiAddOption(0,region_id,name,value,text,style,action,position); 1513Â } 1514Â 1516Â enum UIScrollPosition { UI_SCROLL_TOP, 1517Â UI_SCROLL_BOTTOM 1518Â }; 1519Â 1520Â 1530Â DllSpec int uiScrollOption(int display, int region_id, const std::string &name, const std::string &value, UIScrollPosition pos); 1531Â 1533Â inline int uiScrollOption(int region_id, const std::string &name, const std::string &value, UIScrollPosition pos) 1534Â { 1535Â return uiScrollOption(0,region_id,name,value,pos); 1536Â } 1537Â 1545Â DllSpec int uiRemoveOption(int display, int region_id, const std::string &name, const std::string &value); 1546Â 1548Â inline int uiRemoveOption(int region_id, const std::string &name, const std::string &value) 1549Â { 1550Â return uiRemoveOption(0,region_id,name,value); 1551Â } 1552Â 1560Â DllSpec int uiDisablePINOK(int display=0); 1561Â 1568Â DllSpec int uiEnablePINOK(int display=0); 1569Â 1570Â 1582Â DllSpec int uiUpdate(int display, int region_id, const std::string &name, const std::string &html); 1583Â 1585Â inline int uiUpdate(int region_id, const std::string &name, const std::string &html) 1586Â { 1587Â return uiUpdate(0,region_id,name,html); 1588Â } 1589Â 1591Â enum UIBeep { 1592Â UI_BEEP_NORMAL, 1593Â UI_BEEP_ERROR 1594Â }; 1595Â 1601Â DllSpec int uiBeep(int display, UIBeep beep); 1602Â 1604Â inline int uiBeep(UIBeep beep) { 1605Â return uiBeep(0,beep); 1606Â } 1607Â 1608Â 1610Â enum UINagScreenType { 1611Â UI_NAG_TEST_DEVICE 1612Â }; 1613Â 1624Â DllSpec int uiNagScreen(int display, enum UINagScreenType type, int hide, int show); 1625Â 1626Â /*****************************************************************************/ 1627Â /*****************************************************************************/ 1628Â /**************************** Canvas interface *******************************/ 1629Â /*****************************************************************************/ 1630Â /*****************************************************************************/ 1631Â 1633Â enum UICanvasEvent { 1634Â UI_PUSH, 1635Â UI_DRAG, 1636Â UI_RELEASE, 1637Â UI_KEYDOWN, 1638Â UI_KEYUP, 1639Â UI_TERMINATE 1640Â }; 1641Â 1653Â typedef void (*uiEventCallback)(void *data, UICanvasEvent event, int x, int y, int key, unsigned flags); 1654Â 1656Â class DllSpec UIDrawing { 1657Â 1658Â public: 1659Â vfihtml::JSObject drawlist; 1660Â 1662Â enum { 1663Â FNT_NORMAL=0x0, 1664Â FNT_ITALIC=0x1, 1665Â FNT_BOLD=0x700 1666Â }; 1667Â 1669Â enum ImageType { 1670Â IMG_BMP, 1671Â IMG_GIF, 1672Â IMG_JPEG, 1673Â IMG_PAM, 1674Â IMG_PBM, 1675Â IMG_PNG, 1676Â IMG_RAW 1677Â }; 1678Â 1680Â UIDrawing(); 1681Â 1683Â ~UIDrawing(); 1684Â 1686Â void reset(); 1687Â 1690Â void clear(unsigned rgb); 1691Â 1694Â void color(unsigned rgb); 1695Â 1698Â void linewidth(int w); 1699Â 1705Â void line(int x, int y, int x2, int y2); 1706Â 1710Â void pixel(int x, int y); 1711Â 1717Â void rect(int x, int y, int w, int h); 1718Â 1724Â void rectf(int x, int y, int w, int h); 1725Â 1733Â void trif(int x, int y, int x2, int y2, int x3, int y3); 1734Â 1739Â void font(const char *name, int size, unsigned style=FNT_NORMAL); 1740Â 1745Â void font(const std::string &name, int size, unsigned style=FNT_NORMAL); 1746Â 1754Â void text(const char *text, int x, int y); 1755Â 1757Â void text(const std::string &text, int x, int y); 1758Â 1759Â 1775Â void image(ImageType type, const void *data, unsigned size, int x, int y, int w=0, int h=0); 1776Â 1782Â void image(const char *filename, int x, int y); 1783Â 1785Â void image(const std::string &filename, int x, int y); 1786Â 1787Â }; 1788Â 1789Â 1797Â DllSpec int uiCanvas(int display, int region_id, uiEventCallback cb, void *data=0); 1798Â 1800Â inline int uiCanvas(int region_id, uiEventCallback cb, void *data=0) 1801Â { 1802Â return uiCanvas(0,region_id,cb,data); 1803Â } 1804Â 1811Â DllSpec int uiDraw(int display, int region_id, const UIDrawing &drawing); 1812Â 1814Â inline int uiDraw(int region_id, const UIDrawing &drawing) 1815Â { 1816Â return uiDraw(0,region_id,drawing); 1817Â } 1818Â 1825Â DllSpec int uiDrawAsync(int display, int region_id, const UIDrawing &drawing, uiAsyncCallback cb=0, void *data=0); 1826Â 1828Â inline int uiDrawAsync(int region_id, const UIDrawing &drawing, uiAsyncCallback cb=0, void *data=0) 1829Â { 1830Â return uiDrawAsync(0,region_id,drawing,cb,data); 1831Â } 1832Â 1834Â struct UITextWidth { 1835Â std::string text; 1836Â int width; 1839Â UITextWidth(const std::string &s="") { text=s; width=0; } 1840Â }; 1841Â 1842Â 1854Â DllSpec int uiTextMetrics(int display, int region_id, const std::string &font, int size, unsigned style, std::vector<UITextWidth> &width, int &height, int &descent); 1855Â 1857Â inline int uiTextMetrics(int region_id, const std::string &font, int size, unsigned style, std::vector<UITextWidth> &width, int &height, int &descent) 1858Â { 1859Â return uiTextMetrics(0,region_id,font,size,style,width,height,descent); 1860Â } 1861Â 1862Â 1867Â DllSpec const char *uiDataURLType(const std::string &in); 1868Â 1873Â DllSpec bool uiDataURLToString(std::string &out,const std::string &in); 1874Â 1879Â DllSpec bool uiDataURLToFile(const char *filename,const std::string &in); 1880Â 1881Â 1882Â #ifndef DOXYGEN 1883Â } // namespace vfigui 1884Â #endif 1885Â 1886Â 1889Â #undef DllSpec 1890Â 1891Â 1892Â #include "gui_template.h" // add "old" template functions 1893Â 1894Â #endif
Rate this article: