summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Image.cc101
-rw-r--r--src/Image.hh3
2 files changed, 17 insertions, 87 deletions
diff --git a/src/Image.cc b/src/Image.cc
index 3d73374..3574679 100644
--- a/src/Image.cc
+++ b/src/Image.cc
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Image.cc,v 1.15 2002/09/14 15:05:00 fluxgen Exp $ 25// $Id: Image.cc,v 1.16 2002/09/15 09:42:00 fluxgen Exp $
26 26
27//use GNU extensions 27//use GNU extensions
28#ifndef _GNU_SOURCE 28#ifndef _GNU_SOURCE
@@ -115,7 +115,7 @@ BImage::BImage(BImageControl *c, unsigned int w, unsigned int h) {
115} 115}
116 116
117 117
118BImage::~BImage(void) { 118BImage::~BImage() {
119 if (red) delete [] red; 119 if (red) delete [] red;
120 if (green) delete [] green; 120 if (green) delete [] green;
121 if (blue) delete [] blue; 121 if (blue) delete [] blue;
@@ -293,7 +293,7 @@ Pixmap BImage::renderGradient(const FbTk::Texture *texture) {
293} 293}
294 294
295 295
296XImage *BImage::renderXImage(void) { 296XImage *BImage::renderXImage() {
297 I18n *i18n = I18n::instance(); 297 I18n *i18n = I18n::instance();
298 XImage *image = 298 XImage *image =
299 XCreateImage(control->baseDisplay()->getXDisplay(), 299 XCreateImage(control->baseDisplay()->getXDisplay(),
@@ -696,7 +696,7 @@ XImage *BImage::renderXImage(void) {
696} 696}
697 697
698 698
699Pixmap BImage::renderPixmap(void) { 699Pixmap BImage::renderPixmap() {
700 I18n *i18n = I18n::instance(); 700 I18n *i18n = I18n::instance();
701 Pixmap pixmap = 701 Pixmap pixmap =
702 XCreatePixmap(control->baseDisplay()->getXDisplay(), 702 XCreatePixmap(control->baseDisplay()->getXDisplay(),
@@ -737,7 +737,7 @@ Pixmap BImage::renderPixmap(void) {
737} 737}
738 738
739 739
740void BImage::bevel1(void) { 740void BImage::bevel1() {
741 if (width > 2 && height > 2) { 741 if (width > 2 && height > 2) {
742 unsigned char *pr = red, *pg = green, *pb = blue; 742 unsigned char *pr = red, *pg = green, *pb = blue;
743 743
@@ -875,7 +875,7 @@ void BImage::bevel1(void) {
875} 875}
876 876
877 877
878void BImage::bevel2(void) { 878void BImage::bevel2() {
879 if (width > 4 && height > 4) { 879 if (width > 4 && height > 4) {
880 unsigned char r, g, b, rr ,gg ,bb, *pr = red + width + 1, 880 unsigned char r, g, b, rr ,gg ,bb, *pr = red + width + 1,
881 *pg = green + width + 1, *pb = blue + width + 1; 881 *pg = green + width + 1, *pb = blue + width + 1;
@@ -954,7 +954,7 @@ void BImage::bevel2(void) {
954} 954}
955 955
956 956
957void BImage::invert(void) { 957void BImage::invert() {
958 register unsigned int i, j, wh = (width * height) - 1; 958 register unsigned int i, j, wh = (width * height) - 1;
959 unsigned char tmp; 959 unsigned char tmp;
960 960
@@ -1082,7 +1082,7 @@ void BImage::dgradient() {
1082} 1082}
1083 1083
1084 1084
1085void BImage::hgradient(void) { 1085void BImage::hgradient() {
1086 float drx, dgx, dbx, 1086 float drx, dgx, dbx,
1087 xr = (float) from->red(), 1087 xr = (float) from->red(),
1088 xg = (float) from->green(), 1088 xg = (float) from->green(),
@@ -1181,7 +1181,7 @@ void BImage::hgradient(void) {
1181} 1181}
1182 1182
1183 1183
1184void BImage::vgradient(void) { 1184void BImage::vgradient() {
1185 float dry, dgy, dby, 1185 float dry, dgy, dby,
1186 yr = (float) from->red(), 1186 yr = (float) from->red(),
1187 yg = (float) from->green(), 1187 yg = (float) from->green(),
@@ -1261,7 +1261,7 @@ void BImage::vgradient(void) {
1261} 1261}
1262 1262
1263 1263
1264void BImage::pgradient(void) { 1264void BImage::pgradient() {
1265 // pyramid gradient - based on original dgradient, written by 1265 // pyramid gradient - based on original dgradient, written by
1266 // Mosfet (mosfet@kde.org) 1266 // Mosfet (mosfet@kde.org)
1267 // adapted from kde sources for Blackbox by Brad Hughes 1267 // adapted from kde sources for Blackbox by Brad Hughes
@@ -1378,7 +1378,7 @@ void BImage::pgradient(void) {
1378} 1378}
1379 1379
1380 1380
1381void BImage::rgradient(void) { 1381void BImage::rgradient() {
1382 // rectangle gradient - based on original dgradient, written by 1382 // rectangle gradient - based on original dgradient, written by
1383 // Mosfet (mosfet@kde.org) 1383 // Mosfet (mosfet@kde.org)
1384 // adapted from kde sources for Blackbox by Brad Hughes 1384 // adapted from kde sources for Blackbox by Brad Hughes
@@ -1494,7 +1494,7 @@ void BImage::rgradient(void) {
1494} 1494}
1495 1495
1496 1496
1497void BImage::egradient(void) { 1497void BImage::egradient() {
1498 // elliptic gradient - based on original dgradient, written by 1498 // elliptic gradient - based on original dgradient, written by
1499 // Mosfet (mosfet@kde.org) 1499 // Mosfet (mosfet@kde.org)
1500 // adapted from kde sources for Blackbox by Brad Hughes 1500 // adapted from kde sources for Blackbox by Brad Hughes
@@ -1621,7 +1621,7 @@ void BImage::egradient(void) {
1621} 1621}
1622 1622
1623 1623
1624void BImage::pcgradient(void) { 1624void BImage::pcgradient() {
1625 // pipe cross gradient - based on original dgradient, written by 1625 // pipe cross gradient - based on original dgradient, written by
1626 // Mosfet (mosfet@kde.org) 1626 // Mosfet (mosfet@kde.org)
1627 // adapted from kde sources for Blackbox by Brad Hughes 1627 // adapted from kde sources for Blackbox by Brad Hughes
@@ -1739,7 +1739,7 @@ void BImage::pcgradient(void) {
1739} 1739}
1740 1740
1741 1741
1742void BImage::cdgradient(void) { 1742void BImage::cdgradient() {
1743 // cross diagonal gradient - based on original dgradient, written by 1743 // cross diagonal gradient - based on original dgradient, written by
1744 // Mosfet (mosfet@kde.org) 1744 // Mosfet (mosfet@kde.org)
1745 // adapted from kde sources for Blackbox by Brad Hughes 1745 // adapted from kde sources for Blackbox by Brad Hughes
@@ -2169,7 +2169,7 @@ BImageControl::BImageControl(BaseDisplay *dpy, ScreenInfo *scrn, bool _dither,
2169} 2169}
2170 2170
2171 2171
2172BImageControl::~BImageControl(void) { 2172BImageControl::~BImageControl() {
2173 if (sqrt_table) { 2173 if (sqrt_table) {
2174 delete [] sqrt_table; 2174 delete [] sqrt_table;
2175 } 2175 }
@@ -2240,6 +2240,7 @@ Pixmap BImageControl::searchCache(unsigned int width, unsigned int height,
2240 2240
2241Pixmap BImageControl::renderImage(unsigned int width, unsigned int height, 2241Pixmap BImageControl::renderImage(unsigned int width, unsigned int height,
2242 const FbTk::Texture *texture) { 2242 const FbTk::Texture *texture) {
2243
2243 if (texture->type() & FbTk::Texture::PARENTRELATIVE) 2244 if (texture->type() & FbTk::Texture::PARENTRELATIVE)
2244 return ParentRelative; 2245 return ParentRelative;
2245 2246
@@ -2409,76 +2410,6 @@ unsigned long BImageControl::getSqrt(unsigned int x) {
2409 return (*(sqrt_table + x)); 2410 return (*(sqrt_table + x));
2410} 2411}
2411 2412
2412
2413void BImageControl::parseTexture(FbTk::Texture *texture, const char *texture_string) {
2414 if ((! texture) || (! texture_string))
2415 return;
2416
2417 int t_len = strlen(texture_string) + 1;
2418 char *ts = new char[t_len];
2419 if (! ts) return;
2420
2421 // convert to lower case
2422 for (int byte_pos = 0; byte_pos < t_len; byte_pos++)
2423 *(ts + byte_pos) = tolower(*(texture_string + byte_pos));
2424
2425 using namespace FbTk;
2426
2427 if (strstr(ts, "parentrelative")) {
2428 texture->setType(Texture::PARENTRELATIVE);
2429 } else {
2430 texture->setType(Texture::NONE);
2431
2432 if (strstr(ts, "solid"))
2433 texture->addType(Texture::SOLID);
2434 else if (strstr(ts, "gradient")) {
2435 texture->addType(Texture::GRADIENT);
2436 if (strstr(ts, "crossdiagonal"))
2437 texture->addType(Texture::CROSSDIAGONAL);
2438 else if (strstr(ts, "rectangle"))
2439 texture->addType(Texture::RECTANGLE);
2440 else if (strstr(ts, "pyramid"))
2441 texture->addType(Texture::PYRAMID);
2442 else if (strstr(ts, "pipecross"))
2443 texture->addType(Texture::PIPECROSS);
2444 else if (strstr(ts, "elliptic"))
2445 texture->addType(Texture::ELLIPTIC);
2446 else if (strstr(ts, "diagonal"))
2447 texture->addType(Texture::DIAGONAL);
2448 else if (strstr(ts, "horizontal"))
2449 texture->addType(Texture::HORIZONTAL);
2450 else if (strstr(ts, "vertical"))
2451 texture->addType(Texture::VERTICAL);
2452 else
2453 texture->addType(Texture::DIAGONAL);
2454 } else
2455 texture->addType(Texture::SOLID);
2456
2457 if (strstr(ts, "raised"))
2458 texture->addType(Texture::RAISED);
2459 else if (strstr(ts, "sunken"))
2460 texture->addType(Texture::SUNKEN);
2461 else if (strstr(ts, "flat"))
2462 texture->addType(Texture::FLAT);
2463 else
2464 texture->addType(Texture::RAISED);
2465
2466 if (! (texture->type() & Texture::FLAT))
2467 if (strstr(ts, "bevel2"))
2468 texture->addType(Texture::BEVEL2);
2469 else
2470 texture->addType(Texture::BEVEL1);
2471
2472#ifdef INTERLACE
2473 if (strstr(ts, "interlaced"))
2474 texture->addType(Texture::INTERLACED);
2475#endif // INTERLACE
2476 }
2477
2478 delete [] ts;
2479}
2480
2481
2482void BImageControl::timeout() { 2413void BImageControl::timeout() {
2483 CacheList::iterator it = cache.begin(); 2414 CacheList::iterator it = cache.begin();
2484 CacheList::iterator it_end = cache.end(); 2415 CacheList::iterator it_end = cache.end();
diff --git a/src/Image.hh b/src/Image.hh
index 8ae8505..c352028 100644
--- a/src/Image.hh
+++ b/src/Image.hh
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Image.hh,v 1.13 2002/09/14 15:03:32 fluxgen Exp $ 25// $Id: Image.hh,v 1.14 2002/09/15 09:41:24 fluxgen Exp $
26 26
27#ifndef IMAGE_HH 27#ifndef IMAGE_HH
28#define IMAGE_HH 28#define IMAGE_HH
@@ -140,7 +140,6 @@ public:
140 unsigned int **, unsigned int **); 140 unsigned int **, unsigned int **);
141 void setDither(bool d) { dither = d; } 141 void setDither(bool d) { dither = d; }
142 void setColorsPerChannel(int cpc); 142 void setColorsPerChannel(int cpc);
143 void parseTexture(FbTk::Texture *ret_texture, const char *sval);
144 143
145 virtual void timeout(); 144 virtual void timeout();
146 145