Mon Feb 20 21:49:52 MSK 2006 george@arnor.homeunix.org * Makefile XOrg7 adaptation Mon Feb 20 20:17:45 MSK 2006 george@arnor.homeunix.org * Eliminating GX* and zero linewidth Tue Dec 20 13:54:19 MSK 2005 george@arnor.homeunix.org * -I/usr/X11R6/include/X11 Tue Dec 20 12:57:10 MSK 2005 george@arnor.homeunix.org * Remove unused libraries Tue Dec 20 12:04:31 MSK 2005 george@arnor.homeunix.org * Eliminate fake image creations Tue Dec 20 11:52:37 MSK 2005 george@arnor.homeunix.org * Unhack BSD sspecifics Tue Dec 20 11:37:56 MSK 2005 george@arnor.homeunix.org * patch-xmrm* Tue Dec 20 11:37:18 MSK 2005 george@arnor.homeunix.org * patch-io.cc Tue Dec 20 11:37:06 MSK 2005 george@arnor.homeunix.org * patch-const.h Tue Dec 20 11:36:54 MSK 2005 george@arnor.homeunix.org * patch-af Tue Dec 20 11:36:45 MSK 2005 george@arnor.homeunix.org * patch-ad Tue Dec 20 11:36:22 MSK 2005 george@arnor.homeunix.org * patch-Makefile --- old-xmrm/morphvec.cc 2006-02-20 21:51:49 +0300 +++ new-xmrm/morphvec.cc 2006-02-20 21:51:49 +0300 @@ -17,7 +17,7 @@ extern Display *disp; -extern max_x,max_y; +extern int max_x,max_y; extern ControlClass control; extern VisualInfoClass vis; extern WindowClass *s_win, *d_win; @@ -114,33 +114,33 @@ /* Method InitImage: */ int MyImageClass::InitImage(int x,int y) { - if (pic_scal==NULL) - { - if ( (pic_scal = (char *)malloc(x*y*(vis.p_fetch/8))) == NULL ) + if (x==0) image=NULL; + else { /* Create image: */ + if (pic_scal==NULL) { - fl_show_alert("WARNING:","Not enough memory available !","" ,1); - return -1; - } - } - else - { - if ( (pic_scal = (char *)realloc(pic_scal,x*y*(vis.p_fetch/8))) == NULL ) + if ( (pic_scal = (char *)malloc(x*y*(vis.p_fetch/8))) == NULL ) + { + fl_show_alert("WARNING:","Not enough memory available !","" ,1); + return -1; + } + } + else { - fl_show_alert("WARNING:","Not enough memory available !","" ,1); - return -1; - } - } + if ( (pic_scal = (char *)realloc(pic_scal,x*y*(vis.p_fetch/8))) == NULL ) + { + fl_show_alert("WARNING:","Not enough memory available !","" ,1); + return -1; + } + } - if (x==0) image=NULL; - else - /* Create image: */ - if ( (image = XCreateImage(disp,vis.xvis_info->visual,vis.depth,ZPixmap,0,pic_scal, - x,y,32,x*(vis.p_fetch/8))) == NULL) - { - fl_show_alert("ERROR:","Cannot create image !","",1); - return -2; + if ( (image = XCreateImage(disp,vis.xvis_info->visual,vis.depth,ZPixmap,0,pic_scal, + x,y,32,x*(vis.p_fetch/8))) == NULL) + { + fl_show_alert("ERROR:","Cannot create image !","",1); + return -2; + } } - + image_x=x; image_y=y; // printf ("Mem adress: %d\n",(void *)pic_scal); @@ -421,7 +421,7 @@ point[1].x = xe + (int) (ARROW_V*-vx-ARROW_N*nx); point[1].y = ye + (int) (ARROW_V*-vy-ARROW_N*ny); point[2].x = xe; point[2].y = ye; - fl_linewidth(0); fl_drawmode(mode); fl_linestyle(LineSolid); + fl_linewidth(1); fl_drawmode(mode); fl_linestyle(LineSolid); fl_line(xa,ya,xe,ye,FL_BLACK); fl_linestyle(LineOnOffDash); fl_line(xa,ya,xe,ye,col); @@ -433,6 +433,7 @@ void MorphVecClass::DrawVectorScal(FL_OBJECT *obj, int item, int mode, FL_COLOR col) { double sc_x,sc_y; + sc_x = (double) obj->w / max_x; sc_y = (double) obj->h / max_y; if (item > nr_vec) @@ -444,7 +445,7 @@ DrawVector(int((sc_x*xa[item])+obj->x),int((sc_y*ya[item])+obj->y), int((sc_x*xe[item])+obj->x),int((sc_y*ye[item])+obj->y),mode,col); - fl_linestyle(LineSolid); fl_linewidth(1); fl_drawmode(GXcopy); + fl_linestyle(LineSolid); fl_linewidth(1); fl_drawmode(FL_COPY); } /* Method MapVectors: */ @@ -453,7 +454,7 @@ int i; for (i=1; i<=nr_vec; i++) - if (i != exept1 && i!= exept2) DrawVectorScal(obj,i,GXcopy,FL_WHITE); + if (i != exept1 && i!= exept2) DrawVectorScal(obj,i,FL_COPY,FL_WHITE); } /* Method GetMaxVec: */ @@ -559,13 +560,13 @@ switch(control.flag_set_vector) { case VEC_DRAWSTART: - vec->DrawVector(xa,ya,xo,yo,GXxor,FL_WHITE); // Draw first xor-vector + vec->DrawVector(xa,ya,xo,yo,FL_XOR,FL_WHITE); // Draw first xor-vector control.flag_set_vector = VEC_SET; control.edit_change_perm=0; // edit-mode-settings break; case VEC_DRAWEND: // mouse button has been released, vector is defined now, - vec->DrawVector(xa,ya,xo,yo,GXxor,FL_WHITE); // clear xor-vector - vec->DrawVectorScal(obj, vec->GetMaxVec(),GXcopy,FL_WHITE); // and draw the vector new & fine + vec->DrawVector(xa,ya,xo,yo,FL_XOR,FL_WHITE); // clear xor-vector + vec->DrawVectorScal(obj, vec->GetMaxVec(),FL_COPY,FL_WHITE); // and draw the vector new & fine control.flag_set_vector = VEC_NOSET; // edit-mode-settings control.edit_change_perm=1; allow_setting = src_dst || (s_vec->GetMaxVec()>d_vec->GetMaxVec()); // check what cursor to be set @@ -575,14 +576,14 @@ break; case VEC_CLEAR: - vec->DrawVector(xa,ya,xo,yo,GXxor,FL_WHITE); // Clear xor-vector + vec->DrawVector(xa,ya,xo,yo,FL_XOR,FL_WHITE); // Clear xor-vector fl_set_cursor(win,XC_arrow); // change cursor from X to arrow control.flag_set_vector = VEC_NOSET; control.edit_change_perm=1; // edit-mode-settings break; case VEC_SET: - vec->DrawVector(xa,ya,xo,yo,GXxor,FL_WHITE); // Clear old xor-vector - vec->DrawVector(xa,ya,x,y,GXxor,FL_WHITE); // and draw new xor-vector + vec->DrawVector(xa,ya,xo,yo,FL_XOR,FL_WHITE); // Clear old xor-vector + vec->DrawVector(xa,ya,x,y,FL_XOR,FL_WHITE); // and draw new xor-vector break; case VEC_NOSET: @@ -591,14 +592,14 @@ if (control.co_vector == CO_SHOW) { if (s_vec->GetMaxVec() > d_vec->GetMaxVec()) - vec->DrawVectorScal(obj,d_vec->GetMaxVec()+1,GXcopy,FL_GREEN); // Draw new corresp. source vec + vec->DrawVectorScal(obj,d_vec->GetMaxVec()+1,FL_COPY,FL_GREEN); // Draw new corresp. source vec if (d_vec->GetMaxVec()>0) - vec->DrawVectorScal(obj,d_vec->GetMaxVec(),GXcopy,FL_WHITE); // Clear old corresp. source vec + vec->DrawVectorScal(obj,d_vec->GetMaxVec(),FL_COPY,FL_WHITE); // Clear old corresp. source vec } else if (control.co_vector == CO_HIDE) { if (s_vec->GetMaxVec() > d_vec->GetMaxVec()) - vec->DrawVectorScal(obj,d_vec->GetMaxVec()+1,GXcopy,FL_WHITE); // Hide new corresponding source vec + vec->DrawVectorScal(obj,d_vec->GetMaxVec()+1,FL_COPY,FL_WHITE); // Hide new corresponding source vec } } break; @@ -617,28 +618,28 @@ vec->MapVectors(obj,0,0); if (vec_i <= vec->GetMaxVec()) { - vec->DrawVectorScal(obj,vec_i,GXcopy,color); + vec->DrawVectorScal(obj,vec_i,FL_COPY,color); if (control.edit_mode == EDIT_REPLACE) { // end of vector: test if connected - if (what_connect==1) vec->DrawVectorScal(obj,vec_i-1, GXcopy,color); - if (what_connect==2) vec->DrawVectorScal(obj,vec_i+1, GXcopy,color); + if (what_connect==1) vec->DrawVectorScal(obj,vec_i-1, FL_COPY,color); + if (what_connect==2) vec->DrawVectorScal(obj,vec_i+1, FL_COPY,color); } } break; case VEC_NOSEARCH: // mouse away from vec -> draw vec WHITE - //if (vec_i <= vec->GetMaxVec()) vec->DrawVectorScal(obj,vec_i,GXcopy,FL_WHITE); + //if (vec_i <= vec->GetMaxVec()) vec->DrawVectorScal(obj,vec_i,FL_COPY,FL_WHITE); color=FL_WHITE; if (vec_i <= vec->GetMaxVec()) { - vec->DrawVectorScal(obj,vec_i,GXcopy,color); + vec->DrawVectorScal(obj,vec_i,FL_COPY,color); if (control.edit_mode == EDIT_REPLACE) { // end of vector: test if connected - if (what_connect==1) vec->DrawVectorScal(obj,vec_i-1, GXcopy,color); - if (what_connect==2) vec->DrawVectorScal(obj,vec_i+1, GXcopy,color); + if (what_connect==1) vec->DrawVectorScal(obj,vec_i-1, FL_COPY,color); + if (what_connect==2) vec->DrawVectorScal(obj,vec_i+1, FL_COPY,color); } } control.flag_set_vector = VEC_NOSET; @@ -649,29 +650,29 @@ if (what_connect==1) vec->MapVectors(obj,vec_i,vec_i-1); if (what_connect==2) vec->MapVectors(obj,vec_i,vec_i+1); - vec->DrawVector(xa,ya,xo,yo,GXxor,FL_WHITE); // Draw first xor-vector + vec->DrawVector(xa,ya,xo,yo,FL_XOR,FL_WHITE); // Draw first xor-vector // connected ?: if (what_connect!=0) - vec->DrawVector(xa2,ya2,xo2,yo2,GXxor,FL_WHITE); + vec->DrawVector(xa2,ya2,xo2,yo2,FL_XOR,FL_WHITE); control.flag_set_vector = VEC_SET; fl_set_cursor_color(XC_arrow,color,FL_BLACK); break; case VEC_DRAWEND: // mouse button has been released, vector is defined now, - vec->DrawVector(xa,ya,xo,yo,GXxor,FL_WHITE); // clear xor-vector - vec->DrawVectorScal(obj, vec_i,GXcopy,FL_WHITE); // and draw the vector new & fine + vec->DrawVector(xa,ya,xo,yo,FL_XOR,FL_WHITE); // clear xor-vector + vec->DrawVectorScal(obj, vec_i,FL_COPY,FL_WHITE); // and draw the vector new & fine if (what_connect != 0) { - vec->DrawVector(xa2,ya2,xo2,yo2,GXxor,FL_WHITE); + vec->DrawVector(xa2,ya2,xo2,yo2,FL_XOR,FL_WHITE); if (what_connect==1) - vec->DrawVectorScal(obj,vec_i-1,GXcopy,FL_WHITE); + vec->DrawVectorScal(obj,vec_i-1,FL_COPY,FL_WHITE); else - vec->DrawVectorScal(obj,vec_i+1,GXcopy,FL_WHITE); + vec->DrawVectorScal(obj,vec_i+1,FL_COPY,FL_WHITE); what_connect=0; } @@ -687,23 +688,23 @@ case VEC_SET: if (what_point == 1) // What side of vec can be moved ? { - vec->DrawVector(xa,ya,xo,yo,GXxor,FL_WHITE); // Clear old xor-vector - vec->DrawVector(x,y,xo,yo,GXxor,FL_WHITE); // and draw new xor-vector + vec->DrawVector(xa,ya,xo,yo,FL_XOR,FL_WHITE); // Clear old xor-vector + vec->DrawVector(x,y,xo,yo,FL_XOR,FL_WHITE); // and draw new xor-vector if (what_connect!=0) { - vec->DrawVector(xa2,ya2,xo2,yo2,GXxor,FL_WHITE); // Clear old xor-vector - vec->DrawVector(xa2,ya2,x,y,GXxor,FL_WHITE); // and draw new xor-vector + vec->DrawVector(xa2,ya2,xo2,yo2,FL_XOR,FL_WHITE); // Clear old xor-vector + vec->DrawVector(xa2,ya2,x,y,FL_XOR,FL_WHITE); // and draw new xor-vector } } else { - vec->DrawVector(xa,ya,xo,yo,GXxor,FL_WHITE); // Clear old xor-vector - vec->DrawVector(xa,ya,x,y,GXxor,FL_WHITE); // and draw new xor-vector + vec->DrawVector(xa,ya,xo,yo,FL_XOR,FL_WHITE); // Clear old xor-vector + vec->DrawVector(xa,ya,x,y,FL_XOR,FL_WHITE); // and draw new xor-vector if (what_connect!=0) { - vec->DrawVector(xa2,ya2,xo2,yo2,GXxor,FL_WHITE); // Clear old xor-vector - vec->DrawVector(x,y,xo2,yo2,GXxor,FL_WHITE); // and draw new xor-vector + vec->DrawVector(xa2,ya2,xo2,yo2,FL_XOR,FL_WHITE); // Clear old xor-vector + vec->DrawVector(x,y,xo2,yo2,FL_XOR,FL_WHITE); // and draw new xor-vector } } break; @@ -743,7 +744,7 @@ } fl_linestyle(LineSolid); fl_linewidth(1); - fl_drawmode(GXcopy); + fl_drawmode(FL_COPY); break;