]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/standardbar.hpp
Update cursor action's state whenever the cursor state changes
[pulseview.git] / pv / views / trace / standardbar.hpp
index ce9bf91b4c7f6dc7fc79e5a9f40a084b6818752c..6e822229e3aebc8ab43e4d27f99444ab5318315b 100644 (file)
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * 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_VIEWS_TRACE_STANDARDBAR_HPP
 #define PULSEVIEW_PV_VIEWS_TRACE_STANDARDBAR_HPP
 
  */
 
 #ifndef PULSEVIEW_PV_VIEWS_TRACE_STANDARDBAR_HPP
 #define PULSEVIEW_PV_VIEWS_TRACE_STANDARDBAR_HPP
 
-#include <stdint.h>
+#include <cstdint>
 
 #include <QAction>
 
 #include <QAction>
+#include <QSpinBox>
 #include <QToolBar>
 #include <QToolBar>
+#include <QToolButton>
 #include <QWidget>
 
 #include <pv/session.hpp>
 
 #include <QWidget>
 
 #include <pv/session.hpp>
 
+#include "trace.hpp"
+
 namespace pv {
 
 class MainWindow;
 namespace pv {
 
 class MainWindow;
@@ -37,7 +40,7 @@ class Session;
 
 namespace views {
 
 
 namespace views {
 
-namespace TraceView {
+namespace trace {
 class View;
 }
 
 class View;
 }
 
@@ -49,9 +52,9 @@ class StandardBar : public QToolBar
 
 public:
        StandardBar(Session &session, QWidget *parent,
 
 public:
        StandardBar(Session &session, QWidget *parent,
-               TraceView::View *view, bool add_default_widgets=true);
+               trace::View *view, bool add_default_widgets = true);
 
 
-       Session &session(void) const;
+       Session &session() const;
 
        QAction* action_view_zoom_in() const;
        QAction* action_view_zoom_out() const;
 
        QAction* action_view_zoom_in() const;
        QAction* action_view_zoom_out() const;
@@ -62,8 +65,10 @@ public:
 protected:
        virtual void add_toolbar_widgets();
 
 protected:
        virtual void add_toolbar_widgets();
 
+       virtual void show_multi_segment_ui(const bool state);
+
        Session &session_;
        Session &session_;
-       TraceView::View *view_;
+       trace::View *view_;
 
        QAction *const action_view_zoom_in_;
        QAction *const action_view_zoom_out_;
 
        QAction *const action_view_zoom_in_;
        QAction *const action_view_zoom_out_;
@@ -71,6 +76,16 @@ protected:
        QAction *const action_view_zoom_one_to_one_;
        QAction *const action_view_show_cursors_;
 
        QAction *const action_view_zoom_one_to_one_;
        QAction *const action_view_show_cursors_;
 
+       QToolButton *segment_display_mode_selector_;
+       QAction *const action_sdm_last_;
+       QAction *const action_sdm_last_complete_;
+       QAction *const action_sdm_single_;
+
+       QSpinBox *segment_selector_;
+
+Q_SIGNALS:
+       void segment_selected(int segment_id);
+
 protected Q_SLOTS:
        void on_actionViewZoomIn_triggered();
 
 protected Q_SLOTS:
        void on_actionViewZoomIn_triggered();
 
@@ -81,8 +96,21 @@ protected Q_SLOTS:
        void on_actionViewZoomOneToOne_triggered();
 
        void on_actionViewShowCursors_triggered();
        void on_actionViewZoomOneToOne_triggered();
 
        void on_actionViewShowCursors_triggered();
+       void on_cursor_state_changed(bool show);
+
+       void on_actionSDMLast_triggered();
+       void on_actionSDMLastComplete_triggered();
+       void on_actionSDMSingle_triggered();
 
        void on_always_zoom_to_fit_changed(bool state);
 
        void on_always_zoom_to_fit_changed(bool state);
+
+       void on_new_segment(int new_segment_id);
+       void on_segment_changed(int segment_id);
+       void on_segment_selected(int ui_segment_id);
+       void on_segment_display_mode_changed(int mode, bool segment_selectable);
+
+private:
+       vector<QAction*> multi_segment_actions_;
 };
 
 } // namespace trace
 };
 
 } // namespace trace