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

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

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

revision 1225 by schoenebeck, Sun Jun 10 10:56:11 2007 UTC revision 1339 by schoenebeck, Mon Sep 10 19:56:26 2007 UTC
# Line 49  DimRegionChooser::DimRegionChooser() Line 49  DimRegionChooser::DimRegionChooser()
49      add_events(Gdk::BUTTON_PRESS_MASK | Gdk::POINTER_MOTION_MASK |      add_events(Gdk::BUTTON_PRESS_MASK | Gdk::POINTER_MOTION_MASK |
50                 Gdk::POINTER_MOTION_HINT_MASK);                 Gdk::POINTER_MOTION_HINT_MASK);
51    
52      for (int i = 0 ; i < 256 ; i++) {      for (int i = 0 ; i < 256 ; i++) dimvalue[i] = 0;
         dimvalue_from[i] = 0;  
         dimvalue_to[i] = 1;  
     }  
53  }  }
54    
55  DimRegionChooser::~DimRegionChooser()  DimRegionChooser::~DimRegionChooser()
# Line 250  void DimRegionChooser::set_region(gig::R Line 247  void DimRegionChooser::set_region(gig::R
247              if (region->pDimensionDefinitions[dim].bits == 0) continue;              if (region->pDimensionDefinitions[dim].bits == 0) continue;
248              nbDimensions++;              nbDimensions++;
249    
250              int from = dimvalue_from[region->pDimensionDefinitions[dim].dimension];              int z = std::min(dimvalue[region->pDimensionDefinitions[dim].dimension],
251              int to = dimvalue_to[region->pDimensionDefinitions[dim].dimension];                               region->pDimensionDefinitions[dim].zones - 1);
             int z;  
             switch (region->pDimensionDefinitions[dim].split_type) {  
             case gig::split_type_normal:  
                 z = int((to + from) / 2.0 / region->pDimensionDefinitions[dim].zone_size);  
                 break;  
             case gig::split_type_bit:  
                 z = std::min(from, region->pDimensionDefinitions[dim].zones - 1);  
                 break;  
             }  
252              int mask =              int mask =
253                  ~(((1 << region->pDimensionDefinitions[dim].bits) - 1) <<                  ~(((1 << region->pDimensionDefinitions[dim].bits) - 1) <<
254                    bitcount);                    bitcount);
# Line 272  void DimRegionChooser::set_region(gig::R Line 260  void DimRegionChooser::set_region(gig::R
260      } else {      } else {
261          dimreg = 0;          dimreg = 0;
262      }      }
263      sel_changed_signal.emit();      dimregion_selected();
264      queue_resize();      queue_resize();
265  }  }
266    
# Line 353  bool DimRegionChooser::on_button_release Line 341  bool DimRegionChooser::on_button_release
341                  i = (i & ~((1 << bitpos) - 1)) + (1 << bitpos);                  i = (i & ~((1 << bitpos) - 1)) + (1 << bitpos);
342              }              }
343          }          }
344            region_changed();
345    
346          if (!is_in_resize_zone(event->x, event->y) && cursor_is_resize) {          if (!is_in_resize_zone(event->x, event->y) && cursor_is_resize) {
347              get_window()->set_cursor();              get_window()->set_cursor();
# Line 424  bool DimRegionChooser::on_button_press_e Line 413  bool DimRegionChooser::on_button_press_e
413                     region->pDimensionDefinitions[dim].split_type,                     region->pDimensionDefinitions[dim].split_type,
414                     region->pDimensionDefinitions[dim].zones,                     region->pDimensionDefinitions[dim].zones,
415                     region->pDimensionDefinitions[dim].zone_size);                     region->pDimensionDefinitions[dim].zone_size);
416  #if 0              dimvalue[region->pDimensionDefinitions[dim].dimension] = z;
             switch (region->pDimensionDefinitions[dim].split_type) {  
             case gig::split_type_normal:  
                 dimvalue_from[region->pDimensionDefinitions[dim].dimension] =  
                     int(z * region->pDimensionDefinitions[dim].zone_size);  
                 dimvalue_to[region->pDimensionDefinitions[dim].dimension] =  
                     int((z + 1) * region->pDimensionDefinitions[dim].zone_size) - 1;  
                 break;  
             case gig::split_type_bit:  
                 dimvalue_from[region->pDimensionDefinitions[dim].dimension] = z;  
                 dimvalue_to[region->pDimensionDefinitions[dim].dimension] = z + 1;  
                 break;  
             }  
 #endif  
417    
418              dimregno = c | (z << bitpos);              dimregno = c | (z << bitpos);
419    
# Line 445  bool DimRegionChooser::on_button_press_e Line 421  bool DimRegionChooser::on_button_press_e
421              if (has_focus()) queue_draw();              if (has_focus()) queue_draw();
422              else grab_focus();              else grab_focus();
423              dimreg = region->pDimensionRegions[dimregno];              dimreg = region->pDimensionRegions[dimregno];
424              sel_changed_signal.emit();              dimregion_selected();
425          }          }
426      }      }
427      return true;      return true;
# Line 588  bool DimRegionChooser::is_in_resize_zone Line 564  bool DimRegionChooser::is_in_resize_zone
564      return false;      return false;
565  }  }
566    
567  sigc::signal<void> DimRegionChooser::signal_sel_changed()  sigc::signal<void>& DimRegionChooser::signal_dimregion_selected()
568    {
569        return dimregion_selected;
570    }
571    
572    sigc::signal<void>& DimRegionChooser::signal_region_changed()
573  {  {
574      return sel_changed_signal;      return region_changed;
575  }  }
576    
577  bool DimRegionChooser::on_focus(Gtk::DirectionType direction)  bool DimRegionChooser::on_focus(Gtk::DirectionType direction)

Legend:
Removed from v.1225  
changed lines
  Added in v.1339

  ViewVC Help
Powered by ViewVC