summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2004-11-03 21:50:28 (UTC)
committer Michael Krelin <hacker@klever.net>2004-11-03 21:50:28 (UTC)
commit5f552506513653f08acc6921b8c158489a7ebbbb (patch) (unidiff)
tree74ab06cf90c488915b87f48e74359554521cbec9
parent4435ed85c3acb4df42135e009b133fb8e9d2f09c (diff)
downloadpumpkin-5f552506513653f08acc6921b8c158489a7ebbbb.zip
pumpkin-5f552506513653f08acc6921b8c158489a7ebbbb.tar.gz
pumpkin-5f552506513653f08acc6921b8c158489a7ebbbb.tar.bz2
Added dialog box in case we can't bind listening socket.
git-svn-id: http://svn.klever.net/kin/pumpkin/trunk@47 fe716a7a-6dde-0310-88d9-d003556173a8
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--PumpKINDlg.cpp1
-rw-r--r--pumpkin.rc10
-rw-r--r--resource.h1
3 files changed, 8 insertions, 4 deletions
diff --git a/PumpKINDlg.cpp b/PumpKINDlg.cpp
index 0b3bf41..fc24596 100644
--- a/PumpKINDlg.cpp
+++ b/PumpKINDlg.cpp
@@ -282,96 +282,97 @@ void CPumpKINDlg::OnPaint()
282 if (IsIconic()) 282 if (IsIconic())
283 { 283 {
284 CPaintDC dc(this); // device context for painting 284 CPaintDC dc(this); // device context for painting
285 285
286 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); 286 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
287 287
288 // Center icon in client rectangle 288 // Center icon in client rectangle
289 int cxIcon = GetSystemMetrics(SM_CXICON); 289 int cxIcon = GetSystemMetrics(SM_CXICON);
290 int cyIcon = GetSystemMetrics(SM_CYICON); 290 int cyIcon = GetSystemMetrics(SM_CYICON);
291 CRect rect; 291 CRect rect;
292 GetClientRect(&rect); 292 GetClientRect(&rect);
293 int x = (rect.Width() - cxIcon + 1) / 2; 293 int x = (rect.Width() - cxIcon + 1) / 2;
294 int y = (rect.Height() - cyIcon + 1) / 2; 294 int y = (rect.Height() - cyIcon + 1) / 2;
295 295
296 // Draw the icon 296 // Draw the icon
297 dc.DrawIcon(x, y, m_hIcon); 297 dc.DrawIcon(x, y, m_hIcon);
298 } 298 }
299 else 299 else
300 { 300 {
301 CPaintDC pDC(this); 301 CPaintDC pDC(this);
302 CDC bmpDC; 302 CDC bmpDC;
303 bmpDC.CreateCompatibleDC(&pDC); 303 bmpDC.CreateCompatibleDC(&pDC);
304 bmpDC.SelectObject(&m_bmpBack); 304 bmpDC.SelectObject(&m_bmpBack);
305 CRect rc; 305 CRect rc;
306 GetClientRect(&rc); 306 GetClientRect(&rc);
307 for(int x=-m_bitmapBack.bmWidth*2/4;x<rc.Width();x+=m_bitmapBack.bmWidth) 307 for(int x=-m_bitmapBack.bmWidth*2/4;x<rc.Width();x+=m_bitmapBack.bmWidth)
308 for(int y=-m_bitmapBack.bmHeight*2/4;y<rc.Height();y+=m_bitmapBack.bmHeight) 308 for(int y=-m_bitmapBack.bmHeight*2/4;y<rc.Height();y+=m_bitmapBack.bmHeight)
309 pDC.BitBlt(x,y,m_bitmapBack.bmWidth,m_bitmapBack.bmHeight,&bmpDC,0,0,SRCCOPY); 309 pDC.BitBlt(x,y,m_bitmapBack.bmWidth,m_bitmapBack.bmHeight,&bmpDC,0,0,SRCCOPY);
310 bmpDC.DeleteDC(); 310 bmpDC.DeleteDC();
311 CDialog::OnPaint(); 311 CDialog::OnPaint();
312 } 312 }
313} 313}
314 314
315// The system calls this to obtain the cursor to display while the user drags 315// The system calls this to obtain the cursor to display while the user drags
316// the minimized window. 316// the minimized window.
317HCURSOR CPumpKINDlg::OnQueryDragIcon() 317HCURSOR CPumpKINDlg::OnQueryDragIcon()
318{ 318{
319 return (HCURSOR) m_hIcon; 319 return (HCURSOR) m_hIcon;
320} 320}
321 321
322int CPumpKINDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 322int CPumpKINDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
323{ 323{
324 if (CDialog::OnCreate(lpCreateStruct) == -1) 324 if (CDialog::OnCreate(lpCreateStruct) == -1)
325 return -1; 325 return -1;
326 326
327 m_Listener.m_Daddy=this; 327 m_Listener.m_Daddy=this;
328 if(!m_Listener.Create(m_ListenPort,SOCK_DGRAM)){ 328 if(!m_Listener.Create(m_ListenPort,SOCK_DGRAM)){
329 TRACE0("Failed to create socket\n"); 329 TRACE0("Failed to create socket\n");
330 AfxMessageBox(IDS_BOX_CANTBIND,MB_OK|MB_ICONEXCLAMATION);
330 return -1; 331 return -1;
331 } 332 }
332 333
333 if(!m_Trayer->Create(NULL,"PumpKIN TrayIcon",WS_CHILD,CRect(0,0,0,0),this,0)){ 334 if(!m_Trayer->Create(NULL,"PumpKIN TrayIcon",WS_CHILD,CRect(0,0,0,0),this,0)){
334 TRACE0("Failed to create trayer\n"); 335 TRACE0("Failed to create trayer\n");
335 return -1; 336 return -1;
336 } 337 }
337 338
338NOTIFYICONDATA nid; 339NOTIFYICONDATA nid;
339 memset(&nid,0,sizeof(nid)); 340 memset(&nid,0,sizeof(nid));
340 nid.cbSize=sizeof(nid); 341 nid.cbSize=sizeof(nid);
341 nid.hWnd=m_Trayer->m_hWnd; 342 nid.hWnd=m_Trayer->m_hWnd;
342 nid.uID=IDC_TRAYICON; 343 nid.uID=IDC_TRAYICON;
343 nid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; 344 nid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
344 nid.uCallbackMessage=WM_TRAYICON; 345 nid.uCallbackMessage=WM_TRAYICON;
345 nid.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME); 346 nid.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
346 // *** Load from resource 347 // *** Load from resource
347 strcpy(nid.szTip,"PumpKIN"); 348 strcpy(nid.szTip,"PumpKIN");
348 VERIFY(Shell_NotifyIcon(NIM_ADD,&nid)); 349 VERIFY(Shell_NotifyIcon(NIM_ADD,&nid));
349 350
350 return 0; 351 return 0;
351} 352}
352 353
353void CListenSocket::OnReceive(int nErrorCode) 354void CListenSocket::OnReceive(int nErrorCode)
354{ 355{
355 ASSERT(m_Daddy); 356 ASSERT(m_Daddy);
356 if(nErrorCode){ 357 if(nErrorCode){
357 m_Daddy->LogLine(IDS_LOG_LISTENRECEIVEERROR); 358 m_Daddy->LogLine(IDS_LOG_LISTENRECEIVEERROR);
358 return; 359 return;
359 } 360 }
360DWORD fionread = 0; 361DWORD fionread = 0;
361 VERIFY(IOCtl(FIONREAD,&fionread));// *** Do some checking on the value acquired 362 VERIFY(IOCtl(FIONREAD,&fionread));// *** Do some checking on the value acquired
362tftp *tftpRQ = tftp::Allocate(fionread); 363tftp *tftpRQ = tftp::Allocate(fionread);
363 ASSERT(tftpRQ); 364 ASSERT(tftpRQ);
364SOCKADDR_IN sin; 365SOCKADDR_IN sin;
365 if(!tftpRQ->Receive(this,fionread,&sin)){ 366 if(!tftpRQ->Receive(this,fionread,&sin)){
366 m_Daddy->LogLine(IDS_LOG_LISTENACCEPTERROR); 367 m_Daddy->LogLine(IDS_LOG_LISTENACCEPTERROR);
367 delete tftpRQ; 368 delete tftpRQ;
368 return; 369 return;
369 } 370 }
370 #ifndefNDEBUG 371 #ifndefNDEBUG
371CString tmp; 372CString tmp;
372 tmp.Format("%u - %s - %u\n",tftpRQ->Opcode(),inet_ntoa(sin.sin_addr),sin.sin_port); 373 tmp.Format("%u - %s - %u\n",tftpRQ->Opcode(),inet_ntoa(sin.sin_addr),sin.sin_port);
373 TRACE0(tmp); 374 TRACE0(tmp);
374#endif 375#endif
375POSITION p = m_Daddy->m_Xfers.GetStartPosition(); 376POSITION p = m_Daddy->m_Xfers.GetStartPosition();
376 while(p){ 377 while(p){
377 SOCKET key; 378 SOCKET key;
diff --git a/pumpkin.rc b/pumpkin.rc
index 7380e12..7f3bbde 100644
--- a/pumpkin.rc
+++ b/pumpkin.rc
@@ -37,99 +37,100 @@ BEGIN
37 "#include ""afxres.h""\r\n" 37 "#include ""afxres.h""\r\n"
38 "\0" 38 "\0"
39END 39END
40 40
413 TEXTINCLUDE DISCARDABLE 413 TEXTINCLUDE DISCARDABLE
42BEGIN 42BEGIN
43 "#define _AFX_NO_SPLITTER_RESOURCES\r\n" 43 "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
44 "#define _AFX_NO_OLE_RESOURCES\r\n" 44 "#define _AFX_NO_OLE_RESOURCES\r\n"
45 "#define _AFX_NO_TRACKER_RESOURCES\r\n" 45 "#define _AFX_NO_TRACKER_RESOURCES\r\n"
46 "#define _AFX_NO_PROPERTY_RESOURCES\r\n" 46 "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
47 "\r\n" 47 "\r\n"
48 "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" 48 "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
49 "#ifdef _WIN32\r\n" 49 "#ifdef _WIN32\r\n"
50 "LANGUAGE 9, 1\r\n" 50 "LANGUAGE 9, 1\r\n"
51 "#pragma code_page(1252)\r\n" 51 "#pragma code_page(1252)\r\n"
52 "#endif\r\n" 52 "#endif\r\n"
53 "#include ""res\\PumpKIN.rc2"" // non-Microsoft Visual C++ edited resources\r\n" 53 "#include ""res\\PumpKIN.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
54 "#include ""afxres.rc"" // Standard components\r\n" 54 "#include ""afxres.rc"" // Standard components\r\n"
55 "#endif\0" 55 "#endif\0"
56END 56END
57 57
58#endif // APSTUDIO_INVOKED 58#endif // APSTUDIO_INVOKED
59 59
60 60
61///////////////////////////////////////////////////////////////////////////// 61/////////////////////////////////////////////////////////////////////////////
62// 62//
63// Icon 63// Icon
64// 64//
65 65
66// Icon with lowest ID value placed first to ensure application icon 66// Icon with lowest ID value placed first to ensure application icon
67// remains consistent on all systems. 67// remains consistent on all systems.
68IDI_RRQ ICON DISCARDABLE "res\\wrq.ico" 68IDI_RRQ ICON DISCARDABLE "res\\wrq.ico"
69IDI_WRQ ICON DISCARDABLE "res\\rrq.ico" 69IDI_WRQ ICON DISCARDABLE "res\\rrq.ico"
70IDI_BROWSE ICON DISCARDABLE "shared-data/browse-icon.ico" 70IDI_BROWSE ICON DISCARDABLE "shared-data/browse-icon.ico"
71IDR_MAINFRAME ICON DISCARDABLE "res\\pumpkin.ico" 71IDR_MAINFRAME ICON DISCARDABLE "res\\pumpkin.ico"
72IDI_PLAY ICON DISCARDABLE "shared-data/play-icon.ico" 72IDI_PLAY ICON DISCARDABLE "shared-data/play-icon.ico"
73 73
74///////////////////////////////////////////////////////////////////////////// 74/////////////////////////////////////////////////////////////////////////////
75// 75//
76// Dialog 76// Dialog
77// 77//
78 78
79IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 74 79IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 74
80STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU 80STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
81CAPTION "About PumpKIN" 81CAPTION "About PumpKIN"
82FONT 8, "MS Sans Serif" 82FONT 8, "MS Sans Serif"
83BEGIN 83BEGIN
84 ICON IDR_MAINFRAME,IDC_STATIC,7,17,18,20 84 ICON IDR_MAINFRAME,IDC_STATIC,7,17,18,20
85 LTEXT "PumpKIN, Version 2.5.1-trunk",IDC_STATIC,40,15,119,8,SS_NOPREFIX 85 LTEXT "PumpKIN, Version 2.5.1-trunk",IDC_STATIC,40,15,119,8,
86 LTEXT "Copyright © 1997-2004 Klever Group",IDC_STATIC,40,30,170, 86 SS_NOPREFIX
87 8 87 LTEXT "Copyright © 1997-2004 Klever Group",IDC_STATIC,40,30,
88 170,8
88 DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP 89 DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP
89 PUSHBUTTON "http://www.klever.net/",IDC_KLEVERNET,124,53,86,14 90 PUSHBUTTON "http://www.klever.net/",IDC_KLEVERNET,124,53,86,14
90END 91END
91 92
92IDD_PUMPKIN_DIALOG DIALOGEX 0, 0, 362, 191 93IDD_PUMPKIN_DIALOG DIALOGEX 0, 0, 362, 191
93STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | 94STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION |
94 WS_SYSMENU 95 WS_SYSMENU
95EXSTYLE WS_EX_ACCEPTFILES | WS_EX_APPWINDOW 96EXSTYLE WS_EX_ACCEPTFILES | WS_EX_APPWINDOW
96CAPTION " PumpKIN" 97CAPTION " PumpKIN"
97FONT 8, "MS Sans Serif", 0, 0, 0x1 98FONT 8, "MS Sans Serif", 0, 0, 0x1
98BEGIN 99BEGIN
99 CONTROL "List1",IDC_CONNECTIONS,"SysListView32",LVS_REPORT | 100 CONTROL "List1",IDC_CONNECTIONS,"SysListView32",LVS_REPORT |
100 LVS_AUTOARRANGE | WS_BORDER | WS_TABSTOP,7,7,295,108, 101 LVS_AUTOARRANGE | WS_BORDER | WS_TABSTOP,7,7,295,108,
101 WS_EX_DLGMODALFRAME 102 WS_EX_DLGMODALFRAME
102 PUSHBUTTON "&Get File",IDC_GET,305,7,50,17,BS_NOTIFY, 103 PUSHBUTTON "&Get File",IDC_GET,305,7,50,17,BS_NOTIFY,
103 WS_EX_CLIENTEDGE 104 WS_EX_CLIENTEDGE
104 PUSHBUTTON "&Put File",IDC_PUT,305,25,50,17,BS_NOTIFY, 105 PUSHBUTTON "&Put File",IDC_PUT,305,25,50,17,BS_NOTIFY,
105 WS_EX_CLIENTEDGE 106 WS_EX_CLIENTEDGE
106 PUSHBUTTON "&Abort xfer",IDC_ABORT,305,43,50,17,BS_NOTIFY, 107 PUSHBUTTON "&Abort xfer",IDC_ABORT,305,43,50,17,BS_NOTIFY,
107 WS_EX_CLIENTEDGE 108 WS_EX_CLIENTEDGE
108 PUSHBUTTON "&Options",IDC_OPTIONS,305,61,50,17,BS_NOTIFY, 109 PUSHBUTTON "&Options",IDC_OPTIONS,305,61,50,17,BS_NOTIFY,
109 WS_EX_CLIENTEDGE 110 WS_EX_CLIENTEDGE
110 PUSHBUTTON "E&xit",IDC_EXIT,305,79,50,17,BS_NOTIFY,WS_EX_CLIENTEDGE 111 PUSHBUTTON "E&xit",IDC_EXIT,305,79,50,17,BS_NOTIFY,WS_EX_CLIENTEDGE
111 PUSHBUTTON "&Help",ID_HELP,305,97,50,17,BS_NOTIFY,WS_EX_CLIENTEDGE 112 PUSHBUTTON "&Help",ID_HELP,305,97,50,17,BS_NOTIFY,WS_EX_CLIENTEDGE
112 LISTBOX IDC_LOG,7,115,348,69,LBS_USETABSTOPS | LBS_NOSEL | 113 LISTBOX IDC_LOG,7,115,348,69,LBS_USETABSTOPS | LBS_NOSEL |
113 WS_VSCROLL | WS_HSCROLL,WS_EX_DLGMODALFRAME 114 WS_VSCROLL | WS_HSCROLL,WS_EX_DLGMODALFRAME
114 PUSHBUTTON "..",IDCANCEL,0,183,6,7,NOT WS_VISIBLE | NOT WS_TABSTOP 115 PUSHBUTTON "..",IDCANCEL,0,183,6,7,NOT WS_VISIBLE | NOT WS_TABSTOP
115END 116END
116 117
117IDD_PROPS_SERVER DIALOG DISCARDABLE 0, 0, 210, 154 118IDD_PROPS_SERVER DIALOG DISCARDABLE 0, 0, 210, 154
118STYLE WS_CHILD | WS_DISABLED | WS_CAPTION 119STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
119CAPTION "Server" 120CAPTION "Server"
120FONT 8, "MS Sans Serif" 121FONT 8, "MS Sans Serif"
121BEGIN 122BEGIN
122 GROUPBOX "TFTP filesystem &root (download path)",IDC_STATIC,7,7, 123 GROUPBOX "TFTP filesystem &root (download path)",IDC_STATIC,7,7,
123 196,38 124 196,38
124 EDITTEXT IDC_TFTPROOT,13,16,170,13,ES_AUTOHSCROLL 125 EDITTEXT IDC_TFTPROOT,13,16,170,13,ES_AUTOHSCROLL
125 PUSHBUTTON "&B",IDC_BROWSE,186,16,13,13,BS_ICON 126 PUSHBUTTON "&B",IDC_BROWSE,186,16,13,13,BS_ICON
126 CONTROL "Allow access to &subdirectories",IDC_TFTPSUBDIRS, 127 CONTROL "Allow access to &subdirectories",IDC_TFTPSUBDIRS,
127 "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,31,111,10 128 "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,31,111,10
128 GROUPBOX "Read Request Behavior",IDC_STATIC,7,48,153,42 129 GROUPBOX "Read Request Behavior",IDC_STATIC,7,48,153,42
129 CONTROL "Give &all files",IDC_RRQ_GIVEALL,"Button", 130 CONTROL "Give &all files",IDC_RRQ_GIVEALL,"Button",
130 BS_AUTORADIOBUTTON | BS_NOTIFY | WS_GROUP,13,57,53,10 131 BS_AUTORADIOBUTTON | BS_NOTIFY | WS_GROUP,13,57,53,10
131 CONTROL "&Prompt before giving file",IDC_RRQ_ALWAYSCONFIRM, 132 CONTROL "&Prompt before giving file",IDC_RRQ_ALWAYSCONFIRM,
132 "Button",BS_AUTORADIOBUTTON | BS_NOTIFY,23,67,91,10 133 "Button",BS_AUTORADIOBUTTON | BS_NOTIFY,23,67,91,10
133 CONTROL "&Deny all requests",IDC_RRQ_DENYALL,"Button", 134 CONTROL "&Deny all requests",IDC_RRQ_DENYALL,"Button",
134 BS_AUTORADIOBUTTON | BS_NOTIFY,33,77,70,10 135 BS_AUTORADIOBUTTON | BS_NOTIFY,33,77,70,10
135 GROUPBOX "Write Request Behavior",IDC_STATIC,7,93,172,54,WS_GROUP 136 GROUPBOX "Write Request Behavior",IDC_STATIC,7,93,172,54,WS_GROUP
@@ -525,81 +526,82 @@ END
525STRINGTABLE DISCARDABLE 526STRINGTABLE DISCARDABLE
526BEGIN 527BEGIN
527 ID_TRAY_HELP "Read the help on PumpKIN" 528 ID_TRAY_HELP "Read the help on PumpKIN"
528 ID_TRAY_ABOUTPUMPKIN "Learn about PumpKIN and it's creator" 529 ID_TRAY_ABOUTPUMPKIN "Learn about PumpKIN and it's creator"
529 ID_TRAY_EXIT "Close PumpKIN" 530 ID_TRAY_EXIT "Close PumpKIN"
530 ID_TRAY_SENDFILE "Send file over the network to your tete-a-tete" 531 ID_TRAY_SENDFILE "Send file over the network to your tete-a-tete"
531 ID_TRAY_FETCHFILE "Fetch file from remote computer" 532 ID_TRAY_FETCHFILE "Fetch file from remote computer"
532 ID_TRAY_OPTIONS "Set PumpKIN options" 533 ID_TRAY_OPTIONS "Set PumpKIN options"
533 ID_TRAY_SHOWPUMPKINWINDOW "Show main window" 534 ID_TRAY_SHOWPUMPKINWINDOW "Show main window"
534 ID_TRAY_OPENFILESFOLDER "Explore TFTP root folder" 535 ID_TRAY_OPENFILESFOLDER "Explore TFTP root folder"
535END 536END
536 537
537STRINGTABLE DISCARDABLE 538STRINGTABLE DISCARDABLE
538BEGIN 539BEGIN
539 IDC_CONNECTIONS "Active transfers" 540 IDC_CONNECTIONS "Active transfers"
540 IDC_LOG "PumpKIN Activity Log" 541 IDC_LOG "PumpKIN Activity Log"
541 IDC_GET "Fetch file from remote server" 542 IDC_GET "Fetch file from remote server"
542 IDC_PUT "Send file over the net" 543 IDC_PUT "Send file over the net"
543 IDC_ABORT "Abort transfer currently in progress" 544 IDC_ABORT "Abort transfer currently in progress"
544 IDC_EXIT "Close PumpKIN" 545 IDC_EXIT "Close PumpKIN"
545END 546END
546 547
547STRINGTABLE DISCARDABLE 548STRINGTABLE DISCARDABLE
548BEGIN 549BEGIN
549 IDC_OPTIONS "Set PumpKIN options" 550 IDC_OPTIONS "Set PumpKIN options"
550 IDC_REFRESH "Refresh talks list" 551 IDC_REFRESH "Refresh talks list"
551 IDC_BROWSE "Browse" 552 IDC_BROWSE "Browse"
552END 553END
553 554
554STRINGTABLE DISCARDABLE 555STRINGTABLE DISCARDABLE
555BEGIN 556BEGIN
556 ID_HELP "Read help on PumpKIN" 557 ID_HELP "Read help on PumpKIN"
557END 558END
558 559
559STRINGTABLE DISCARDABLE 560STRINGTABLE DISCARDABLE
560BEGIN 561BEGIN
561 IDS_DROPFILES_TITLE "Drop Files" 562 IDS_DROPFILES_TITLE "Drop Files"
562 IDS_NOMULTIPLEDROP_TEXT "You can't drop more than one file here. Only the first one will be accepted" 563 IDS_NOMULTIPLEDROP_TEXT "You can't drop more than one file here. Only the first one will be accepted"
563 IDS_LOG_REQUESTING "Requesting '%s' from '%s'" 564 IDS_LOG_REQUESTING "Requesting '%s' from '%s'"
564 IDS_LOG_SENDING "Sending '%s' to '%s'" 565 IDS_LOG_SENDING "Sending '%s' to '%s'"
565 IDS_WTALKAT "@" 566 IDS_WTALKAT "@"
566 IDS_OTALXAT " at " 567 IDS_OTALXAT " at "
567 IDS_TFTP_ERROR_TSIZE "Invalid transfer size" 568 IDS_TFTP_ERROR_TSIZE "Invalid transfer size"
568 IDS_TFTP_ERROR_BSIZE "Invalid block size" 569 IDS_TFTP_ERROR_BSIZE "Invalid block size"
569 IDS_TFTP_ERROR_TOUT "Invalid timeout" 570 IDS_TFTP_ERROR_TOUT "Invalid timeout"
570 IDS_SELECT_TFTPROOT "Select TFTP filesystem root.." 571 IDS_SELECT_TFTPROOT "Select TFTP filesystem root.."
571 IDS_FILTER_WAV "Sound Files (*.wav)|*.wav||" 572 IDS_FILTER_WAV "Sound Files (*.wav)|*.wav||"
572 IDS_TITLE_WAV "Select sound.." 573 IDS_TITLE_WAV "Select sound.."
574 IDS_BOX_CANTBIND "Failed to create listening socket. The port may be in use by another application."
573END 575END
574 576
575STRINGTABLE DISCARDABLE 577STRINGTABLE DISCARDABLE
576BEGIN 578BEGIN
577 AFX_IDS_APP_TITLE "PUMPKIN" 579 AFX_IDS_APP_TITLE "PUMPKIN"
578END 580END
579 581
580#endif // English (U.S.) resources 582#endif // English (U.S.) resources
581///////////////////////////////////////////////////////////////////////////// 583/////////////////////////////////////////////////////////////////////////////
582 584
583 585
584 586
585#ifndef APSTUDIO_INVOKED 587#ifndef APSTUDIO_INVOKED
586///////////////////////////////////////////////////////////////////////////// 588/////////////////////////////////////////////////////////////////////////////
587// 589//
588// Generated from the TEXTINCLUDE 3 resource. 590// Generated from the TEXTINCLUDE 3 resource.
589// 591//
590#define _AFX_NO_SPLITTER_RESOURCES 592#define _AFX_NO_SPLITTER_RESOURCES
591#define _AFX_NO_OLE_RESOURCES 593#define _AFX_NO_OLE_RESOURCES
592#define _AFX_NO_TRACKER_RESOURCES 594#define _AFX_NO_TRACKER_RESOURCES
593#define _AFX_NO_PROPERTY_RESOURCES 595#define _AFX_NO_PROPERTY_RESOURCES
594 596
595#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 597#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
596#ifdef _WIN32 598#ifdef _WIN32
597LANGUAGE 9, 1 599LANGUAGE 9, 1
598#pragma code_page(1252) 600#pragma code_page(1252)
599#endif 601#endif
600#include "res\pumpkin.rc2" // non-Microsoft Visual C++ edited resources 602#include "res\PumpKIN.rc2" // non-Microsoft Visual C++ edited resources
601#include "afxres.rc" // Standard components 603#include "afxres.rc" // Standard components
602#endif 604#endif
603///////////////////////////////////////////////////////////////////////////// 605/////////////////////////////////////////////////////////////////////////////
604#endif // not APSTUDIO_INVOKED 606#endif // not APSTUDIO_INVOKED
605 607
diff --git a/resource.h b/resource.h
index fcdda9c..8755a55 100644
--- a/resource.h
+++ b/resource.h
@@ -33,96 +33,97 @@
33#define IDS_LOG_XFERRRQFINISHED 123 33#define IDS_LOG_XFERRRQFINISHED 123
34#define IDS_TITLE_OPTIONS 124 34#define IDS_TITLE_OPTIONS 124
35#define IDS_LOG_WRQSERVE 125 35#define IDS_LOG_WRQSERVE 125
36#define IDS_TFTP_ERROR_FAILEDTORENAME 126 36#define IDS_TFTP_ERROR_FAILEDTORENAME 126
37#define IDS_RENAME_TITLE 127 37#define IDS_RENAME_TITLE 127
38#define IDR_MAINFRAME 128 38#define IDR_MAINFRAME 128
39#define IDS_LOG_TIMEDOUT 128 39#define IDS_LOG_TIMEDOUT 128
40#define IDS_CONFIRMEXIT_TITLE 129 40#define IDS_CONFIRMEXIT_TITLE 129
41#define IDI_RRQ 129 41#define IDI_RRQ 129
42#define IDS_CONFIRMEXIT_TEXT 130 42#define IDS_CONFIRMEXIT_TEXT 130
43#define IDI_WRQ 130 43#define IDI_WRQ 130
44#define IDD_CONFIRM_RRQ 131 44#define IDD_CONFIRM_RRQ 131
45#define IDS_LOG_XFERWRQFINISHED 131 45#define IDS_LOG_XFERWRQFINISHED 131
46#define IDD_CONFIRM_WRQ 132 46#define IDD_CONFIRM_WRQ 132
47#define IDB_BACKGROUND 132 47#define IDB_BACKGROUND 132
48#define IDS_LOG_XFERABORTED 132 48#define IDS_LOG_XFERABORTED 132
49#define IDS_TITLE_PUTREQUEST 133 49#define IDS_TITLE_PUTREQUEST 133
50#define IDS_TITLE_GETREQUEST 134 50#define IDS_TITLE_GETREQUEST 134
51#define IDR_WAVE_RING 135 51#define IDR_WAVE_RING 135
52#define IDS_TALKHEADING 135 52#define IDS_TALKHEADING 135
53#define IDS_WTALKHEADING 135 53#define IDS_WTALKHEADING 135
54#define IDR_WAVE_FINISHED 136 54#define IDR_WAVE_FINISHED 136
55#define IDS_TITLE_BROWSEFILE 136 55#define IDS_TITLE_BROWSEFILE 136
56#define IDD_REQUEST 137 56#define IDD_REQUEST 137
57#define IDS_LOG_RESOLVEFAILED 137 57#define IDS_LOG_RESOLVEFAILED 137
58#define IDS_LOG_FAILEDLOCALFILE 138 58#define IDS_LOG_FAILEDLOCALFILE 138
59#define IDD_PROPS_SOUNDS 138 59#define IDD_PROPS_SOUNDS 138
60#define IDS_LOG_FAILEDTOOPEN 139 60#define IDS_LOG_FAILEDTOOPEN 139
61#define IDM_POPUPS 140 61#define IDM_POPUPS 140
62#define IDS_OTALXHEADING 140 62#define IDS_OTALXHEADING 140
63#define IDS_REGISTRYKEY 141 63#define IDS_REGISTRYKEY 141
64#define IDS_KLEVERNET_URL 142 64#define IDS_KLEVERNET_URL 142
65#define IDR_WAVE_ABORTED 142 65#define IDR_WAVE_ABORTED 142
66#define IDS_LOGTIMEFORMAT 143 66#define IDS_LOGTIMEFORMAT 143
67#define IDS_DROPFILES_TITLE 144 67#define IDS_DROPFILES_TITLE 144
68#define IDS_NOMULTIPLEDROP_TEXT 145 68#define IDS_NOMULTIPLEDROP_TEXT 145
69#define IDI_BROWSE 145 69#define IDI_BROWSE 145
70#define IDS_LOG_REQUESTING 146 70#define IDS_LOG_REQUESTING 146
71#define IDS_LOG_SENDING 147 71#define IDS_LOG_SENDING 147
72#define IDS_WTALKAT 148 72#define IDS_WTALKAT 148
73#define IDS_OTALXAT 149 73#define IDS_OTALXAT 149
74#define IDI_PLAY 149 74#define IDI_PLAY 149
75#define IDS_TFTP_ERROR_TSIZE 150 75#define IDS_TFTP_ERROR_TSIZE 150
76#define IDS_TFTP_ERROR_BSIZE 151 76#define IDS_TFTP_ERROR_BSIZE 151
77#define IDS_TFTP_ERROR_TOUT 152 77#define IDS_TFTP_ERROR_TOUT 152
78#define IDS_SELECT_TFTPROOT 153 78#define IDS_SELECT_TFTPROOT 153
79#define IDS_FILTER_WAV 154 79#define IDS_FILTER_WAV 154
80#define IDS_TITLE_WAV 155 80#define IDS_TITLE_WAV 155
81#define IDS_BOX_CANTBIND 156
81#define IDC_KLEVERNET 1000 82#define IDC_KLEVERNET 1000
82#define IDC_CONNECTIONS 1001 83#define IDC_CONNECTIONS 1001
83#define IDC_LOG 1003 84#define IDC_LOG 1003
84#define IDC_GET 1004 85#define IDC_GET 1004
85#define IDC_PUT 1005 86#define IDC_PUT 1005
86#define IDC_ABORT 1006 87#define IDC_ABORT 1006
87#define IDC_EXIT 1007 88#define IDC_EXIT 1007
88#define IDC_TFTPROOT 1008 89#define IDC_TFTPROOT 1008
89#define IDC_TFTPSUBDIRS 1009 90#define IDC_TFTPSUBDIRS 1009
90#define IDC_RRQ_GIVEALL 1010 91#define IDC_RRQ_GIVEALL 1010
91#define IDC_RRQ_ALWAYSCONFIRM 1011 92#define IDC_RRQ_ALWAYSCONFIRM 1011
92#define IDC_RRQ_DENYALL 1012 93#define IDC_RRQ_DENYALL 1012
93#define IDC_WRQ_TAKEALL 1013 94#define IDC_WRQ_TAKEALL 1013
94#define IDC_WRQ_PROMPTEXISTING 1014 95#define IDC_WRQ_PROMPTEXISTING 1014
95#define IDC_WRQ_ALWAYSCONFIRM 1015 96#define IDC_WRQ_ALWAYSCONFIRM 1015
96#define IDC_WRQ_DENYALL 1016 97#define IDC_WRQ_DENYALL 1016
97#define IDC_PROMPTTIMEOUT 1017 98#define IDC_PROMPTTIMEOUT 1017
98#define IDC_LISTENPORT 1018 99#define IDC_LISTENPORT 1018
99#define IDC_LISTENSPIN 1019 100#define IDC_LISTENSPIN 1019
100#define IDC_SPEAKPORT 1020 101#define IDC_SPEAKPORT 1020
101#define IDC_SPEAKSPIN 1021 102#define IDC_SPEAKSPIN 1021
102#define IDC_MAXUDPSIZE 1022 103#define IDC_MAXUDPSIZE 1022
103#define IDC_MAXUDPSPIN 1023 104#define IDC_MAXUDPSPIN 1023
104#define IDC_TIMEOUT 1024 105#define IDC_TIMEOUT 1024
105#define IDC_TIMESPIN 1025 106#define IDC_TIMESPIN 1025
106#define IDC_OPTIONS 1026 107#define IDC_OPTIONS 1026
107#define IDC_BLOCKSIZE 1026 108#define IDC_BLOCKSIZE 1026
108#define IDC_BSIZESPIN 1027 109#define IDC_BSIZESPIN 1027
109#define IDC_HOST 1028 110#define IDC_HOST 1028
110#define IDC_FILE 1029 111#define IDC_FILE 1029
111#define IDC_RENAME 1030 112#define IDC_RENAME 1030
112#define IDC_REMOTEFILE 1030 113#define IDC_REMOTEFILE 1030
113#define IDC_RESUME 1031 114#define IDC_RESUME 1031
114#define IDC_REFRESH 1032 115#define IDC_REFRESH 1032
115#define IDC_BROWSE 1034 116#define IDC_BROWSE 1034
116#define IDC_TALKS 1035 117#define IDC_TALKS 1035
117#define IDC_LOCALFILE 1036 118#define IDC_LOCALFILE 1036
118#define IDC_TYPE 1037 119#define IDC_TYPE 1037
119#define IDC_BSIZE 1039 120#define IDC_BSIZE 1039
120#define IDC_RING 1041 121#define IDC_RING 1041
121#define IDC_RING_BROWSE 1042 122#define IDC_RING_BROWSE 1042
122#define IDC_RING_PLAY 1043 123#define IDC_RING_PLAY 1043
123#define IDC_FINISHED 1044 124#define IDC_FINISHED 1044
124#define IDC_FINISHED_BROWSE 1045 125#define IDC_FINISHED_BROWSE 1045
125#define IDC_FINISHED_PLAY 1046 126#define IDC_FINISHED_PLAY 1046
126#define IDC_ABORTED 1047 127#define IDC_ABORTED 1047
127#define IDC_ABORTED_BROWSE 1048 128#define IDC_ABORTED_BROWSE 1048
128#define IDC_ABORTED_PLAY 1049 129#define IDC_ABORTED_PLAY 1049