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

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

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

revision 1184 by persson, Sun Mar 18 17:15:00 2007 UTC revision 1185 by schoenebeck, Sun May 13 14:09:20 2007 UTC
# Line 497  bool DimRegionChooser::is_in_resize_zone Line 497  bool DimRegionChooser::is_in_resize_zone
497              int mask = ~(((1 << region->pDimensionDefinitions[dim].bits) - 1) << bitpos);              int mask = ~(((1 << region->pDimensionDefinitions[dim].bits) - 1) << bitpos);
498              c = dimregno & mask; // mask away this dimension              c = dimregno & mask; // mask away this dimension
499          }          }
500          bool customsplits =          const bool customsplits =
501              ((region->pDimensionDefinitions[dim].split_type == gig::split_type_normal &&              ((region->pDimensionDefinitions[dim].split_type == gig::split_type_normal &&
502                region->pDimensionRegions[c]->DimensionUpperLimits[dim]) ||                region->pDimensionRegions[c]->DimensionUpperLimits[dim]) ||
503               (region->pDimensionDefinitions[dim].dimension == gig::dimension_velocity &&               (region->pDimensionDefinitions[dim].dimension == gig::dimension_velocity &&
504                region->pDimensionRegions[c]->VelocityUpperLimit));                region->pDimensionRegions[c]->VelocityUpperLimit));
505    
506          if (customsplits) {          // dimensions of split_type_bit cannot be resized
507            if (region->pDimensionDefinitions[dim].split_type != gig::split_type_bit) {
508              int prev_limit = 0;              int prev_limit = 0;
509              for (int j = 0 ; j < nbZones - 1 ; j++) {              for (int iZone = 0 ; iZone < nbZones - 1 ; iZone++) {
510                  gig::DimensionRegion *d = region->pDimensionRegions[c + (j << bitpos)];                  gig::DimensionRegion *d = region->pDimensionRegions[c + (iZone << bitpos)];
511                  int upperLimit = d->DimensionUpperLimits[dim];                  const int upperLimit =
512                  if (!upperLimit) upperLimit = d->VelocityUpperLimit;                      (customsplits) ?
513                            (d->DimensionUpperLimits[dim]) ?
514                                d->DimensionUpperLimits[dim] : d->VelocityUpperLimit
515                            : (iZone+1) * (int)region->pDimensionDefinitions[dim].zone_size;
516                  int limit = upperLimit + 1;                  int limit = upperLimit + 1;
517                  int limitx = int((w - label_width - 1) * limit / 128.0 + 0.5) + label_width;                  int limitx = int((w - label_width - 1) * limit / 128.0 + 0.5) + label_width;
   
518                  if (x <= limitx - 2) break;                  if (x <= limitx - 2) break;
519                  if (x <= limitx + 2) {                  if (x <= limitx + 2) {
520                      resize.dimension = dim;                      resize.dimension = dim;
521                      resize.offset = j << bitpos;                      resize.offset = iZone << bitpos;
522                      resize.pos = limit;                      resize.pos = limit;
523                      resize.min = prev_limit;                      resize.min = prev_limit;
524    
525                      int dr = (dimregno >> bitpos) &                      int dr = (dimregno >> bitpos) &
526                          ((1 << region->pDimensionDefinitions[dim].bits) - 1);                          ((1 << region->pDimensionDefinitions[dim].bits) - 1);
527                      resize.selected = dr == j ? resize.left :                      resize.selected = dr == iZone ? resize.left :
528                          dr == j + 1 ? resize.right : resize.none;                          dr == iZone + 1 ? resize.right : resize.none;
529    
530                        iZone++;
531                        gig::DimensionRegion *d = region->pDimensionRegions[c + (iZone << bitpos)];
532    
533                        const int upperLimit =
534                            (customsplits) ?
535                                (d->DimensionUpperLimits[dim]) ?
536                                    d->DimensionUpperLimits[dim] : d->VelocityUpperLimit
537                                : (iZone+1) * (int)region->pDimensionDefinitions[dim].zone_size;
538    
                     j++;  
                     gig::DimensionRegion *d = region->pDimensionRegions[c + (j << bitpos)];  
                     int upperLimit = d->DimensionUpperLimits[dim];  
                     if (!upperLimit) upperLimit = d->VelocityUpperLimit;  
539                      int limit = upperLimit + 1;                      int limit = upperLimit + 1;
540                      resize.max = limit;                      resize.max = limit;
541                      return true;                      return true;

Legend:
Removed from v.1184  
changed lines
  Added in v.1185

  ViewVC Help
Powered by ViewVC