/[svn]/gigedit/trunk/src/gigedit/regionchooser.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/regionchooser.cpp

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

revision 3226 by schoenebeck, Fri May 26 22:15:06 2017 UTC revision 3364 by schoenebeck, Tue Nov 14 18:07:25 2017 UTC
# Line 17  Line 17 
17   * 02110-1301 USA.   * 02110-1301 USA.
18   */   */
19    
20    #include "compat.h"
21  #include "global.h"  #include "global.h"
22  #include "regionchooser.h"  #include "regionchooser.h"
23    
# Line 25  Line 26 
26    
27  #include <cairomm/context.h>  #include <cairomm/context.h>
28  #include <gdkmm/general.h>  #include <gdkmm/general.h>
29    #if HAS_GDKMM_SEAT
30    # include <gdkmm/seat.h>
31    #endif
32  #include <gdkmm/cursor.h>  #include <gdkmm/cursor.h>
33  #include <gtkmm/stock.h>  #if HAS_GTKMM_STOCK
34    # include <gtkmm/stock.h>
35    #endif
36  #include <gdkmm/pixbuf.h>  #include <gdkmm/pixbuf.h>
37  #include <gtkmm/spinbutton.h>  #include <gtkmm/spinbutton.h>
38  #include <gtkmm/dialog.h>  #include <gtkmm/dialog.h>
# Line 40  Line 46 
46  struct RegionFeatures {  struct RegionFeatures {
47      int sampleRefs;      int sampleRefs;
48      int loops;      int loops;
49        int validDimRegs;
50    
51      RegionFeatures() {      RegionFeatures() {
52          sampleRefs = loops = 0;          sampleRefs = loops = validDimRegs = 0;
53      }      }
54  };  };
55    
# Line 50  static RegionFeatures regionFeatures(gig Line 57  static RegionFeatures regionFeatures(gig
57      RegionFeatures f;      RegionFeatures f;
58      for (int i = 0; i < rgn->DimensionRegions; ++i) {      for (int i = 0; i < rgn->DimensionRegions; ++i) {
59          gig::DimensionRegion* dr = rgn->pDimensionRegions[i];          gig::DimensionRegion* dr = rgn->pDimensionRegions[i];
60            DimensionCase c = dimensionCaseOf(dr);
61            if (!isUsedCase(c, rgn)) continue;
62            f.validDimRegs++;
63          if (dr->pSample) f.sampleRefs++;          if (dr->pSample) f.sampleRefs++;
64          // the user doesn't care about loop if there is no valid sample reference          // the user doesn't care about loop if there is no valid sample reference
65          if (dr->pSample && dr->SampleLoops) f.loops++;          if (dr->pSample && dr->SampleLoops) f.loops++;
# Line 98  RegionChooser::RegionChooser() : Line 108  RegionChooser::RegionChooser() :
108    
109      loadBuiltInPix();      loadBuiltInPix();
110    
111      // create gray blue hatched pattern      // create blue hatched pattern
112      {      {
113          const int width = grayBlueHatchedPattern->get_width();          const int width = blueHatchedPattern->get_width();
114          const int height = grayBlueHatchedPattern->get_height();          const int height = blueHatchedPattern->get_height();
115          const int stride = grayBlueHatchedPattern->get_rowstride();          const int stride = blueHatchedPattern->get_rowstride();
116    
117          // manually convert from RGBA to ARGB          // manually convert from RGBA to ARGB
118          this->grayBlueHatchedPatternARGB = grayBlueHatchedPattern->copy();          this->blueHatchedPatternARGB = blueHatchedPattern->copy();
119          const int pixelSize = stride / width;          const int pixelSize = stride / width;
120          const int totalPixels = width * height;          const int totalPixels = width * height;
121          assert(pixelSize == 4);          assert(pixelSize == 4);
122          unsigned char* ptr = this->grayBlueHatchedPatternARGB->get_pixels();          unsigned char* ptr = this->blueHatchedPatternARGB->get_pixels();
123          for (int iPixel = 0; iPixel < totalPixels; ++iPixel, ptr += pixelSize) {          for (int iPixel = 0; iPixel < totalPixels; ++iPixel, ptr += pixelSize) {
124              const unsigned char r = ptr[0];              const unsigned char r = ptr[0];
125              const unsigned char g = ptr[1];              const unsigned char g = ptr[1];
# Line 122  RegionChooser::RegionChooser() : Line 132  RegionChooser::RegionChooser() :
132          }          }
133    
134          Cairo::RefPtr<Cairo::ImageSurface> imageSurface = Cairo::ImageSurface::create(          Cairo::RefPtr<Cairo::ImageSurface> imageSurface = Cairo::ImageSurface::create(
135              this->grayBlueHatchedPatternARGB->get_pixels(), Cairo::FORMAT_ARGB32, width, height, stride  #if HAS_CAIROMM_CPP11_ENUMS
136                this->blueHatchedPatternARGB->get_pixels(), Cairo::Surface::Format::ARGB32, width, height, stride
137    #else
138                this->blueHatchedPatternARGB->get_pixels(), Cairo::FORMAT_ARGB32, width, height, stride
139    #endif
140          );          );
141          this->grayBlueHatchedSurfacePattern = Cairo::SurfacePattern::create(imageSurface);          this->blueHatchedSurfacePattern = Cairo::SurfacePattern::create(imageSurface);
142          this->grayBlueHatchedSurfacePattern->set_extend(Cairo::EXTEND_REPEAT);  #if HAS_CAIROMM_CPP11_ENUMS
143            this->blueHatchedSurfacePattern->set_extend(Cairo::Pattern::Extend::REPEAT);
144    #else
145            this->blueHatchedSurfacePattern->set_extend(Cairo::EXTEND_REPEAT);
146    #endif
147      }      }
148    
149      instrument = 0;      instrument = 0;
# Line 159  RegionChooser::RegionChooser() : Line 177  RegionChooser::RegionChooser() :
177      m_VirtKeybPropsBox.show();      m_VirtKeybPropsBox.show();
178      for (int i = 0 ; i < 128 ; i++) key_pressed[i] = false;      for (int i = 0 ; i < 128 ; i++) key_pressed[i] = false;
179    
180      actionGroup = Gtk::ActionGroup::create();      actionGroup = ActionGroup::create();
181    #if USE_GLIB_ACTION
182        actionGroup->add_action(
183            "Properties", sigc::mem_fun(*this, &RegionChooser::show_region_properties)
184        );
185        actionGroup->add_action(
186            "Remove", sigc::mem_fun(*this, &RegionChooser::delete_region)
187        );
188        actionGroup->add_action(
189            "Add", sigc::mem_fun(*this, &RegionChooser::add_region)
190        );
191        actionGroup->add_action(
192            "Dimensions", sigc::mem_fun(*this, &RegionChooser::manage_dimensions)
193        );
194        insert_action_group("PopupMenuInsideRegion", actionGroup);
195    #else
196      actionGroup->add(Gtk::Action::create("Properties",      actionGroup->add(Gtk::Action::create("Properties",
197                                           Gtk::Stock::PROPERTIES),                                           Gtk::Stock::PROPERTIES),
198                       sigc::mem_fun(*this,                       sigc::mem_fun(*this,
# Line 170  RegionChooser::RegionChooser() : Line 203  RegionChooser::RegionChooser() :
203                       sigc::mem_fun(*this, &RegionChooser::add_region));                       sigc::mem_fun(*this, &RegionChooser::add_region));
204      actionGroup->add(Gtk::Action::create("Dimensions", _("Dimensions...")),      actionGroup->add(Gtk::Action::create("Dimensions", _("Dimensions...")),
205                       sigc::mem_fun(*this, &RegionChooser::manage_dimensions));                       sigc::mem_fun(*this, &RegionChooser::manage_dimensions));
206    #endif
207    
208    #if USE_GTKMM_BUILDER
209        uiManager = Gtk::Builder::create();
210        Glib::ustring ui_info =
211            "<interface>"
212            "  <menu id='menu-PopupMenuInsideRegion'>"
213            "    <section>"
214            "      <item>"
215            "        <attribute name='label' translatable='yes'>Properties</attribute>"
216            "        <attribute name='action'>PopupMenuInsideRegion.Properties</attribute>"
217            "      </item>"
218            "      <item>"
219            "        <attribute name='label' translatable='yes'>Dimensions</attribute>"
220            "        <attribute name='action'>PopupMenuInsideRegion.Dimensions</attribute>"
221            "      </item>"
222            "      <item>"
223            "        <attribute name='label' translatable='yes'>Remove</attribute>"
224            "        <attribute name='action'>PopupMenuInsideRegion.Remove</attribute>"
225            "      </item>"
226            "    </section>"
227            "  </menu>"
228            "  <menu id='menu-PopupMenuOutsideRegion'>"
229            "    <section>"
230            "      <item>"
231            "        <attribute name='label' translatable='yes'>Add</attribute>"
232            "        <attribute name='action'>PopupMenuInsideRegion.Add</attribute>"
233            "      </item>"
234            "    </section>"
235            "  </menu>"
236            "</interface>";
237        uiManager->add_from_string(ui_info);
238        
239        popup_menu_inside_region = new Gtk::Menu(
240             Glib::RefPtr<Gio::Menu>::cast_dynamic(
241                 uiManager->get_object("menu-PopupMenuInsideRegion")
242             )
243        );
244        popup_menu_outside_region = new Gtk::Menu(
245             Glib::RefPtr<Gio::Menu>::cast_dynamic(
246                 uiManager->get_object("menu-PopupMenuOutsideRegion")
247             )
248        );
249    #else
250      uiManager = Gtk::UIManager::create();      uiManager = Gtk::UIManager::create();
251      uiManager->insert_action_group(actionGroup);      uiManager->insert_action_group(actionGroup);
252      Glib::ustring ui_info =      Glib::ustring ui_info =
# Line 191  RegionChooser::RegionChooser() : Line 267  RegionChooser::RegionChooser() :
267      popup_menu_outside_region = dynamic_cast<Gtk::Menu*>(      popup_menu_outside_region = dynamic_cast<Gtk::Menu*>(
268          uiManager->get_widget("/PopupMenuOutsideRegion"));          uiManager->get_widget("/PopupMenuOutsideRegion"));
269    
270    #endif // USE_GTKMM_BUILDER
271    
272    #if GTKMM_MAJOR_VERSION > 3 || (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION > 22)
273    # warning GTKMM4 event registration code missing for regionchooser!
274        //add_events(Gdk::EventMask::BUTTON_PRESS_MASK);
275    #else
276      add_events(Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK |      add_events(Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK |
277                 Gdk::POINTER_MOTION_MASK | Gdk::POINTER_MOTION_HINT_MASK);                 Gdk::POINTER_MOTION_MASK | Gdk::POINTER_MOTION_HINT_MASK);
278    #endif
279    
280      dimensionManager.region_to_be_changed_signal.connect(      dimensionManager.region_to_be_changed_signal.connect(
281          region_to_be_changed_signal.make_slot()          region_to_be_changed_signal.make_slot()
# Line 271  bool RegionChooser::on_draw(const Cairo: Line 354  bool RegionChooser::on_draw(const Cairo:
354  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2
355      const Gdk::Color bg = get_style()->get_bg(Gtk::STATE_NORMAL);      const Gdk::Color bg = get_style()->get_bg(Gtk::STATE_NORMAL);
356  #else  #else
357    #if GTKMM_MAJOR_VERSION > 3 || (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION > 22)
358        GdkRGBA gdkBgRGBA;
359        gtk_style_context_get_background_color(get_style_context()->gobj(), &gdkBgRGBA);
360        const Gdk::RGBA bg = Glib::wrap(&gdkBgRGBA, true);
361    # else
362      const Gdk::RGBA bg = get_style_context()->get_background_color();      const Gdk::RGBA bg = get_style_context()->get_background_color();
363    # endif
364  #endif  #endif
365      Gdk::Cairo::set_source_rgba(cr, bg);      Gdk::Cairo::set_source_rgba(cr, bg);
366      cr->paint();      cr->paint();
# Line 377  void RegionChooser::draw_regions(const C Line 466  void RegionChooser::draw_regions(const C
466                  if (region == r)                  if (region == r)
467                      Gdk::Cairo::set_source_rgba(cr, blue);                      Gdk::Cairo::set_source_rgba(cr, blue);
468                  else if (modifyallregions)                  else if (modifyallregions)
469                      cr->set_source(grayBlueHatchedSurfacePattern);                      cr->set_source(blueHatchedSurfacePattern);
470                  else                  else
471                      Gdk::Cairo::set_source_rgba(cr, white);                      Gdk::Cairo::set_source_rgba(cr, white);
472    
# Line 396  void RegionChooser::draw_regions(const C Line 485  void RegionChooser::draw_regions(const C
485          RegionFeatures features = regionFeatures(r);          RegionFeatures features = regionFeatures(r);
486    
487          const bool bShowLoopSymbol = features.loops > 0;          const bool bShowLoopSymbol = features.loops > 0;
488          const bool bShowSampleRefSymbol = features.sampleRefs < r->DimensionRegions;          const bool bShowSampleRefSymbol = features.sampleRefs < features.validDimRegs;
489          if (bShowLoopSymbol || bShowSampleRefSymbol) {          if (bShowLoopSymbol || bShowSampleRefSymbol) {
490              const int margin = 2;              const int margin = 2;
491              const int wRgn = x2 - x;              const int wRgn = x2 - x;
# Line 420  void RegionChooser::draw_regions(const C Line 509  void RegionChooser::draw_regions(const C
509                  const int wPic = 12;                  const int wPic = 12;
510                  const int hPic = 14;                  const int hPic = 14;
511                  Gdk::Cairo::set_source_pixbuf(                  Gdk::Cairo::set_source_pixbuf(
512                      cr, (features.loops == r->DimensionRegions) ? blackLoop : grayLoop,                      cr, (features.loops == features.validDimRegs) ? blackLoop : grayLoop,
513                      x + (wRgn-wPic)/2.f,                      x + (wRgn-wPic)/2.f,
514                      (bShowSampleRefSymbol) ? h1 - hPic - margin : (h1-hPic)/2.f                      (bShowSampleRefSymbol) ? h1 - hPic - margin : (h1-hPic)/2.f
515                  );                  );
# Line 570  bool RegionChooser::on_button_release_ev Line 659  bool RegionChooser::on_button_release_ev
659  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2
660          get_window()->pointer_ungrab(event->time);          get_window()->pointer_ungrab(event->time);
661  #else  #else
662    # if GTKMM_MAJOR_VERSION < 3 || (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION < 20)
663          Glib::wrap(event->device, true)->ungrab(event->time);          Glib::wrap(event->device, true)->ungrab(event->time);
664    # else
665            gdk_device_ungrab(Glib::wrap(event->device, true)->gobj(), event->time);
666    # endif
667  #endif  #endif
668          resize.active = false;          resize.active = false;
669    
# Line 582  bool RegionChooser::on_button_release_ev Line 675  bool RegionChooser::on_button_release_ev
675  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2
676          get_window()->pointer_ungrab(event->time);          get_window()->pointer_ungrab(event->time);
677  #else  #else
678    # if GTKMM_MAJOR_VERSION < 3 || (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION < 20)
679          Glib::wrap(event->device, true)->ungrab(event->time);          Glib::wrap(event->device, true)->ungrab(event->time);
680    # else
681            gdk_device_ungrab(Glib::wrap(event->device, true)->gobj(), event->time);
682    # endif
683  #endif  #endif
684          move.active = false;          move.active = false;
685    
# Line 590  bool RegionChooser::on_button_release_ev Line 687  bool RegionChooser::on_button_release_ev
687  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2
688              get_window()->set_cursor(Gdk::Cursor(Gdk::SB_H_DOUBLE_ARROW));              get_window()->set_cursor(Gdk::Cursor(Gdk::SB_H_DOUBLE_ARROW));
689  #else  #else
690              get_window()->set_cursor(Gdk::Cursor::create(Gdk::SB_H_DOUBLE_ARROW));              get_window()->set_cursor(
691    # if GTKMM_MAJOR_VERSION < 3 || (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION < 20)
692                    Gdk::Cursor::create(Gdk::SB_H_DOUBLE_ARROW)
693    # else
694                    Gdk::Cursor::create(
695                        Glib::wrap(event->device, true)->get_seat()->get_display(),
696                        Gdk::SB_H_DOUBLE_ARROW
697                    )
698    # endif
699                );
700  #endif  #endif
701              cursor_is_resize = true;              cursor_is_resize = true;
702          }          }
# Line 686  bool RegionChooser::on_button_press_even Line 792  bool RegionChooser::on_button_press_even
792                                         Gdk::Cursor(Gdk::SB_H_DOUBLE_ARROW),                                         Gdk::Cursor(Gdk::SB_H_DOUBLE_ARROW),
793                                         event->time);                                         event->time);
794  #else  #else
795    # if GTKMM_MAJOR_VERSION < 3 || (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION < 20)
796              Glib::wrap(event->device, true)->grab(get_window(),              Glib::wrap(event->device, true)->grab(get_window(),
797                                                    Gdk::OWNERSHIP_NONE,                                                    Gdk::OWNERSHIP_NONE,
798                                                    false,                                                    false,
# Line 694  bool RegionChooser::on_button_press_even Line 801  bool RegionChooser::on_button_press_even
801                                                    Gdk::POINTER_MOTION_HINT_MASK,                                                    Gdk::POINTER_MOTION_HINT_MASK,
802                                                    Gdk::Cursor::create(Gdk::SB_H_DOUBLE_ARROW),                                                    Gdk::Cursor::create(Gdk::SB_H_DOUBLE_ARROW),
803                                                    event->time);                                                    event->time);
804    # else
805                gdk_device_grab(
806                    Glib::wrap(event->device, true)->gobj(),
807                    get_window()->gobj(),
808                    GDK_OWNERSHIP_NONE,
809                    false,
810                    GdkEventMask(GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK |
811                                 GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON1_MOTION_MASK),
812                    Gdk::Cursor::create(
813                        Glib::wrap(event->device, true)->get_seat()->get_display(),
814                        Gdk::SB_H_DOUBLE_ARROW
815                    )->gobj(),
816                    event->time
817                );
818    # endif
819  #endif  #endif
820              resize.active = true;              resize.active = true;
821          } else {          } else {
# Line 712  bool RegionChooser::on_button_press_even Line 834  bool RegionChooser::on_button_press_even
834                                             Gdk::Cursor(Gdk::FLEUR),                                             Gdk::Cursor(Gdk::FLEUR),
835                                             event->time);                                             event->time);
836  #else  #else
837                  Glib::wrap(event->device, true)->grab(get_window(),  # if GTKMM_MAJOR_VERSION < 3 || (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION < 20)
838                                                        Gdk::OWNERSHIP_NONE,              Glib::wrap(event->device, true)->grab(get_window(),
839                                                        false,                                                    Gdk::OWNERSHIP_NONE,
840                                                        Gdk::BUTTON_RELEASE_MASK |                                                    false,
841                                                        Gdk::POINTER_MOTION_MASK |                                                    Gdk::BUTTON_RELEASE_MASK |
842                                                        Gdk::POINTER_MOTION_HINT_MASK,                                                    Gdk::POINTER_MOTION_MASK |
843                                                        Gdk::Cursor::create(Gdk::FLEUR),                                                    Gdk::POINTER_MOTION_HINT_MASK,
844                                                        event->time);                                                    Gdk::Cursor::create(Gdk::FLEUR),
845                                                      event->time);
846    # else
847                gdk_device_grab(
848                    Glib::wrap(event->device, true)->gobj(),
849                    get_window()->gobj(),
850                    GDK_OWNERSHIP_NONE,
851                    false,
852                    GdkEventMask(GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK |
853                                 GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON1_MOTION_MASK),
854                    Gdk::Cursor::create(
855                        Glib::wrap(event->device, true)->get_seat()->get_display(),
856                        Gdk::FLEUR
857                    )->gobj(),
858                    event->time
859                );
860    # endif
861  #endif  #endif
862                  move.active = true;                  move.active = true;
863                  move.offset = event->x - key_to_x(region->KeyRange.low, w);                  move.offset = event->x - key_to_x(region->KeyRange.low, w);
# Line 937  bool RegionChooser::on_motion_notify_eve Line 1075  bool RegionChooser::on_motion_notify_eve
1075  {  {
1076      Glib::RefPtr<Gdk::Window> window = get_window();      Glib::RefPtr<Gdk::Window> window = get_window();
1077      int x, y;      int x, y;
1078    #if HAS_GDKMM_SEAT
1079        x = event->x;
1080        y = event->y;
1081        Gdk::ModifierType state = Gdk::ModifierType(event->state);
1082    #else
1083      Gdk::ModifierType state = Gdk::ModifierType(0);      Gdk::ModifierType state = Gdk::ModifierType(0);
1084      window->get_pointer(x, y, state);      window->get_pointer(x, y, state);
1085    #endif
1086    
1087      // handle virtual MIDI keyboard      // handle virtual MIDI keyboard
1088      if (m_VirtKeybModeChoice.get_value() != VIRT_KEYBOARD_MODE_CHORD &&      if (m_VirtKeybModeChoice.get_value() != VIRT_KEYBOARD_MODE_CHORD &&
# Line 969  bool RegionChooser::on_motion_notify_eve Line 1113  bool RegionChooser::on_motion_notify_eve
1113  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2
1114                  window->set_cursor(Gdk::Cursor(Gdk::SB_H_DOUBLE_ARROW));                  window->set_cursor(Gdk::Cursor(Gdk::SB_H_DOUBLE_ARROW));
1115  #else  #else
1116                  window->set_cursor(Gdk::Cursor::create(Gdk::SB_H_DOUBLE_ARROW));                  window->set_cursor(
1117    # if GTKMM_MAJOR_VERSION < 3 || (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION < 20)
1118                        Gdk::Cursor::create(Gdk::SB_H_DOUBLE_ARROW)
1119    # else
1120                        Gdk::Cursor::create(
1121                            Glib::wrap(event->device, true)->get_seat()->get_display(),
1122                            Gdk::SB_H_DOUBLE_ARROW
1123                        )
1124    # endif
1125                    );
1126  #endif  #endif
1127                  cursor_is_resize = true;                  cursor_is_resize = true;
1128              }              }
# Line 1049  void RegionChooser::show_region_properti Line 1202  void RegionChooser::show_region_properti
1202      // add "Keygroup" checkbox      // add "Keygroup" checkbox
1203      Gtk::CheckButton checkBoxKeygroup(_("Member of a Keygroup (Exclusive Group)"));      Gtk::CheckButton checkBoxKeygroup(_("Member of a Keygroup (Exclusive Group)"));
1204      checkBoxKeygroup.set_active(region->KeyGroup);      checkBoxKeygroup.set_active(region->KeyGroup);
1205    #if USE_GTKMM_BOX
1206        dialog.get_content_area()->pack_start(checkBoxKeygroup);
1207    #else
1208      dialog.get_vbox()->pack_start(checkBoxKeygroup);      dialog.get_vbox()->pack_start(checkBoxKeygroup);
1209    #endif
1210      checkBoxKeygroup.show();      checkBoxKeygroup.show();
1211      // add "Keygroup" spinbox      // add "Keygroup" spinbox
1212  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2  #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION < 90) || GTKMM_MAJOR_VERSION < 2
# Line 1059  void RegionChooser::show_region_properti Line 1216  void RegionChooser::show_region_properti
1216      Gtk::SpinButton spinBox(Gtk::Adjustment::create(1, 1, 999));      Gtk::SpinButton spinBox(Gtk::Adjustment::create(1, 1, 999));
1217  #endif  #endif
1218      if (region->KeyGroup) spinBox.set_value(region->KeyGroup);      if (region->KeyGroup) spinBox.set_value(region->KeyGroup);
1219    #if USE_GTKMM_BOX
1220        dialog.get_content_area()->pack_start(spinBox);
1221    #else
1222      dialog.get_vbox()->pack_start(spinBox);      dialog.get_vbox()->pack_start(spinBox);
1223    #endif
1224      spinBox.show();      spinBox.show();
1225      // add OK and CANCEL buttons to the dialog      // add OK and CANCEL buttons to the dialog
1226    #if HAS_GTKMM_STOCK
1227      dialog.add_button(Gtk::Stock::OK, 0);      dialog.add_button(Gtk::Stock::OK, 0);
1228      dialog.add_button(Gtk::Stock::CANCEL, 1);      dialog.add_button(Gtk::Stock::CANCEL, 1);
1229    #else
1230        dialog.add_button(_("_OK"), 0);
1231        dialog.add_button(_("_Cancel"), 1);
1232    #endif
1233      dialog.set_position(Gtk::WIN_POS_MOUSE);      dialog.set_position(Gtk::WIN_POS_MOUSE);
1234    #if HAS_GTKMM_SHOW_ALL_CHILDREN
1235      dialog.show_all_children();      dialog.show_all_children();
1236    #endif
1237      if (!dialog.run()) { // OK selected ...      if (!dialog.run()) { // OK selected ...
1238          region->KeyGroup =          region->KeyGroup =
1239              (checkBoxKeygroup.get_active()) ? spinBox.get_value_as_int() : 0;              (checkBoxKeygroup.get_active()) ? spinBox.get_value_as_int() : 0;

Legend:
Removed from v.3226  
changed lines
  Added in v.3364

  ViewVC Help
Powered by ViewVC