Author: manolo
Date: 2012-05-07 07:37:36 -0700 (Mon, 07 May 2012)
New Revision: 9456
Log:
Fixed use of widget-relative coordinates for WIN32 image drawing.
Modified:
branches/branch-3.0/src/fltk3/Bitmap.cxx
branches/branch-3.0/src/fltk3/Image.cxx
branches/branch-3.0/src/fltk3/Pixmap.cxx
branches/branch-3.0/src/fltk3/vertex.cxx
branches/branch-3.0/src/fltk3/win32_font.cxx
Modified: branches/branch-3.0/src/fltk3/Bitmap.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Bitmap.cxx 2012-05-07 14:00:31 UTC (rev
9455)
+++ branches/branch-3.0/src/fltk3/Bitmap.cxx 2012-05-07 14:37:36 UTC (rev
9456)
@@ -336,7 +336,7 @@
fl_end_offscreen(); // offscreen data is in tmp_id
SelectObject(tempdc, (HGDIOBJ)tmp_id); // use offscreen data
// draw it to printer context with background color as transparent
- fl_TransparentBlt(fl_gc, X,Y,W,H, tempdc, cx, cy, bm->w(), bm->h(), RGB(r,
g, b) );
+ fl_TransparentBlt(fl_gc, X+origin_x(),Y+origin_y(),W,H, tempdc, cx, cy,
bm->w(), bm->h(), RGB(r, g, b) );
fl_delete_offscreen(tmp_id);
}
else { // algorithm for bitmap output to display
@@ -345,7 +345,7 @@
SelectObject(tempdc, (HGDIOBJ)bm->id_);
SelectObject(fl_gc, fl_brush());
// secret bitblt code found in old MSWindows reference manual:
- BitBlt(fl_gc, X, Y, W, H, tempdc, cx, cy, 0xE20746L);
+ BitBlt(fl_gc, X+origin_x(), Y+origin_y(), W, H, tempdc, cx, cy, 0xE20746L);
}
RestoreDC(tempdc, save);
DeleteDC(tempdc);
Modified: branches/branch-3.0/src/fltk3/Image.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Image.cxx 2012-05-07 14:00:31 UTC (rev
9455)
+++ branches/branch-3.0/src/fltk3/Image.cxx 2012-05-07 14:37:36 UTC (rev
9456)
@@ -537,15 +537,15 @@
HDC new_gc = CreateCompatibleDC(fl_gc);
int save = SaveDC(new_gc);
SelectObject(new_gc, (void*)img->mask_);
- BitBlt(fl_gc, X, Y, W, H, new_gc, cx, cy, SRCAND);
+ BitBlt(fl_gc, X+origin_x(), Y+origin_y(), W, H, new_gc, cx, cy, SRCAND);
SelectObject(new_gc, (void*)img->id_);
- BitBlt(fl_gc, X, Y, W, H, new_gc, cx, cy, SRCPAINT);
+ BitBlt(fl_gc, X+origin_x(), Y+origin_y(), W, H, new_gc, cx, cy, SRCPAINT);
RestoreDC(new_gc,save);
DeleteDC(new_gc);
} else if (img->d()==2 || img->d()==4) {
- copy_offscreen_with_alpha(X, Y, W, H, (fltk3::Offscreen)img->id_, cx, cy);
+ copy_offscreen_with_alpha(X+origin_x(), Y+origin_y(), W, H,
(fltk3::Offscreen)img->id_, cx, cy);
} else {
- copy_offscreen(X, Y, W, H, (fltk3::Offscreen)img->id_, cx, cy);
+ copy_offscreen(X+origin_x(), Y+origin_y(), W, H,
(fltk3::Offscreen)img->id_, cx, cy);
}
}
Modified: branches/branch-3.0/src/fltk3/Pixmap.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/Pixmap.cxx 2012-05-07 14:00:31 UTC (rev
9455)
+++ branches/branch-3.0/src/fltk3/Pixmap.cxx 2012-05-07 14:37:36 UTC (rev
9456)
@@ -156,13 +156,13 @@
HDC new_gc = CreateCompatibleDC(fl_gc);
int save = SaveDC(new_gc);
SelectObject(new_gc, (void*)pxm->mask_);
- BitBlt(fl_gc, X, Y, W, H, new_gc, cx, cy, SRCAND);
+ BitBlt(fl_gc, X+origin_x(), Y+origin_y(), W, H, new_gc, cx, cy, SRCAND);
SelectObject(new_gc, (void*)pxm->id_);
- BitBlt(fl_gc, X, Y, W, H, new_gc, cx, cy, SRCPAINT);
+ BitBlt(fl_gc, X+origin_x(), Y+origin_y(), W, H, new_gc, cx, cy, SRCPAINT);
RestoreDC(new_gc,save);
DeleteDC(new_gc);
} else {
- copy_offscreen(X, Y, W, H, (fltk3::Offscreen)pxm->id_, cx, cy);
+ copy_offscreen(X+origin_x(), Y+origin_y(), W, H,
(fltk3::Offscreen)pxm->id_, cx, cy);
}
}
@@ -181,12 +181,12 @@
int save = SaveDC(new_gc);
SelectObject(new_gc, (void*)pxm->id_);
// print all of offscreen but its parts in background color
- fl_TransparentBlt(fl_gc, X, Y, W, H, new_gc, cx, cy, pxm->w(), pxm->h(),
pxm->pixmap_bg_color );
+ fl_TransparentBlt(fl_gc, X+origin_x(), Y+origin_y(), W, H, new_gc, cx, cy,
pxm->w(), pxm->h(), pxm->pixmap_bg_color );
RestoreDC(new_gc,save);
DeleteDC(new_gc);
}
else {
- copy_offscreen(X, Y, W, H, (fltk3::Offscreen)pxm->id_, cx, cy);
+ copy_offscreen(X+origin_x(), Y+origin_y(), W, H,
(fltk3::Offscreen)pxm->id_, cx, cy);
}
}
Modified: branches/branch-3.0/src/fltk3/vertex.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/vertex.cxx 2012-05-07 14:00:31 UTC (rev
9455)
+++ branches/branch-3.0/src/fltk3/vertex.cxx 2012-05-07 14:37:36 UTC (rev
9456)
@@ -361,9 +361,9 @@
prepare_circle(x, y, r, llx, lly, w, h, xt, yt);
if (vertex_kind()==POLYGON) {
SelectObject(fl_gc, fl_brush());
- Pie(fl_gc, llx, lly, llx+w, lly+h, 0,0, 0,0);
+ Pie(fl_gc, llx+origin_x(), lly+origin_y(), llx+w, lly+h, 0,0, 0,0);
} else
- Arc(fl_gc, llx, lly, llx+w, lly+h, 0,0, 0,0);
+ Arc(fl_gc, llx+origin_x(), lly+origin_y(), llx+w, lly+h, 0,0, 0,0);
}
#else
void fltk3::XlibGraphicsDriver::circle(double x, double y, double r) {
Modified: branches/branch-3.0/src/fltk3/win32_font.cxx
===================================================================
--- branches/branch-3.0/src/fltk3/win32_font.cxx 2012-05-07 14:00:31 UTC
(rev 9455)
+++ branches/branch-3.0/src/fltk3/win32_font.cxx 2012-05-07 14:37:36 UTC
(rev 9456)
@@ -396,7 +396,7 @@
wstr_len = wn + 1;
wn = fltk3::utf8toUtf16(str, n, wstr, wstr_len);
}
- TextOutW(fl_gc, x, y, (WCHAR*)wstr, wn);
+ TextOutW(fl_gc, x+origin_x(), y+origin_y(), (WCHAR*)wstr, wn);
SetTextColor(fl_gc, oldColor); // restore initial state
}
@@ -411,7 +411,7 @@
wstr_len = wn + 1;
wn = fltk3::utf8toUtf16(str, n, wstr, wstr_len); // respin the translation
}
- TextOutW(fl_gc, x, y, (WCHAR*)wstr, wn);
+ TextOutW(fl_gc, x+origin_x(), y+origin_y(), (WCHAR*)wstr, wn);
SetTextColor(fl_gc, oldColor);
::set_font(this, GraphicsDriver::font(), size(), 0);
}
@@ -427,6 +427,8 @@
COLORREF oldColor = SetTextColor(fl_gc, fl_RGB());
SelectObject(fl_gc, font_descriptor()->fid);
+ x += origin_x();
+ y += origin_y();
#ifdef RTL_CHAR_BY_CHAR
int i = 0;
int lx = 0;
_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit