/[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 2641 by schoenebeck, Mon Jun 16 15:24:54 2014 UTC revision 2773 by schoenebeck, Fri Jun 12 17:57:52 2015 UTC
# Line 1  Line 1 
1  /*  /*
2   * Copyright (C) 2006-2014 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 29  Line 29 
29  #include <gtkmm/dialog.h>  #include <gtkmm/dialog.h>
30    
31  #include "global.h"  #include "global.h"
32    #include "Settings.h"
33    
34  #define REGION_BLOCK_HEIGHT             30  #define REGION_BLOCK_HEIGHT             30
35  #define KEYBOARD_HEIGHT                 40  #define KEYBOARD_HEIGHT                 40
# Line 515  void RegionChooser::update_after_resize( Line 516  void RegionChooser::update_after_resize(
516  void RegionChooser::update_after_move(int pos)  void RegionChooser::update_after_move(int pos)
517  {  {
518      instrument_struct_to_be_changed_signal.emit(instrument);      instrument_struct_to_be_changed_signal.emit(instrument);
519      region->SetKeyRange(pos, pos + region->KeyRange.high -      const int range = region->KeyRange.high - region->KeyRange.low;
520                          region->KeyRange.low);      const int diff  = pos - int(region->KeyRange.low);
521        region->SetKeyRange(pos, pos + range);
522        if (Settings::singleton()->moveRootNoteWithRegionMoved) {
523            for (int i = 0; i < 256; ++i) {
524                gig::DimensionRegion* dimrgn = region->pDimensionRegions[i];
525                if (!dimrgn || !dimrgn->pSample || !dimrgn->PitchTrack) continue;
526                dimrgn->UnityNote += diff;
527            }
528        }
529      regions.update(instrument);      regions.update(instrument);
530      instrument_changed.emit();      instrument_changed.emit();
531      instrument_struct_changed_signal.emit(instrument);      instrument_struct_changed_signal.emit(instrument);
# Line 540  bool RegionChooser::on_button_press_even Line 549  bool RegionChooser::on_button_press_even
549    
550      // left mouse button double click      // left mouse button double click
551      if (event->type == GDK_2BUTTON_PRESS && event->button == 1) {      if (event->type == GDK_2BUTTON_PRESS && event->button == 1) {
552          // show dimension manager dialog for this region          if (event->y < REGION_BLOCK_HEIGHT) {
553          manage_dimensions();              // show dimension manager dialog for this region
554                manage_dimensions();
555            }
556      }      }
557    
558      if (event->y >= REGION_BLOCK_HEIGHT) return true;      if (event->y >= REGION_BLOCK_HEIGHT) return true;
# Line 619  gig::Region* RegionChooser::get_region(i Line 630  gig::Region* RegionChooser::get_region(i
630      return 0;      return 0;
631  }  }
632    
633    void RegionChooser::set_region(gig::Region* region) {
634        this->region = region;
635        queue_draw();
636        region_selected();
637        dimensionManager.set_region(region);
638    }
639    
640  void RegionChooser::motion_resize_region(int x, int y)  void RegionChooser::motion_resize_region(int x, int y)
641  {  {
642      const int w = get_width() - 1;      const int w = get_width() - 1;

Legend:
Removed from v.2641  
changed lines
  Added in v.2773

  ViewVC Help
Powered by ViewVC