Slot функциите се съдържат в заглавен (header) файл, включен от "mask<X>". Това са функциите, които трябва да попълните, за да имплементирате собствената си логика. Много полезни slot функции, ще бъдат представени тук. Тези шаблони може да се използват, с Copy/Paste предефинирани решения във вашия pvserver.
DATA ще дефинира локалната даннова структура за вашата маска. Това може да бъде сравнено с частните данни на клас от C++, въпреки че е изразено в ANSI C.
slot<X> ще обработва събитията, които настъпят. В slot<X> може да използвате имената на визуалните обекти, които са изредени в началото на mask<X>.
//############################################################### //# mask1_slots.h for ProcessViewServer created: Sun May 14 10:23:11 2006 //# please fill out these slots //# here you find all possible events //# Yours: Lehrig Software Engineering //############################################################### // todo: uncomment me if you want to use this data aquisiton // also uncomment this classes in main.cpp and pvapp.h // also remember to uncomment rllib in the project file //extern rlModbusClient modbus; //extern rlSiemensTCPClient siemensTCP; //extern rlPPIClient ppi; typedef struct // (todo: define your data structure here) { } DATA; static int slotInit(PARAM *p, DATA *d) { if(p == NULL || d == NULL) return -1; //memset(d,0,sizeof(DATA)); return 0; } static int slotNullEvent(PARAM *p, DATA *d) { if(p == NULL || d == NULL) return -1; return 0; } static int slotButtonEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotButtonPressedEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotButtonReleasedEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotTextEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; return 0; } static int slotSliderEvent(PARAM *p, int id, DATA *d, int val) { if(p == NULL || id == 0 || d == NULL || val < -1000) return -1; return 0; } static int slotCheckboxEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; return 0; } static int slotRadioButtonEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; return 0; } static int slotGlInitializeEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotGlPaintEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotGlResizeEvent(PARAM *p, int id, DATA *d, int width, int height) { if(p == NULL || id == 0 || d == NULL || width < 0 || height < 0) return -1; return 0; } static int slotGlIdleEvent(PARAM *p, int id, DATA *d) { if(p == NULL || id == 0 || d == NULL) return -1; return 0; } static int slotTabEvent(PARAM *p, int id, DATA *d, int val) { if(p == NULL || id == 0 || d == NULL || val < -1000) return -1; return 0; } static int slotTableTextEvent(PARAM *p, int id, DATA *d, int x, int y, const char *text) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000 || text == NULL) return -1; return 0; } static int slotTableClickedEvent(PARAM *p, int id, DATA *d, int x, int y, int button) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000 || button < 0) return -1; return 0; } static int slotSelectionEvent(PARAM *p, int id, DATA *d, int val, const char *text) { if(p == NULL || id == 0 || d == NULL || val < -1000 || text == NULL) return -1; return 0; } static int slotClipboardEvent(PARAM *p, int id, DATA *d, int val) { if(p == NULL || id == 0 || d == NULL || val < -1000) return -1; return 0; } static int slotRightMouseEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; //pvPopupMenu(p,-1,"Menu1,Menu2,,Menu3"); return 0; } static int slotKeyboardEvent(PARAM *p, int id, DATA *d, int val) { if(p == NULL || id == 0 || d == NULL || val < -1000) return -1; return 0; } static int slotMouseMovedEvent(PARAM *p, int id, DATA *d, float x, float y) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000) return -1; return 0; } static int slotMousePressedEvent(PARAM *p, int id, DATA *d, float x, float y) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000) return -1; return 0; } static int slotMouseReleasedEvent(PARAM *p, int id, DATA *d, float x, float y) { if(p == NULL || id == 0 || d == NULL || x < -1000 || y < -1000) return -1; return 0; } static int slotUserEvent(PARAM *p, int id, DATA *d, const char *text) { if(p == NULL || id == 0 || d == NULL || text == NULL) return -1; return 0; }