1 2 // ------------------------------------------------------------------ 3 // GoldED+ 4 // Copyright (C) 1990-1999 Odinn Sorensen 5 // Copyright (C) 1999-2000 Alexander S. Aganichev 6 // ------------------------------------------------------------------ 7 // This program is free software; you can redistribute it and/or 8 // modify it under the terms of the GNU General Public License as 9 // published by the Free Software Foundation; either version 2 of the 10 // License, or (at your option) any later version. 11 // 12 // This program is distributed in the hope that it will be useful, 13 // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 // General Public License for more details. 16 // 17 // You should have received a copy of the GNU General Public License 18 // along with this program; if not, write to the Free Software 19 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, 20 // MA 02111-1307 USA 21 // ------------------------------------------------------------------ 22 // $Id: geall.h,v 1.6 2007/10/29 21:33:04 stas_degteff Exp $ 23 // ------------------------------------------------------------------ 24 // Definition of system-wide sizes and structures. 25 // ------------------------------------------------------------------ 26 #ifndef __GEALL__H 27 #define __GEALL__H 28 29 #include <map> 30 #include <vector> 31 #include <string> 32 33 #include <gdefs.h> 34 #include <gregex.h> 35 36 37 // ------------------------------------------------------------------ 38 39 #if defined(GOLD_CANPACK) 40 #pragma pack(1) 41 #endif 42 43 44 // ------------------------------------------------------------------ 45 // General data/list size limits 46 47 const uint MAX_COMM = 25; // Editor comments 48 const uint MAX_FIND = 10; // Max number of search strings 49 const uint MAXQUOTELEN = 40; // Max length of quote 50 51 52 // ------------------------------------------------------------------ 53 // Header attach size types 54 55 const int ATTACH_BYTES = 1; 56 const int ATTACH_KBYTES = 2; 57 58 59 // ------------------------------------------------------------------ 60 // Control info types 61 62 const int CI_NONE = 0x0000; 63 const int CI_TEAR = 0x0001; 64 const int CI_ORIG = 0x0002; 65 const int CI_TAGL = 0x0004; 66 67 68 // ------------------------------------------------------------------ 69 // Misc mode types (ACK!! these need cleaning up!) 70 71 const int MODE_AREACONF = 100; 72 const int MODE_CONFIRM = 101; 73 const int MODE_COPY = 102; 74 const int MODE_FORWARD = 103; 75 const int MODE_MOVE = 108; 76 const int MODE_QUOTE = 109; 77 const int MODE_QUOTEBUF = 110; 78 const int MODE_REPLY = 111; 79 const int MODE_REPLYCOMMENT = 112; 80 const int MODE_SAVE = 114; 81 const int MODE_SAVENOCTRL = 115; 82 const int MODE_VIEW = 116; 83 const int MODE_WRITE = 117; 84 const int MODE_PRINT = 118; 85 const int MODE_APPEND = 119; 86 const int MODE_WRITEHEADER = 120; 87 const int MODE_HEADER = 121; 88 89 const int MODE_NEW = 0x0100; 90 const int MODE_CHANGE = 0x0200; 91 const int MODE_UPDATE = 0x0400; 92 const int MODE_QUIT = 0x0800; 93 94 const int MODE_PREVIOUS = 2; 95 const int MODE_MARKED = 1; 96 const int MODE_CURRENT = 0; 97 const int MODE_DONT = -1; 98 99 100 // ------------------------------------------------------------------ 101 // Scanning constants 102 103 const int SCAN_STARTUP = 0; 104 const int SCAN_ALL = 1; 105 const int SCAN_MARKED = 2; 106 const int SCAN_CURRENT = 3; 107 const int SCAN_MATCHING = 4; 108 const int SCAN_UNSCANNED = 5; 109 const int SCAN_EXPORTQWK = 6; 110 const int SCAN_IMPORTQWK = 7; 111 const int SCAN_EXPORTSOUP = 8; 112 const int SCAN_IMPORTSOUP = 9; 113 const int SCAN_LIST = 10; 114 const int SCAN_GROUP = 11; 115 const int SCAN_NETMAIL = 12; 116 const int SCAN_QUIT = 99; 117 118 119 // ------------------------------------------------------------------ 120 // Exit errorcodes 121 122 const int EXIT_OK = 0x00; 123 const int EXIT_LOCAL = 0x01; 124 const int EXIT_NET = 0x02; 125 const int EXIT_ECHO = 0x04; 126 const int EXIT_NONAME = 0x20; 127 const int EXIT_CFGERR = 0x21; 128 const int EXIT_ERRORS = 0x22; 129 130 131 // ------------------------------------------------------------------ 132 // Direction defines 133 134 const int DIR_PREV = -1; 135 const int DIR_NEXT = 1; 136 137 const int DIR_ABOVE = DIR_PREV; 138 const int DIR_BELOW = DIR_NEXT; 139 140 141 // ------------------------------------------------------------------ 142 // Misc screen limits 143 144 #define MINROW 6 145 #define MAXCOL gvid->numcols 146 #define MAXROW gvid->numrows 147 #define MAXMSGLINES (MAXROW-MINROW-1) 148 149 150 // ------------------------------------------------------------------ 151 // Message marking 152 153 const char MMRK_MARK = '\x10'; 154 const char MMRK_BOOK = '\x11'; 155 156 157 // ------------------------------------------------------------------ 158 // Twit options 159 160 const int NOT_TWIT = 0; 161 const int TWIT_SHOW = 1; 162 const int TWIT_BLANK = 2; 163 const int TWIT_SKIP = 3; 164 const int TWIT_IGNORE = 4; 165 const int TWIT_KILL = 5; 166 167 168 // ------------------------------------------------------------------ 169 // CC list options 170 171 const int CC_REMOVE = 0; 172 const int CC_HIDDEN = 1; 173 const int CC_VISIBLE = 2; 174 const int CC_NAMES = 3; 175 const int CC_KEEP = 4; 176 177 178 // ------------------------------------------------------------------ 179 // Arealist types 180 181 const int AL_TOTLST = 0; 182 const int AL_TOTNEW = 1; 183 184 185 // ------------------------------------------------------------------ 186 // Area R/O modes 187 188 const int READONLY_SOFT = 1; 189 const int READONLY_HARD = 2; 190 191 192 // ------------------------------------------------------------------ 193 // Colorset types 194 195 const int CS_NORMAL = 0; 196 const int CS_INTENSE = 1; 197 const int CS_MONO = 2; 198 199 200 // ------------------------------------------------------------------ 201 // Lookup types 202 203 const int LOOK_DEST = 0; 204 const int LOOK_ORIG = 1; 205 const int LOOK_NAME = 2; 206 const int LOOK_CITY1 = 3; 207 const int LOOK_CITY2 = 4; 208 209 210 // ------------------------------------------------------------------ 211 // Squish scanning types 212 213 //const int SQS_API = 1; 214 //const int SQS_QUICK = 2; 215 216 217 // ------------------------------------------------------------------ 218 // Quotebuffer modes 219 220 const int QBUF_ASK = 1; 221 const int QBUF_APPEND = 2; 222 const int QBUF_OVERWRITE = 3; 223 224 225 // ------------------------------------------------------------------ 226 // Screenblanker types 227 228 const int BLANK_ALLBLACK = 0; 229 const int BLANK_SLIDEWIN = 1; 230 231 232 // ------------------------------------------------------------------ 233 // DISPMSGSIZE types 234 235 const int DISPMSGSIZE_BYTES = 1; 236 const int DISPMSGSIZE_KBYTES = 2; 237 const int DISPMSGSIZE_LINES = 3; 238 239 240 // ------------------------------------------------------------------ 241 // Replylink types 242 243 const int REPLYLINK_DIRECT = 0; 244 const int REPLYLINK_CHAIN = 1; 245 const int REPLYLINK_NONE = 2; 246 247 const int REPLYLINKLIST_FAST = 0; 248 const int REPLYLINKLIST_FULL = 1; 249 250 251 // ------------------------------------------------------------------ 252 253 const int KEYB_BLOCK = 0; 254 const int KEYB_POLL = 1; 255 256 257 // ------------------------------------------------------------------ 258 // Registration key valid OS 259 260 const int GKEY_VALID_DOS = 0x0001; 261 const int GKEY_VALID_OS2 = 0x0002; 262 const int GKEY_VALID_W32 = 0x0004; 263 const int GKEY_VALID_LNX = 0x0008; 264 const int GKEY_VALID_WIN = 0x0010; 265 const int GKEY_VALID_OPM = 0x0020; 266 const int GKEY_VALID_XWN = 0x0040; 267 268 269 // ------------------------------------------------------------------ 270 // File request options 271 272 const int FREQ_SORT = 0x0001; 273 const int FREQ_FROMTOP = 0x0002; 274 const int FREQ_NOFILES = 0x0004; 275 const int FREQ_FAST = 0x0008; 276 const int FREQ_NOWAZOOMSG = 0x0010; 277 const int FREQ_USEFLOWFILE = 0x0020; 278 279 280 // ------------------------------------------------------------------ 281 // Peek URLs options 282 283 const int PEEK_SORT = 0x0001; 284 const int PEEK_FROMTOP = 0x0002; 285 286 287 // ------------------------------------------------------------------ 288 // Automatic echoid names 289 290 const int AUTOID_VERBOSE = 0; 291 const int AUTOID_SHORT = 1; 292 const int AUTOID_LONG = 2; 293 294 295 // ------------------------------------------------------------------ 296 // Values for EDITHEADERFIRST 297 298 const int EDITHEADERFIRST_NO = 0x0000; 299 const int EDITHEADERFIRST_NEW = 0x0001; 300 const int EDITHEADERFIRST_CHANGES = 0x0002; 301 const int EDITHEADERFIRST_REPLIES = 0x0004; 302 const int EDITHEADERFIRST_FORWARDS = 0x0008; 303 const int EDITHEADERFIRST_YES = 0x000F; 304 305 306 // ------------------------------------------------------------------ 307 // Values for MSGLISTDATE 308 309 const int MSGLISTDATE_NONE = 0; 310 const int MSGLISTDATE_WRITTEN = 1; 311 const int MSGLISTDATE_ARRIVED = 2; 312 const int MSGLISTDATE_RECEIVED = 3; 313 314 315 // ------------------------------------------------------------------ 316 // Write constants 317 318 const int WRITE_CURRENT = 0; 319 const int WRITE_MARKED = 1; 320 const int WRITE_QUIT = -1; 321 const int WRITE_FILE = 1; 322 const int WRITE_PRINTER = 2; 323 const int WRITE_CLIPBRD = 4; 324 const int WRITE_NO_HEADER = 8; 325 const int WRITE_ONLY_HEADER = 16; 326 327 328 // ------------------------------------------------------------------ 329 // Values for REPLYRE 330 331 const int REPLYRE_NO = 0; 332 const int REPLYRE_YES = 1; 333 const int REPLYRE_NUMERIC = 2; 334 335 336 // ------------------------------------------------------------------ 337 338 const int MAX_DESC = 81; // Area descriptions 339 const int MAX_ECHO = 81; // Echoids 340 341 342 // ------------------------------------------------------------------ 343 // Name typedefs 344 345 typedef TCHAR Name[36]; 346 347 348 // ------------------------------------------------------------------ 349 // Tearline typedefs 350 351 typedef char Tear[77]; 352 353 354 // ------------------------------------------------------------------ 355 // Subject typedefs 356 357 typedef char Subj[128]; 358 359 360 // ------------------------------------------------------------------ 361 // Internet address typedefs 362 363 typedef char IAdr[128]; 364 365 366 // ------------------------------------------------------------------ 367 // Internet subject typedefs 368 369 typedef char XlatName[17]; 370 371 372 // ------------------------------------------------------------------ 373 // Echoid typedefs 374 375 typedef char Echo[MAX_ECHO]; 376 377 378 // ------------------------------------------------------------------ 379 // Description typedefs 380 381 typedef char Desc[MAX_DESC]; 382 383 384 // ------------------------------------------------------------------ 385 // Echo rename struct 386 387 class EchoRen { 388 public: 389 std::string from; 390 std::string to; EchoRen()391 EchoRen() {} EchoRen(const char * _from,const char * _to)392 EchoRen(const char *_from, const char *_to) { from = _from; to = _to; } ~EchoRen()393 ~EchoRen() {} 394 EchoRen& operator=(const EchoRen& a) { from = a.from; to = a.to; return *this; } 395 }; 396 397 398 // ------------------------------------------------------------------ 399 // Sound effect defines 400 401 const int SND_THEEND = 0; 402 const int SND_GOTIT = 1; 403 const int SND_TOOBAD = 2; 404 const int SND_TOYOU = 3; 405 const int SND_S_O_S = 4; 406 const int SND_SAYBIBI = 5; 407 408 409 // ------------------------------------------------------------------ 410 // Event command "Play". Types and structure 411 412 const byte PLAY_NO = 0; // * No sound 413 const byte PLAY_DOS = 1; // + DOS beeping and effects 414 const byte PLAY_VOC = 2; // * Creative Technology Voice samples 415 const byte PLAY_CMF = 3; // + Creative Technology FM songs 416 const byte PLAY_WAV = 4; // + MPIDS (Multimedia) WAVE samples 417 const byte PLAY_SAM = 5; // + Raw sample without any header 418 const byte PLAY_MID = 6; // - MIDI songs 419 const byte PLAY_ROL = 7; // - Adlib songs 420 const byte PLAY_SNG = 8; // - Sequencer plus Jr. songs 421 const byte PLAY_MOD = 9; // - ProTracker MOD songs 422 const byte PLAY_STM = 10; // - ScreamTracker STM/STX songs 423 // 424 // * = Supported in the current version 425 // + = Planned for support "soon" 426 // - = Will probably not be supported any time soon 427 428 struct GPlay { 429 byte type; 430 int effectno; // For the DOS sound effects SND_xxx 431 Path file; 432 int Play() const; 433 }; 434 435 436 // ------------------------------------------------------------------ 437 // Event types (CRC16 values), commands and structure 438 439 const word EVTT_AREALIST = 0x445D; 440 const word EVTT_ASKYESNO = 0xB26C; 441 const word EVTT_ATTENTION = 0x0F21; 442 const word EVTT_BLANKEROFF = 0x16EF; 443 const word EVTT_BLANKERON = 0x819F; 444 const word EVTT_DOSSHELL = 0x2111; 445 const word EVTT_EDITCOMMENT = 0x662C; 446 const word EVTT_EDITCOMPLETION = 0xDA45; 447 const word EVTT_ENDOFMSGS = 0x95BC; 448 const word EVTT_ERRORFATAL = 0xE9C1; 449 const word EVTT_EXIT = 0x6090; 450 const word EVTT_JOBDONE = 0xA81F; 451 const word EVTT_JOBFAILED = 0xCC9A; 452 const word EVTT_MSGCOMMENT = 0x0761; 453 const word EVTT_MSGCOPYING = 0x087B; 454 const word EVTT_MSGDELETING = 0x1AFF; 455 const word EVTT_MSGFROMYOU = 0xBACB; 456 const word EVTT_MSGISLOCAL = 0x2BD6; 457 const word EVTT_MSGISTWIT = 0xC466; 458 const word EVTT_MSGLIST = 0x84D0; 459 const word EVTT_MSGMOVING = 0xAA1B; 460 const word EVTT_MSGNEW = 0x2882; 461 const word EVTT_MSGPRINTING = 0x29E0; 462 const word EVTT_MSGREPLY = 0x3439; 463 const word EVTT_MSGTOYOU = 0xFB77; 464 const word EVTT_MSGWRITING = 0x0CA8; 465 const word EVTT_NODEBROWSE = 0xB6B5; 466 const word EVTT_SAYBIBI = 0xD39D; 467 const word EVTT_SEARCHFAILED = 0xEB54; 468 const word EVTT_SEARCHSUCCESS = 0x2EB2; 469 const word EVTT_STARTUP = 0x494B; 470 const word EVTT_TIMEOUT = 0x4065; 471 472 const word EVTT_BREAKLOOP = 0xFFFF; 473 const word EVTT_STOPVOICE = 0xFFFE; 474 const word EVTT_REMOVEVOCBUF = 0xFFFD; 475 const word EVTT_INITCARD = 0xFFFC; 476 477 const int EVTC_DO_NOTHING = 0; 478 const int EVTC_PLAY = 1; 479 480 struct GEvent { 481 word type; // EVTT crc value 482 int command; // EVTC value 483 union { 484 GPlay play; 485 // Other event command structures can be added here 486 }; 487 GEvent& operator=(const GEvent& a) { 488 type = a.type; 489 command = a.command; 490 switch(command) { 491 case EVTC_PLAY: 492 memcpy(&play, &a.play, sizeof(play)); 493 break; 494 } 495 return *this; 496 } 497 }; 498 499 500 // ------------------------------------------------------------------ 501 // Sound device structure 502 503 const int SNDDEV_NONE = 0; 504 const int SNDDEV_DOS = 1; 505 const int SNDDEV_CARD = 2; 506 507 struct SoundDos { 508 int type; 509 // Doesn't need more data.. 510 }; 511 512 513 // ------------------------------------------------------------------ 514 // Enums for the marking menu (GEMENU etc) 515 516 enum { 517 TAG_MARKYOURMAIL=100, 518 TAG_MARKHEADER, 519 TAG_MARKTXTHDR, 520 TAG_MARKTHREAD, 521 TAG_MARKASREAD, 522 TAG_MARKNEWMSGS, 523 TAG_MARKOLDMSGS, 524 TAG_MARKALLMSGS, 525 TAG_MARKUNMARK, 526 TAG_MARKRANGE, 527 TAG_MARKTOGGLE, 528 TAG_MARKQUIT 529 }; 530 531 532 // ------------------------------------------------------------------ 533 // Structure for GOLDNODE.IXL 534 535 struct NodeIxl { 536 537 // Nodelists 538 int nodelists; 539 Stamp* nodelist; 540 541 // Index files 542 Path addrindex; 543 Path nodeindex; 544 545 }; 546 547 548 // ------------------------------------------------------------------ 549 // GEUSER 550 551 struct infoLookup { 552 char* attr; 553 char* node; 554 char* system; 555 char* location; 556 char* name; 557 char* phone; 558 char* baud; 559 char* flags; 560 }; 561 562 563 // ------------------------------------------------------------------ 564 // Structures and constants for external utilities 565 566 const uint32_t EXTUTIL_CLS = 0x0001; 567 const uint32_t EXTUTIL_CURSOR = 0x0004; 568 const uint32_t EXTUTIL_RELOAD = 0x0008; 569 const uint32_t EXTUTIL_PAUSE = 0x0010; 570 const uint32_t EXTUTIL_PAUSEONERROR = 0x0020; 571 const uint32_t EXTUTIL_WIPE = 0x0040; 572 const uint32_t EXTUTIL_KEEPCTRL = 0x0080; 573 574 struct ExtUtil 575 { 576 uint32_t utilno; 577 uint32_t options; 578 std::string cmdline; 579 }; 580 581 struct SaveUtil 582 { 583 uint32_t utilno; 584 std::string menutext; 585 }; 586 587 struct UrlHandler 588 { 589 std::string name; 590 gregex scheme; 591 ExtUtil handler; 592 }; 593 594 595 // ------------------------------------------------------------------ 596 // Window areas 597 598 #define GC_BACK_ CFG->color[0] 599 #define GC_STAT_ CFG->color[1] 600 #define GC_BRAG_ CFG->color[2] 601 #define GC_AREA_ CFG->color[3] 602 #define GC_READ_ CFG->color[4] 603 #define GC_HEAD_ CFG->color[5] 604 #define GC_ASK__ CFG->color[6] 605 #define GC_MENU_ CFG->color[7] 606 #define GC_HELP_ CFG->color[8] 607 #define GC_CFG_ CFG->color[9] 608 #define GC_INFO_ CFG->color[10] 609 #define GC_CFGB_ CFG->color[11] 610 #define GC_STYLE_ CFG->color[12] 611 #define GC_SHAD_ CFG->color[13] 612 #if defined(GCFG_SPELL_INCLUDED) 613 #define GC_SPELL_ CFG->color[14] 614 #endif 615 616 617 // ------------------------------------------------------------------ 618 // Window parts 619 620 #define _Window c[0] 621 #define _Border c[1] 622 #define _Title c[2] 623 #define _Cursor c[2] 624 #define _Selector c[3] 625 #define _Quote c[3] 626 #define _Subject c[3] 627 #define _Highlight c[4] 628 #define _Noselect c[5] 629 #define _Kludge c[5] 630 #define _Location c[5] 631 #define _Tearline c[6] 632 #define _Edit c[6] 633 #define _Block c[7] 634 #define _Input c[7] 635 #define _Shadow c[7] 636 #define _Origin c[8] 637 #define _To c[8] 638 #define _From c[9] 639 #define _Tagline c[9] 640 #define _Hidden c[10] 641 #define _Pagebar c[11] 642 #define _Signature c[12] 643 #define _Quote2 c[13] 644 #define _URL c[14] 645 646 #define _WindowUnsent c[6] 647 #define _WindowUnread c[7] 648 #define _HighlightUnsent c[8] 649 #define _HighlightUnread c[9] 650 651 #define _Bold c[1] 652 #define _Italic c[2] 653 #define _BoldItalic c[3] 654 #define _Underscore c[4] 655 #define _BoldUnderscore c[5] 656 #define _ItalicUnderscore c[6] 657 #define _BoldItalicUnderscore c[7] 658 #define _Reverse c[8] 659 #define _ReverseBold c[9] 660 #define _ReverseItalic c[10] 661 #define _ReverseBoldItalic c[11] 662 #define _ReverseUnderscore c[12] 663 #define _ReverseBoldUnderscore c[13] 664 #define _ReverseItalicUnderscore c[14] 665 #define _ReverseBoldItalicUnderscore c[15] 666 667 #if defined(GCFG_SPELL_INCLUDED) 668 #define _SpellError c[0] 669 #endif 670 671 672 // ------------------------------------------------------------------ 673 // Window part colors 674 675 #define C_BACKW GC_BACK_._Window 676 #define C_BACKB GC_BACK_._Border 677 678 #define C_STATW GC_STAT_._Window 679 #define C_STATB GC_STAT_._Border 680 681 #define C_BRAGW GC_BRAG_._Window 682 #define C_BRAGB GC_BRAG_._Border 683 #define C_BRAGT GC_BRAG_._Title 684 #define C_BRAGH GC_BRAG_._Highlight 685 #define C_BRAGA GC_BRAG_._Block 686 687 #define C_AREAW GC_AREA_._Window 688 #define C_AREAB GC_AREA_._Border 689 #define C_AREAT GC_AREA_._Title 690 #define C_AREAS GC_AREA_._Selector 691 #define C_AREAQ GC_AREA_._Highlight 692 #define C_AREAPB GC_AREA_._Pagebar 693 694 #define C_READW GC_READ_._Window 695 #define C_READB GC_READ_._Border 696 #define C_READQ GC_READ_._Quote 697 #define C_READK GC_READ_._Kludge 698 #define C_READKH GC_READ_._Hidden 699 #define C_READC GC_READ_._Cursor 700 #define C_READA GC_READ_._Block 701 #define C_READH GC_READ_._Highlight 702 #define C_READG GC_READ_._Tagline 703 #define C_READT GC_READ_._Tearline 704 #define C_READO GC_READ_._Origin 705 #define C_READPB GC_READ_._Pagebar 706 #define C_READS GC_READ_._Signature 707 #define C_READQ2 GC_READ_._Quote2 708 #define C_READU GC_READ_._URL 709 #define C_HEADW GC_HEAD_._Window 710 #define C_HEADB GC_HEAD_._Border 711 #define C_HEADT GC_HEAD_._Title 712 #define C_HEADE GC_HEAD_._Edit 713 #define C_HEADI GC_HEAD_._Input 714 #define C_HEADQ GC_HEAD_._Highlight 715 #define C_HEADBY GC_HEAD_._From 716 #define C_HEADTO GC_HEAD_._To 717 #define C_HEADRE GC_HEAD_._Subject 718 #define C_HEADLOC GC_HEAD_._Location 719 720 #define C_ASKW GC_ASK__._Window 721 #define C_ASKB GC_ASK__._Border 722 #define C_ASKT GC_ASK__._Title 723 #define C_ASKS GC_ASK__._Selector 724 #define C_ASKQ GC_ASK__._Highlight 725 #define C_ASKN GC_ASK__._Noselect 726 #define C_ASKPB GC_ASK_._Pagebar 727 728 #define C_MENUW GC_MENU_._Window 729 #define C_MENUB GC_MENU_._Border 730 #define C_MENUT GC_MENU_._Title 731 #define C_MENUS GC_MENU_._Selector 732 #define C_MENUQ GC_MENU_._Highlight 733 #define C_MENUN GC_MENU_._Noselect 734 #define C_MENUPB GC_MENU_._Pagebar 735 #define C_MENUW_UNREAD GC_MENU_._WindowUnread 736 #define C_MENUQ_UNREADHIGH GC_MENU_._HighlightUnread 737 #define C_MENUW_UNSENT GC_MENU_._WindowUnsent 738 #define C_MENUQ_UNSENTHIGH GC_MENU_._HighlightUnsent 739 740 #define C_HELPW GC_HELP_._Window 741 #define C_HELPB GC_HELP_._Border 742 #define C_HELPT GC_HELP_._Title 743 #define C_HELPS GC_HELP_._Selector 744 #define C_HELPQ GC_HELP_._Highlight 745 #define C_HELPPB GC_HELP_._Pagebar 746 747 #define C_INFOW GC_INFO_._Window 748 #define C_INFOB GC_INFO_._Border 749 #define C_INFOT GC_INFO_._Title 750 #define C_INFOPB GC_INFO_._Pagebar 751 752 #define C_CFGW GC_CFG_._Window 753 #define C_CFGB GC_CFG_._Border 754 #define C_CFGT GC_CFG_._Title 755 #define C_CFGS GC_CFG_._Selector 756 #define C_CFGQ GC_CFG_._Highlight 757 #define C_CFGN GC_CFG_._Noselect 758 #define C_CFGPB GC_CFG_._Pagebar 759 760 #define C_CFGBW GC_CFGB_._Window 761 #define C_CFGBB GC_CFGB_._Border 762 #define C_CFGBT GC_CFGB_._Title 763 #define C_CFGBS GC_CFGB_._Selector 764 #define C_CFGBQ GC_CFGB_._Highlight 765 #define C_CFGBN GC_CFGB_._Noselect 766 #define C_CFGBPB GC_CFGB_._Pagebar 767 768 #define C_SHADOW GC_SHAD_._Shadow 769 770 #define C_STYLE GC_STYLE_.c 771 #define C_STYLE___B GC_STYLE_._Bold 772 #define C_STYLE__I_ GC_STYLE_._Italic 773 #define C_STYLE__IB GC_STYLE_._BoldItalic 774 #define C_STYLE_U__ GC_STYLE_._Underscore 775 #define C_STYLE_U_B GC_STYLE_._BoldUnderscore 776 #define C_STYLE_UI_ GC_STYLE_._ItalicUnderscore 777 #define C_STYLE_UIB GC_STYLE_._BoldItalicUnderscore 778 #define C_STYLER___ GC_STYLE_._Reverse 779 #define C_STYLER__B GC_STYLE_._ReverseBold 780 #define C_STYLER_I_ GC_STYLE_._ReverseItalic 781 #define C_STYLER_IB GC_STYLE_._ReverseBoldItalic 782 #define C_STYLERU__ GC_STYLE_._ReverseUnderscore 783 #define C_STYLERU_B GC_STYLE_._ReverseBoldUnderscore 784 #define C_STYLERUI_ GC_STYLE_._ReverseItalicUnderscore 785 #define C_STYLERUIB GC_STYLE_._ReverseBoldItalicUnderscore 786 787 #if defined(GCFG_SPELL_INCLUDED) 788 #define C_SCERROR GC_SPELL_._SpellError 789 #endif 790 791 792 // ------------------------------------------------------------------ 793 // Window handles 794 795 #define W_BACK GC_BACK_.w 796 #define W_STAT GC_STAT_.w 797 #define W_BRAG GC_BRAG_.w 798 #define W_AREA GC_AREA_.w 799 #define W_READ GC_READ_.w 800 #define W_HEAD GC_READ_.w 801 #define W_ASK GC_ASK__.w 802 #define W_MENU GC_MENU_.w 803 #define W_INFO GC_INFO_.w 804 805 806 // ------------------------------------------------------------------ 807 // Window offsets 808 809 #define W_XBACK GC_BACK_.x 810 #define W_XSTAT GC_STAT_.x 811 #define W_XBRAG GC_BRAG_.x 812 #define W_XAREA GC_AREA_.x 813 #define W_XREAD GC_READ_.x 814 #define W_XHEAD GC_READ_.x 815 #define W_XASK GC_ASK__.x 816 #define W_XMENU GC_MENU_.x 817 #define W_XINFO GC_INFO_.x 818 819 #define W_YBACK GC_BACK_.y 820 #define W_YSTAT GC_STAT_.y 821 #define W_YBRAG GC_BRAG_.y 822 #define W_YAREA GC_AREA_.y 823 #define W_YREAD GC_READ_.y 824 #define W_YHEAD GC_READ_.y 825 #define W_YASK GC_ASK__.y 826 #define W_YMENU GC_MENU_.y 827 #define W_YINFO GC_INFO_.y 828 829 830 // ------------------------------------------------------------------ 831 // Window border types 832 833 #define W_BBACK GC_BACK_.btype 834 #define W_BSTAT GC_STAT_.btype 835 #define W_BBRAG GC_BRAG_.btype 836 #define W_BAREA GC_AREA_.btype 837 #define W_BREAD GC_READ_.btype 838 #define W_BHEAD GC_READ_.btype 839 #define W_BASK GC_ASK__.btype 840 #define W_BMENU GC_MENU_.btype 841 #define W_BHELP GC_HELP_.btype 842 #define W_BINFO GC_INFO_.btype 843 #define W_BCFG GC_CFG_.btype 844 #define W_BCFGB GC_CFGB_.btype 845 846 // ------------------------------------------------------------------ 847 // Charset translation table structure 848 849 typedef byte ChsTab[4]; 850 851 struct Chs { 852 long id; 853 int version; 854 int level; 855 int displaylevel; 856 XlatName imp; // From Charset 857 XlatName exp; // To Charset 858 ChsTab t[256]; // The Translation Table 859 }; 860 861 862 // ------------------------------------------------------------------ 863 // Escaped characters table structure 864 865 typedef byte EscTab[5]; 866 867 struct Esc { 868 XlatName exp; // To Charset 869 byte esc; // Escape character 870 int pos1; // Relative position of first character 871 int pos2; // Relative position of last character 872 uint size; // Number of escaped chars in table 873 EscTab t[256]; // The Escaped Characters Table 874 }; 875 876 877 // ------------------------------------------------------------------ 878 // Charset mapping files 879 880 struct Map { 881 XlatName imp; // From Charset 882 XlatName exp; // To Charset 883 char* mapfile; // Mapping file and timestamp 884 }; 885 886 887 // ------------------------------------------------------------------ 888 889 struct PosLen { 890 int pos; 891 int len; 892 }; 893 894 895 // ------------------------------------------------------------------ 896 897 struct Ezycom { 898 Path msgbasepath; 899 Path userbasepath; 900 }; 901 902 903 // ------------------------------------------------------------------ 904 905 struct Invalidate { 906 std::pair<std::string, std::string> origin, seenby, tearline, cc, xc, xp; 907 }; 908 909 910 // ------------------------------------------------------------------ 911 912 struct Semaphore { 913 Path netscan; 914 Path echoscan; 915 Path exportlist; 916 Path importlist; 917 Path scanall; 918 Path scanthis; 919 Path scannetmail; 920 Path pmscanall; 921 Path pmscanthis; 922 Path pmscannetmail; 923 Path qwkimport; 924 Path qwkexport; 925 Path soupimport; 926 Path soupexport; 927 Path exitnow; 928 929 uint idletime; 930 }; 931 932 933 // ------------------------------------------------------------------ 934 935 typedef char BarList[45]; 936 937 struct FFblk { 938 int year; 939 int month; 940 int day; 941 int hour; 942 int minute; 943 int second; 944 long size; 945 Path name; 946 bool selected; // Extra - YES/NO 947 }; 948 949 struct FileSpec { 950 Path path; // Path to file(s) 951 char password[20]; // File Password 952 int files; // Number of files 953 bool delsent; // Kill files after sent 954 FFblk* fblk; // Filenames 955 }; 956 957 958 // ------------------------------------------------------------------ 959 960 const int RFCAddress = 1; 961 const int RFCName = 2; 962 963 // ------------------------------------------------------------------ 964 // Message written by/to me/you ? 965 966 const uint TO_ME = 1; 967 const uint BY_ME = 2; 968 const uint TO_YOU = 4; 969 const uint BY_YOU = 8; 970 const uint TO_ALL = 16; 971 972 // ------------------------------------------------------------------ 973 974 #if defined(GOLD_CANPACK) 975 #pragma pack() 976 #endif 977 978 979 // ------------------------------------------------------------------ 980 981 #endif 982