summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--COPYING2
-rw-r--r--KTAGS2
-rw-r--r--T42.rc14
-rw-r--r--help/T42.rtf4
-rw-r--r--help/T42.xml5
-rw-r--r--install/install.cpp9
-rw-r--r--install/install.rc10
7 files changed, 29 insertions, 17 deletions
diff --git a/COPYING b/COPYING
index 9abe63f..b71fe11 100644
--- a/COPYING
+++ b/COPYING
@@ -1,19 +1,19 @@
-Copyright (c) 1998-2004 Klever Group (http://www.klever.net/)
+Copyright (c) 1998-2005 Klever Group (http://www.klever.net/)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/KTAGS b/KTAGS
index 53a4c56..51936ef 100644
--- a/KTAGS
+++ b/KTAGS
@@ -1,12 +1,12 @@
about-date T42.rc /LTEXT\s\+"Copyright /;" kind:d
about-version T42.rc /LTEXT\s\+"T42, Version/;" kind:v
help-license-date ./help/T42.xml /<license\s/;" kind:d
help-news ./help/T42.xml /<newsfor\s/
-install-version ./install/install.cpp /^#define\s\+KINAME\s\+"/;" kind:v
+install-version ./install/install.cpp /^#define\s\+VERSION\s\+"/;" kind:v
install-vsinfo-date install/install.rc /^\s\+VALUE\s\+"LegalCopyright",/;" kind:d
install-vsinfo-numeric-version install/install.rc /^\s\+FILEVERSION\s\+/;" kind:v
install-vsinfo-string-version install/install.rc /^\s\+VALUE\s\+"FileVersion",/;" kind:v
license-date COPYING :1;" kind:d
vsinfo-date T42.rc /VALUE\s\+"LegalCopyright",/;" kind:d
vsinfo-numeric-version T42.rc /^\s\+FILEVERSION\s\+/;" kind:v
vsinfo-string-version T42.rc /^\s\+VALUE\s\+"FileVersion",/;" kind:v
diff --git a/T42.rc b/T42.rc
index 6c51796..1bc84ac 100644
--- a/T42.rc
+++ b/T42.rc
@@ -1,517 +1,517 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"#ifdef _WIN32\r\n"
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#endif\r\n"
"#include ""res\\T42.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON DISCARDABLE "res\\T42.ico"
IDR_T42FRAME ICON DISCARDABLE "res\\IDR_T42F.ico"
IDI_FULLCUP ICON DISCARDABLE "res\\fullcup.ico"
IDR_FULLT42 ICON DISCARDABLE "res\\IDR_FULL.ico"
IDI_BROWSE ICON DISCARDABLE "shared-data/browse-icon.ico"
IDI_T42CALLNEW ICON DISCARDABLE "res\\T42calln.ico"
IDI_T42CALLPROCESSED ICON DISCARDABLE "res\\T42callp.ico"
IDR_FLIPPEDCUP ICON DISCARDABLE "res\\IDR_FLIP.ico"
IDI_PREPLAY ICON DISCARDABLE "shared-data/play-icon.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 194, 78
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About T42"
FONT 8, "MS Sans Serif"
BEGIN
- LTEXT "T42, Version 1.5",IDC_STATIC,37,10,119,8,SS_NOPREFIX
- LTEXT "Copyright © 1998-2004 Klever Group",IDC_STATIC,37,25,119,8
+ LTEXT "T42, Version 1.5.1",IDC_STATIC,37,10,119,8,SS_NOPREFIX
+ LTEXT "Copyright © 1998-2005 Klever Group",IDC_STATIC,37,25,119,8
ICON IDR_MAINFRAME,IDC_STATIC,7,34,18,20
ICON IDR_FLIPPEDCUP,IDC_STATIC,166,34,18,20
DEFPUSHBUTTON "OK",IDOK,81,40,32,14,WS_GROUP
PUSHBUTTON "http://www.klever.net/",IDC_KLEVERNET,107,59,80,12
END
IDD_T42_DIALOG DIALOGEX 0, 0, 221, 200
STYLE DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE | WS_EX_CONTEXTHELP |
WS_EX_APPWINDOW
CAPTION " Tea For Two "
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
CTEXT "On &Call:",IDC_STATIC,7,7,93,56,0,WS_EX_DLGMODALFRAME |
WS_EX_CLIENTEDGE
COMBOBOX IDC_ONCALL,13,19,81,76,CBS_DROPDOWNLIST | WS_VSCROLL |
WS_TABSTOP
CTEXT "When &Away:",IDC_STATIC,13,33,81,8
COMBOBOX IDC_ONCALLAWAY,13,43,81,76,CBS_DROPDOWNLIST | WS_VSCROLL |
WS_TABSTOP
CONTROL "Calls",IDC_CALLS,"SysListView32",LVS_REPORT | WS_BORDER |
WS_TABSTOP,7,66,207,67
CONTROL "Recorded Message..",IDC_PREVIEW,"RICHEDIT",WS_VSCROLL |
WS_TABSTOP | 0xc184,7,134,207,59
PUSHBUTTON "&Tea",IDC_TALK,173,7,41,13
PUSHBUTTON "&Options",IDC_OPTIONS,173,21,41,13
PUSHBUTTON "E&xit",IDOK,173,35,41,13
PUSHBUTTON "&Help",ID_HELP,173,49,41,13
DEFPUSHBUTTON "",IDCANCEL,0,0,6,6,NOT WS_VISIBLE
CONTROL "A&way",IDC_AWAY,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE |
BS_MULTILINE | WS_TABSTOP,101,7,41,56,
WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE |
WS_EX_STATICEDGE
END
IDD_REMOTE DIALOGEX 0, 0, 153, 111
STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE
CAPTION " It's party time!"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
LTEXT "&Dear ",IDC_STATIC,7,9,18,8
COMBOBOX IDC_CALLEE,29,7,117,56,CBS_DROPDOWN | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
LTEXT "yes, you on &tty ",IDC_STATIC,41,23,48,8
COMBOBOX IDC_TTY,98,21,48,79,CBS_DROPDOWN | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
LTEXT "I'd love to have a cup of tea with you. How about right now?",
IDC_STATIC,19,36,112,28
LTEXT "Yours,",IDC_STATIC,7,67,22,8
COMBOBOX IDC_CALLER,46,73,100,30,CBS_DROPDOWN | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK",IDOK,18,90,50,14
PUSHBUTTON "Cancel",IDCANCEL,84,90,50,14
END
IDD_T42VIEW DIALOG DISCARDABLE 0, 0, 185, 93
STYLE DS_3DLOOK | WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "",IDC_SPLIT,"Static",SS_SIMPLE | SS_NOTIFY,93,1,8,91
END
IDD_ANNOUNCE DIALOGEX 0, 0, 141, 139
STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP |
WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE
CAPTION " It's a party and you're invited!"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "&Yes, I'd appreciate some milk",IDOK,7,81,127,14
PUSHBUTTON "Not now, have a cup of tea with my &secretary",
IDC_SECRETARY,7,96,127,21,BS_MULTILINE
PUSHBUTTON "&No, thanks, I'm out to cofee house.",IDCANCEL,7,118,
127,14
LTEXT "Dear ",IDC_STATIC,7,7,18,8
LTEXT "..",IDC_CALLEE,27,7,107,8,SS_NOPREFIX
RTEXT "..",IDC_TTY,7,16,127,10
LTEXT "I'd love to have a cup of tea with you. How about right now?",
IDC_STATIC,15,28,112,19
LTEXT "Yours,",IDC_STATIC,15,50,21,8
RTEXT "..",IDC_CALLER,7,59,127,20,SS_NOPREFIX
PUSHBUTTON "",IDC_NOTHERE,0,132,6,6,NOT WS_VISIBLE | NOT WS_TABSTOP
PUSHBUTTON "",IDC_REFUSE,7,132,6,6,NOT WS_VISIBLE | NOT WS_TABSTOP
END
IDD_OPTIONS_SOUNDS DIALOG DISCARDABLE 0, 0, 210, 154
STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Sounds"
FONT 8, "MS Sans Serif"
BEGIN
LTEXT "&Bell in T42 conversation window:",IDC_STATIC,7,5,83,16
COMBOBOX IDC_T42BELL,90,5,83,65,CBS_DROPDOWN | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Bell Browse",IDC_T42BELL_BROWSE,175,5,13,13,BS_ICON |
BS_CENTER | BS_VCENTER
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,25,196,1
LTEXT "&Prompt sound alert:",IDC_STATIC,7,30,83,8
COMBOBOX IDC_T42PROMPT,90,30,83,65,CBS_DROPDOWN | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Prompt Browse",IDC_T42PROMPT_BROWSE,175,30,13,13,
BS_ICON | BS_CENTER | BS_VCENTER
CONTROL "&Loop sound",IDC_T42PROMPT_LOOP,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,36,40,53,8
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,50,196,1
LTEXT "&Wake-up sound alert:",IDC_STATIC,7,55,83,16
COMBOBOX IDC_T42WAKE,90,55,83,65,CBS_DROPDOWN | CBS_AUTOHSCROLL |
CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Wake Browse",IDC_T42WAKE_BROWSE,175,55,13,13,BS_ICON |
BS_CENTER | BS_VCENTER
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,75,196,1
PUSHBUTTON "Bell Play",IDC_T42BELL_PLAY,190,5,13,13,BS_ICON |
BS_CENTER | BS_VCENTER
PUSHBUTTON "Prompt Play",IDC_T42PROMPT_PLAY,190,30,13,13,BS_ICON |
BS_CENTER | BS_VCENTER
PUSHBUTTON "Wake Play",IDC_T42WAKE_PLAY,190,55,13,13,BS_ICON |
BS_CENTER | BS_VCENTER
END
IDD_OPTIONS_FONTS DIALOG DISCARDABLE 0, 0, 210, 154
STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Format"
FONT 8, "MS Sans Serif"
BEGIN
LTEXT "F&ormat:",IDC_STATIC,7,5,24,8
LISTBOX IDC_FORMATNAME,7,15,60,85,LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_TABSTOP
LTEXT "Font &face:",IDC_STATIC,70,5,33,8
COMBOBOX IDC_FACES,70,15,90,72,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
LTEXT "Font &size:",IDC_STATIC,163,5,31,8
COMBOBOX IDC_FONTSIZE,163,15,40,72,CBS_DROPDOWN | CBS_AUTOHSCROLL |
WS_VSCROLL | WS_TABSTOP
CONTROL "&Bold",IDC_BOLD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
70,30,39,10
CONTROL "&Italic",IDC_ITALIC,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,115,30,31,10
CONTROL "&Underline",IDC_UNDERLINE,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,157,30,46,10
CONTROL "Strike&out",IDC_STRIKEOUT,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,70,43,44,10
COMBOBOX IDC_CHARSET,115,41,88,59,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
CONTROL "&Foreground color",IDC_FORECOLOR,"Button",BS_OWNERDRAW |
WS_TABSTOP,70,56,64,14
CONTROL "&Background color",IDC_BACKCOLOR,"Button",BS_OWNERDRAW |
WS_TABSTOP,139,56,64,14
CONTROL "Sample",IDC_SAMPLE,"RICHEDIT",WS_DISABLED | WS_TABSTOP |
0xc184,70,72,133,28
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,105,196,1
LTEXT "..",IDC_TIP,7,110,196,39
END
IDD_OPTIONS_SECRETARY DIALOG DISCARDABLE 0, 0, 210, 154
STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Secretary"
FONT 8, "MS Sans Serif"
BEGIN
LTEXT "&Greeting message:",IDC_STATIC,7,7,60,8
EDITTEXT IDC_GREETING,7,16,196,61,ES_MULTILINE | ES_AUTOVSCROLL |
ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL
LTEXT "After greeting, stop recording when",IDC_STATIC,7,77,
111,8
CONTROL "&more than",IDC_DOBYTELIMIT,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,7,85,47,12
LTEXT "&characters entered, or",IDC_STATIC,96,87,70,8
EDITTEXT IDC_BYTELIMIT,55,85,40,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_CHARSPIN,"msctls_updown32",UDS_WRAP |
UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |
UDS_ARROWKEYS | UDS_NOTHOUSANDS,84,85,11,12
CONTROL "&time limit of",IDC_DOTIMELIMIT,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,7,98,47,12
LTEXT "min&utes exceeded.",IDC_STATIC,96,100,63,8
EDITTEXT IDC_TIMELIMIT,55,98,40,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_TIMESPIN,"msctls_updown32",UDS_WRAP |
UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |
UDS_ARROWKEYS | UDS_NOTHOUSANDS,85,98,10,12
CONTROL "Stop automatically &accepting calls when",
IDC_DOWINLIMIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,
115,140,12
LTEXT "calls in &progress",IDC_STATIC,97,129,54,8
EDITTEXT IDC_WINLIMIT,55,127,40,12,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "Spin1",IDC_WINSPIN,"msctls_updown32",UDS_WRAP |
UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY |
UDS_ARROWKEYS | UDS_NOTHOUSANDS,85,127,10,12
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,113,196,1
END
IDD_OPTIONS_GENERAL DIALOG DISCARDABLE 0, 0, 210, 154
STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "General"
FONT 8, "MS Sans Serif"
BEGIN
LTEXT "T42 '&ntalk' daemon listening on port ",IDC_STATIC,7,7,
114,8
EDITTEXT IDC_NTALKPORT,123,5,80,12,ES_LOWERCASE | ES_AUTOHSCROLL
CONTROL "Spin1",IDC_NTALKPORTSPIN,"msctls_updown32",
UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,193,5,10,
12
LTEXT "Note: you will need to restart T42 if you change ntalk demon port number.",
IDC_STATIC,40,20,163,20
END
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,5,0,0
- PRODUCTVERSION 1,5,0,0
+ FILEVERSION 1,5,1,0
+ PRODUCTVERSION 1,5,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0"
VALUE "FileDescription", "T42, unix talk/ntalk implementation\0"
- VALUE "FileVersion", "1, 5, 0, 0\0"
+ VALUE "FileVersion", "1, 5, 1, 0\0"
VALUE "InternalName", "T42\0"
- VALUE "LegalCopyright", "Copyright © 1998-2004 Klever Group (http://www.klever.net/)\0"
+ VALUE "LegalCopyright", "Copyright © 1998-2005 Klever Group (http://www.klever.net/)\0"
VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0"
VALUE "OriginalFilename", "T42.EXE\0"
VALUE "ProductName", "T42\0"
- VALUE "ProductVersion", "1, 5, 0, 0\0"
+ VALUE "ProductVersion", "1, 5, 1, 0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 187
TOPMARGIN, 7
BOTTOMMARGIN, 71
END
IDD_T42_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 214
TOPMARGIN, 7
BOTTOMMARGIN, 193
END
IDD_REMOTE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 146
TOPMARGIN, 7
BOTTOMMARGIN, 104
END
IDD_ANNOUNCE, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 134
TOPMARGIN, 7
BOTTOMMARGIN, 132
END
IDD_OPTIONS_SOUNDS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 203
VERTGUIDE, 90
VERTGUIDE, 175
TOPMARGIN, 5
BOTTOMMARGIN, 149
END
IDD_OPTIONS_FONTS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 203
VERTGUIDE, 67
VERTGUIDE, 70
TOPMARGIN, 5
BOTTOMMARGIN, 149
HORZGUIDE, 100
END
IDD_OPTIONS_SECRETARY, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 203
TOPMARGIN, 7
BOTTOMMARGIN, 147
HORZGUIDE, 77
END
IDD_OPTIONS_GENERAL, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 203
TOPMARGIN, 5
BOTTOMMARGIN, 149
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDR_T42FRAME MENU DISCARDABLE
BEGIN
POPUP "&Tea"
BEGIN
MENUITEM "Remote &user", ID_TALK_REMOTEUSER
MENUITEM "&Close connection", ID_TALK_ABORT
MENUITEM "&Re-connect", ID_TALK_RECONNECT
MENUITEM SEPARATOR
MENUITEM "&Save", ID_TEA_SAVE
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_TALK_CLOSE
END
POPUP "&Edit"
BEGIN
MENUITEM "&Copy\tCtrl-INS", ID_EDIT_COPY
MENUITEM "&Paste\tShift-INS", ID_EDIT_PASTE
END
POPUP "&Sleep"
BEGIN
MENUITEM "&Sleep\tCtrl-S", ID_SLEEP_SLEEP
MENUITEM SEPARATOR
MENUITEM "Sleep on &minimize", ID_SLEEP_SLEEPONMINIMIZE
MENUITEM "Minimi&ze on sleep", ID_SLEEP_MINIMIZEONSLEEP
POPUP "&Wake-up action"
BEGIN
MENUITEM "Make &sound", ID_SLEEP_WAKEUPACTION_MAKESOUND
MENUITEM "&Pop-up", ID_SLEEP_WAKEUPACTION_POPUP
END
END
POPUP "&Window"
BEGIN
MENUITEM "Split e&qually", ID_WINDOW_SPLITEQUALLY
MENUITEM "&Save layout", ID_WINDOW_SAVELAYOUT
MENUITEM "&Autosave layout", ID_WINDOW_AUTOSAVELAYOUT
MENUITEM SEPARATOR
MENUITEM "&Horizontal split", ID_WINDOW_HORIZONTALSPLIT
MENUITEM "&Vertical split", ID_WINDOW_VERTICALSPLIT
MENUITEM SEPARATOR
MENUITEM "&Hide on minimize", ID_WINDOW_HIDEINTRAYONMINIMIZE
END
END
IDM_POPUPS MENU DISCARDABLE
BEGIN
POPUP "Tray"
BEGIN
MENUITEM "Order some &tea", ID_TRAY_T42
MENUITEM "&Away", ID_TRAY_AWAY
MENUITEM "Show main &window", ID_TRAY_SHOWMAINWINDOW
MENUITEM "&Options", ID_TRAY_OPTIONS
MENUITEM "E&xit", ID_TRAY_EXIT
END
POPUP "Call Log"
BEGIN
MENUITEM "&Call back", ID_CALLLOG_CALLBACK
MENUITEM "&Delete", ID_CALLLOG_DELETE
MENUITEM "&Save to file..", ID_CALLLOG_SAVETOFILE
MENUITEM SEPARATOR
MENUITEM "Mark as &new", ID_CALLLOG_MARKASNEW
MENUITEM "Mark as &processed", ID_CALLLOG_MARKASPROCESSED
MENUITEM SEPARATOR
MENUITEM "&Empty Log", ID_CALLLOG_EMPTYLOG
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDR_T42FRAME ACCELERATORS DISCARDABLE
BEGIN
"C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
"S", ID_SLEEP_SLEEP, VIRTKEY, CONTROL, NOINVERT
"V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT
VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog Info
//
IDD_REMOTE DLGINIT
BEGIN
IDC_TTY, 0x403, 5, 0
0x7474, 0x3079, "\000"
IDC_TTY, 0x403, 6, 0
0x7474, 0x7079, 0x0030,
diff --git a/help/T42.rtf b/help/T42.rtf
index 5768d8f..5032e72 100644
--- a/help/T42.rtf
+++ b/help/T42.rtf
@@ -1,194 +1,196 @@
{\rtf1\ansi
@{\footnote
THIS FILE WAS AUTOMATICALLY GENERATED FROM XML DOCUMENT.
DO NOT MODIFY THIS FILE DIRECTLY. EDIT XML DOCUMENT INSTEAD
}
{\fonttbl{\f0\froman Times New Roman;}{\f1\fswiss Arial;}{\f3\froman Symbol;}}{\colortbl;
\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;
\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}
\pard\plain\keepn
#{\footnote About}
${\footnote About T42}
{ \f1\fs18\b\sb120 About {\b T42}}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b T42} is our {\i Win32} implementation of {\b\cf6 unix}{\b\cf6 ntalk} protocol.
\par\sa120\sb120\qj\pard \f1\fs18\sb120 It features:\pard
\par \fi0\li0 \bullet {\b Multihoming} - works properly on multihomed machines (ie. accepts connections/issues requests on all interfaces);
\par \fi0\li0 \bullet {\b Your personal secretary} - technically speaking, something like answering machine;
\par \fi0\li0 \bullet {\b Sleep function} - be notified of activities in backgrounded windows;\pard
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Designed to be compatible with our {\i TFTP} client/server, {\uldb {\b PumpKIN}}{\v %!ExecFile("http://kin.klever.net/pumpkin/")}, that allows you to exchange files with your party while having talk sessions.
\par\sa120\sb120\qj\pard \f1\fs18\sb120
\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b {\i Enjoy!}}
{
-\par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1998-2004 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")}
+\par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1998-2005 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")}
\par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
\par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
}
\par \sa0\sb120\ql \f1\fs16 Author: {\b\uldb\cf11 Michael Krelin ({\i hacker@klever.net})}{\v %!ExecFile("mailto:hacker@klever.net")}
\par \sa0\sb0 Fan mail send to {\i\uldb gefilte@klever.net}{\v %!ExecFile("mailto:gefilte@klever.net")}
\page
\pard\plain
#{\footnote News}
${\footnote What's New}
+\par\pard\plain\f1\fs24\qc\cf2\b 1.5.1 - August 6th, 2005
+\par\pard\plain\fi0\li0\f1\fs18 \bullet Fixed uninstall procedure so that it works on XP
\par\pard\plain\f1\fs24\qc\cf2\b 1.5 - July 11th, 2004
\par\pard\plain\fi0\li0\f1\fs18 \bullet Change of license and opening the source
\page
\pard\plain\keepn
#{\footnote Using}
${\footnote Using T42}
{ \f1\fs18\b\sb120 Using {\b T42}}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Once you've installed {\b T42}, run it from {\i Programs/Klever Group} menu. A small cup icon will appear in the notification tray area.
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Left-click on the icon will get you to the {\uldb Main Window}{\v MainWindow}, right-click brings up the following menu:\pard
\par \fi0\li0 \bullet {\b Order some tea} - Initiates talk session. This will open new {\uldb Conversation Window}{\v ConversationWindow} and prompt you for request details.
\par \fi0\li0 \bullet {\b Away} - Toggle your away mode. It affects the way {\b T42} handles incoming calls. See {\uldb Main Window}{\v Mainwindow} for details.
\par \fi0\li0 \bullet {\b Show Main Window} - Toggle visibility of the {\uldb Main Window}{\v MainWindow} from which you can control some of {\b T42} options and read/maintain your recorded messages.
\par \fi0\li0 \bullet {\b Options} - Select this to bring up {\uldb Options dialog}{\v Options} so that you can customize {\b T42} to suit your needs.
\par \fi0\li0 \bullet {\b Exit} - This is not likely to happen, but if you want to exit {\b T42} and unload it from memory - that's what {\b Exit} is for.\pard
\page
\pard\plain\keepn
#{\footnote MainWindow}
${\footnote Main Window}
{ \f1\fs18\b\sb120 Main {\b T42} Window}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Main Window is a {\b T42} Control Center, it's exactly mouse-click away from most of {\b T42} functions. It consists of\pard
\par \fi0\li0 \bullet {\b On Call} and {\b On Call when away} dropdown lists let you select the action to take when incoming call occurs in 'normal' and 'away' mode. Chose one of
\pard
\par \fi0\li0 \bullet {\i Prompt} - Ask you what to do before taking any actions;
\par \fi0\li0 \bullet {\i Secretary} - Relay incoming calls to your {\uldb personal secretary}{\v SecretaryOptions}. Some prefer to call it answering machine.
\par \fi0\li0 \bullet {\i Not here} - Tell the caller you're not here ({\i not logged in}) and terminate connection.
\par \fi0\li0 \bullet {\i Refuse} - Tell the caller you're not accepting messages and terminate connection.
\par \fi0\li0 \bullet {\i Ignore} - Pretend that you didn't notice.\pard
\par \fi0\li0 \bullet {\b Away} button toggles your away mode. When an incoming call occurs {\b T42} takes action based upon away mode and options selected in {\b On Call} and {\b On Call when away} dropdown lists.
\par \fi0\li0 \bullet {\b Tea} button initiates new talk session. This will open new {\uldb Conversation Window}{\v ConversationWindow} and prompt you for {\uldb request details}{\v RemoteDialog}.
\par \fi0\li0 \bullet {\b Options} button brings up {\uldb Configuration Dialog}{\v Options} that lets you customize {\b T42} according to your needs.
\par \fi0\li0 \bullet {\b Exit} - button closes {\b T42} windows and removes {\b T42} from memory.
\par \fi0\li0 \bullet {\b Help} button enters the help system. If you got this far, you probably don't need further explanations.
\par \fi0\li0 \bullet {\b Recorded messages} list this is the list of messages recorded by your secretary. Messages are sorted by age, last ones first. Unanswered messages have a brighter cup icon unless you've explicitly marked the message as processed (see below for details). Right-click on the list entry presents you with popup menu from which you can:
\pard
\par \fi0\li0 \bullet {\i Call back} the person who left the message. This is identical to initiating new talk session and entering caller's data manually. Note: if the caller has a dynamic IP address and have already disconnected from his ISP and reconnected back this may not work.
\par \fi0\li0 \bullet {\i Delete} selected message(s). If you don't need recorded message anymore you can throw it away by selecting this.
\par \fi0\li0 \bullet {\i Save to file..} menu option lets you save message into {\i RTF} file. Then you may print message text, import it into your {\b\cf6 MS Word} documents or do with it whatever you want.
\par \fi0\li0 \bullet {\i Mark as new} message lets you force message state to 'unprocessed' which means that it will have brighter cup icon in front of it which is supposed to help you keep track of messages that you need to take care of.
\par \fi0\li0 \bullet {\i Mark as processed} message is the reverse of {\i Mark as new} command.
\par \fi0\li0 \bullet {\i Empty Log} simply removes all messages from the log.\pard
\par \fi0\li0 \bullet {\b Message preview window} - the recorded message itself is shown in this window.\pard
\page
\pard\plain\keepn
#{\footnote AnnounceDialog}
${\footnote Announce Dialog}
{ \f1\fs18\b\sb120 Announce Dialog Window}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 When incoming call occurs and you're set to get a prompt this dialog pops up. This dialog lets you chose what further actions you want {\b T42} to take and see the request details. The dialog looks like this:
\par\sa120\sb120\qj\pard \f1\fs18\sb120 \{bmct announce.bmp\}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Incoming call details are in {\b bold}. The details are:\pard
\par \fi0\li0 \bullet {\b callee name} - this is your name, or what caller thinks it is. ({\i kamel} in this example)
\par \fi0\li0 \bullet {\b tty} - terminal on which remote thinks you're logged on. This is not important for incoming requests. Normally this is only used on unix machines. ({\i tty0} in this example)
\par \fi0\li0 \bullet {\b caller's name} - local username and hostname/IP address of caller. ({\i hacker@localhost} in this example)\pard
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Use {\b Yes, I'd appreciate some milk} button to answer the call and establish talk connection with caller, {\b Not now, have a cup of tea with secretary} to relay the call to your secretary and {\b No, thanks, I'm out to coffee house} to ignore call.
\par\sa120\sb120\qj\pard \f1\fs18\sb120 If you don't answer in 30 seconds the call is relayed to the secretary.
\page
\pard\plain\keepn
#{\footnote Options}
${\footnote Options}
{ \f1\fs18\b\sb120 Options}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Options is a tabbed dialog box where you're supposed to change {\b T42} settings. It consists of\pard
\par \fi0\li0 \bullet {\uldb General tab}{\v GeneralOptions} - tune general {\b T42} options. Not much to set there so far.
\par \fi0\li0 \bullet {\uldb Format tab}{\v FontsOptions} - set up text formats (fonts, colors, etc.) for various windows.
\par \fi0\li0 \bullet {\uldb Sounds tab}{\v SoundsOptions} - customize {\b T42} bells and whistles in this dialog.
\par \fi0\li0 \bullet {\uldb Secretary tab}{\v SecretaryOptions} - teach your secretary manners here.\pard
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Note: you might need to restart {\b T42} for some options to take effect.
\page
\pard\plain\keepn
#{\footnote GeneralOptions}
${\footnote General Options}
{ \f1\fs18\b\sb120 General Options}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Currently you can only set up talk port here. Talk port is the UDP> port {\b\cf6 talk daemon} listens for incoming connections at. You can enter either number of port or service name (as specified in your {\b services} file) here. Do not change this if you don't know what you're doing and don't understand the instructions above.
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Note: you have to restart {\b T42} for this option to take effect.
\page
\pard\plain\keepn
#{\footnote FontsOptions}
${\footnote Fonts Options}
{ \f1\fs18\b\sb120 Fonts}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Set up various fonts for {\b T42} to use according to your own preferences. There are three formats for you to set:\pard
\par \fi0\li0 \bullet {\b Local} - this is what your typing appears as.
\par \fi0\li0 \bullet {\b Remote} - this is what your party's typing should look like.
\par \fi0\li0 \bullet {\b System} - this is what system messages, like disconnection cause, etc. in talk windows look like.\pard
\par\sa120\sb120\qj\pard \f1\fs18\sb120 For each format you can set up {\b Font face}, {\b Font size}, {\b bold}, {\i italic}, {\ul underline}, {\strike strikeout} and {\b character set} to use. For some formats you can also set {\b foreground} and {\b background} colors.
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Note: these settings only affect new windows.
\page
\pard\plain\keepn
#{\footnote SoundsOptions}
${\footnote Sounds Options}
{ \f1\fs18\b\sb120 Sounds}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 This is where you customize {\b T42} bells and whistles, specifically:\pard
\par \fi0\li0 \bullet {\b Bell in {\b T42} window} - the sound to produce when you or your party sends ASCII BELL characters ({\b Ctrl-G}).
\par \fi0\li0 \bullet {\b Prompt sound alert} the sound used to notify you of incoming call. You may also set {\b loop} for this sound to make it continuous for the {\uldb Announce Window}{\v AnnounceDialog} lifetime.
\par \fi0\li0 \bullet {\b Wake-up sound alert} the sound used to let you know that {\b T42} leaves {\b sleep mode} (see {\uldb Conversation Window}{\v ConversationWindow} for details).\pard
\par\sa120\sb120\qj\pard \f1\fs18\sb120 For each sound you can either specify {\b .WAV} file (use browse button to choose it) or internal sound from drop-down list. You can also use play button to check what it sounds like.
\page
\pard\plain\keepn
#{\footnote SecretaryOptions}
${\footnote Secretary Options}
{ \f1\fs18\b\sb120 Secretary}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 This is the place to teach your secretary how to behave. The things you can ask for are:\pard
\par \fi0\li0 \bullet {\b Greeting message} - this is the message your secretary greets caller with. When greeting is transferred your secretary will automatically substitute time limit (see below) instead of {\b %t} and characters limit (see below) instead of {\b %c}.
\par \fi0\li0 \bullet After greeting the caller your secretary will record the message until the caller will exceed either {\b time limit} or {\b character} limit. You may choose to disable either or both limits.
\par \fi0\li0 \bullet You may also limit your secretary's ability to handle multiple calls to provide each caller with better service. Normally the optimal limit depends on your system resources and your callers' activities.\pard
\page
\pard\plain\keepn
#{\footnote RemoteDialog}
${\footnote Remote Dialog}
{ \f1\fs18\b\sb120 Remote Dialog}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Whenever you want to issue talk request you're presented with a dialog in which you can enter your request details, it looks like this:
\par\sa120\sb120\qj\pard \f1\fs18\sb120 \{bmct invite.bmp\}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 The call details are:\pard
\par \fi0\li0 \bullet {\i Callee address} - The address is in the form {\b user@host}, {\i kamel@192.168.168.192} in this example.
\par \fi0\li0 \bullet {\i tty} - terminal line your party is logged on. It's only relevant when the callee is on unix system. If you don't know what to put in there - just leave it blank.
\par \fi0\li0 \bullet {\i Your username} - this is how your call will appear to caller. Just don't leave it empty.\pard
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Note: your party address is {\b not} your party's email address, even if it looks similar. {\b host} part is either hostname your party logged in or {\b IP address} of the host. If your party has {\b dynamically assigned} IP address, one way to determine it is too look up in the headers of e-mail sent {\b after} your party's established internet connection last time (i.e. very recent one) and find something like
\par\sa120\sb120\qj\pard \f1\fs18\sb120 Received: from 209.203.65.22 (ppp22.kross.klever.net [209.203.65.22]) by mail.elsinore.klever.net (8.8.7/8.8.7) with SMTP id RAA15788
\par\sa120\sb120\qj\pard \f1\fs18\sb120 In this case the IP address would be {\b 209.203.65.22} and the host name {\b ppp22.kross.klever.net}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 So, you're advised to talk to {\b whoever@209.203.65.22} or {\b whoever@ppp22.kross.klever.net}. You don't need to worry if your party has a static IP address.
\page
\pard\plain\keepn
#{\footnote ConversationWindow}
${\footnote Conversation Window}
{ \f1\fs18\b\sb120 Conversation Window}
\par\sa120\sb120\qj\pard \f1\fs18\sb120 This is the window where actual conversation takes place. It is split into two panes for you and for your party. It is split either horizontal or vertical. In the former case you type in the upper half and see what your party does in the lower. In case of vertical orientation your part is the leftmost one. All control actions are done via menu bar. Here goes an explanation for each command:\pard
\par \fi0\li0 \bullet {\b Tea}\pard
\par \fi0\li0 \bullet {\i Remote user} - initiate talk session for this window. You will be prompted for {\uldb your party's whereabouts}{\v RemoteDialog}.
\par \fi0\li0 \bullet {\i Close connection} - terminate talk session. This puts window into inactive state until you initiate new session.
\par \fi0\li0 \bullet {\i Re-connect} - re-initiate talk session to the same party, for instance if you've lost connection.
\par \fi0\li0 \bullet {\i Save} - if there was something important said you can save the whole conversation into RTF formatted file for future reference.
\par \fi0\li0 \bullet {\i Exit} - will close conversation window and terminate the connection.\pard
\par \fi0\li0 \bullet {\b Edit}\pard
\par \fi0\li0 \bullet {\i Copy} - copy currently selected text into windows clipboard.
\par \fi0\li0 \bullet {\i Paste} - paste window selection into your current conversation.\pard
\par \fi0\li0 \bullet {\b Sleep}\pard
\par \fi0\li0 \bullet {\i Sleep} - put your session to sleep. When your party shows some kind of activity {\b Wake-up action} will be taken (see below).
\par \fi0\li0 \bullet {\i Sleep on minimize} - check this if you want to activate sleep mode whenever you minimize conversation window.
\par \fi0\li0 \bullet {\i Minimize on sleep} - check this if you want to minimize window whenever you put it into sleep mode.
\par \fi0\li0 \bullet {\i Wake-up action} - Actions to take whenever remote user shows activity in sleep mode. Possible actions are:
\pard
\par \fi0\li0 \bullet Make sound - check this if you want {\b T42} to produce sound (as specified in {\uldb Sounds Options}{\v SoundsOptions}) whenever it leaves sleep mode.
\par \fi0\li0 \bullet Pop-up - check this if you want {\b T42} to bring conversation window to foreground and restore if it is minimized whenever it leaves sleep mode.\pard\pard
\par \fi0\li0 \bullet {\b Window}\pard
\par \fi0\li0 \bullet {\i Split equally} split local and remote panes in equal propotions.
\par \fi0\li0 \bullet {\i Save layout} - save window position, size and split proportions for future sessions.
\par \fi0\li0 \bullet {\i Autosave layout} - automatically save layout whenever you close conversation window.
\par \fi0\li0 \bullet {\i Horizontal split}/{\i Vertical split} - chose your orientation.
\par \fi0\li0 \bullet {\i Hide on minimize} - set {\b T42} to hide window into notification tray icon whenever you minimize it.\pard\pard
\page
} \ No newline at end of file
diff --git a/help/T42.xml b/help/T42.xml
index affe7c0..8973ee7 100644
--- a/help/T42.xml
+++ b/help/T42.xml
@@ -1,183 +1,186 @@
<?xml version="1.0"?>
<winhelp>
<topic id="About" title="About T42">
<heading scroll="no">About <kin>T42</kin></heading>
<p><kin>T42</kin> is our <term>Win32</term> implementation of <product>unix</product> <product>ntalk</product> protocol.</p>
<p>It features:</p>
<ul>
<li><b>Multihoming</b> - works properly on multihomed machines (ie. accepts connections/issues requests on all interfaces);</li>
<li><b>Your personal secretary</b> - technically speaking, something like answering machine;</li>
<li><b>Sleep function</b> - be notified of activities in backgrounded windows;</li>
</ul>
<p>Designed to be compatible with our <term>TFTP</term> client/server, <kin href="http://kin.klever.net/pumpkin/">PumpKIN</kin>, that allows you to exchange files with your party while having talk sessions.</p>
<p/>
<p><b><i>Enjoy!</i></b></p>
- <license years="1998-2004"/>
+ <license years="1998-2005"/>
<credits/>
</topic>
<topic id="News" title="What's New">
+ <newsfor version="1.5.1" date="August 6th, 2005">
+ <ni>Fixed uninstall procedure so that it works on XP</ni>
+ </newsfor>
<newsfor version="1.5" date="July 11th, 2004">
<ni>Change of license and opening the source</ni>
</newsfor>
</topic>
<topic id="Using" title="Using T42">
<heading scroll="no">Using <kin>T42</kin></heading>
<p>Once you've installed <kin>T42</kin>, run it from <i>Programs/Klever Group</i> menu. A small cup icon will appear in the notification tray area.</p>
<p>Left-click on the icon will get you to the <a href="#MainWindow">Main Window</a>, right-click brings up the following menu:</p>
<ul>
<li><b>Order some tea</b> - Initiates talk session. This will open new <a href="#ConversationWindow">Conversation Window</a> and prompt you for request details.</li>
<li><b>Away</b> - Toggle your away mode. It affects the way <kin>T42</kin> handles incoming calls. See <a href="#Mainwindow">Main Window</a> for details.</li>
<li><b>Show Main Window</b> - Toggle visibility of the <a href="#MainWindow">Main Window</a> from which you can control some of <kin>T42</kin> options and read/maintain your recorded messages.</li>
<li><b>Options</b> - Select this to bring up <a href="#Options">Options dialog</a> so that you can customize <kin>T42</kin> to suit your needs.</li>
<li><b>Exit</b> - This is not likely to happen, but if you want to exit <kin>T42</kin> and unload it from memory - that's what <b>Exit</b> is for.</li>
</ul>
</topic>
<topic id="MainWindow" title="Main Window">
<heading scroll="no">Main <kin>T42</kin> Window</heading>
<p>Main Window is a <kin>T42</kin> Control Center, it's exactly mouse-click away from most of <kin>T42</kin> functions. It consists of</p>
<ul>
<li><b>On Call</b> and <b>On Call when away</b> dropdown lists let you select the action to take when incoming call occurs in 'normal' and 'away' mode. Chose one of
<ul>
<li><i>Prompt</i> - Ask you what to do before taking any actions;</li>
<li><i>Secretary</i> - Relay incoming calls to your <a href="#SecretaryOptions">personal secretary</a>. Some prefer to call it answering machine.</li>
<li><i>Not here</i> - Tell the caller you're not here (<i>not logged in</i>) and terminate connection.</li>
<li><i>Refuse</i> - Tell the caller you're not accepting messages and terminate connection.</li>
<li><i>Ignore</i> - Pretend that you didn't notice.</li>
</ul>
</li>
<li><b>Away</b> button toggles your away mode. When an incoming call occurs <kin>T42</kin> takes action based upon away mode and options selected in <b>On Call</b> and <b>On Call when away</b> dropdown lists.</li>
<li><b>Tea</b> button initiates new talk session. This will open new <a href="#ConversationWindow">Conversation Window</a> and prompt you for <a href="#RemoteDialog">request details</a>.</li>
<li><b>Options</b> button brings up <a href="#Options">Configuration Dialog</a> that lets you customize <kin>T42</kin> according to your needs.</li>
<li><b>Exit</b> - button closes <kin>T42</kin> windows and removes <kin>T42</kin> from memory.</li>
<li><b>Help</b> button enters the help system. If you got this far, you probably don't need further explanations.</li>
<li><b>Recorded messages</b> list this is the list of messages recorded by your secretary. Messages are sorted by age, last ones first. Unanswered messages have a brighter cup icon unless you've explicitly marked the message as processed (see below for details). Right-click on the list entry presents you with popup menu from which you can:
<ul>
<li><i>Call back</i> the person who left the message. This is identical to initiating new talk session and entering caller's data manually. Note: if the caller has a dynamic IP address and have already disconnected from his ISP and reconnected back this may not work.</li>
<li><i>Delete</i> selected message(s). If you don't need recorded message anymore you can throw it away by selecting this.</li>
<li><i>Save to file..</i> menu option lets you save message into <term>RTF</term> file. Then you may print message text, import it into your <product>MS Word</product> documents or do with it whatever you want.</li>
<li><i>Mark as new</i> message lets you force message state to 'unprocessed' which means that it will have brighter cup icon in front of it which is supposed to help you keep track of messages that you need to take care of.</li>
<li><i>Mark as processed</i> message is the reverse of <i>Mark as new</i> command.</li>
<li><i>Empty Log</i> simply removes all messages from the log.</li>
</ul>
</li>
<li><b>Message preview window</b> - the recorded message itself is shown in this window.</li>
</ul>
</topic>
<topic id="AnnounceDialog" title="Announce Dialog">
<heading scroll="no">Announce Dialog Window</heading>
<p>When incoming call occurs and you're set to get a prompt this dialog pops up. This dialog lets you chose what further actions you want <kin>T42</kin> to take and see the request details. The dialog looks like this:</p>
<p><image source="announce.bmp"/></p>
<p>Incoming call details are in <b>bold</b>. The details are:</p>
<ul>
<li><b>callee name</b> - this is your name, or what caller thinks it is. (<i>kamel</i> in this example)</li>
<li><b>tty</b> - terminal on which remote thinks you're logged on. This is not important for incoming requests. Normally this is only used on unix machines. (<i>tty0</i> in this example)</li>
<li><b>caller's name</b> - local username and hostname/IP address of caller. (<i>hacker@localhost</i> in this example)</li>
</ul>
<p>Use <b>Yes, I'd appreciate some milk</b> button to answer the call and establish talk connection with caller, <b>Not now, have a cup of tea with secretary</b> to relay the call to your secretary and <b>No, thanks, I'm out to coffee house</b> to ignore call.</p>
<p>If you don't answer in 30 seconds the call is relayed to the secretary.</p>
</topic>
<topic id="Options" title="Options">
<heading scroll="no">Options</heading>
<p>Options is a tabbed dialog box where you're supposed to change <kin>T42</kin> settings. It consists of</p>
<ul>
<li><a href="#GeneralOptions">General tab</a> - tune general <kin>T42</kin> options. Not much to set there so far.</li>
<li><a href="#FontsOptions">Format tab</a> - set up text formats (fonts, colors, etc.) for various windows.</li>
<li><a href="#SoundsOptions">Sounds tab</a> - customize <kin>T42</kin> bells and whistles in this dialog.</li>
<li><a href="#SecretaryOptions">Secretary tab</a> - teach your secretary manners here.</li>
</ul>
<p>Note: you might need to restart <kin>T42</kin> for some options to take effect.</p>
</topic>
<topic id="GeneralOptions" title="General Options">
<heading scroll="no">General Options</heading>
<p>Currently you can only set up talk port here. Talk port is the UDP> port <product>talk daemon</product> listens for incoming connections at. You can enter either number of port or service name (as specified in your <b>services</b> file) here. Do not change this if you don't know what you're doing and don't understand the instructions above.</p>
<p>Note: you have to restart <kin>T42</kin> for this option to take effect.</p>
</topic>
<topic id="FontsOptions" title="Fonts Options">
<heading scroll="no">Fonts</heading>
<p>Set up various fonts for <kin>T42</kin> to use according to your own preferences. There are three formats for you to set:</p>
<ul>
<li><b>Local</b> - this is what your typing appears as.</li>
<li><b>Remote</b> - this is what your party's typing should look like.</li>
<li><b>System</b> - this is what system messages, like disconnection cause, etc. in talk windows look like.</li>
</ul>
<p>For each format you can set up <b>Font face</b>, <b>Font size</b>, <b>bold</b>, <i>italic</i>, <u>underline</u>, <strike>strikeout</strike> and <b>character set</b> to use. For some formats you can also set <b>foreground</b> and <b>background</b> colors.</p>
<p>Note: these settings only affect new windows.</p>
</topic>
<topic id="SoundsOptions" title="Sounds Options">
<heading scroll="no">Sounds</heading>
<p>This is where you customize <kin>T42</kin> bells and whistles, specifically:</p>
<ul>
<li><b>Bell in <kin>T42</kin> window</b> - the sound to produce when you or your party sends ASCII BELL characters (<b>Ctrl-G</b>).</li>
<li><b>Prompt sound alert</b> the sound used to notify you of incoming call. You may also set <b>loop</b> for this sound to make it continuous for the <a href="#AnnounceDialog">Announce Window</a> lifetime.</li>
<li><b>Wake-up sound alert</b> the sound used to let you know that <kin>T42</kin> leaves <b>sleep mode</b> (see <a href="#ConversationWindow">Conversation Window</a> for details).</li>
</ul>
<p>For each sound you can either specify <b>.WAV</b> file (use browse button to choose it) or internal sound from drop-down list. You can also use play button to check what it sounds like.</p>
</topic>
<topic id="SecretaryOptions" title="Secretary Options">
<heading scroll="no">Secretary</heading>
<p>This is the place to teach your secretary how to behave. The things you can ask for are:</p>
<ul>
<li><b>Greeting message</b> - this is the message your secretary greets caller with. When greeting is transferred your secretary will automatically substitute time limit (see below) instead of <b>%t</b> and characters limit (see below) instead of <b>%c</b>.</li>
<li>After greeting the caller your secretary will record the message until the caller will exceed either <b>time limit</b> or <b>character</b> limit. You may choose to disable either or both limits.</li>
<li>You may also limit your secretary's ability to handle multiple calls to provide each caller with better service. Normally the optimal limit depends on your system resources and your callers' activities.</li>
</ul>
</topic>
<topic id="RemoteDialog" title="Remote Dialog">
<heading scroll="no">Remote Dialog</heading>
<p>Whenever you want to issue talk request you're presented with a dialog in which you can enter your request details, it looks like this:</p>
<p><image source="invite.bmp"/></p>
<p>The call details are:</p>
<ul>
<li><i>Callee address</i> - The address is in the form <b>user@host</b>, <i>kamel@192.168.168.192</i> in this example.</li>
<li><i>tty</i> - terminal line your party is logged on. It's only relevant when the callee is on unix system. If you don't know what to put in there - just leave it blank.</li>
<li><i>Your username</i> - this is how your call will appear to caller. Just don't leave it empty.</li>
</ul>
<p>Note: your party address is <b>not</b> your party's email address, even if it looks similar. <b>host</b> part is either hostname your party logged in or <b>IP address</b> of the host. If your party has <b>dynamically assigned</b> IP address, one way to determine it is too look up in the headers of e-mail sent <b>after</b> your party's established internet connection last time (i.e. very recent one) and find something like</p>
<p>Received: from 209.203.65.22 (ppp22.kross.klever.net [209.203.65.22]) by mail.elsinore.klever.net (8.8.7/8.8.7) with SMTP id RAA15788</p>
<p>In this case the IP address would be <b>209.203.65.22</b> and the host name <b>ppp22.kross.klever.net</b></p>
<p>So, you're advised to talk to <b>whoever@209.203.65.22</b> or <b>whoever@ppp22.kross.klever.net</b>. You don't need to worry if your party has a static IP address.</p>
</topic>
<topic id="ConversationWindow" title="Conversation Window">
<heading scroll="no">Conversation Window</heading>
<p>This is the window where actual conversation takes place. It is split into two panes for you and for your party. It is split either horizontal or vertical. In the former case you type in the upper half and see what your party does in the lower. In case of vertical orientation your part is the leftmost one. All control actions are done via menu bar. Here goes an explanation for each command:</p>
<ul>
<li><b>Tea</b>
<ul>
<li><i>Remote user</i> - initiate talk session for this window. You will be prompted for <a href="#RemoteDialog">your party's whereabouts</a>.</li>
<li><i>Close connection</i> - terminate talk session. This puts window into inactive state until you initiate new session.</li>
<li><i>Re-connect</i> - re-initiate talk session to the same party, for instance if you've lost connection.</li>
<li><i>Save</i> - if there was something important said you can save the whole conversation into RTF formatted file for future reference.</li>
<li><i>Exit</i> - will close conversation window and terminate the connection.</li>
</ul>
</li>
<li><b>Edit</b>
<ul>
<li><i>Copy</i> - copy currently selected text into windows clipboard.</li>
<li><i>Paste</i> - paste window selection into your current conversation.</li>
</ul>
</li>
<li><b>Sleep</b>
<ul>
<li><i>Sleep</i> - put your session to sleep. When your party shows some kind of activity <b>Wake-up action</b> will be taken (see below).</li>
<li><i>Sleep on minimize</i> - check this if you want to activate sleep mode whenever you minimize conversation window.</li>
<li><i>Minimize on sleep</i> - check this if you want to minimize window whenever you put it into sleep mode.</li>
<li><i>Wake-up action</i> - Actions to take whenever remote user shows activity in sleep mode. Possible actions are:
<ul>
<li>Make sound - check this if you want <kin>T42</kin> to produce sound (as specified in <a href="#SoundsOptions">Sounds Options</a>) whenever it leaves sleep mode.</li>
<li>Pop-up - check this if you want <kin>T42</kin> to bring conversation window to foreground and restore if it is minimized whenever it leaves sleep mode.</li>
</ul>
</li>
</ul>
</li>
<li><b>Window</b>
<ul>
<li><i>Split equally</i> split local and remote panes in equal propotions.</li>
<li><i>Save layout</i> - save window position, size and split proportions for future sessions.</li>
<li><i>Autosave layout</i> - automatically save layout whenever you close conversation window.</li>
<li><i>Horizontal split</i>/<i>Vertical split</i> - chose your orientation.</li>
<li><i>Hide on minimize</i> - set <kin>T42</kin> to hide window into notification tray icon whenever you minimize it.</li>
</ul>
</li>
</ul>
</topic>
</winhelp>
diff --git a/install/install.cpp b/install/install.cpp
index 8b8c61f..35717bd 100644
--- a/install/install.cpp
+++ b/install/install.cpp
@@ -1,68 +1,75 @@
#include "resource.h"
#include "../shared-code/install.h"
-#define KINAME "T42 1.5"
+#define VERSION "1.5.1"
+#define KINAME "T42 " VERSION
#define SKINAME "T42"
BOOL Install(void)
{
STRING dPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",SKINAME "Path");
STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath");
LPCSTR qPath = ((LPCSTR)dPath)?(LPCSTR)dPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings");
STRING path = REQUESTPATH(" " KINAME,"\nEnter destination path:",qPath);
if(!path)
return NULL;
#ifdef K_ANNED
STRING sysDir(_MAX_PATH);
GetSystemDirectory(sysDir,_MAX_PATH);
INSTALLFILE("mfc42.dl_",sysDir,"mfc42.dll");
#endif
MAKE_PATH(path);
STRING shortPath = GET_SHORT_PATH(path);
if(!shortPath){
MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK);
return FALSE;
}
if(!(
INSTALLFILE(SKINAME ".ex_",path,SKINAME ".exe") &&
INSTALLFILE(SKINAME ".hl_",path,SKINAME ".hlp") &&
INSTALLFILE(SKINAME ".cn_",path,SKINAME ".cnt")
)){
MessageBox(NULL,"Failed to install " KINAME " in specified directory",NULL,MB_ICONERROR|MB_OK);
return FALSE;
}
ADDMENU("Klever Group",SKINAME,path, SKINAME ".exe");
strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",SKINAME "Path",path);
strSET_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath",path);
FILE* inf=CREATE_INF_FILE(path,SKINAME ".INF");
if(!inf){
MessageBox(NULL,"Failed to install " KINAME,NULL,MB_ICONERROR|MB_OK);
return FALSE;
}
INF_FILE_HEADER(inf);
INF_FILE_SECTION(inf,"Uninstall");
fprintf(inf,"AddReg=kFiles\nDelReg=kReg\nUpdateInis=kMenu\n");
INF_FILE_SECTION(inf,"kFiles");
INF_REMOVE_ROOT(inf,SKINAME "Files",shortPath);
INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".exe");
INF_REMOVE_HELP_FILE(inf,SKINAME "Files",SKINAME);
INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".inf");
INF_REMOVE_FILE(inf,SKINAME "Files",SKINAME ".Calls");
INF_FILE_SECTION(inf,"kReg");
INF_UNINSTALL_REG(inf,SKINAME);
INF_FILE_SECTION(inf,"kMenu");
INF_MENU_GROUP(inf,1,"Klever Group");
INF_MENU_ITEM(inf,1,SKINAME);
fclose(inf);
REG_UNINSTALL_COMMAND(SKINAME,"Klever " KINAME,shortPath,SKINAME ".INF","Uninstall");
+ REG_UNINSTALL_ICON(SKINAME,path,SKINAME ".exe",0);
+ REG_UNINSTALL_COMMENT(SKINAME,"Klever " KINAME);
+ REG_UNINSTALL_VERSION(SKINAME,VERSION);
+ REG_UNINSTALL_LOCATION(SKINAME,path);
+ REG_UNINSTALL_PUBLISHER(SKINAME,"Klever Group");
+ REG_UNINSTALL_URLS(SKINAME,"http://www.klever.net/","http://kin.klever.net/T42/");
MessageBox(NULL,KINAME " installed successfully, you may now run it from 'Programs/Klever Group' menu or remove it using Control Panel Add/Remove Programs applet."," Rejoice!",MB_ICONINFORMATION|MB_OK);
return TRUE;
}
diff --git a/install/install.rc b/install/install.rc
index 1516122..6ff3614 100644
--- a/install/install.rc
+++ b/install/install.rc
@@ -1,182 +1,182 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
#if defined(APSTUDIO_INVOKED) || defined(FALSE)
#if defined(APSTUDIO_INVOKED)
IDD_INSTALLING$(FALSE) DIALOGEX 0, 0, 200, 74
#else
IDD_INSTALLING DIALOGEX 0, 0, 200, 74
#endif
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
PUSHBUTTON "Cancel",IDCANCEL,143,53,50,14,BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_FLAT,WS_EX_DLGMODALFRAME
CONTROL "Animate1",IDC_DISKS,"SysAnimate32",ACS_TRANSPARENT |
ACS_AUTOPLAY | WS_TABSTOP,161,7,32,32
LTEXT "",IDC_STATE,7,7,150,32,SS_NOPREFIX | SS_NOTIFY
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",0x0,7,45,
186,7,WS_EX_DLGMODALFRAME
END
#endif
IDD_PATH DIALOGEX 0, 0, 255, 73
STYLE DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUP |
WS_VISIBLE | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
LTEXT "",IDC_PROMPT,7,7,241,30
EDITTEXT IDC_PATH,7,37,195,12,ES_AUTOHSCROLL
PUSHBUTTON "B&rowse..",IDC_BROWSE,208,37,40,12
DEFPUSHBUTTON "OK",IDOK,69,52,50,14
PUSHBUTTON "Cancel",IDCANCEL,135,52,50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
"IDD_INSTALLING$(FALSE)", DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 193
TOPMARGIN, 7
BOTTOMMARGIN, 67
HORZGUIDE, 39
END
IDD_PATH, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 248
VERTGUIDE, 202
VERTGUIDE, 208
TOPMARGIN, 7
BOTTOMMARGIN, 66
HORZGUIDE, 37
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""custom.rch""\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON ICON DISCARDABLE "../shared-data/install-icon.ico"
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,5,0,0
- PRODUCTVERSION 1,5,0,0
+ FILEVERSION 1,5,1,0
+ PRODUCTVERSION 1,5,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0"
VALUE "FileDescription", "INSTALL: T42, unix talk/ntalk implementation\0"
- VALUE "FileVersion", "1, 5, 0, 0\0"
+ VALUE "FileVersion", "1, 5, 1, 0\0"
VALUE "InternalName", "INSTALL\0"
- VALUE "LegalCopyright", "Copyright © 1998-2004 Klever Group (http://www.klever.net/)\0"
+ VALUE "LegalCopyright", "Copyright © 1998-2005 Klever Group (http://www.klever.net/)\0"
VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0"
VALUE "OriginalFilename", "INSTALL.EXE\0"
VALUE "ProductName", "T42\0"
- VALUE "ProductVersion", "1, 5, 0, 0\0"
+ VALUE "ProductVersion", "1, 5, 1, 0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#include "custom.rch"
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED