Moved ngmx to C++, renamed it to view.
[alexxy/gromacs.git] / src / programs / view / xdlgitem.cpp
similarity index 89%
rename from src/ngmx/xdlgitem.c
rename to src/programs/view/xdlgitem.cpp
index eecc300fb3bfe22b32a9b92159ce1b7ca2913c84..a53ba6811552f92463bf9f2e4b3517d18a6459c2 100644 (file)
@@ -9,7 +9,7 @@
  *                        VERSION 3.2.0
  * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
- * Copyright (c) 2001-2004, The GROMACS development team,
+ * Copyright (c) 2001-2013, The GROMACS development team,
  * check out http://www.gromacs.org for more information.
 
  * This program is free software; you can redistribute it and/or
@@ -50,7 +50,7 @@
 
 #define BUFSIZE 16
 
-t_dlgitem *newitem(t_x11 *x11)
+static t_dlgitem *newitem(void)
 {
     t_dlgitem *item;
 
@@ -119,12 +119,12 @@ static int DefWndProc(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
             }
             break;
         case EnterNotify:
-            dlgitem->win.bFocus = TRUE;
+            dlgitem->win.bFocus = true;
             ShowCaret(x11, dlgitem);
             /*    LightBorder(x11->disp,dlgitem->win.self,x11->fg); */
             break;
         case LeaveNotify:
-            dlgitem->win.bFocus = FALSE;
+            dlgitem->win.bFocus = false;
             HideCaret(x11, dlgitem);
             /*    LightBorder(x11->disp,dlgitem->win.self,x11->bg); */
             break;
@@ -319,7 +319,7 @@ static int WndProcST(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
     return ITEMOK;
 }
 
-static gmx_bool insert(char *s, char c, int *pos)
+static bool insert(char *s, char c, int *pos)
 {
     int i, sl;
 
@@ -333,12 +333,12 @@ static gmx_bool insert(char *s, char c, int *pos)
         }
         s[*pos] = c;
         (*pos)++;
-        return TRUE;
+        return true;
     }
-    return FALSE;
+    return false;
 }
 
-static gmx_bool my_backspace(char *s, int *pos)
+static bool my_backspace(char *s, int *pos)
 {
     int i, sl;
 
@@ -349,13 +349,13 @@ static gmx_bool my_backspace(char *s, int *pos)
         {
             s[i] = s[i+1];
         }
-        (*pos) = max(0, (*pos)-1);
-        return TRUE;
+        (*pos) = std::max(0, (*pos)-1);
+        return true;
     }
-    return FALSE;
+    return false;
 }
 
-static gmx_bool my_delete(char *s, int *pos)
+static bool my_delete(char *s, int *pos)
 {
     int i, sl;
 
@@ -366,19 +366,20 @@ static gmx_bool my_delete(char *s, int *pos)
         {
             s[i] = s[i+1];
         }
-        return TRUE;
+        return true;
     }
-    return FALSE;
+    return false;
 }
 
 static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
 {
-    t_edittext *et;
-    t_windata  *win;
-    KeySym      keysym;
-    char        c[BUFSIZE+1], *bp;
-    char        scrbuf[STRLEN];
-    int         i, xp, xtitle, ewidth;
+    t_edittext  *et;
+    t_windata   *win;
+    KeySym       keysym;
+    char         c[BUFSIZE+1], *bp;
+    char         scrbuf[STRLEN];
+    int          i;
+    int          xp, xtitle, ewidth;
 
     if (dlgitem->type != edlgET)
     {
@@ -425,7 +426,7 @@ static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
                 bp[et->pos] = '\0';
             }
             sfree(bp);
-            et->bChanged = TRUE;
+            et->bChanged = true;
             return ETCHANGED;
         case KeyPress:
             /* Check for HelpKey */
@@ -442,7 +443,7 @@ static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
                 case XK_Delete:
                     if (my_delete(et->buf, &(et->pos)))
                     {
-                        et->bChanged = TRUE;
+                        et->bChanged = true;
                         return ETCHANGED;
                     }
                     else
@@ -453,7 +454,7 @@ static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
                 case XK_BackSpace:
                     if (my_backspace(et->buf, &(et->pos)))
                     {
-                        et->bChanged = TRUE;
+                        et->bChanged = true;
                         return ETCHANGED;
                     }
                     else
@@ -467,10 +468,10 @@ static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
                 case XK_Home:
                     et->pos      = 0;
                     et->strbegin = 0;
-                    et->bChanged = TRUE;
+                    et->bChanged = true;
                     return ETCHANGED;
                 case XK_End:
-                    if (strlen(et->buf) <= et->buflen)
+                    if (strlen(et->buf) <= (unsigned int)et->buflen)
                     {
                         et->pos = strlen(et->buf);
                     }
@@ -479,20 +480,21 @@ static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
                         et->pos      = et->buflen;
                         et->strbegin = strlen(et->buf)-et->buflen;
                     }
-                    et->bChanged = TRUE;
+                    et->bChanged = true;
                     return ETCHANGED;
                 case XK_Left:
-                    et->pos      = max(0, et->pos-1);
-                    et->strbegin = min(et->strbegin, et->pos);
-                    et->bChanged = TRUE;
+                    et->pos      = std::max(0, et->pos-1);
+                    et->strbegin = std::min(et->strbegin, et->pos);
+                    et->bChanged = true;
                     return ETCHANGED;
                 case XK_Right:
-                    if ((et->pos < et->buflen) && (et->strbegin+et->buflen > strlen(et->buf)))
+                    if ((et->pos < et->buflen) &&
+                        (et->strbegin+et->buflen > (int)strlen(et->buf)))
                     {
                         et->pos++;
                     }
-                    else if ((et->buflen   < strlen(et->buf)) &&
-                             (et->strbegin < strlen(et->buf)-et->buflen))
+                    else if ((et->buflen   < (int)strlen(et->buf)) &&
+                             (et->strbegin < (int)strlen(et->buf)-et->buflen))
                     {
                         et->strbegin++;
                     }
@@ -500,14 +502,14 @@ static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
                     {
                         break;
                     }
-                    et->bChanged = TRUE;
+                    et->bChanged = true;
                     return ETCHANGED;
                 default:
                     if (keysym < 256)
                     {
                         if (insert(et->buf, c[0], &(et->pos)))
                         {
-                            et->bChanged = TRUE;
+                            et->bChanged = true;
                             return ETCHANGED;
                         }
                     }
@@ -516,11 +518,11 @@ static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
             }
             break;
         case LeaveNotify:
-            win->bFocus = FALSE;
+            win->bFocus = false;
             HideCaret(x11, dlgitem);
             if (et->bChanged)
             {
-                et->bChanged = FALSE;
+                et->bChanged = false;
             }
             break;
         default:
@@ -544,13 +546,13 @@ static int WndProcET(t_x11 *x11, t_dlgitem *dlgitem, XEvent *event)
  *
  ****************************/
 t_dlgitem *CreateButton(t_x11 *x11,
-                        const char *szLab, gmx_bool bDef, t_id id, t_id groupid,
+                        const char *szLab, bool bDef, t_id id, t_id groupid,
                         int x0, int y0, int w, int h, int bw)
 {
     t_dlgitem *dlgitem;
     char      *lab;
 
-    dlgitem = newitem(x11);
+    dlgitem = newitem();
     if (h == 0)
     {
         h = XTextHeight(x11->font)+2*OFFS_Y;
@@ -580,13 +582,13 @@ t_dlgitem *CreateButton(t_x11 *x11,
 }
 
 t_dlgitem *CreateRadioButton(t_x11 *x11,
-                             const char *szLab, gmx_bool bSet, t_id id,
+                             const char *szLab, bool bSet, t_id id,
                              t_id groupid,
                              int x0, int y0, int w, int h, int bw)
 {
     t_dlgitem *dlgitem;
 
-    dlgitem = newitem(x11);
+    dlgitem = newitem();
     if (h == 0)
     {
         h = XTextHeight(x11->font)+OFFS_Y;
@@ -612,7 +614,7 @@ t_dlgitem *CreateGroupBox(t_x11 *x11,
 {
     t_dlgitem *dlgitem;
 
-    dlgitem = newitem(x11);
+    dlgitem = newitem();
     if (h == 0)
     {
         h = XTextHeight(x11->font)+OFFS_Y;
@@ -635,13 +637,13 @@ t_dlgitem *CreateGroupBox(t_x11 *x11,
 }
 
 t_dlgitem *CreateCheckBox(t_x11 *x11,
-                          const char *szLab, gmx_bool bCheckedInitial, t_id id,
+                          const char *szLab, bool bCheckedInitial, t_id id,
                           t_id groupid,
                           int x0, int y0, int w, int h, int bw)
 {
     t_dlgitem *dlgitem;
 
-    dlgitem = newitem(x11);
+    dlgitem = newitem();
     if (h == 0)
     {
         h = XTextHeight(x11->font)+OFFS_Y;
@@ -660,13 +662,12 @@ t_dlgitem *CreateCheckBox(t_x11 *x11,
     return dlgitem;
 }
 
-t_dlgitem *CreatePixmap(t_x11 *x11,
-                        Pixmap pm, t_id id,
+t_dlgitem *CreatePixmap(Pixmap pm, t_id id,
                         t_id groupid, int x0, int y0, int w, int h, int bw)
 {
     t_dlgitem *dlgitem;
 
-    dlgitem = newitem(x11);
+    dlgitem = newitem();
     InitWin(&(dlgitem->win), x0, y0, w, h, bw, NULL);
     dlgitem->ID          = id;
     dlgitem->type        = edlgPM;
@@ -677,14 +678,14 @@ t_dlgitem *CreatePixmap(t_x11 *x11,
 }
 
 t_dlgitem *CreateStaticText(t_x11 *x11,
-                            int nlines, char * const * lines, t_id id,
+                            int nlines, const char * const *lines, t_id id,
                             t_id groupid,
                             int x0, int y0, int w, int h, int bw)
 {
     t_dlgitem *dlgitem;
     int        i;
 
-    dlgitem = newitem(x11);
+    dlgitem = newitem();
     if (h == 0)
     {
         h = (XTextHeight(x11->font)+OFFS_Y)*nlines+OFFS_Y;
@@ -693,7 +694,7 @@ t_dlgitem *CreateStaticText(t_x11 *x11,
     {
         for (i = 0; (i < nlines); i++)
         {
-            w = max(w, XTextWidth(x11->font, lines[i], strlen(lines[i])));
+            w = std::max(w, XTextWidth(x11->font, lines[i], strlen(lines[i])));
         }
         w += 2*OFFS_X;
     }
@@ -720,7 +721,7 @@ t_dlgitem *CreateEditText(t_x11 *x11,
     t_dlgitem  *dlgitem;
     t_edittext *et;
 
-    dlgitem = newitem(x11);
+    dlgitem = newitem();
     if (h == 0)
     {
         h = XTextHeight(x11->font)+OFFS_Y;
@@ -745,7 +746,7 @@ t_dlgitem *CreateEditText(t_x11 *x11,
     strcpy(et->buf, buf);
     et->buflen       = screenbuf;
     et->strbegin     = 0;
-    et->bChanged     = FALSE;
+    et->bChanged     = false;
     dlgitem->WndProc = WndProcET;
 
     return dlgitem;
@@ -753,7 +754,7 @@ t_dlgitem *CreateEditText(t_x11 *x11,
 
 #define SC(src) (strlen(src) ? strdup(src) : NULL)
 
-void SetDlgitemOpts(t_dlgitem *dlgitem, gmx_bool bUseMon,
+void SetDlgitemOpts(t_dlgitem *dlgitem, bool bUseMon,
                     char *set, char *get, char *help)
 {
     dlgitem->bUseMon = bUseMon;