Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/krb5/src/windows/leash/LeashView.h
34890 views
1
// **************************************************************************************
2
// File: LeashView.h
3
// By: Arthur David Leather
4
// Created: 12/02/98
5
// Copyright @1998 Massachusetts Institute of Technology - All rights reserved.
6
// Description: H file for LeashView.cpp. Contains variables and functions
7
// for the Leash FormView
8
//
9
// History:
10
//
11
// MM/DD/YY Inits Description of Change
12
// 12/02/98 ADL Original
13
// **************************************************************************************
14
15
16
#if !defined(AFX_LeashVIEW_H__6F45AD99_561B_11D0_8FCF_00C04FC2A0C2__INCLUDED_)
17
#define AFX_LeashVIEW_H__6F45AD99_561B_11D0_8FCF_00C04FC2A0C2__INCLUDED_
18
19
#if _MSC_VER >= 1000
20
#pragma once
21
#endif // _MSC_VER >= 1000
22
23
#define GOOD_TICKETS 1 // Don't change this value
24
#define EXPIRED_TICKETS 2 // Don't change this value
25
#define TICKETS_LOW 3
26
#define ONE_SECOND 1000
27
#define SMALL_ICONS 16
28
#define LARGE_ICONS 32
29
30
#define UPDATE_DISPLAY_TIME 60 //seconds
31
32
#define ACTIVE_CLOCK 0
33
#define LOW_CLOCK 1
34
#define EXPIRED_CLOCK 2
35
#define ACTIVE_TICKET 3
36
#define LOW_TICKET 4
37
#define EXPIRED_TICKET 5
38
#define TICKET_NOT_INSTALLED 6
39
#define ACTIVE_PARENT_NODE 7
40
#define LOW_PARENT_NODE 8
41
#define EXPIRED_PARENT_NODE 9
42
#define NONE_PARENT_NODE 10
43
#define LOW_TRAY_ICON 11
44
#define EXPIRED_TRAY_ICON 12
45
#define ACTIVE_TRAY_ICON 13
46
#define NONE_TRAY_ICON 14
47
#define TKT_ADDRESS 15
48
#define TKT_SESSION 16
49
#define TKT_ENCRYPTION 17
50
#define IMAGE_COUNT 18
51
52
#define NODE_IS_EXPANDED 2
53
54
#define CX_BORDER 1
55
#define CY_BORDER 1
56
57
#ifdef NO_TICKETS
58
#undef NO_TICKETS // XXX - this is evil but necessary thanks to silliness...
59
#endif
60
61
#define WM_TRAYICON (WM_USER+100)
62
#define WM_WARNINGPOPUP (WM_USER+101)
63
64
enum ticketTimeLeft{NO_TICKETS, ZERO_MINUTES_LEFT, FIVE_MINUTES_LEFT, TEN_MINUTES_LEFT,
65
FIFTEEN_MINUTES_LEFT, TWENTY_MINUTES_LEFT, PLENTY_OF_TIME,
66
NOT_INSTALLED};
67
// Don't change 'NO_TICKET's' value
68
69
class CLeashDebugWindow;
70
class ViewColumnInfo
71
{
72
public:
73
const char * m_name;
74
int m_enabled;
75
int m_id;
76
int m_columnWidth;
77
};
78
79
enum eViewColumn {
80
PRINCIPAL,
81
TIME_ISSUED,
82
RENEWABLE_UNTIL,
83
VALID_UNTIL,
84
ENCRYPTION_TYPE,
85
TICKET_FLAGS,
86
CACHE_NAME,
87
NUM_VIEW_COLUMNS
88
};
89
90
class CCacheDisplayData
91
{
92
public:
93
CCacheDisplayData(const char *ccache_name) :
94
m_next(NULL),
95
m_ccacheName(strdup(ccache_name)),
96
m_index(-1),
97
m_focus(-1),
98
m_expanded(0),
99
m_selected(0),
100
m_isRenewable(0),
101
m_isDefault(0)
102
{
103
}
104
105
~CCacheDisplayData()
106
{
107
if (m_ccacheName)
108
free(m_ccacheName);
109
}
110
111
CCacheDisplayData *m_next;
112
char *m_ccacheName;
113
int m_index; // item index in list view
114
int m_focus; // sub-item with focus
115
unsigned int m_expanded; // true when each individual ticket is displayed
116
unsigned int m_selected; // true when this ccache is selected
117
unsigned int m_isRenewable; // true when tgt is renewable
118
unsigned int m_isDefault; // true when this is the default ccache
119
};
120
121
struct ListItemInfo
122
{
123
ListItemInfo() : m_font(NULL), m_durationFont(NULL) {}
124
HFONT m_durationFont; // For renewable/valid until; italic when expired
125
HFONT m_font; // For all other items
126
};
127
128
class CLeashView : public CListView
129
{
130
private:
131
////@#+Remove
132
CLeashDebugWindow* m_pDebugWindow;
133
CCacheDisplayData* m_ccacheDisplay;
134
CImageList m_imageList;
135
CWinApp* m_pApp;
136
HTREEITEM m_hPrincipal;
137
HTREEITEM m_hKerb5;
138
HTREEITEM m_hk5tkt;
139
TV_INSERTSTRUCT m_tvinsert;
140
HMENU m_hMenu;
141
BOOL m_startup;
142
BOOL m_isMinimum;
143
BOOL m_debugStartUp;
144
BOOL m_alreadyPlayed;
145
INT m_upperCaseRealm;
146
INT m_destroyTicketsOnExit;
147
INT m_debugWindow;
148
INT m_largeIcons;
149
INT m_lowTicketAlarm;
150
INT m_hPrincipalState;
151
INT m_hKerb5State;
152
CString* m_pWarningMessage;
153
BOOL m_bIconAdded;
154
BOOL m_bIconDeleted;
155
HFONT m_BaseFont;
156
HFONT m_BoldFont;
157
HFONT m_ItalicFont;
158
HFONT m_BoldItalicFont;
159
ListItemInfo* m_aListItemInfo;
160
161
static ViewColumnInfo sm_viewColumns[NUM_VIEW_COLUMNS];
162
163
static INT m_autoRenewTickets;
164
static INT m_ticketStatusKrb5;
165
static INT m_autoRenewalAttempted;
166
static INT m_warningOfTicketTimeLeftKrb5;
167
static INT m_warningOfTicketTimeLeftLockKrb5;
168
static INT m_updateDisplayCount;
169
static INT m_alreadyPlayedDisplayCount;
170
static time_t m_ticketTimeLeft;
171
static BOOL m_lowTicketAlarmSound;
172
static LONG m_timerMsgNotInProgress;
173
174
void ToggleViewColumn(eViewColumn viewOption);
175
VOID ResetTreeNodes();
176
VOID ApplicationInfoMissingMsg();
177
VOID GetScrollBarState(CSize sizeClient, CSize& needSb,
178
CSize& sizeRange, CPoint& ptMove,
179
BOOL bInsideClient);
180
VOID UpdateBars();
181
VOID GetScrollBarSizes(CSize& sizeSb);
182
BOOL GetTrueClientSize(CSize& size, CSize& sizeSb);
183
HFONT GetSubItemFont(int iItem, int iSubItem);
184
185
//void GetRowWidthHeight(CDC* pDC, LPCSTR theString, int& nRowWidth,
186
// int& nRowHeight, int& nCharWidth);
187
static VOID AlarmBeep();
188
static VOID CALLBACK EXPORT TimerProc(HWND hWnd, UINT nMsg, UINT_PTR nIDEvent,
189
DWORD dwTime);
190
static VOID UpdateTicketTime(TICKETINFO& ticketinfo);
191
static INT GetLowTicketStatus(int);
192
static time_t LeashTime();
193
static BOOL IsExpired(TicketList *ticket);
194
static BOOL IsExpired(TICKETINFO *info);
195
static VOID AddDisplayItem(CListCtrl &list,
196
CCacheDisplayData *elem,
197
int iItem,
198
char *principal,
199
time_t issued,
200
time_t valid_until,
201
time_t renew_until,
202
char *encTypes,
203
unsigned long flags,
204
char *cache_name);
205
206
void SetTrayIcon(int nim, int state=0);
207
void SetTrayText(int nim, CString tip);
208
209
BOOL UpdateDisplay();
210
static UINT InitTicket(void *);
211
static UINT RenewTicket(void *);
212
static UINT ImportTicket(void *);
213
// Queue a warning popup message.
214
// This is a workaround to the MFC deficiency that you cannot safely create
215
// a modal dialog while processing messages within AfxPreTranslateMessage()
216
// returns TRUE if message is queued successfully.
217
BOOL PostWarningMessage(const CString& message);
218
afx_msg LRESULT OnWarningPopup(WPARAM wParam, LPARAM lParam);
219
220
BOOL IsExpanded(TICKETINFO *);
221
222
protected: // create from serialization only
223
DECLARE_DYNCREATE(CLeashView)
224
225
// Attributes
226
public:
227
CLeashView();
228
//LeashDoc* GetDocument();
229
230
//{{AFX_DATA(CLeashView)
231
enum { IDD = IDD_DIALOG1 };
232
// NOTE: the ClassWizard will add data members here
233
//}}AFX_DATA
234
235
// Operations
236
public:
237
238
// Overrides
239
// ClassWizard generated virtual function overrides
240
//{{AFX_VIRTUAL(CLeashView)
241
public:
242
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
243
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
244
virtual VOID OnInitialUpdate();
245
virtual BOOL PreTranslateMessage(MSG* pMsg);
246
protected:
247
virtual VOID OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
248
//}}AFX_VIRTUAL
249
250
// Implementation
251
public:
252
virtual ~CLeashView();
253
254
#ifdef _DEBUG
255
virtual VOID AssertValid() const;
256
virtual VOID Dump(CDumpContext& dc) const;
257
#endif
258
259
// Generated message map functions
260
protected:
261
//{{AFX_MSG(CLeashView)
262
afx_msg VOID OnItemexpandedTreeview(NMHDR* pNMHDR, LRESULT* pResult);
263
afx_msg INT OnCreate(LPCREATESTRUCT lpCreateStruct);
264
afx_msg VOID OnShowWindow(BOOL bShow, UINT nStatus);
265
afx_msg VOID OnClose(void);
266
afx_msg VOID OnInitTicket();
267
afx_msg VOID OnRenewTicket();
268
afx_msg VOID OnDestroyTicket();
269
afx_msg VOID OnMakeDefault();
270
afx_msg VOID OnChangePassword();
271
afx_msg VOID OnUpdateDisplay();
272
afx_msg VOID OnSynTime();
273
afx_msg VOID OnDebugMode();
274
afx_msg VOID OnLargeIcons();
275
afx_msg VOID OnTimeIssued();
276
afx_msg VOID OnValidUntil();
277
afx_msg VOID OnRenewableUntil();
278
afx_msg VOID OnShowTicketFlags();
279
afx_msg VOID OnEncryptionType();
280
afx_msg VOID OnCcacheName();
281
afx_msg VOID OnUppercaseRealm();
282
afx_msg VOID OnKillTixOnExit();
283
afx_msg VOID OnDestroy();
284
afx_msg VOID OnUpdateDestroyTicket(CCmdUI* pCmdUI);
285
afx_msg VOID OnUpdateInitTicket(CCmdUI* pCmdUI);
286
afx_msg VOID OnUpdateRenewTicket(CCmdUI* pCmdUI);
287
afx_msg VOID OnUpdateTimeIssued(CCmdUI* pCmdUI);
288
afx_msg VOID OnUpdateValidUntil(CCmdUI* pCmdUI);
289
afx_msg VOID OnUpdateRenewableUntil(CCmdUI* pCmdUI);
290
afx_msg VOID OnUpdateShowTicketFlags(CCmdUI* pCmdUI);
291
afx_msg VOID OnUpdateEncryptionType(CCmdUI* pCmdUI);
292
afx_msg VOID OnUpdateCcacheName(CCmdUI* pCmdUI);
293
afx_msg VOID OnUpdateUppercaseRealm(CCmdUI* pCmdUI);
294
afx_msg VOID OnUpdateKillTixOnExit(CCmdUI* pCmdUI);
295
afx_msg VOID OnUpdateLowTicketAlarm(CCmdUI* pCmdUI);
296
afx_msg VOID OnUpdateAutoRenew(CCmdUI* pCmdUI);
297
afx_msg VOID OnUpdateMakeDefault(CCmdUI* pCmdUI);
298
afx_msg VOID OnAppAbout();
299
afx_msg VOID OnUpdateDebugMode(CCmdUI* pCmdUI);
300
afx_msg VOID OnUpdateCfgFiles(CCmdUI* pCmdUI);
301
afx_msg VOID OnKrb5Properties();
302
afx_msg void OnLeashProperties();
303
afx_msg void OnLeashRestore();
304
afx_msg void OnLeashMinimize();
305
afx_msg void OnLowTicketAlarm();
306
afx_msg void OnUpdateKrb5Properties(CCmdUI* pCmdUI);
307
afx_msg void OnKrbProperties();
308
afx_msg void OnUpdateProperties(CCmdUI* pCmdUI);
309
afx_msg void OnHelpKerberos();
310
afx_msg void OnHelpLeash32();
311
afx_msg void OnHelpWhyuseleash32();
312
afx_msg void OnSysColorChange();
313
afx_msg void OnAutoRenew();
314
afx_msg LRESULT OnGoodbye(WPARAM wParam, LPARAM lParam);
315
afx_msg LRESULT OnTrayIcon(WPARAM wParam, LPARAM lParam);
316
afx_msg LRESULT OnObtainTGTWithParam(WPARAM wParam, LPARAM lParam);
317
afx_msg void OnItemChanged(NMHDR* pNmHdr, LRESULT* pResult);
318
//}}AFX_MSG
319
DECLARE_MESSAGE_MAP()
320
public:
321
afx_msg void OnLvnItemchanging(NMHDR *pNMHDR, LRESULT *pResult);
322
afx_msg void OnLvnItemActivate(NMHDR *pNMHDR, LRESULT *pResult);
323
afx_msg void OnLvnKeydown(NMHDR *pNMHDR, LRESULT *pResult);
324
afx_msg void OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult);
325
};
326
327
/*
328
#ifndef _DEBUG // debug version in CLeashView.cpp
329
inline LeashDoc* CLeashView::GetDocument()
330
{ return (LeashDoc*)m_pDocument; }
331
#endif
332
*/
333
334
/////////////////////////////////////////////////////////////////////////////
335
336
//{{AFX_INSERT_LOCATION}}
337
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
338
339
#endif // !defined(AFX_LeashVIEW_H__6F45AD99_561B_11D0_8FCF_00C04FC2A0C2__INCLUDED_)
340
341