Vuo  2.0.1
VuoInputEditorAnchor.hh
Go to the documentation of this file.
1 
10 #ifndef VUOINPUTEDITORANCHOR
11 #define VUOINPUTEDITORANCHOR
12 
13 #include "VuoInputEditor.hh"
15 
16 extern "C"
17 {
18  #include "VuoAnchor.h"
19 }
20 
25 {
26  Q_OBJECT
27  Q_PLUGIN_METADATA(IID "org.vuo.inputEditor" FILE "VuoInputEditorAnchor.json")
28  Q_INTERFACES(VuoInputEditorFactory)
29 
30 public:
31  virtual VuoInputEditor * newInputEditor(void);
32 };
33 
38 {
39  Q_OBJECT
40 
41 protected:
42  void setUpDialog(QDialog &dialog, json_object *originalValue, json_object *details);
44 
45 private:
46  QSignalMapper* signalMapper;
47  QPushButton* matrix[9];
48  json_object* currentValue;
49  QIcon* renderIconWithLineSegments(const float* points, const unsigned int length);
50  QIcon* iconForAnchorIndex(const int anchor);
51 
52  // Return the index in ANCHOR_MAP that a VuoAnchor corresponds to.
53  int VuoAnchorToIndex(const VuoAnchor anchor);
54 
55  // corresponds to the matching button index (0-8)
56  const VuoAnchor ANCHOR_MAP[9] =
57  {
58  VuoAnchor_make(VuoHorizontalAlignment_Left, VuoVerticalAlignment_Top ),
59  VuoAnchor_make(VuoHorizontalAlignment_Center, VuoVerticalAlignment_Top ),
60  VuoAnchor_make(VuoHorizontalAlignment_Right, VuoVerticalAlignment_Top ),
61  VuoAnchor_make(VuoHorizontalAlignment_Left, VuoVerticalAlignment_Center),
62  VuoAnchor_make(VuoHorizontalAlignment_Center, VuoVerticalAlignment_Center),
63  VuoAnchor_make(VuoHorizontalAlignment_Right, VuoVerticalAlignment_Center),
64  VuoAnchor_make(VuoHorizontalAlignment_Left, VuoVerticalAlignment_Bottom),
65  VuoAnchor_make(VuoHorizontalAlignment_Center, VuoVerticalAlignment_Bottom),
66  VuoAnchor_make(VuoHorizontalAlignment_Right, VuoVerticalAlignment_Bottom)
67  };
68 
69 private slots:
70  void onSetAnchor(int anchor);
71 };
72 
73 #endif