mirror of
https://github.com/sheumann/AFPBridge.git
synced 2024-06-11 12:29:30 +00:00
6be698833d
We indicate that AFPBridge is installed by creating a message in the message center (which also includes its version, in case we want to distinguish between different versions in the future).
440 lines
12 KiB
Plaintext
440 lines
12 KiB
Plaintext
#include "types.rez"
|
|
|
|
resource rCDEVFlags (1) {
|
|
wantMachine+wantHit+wantClose+wantEvents+wantEdit+wantCreate,
|
|
1, /* enabled */
|
|
1, /* version */
|
|
1, /* min ROM version */
|
|
0, /* reserved */
|
|
{0, 0, 55, 320}, /* rectangle */
|
|
"AFP Mounter", /* name */
|
|
"Stephen Heumann", /* author */
|
|
"v1.0b1" /* version string */
|
|
};
|
|
|
|
read rCDevCode (0x1,convert,locked) "AFPMounter.obj";
|
|
|
|
resource rIcon (1) {
|
|
0x8000, /* color icon */
|
|
20, /* dimensions */
|
|
28,
|
|
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
$"F00000000FFFFFFFFFFFFFFFFFFF"
|
|
$"F0DDDDDD0FFFFFFFFFFFFFFFFFFF"
|
|
$"F0DDDDDD04FFFFFFFF4FFFFFFFFF"
|
|
$"F0DDDDDD04FFFFFFFF4F0FF000FF"
|
|
$"F0DDDDDD444FFFFF0444A0F0DD0F"
|
|
$"F0000000444FFFF0E4440A00DD0F"
|
|
$"FF0FFFF4F4F4FFF04E404AA0DD0F"
|
|
$"F000000404F4FFF04E404A00DD0F"
|
|
$"F0F4FF4F04FF4F04004004000000"
|
|
$"F000040004FFF44303433343330F"
|
|
$"4444444444444444444444444444"
|
|
$"3333333334333333334333333333"
|
|
$"4444444444444444444444444444"
|
|
$"FFFFFFFFF4FFFFFFFF4FFFFFFFFF"
|
|
$"FFFFFFFFF4FFFFFFFF4FFFFFFFFF"
|
|
$"FFFFFFFFF4FFFFFFFF4FFFFFFFFF"
|
|
$"FFFFFFFFF4FFFFFFFF4FFFFFFFFF",
|
|
|
|
$"0000000000000000000000000000"
|
|
$"0000000000000000000000000000"
|
|
$"0000000000000000000000000000"
|
|
$"0FFFFFFFF0000000000000000000"
|
|
$"0FFFFFFFF0000000000000000000"
|
|
$"0FFFFFFFFF00000000F000000000"
|
|
$"0FFFFFFFFF00000000F0F00FFF00"
|
|
$"0FFFFFFFFFF00000FFFFFF0FFFF0"
|
|
$"0FFFFFFFFFF0000FFFFFFFFFFFF0"
|
|
$"00FFFFFF0F0F000FFFFFFFFFFFF0"
|
|
$"0FFFFFFFFF0F000FFFFFFFFFFFF0"
|
|
$"0FFFFFFFFF00F0FFFFFFFFFFFFFF"
|
|
$"0FFFFFFFFF000FFFFFFFFFFFFFF0"
|
|
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
|
$"000000000F00000000F000000000"
|
|
$"000000000F00000000F000000000"
|
|
$"000000000F00000000F000000000"
|
|
$"000000000F00000000F000000000"
|
|
};
|
|
|
|
#define cdevWindow 1000
|
|
#define helpWindow 2000
|
|
|
|
#define serverAddressTxt 2
|
|
#define urlLine 3
|
|
#define saveAliasBtn 4
|
|
#define connectBtn 1
|
|
#define optionsPopUp 6
|
|
#define trianglePic 7
|
|
|
|
#define helpTxt 5
|
|
|
|
#define saveFilePrompt 100
|
|
|
|
#define optionsMenu 300
|
|
#define afpOverTCPOptionsItem 301
|
|
#define useLargeReadsItem 302
|
|
#define forceAFP22Item 303
|
|
|
|
/*
|
|
* Controls in the control panel window (for 640 mode or 320 mode)
|
|
*/
|
|
resource rControlList (640) {
|
|
{
|
|
cdevWindow+serverAddressTxt,
|
|
cdevWindow+urlLine,
|
|
cdevWindow+saveAliasBtn,
|
|
cdevWindow+connectBtn,
|
|
cdevWindow+trianglePic,
|
|
cdevWindow+optionsPopUp
|
|
};
|
|
};
|
|
|
|
resource rControlList (320) {
|
|
{
|
|
cdevWindow+serverAddressTxt,
|
|
cdevWindow+urlLine,
|
|
cdevWindow+saveAliasBtn,
|
|
cdevWindow+connectBtn,
|
|
cdevWindow+trianglePic+320,
|
|
cdevWindow+optionsPopUp+320
|
|
};
|
|
};
|
|
|
|
resource rControlTemplate (cdevWindow+serverAddressTxt) {
|
|
serverAddressTxt, /* control ID */
|
|
{4, 10, 15, 270}, /* control rect */
|
|
statTextControl {{
|
|
fBlastText, /* flags */
|
|
$1000+RefIsResource, /* moreFlags */
|
|
0, /* refCon */
|
|
cdevWindow+serverAddressTxt /* title ref */
|
|
}};
|
|
};
|
|
|
|
resource rTextForLETextBox2 (cdevWindow+serverAddressTxt) {
|
|
"AFP Server Address:"
|
|
};
|
|
|
|
resource rControlTemplate (cdevWindow+urlLine) {
|
|
urlLine,
|
|
{15, 10, 28, 310},
|
|
editLineControl {{
|
|
0,
|
|
$7000+RefIsResource,
|
|
0,
|
|
255, /* max size */
|
|
cdevWindow+urlLine /* text ref */
|
|
}};
|
|
};
|
|
|
|
resource rPString (cdevWindow+urlLine) { "afp://" };
|
|
|
|
resource rControlTemplate (cdevWindow+saveAliasBtn) {
|
|
saveAliasBtn,
|
|
{35, 10, 0, 0},
|
|
SimpleButtonControl {{
|
|
NormalButton,
|
|
$1000+RefIsResource,
|
|
0,
|
|
cdevWindow+saveAliasBtn
|
|
}};
|
|
};
|
|
|
|
resource rPString(cdevWindow+saveAliasBtn) { "Save Alias..." };
|
|
|
|
resource rControlTemplate (cdevWindow+connectBtn) {
|
|
connectBtn,
|
|
{35, 220, 0, 0},
|
|
SimpleButtonControl {{
|
|
DefaultButton,
|
|
$3000+RefIsResource,
|
|
0,
|
|
cdevWindow+connectBtn,
|
|
0, /* color table ref */
|
|
{"\$0D","\$0D",0,0} /* key equivalent = Return */
|
|
}};
|
|
};
|
|
|
|
resource rPString(cdevWindow+connectBtn) { "Connect" };
|
|
|
|
/* Options menu pop-up -- separate versions for 640 mode and 320 mode */
|
|
resource rControlTemplate (cdevWindow+optionsPopUp) {
|
|
optionsPopUp,
|
|
{5, 282, 13, 310 },
|
|
PopUpControl {{
|
|
fDontDrawTitle+fDontDrawResult,
|
|
fCtlProcNotPtr+RefIsResource/*+fDrawPopDownIcon*/,
|
|
0,
|
|
0,
|
|
optionsMenu, /* menu ref */
|
|
afpOverTCPOptionsItem, /* initial value */
|
|
0
|
|
}};
|
|
};
|
|
|
|
resource rControlTemplate (cdevWindow+optionsPopUp+ 320) {
|
|
optionsPopUp,
|
|
{5, 296, 13, 310 },
|
|
PopUpControl {{
|
|
fDontDrawTitle+fDontDrawResult,
|
|
fCtlProcNotPtr+RefIsResource/*+fDrawPopDownIcon*/,
|
|
0,
|
|
0,
|
|
optionsMenu, /* menu ref */
|
|
afpOverTCPOptionsItem, /* initial value */
|
|
0
|
|
}};
|
|
};
|
|
|
|
/* Triangle to draw on options pop-up */
|
|
resource rControlTemplate (cdevWindow+trianglePic) {
|
|
trianglePic,
|
|
{7, 286, 11, 302},
|
|
PictureControl {{
|
|
CtlInactive,
|
|
fCtlProcNotPtr+RefIsResource,
|
|
0,
|
|
trianglePic /* picture reference */
|
|
}};
|
|
};
|
|
|
|
resource rControlTemplate (cdevWindow+trianglePic+320) {
|
|
trianglePic,
|
|
{7, 298, 0, 0},
|
|
PictureControl {{
|
|
CtlInactive,
|
|
fCtlProcNotPtr+RefIsResource,
|
|
0,
|
|
trianglePic /* picture reference */
|
|
}};
|
|
};
|
|
|
|
data rPicture (trianglePic) {
|
|
$"8000 0000 0000 0400 1000 1182 0100 0A00"
|
|
$"01C0 01C0 FF3F FF3F 9000 8000 0000 0400"
|
|
$"0000 0000 0400 1000 0000 0000 0400 1000"
|
|
$"0000 0000 0400 1000 0000 0000 0000 F000"
|
|
$"000F FF00 00FF FFF0 0FFF"
|
|
};
|
|
|
|
resource rMenu (optionsMenu) {
|
|
optionsMenu, /* menu ID */
|
|
refIsResource*menuTitleRefShift + refIsResource*itemRefShift,
|
|
optionsMenu, /* menu title ref (not drawn) */
|
|
{afpOverTCPOptionsItem, useLargeReadsItem, forceAFP22Item};
|
|
};
|
|
resource rPString(optionsMenu,noCrossBank) { "" };
|
|
|
|
resource rMenuItem (afpOverTCPOptionsItem) {
|
|
afpOverTCPOptionsItem, /* menu item ID */
|
|
"","",
|
|
0,
|
|
fDisabled+refIsResource*itemTitleRefShift,
|
|
afpOverTCPOptionsItem /* menu item title ref */
|
|
};
|
|
resource rPString(afpOverTCPOptionsItem,noCrossBank) { "AFP Over TCP Options:" };
|
|
|
|
resource rMenuItem (useLargeReadsItem) {
|
|
useLargeReadsItem, /* menu item ID */
|
|
"","",
|
|
$12,
|
|
refIsResource*itemTitleRefShift,
|
|
useLargeReadsItem /* menu item title ref */
|
|
};
|
|
resource rPString(useLargeReadsItem,noCrossBank) { "Use Large Reads" };
|
|
|
|
resource rMenuItem (forceAFP22Item) {
|
|
forceAFP22Item, /* menu item ID */
|
|
"","",
|
|
0,
|
|
refIsResource*itemTitleRefShift,
|
|
forceAFP22Item /* menu item title ref */
|
|
};
|
|
resource rPString(forceAFP22Item,noCrossBank) { "Force AFP Version 2.2" };
|
|
|
|
/*
|
|
* Controls in the help window
|
|
*/
|
|
resource rControlList (2) {
|
|
{
|
|
helpWindow+helpTxt
|
|
};
|
|
};
|
|
|
|
resource rControlTemplate (helpWindow+helpTxt) {
|
|
helpTxt,
|
|
{38, 5, 138, 280},
|
|
statTextControl {{
|
|
0, /* flags */
|
|
$1000+RefIsResource, /* moreFlags */
|
|
0, /* refCon */
|
|
helpWindow+helpTxt /* title ref */
|
|
}};
|
|
};
|
|
|
|
resource rTextForLETextBox2 (helpWindow+helpTxt) {
|
|
"The AFP Mounter control panel allows you to connect to "
|
|
"file servers using the Apple Filing Protocol (AFP) "
|
|
"over either AppleTalk or TCP/IP networks. "
|
|
"The server address can be specified by URLs "
|
|
"of the following forms:\n\$01X\$03\$00"
|
|
"afp://[user:password@]server[:port]/\n\$01X\$00\$00"
|
|
"volume (to connect using TCP/IP)\n\$01X\$03\$00"
|
|
"afp:/at/[user:password@]server:zone/\n\$01X\$00\$00"
|
|
"volume (to connect using AppleTalk)\n"
|
|
};
|
|
|
|
resource rPString(saveFilePrompt) { "Save server alias as:" };
|
|
|
|
/*
|
|
* Error messages
|
|
*/
|
|
|
|
#define fstMissingError 3000
|
|
#define noEasyMountError 3001
|
|
#define tempFileError 3002
|
|
#define aliasFileError 3003
|
|
#define tempFileNameError 3004
|
|
#define saveAliasError 3005
|
|
#define noAFPBridgeError 3006
|
|
#define noAFPBridgeWarning 3007
|
|
|
|
#define protoInvalidError 4000
|
|
#define noServerOrVolumeNameError 4001
|
|
#define serverNameTooLongError 4002
|
|
#define volumeNameTooLongError 4003
|
|
#define zoneTooLongError 4004
|
|
#define usernameTooLongError 4005
|
|
#define passwordTooLongError 4006
|
|
#define volpassTooLongError 4007
|
|
#define passwordWithoutUserError 4008
|
|
#define badUAMError 4009
|
|
|
|
resource rAlertString (fstMissingError) {
|
|
"72:"
|
|
"To use the AFP Mounter control panel, the AppleShare FST "
|
|
"and the AppleTalk-related system components it requires "
|
|
"must be installed and enabled."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (noEasyMountError) {
|
|
"72:"
|
|
"Communication with EasyMount failed.\n"
|
|
"\n"
|
|
"To use the AFP Mounter control panel, EasyMount must be "
|
|
"installed and enabled."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (protoInvalidError) {
|
|
"32:"
|
|
"The specified address is not a valid AFP URL."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (noServerOrVolumeNameError) {
|
|
"32:"
|
|
"Please specify at least a server and volume name in the AFP URL."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (serverNameTooLongError) {
|
|
"32:"
|
|
"The server name is too long (maximum 32 characters)."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (volumeNameTooLongError) {
|
|
"32:"
|
|
"The volume name is too long (maximum 27 characters)."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (zoneTooLongError) {
|
|
"32:"
|
|
"The zone name is too long (maximum 32 characters)."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (usernameTooLongError) {
|
|
"32:"
|
|
"The username is too long (maximum 31 characters)."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (passwordTooLongError) {
|
|
"32:"
|
|
"The password is too long (maximum 8 characters)."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (volpassTooLongError) {
|
|
"32:"
|
|
"The volume password is too long (maximum 8 characters)."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (passwordWithoutUserError) {
|
|
"42:"
|
|
"When a password is specified, a user name must also be given."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (badUAMError) {
|
|
"62:"
|
|
"The requested user authentication method is not supported "
|
|
"or cannot be used with the specified URL."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (tempFileError) {
|
|
"82:"
|
|
"There was an error writing the temporary file used by the "
|
|
"AFPMounter control panel. Please make sure the directory "
|
|
"containing the AFPMounter control panel is writable and "
|
|
"remove the AFPMounter.Temp file if it is present."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (aliasFileError) {
|
|
"32:"
|
|
"There was an error writing the alias file."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (tempFileNameError) {
|
|
"72:"
|
|
"There was an error while constructing the name for the "
|
|
"temporary file used by the AFPMounter control panel."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (saveAliasError) {
|
|
"42:"
|
|
"There was an error while attempting to save the alias file."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (noAFPBridgeError) {
|
|
"62:"
|
|
"To connect to AFP servers over TCP, AFPBridge and Marinetti "
|
|
"must be installed and enabled. Please install them and then "
|
|
"restart your system."
|
|
":^#0\$00"
|
|
};
|
|
|
|
resource rAlertString (noAFPBridgeWarning) {
|
|
"74:"
|
|
"To connect to AFP servers over TCP, AFPBridge and Marinetti "
|
|
"must be installed and enabled. You can continue to save an "
|
|
"alias now, but to connect to the server you will need to "
|
|
"install them and then restart your system."
|
|
":#1:^#6\$00"
|
|
};
|