/[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 1092 by persson, Sun Mar 11 15:21:58 2007 UTC revision 1104 by persson, Sun Mar 18 17:15:00 2007 UTC
# Line 131  bool DimRegionChooser::on_expose_event(G Line 131  bool DimRegionChooser::on_expose_event(G
131              }              }
132              layout->set_text(dstr);              layout->set_text(dstr);
133    
134              Pango::Rectangle rectangle = layout->get_logical_extents();              Pango::Rectangle rectangle = layout->get_logical_extents();
135              double text_w = double(rectangle.get_width()) / Pango::SCALE;              double text_w = double(rectangle.get_width()) / Pango::SCALE;
136              if (text_w > maxwidth) maxwidth = text_w;              if (text_w > maxwidth) maxwidth = text_w;
137              double text_h = double(rectangle.get_height()) / Pango::SCALE;              double text_h = double(rectangle.get_height()) / Pango::SCALE;
138              Glib::RefPtr<const Gdk::GC> fg = get_style()->get_fg_gc(get_state());              Glib::RefPtr<const Gdk::GC> fg = get_style()->get_fg_gc(get_state());
139              window->draw_layout(fg, 4, int(y + (h - text_h) / 2 + 0.5), layout);              window->draw_layout(fg, 4, int(y + (h - text_h) / 2 + 0.5), layout);
140    
# Line 232  void DimRegionChooser::on_size_request(G Line 232  void DimRegionChooser::on_size_request(G
232      requisition->width = 800;      requisition->width = 800;
233  }  }
234    
 void DimRegionChooser::set_instrument(gig::Instrument* instrument)  
 {  
     this->instrument = instrument;  
     this->region = 0;  
     this->dimregno = -1;  
     queue_draw();  
 }  
   
235  void DimRegionChooser::set_region(gig::Region* region)  void DimRegionChooser::set_region(gig::Region* region)
236  {  {
237      this->region = region;      this->region = region;
238      dimregno = 0;      dimregno = 0;
     int bitcount = 0;  
239      nbDimensions = 0;      nbDimensions = 0;
240      for (int dim = 0 ; dim < region->Dimensions ; dim++) {      if (region) {
241          if (region->pDimensionDefinitions[dim].bits == 0) continue;          int bitcount = 0;
242          nbDimensions++;          for (int dim = 0 ; dim < region->Dimensions ; dim++) {
243                if (region->pDimensionDefinitions[dim].bits == 0) continue;
244          int from = dimvalue_from[region->pDimensionDefinitions[dim].dimension];              nbDimensions++;
245          int to = dimvalue_to[region->pDimensionDefinitions[dim].dimension];  
246          int z;              int from = dimvalue_from[region->pDimensionDefinitions[dim].dimension];
247          switch (region->pDimensionDefinitions[dim].split_type) {              int to = dimvalue_to[region->pDimensionDefinitions[dim].dimension];
248          case gig::split_type_normal:              int z;
249              z = int((to + from) / 2.0 / region->pDimensionDefinitions[dim].zone_size);              switch (region->pDimensionDefinitions[dim].split_type) {
250              break;              case gig::split_type_normal:
251          case gig::split_type_bit:                  z = int((to + from) / 2.0 / region->pDimensionDefinitions[dim].zone_size);
252              z = std::min(from, region->pDimensionDefinitions[dim].zones - 1);                  break;
253              break;              case gig::split_type_bit:
254                    z = std::min(from, region->pDimensionDefinitions[dim].zones - 1);
255                    break;
256                }
257                int mask =
258                    ~(((1 << region->pDimensionDefinitions[dim].bits) - 1) <<
259                      bitcount);
260                dimregno &= mask;
261                dimregno |= (z << bitcount);
262                bitcount += region->pDimensionDefinitions[dim].bits;
263          }          }
264          int mask =          dimreg = region->pDimensionRegions[dimregno];
265              ~(((1 << region->pDimensionDefinitions[dim].bits) - 1) <<      } else {
266                bitcount);          dimreg = 0;
         dimregno &= mask;  
         dimregno |= (z << bitcount);  
         bitcount += region->pDimensionDefinitions[dim].bits;  
267      }      }
     dimreg = region->pDimensionRegions[dimregno];  
268      sel_changed_signal.emit();      sel_changed_signal.emit();
269      queue_resize();      queue_resize();
270  }  }
271    
 /*  
   void DimRegionChooser::set_dimregno(int x) {  
   this->dimregno = x;  
   queue_draw();  
   }  
 */  
   
272  bool DimRegionChooser::on_button_release_event(GdkEventButton* event)  bool DimRegionChooser::on_button_release_event(GdkEventButton* event)
273  {  {
274      if (resize.active) {      if (resize.active) {

Legend:
Removed from v.1092  
changed lines
  Added in v.1104

  ViewVC Help
Powered by ViewVC