/[svn]/gigedit/trunk/src/gigedit/dimregionedit.h
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/dimregionedit.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1623 by persson, Fri Jan 4 19:42:45 2008 UTC revision 2991 by schoenebeck, Sat Sep 24 15:08:37 2016 UTC
# Line 1  Line 1 
1  /*                                                         -*- c++ -*-  /*                                                         -*- c++ -*-
2   * Copyright (C) 2006-2008 Andreas Persson   * Copyright (C) 2006-2015 Andreas Persson
3   *   *
4   * This program is free software; you can redistribute it and/or   * This program is free software; you can redistribute it and/or
5   * modify it under the terms of the GNU General Public License as   * modify it under the terms of the GNU General Public License as
# Line 22  Line 22 
22    
23  #include <gig.h>  #include <gig.h>
24    
25    #include <cairomm/context.h>
26    #include <gtkmm/box.h>
27    #include <gtkmm/drawingarea.h>
28  #include <gtkmm/entry.h>  #include <gtkmm/entry.h>
29  #include <gtkmm/label.h>  #include <gtkmm/label.h>
30  #include <gtkmm/notebook.h>  #include <gtkmm/notebook.h>
31  #include <gtkmm/table.h>  #include <gtkmm/table.h>
 #include <gtkmm/tooltips.h>  
32    
33  #include <set>  #include <set>
34    
35  #include "paramedit.h"  #include "paramedit.h"
36    
37    class VelocityCurve : public Gtk::DrawingArea {
38    public:
39        VelocityCurve(double (gig::DimensionRegion::*getter)(uint8_t));
40        void set_dim_region(gig::DimensionRegion* d) { dimreg = d; }
41    
42    protected:
43    #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2
44        bool on_expose_event(GdkEventExpose* e);
45    #else
46        bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
47    #endif
48    
49    private:
50        double (gig::DimensionRegion::* const getter)(uint8_t);
51        gig::DimensionRegion* dimreg;
52    };
53    
54    class CrossfadeCurve : public Gtk::DrawingArea {
55    public:
56        CrossfadeCurve();
57        void set_dim_region(gig::DimensionRegion* d) { dimreg = d; }
58    
59    protected:
60    #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2
61        bool on_expose_event(GdkEventExpose* e);
62    #else
63        bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr);
64    #endif
65    
66    private:
67        gig::DimensionRegion* dimreg;
68        void draw_one_curve(const Cairo::RefPtr<Cairo::Context>& cr,
69                            const gig::DimensionRegion* d,
70                            bool sensitive);
71    };
72    
73  class DimRegionEdit : public Gtk::Notebook  class DimRegionEdit : public Gtk::Notebook
74  {  {
75  public:  public:
76      DimRegionEdit();      DimRegionEdit();
77      virtual ~DimRegionEdit();      virtual ~DimRegionEdit();
78      void set_dim_region(gig::DimensionRegion* d);      void set_dim_region(gig::DimensionRegion* d);
79      bool set_sample(gig::Sample* sample);      bool set_sample(gig::Sample* sample, bool copy_sample_unity, bool copy_sample_tune, bool copy_sample_loop);
80        bool set_sample(gig::DimensionRegion* dimreg, gig::Sample* sample, bool copy_sample_unity, bool copy_sample_tune, bool copy_sample_loop);
81      Gtk::Entry* wSample;      Gtk::Entry* wSample;
82        Gtk::Button* buttonNullSampleReference;
83      sigc::signal<void, gig::DimensionRegion*>& signal_dimreg_to_be_changed();      sigc::signal<void, gig::DimensionRegion*>& signal_dimreg_to_be_changed();
84      sigc::signal<void, gig::DimensionRegion*>& signal_dimreg_changed();      sigc::signal<void, gig::DimensionRegion*>& signal_dimreg_changed();
85      sigc::signal<void, gig::Sample*/*old*/, gig::Sample*/*new*/>& signal_sample_ref_changed();      sigc::signal<void, gig::Sample*/*old*/, gig::Sample*/*new*/>& signal_sample_ref_changed();
86        sigc::signal<void, gig::Sample*>& signal_select_sample();
87    
88      std::set<gig::DimensionRegion*> dimregs;      std::set<gig::DimensionRegion*> dimregs;
89    
# Line 51  protected: Line 92  protected:
92      sigc::signal<void, gig::DimensionRegion*> dimreg_changed_signal;      sigc::signal<void, gig::DimensionRegion*> dimreg_changed_signal;
93      sigc::signal<void, gig::Sample*/*old*/, gig::Sample*/*new*/> sample_ref_changed_signal;      sigc::signal<void, gig::Sample*/*old*/, gig::Sample*/*new*/> sample_ref_changed_signal;
94      sigc::signal<void> instrument_changed;      sigc::signal<void> instrument_changed;
95        sigc::signal<void, gig::Sample*> select_sample_signal;
96    
97      gig::DimensionRegion* dimregion;      gig::DimensionRegion* dimregion;
98    
99    #ifdef OLD_TOOLTIPS
100      Gtk::Tooltips tooltips;      Gtk::Tooltips tooltips;
101    #endif
102    
103      Gtk::Table* table[7];      Gtk::Table* table[7];
104    
105      Gtk::Label* lSample;      Gtk::Label* lSample;
106    
107        VelocityCurve velocity_curve;
108        VelocityCurve release_curve;
109        VelocityCurve cutoff_curve;
110        CrossfadeCurve crossfade_curve;
111    
112      NumEntryPermille eEG1PreAttack;      NumEntryPermille eEG1PreAttack;
113      NumEntryTemp<double> eEG1Attack;      NumEntryTemp<double> eEG1Attack;
114      NumEntryTemp<double> eEG1Decay1;      NumEntryTemp<double> eEG1Decay1;
# Line 139  protected: Line 188  protected:
188      BoolEntry eMSDecode;      BoolEntry eMSDecode;
189      NumEntryTemp<uint16_t> eSampleStartOffset;      NumEntryTemp<uint16_t> eSampleStartOffset;
190      NoteEntry eUnityNote;      NoteEntry eUnityNote;
191        ReadOnlyLabelWidget eSampleGroup;
192        ReadOnlyLabelWidget eSampleFormatInfo;
193        ReadOnlyLabelWidget eSampleID;
194        ReadOnlyLabelWidget eChecksum;
195      NumEntryTemp<int16_t> eFineTune;      NumEntryTemp<int16_t> eFineTune;
196      NumEntryGain eGain;      NumEntryGain eGain;
197      BoolEntryPlus6 eGainPlus6;      BoolEntryPlus6 eGainPlus6;
# Line 151  protected: Line 204  protected:
204      Gtk::Label* lEG2;      Gtk::Label* lEG2;
205      Gtk::Label* lLFO2;      Gtk::Label* lLFO2;
206    
207        Gtk::Button buttonSelectSample;
208    
209      int rowno;      int rowno;
210      int pageno;      int pageno;
211      int firstRowInBlock;      int firstRowInBlock;
# Line 161  protected: Line 216  protected:
216      void addProp(LabelWidget& labelwidget);      void addProp(LabelWidget& labelwidget);
217      void addString(const char* labelText, Gtk::Label*& label,      void addString(const char* labelText, Gtk::Label*& label,
218                     Gtk::Entry*& widget);                     Gtk::Entry*& widget);
219        void addString(const char* labelText, Gtk::Label*& label,
220                       Gtk::Entry*& widget, Gtk::Button*& button);
221      Gtk::Label* addHeader(const char* text);      Gtk::Label* addHeader(const char* text);
222        void addRightHandSide(Gtk::Widget& widget);
223      void nextPage();      void nextPage();
224    
225      void VCFEnabled_toggled();      void VCFEnabled_toggled();
# Line 183  protected: Line 241  protected:
241      void loop_start_changed();      void loop_start_changed();
242      void loop_length_changed();      void loop_length_changed();
243      void loop_infinite_toggled();      void loop_infinite_toggled();
244        void nullOutSampleReference();
245    
246      int update_model;      int update_model;
247    
# Line 218  protected: Line 277  protected:
277                            sigc::mem_fun(widget, &C::get_value)));                            sigc::mem_fun(widget, &C::get_value)));
278      }      }
279    
280      // loop through all dimregions being edited ant set a value in      // loop through all dimregions being edited and set a value in
281      // each of them      // each of them
282      template<typename T>      template<typename T>
283      void set_many(T value,      void set_many(T value,
284                    sigc::slot<void, DimRegionEdit*, gig::DimensionRegion*, T> setter) {                    sigc::slot<void, DimRegionEdit*, gig::DimensionRegion*, T> setter) {
285          if (update_model == 0) {          if (update_model == 0) {
286              for (std::set<gig::DimensionRegion*>::iterator i = dimregs.begin() ;              for (std::set<gig::DimensionRegion*>::iterator i = dimregs.begin() ;
287                   i != dimregs.end() ; i++)                   i != dimregs.end() ; ++i)
288              {              {
289                  dimreg_changed_signal(*i);                  dimreg_changed_signal(*i);
290                  setter(this, *i, value);                  setter(this, *i, value);
# Line 255  protected: Line 314  protected:
314      void set_LoopLength(gig::DimensionRegion* d, uint32_t value);      void set_LoopLength(gig::DimensionRegion* d, uint32_t value);
315      void set_LoopInfinite(gig::DimensionRegion* d, bool value);      void set_LoopInfinite(gig::DimensionRegion* d, bool value);
316      void set_LoopPlayCount(gig::DimensionRegion* d, uint32_t value);      void set_LoopPlayCount(gig::DimensionRegion* d, uint32_t value);
317    
318        void onButtonSelectSamplePressed();
319  };  };
320    
321  #endif  #endif

Legend:
Removed from v.1623  
changed lines
  Added in v.2991

  ViewVC Help
Powered by ViewVC