author | Michael Krelin <hacker@klever.net> | 2004-11-03 21:50:28 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2004-11-03 21:50:28 (UTC) |
commit | 5f552506513653f08acc6921b8c158489a7ebbbb (patch) (side-by-side diff) | |
tree | 74ab06cf90c488915b87f48e74359554521cbec9 | |
parent | 4435ed85c3acb4df42135e009b133fb8e9d2f09c (diff) | |
download | pumpkin-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
-rw-r--r-- | PumpKINDlg.cpp | 1 | ||||
-rw-r--r-- | pumpkin.rc | 10 | ||||
-rw-r--r-- | resource.h | 1 |
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 @@ -306,48 +306,49 @@ void CPumpKINDlg::OnPaint() GetClientRect(&rc);
for(int x=-m_bitmapBack.bmWidth*2/4;x<rc.Width();x+=m_bitmapBack.bmWidth)
for(int y=-m_bitmapBack.bmHeight*2/4;y<rc.Height();y+=m_bitmapBack.bmHeight)
pDC.BitBlt(x,y,m_bitmapBack.bmWidth,m_bitmapBack.bmHeight,&bmpDC,0,0,SRCCOPY);
bmpDC.DeleteDC();
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CPumpKINDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
int CPumpKINDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
m_Listener.m_Daddy=this;
if(!m_Listener.Create(m_ListenPort,SOCK_DGRAM)){
TRACE0("Failed to create socket\n");
+ AfxMessageBox(IDS_BOX_CANTBIND,MB_OK|MB_ICONEXCLAMATION);
return -1;
}
if(!m_Trayer->Create(NULL,"PumpKIN TrayIcon",WS_CHILD,CRect(0,0,0,0),this,0)){
TRACE0("Failed to create trayer\n");
return -1;
}
NOTIFYICONDATA nid;
memset(&nid,0,sizeof(nid));
nid.cbSize=sizeof(nid);
nid.hWnd=m_Trayer->m_hWnd;
nid.uID=IDC_TRAYICON;
nid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
nid.uCallbackMessage=WM_TRAYICON;
nid.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
// *** Load from resource
strcpy(nid.szTip,"PumpKIN");
VERIFY(Shell_NotifyIcon(NIM_ADD,&nid));
return 0;
}
void CListenSocket::OnReceive(int nErrorCode)
@@ -61,51 +61,52 @@ END /////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_RRQ ICON DISCARDABLE "res\\wrq.ico"
IDI_WRQ ICON DISCARDABLE "res\\rrq.ico"
IDI_BROWSE ICON DISCARDABLE "shared-data/browse-icon.ico"
IDR_MAINFRAME ICON DISCARDABLE "res\\pumpkin.ico"
IDI_PLAY ICON DISCARDABLE "shared-data/play-icon.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 74
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About PumpKIN"
FONT 8, "MS Sans Serif"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,7,17,18,20
- LTEXT "PumpKIN, Version 2.5.1-trunk",IDC_STATIC,40,15,119,8,SS_NOPREFIX
- LTEXT "Copyright © 1997-2004 Klever Group",IDC_STATIC,40,30,170,
- 8
+ LTEXT "PumpKIN, Version 2.5.1-trunk",IDC_STATIC,40,15,119,8,
+ SS_NOPREFIX
+ LTEXT "Copyright © 1997-2004 Klever Group",IDC_STATIC,40,30,
+ 170,8
DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP
PUSHBUTTON "http://www.klever.net/",IDC_KLEVERNET,124,53,86,14
END
IDD_PUMPKIN_DIALOG DIALOGEX 0, 0, 362, 191
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES | WS_EX_APPWINDOW
CAPTION " PumpKIN"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
CONTROL "List1",IDC_CONNECTIONS,"SysListView32",LVS_REPORT |
LVS_AUTOARRANGE | WS_BORDER | WS_TABSTOP,7,7,295,108,
WS_EX_DLGMODALFRAME
PUSHBUTTON "&Get File",IDC_GET,305,7,50,17,BS_NOTIFY,
WS_EX_CLIENTEDGE
PUSHBUTTON "&Put File",IDC_PUT,305,25,50,17,BS_NOTIFY,
WS_EX_CLIENTEDGE
PUSHBUTTON "&Abort xfer",IDC_ABORT,305,43,50,17,BS_NOTIFY,
WS_EX_CLIENTEDGE
PUSHBUTTON "&Options",IDC_OPTIONS,305,61,50,17,BS_NOTIFY,
WS_EX_CLIENTEDGE
PUSHBUTTON "E&xit",IDC_EXIT,305,79,50,17,BS_NOTIFY,WS_EX_CLIENTEDGE
PUSHBUTTON "&Help",ID_HELP,305,97,50,17,BS_NOTIFY,WS_EX_CLIENTEDGE
@@ -549,57 +550,58 @@ BEGIN IDC_OPTIONS "Set PumpKIN options"
IDC_REFRESH "Refresh talks list"
IDC_BROWSE "Browse"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_HELP "Read help on PumpKIN"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_DROPFILES_TITLE "Drop Files"
IDS_NOMULTIPLEDROP_TEXT "You can't drop more than one file here. Only the first one will be accepted"
IDS_LOG_REQUESTING "Requesting '%s' from '%s'"
IDS_LOG_SENDING "Sending '%s' to '%s'"
IDS_WTALKAT "@"
IDS_OTALXAT " at "
IDS_TFTP_ERROR_TSIZE "Invalid transfer size"
IDS_TFTP_ERROR_BSIZE "Invalid block size"
IDS_TFTP_ERROR_TOUT "Invalid timeout"
IDS_SELECT_TFTPROOT "Select TFTP filesystem root.."
IDS_FILTER_WAV "Sound Files (*.wav)|*.wav||"
IDS_TITLE_WAV "Select sound.."
+ IDS_BOX_CANTBIND "Failed to create listening socket. The port may be in use by another application."
END
STRINGTABLE DISCARDABLE
BEGIN
AFX_IDS_APP_TITLE "PUMPKIN"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif
-#include "res\pumpkin.rc2" // non-Microsoft Visual C++ edited resources
+#include "res\PumpKIN.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -57,48 +57,49 @@ #define IDS_LOG_RESOLVEFAILED 137
#define IDS_LOG_FAILEDLOCALFILE 138
#define IDD_PROPS_SOUNDS 138
#define IDS_LOG_FAILEDTOOPEN 139
#define IDM_POPUPS 140
#define IDS_OTALXHEADING 140
#define IDS_REGISTRYKEY 141
#define IDS_KLEVERNET_URL 142
#define IDR_WAVE_ABORTED 142
#define IDS_LOGTIMEFORMAT 143
#define IDS_DROPFILES_TITLE 144
#define IDS_NOMULTIPLEDROP_TEXT 145
#define IDI_BROWSE 145
#define IDS_LOG_REQUESTING 146
#define IDS_LOG_SENDING 147
#define IDS_WTALKAT 148
#define IDS_OTALXAT 149
#define IDI_PLAY 149
#define IDS_TFTP_ERROR_TSIZE 150
#define IDS_TFTP_ERROR_BSIZE 151
#define IDS_TFTP_ERROR_TOUT 152
#define IDS_SELECT_TFTPROOT 153
#define IDS_FILTER_WAV 154
#define IDS_TITLE_WAV 155
+#define IDS_BOX_CANTBIND 156
#define IDC_KLEVERNET 1000
#define IDC_CONNECTIONS 1001
#define IDC_LOG 1003
#define IDC_GET 1004
#define IDC_PUT 1005
#define IDC_ABORT 1006
#define IDC_EXIT 1007
#define IDC_TFTPROOT 1008
#define IDC_TFTPSUBDIRS 1009
#define IDC_RRQ_GIVEALL 1010
#define IDC_RRQ_ALWAYSCONFIRM 1011
#define IDC_RRQ_DENYALL 1012
#define IDC_WRQ_TAKEALL 1013
#define IDC_WRQ_PROMPTEXISTING 1014
#define IDC_WRQ_ALWAYSCONFIRM 1015
#define IDC_WRQ_DENYALL 1016
#define IDC_PROMPTTIMEOUT 1017
#define IDC_LISTENPORT 1018
#define IDC_LISTENSPIN 1019
#define IDC_SPEAKPORT 1020
#define IDC_SPEAKSPIN 1021
#define IDC_MAXUDPSIZE 1022
#define IDC_MAXUDPSPIN 1023
#define IDC_TIMEOUT 1024
|