Windows: roken.h ordering
[openafs.git] / src / WINNT / afssvrmgr / svr_col.cpp
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  *
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #include <winsock2.h>
11 #include <ws2tcpip.h>
12
13 extern "C" {
14 #include <afsconfig.h>
15 #include <afs/param.h>
16 #include <roken.h>
17 }
18
19 #include "svrmgr.h"
20 #include "svr_col.h"
21
22
23 /*
24  * SERVER-VIEW COLUMNS ________________________________________________________
25  *
26  */
27
28 void Server_SetDefaultView_Horz (LPVIEWINFO lpviHorz)
29 {
30    lpviHorz->lvsView = FLS_VIEW_LIST;
31    lpviHorz->nColsAvail = nSERVERCOLUMNS;
32
33    for (size_t iCol = 0; iCol < nSERVERCOLUMNS; ++iCol)
34       {
35       lpviHorz->cxColumns[ iCol ]  = SERVERCOLUMNS[ iCol ].cxWidth;
36       lpviHorz->idsColumns[ iCol ] = SERVERCOLUMNS[ iCol ].idsColumn;
37       }
38
39    lpviHorz->iSort = svrcolNAME;
40
41    lpviHorz->nColsShown = 3;
42    lpviHorz->aColumns[0] = (int)svrcolNAME;
43    lpviHorz->aColumns[1] = (int)svrcolADDRESS;
44    lpviHorz->aColumns[2] = (int)svrcolSTATUS;
45 }
46
47
48 void Server_SetDefaultView_Vert (LPVIEWINFO lpviVert)
49 {
50    lpviVert->lvsView = FLS_VIEW_LARGE;
51    lpviVert->nColsAvail = nSERVERCOLUMNS;
52
53    for (size_t iCol = 0; iCol < nSERVERCOLUMNS; ++iCol)
54       {
55       lpviVert->cxColumns[ iCol ]  = SERVERCOLUMNS[ iCol ].cxWidth;
56       lpviVert->idsColumns[ iCol ] = SERVERCOLUMNS[ iCol ].idsColumn;
57       }
58
59    lpviVert->iSort = svrcolNAME;
60
61    lpviVert->nColsShown = 3;
62    lpviVert->aColumns[0] = (int)svrcolNAME;
63    lpviVert->aColumns[1] = (int)svrcolADDRESS;
64    lpviVert->aColumns[2] = (int)svrcolSTATUS;
65 }
66
67
68 /*
69  * ROUTINES ___________________________________________________________________
70  *
71  */
72
73 size_t Server_GetAlertCount (LPSERVER lpServer)
74 {
75    return Alert_GetCount (lpServer->GetIdentifier());
76 }
77
78
79 LPTSTR Server_GetColumnText (LPIDENT lpi, SERVERCOLUMN svrcol)
80 {
81    static TCHAR aszBuffer[ nSERVERCOLUMNS ][ cchRESOURCE ];
82    static size_t iBufferNext = 0;
83    LPTSTR pszBuffer = aszBuffer[ iBufferNext++ ];
84    if (iBufferNext == nSERVERCOLUMNS)
85       iBufferNext = 0;
86    *pszBuffer = TEXT('\0');
87
88    LPSERVERSTATUS lpss = NULL;
89    LPSERVER_PREF lpsp;
90    if ((lpsp = (LPSERVER_PREF)lpi->GetUserParam()) != NULL)
91       {
92       lpss = &lpsp->ssLast;
93       }
94
95    switch (svrcol)
96       {
97       case svrcolNAME:
98          lpi->GetServerName (pszBuffer);
99          break;
100
101       case svrcolADDRESS:
102          if (lpss)
103             FormatSockAddr (pszBuffer, TEXT("%a"), &lpss->aAddresses[0]);
104          break;
105
106       case svrcolSTATUS:
107          {
108          LPTSTR pszDesc;
109          if ((pszDesc = Alert_GetQuickDescription (lpi)) == NULL)
110             GetString (pszBuffer, IDS_STATUS_NOALERTS);
111          else
112             {
113             lstrcpy (pszBuffer, pszDesc);
114             FreeString (pszDesc);
115             }
116          }
117          break;
118       }
119
120    return pszBuffer;
121 }
122