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(); |
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(); |
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 |
|
|
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); |