Binding: Add help icons for entries with descriptions
[pulseview.git] / pv / binding / device.hpp
index 2a4c51634ed2ae734bc5b81a245054552822cde6..d4fbf3714ba040236cb055488a5dbc2fd4014a5a 100644 (file)
  * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef PULSEVIEW_PV_BINDING_DEVICE_H
-#define PULSEVIEW_PV_BINDING_DEVICE_H
+#ifndef PULSEVIEW_PV_BINDING_DEVICE_HPP
+#define PULSEVIEW_PV_BINDING_DEVICE_HPP
+
+#include <functional>
 
 #include <boost/optional.hpp>
 
 
 #include <pv/prop/property.hpp>
 
-namespace sigrok {
-       class Configurable;
-}
+#include <libsigrokcxx/libsigrokcxx.hpp>
+
+using std::function;
+using std::pair;
+using std::set;
+using std::shared_ptr;
 
 namespace pv {
 
 namespace binding {
 
-class Device : public QObject, public Binding
+class Device : public Binding
 {
        Q_OBJECT
 
 public:
-       Device(std::shared_ptr<sigrok::Configurable> configurable);
+       Device(shared_ptr<sigrok::Configurable> configurable);
 
 Q_SIGNALS:
        void config_changed();
 
 private:
-       void bind_bool(const QString &name,
+       void bind_bool(const QString &name, const QString &desc,
                prop::Property::Getter getter, prop::Property::Setter setter);
-       void bind_enum(const QString &name, Glib::VariantContainerBase gvar_list,
+       void bind_enum(const QString &name, const QString &desc,
+               const sigrok::ConfigKey *key,
+               set<const sigrok::Capability *> capabilities,
                prop::Property::Getter getter, prop::Property::Setter setter,
-               std::function<QString (Glib::VariantBase)> printer = print_gvariant);
-       void bind_int(const QString &name, QString suffix,
-               boost::optional< std::pair<int64_t, int64_t> > range,
+               function<QString (Glib::VariantBase)> printer = print_gvariant);
+       void bind_int(const QString &name, const QString &desc, QString suffix,
+               boost::optional< pair<int64_t, int64_t> > range,
                prop::Property::Getter getter, prop::Property::Setter setter);
 
        static QString print_timebase(Glib::VariantBase gvar);
        static QString print_vdiv(Glib::VariantBase gvar);
        static QString print_voltage_threshold(Glib::VariantBase gvar);
+       static QString print_probe_factor(Glib::VariantBase gvar);
 
 protected:
-       std::shared_ptr<sigrok::Configurable> configurable_;
+       shared_ptr<sigrok::Configurable> configurable_;
 };
 
-} // binding
-} // pv
+}  // namespace binding
+}  // namespace pv
 
-#endif // PULSEVIEW_PV_BINDING_DEVICE_H
+#endif // PULSEVIEW_PV_BINDING_DEVICE_HPP