Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc. http://www.blynk.cc/
Dependents: Blynk_RBL_BLE_Nano Blynk_MicroBit Blynk_Serial Blynk_RBL_BLE_Nano
WidgetTable.h
00001 /** 00002 * @file WidgetTable.h 00003 * @author Volodymyr Shymanskyy 00004 * @license This project is released under the MIT License (MIT) 00005 * @copyright Copyright (c) 2015 Volodymyr Shymanskyy 00006 * @date Sep 2016 00007 * @brief 00008 * 00009 */ 00010 00011 #ifndef WidgetTable_h 00012 #define WidgetTable_h 00013 00014 #include <Blynk/BlynkWidgetBase.h > 00015 00016 class WidgetTable 00017 : public BlynkWidgetBase 00018 { 00019 public: 00020 typedef void (*ItemSelectChange)(int index, bool selected); 00021 typedef void (*ItemOrderChange)(int indexFrom, int indexTo); 00022 00023 public: 00024 WidgetTable(uint8_t vPin = -1) 00025 : BlynkWidgetBase(vPin) 00026 , mOnOrderChange(NULL) 00027 , mOnSelectChange(NULL) 00028 {} 00029 00030 void onWrite(BlynkReq BLYNK_UNUSED &request, const BlynkParam& param) { 00031 if (mOnOrderChange && 0 == strcmp(param[0].asStr(), "order")) { 00032 mOnOrderChange(param[1].asInt(), param[2].asInt()); 00033 } else if (mOnSelectChange && 0 == strcmp(param[0].asStr(), "select")) { 00034 mOnSelectChange(param[1].asInt(), true); 00035 } else if (mOnSelectChange && 0 == strcmp(param[0].asStr(), "deselect")) { 00036 mOnSelectChange(param[1].asInt(), false); 00037 } 00038 } 00039 00040 void onOrderChange(ItemOrderChange cbk) { mOnOrderChange = cbk; } 00041 void onSelectChange(ItemSelectChange cbk) { mOnSelectChange = cbk; } 00042 00043 void clear() { 00044 Blynk.virtualWrite(mPin, "clr"); 00045 } 00046 00047 template <typename T1, typename T2> 00048 void addRow(int index, const T1& name, const T2& value) { 00049 Blynk.virtualWrite(mPin, "add", index, name, value); 00050 } 00051 00052 template <typename T1, typename T2> 00053 void updateRow(int index, const T1& name, const T2& value) { 00054 Blynk.virtualWrite(mPin, "update", index, name, value); 00055 } 00056 00057 void pickRow(int index) { 00058 Blynk.virtualWrite(mPin, "pick", index); 00059 } 00060 00061 private: 00062 ItemOrderChange mOnOrderChange; 00063 ItemSelectChange mOnSelectChange; 00064 00065 }; 00066 00067 #endif
Generated on Tue Jul 12 2022 15:11:12 by 1.7.2