GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
ToggleTool.cc
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 2011-2018 Michael Goffioul
4 
5 This file is part of Octave.
6 
7 Octave is free software: you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 Octave is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Octave; see the file COPYING. If not, see
19 <https://www.gnu.org/licenses/>.
20 
21 */
22 
23 #if defined (HAVE_CONFIG_H)
24 # include "config.h"
25 #endif
26 
27 #include "ToggleTool.h"
28 
29 #include "ToolBarButton.cc"
30 
31 namespace QtHandles
32 {
33 
34  ToggleTool*
36  {
37  Object *parent = Object::parentObject (go);
38 
39  if (parent)
40  {
41  QWidget *parentWidget = parent->qWidget<QWidget> ();
42 
43  if (parentWidget)
44  return new ToggleTool (go, new QAction (parentWidget));
45  }
46 
47  return nullptr;
48  }
49 
50  ToggleTool::ToggleTool (const graphics_object& go, QAction *action)
51  : ToolBarButton<uitoggletool> (go, action)
52  {
53  uitoggletool::properties& tp = properties<uitoggletool> ();
54 
55  action->setCheckable (true);
56  action->setChecked (tp.is_state ());
57 
58  connect (action, SIGNAL (toggled (bool)),
59  this, SLOT (triggered (bool)));
60  }
61 
63  { }
64 
65  void
67  {
68  uitoggletool::properties& tp = properties<uitoggletool> ();
69  QAction *action = qWidget<QAction> ();
70 
71  switch (pId)
72  {
73  case uitoggletool::properties::ID_STATE:
74  action->setChecked (tp.is_state ());
75  break;
76 
77  default:
79  break;
80  }
81  }
82 
83  void
84  ToggleTool::triggered (bool checked)
85  {
86  gh_manager::post_set (m_handle, "state", checked, false);
88  checked
89  ? "oncallback"
90  : "offcallback");
91  gh_manager::post_callback (m_handle, "clickedcallback");
92  }
93 
94 };
static void post_callback(const graphics_handle &h, const std::string &name, const octave_value &data=Matrix())
Definition: graphics.in.h:6214
void update(int pId)
Definition: ToggleTool.cc:66
void triggered(bool checked)
Definition: ToggleTool.cc:84
static Object * parentObject(const graphics_object &go)
Definition: Object.cc:165
graphics_handle m_handle
Definition: Object.h:115
T * qWidget(void)
Definition: Object.h:74
static ToggleTool * create(const graphics_object &go)
Definition: ToggleTool.cc:35
ToggleTool(const graphics_object &go, QAction *action)
Definition: ToggleTool.cc:50
static void post_set(const graphics_handle &h, const std::string &name, const octave_value &value, bool notify_toolkit=true)
Definition: graphics.in.h:6228