diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index a8dcf60bc1f17b3b9233a647e4e654909a79484c..7f00cdabd1e5264cf638531922e167f3e9676095 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.7 2001-01-10 08:41:04 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.8 2001-01-10 08:50:29 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -785,7 +785,7 @@ void view_remove_cb(CALLBACK_ARGS){
   FreeView(v);
 
   if(!List_Suppress(Post_ViewList, v, fcmpPostViewNum))
-    Msg(ERROR, "Could Not Suppress View from List");
+    Msg(GERROR, "Could Not Suppress View from List");
 
   CTX.post.nb_views = List_Nbr(Post_ViewList);
 
diff --git a/Fltk/Colorbar.cpp b/Fltk/Colorbar.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c994f8b64989a49919697df1a15d47cb0cd0b889
--- /dev/null
+++ b/Fltk/Colorbar.cpp
@@ -0,0 +1,589 @@
+// $Id: Colorbar.cpp,v 1.1 2001-01-10 08:50:29 geuzaine Exp $
+
+#include "Gmsh.h"
+#include "GmshUI.h"
+#include "GUI.h"
+#include "ColorTable.h"
+#include "Colorbar.h"
+
+extern XContext_T  XCTX ;
+extern Widgets_T   WID;
+
+#define FONT_HEIGHT 10 ;
+
+/* RGB/HSV transformation */
+
+#define RETURN_HSV(h,s,v) {*H=h; *S=s; *V=v; return;} 
+#define RETURN_RGB(r,g,b) {*R=r; *G=g; *B=b; return;} 
+#define UNDEFINED 0
+#define EPS       1.e-10
+
+/* rgb on [0, 1], sv returned on [0, 1] and h on [0, 6]. 
+   Exception: h is returned UNDEFINED if S==0. */
+                                                                             
+void RGB_to_HSV(double  R, double  G, double  B,
+                double *H, double *S, double *V) { 
+  double v, x, f;   
+  int i; 
+   
+  x = DMIN(DMIN(R, G), B);   
+  v = DMAX(DMAX(R, G), B);   
+  if(v == x) RETURN_HSV(UNDEFINED, 0, v);   
+  f = (R == x) ? G - B : ((G == x) ? B - R : R - G);   
+  i = (R == x) ? 3 : ((G == x) ? 5 : 1);   
+  RETURN_HSV(i - f /(v - x), (v - x)/v, v);   
+} 
+
+/* h given on [0, 6] or UNDEFINED. s and v given on [0, 1].      
+   rgb each returned on [0, 1]. */
+
+void HSV_to_RGB(double  H, double  S, double  V,
+                double *R, double *G, double *B) {     
+  double m, n, f;   
+  int i; 
+      
+  if (H == UNDEFINED) RETURN_RGB(V, V, V);
+  i = (int)floor(H);
+  f = H - i;   
+  if ( !(i&1) ) f = 1 - f; /* if i is even */
+  m = V * (1 - S);   
+  n = V * (1 - S * f); 
+  
+  switch (i) {         
+  case 6:         
+  case 0: RETURN_RGB(V, n, m);        
+  case 1: RETURN_RGB(n, V, m);         
+  case 2: RETURN_RGB(m, V, n);        
+  case 3: RETURN_RGB(m, n, V);                
+  case 4: RETURN_RGB(n, m, V);         
+  case 5: RETURN_RGB(V, m, n);     
+  } 
+} 
+
+
+/* Convert window X coordinate to color table index */
+
+static int x_to_index(ColorBar *cb, int x){
+  int index;
+  index = (int) (x * (float) cb->ct->size / (float) cb->width );
+  if (index<0) 
+    index = 0;
+  else if (index>=cb->ct->size)
+    index = cb->ct->size-1;
+  return index;
+}
+
+/* Convert color table index to window X coordinate */
+
+static int index_to_x(ColorBar *cb, int index){
+  int x;
+  x = (int) (index * (float) cb->width / (float)(cb->ct->size-1) );
+  if (x>=cb->width)
+    x = cb->width - 1;
+  return x;
+}
+
+/* Convert a color intensity to a window Y coordinate */
+
+static int intensity_to_y(ColorBar *cb, int intensity){
+  int y;
+  y = (int) (cb->wedge_y - intensity * (float) cb->wedge_y / 255.0 );
+  if (y<0)
+    y = 0;
+  else if (y>=cb->wedge_y)
+    y = cb->wedge_y - 1;
+  return y;
+}
+
+/* Convert a window Y coordinate to a color intensity */
+
+static int y_to_intensity(ColorBar *cb, int y){
+  int intensity;
+  intensity = (int) ((cb->wedge_y - y ) * 255.0 / (float) cb->wedge_y );
+  if (intensity<0)
+    intensity = 0;
+  else if (intensity>255)
+    intensity = 255;
+  return intensity;
+}
+
+
+/* Redraw part of a Color Widget (between a and b) */
+
+#define HELP_LINES 9
+
+static void redraw_range(ColorBar *cb, int a, int b){
+   int i;
+   int x,y, px,py;
+   int x1, y1, x2, y2;
+   int intensity;
+   double H,S,V;
+   char rgb_str[] = "RGB", hsv_str[] = "HSV" ;
+   char help_str[HELP_LINES][100] = {
+     "h           show this message",
+     "1 -> 6      choose predefined colormap",
+     "m           switch color mode",
+     "c/p/r       copy/paste/reset",
+     "mouse       draw color or alpha",
+     "left/right  move or rotate",
+     "up/down     color or alpha curvature",
+     "i           invert x or y range",
+     "b           increase or decrease gamma"
+   };
+
+   if (a<0)  a = 0;
+   if (b>=cb->ct->size)  b = cb->ct->size-1;
+
+   /* calc region to update */
+   x1 = index_to_x( cb, a );
+   x2 = index_to_x( cb, b);
+
+   y1 = intensity_to_y( cb, 255 );
+   y2 = intensity_to_y( cb, 0 ); 
+
+   /* erase region */
+   fl_color(Fl_BLACK);
+   fl_rectf(x1,y1, x2-x1+1, y2-y1+1);
+
+   /* redraw region of entries in interval [a,b] */
+   if (a>0) a--;
+   if (b<cb->ct->size-1)  b++;
+
+   /* draw red or hue levels */
+   for (i=a;i<=b;i++) {
+      x = index_to_x( cb, i );
+
+      if(cb->ct->ipar[COLORTABLE_MODE]==COLORTABLE_RGB){
+        intensity = UNPACK_RED(cb->ct->table[i]);
+      }
+      else if(cb->ct->ipar[COLORTABLE_MODE]==COLORTABLE_HSV){
+        RGB_to_HSV(UNPACK_RED  (cb->ct->table[i])/255., 
+                   UNPACK_GREEN(cb->ct->table[i])/255.,
+                   UNPACK_BLUE (cb->ct->table[i])/255.,
+                   &H,&S,&V);
+        intensity = (int) (H/6.*255.+EPS);
+      }
+
+      y = intensity_to_y( cb, intensity );
+      if (i!=a){
+	fl_color(Fl_RED);
+	fl_line(px, py, x, y);
+      }
+      px = x;  py = y;
+   }
+
+   /* draw green or saturation levels */
+   for (i=a;i<=b;i++) {
+      x = index_to_x( cb, i );
+
+      if(cb->ct->ipar[COLORTABLE_MODE]==COLORTABLE_RGB){
+        intensity = UNPACK_GREEN(cb->ct->table[i]);
+      }
+      else if(cb->ct->ipar[COLORTABLE_MODE]==COLORTABLE_HSV){
+        RGB_to_HSV(UNPACK_RED  (cb->ct->table[i])/255., 
+                   UNPACK_GREEN(cb->ct->table[i])/255.,
+                   UNPACK_BLUE (cb->ct->table[i])/255.,
+                   &H,&S,&V);
+        intensity = (int) (S*255.);
+      }
+
+      y = intensity_to_y(cb, intensity);
+      if (i!=a){
+	fl_color(Fl_GREEN);
+	fl_line(px,py, x,y);
+      }
+      px = x;  py = y;
+   }
+
+   /* draw blue or value levels */
+   for (i=a;i<=b;i++) {
+      x = index_to_x( cb, i );
+
+      if(cb->ct->ipar[COLORTABLE_MODE]==COLORTABLE_RGB){
+        intensity = UNPACK_BLUE(cb->ct->table[i]);
+      }
+      else if(cb->ct->ipar[COLORTABLE_MODE]==COLORTABLE_HSV){
+        RGB_to_HSV(UNPACK_RED  (cb->ct->table[i])/255., 
+                   UNPACK_GREEN(cb->ct->table[i])/255.,
+                   UNPACK_BLUE (cb->ct->table[i])/255.,
+                   &H,&S,&V);
+        intensity = (int) (V*255.);
+      }
+
+      y = intensity_to_y( cb, intensity );
+      if (i!=a){
+	fl_color(FL_BLUE);
+	fl_line(px,py, x,y);
+      }
+      px = x;  py = y;
+   }
+
+   /* draw alpha levels */   
+   for (i=a;i<=b;i++) {
+     x = index_to_x( cb, i );
+     y = intensity_to_y( cb, UNPACK_ALPHA(cb->ct->table[i]) );
+     if (i!=a){
+       fl_color(FL_WHITE);
+       fl_line(px,py, x,y);
+     }
+     px = x;  py = y;
+   }
+
+   /* draw the color bar */
+   for (x=x1;x<=x2;x++) {
+      int r, g, b;
+      unsigned int color;
+      i = x_to_index( cb, x );
+      color = cb->ct->table[i];
+      r = UNPACK_RED( color );
+      g = UNPACK_GREEN( color );
+      b = UNPACK_BLUE( color );
+      fl_color(r,g,b);
+      fl_line(x, cb->wedge_y, x, cb->wedge_y + WEDGE_HEIGHT-1); 
+   }
+
+   /* print colortable mode and help */
+   fl_font(FL_HELVETICA, FONT_HEIGHT);
+   fl_color(FL_WHITE);
+   if (cb->helpflag) {
+     for (i=0;i<HELP_LINES;i++) {
+       fl_draw(help_str[i], 10,10+(i+1)*FONT_HEIGHT);
+     }
+   }
+   else{
+     if(cb->ct->ipar[COLORTABLE_MODE]==COLORTABLE_RGB)
+       fl_draw(rgb_str, 10, 10+FONT_HEIGHT);
+     else if(cb->ct->ipar[COLORTABLE_MODE]==COLORTABLE_HSV)
+       fl_draw(hsv_str, 10, 10+FONT_HEIGHT);
+   }
+}
+
+
+/* Redraw the marker and the text */
+
+static void redraw_marker(ColorBar *cb){
+   int x, y0, y1;
+   char str[50];
+   int dir,ascent, descent;
+   int xpos;
+   float val;
+
+   y0 = cb->marker_y;
+   y1 = cb->height - 1;
+   
+   fl_color(FL_BLACK);
+   fl_rectf(0, y0, cb->width, y1-y0+1);
+
+   /* draw marker below color wedge */
+   x = index_to_x(cb, cb->markerpos);
+   fl_color(FL_WHITE);   
+   fl_line(x, cb->marker_y, x, cb->marker_y+MARKER_HEIGHT);
+   fl_line(x, cb->marker_y, x-3, cb->marker_y+6);
+   fl_line(x, cb->marker_y, x+3, cb->marker_y+6);
+
+   /* draw min value */
+   sprintf(str, "%.2g", cb->minval);
+   fl_draw(str, 2, cb->label_y);
+
+   /* draw marker value */
+   val = cb->minval + (cb->maxval-cb->minval)
+                  * ( (float) cb->markerpos / (float) (cb->ct->size-1));
+   sprintf(str, "(%.2g)", val);
+   int width = 30 ;
+   xpos = (cb->width - width) / 2;
+   fl_draw(str, xpos, cb->label_y);
+
+   /* draw max value */
+   sprintf(str, "%.2g", cb->maxval);
+   width = 30 ;
+   xpos = cb->width - width - 2;
+   fl_draw(str, xpos, cb->label_y);
+
+}
+
+static void set_size(ColorBar *cb, int width, int height){
+   cb->width = width;
+   cb->height = height;
+   cb->label_y = cb->height - 5; 
+   cb->marker_y = cb->label_y + 1 - MARKER_HEIGHT - FONT_HEIGHT;
+   cb->wedge_y = cb->marker_y - WEDGE_HEIGHT;
+}
+
+
+
+
+/* creation, manipulation and callbacks functions */
+
+static ColorBar *TheCB=NULL ;
+
+void ColorBarCreate(int width, int height){
+  static int first=1 ;
+
+  if(!TheCB) TheCB = (ColorBar *) calloc(1, sizeof(ColorBar));
+  set_size(TheCB, width, height);
+  if(first){
+    TheCB->helpflag = 1;
+    first=0;
+  }
+}
+
+void ColorBarRedraw(void){
+  if(!TheCB) return;
+  redraw_range(TheCB, 0, TheCB->ct->size-1);
+  redraw_marker(TheCB);
+}
+
+void ColorBarChange(char *label, float min, float max, ColorTable *ct, int rgb){
+  strncpy(TheCB->label, label, LABEL_STR_L);
+  TheCB->ct     = ct;
+  TheCB->minval = min;
+  TheCB->maxval = max;
+  if (rgb) redraw_range(TheCB, 0, TheCB->ct->size-1);
+  redraw_marker(TheCB);
+}
+
+void ColorBarInput(){
+  static int      p1=0, p2=0, p3=0, p4=0; /* red, green, blue, alpha */
+  static int      pentry, move_marker;
+  int             i, modify, entry, compute;
+  char            keybuf[50];
+
+  event  = call_data->event;   
+  modify = 0;
+  compute = 0;
+
+  /* shortcut */
+  
+  if (event->type==KeyPress) {
+
+    switch(key){
+    case XK_1 : ColorTable_InitParam(1, TheCB->ct, 1, 1); compute=1; break;
+    case XK_2 : ColorTable_InitParam(2, TheCB->ct, 1, 1); compute=1; break;
+    case XK_3 : ColorTable_InitParam(3, TheCB->ct, 1, 1); compute=1; break;
+    case XK_4 : ColorTable_InitParam(4, TheCB->ct, 1, 1); compute=1; break;
+    case XK_5 : ColorTable_InitParam(5, TheCB->ct, 1, 1); compute=1; break;
+    case XK_6 : ColorTable_InitParam(6, TheCB->ct, 1, 1); compute=1; break;
+    case XK_7 : ColorTable_InitParam(7, TheCB->ct, 1, 1); compute=1; break;
+    case XK_8 : ColorTable_InitParam(8, TheCB->ct, 1, 1); compute=1; break;
+    case XK_9 : ColorTable_InitParam(9, TheCB->ct, 1, 1); compute=1; break;
+    case XK_0 : ColorTable_InitParam(0, TheCB->ct, 1, 1); compute=1; break;
+
+    case XK_c : case XK_C : ColorTable_Copy(TheCB->ct); break;
+    case XK_p : case XK_P : ColorTable_Paste(TheCB->ct); ColorBarRedraw(); break;
+    case XK_h : case XK_H : TheCB->helpflag = !TheCB->helpflag; ColorBarRedraw(); break;
+
+    case XK_r : 
+    case XK_R : 
+      ColorTable_InitParam(TheCB->ct->ipar[COLORTABLE_NUMBER], 
+                           TheCB->ct, 1, 1); 
+      compute=1; 
+      break;
+
+    case XK_m : 
+    case XK_M : 
+      if(TheCB->ct->ipar[COLORTABLE_MODE]==COLORTABLE_RGB)
+        TheCB->ct->ipar[COLORTABLE_MODE] = COLORTABLE_HSV;
+      else
+        TheCB->ct->ipar[COLORTABLE_MODE] = COLORTABLE_RGB;
+      ColorBarRedraw(); 
+      break;
+
+    case XK_i : 
+    case XK_I : 
+      if (event->xkey.state&ANY_MODIFIER)
+        TheCB->ct->ipar[COLORTABLE_INVERT] = !TheCB->ct->ipar[COLORTABLE_INVERT]; 
+      else
+        TheCB->ct->ipar[COLORTABLE_SWAP] = !TheCB->ct->ipar[COLORTABLE_SWAP];   
+      compute=1;
+      break;
+
+    case XK_b :
+    case XK_B :
+      if (event->xkey.state&ANY_MODIFIER) {
+        TheCB->ct->fpar[COLORTABLE_BETA] -= 0.05;
+        if(TheCB->ct->fpar[COLORTABLE_BETA]<-1.0) 
+          TheCB->ct->fpar[COLORTABLE_BETA] = -1.0;
+      }
+      else{
+        TheCB->ct->fpar[COLORTABLE_BETA] += 0.05;
+        if(TheCB->ct->fpar[COLORTABLE_BETA]>1.0) 
+          TheCB->ct->fpar[COLORTABLE_BETA] = 1.0;
+      }
+      compute = 1;
+      break;
+
+    case XK_Left  : 
+      if (event->xkey.state&ANY_MODIFIER) {
+        TheCB->ct->ipar[COLORTABLE_ROTATE] += 5;
+        if(TheCB->ct->ipar[COLORTABLE_ROTATE] > TheCB->ct->size-1) 
+          TheCB->ct->ipar[COLORTABLE_ROTATE] -= TheCB->ct->size-1;
+      }
+      else
+        TheCB->ct->fpar[COLORTABLE_BIAS] -= 0.05; 
+      compute = 1; 
+      break;
+
+    case XK_Right : 
+      if (event->xkey.state&ANY_MODIFIER) {
+        TheCB->ct->ipar[COLORTABLE_ROTATE] -= 5;
+        if(TheCB->ct->ipar[COLORTABLE_ROTATE]<-(TheCB->ct->size-1)) 
+          TheCB->ct->ipar[COLORTABLE_ROTATE] += TheCB->ct->size-1;
+      }
+      else{
+        TheCB->ct->fpar[COLORTABLE_BIAS] += 0.05; 
+      }
+      compute = 1;
+      break;
+
+    case XK_Up :
+      if (event->xkey.state&ANY_MODIFIER) {
+        TheCB->ct->fpar[COLORTABLE_ALPHAPOW] -= 0.05;
+        if (TheCB->ct->fpar[COLORTABLE_ALPHAPOW]<0.0)
+          TheCB->ct->fpar[COLORTABLE_ALPHAPOW] = 0.0;
+      }
+      else
+        TheCB->ct->fpar[COLORTABLE_CURVE] -= 0.05;
+      compute = 1; 
+      break;
+
+    case XK_Down :
+      if (event->xkey.state&ANY_MODIFIER)
+        TheCB->ct->fpar[COLORTABLE_ALPHAPOW] += 0.05;
+      else
+        TheCB->ct->fpar[COLORTABLE_CURVE] += 0.05;
+      compute = 1; 
+      break;
+
+    }
+
+    if(compute){
+      ColorTable_Recompute(TheCB->ct, 1, 1);
+      ColorBarRedraw();
+    }
+
+  }
+
+  /* button press */
+
+  else if (event->type==ButtonPress) {
+
+    if(TheCB->helpflag){
+      TheCB->helpflag = 0;
+      ColorBarRedraw();
+    }
+
+    if (event->xbutton.y<TheCB->wedge_y) {
+      /* change color function */
+      move_marker = 0;
+    }
+    else {
+      /* change marker position */
+      move_marker = 1;
+    }
+    /* determine which curve to modify */
+    if (event->xbutton.state&ANY_MODIFIER) {
+      p4 = 1;
+    }
+    else {
+      if (event->xbutton.button==Button1)  p1 = 1;
+      if (event->xbutton.button==Button2)  p2 = 1;
+      if (event->xbutton.button==Button3)  p3 = 1;
+    }
+    pentry = x_to_index(TheCB, event->xbutton.x);
+    modify = 1;
+  }
+
+  /* souris relachee */
+
+  else if (event->type==ButtonRelease) {
+    if (event->xbutton.button==Button1)  p1 = 0;
+    if (event->xbutton.button==Button2)  p2 = 0;
+    if (event->xbutton.button==Button3)  p3 = 0;
+    p4 = 0;
+  }
+
+  /* bouger */
+
+  else if (event->type==MotionNotify) {
+    /* Flush extra MotionNotify events */
+    while (QLength(XCTX.display)>0) {
+      XEvent next;
+      XPeekEvent(XCTX.display, &next);
+      if (next.type!=MotionNotify)
+        break;
+      XNextEvent(XCTX.display, event);
+    }
+    modify = 1;
+  }
+
+  /* Modify one or more of the color curves */
+  
+   if (modify && (p1 || p2 || p3 || p4)) {
+     /* calculate which entry in color table to change */
+     entry = x_to_index(TheCB, event->xbutton.x);
+     /* update */
+     if (move_marker) {
+       /* changing marker position */
+       TheCB->markerpos = entry;
+       redraw_marker(TheCB);
+     }
+     else {
+       /* changing color graph */
+       int a, b, value;
+       
+       value = y_to_intensity(TheCB, event->xbutton.y);
+
+       if (pentry<=entry) {
+         a = pentry;
+         b = entry;
+       }
+       else {
+         a = entry;
+         b = pentry;
+       }
+       
+       /* update entries from 'pentry' to 'entry' */
+       for (i=a; i<=b; i++) {
+         int red, green, blue, alpha;
+         double R,G,B,H,S,V;
+         
+         red   = UNPACK_RED  (TheCB->ct->table[i]);
+         green = UNPACK_GREEN(TheCB->ct->table[i]);
+         blue  = UNPACK_BLUE (TheCB->ct->table[i]);
+         alpha = UNPACK_ALPHA(TheCB->ct->table[i]);
+         
+         if(TheCB->ct->ipar[COLORTABLE_MODE]==COLORTABLE_RGB){
+           if (p1) { red = value; }
+           if (p2) { green = value; }
+           if (p3) { blue = value; }
+           if (p4) { alpha = value; }
+         }         
+         else if(TheCB->ct->ipar[COLORTABLE_MODE]==COLORTABLE_HSV){
+           RGB_to_HSV((double)red/255.,(double)green/255.,(double)blue/255.,
+                      &H,&S,&V);
+           if (p1) { H = 6.*(double)value/255.+EPS ; }
+           if (p2) { S = (double)value/255.; }
+           if (p3) { V = (double)value/255.; }
+           if (p4) { alpha = value; }         
+           HSV_to_RGB(H, S, V, &R,&G,&B);
+           red   = (int)(255 * R);
+           green = (int)(255 * G);
+           blue  = (int)(255 * B);
+         }
+         
+         TheCB->ct->table[i] = PACK_COLOR(red,green,blue,alpha);
+       } 
+       
+       /* redraw the color curves */
+       if (pentry<entry)
+         redraw_range(TheCB, pentry-1, entry+1);
+       else
+         redraw_range(TheCB, entry-1, pentry+1);
+       
+       pentry = entry;
+       
+     }
+   }
+   
+}
+
diff --git a/Fltk/Colorbar.h b/Fltk/Colorbar.h
new file mode 100644
index 0000000000000000000000000000000000000000..ac94bf00fdb96718842a322af206489e0ab99cfa
--- /dev/null
+++ b/Fltk/Colorbar.h
@@ -0,0 +1,29 @@
+#ifndef _CB_COLORBAR_H
+#define _CB_COLORBAR_H
+
+typedef struct _colorbar {
+  Window window;
+  int width, height;           /* size */
+  int wedge_y;                 /* top coord of color wedge */
+  int marker_y;                /* top coord of marker arrow */
+  int label_y;                 /* y coord of text labels */
+  char label[LABEL_STR_L];     /* text label at bottom */
+  float minval, maxval;        /* min and max data values */
+  int markerpos;               /* position of marker as index into table */
+  int helpflag;                /* if nonzero, print help messages */  
+  ColorTable *ct;              /* pointer to color table (allocated in Post_View) */
+} ColorBar;
+
+#define WEDGE_HEIGHT    12  /* epaisseur de la colorbar */
+#define MARKER_HEIGHT   10  /* hauteur de la fleche */
+
+void ColorBarCreate(Window win, int width, int height);
+void ColorBarShow(void);
+void ColorBarChange(char *label, float min, float max, ColorTable *ct, int rgb);
+void ColorBarCopy(ColorTable *ct);
+void ColorBarPaste(ColorTable *ct);
+void ColorBarResizeCb(Widget w, XtPointer client_data, 
+                      XmDrawingAreaCallbackStruct *call_data);
+void ColorBarRedraw(void);
+
+#endif
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 622fdc6f50f745c9df0bb9dc3ba63800bdcb92c2..fe6ceaf05b1ac9574373f8c68cf39e7801b1188f 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1029,6 +1029,7 @@ void GUI::create_mesh_options_window(){
 
 void GUI::create_post_options_window(){
   static int init_post_options_window = 0;
+  int i;
 
   if(!init_post_options_window){
     init_post_options_window = 1 ;
@@ -1106,6 +1107,7 @@ void GUI::create_post_options_window(){
 
 void GUI::create_statistics_window(){
   static int init_statistics_window = 0;
+  int i;
 
   if(!init_statistics_window){
     init_statistics_window = 1 ;
@@ -1393,22 +1395,6 @@ void GUI::create_view_window(int num){
 	}	
 	view_offsetraise->end();
       }
-      // Raise
-      { 
-	Fl_Group* o = new Fl_Group(WB, WB+BH, width-2*WB, height-3*WB-2*BH, "Raise");
-	o->labelsize(CTX.fontsize);
-        o->hide();
-	view_value[6] = new Fl_Value_Input(2*WB, 2*WB+ BH, IW, BH, "X raise");
-        view_value[7] = new Fl_Value_Input(2*WB, 2*WB+2*BH, IW, BH, "Y raise");
-	view_value[8] = new Fl_Value_Input(2*WB, 2*WB+3*BH, IW, BH, "Z raise");
-	for(i=6 ; i<9 ; i++){
-	  view_value[i]->labelsize(CTX.fontsize);
-	  view_value[i]->type(FL_HORIZONTAL);
-	  view_value[i]->align(FL_ALIGN_RIGHT);
-	}	
-	o->end();
-      }
->>>>>>> 1.14
       // Time step
       { 
 	view_timestep = new Fl_Group(WB, WB+BH, width-2*WB, height-3*WB-2*BH, "Time step");
@@ -1428,23 +1414,30 @@ void GUI::create_view_window(int num){
 	view_vector->labelsize(CTX.fontsize);
         view_vector->hide();
 
-	view_butt[10] = new Fl_Check_Button(2*WB, 2*WB+1*BH, IW, BH, "Line");
-        view_butt[11] = new Fl_Check_Button(2*WB, 2*WB+2*BH, IW, BH, "Arrow");
-	view_butt[12] = new Fl_Check_Button(width/2, 2*WB+1*BH, IW, BH, "Cone");
-        view_butt[13] = new Fl_Check_Button(width/2, 2*WB+2*BH, IW, BH, "Displacement");
-	for(i=10 ; i<14 ; i++){
-	  view_butt[i]->type(FL_TOGGLE_BUTTON);
-	  view_butt[i]->down_box(FL_DOWN_BOX);
-	  view_butt[i]->labelsize(CTX.fontsize);
-	  view_butt[i]->selection_color(FL_YELLOW);
+	{
+	  Fl_Group *o = new Fl_Group(2*WB, WB+BH, width-4*WB, 2*BH, 0);
+	  view_butt[10] = new Fl_Check_Button(2*WB, 2*WB+1*BH, IW, BH, "Line");
+	  view_butt[11] = new Fl_Check_Button(2*WB, 2*WB+2*BH, IW, BH, "Arrow");
+	  view_butt[12] = new Fl_Check_Button(width/2, 2*WB+1*BH, IW, BH, "Cone");
+	  view_butt[13] = new Fl_Check_Button(width/2, 2*WB+2*BH, IW, BH, "Displacement");
+	  for(i=10 ; i<14 ; i++){
+	    view_butt[i]->type(FL_RADIO_BUTTON);
+	    view_butt[i]->labelsize(CTX.fontsize);
+	    view_butt[i]->selection_color(FL_YELLOW);
+	  }
+	  o->end();
 	}
 
-	view_butt[14] = new Fl_Check_Button(2*WB, 2*WB+3*BH, IW, BH, "Cell centered");
-        view_butt[15] = new Fl_Check_Button(2*WB, 2*WB+4*BH, IW, BH, "Vertex centered");
-	for(i=14 ; i<16 ; i++){
-	  view_butt[i]->type(FL_RADIO_BUTTON);
-	  view_butt[i]->labelsize(CTX.fontsize);
-	  view_butt[i]->selection_color(FL_YELLOW);
+	{
+	  Fl_Group *o = new Fl_Group(2*WB, WB+3*BH, width-4*WB, 2*BH, 0);
+	  view_butt[14] = new Fl_Check_Button(2*WB, 2*WB+3*BH, IW, BH, "Cell centered");
+	  view_butt[15] = new Fl_Check_Button(2*WB, 2*WB+4*BH, IW, BH, "Vertex centered");
+	  for(i=14 ; i<16 ; i++){
+	    view_butt[i]->type(FL_RADIO_BUTTON);
+	    view_butt[i]->labelsize(CTX.fontsize);
+	    view_butt[i]->selection_color(FL_YELLOW);
+	  }
+	  o->end();
 	}
 
 	view_value[10] = new Fl_Value_Input(2*WB, 2*WB+ 5*BH, IW, BH, "Vector scale");
diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp
index b0f0b484d588de53c0b7046228a1f0e6cd3fca5f..00e85811cf7900f7eee67f527aba34f98f75f02c 100644
--- a/Fltk/Main.cpp
+++ b/Fltk/Main.cpp
@@ -1,4 +1,4 @@
-// $Id: Main.cpp,v 1.5 2001-01-09 14:24:06 geuzaine Exp $
+// $Id: Main.cpp,v 1.6 2001-01-10 08:50:29 geuzaine Exp $
 
 #include <signal.h>
 
@@ -69,7 +69,7 @@ int main(int argc, char *argv[]){
         if(List_Nbr(Post_ViewList))
           BGMWithView((Post_View*)List_Pointer(Post_ViewList, List_Nbr(Post_ViewList)-1));
         else
-          Msg(ERROR, "Invalid Background Mesh (no View)");
+          Msg(GERROR, "Invalid Background Mesh (no View)");
       }
       if(CTX.interactive > 0){
         mai3d(THEM, CTX.interactive);
@@ -124,7 +124,7 @@ int main(int argc, char *argv[]){
     if(List_Nbr(Post_ViewList))
       BGMWithView((Post_View*)List_Pointer(Post_ViewList, List_Nbr(Post_ViewList)-1));
     else
-      Msg(ERROR, "Invalid Background Mesh (no View)");
+      Msg(GERROR, "Invalid Background Mesh (no View)");
   }
 
   // Draw the actual scene
diff --git a/Fltk/Message.cpp b/Fltk/Message.cpp
index c052ffa7c19ac4e42ac1db6803a0c3284a1a76de..efcc3ccdf5b01fbf889b59c6fc8e345d30116059 100644
--- a/Fltk/Message.cpp
+++ b/Fltk/Message.cpp
@@ -1,4 +1,4 @@
-// $Id: Message.cpp,v 1.3 2001-01-09 19:40:56 remacle Exp $
+// $Id: Message.cpp,v 1.4 2001-01-10 08:50:29 geuzaine Exp $
 
 #include <signal.h>
 #ifndef WIN32
@@ -53,7 +53,7 @@ void Msg(int level, char *fmt, ...){
   va_list  args;
   int      abort=0;
 
-  if(level != FATAL && level != ERROR && level != PARSER_ERROR &&
+  if(level != FATAL && level != GERROR && level != PARSER_ERROR &&
      CTX.interactive && !CTX.verbosity) 
     return ;
 
diff --git a/Graphics/CreateFile.cpp b/Graphics/CreateFile.cpp
index 5108cc81d854aa9a388f09b4761d8369a798e9fa..a12c55c8399e94d6876beb9fd7ac0246b036d233 100644
--- a/Graphics/CreateFile.cpp
+++ b/Graphics/CreateFile.cpp
@@ -1,4 +1,4 @@
-// $Id: CreateFile.cpp,v 1.4 2001-01-09 19:40:56 remacle Exp $
+// $Id: CreateFile.cpp,v 1.5 2001-01-10 08:50:30 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -65,7 +65,7 @@ void CreateFile (char *name, int format) {
 	  if(!strcmp(ext,".jpeg")) CreateFile(name, FORMAT_JPEG);
 	  else if(!strcmp(ext,".gref")) CreateFile(name, FORMAT_GREF);
 	  else if(!strcmp(ext,".Gref")) CreateFile(name, FORMAT_GREF);
-	  else Msg(ERROR, "Unknown Extension \"%s\" for Automatic Format Detection", ext);
+	  else Msg(GERROR, "Unknown Extension \"%s\" for Automatic Format Detection", ext);
 	}
       }
     }
diff --git a/Graphics/Entity.cpp b/Graphics/Entity.cpp
index 98a4c9b4e25915bc9ace40467f52e8de66bbf917..731c4aa43b450c3dbbfff87aae8a7c181ad53768 100644
--- a/Graphics/Entity.cpp
+++ b/Graphics/Entity.cpp
@@ -1,4 +1,4 @@
-// $Id: Entity.cpp,v 1.4 2001-01-08 08:05:43 geuzaine Exp $
+// $Id: Entity.cpp,v 1.5 2001-01-10 08:50:30 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -247,7 +247,7 @@ void Draw_Vector (int Type, int Fill,
     break ;
     
   case DRAW_POST_ARROW_HEAD :
-    Msg(ERROR, "Arrow Head not done");
+    Msg(GERROR, "Arrow Head not done");
     break ;
 
   case DRAW_POST_PYRAMID :
@@ -378,7 +378,7 @@ void Draw_Vector (int Type, int Fill,
     break ;
 
   default :
-    Msg(ERROR, "Unknown Type of Vector to Draw");
+    Msg(GERROR, "Unknown Type of Vector to Draw");
     break;
   }
   
diff --git a/Graphics/Geom.cpp b/Graphics/Geom.cpp
index 8010aca0d98bb2d1c354dc11a8ed1faca890c23c..8ead7781d8186eb928ecc516896d627b90558217 100644
--- a/Graphics/Geom.cpp
+++ b/Graphics/Geom.cpp
@@ -1,4 +1,4 @@
-// $Id: Geom.cpp,v 1.9 2001-01-09 14:24:09 geuzaine Exp $
+// $Id: Geom.cpp,v 1.10 2001-01-10 08:50:30 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -339,7 +339,7 @@ void Plan_SurfPlane (void *data,void *dum){
           res[2] = 1.;
         }
         else {
-          Msg(ERROR, "Draw Geometry (Plan_SurfPlane)");
+          Msg(GERROR, "Draw Geometry (Plan_SurfPlane)");
         }
       }
     }
diff --git a/Graphics/gl2gif.cpp b/Graphics/gl2gif.cpp
index 437a9afb81b9cbabbc606542007a6a02d1b5f906..695e086f4ebe9efad14d424603403d9c6da36eef 100644
--- a/Graphics/gl2gif.cpp
+++ b/Graphics/gl2gif.cpp
@@ -1,4 +1,4 @@
-// $Id: gl2gif.cpp,v 1.8 2001-01-08 08:05:43 geuzaine Exp $
+// $Id: gl2gif.cpp,v 1.9 2001-01-10 08:50:30 geuzaine Exp $
 
 /* 
  * gl2gif: an OpenGL to GIF printing library
@@ -162,7 +162,7 @@ colorhash_table ppm_colorhisttocolorhash( const colorhist_vector chv,
     hash = ppm_hashpixel( color );
     for ( chl = cht[hash]; chl != (colorhist_list) 0; chl = chl->next )
       if ( PPM_EQUAL( chl->ch.color, color ) )
-	Msg(ERROR, "GIF: same color found twice - %d %d %d", PPM_GETR(color),
+	Msg(GERROR, "GIF: same color found twice - %d %d %d", PPM_GETR(color),
 	    PPM_GETG(color), PPM_GETB(color) );
     chl = (colorhist_list) Malloc( sizeof(struct colorhist_list_item) );
     chl->ch.color = color;
@@ -226,7 +226,7 @@ static int colorstobpp( int colors ){
   else if ( colors <= 256 )
     bpp = 8;
   else{
-    Msg(ERROR, "GIF: can't happen: too many colors" );
+    Msg(GERROR, "GIF: can't happen: too many colors" );
     bpp = 8 ;
   }
 
@@ -324,7 +324,7 @@ static colorhist_vector mediancut( colorhist_vector chv, int colors,
   colormap =
     (colorhist_vector) malloc( sizeof(struct colorhist_item) * newcolors );
   if ( bv == (box_vector) 0 || colormap == (colorhist_vector) 0 )
-    Msg(ERROR,  "GIF: out of memory" );
+    Msg(GERROR,  "GIF: out of memory" );
   for ( i = 0; i < newcolors; ++i )
     PPM_ASSIGN( colormap[i].color, 0, 0, 0 );
   
@@ -774,7 +774,7 @@ static void output( code_int  code){
     fflush( g_outfile );
     
     if( ferror( g_outfile ) )
-      Msg(ERROR, "GIF: Error writing output file");
+      Msg(GERROR, "GIF: Error writing output file");
   }
 }
 
diff --git a/Motif/CbContext.cpp b/Motif/CbContext.cpp
index a204d1c9eb5d01c15cc0ea9214ac0beb440814f7..41188d4da3cbe88fe3f76aff6f6f561504fb75b8 100644
--- a/Motif/CbContext.cpp
+++ b/Motif/CbContext.cpp
@@ -1,4 +1,4 @@
-// $Id: CbContext.cpp,v 1.2 2001-01-09 14:24:11 geuzaine Exp $
+// $Id: CbContext.cpp,v 1.3 2001-01-10 08:50:31 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "GmshUI.h"
@@ -630,7 +630,7 @@ void RemoveViewCb(Widget w, XtPointer client_data, XtPointer call_data){
   FreeView(v);
 
   if(!List_Suppress(Post_ViewList, v, fcmpPostViewNum))
-    Msg(ERROR, "Could Not Suppress View from List");
+    Msg(GERROR, "Could Not Suppress View from List");
 
   CTX.post.nb_views = List_Nbr(Post_ViewList);
 
diff --git a/Motif/Main.cpp b/Motif/Main.cpp
index 7dd8fa792df3e8544039010048f616e362305f83..45c8e00839f02a33b4aab44089613764a038c7cc 100644
--- a/Motif/Main.cpp
+++ b/Motif/Main.cpp
@@ -1,4 +1,4 @@
-// $Id: Main.cpp,v 1.2 2001-01-09 14:24:11 geuzaine Exp $
+// $Id: Main.cpp,v 1.3 2001-01-10 08:50:31 geuzaine Exp $
 
 #include <signal.h>
 
@@ -91,7 +91,7 @@ int main(int argc, char *argv[]){
         if(List_Nbr(Post_ViewList))
           BGMWithView((Post_View*)List_Pointer(Post_ViewList, List_Nbr(Post_ViewList)-1));
         else
-          Msg(ERROR, "Invalid Background Mesh (no View)");
+          Msg(GERROR, "Invalid Background Mesh (no View)");
       }
       if(CTX.interactive > 0){
         mai3d(THEM, CTX.interactive);
@@ -395,7 +395,7 @@ int main(int argc, char *argv[]){
     if(List_Nbr(Post_ViewList))
       BGMWithView((Post_View*)List_Pointer(Post_ViewList, List_Nbr(Post_ViewList)-1));
     else
-      Msg(ERROR, "Invalid Background Mesh (no View)");
+      Msg(GERROR, "Invalid Background Mesh (no View)");
   }
   
   /* Draw the actual scene */
diff --git a/Motif/XColors.cpp b/Motif/XColors.cpp
index ccc82d9508e737b16380e87e135011a80da472ef..655f1ad05083e399ad7038d2176d0d5da96834cb 100644
--- a/Motif/XColors.cpp
+++ b/Motif/XColors.cpp
@@ -1,4 +1,4 @@
-// $Id: XColors.cpp,v 1.1 2001-01-08 08:20:11 geuzaine Exp $
+// $Id: XColors.cpp,v 1.2 2001-01-10 08:50:31 geuzaine Exp $
 
 /*
   Attention. Toutes les couleurs sont crees a partir de la colormap de
@@ -98,7 +98,7 @@ unsigned long AllocateColorInt( int r, int g, int b )
                           &xcol );
          return xcol.pixel;
       default:
-         Msg(ERROR, "Error in AllocateColorInt %d", pixelformat);
+         Msg(GERROR, "Error in AllocateColorInt %d", pixelformat);
          exit(0);
    }
    return 0;