/[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 3202 by persson, Mon May 22 18:58:46 2017 UTC revision 3286 by schoenebeck, Thu Jun 22 10:54:10 2017 UTC
# Line 80  DimRegionChooser::DimRegionChooser(Gtk:: Line 80  DimRegionChooser::DimRegionChooser(Gtk::
80      // make sure blue hatched pattern pixmap is loaded      // make sure blue hatched pattern pixmap is loaded
81      loadBuiltInPix();      loadBuiltInPix();
82    
83      // create blue hatched pattern      // create blue hatched pattern 1
84      {      {
85          const int width = blueHatchedPattern->get_width();          const int width = blueHatchedPattern->get_width();
86          const int height = blueHatchedPattern->get_height();          const int height = blueHatchedPattern->get_height();
# Line 110  DimRegionChooser::DimRegionChooser(Gtk:: Line 110  DimRegionChooser::DimRegionChooser(Gtk::
110          this->blueHatchedSurfacePattern->set_extend(Cairo::EXTEND_REPEAT);          this->blueHatchedSurfacePattern->set_extend(Cairo::EXTEND_REPEAT);
111      }      }
112    
113        // create blue hatched pattern 2
114        {
115            const int width = blueHatchedPattern2->get_width();
116            const int height = blueHatchedPattern2->get_height();
117            const int stride = blueHatchedPattern2->get_rowstride();
118    
119            // manually convert from RGBA to ARGB
120            this->blueHatchedPattern2ARGB = blueHatchedPattern2->copy();
121            const int pixelSize = stride / width;
122            const int totalPixels = width * height;
123            assert(pixelSize == 4);
124            unsigned char* ptr = this->blueHatchedPattern2ARGB->get_pixels();
125            for (int iPixel = 0; iPixel < totalPixels; ++iPixel, ptr += pixelSize) {
126                const unsigned char r = ptr[0];
127                const unsigned char g = ptr[1];
128                const unsigned char b = ptr[2];
129                const unsigned char a = ptr[3];
130                ptr[0] = b;
131                ptr[1] = g;
132                ptr[2] = r;
133                ptr[3] = a;
134            }
135    
136            Cairo::RefPtr<Cairo::ImageSurface> imageSurface = Cairo::ImageSurface::create(
137                this->blueHatchedPattern2ARGB->get_pixels(), Cairo::FORMAT_ARGB32, width, height, stride
138            );
139            this->blueHatchedSurfacePattern2 = Cairo::SurfacePattern::create(imageSurface);
140            this->blueHatchedSurfacePattern2->set_extend(Cairo::EXTEND_REPEAT);
141        }
142    
143      // create gray blue hatched pattern      // create gray blue hatched pattern
144      {      {
145          const int width = grayBlueHatchedPattern->get_width();          const int width = grayBlueHatchedPattern->get_width();
# Line 451  bool DimRegionChooser::on_draw(const Cai Line 481  bool DimRegionChooser::on_draw(const Cai
481                          if (isMainSelection)                          if (isMainSelection)
482                              Gdk::Cairo::set_source_rgba(cr, blue);                              Gdk::Cairo::set_source_rgba(cr, blue);
483                          else if (isSelectedZone)                          else if (isSelectedZone)
484                              cr->set_source(blueHatchedSurfacePattern);                              cr->set_source(blueHatchedSurfacePattern2);
485                          else if (isCheckBoxSelected)                          else if (isCheckBoxSelected)
486                              cr->set_source(grayBlueHatchedSurfacePattern);                              cr->set_source(blueHatchedSurfacePattern);
487                          else                          else
488                              Gdk::Cairo::set_source_rgba(cr, white);                              Gdk::Cairo::set_source_rgba(cr, white);
489    
# Line 524  bool DimRegionChooser::on_draw(const Cai Line 554  bool DimRegionChooser::on_draw(const Cai
554                              if (isMainSelection)                              if (isMainSelection)
555                                  Gdk::Cairo::set_source_rgba(cr, blue);                                  Gdk::Cairo::set_source_rgba(cr, blue);
556                              else if (isSelectedZone)                              else if (isSelectedZone)
557                                  cr->set_source(blueHatchedSurfacePattern);                                  cr->set_source(blueHatchedSurfacePattern2);
558                              else if (isCheckBoxSelected)                              else if (isCheckBoxSelected)
559                                  cr->set_source(grayBlueHatchedSurfacePattern);                                  cr->set_source(blueHatchedSurfacePattern);
560                              else                              else
561                                  Gdk::Cairo::set_source_rgba(cr, white);                                  Gdk::Cairo::set_source_rgba(cr, white);
562                              cr->rectangle(prevX + 1, y + 1, x - prevX - 1, h - 1);                              cr->rectangle(prevX + 1, y + 1, x - prevX - 1, h - 1);

Legend:
Removed from v.3202  
changed lines
  Added in v.3286

  ViewVC Help
Powered by ViewVC