New keywords, cleanup, other changes
This commit is contained in:
parent
b6cb2cc5af
commit
0fe26ddd91
@ -12,6 +12,61 @@ ______________________________________________________________________
|
||||
Notes for GoldED+ 1.1.5, March xx 2001
|
||||
______________________________________________________________________
|
||||
|
||||
! Message lister redesigned. Should be quicker if you roll up and down
|
||||
but consumes more memory.
|
||||
|
||||
+ Added tonn of configuration keywords to goldkeys.cfg:
|
||||
|
||||
Keyword Default Assignment
|
||||
|
||||
AddressbookPack Alt-P
|
||||
AddressbookDelete Del
|
||||
AddressbookSelect Enter
|
||||
AddressbookAdd Ins
|
||||
AddressbookQuit Esc
|
||||
HeaderToggleScanned Alt-4
|
||||
HeaderToggleGroupmsg Alt-2
|
||||
HeaderToggleZonegate Alt-G
|
||||
HeaderToggleHubhost Alt-V
|
||||
HeaderToggleRetrecreq Alt-M
|
||||
HeaderToggleCrash Alt-C
|
||||
HeaderToggleLocked Alt-L
|
||||
HeaderToggleReceived Alt-R
|
||||
HeaderToggleLocal Alt-W
|
||||
HeaderToggleRetrec Alt-N
|
||||
HeaderToggleFreq Alt-F
|
||||
HeaderLookup Shift-F10
|
||||
HeaderToggleImm Alt-I
|
||||
HeaderToggleAttrWin Alt-F1
|
||||
HeaderAddressbook F10
|
||||
HeaderToggleArcsent Alt-B
|
||||
HeaderToggleHold Alt-H
|
||||
HeaderToggleAudit Alt-Q
|
||||
HeaderToggleXmail Alt-X
|
||||
HeaderToggleTrunc Alt-T
|
||||
HeaderToggleUpdreq Alt-U
|
||||
HeaderClearAttrib Alt-Z
|
||||
HeaderToggleKill Alt-K
|
||||
HeaderToggleTransit Alt-J
|
||||
HeaderToggleCfmrecreq Alt-Y
|
||||
HeaderToggleOrphan Alt-O
|
||||
HeaderToggleFile Alt-A
|
||||
HeaderToggleDelsent Alt-E
|
||||
HeaderToggleDirect Alt-D
|
||||
HeaderToggleReserved Alt-1
|
||||
HeaderTogglePvt Alt-P
|
||||
HeaderToggleSent Alt-S
|
||||
|
||||
! READuserbase renamed to READaddressbook.
|
||||
|
||||
! Changed default values for the following keywords:
|
||||
|
||||
Keyword New Default Old Default
|
||||
|
||||
ASKDELORIG NO YES
|
||||
STYLECODES YES HIDE
|
||||
QUOTEWRAPHARD NO YES
|
||||
|
||||
- Fixed leading space macroses in date/time format strings.
|
||||
|
||||
- Fixed double recoding of header during forward, quote-reply, and
|
||||
|
@ -708,7 +708,7 @@ CfgGed::CfgGed() {
|
||||
gedhandshake = true;
|
||||
goldbaseuserno = 0;
|
||||
happybirthday = 0;
|
||||
hidestylies = true;
|
||||
hidestylies = false;
|
||||
hudsonsizewarn = 16000000L;
|
||||
hudsonuserno = 0;
|
||||
ignorecharset = false;
|
||||
@ -731,7 +731,7 @@ CfgGed::CfgGed() {
|
||||
quotebufmode = QBUF_ASK;
|
||||
quotectrl = CI_TEAR|CI_ORIG;
|
||||
quotemargin = 70;
|
||||
quotewraphard = true;
|
||||
quotewraphard = false;
|
||||
ra2usersbbs = 0;
|
||||
replylink = 0;
|
||||
replylinklist = 0;
|
||||
@ -783,7 +783,7 @@ CfgGed::CfgGed() {
|
||||
switches.set(areakeeplast, true);
|
||||
switches.set(arealistgroupid, true);
|
||||
switches.set(arealistpagebar, true);
|
||||
switches.set(askdelorig, true);
|
||||
switches.set(askdelorig, false);
|
||||
switches.set(beepcomment, true);
|
||||
switches.set(beepnoises, true);
|
||||
switches.set(dispautonext, true);
|
||||
|
@ -52,7 +52,7 @@ CmdKey DefaultKeyset[] = {
|
||||
{ Key_Ent , KK_AreaSelect , KT_A },
|
||||
{ Key_Rgt , KK_AreaSelect , KT_A },
|
||||
{ Key_A_R , KK_AreaSelectMarks , KT_A },
|
||||
{ Key_A_F8 , KK_AreaShowDel , KT_R },
|
||||
{ Key_A_F8 , KK_AreaShowDel , KT_A },
|
||||
{ Key_A_T , KK_AreaToggle , KT_A },
|
||||
{ Key_Ins , KK_AreaToggle , KT_A },
|
||||
{ Key_C_Z , KK_AreaTouchNetscan , KT_A },
|
||||
@ -167,13 +167,15 @@ CmdKey DefaultKeyset[] = {
|
||||
{ Key_BS , KK_ListGotoBookMark , KT_M },
|
||||
{ Key_S , KK_ListMarkingOptions , KT_M },
|
||||
{ Key_A_S , KK_ListMarkingOptions , KT_M },
|
||||
{ Key_A_F9 , KK_ListMarkingOptions , KT_R },
|
||||
{ Key_A_F9 , KK_ListMarkingOptions , KT_M },
|
||||
{ Key_C_Q , KK_ListQuitNow , KT_M },
|
||||
{ Key_Ent , KK_ListSelect , KT_M },
|
||||
{ Key_Tab , KK_ListToggleBookMark , KT_M },
|
||||
{ Key_C_D , KK_ListToggleDate , KT_M },
|
||||
{ Key_Space , KK_ListToggleMark , KT_M },
|
||||
{ Key_C_B , KK_ListToggleWideSubj , KT_M },
|
||||
{ Key_C_PgUp , KK_ListGotoNext , KT_M },
|
||||
{ Key_C_PgDn , KK_ListGotoNext , KT_M },
|
||||
|
||||
{ Key_Esc , KK_NodeAbort , KT_N },
|
||||
{ Key_A_X , KK_NodeAskExit , KT_N },
|
||||
@ -304,16 +306,55 @@ CmdKey DefaultKeyset[] = {
|
||||
{ Key_T , KK_ReadToggleTwits , KT_R },
|
||||
{ Key_A_T , KK_ReadToggleTwits , KT_R },
|
||||
{ Key_C_Z , KK_ReadTouchNetscan , KT_R },
|
||||
{ Key_A_F10 , KK_ReadUserbase , KT_R },
|
||||
{ Key_A_F10 , KK_ReadAddressbook , KT_R },
|
||||
{ Key_C_X , KK_ReadUUDecode , KT_R },
|
||||
{ Key_W , KK_ReadWriteMsg , KT_R },
|
||||
{ Key_A_W , KK_ReadWriteMsg , KT_R },
|
||||
{ Key_F7 , KK_ReadWriteMsg , KT_R },
|
||||
|
||||
{ 0xFFFF , 0xFFFF , 0xFF }
|
||||
{ Key_Esc , KK_AddressbookQuit , KT_B },
|
||||
{ Key_Ins , KK_AddressbookAdd , KT_B },
|
||||
{ Key_Ent , KK_AddressbookSelect , KT_B },
|
||||
{ Key_Del , KK_AddressbookDelete , KT_B },
|
||||
{ Key_A_P , KK_AddressbookPack , KT_B },
|
||||
|
||||
{ Key_A_4 , KK_HeaderToggleScanned , KT_H },
|
||||
{ Key_A_2 , KK_HeaderToggleGroupmsg , KT_H },
|
||||
{ Key_A_G , KK_HeaderToggleZonegate , KT_H },
|
||||
{ Key_A_V , KK_HeaderToggleHubhost , KT_H },
|
||||
{ Key_A_M , KK_HeaderToggleRetrecreq, KT_H },
|
||||
{ Key_A_C , KK_HeaderToggleCrash , KT_H },
|
||||
{ Key_A_L , KK_HeaderToggleLocked , KT_H },
|
||||
{ Key_A_R , KK_HeaderToggleReceived , KT_H },
|
||||
{ Key_A_W , KK_HeaderToggleLocal , KT_H },
|
||||
{ Key_A_N , KK_HeaderToggleRetrec , KT_H },
|
||||
{ Key_A_F , KK_HeaderToggleFreq , KT_H },
|
||||
{ Key_S_F10 , KK_HeaderLookup , KT_H },
|
||||
{ Key_A_I , KK_HeaderToggleImm , KT_H },
|
||||
{ Key_A_F1 , KK_HeaderToggleAttrWin , KT_H },
|
||||
{ Key_F10 , KK_HeaderAddressbook , KT_H },
|
||||
{ Key_A_B , KK_HeaderToggleArcsent , KT_H },
|
||||
{ Key_A_H , KK_HeaderToggleHold , KT_H },
|
||||
{ Key_A_Q , KK_HeaderToggleAudit , KT_H },
|
||||
{ Key_A_X , KK_HeaderToggleXmail , KT_H },
|
||||
{ Key_A_T , KK_HeaderToggleTrunc , KT_H },
|
||||
{ Key_A_U , KK_HeaderToggleUpdreq , KT_H },
|
||||
{ Key_A_Z , KK_HeaderClearAttrib , KT_H },
|
||||
{ Key_A_K , KK_HeaderToggleKill , KT_H },
|
||||
{ Key_A_J , KK_HeaderToggleTransit , KT_H },
|
||||
{ Key_A_Y , KK_HeaderToggleCfmrecreq, KT_H },
|
||||
{ Key_A_O , KK_HeaderToggleOrphan , KT_H },
|
||||
{ Key_A_A , KK_HeaderToggleFile , KT_H },
|
||||
{ Key_A_E , KK_HeaderToggleDelsent , KT_H },
|
||||
{ Key_A_D , KK_HeaderToggleDirect , KT_H },
|
||||
{ Key_A_1 , KK_HeaderToggleReserved , KT_H },
|
||||
{ Key_A_P , KK_HeaderTogglePvt , KT_H },
|
||||
{ Key_A_S , KK_HeaderToggleSent , KT_H },
|
||||
|
||||
{ 0xFFFF , 0xFFFF , 0xFF }
|
||||
};
|
||||
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
// must be sorted by crc_token
|
||||
@ -322,6 +363,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_READADDRESSBOOKADD , KK_ReadAddressbookAdd , KT_R }, // 0x00FA
|
||||
{ CRC_LISTDOSSHELL , KK_ListDosShell , KT_M }, // 0x0130
|
||||
{ CRC_EDITGOLEFT , KK_EditGoLeft , KT_E }, // 0x043B
|
||||
{ CRC_HEADERTOGGLESCANNED , KK_HeaderToggleScanned , KT_H }, // 0x0459
|
||||
{ CRC_READTOGGLEHIDDEN , KK_ReadToggleHidden , KT_R }, // 0x04CE
|
||||
{ CRC_EDITIMPORTTEXT , KK_EditImportText , KT_E }, // 0x0586
|
||||
#if not defined(__UNIX__) or defined(__USE_NCURSES__)
|
||||
@ -334,6 +376,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_AREASELECTMARKS , KK_AreaSelectMarks , KT_A }, // 0x0AC3
|
||||
{ CRC_K_ALEFT , Key_A_Lft , 0 }, // 0x0B39
|
||||
{ CRC_READCHANGECHARSIN , KK_ReadChangeCharsIn , KT_R }, // 0x0B87
|
||||
{ CRC_HEADERTOGGLEGROUPMSG , KK_HeaderToggleGroupmsg , KT_H }, // 0x0C51
|
||||
{ CRC_K_AF4 , Key_A_F4 , 0 }, // 0x0EF0
|
||||
{ CRC_K_AF5 , Key_A_F5 , 0 }, // 0x0EF1
|
||||
{ CRC_K_AF6 , Key_A_F6 , 0 }, // 0x0EF2
|
||||
@ -349,6 +392,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_FILEUNMARKALL , KK_FileUnMarkAll , KT_F }, // 0x121A
|
||||
{ CRC_K_SPACE , Key_Space , 0 }, // 0x1281
|
||||
{ CRC_EDITREFLOW , KK_EditReflow , KT_E }, // 0x13F9
|
||||
{ CRC_HEADERTOGGLEZONEGATE , KK_HeaderToggleZonegate , KT_H }, // 0x140B
|
||||
{ CRC_K_AF12 , Key_A_F12 , 0 }, // 0x14FC
|
||||
{ CRC_K_AF10 , Key_A_F10 , 0 }, // 0x14FE
|
||||
{ CRC_K_AF11 , Key_A_F11 , 0 }, // 0x14FF
|
||||
@ -379,12 +423,18 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_CRIGHT , Key_C_Rgt , 0 }, // 0x20EC
|
||||
{ CRC_EDITBLOCKRIGHT , KK_EditBlockRight , KT_E }, // 0x20F9
|
||||
{ CRC_AREAJUMP , KK_AreaJump , KT_A }, // 0x2342
|
||||
{ CRC_HEADERTOGGLEHUBHOST , KK_HeaderToggleHubhost , KT_H }, // 0x2505
|
||||
{ CRC_K_CPGUP , Key_C_PgUp , 0 }, // 0x2603
|
||||
{ CRC_READGOTOPREVUNREAD , KK_ReadGotoPrevUnread , KT_R }, // 0x27EA
|
||||
{ CRC_READTOGGLEREALMSGNO , KK_ReadToggleRealMsgno , KT_R }, // 0x2A3B
|
||||
{ CRC_ADDRESSBOOKADD , KK_AddressbookAdd , KT_B }, // 0x2C5C
|
||||
{ CRC_HEADERTOGGLERETRECREQ , KK_HeaderToggleRetrecreq, KT_H }, // 0x2CF1
|
||||
{ CRC_HEADERTOGGLECRASH , KK_HeaderToggleCrash , KT_H }, // 0x2CF9
|
||||
{ CRC_ADDRESSBOOKDELETE , KK_AddressbookDelete , KT_B }, // 0x2D4A
|
||||
{ CRC_AREADOSSHELL , KK_AreaDosShell , KT_A }, // 0x2DED
|
||||
{ CRC_K_DOWN , Key_Dwn , 0 }, // 0x2F6D
|
||||
{ CRC_READNEWMSG , KK_ReadNewMsg , KT_R }, // 0x30CA
|
||||
{ CRC_HEADERTOGGLELOCKED , KK_HeaderToggleLocked , KT_H }, // 0x312D
|
||||
{ CRC_NODEGOTOFIRST , KK_NodeGotoFirst , KT_N }, // 0x321B
|
||||
{ CRC_READUNDEFINE , KK_ReadUndefine , KT_R }, // 0x329D
|
||||
{ CRC_K_ADOWN , Key_A_Dwn , 0 }, // 0x32C0
|
||||
@ -392,6 +442,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_CF10 , Key_C_F10 , 0 }, // 0x3482
|
||||
{ CRC_K_CF11 , Key_C_F11 , 0 }, // 0x3483
|
||||
{ CRC_K_CHOME , Key_C_Home , 0 }, // 0x35C4
|
||||
{ CRC_HEADERTOGGLERECEIVED , KK_HeaderToggleReceived , KT_H }, // 0x36B9
|
||||
{ CRC_K_CPGDN , Key_C_PgDn , 0 }, // 0x371D
|
||||
{ CRC_EDITCOPYABOVECHAR , KK_EditCopyAboveChar , KT_E }, // 0x380C
|
||||
{ CRC_LISTSELECT , KK_ListSelect , KT_M }, // 0x3829
|
||||
@ -457,6 +508,8 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_F8 , Key_F8 , 0 }, // 0x4638
|
||||
{ CRC_K_F9 , Key_F9 , 0 }, // 0x4639
|
||||
{ CRC_READTOGGLEKLUDGE , KK_ReadToggleKludge , KT_R }, // 0x46AB
|
||||
{ CRC_HEADERTOGGLELOCAL , KK_HeaderToggleLocal , KT_H }, // 0x47A1
|
||||
{ CRC_ADDRESSBOOKQUIT , KK_AddressbookQuit , KT_B }, // 0x47C7
|
||||
{ CRC_READCHANGEATTRS , KK_ReadChangeAttrs , KT_R }, // 0x47F8
|
||||
{ CRC_READSEARCH , KK_ReadSearch , KT_R }, // 0x48EF
|
||||
{ CRC_READMSGPGDN , KK_ReadMsgPgDn , KT_R }, // 0x4908
|
||||
@ -490,6 +543,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_CLEFT , Key_C_Lft , 0 }, // 0x535B
|
||||
{ CRC_K_UP , Key_Up , 0 }, // 0x5550
|
||||
{ CRC_K_END , Key_End , 0 }, // 0x5625
|
||||
{ CRC_HEADERTOGGLERETREC , KK_HeaderToggleRetrec , KT_H }, // 0x56EA
|
||||
{ CRC_K_ATAB , Key_A_Tab , 0 }, // 0x56FF
|
||||
{ CRC_READMSGPGUP , KK_ReadMsgPgUp , KT_R }, // 0x5816
|
||||
{ CRC_AREATOUCHNETSCAN , KK_AreaTouchNetscan , KT_A }, // 0x58C1
|
||||
@ -541,8 +595,10 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_KK_AUTO , Key_Auto , 0 }, // 0x60E2
|
||||
{ CRC_READFINDHEADER , KK_ReadFindHeader , KT_R }, // 0x6343
|
||||
{ CRC_K_PGUP , Key_PgUp , 0 }, // 0x63CC
|
||||
{ CRC_HEADERTOGGLEFREQ , KK_HeaderToggleFreq , KT_H }, // 0x63D9
|
||||
{ CRC_EDITABORT , KK_EditAbort , KT_E }, // 0x6468
|
||||
{ CRC_EDITSAVEFILE , KK_EditSaveFile , KT_E }, // 0x64A4
|
||||
{ CRC_HEADERLOOKUP , KK_HeaderLookup , KT_H }, // 0x64F2
|
||||
{ CRC_AREAGOTOPREV , KK_AreaGotoPrev , KT_A }, // 0x6534
|
||||
{ CRC_EDITDELLEFT , KK_EditDelLeft , KT_E }, // 0x6552
|
||||
{ CRC_EDITSAVEMSG , KK_EditSaveMsg , KT_E }, // 0x660C
|
||||
@ -556,9 +612,12 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_FILEUNMARK , KK_FileUnMark , KT_F }, // 0x6D1B
|
||||
{ CRC_EDITTOLOWER , KK_EditToLower , KT_E }, // 0x6D85
|
||||
{ CRC_K_AHOME , Key_A_Home , 0 }, // 0x6DA6
|
||||
{ CRC_HEADERTOGGLEIMM , KK_HeaderToggleImm , KT_H }, // 0x6E15
|
||||
{ CRC_LISTTOGGLEDATE , KK_ListToggleDate , KT_M }, // 0x6F1F
|
||||
{ CRC_K_APGDN , Key_A_PgDn , 0 }, // 0x6F7F
|
||||
{ CRC_HEADERTOGGLEATTRWIN , KK_HeaderToggleAttrWin , KT_H }, // 0x6F95
|
||||
{ CRC_K_HOME , Key_Home , 0 }, // 0x700B
|
||||
{ CRC_ADDRESSBOOKSELECT , KK_AddressbookSelect , KT_B }, // 0x70D1
|
||||
{ CRC_EDITGOPGUP , KK_EditGoPgUp , KT_E }, // 0x7163
|
||||
{ CRC_READMSGLINEUP , KK_ReadMsgLineUp , KT_R }, // 0x7238
|
||||
{ CRC_EDITHEADER , KK_EditHeader , KT_E }, // 0x726F
|
||||
@ -567,6 +626,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_READGOTOMSGNO , KK_ReadGotoMsgno , KT_R }, // 0x73F7
|
||||
{ CRC_READCHANGEUSERNAME , KK_ReadChangeUsername , KT_R }, // 0x7438
|
||||
{ CRC_READSTEALTAGLINE , KK_ReadStealTagline , KT_R }, // 0x7480
|
||||
{ CRC_HEADERADDRESSBOOK , KK_HeaderAddressbook , KT_H }, // 0x76FC
|
||||
{ CRC_EDITUNDEFINE , KK_EditUndefine , KT_E }, // 0x7873
|
||||
{ CRC_LISTGOTOFIRST , KK_ListGotoFirst , KT_M }, // 0x7925
|
||||
{ CRC_K_CEND , Key_C_End , 0 }, // 0x7B95
|
||||
@ -583,13 +643,16 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_EDITMACRO , KK_EditMacro , KT_E }, // 0x85CD
|
||||
{ CRC_K_ENTER , Key_Ent , 0 }, // 0x87BD
|
||||
{ CRC_EDITGOTOPLINE , KK_EditGoTopLine , KT_E }, // 0x87C2
|
||||
{ CRC_HEADERTOGGLEARCSENT , KK_HeaderToggleArcsent , KT_H }, // 0x88A7
|
||||
{ CRC_EDITBLOCKPGDN , KK_EditBlockPgDn , KT_E }, // 0x895B
|
||||
{ CRC_EDITASKEXIT , KK_EditAskExit , KT_E }, // 0x89AF
|
||||
{ CRC_HEADERTOGGLEHOLD , KK_HeaderToggleHold , KT_H }, // 0x8A5F
|
||||
{ CRC_EDITBLOCKHOME , KK_EditBlockHome , KT_E }, // 0x8B82
|
||||
{ CRC_READDELETEMSG , KK_ReadDeleteMsg , KT_R }, // 0x8BCE
|
||||
{ CRC_EDITTAB , KK_EditTab , KT_E }, // 0x8C26
|
||||
{ CRC_K_KEY5 , Key_5 , 0 }, // 0x9062
|
||||
{ CRC_EDITPASTE , KK_EditPaste , KT_E }, // 0x90C4
|
||||
{ CRC_HEADERTOGGLEAUDIT , KK_HeaderToggleAudit , KT_H }, // 0x91B7
|
||||
{ CRC_EDITGOBOTLINE , KK_EditGoBotLine , KT_E }, // 0x92DD
|
||||
{ CRC_EXTERNUTIL18 , KK_ExternUtil18 , KT_R }, // 0x94B0
|
||||
{ CRC_EXTERNUTIL19 , KK_ExternUtil19 , KT_R }, // 0x94B1
|
||||
@ -611,6 +674,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_EXTERNUTIL05 , KK_ExternUtil05 , KT_R }, // 0x95BD
|
||||
{ CRC_EXTERNUTIL06 , KK_ExternUtil06 , KT_R }, // 0x95BE
|
||||
{ CRC_EXTERNUTIL07 , KK_ExternUtil07 , KT_R }, // 0x95BF
|
||||
{ CRC_HEADERTOGGLEXMAIL , KK_HeaderToggleXmail , KT_H }, // 0x9622
|
||||
{ CRC_AREABOARDNOS , KK_AreaBoardnos , KT_A }, // 0x96EA
|
||||
{ CRC_EXTERNUTIL20 , KK_ExternUtil20 , KT_R }, // 0x97B8
|
||||
{ CRC_EXTERNUTIL21 , KK_ExternUtil21 , KT_R }, // 0x97B9
|
||||
@ -636,12 +700,14 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_FILEMENU , KK_FileMenu , KT_F }, // 0xA4B2
|
||||
{ CRC_READASKEXIT , KK_ReadAskExit , KT_R }, // 0xA500
|
||||
{ CRC_AREAJUMPNEXTMATCH , KK_AreaJumpNextMatch , KT_A }, // 0xA556
|
||||
{ CRC_HEADERTOGGLETRUNC , KK_HeaderToggleTrunc , KT_H }, // 0xA5B4
|
||||
{ CRC_READTOGGLEBOOKMARK , KK_ReadToggleBookMark , KT_R }, // 0xA7E2
|
||||
{ CRC_EDITSOUNDKILL , KK_EditSoundkill , KT_E }, // 0xA9A7
|
||||
{ CRC_AREAQUITNOW , KK_AreaQuitNow , KT_A }, // 0xAAC4
|
||||
{ CRC_READNEWAREA , KK_ReadNewArea , KT_R }, // 0xAB5E
|
||||
{ CRC_AREAMENU , KK_AreaMenu , KT_A }, // 0xABE1
|
||||
{ CRC_READQUITNOW , KK_ReadQuitNow , KT_R }, // 0xAC15
|
||||
{ CRC_HEADERTOGGLEUPDREQ , KK_HeaderToggleUpdreq , KT_H }, // 0xAC35
|
||||
{ CRC_EDITDELLINE , KK_EditDelLine , KT_E }, // 0xACCF
|
||||
#if not defined(__UNIX__) or defined(__USE_NCURSES__)
|
||||
{ CRC_K_SPGDN , Key_S_PgDn , 0 }, // 0xAD44
|
||||
@ -661,13 +727,18 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_AREADROPMSGMARKS , KK_AreaDropMsgMarks , KT_A }, // 0xB90C
|
||||
{ CRC_K_CINS , Key_C_Ins , 0 }, // 0xBA0E
|
||||
{ CRC_READGOTONEXTUNREAD , KK_ReadGotoNextUnread , KT_R }, // 0xBA34
|
||||
{ CRC_READADDRESSBOOK , KK_ReadAddressbook , KT_R }, // 0xBAC1
|
||||
#if not defined(__UNIX__) or defined(__USE_NCURSES__)
|
||||
{ CRC_K_SPGUP , Key_S_PgUp , 0 }, // 0xBC5A
|
||||
#endif
|
||||
{ CRC_FILEABORT , KK_FileAbort , KT_F }, // 0xBCED
|
||||
{ CRC_READCHANGETAGLINE , KK_ReadChangeTagline , KT_R }, // 0xBDD2
|
||||
{ CRC_READQUOTEMSG , KK_ReadQuoteMsg , KT_R }, // 0xBE00
|
||||
{ CRC_HEADERCLEARATTRIB , KK_HeaderClearAttrib , KT_H }, // 0xBED5
|
||||
{ CRC_READCOPYMOVEFORWARD , KK_ReadCopyMoveForward , KT_R }, // 0xBFAF
|
||||
{ CRC_HEADERTOGGLEKILL , KK_HeaderToggleKill , KT_H }, // 0xBFC2
|
||||
{ CRC_HEADERTOGGLETRANSIT , KK_HeaderToggleTransit , KT_H }, // 0xC112
|
||||
{ CRC_HEADERTOGGLECFMRECREQ , KK_HeaderToggleCfmrecreq, KT_H }, // 0xC12D
|
||||
{ CRC_READTOGGLEROT13 , KK_ReadToggleROT13 , KT_R }, // 0xC157
|
||||
{ CRC_EDITTOGGLECASE , KK_EditToggleCase , KT_E }, // 0xC282
|
||||
{ CRC_FILEGOTOLAST , KK_FileGotoLast , KT_F }, // 0xC40A
|
||||
@ -680,12 +751,16 @@ tglobalkey globalkeys[] = {
|
||||
#if not defined(__UNIX__) or defined(__USE_NCURSES__)
|
||||
{ CRC_K_SLEFT , Key_S_Lft , 0 }, // 0xC902
|
||||
#endif
|
||||
{ CRC_HEADERTOGGLEORPHAN , KK_HeaderToggleOrphan , KT_H }, // 0xC98A
|
||||
{ CRC_HEADERTOGGLEFILE , KK_HeaderToggleFile , KT_H }, // 0xC997
|
||||
{ CRC_NODEGOTOLAST , KK_NodeGotoLast , KT_N }, // 0xCA13
|
||||
{ CRC_FILEGOTOFIRST , KK_FileGotoFirst , KT_F }, // 0xCAD5
|
||||
{ CRC_HEADERTOGGLEDELSENT , KK_HeaderToggleDelsent , KT_H }, // 0xCD4B
|
||||
{ CRC_LISTTOGGLEBOOKMARK , KK_ListToggleBookMark , KT_M }, // 0xCFA0
|
||||
{ CRC_READTOGGLEMARKREAD , KK_ReadToggleMarkRead , KT_R }, // 0xCFAE
|
||||
{ CRC_LISTQUITNOW , KK_ListQuitNow , KT_M }, // 0xD037
|
||||
{ CRC_FILEMARKALL , KK_FileMarkAll , KT_F }, // 0xD115
|
||||
{ CRC_HEADERTOGGLEDIRECT , KK_HeaderToggleDirect , KT_H }, // 0xD1D2
|
||||
{ CRC_AREAWRITEGOLDLAST , KK_AreaWriteGoldlast , KT_A }, // 0xD353
|
||||
{ CRC_LISTTOGGLEMARK , KK_ListToggleMark , KT_M }, // 0xD389
|
||||
{ CRC_EDITTOUPPER , KK_EditToUpper , KT_E }, // 0xD3DD
|
||||
@ -734,10 +809,12 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_K_SDOWN , Key_S_Dwn , 0 }, // 0xF0FB
|
||||
#endif
|
||||
{ CRC_READCHANGEXLATIMPORT , KK_ReadChangeXlatImport , KT_R }, // 0xF169
|
||||
{ CRC_HEADERTOGGLERESERVED , KK_HeaderToggleReserved , KT_H }, // 0xF297
|
||||
{ CRC_READTOGGLESTYLES , KK_ReadToggleStyles , KT_R }, // 0xF47E
|
||||
{ CRC_EDITBLOCKEND , KK_EditBlockEnd , KT_E }, // 0xF55B
|
||||
{ CRC_EDITTABREVERSE , KK_EditTabReverse , KT_E }, // 0xF5B6
|
||||
{ CRC_READUSERBASE , KK_ReadUserbase , KT_R }, // 0xF736
|
||||
{ CRC_HEADERTOGGLEPVT , KK_HeaderTogglePvt , KT_H }, // 0xF614
|
||||
{ CRC_HEADERTOGGLESENT , KK_HeaderToggleSent , KT_H }, // 0xF68C
|
||||
{ CRC_K_RIGHT , Key_Rgt , 0 }, // 0xF78D
|
||||
{ CRC_EDITIMPORTQUOTEBUF , KK_EditImportQuotebuf , KT_E }, // 0xF797
|
||||
{ CRC_READMACRO , KK_ReadMacro , KT_R }, // 0xF7D8
|
||||
@ -759,6 +836,7 @@ tglobalkey globalkeys[] = {
|
||||
{ CRC_READCHANGEORIGIN , KK_ReadChangeOrigin , KT_R }, // 0xFD2C
|
||||
{ CRC_FILEDOSSHELL , KK_FileDosShell , KT_F }, // 0xFE9D
|
||||
{ CRC_EDITLOOKUPDEST , KK_EditLookupDest , KT_E }, // 0xFEC4
|
||||
{ CRC_ADDRESSBOOKPACK , KK_AddressbookPack , KT_B }, // 0xFF55
|
||||
{ CRC_AREAMACRO , KK_AreaMacro , KT_A }, // 0xFFA7
|
||||
};
|
||||
|
||||
@ -1032,6 +1110,8 @@ int ReadKeysCfg(int force) {
|
||||
case KT_M: ListKeys++; if(ListKeys == 1) ListKey = ck; break;
|
||||
case KT_N: NodeKeys++; if(NodeKeys == 1) NodeKey = ck; break;
|
||||
case KT_R: ReadKeys++; if(ReadKeys == 1) ReadKey = ck; break;
|
||||
case KT_B: AddressbookKeys++; if(AddressbookKeys == 1) AddressbookKey = ck; break;
|
||||
case KT_H: HeaderKeys++; if(HeaderKeys == 1) HeaderKey = ck; break;
|
||||
}
|
||||
ck++;
|
||||
}
|
||||
|
@ -204,6 +204,7 @@ const word CRC_NODEQUITNOW = 0xE780;
|
||||
const word CRC_NODESELECT = 0x6A64;
|
||||
const word CRC_NODEUNDEFINE = 0x5E32;
|
||||
|
||||
const word CRC_READADDRESSBOOK = 0xBAC1;
|
||||
const word CRC_READADDRESSBOOKADD = 0x00FA;
|
||||
const word CRC_READASKEXIT = 0xA500;
|
||||
const word CRC_READCHANGEAKA = 0x2015;
|
||||
@ -287,10 +288,48 @@ const word CRC_READTOGGLETWITS = 0x5FD1;
|
||||
const word CRC_READTOUCHNETSCAN = 0x4BF3;
|
||||
const word CRC_READTOUCHSEMAPHORE = 0x6B1D;
|
||||
const word CRC_READUNDEFINE = 0x329D;
|
||||
const word CRC_READUSERBASE = 0xF736;
|
||||
const word CRC_READUUDECODE = 0x4F0B;
|
||||
const word CRC_READWRITEMSG = 0x73AC;
|
||||
|
||||
const word CRC_ADDRESSBOOKQUIT = 0x47C7;
|
||||
const word CRC_ADDRESSBOOKADD = 0x2C5C;
|
||||
const word CRC_ADDRESSBOOKSELECT = 0x70D1;
|
||||
const word CRC_ADDRESSBOOKDELETE = 0x2D4A;
|
||||
const word CRC_ADDRESSBOOKPACK = 0xFF55;
|
||||
|
||||
const word CRC_HEADERADDRESSBOOK = 0x76FC;
|
||||
const word CRC_HEADERLOOKUP = 0x64F2;
|
||||
const word CRC_HEADERTOGGLEATTRWIN = 0x6F95;
|
||||
const word CRC_HEADERTOGGLERESERVED = 0xF297;
|
||||
const word CRC_HEADERTOGGLEGROUPMSG = 0x0C51;
|
||||
const word CRC_HEADERTOGGLESCANNED = 0x0459;
|
||||
const word CRC_HEADERTOGGLEFILE = 0xC997;
|
||||
const word CRC_HEADERTOGGLEARCSENT = 0x88A7;
|
||||
const word CRC_HEADERTOGGLECRASH = 0x2CF9;
|
||||
const word CRC_HEADERTOGGLEDIRECT = 0xD1D2;
|
||||
const word CRC_HEADERTOGGLEDELSENT = 0xCD4B;
|
||||
const word CRC_HEADERTOGGLEFREQ = 0x63D9;
|
||||
const word CRC_HEADERTOGGLEZONEGATE = 0x140B;
|
||||
const word CRC_HEADERTOGGLEHOLD = 0x8A5F;
|
||||
const word CRC_HEADERTOGGLEIMM = 0x6E15;
|
||||
const word CRC_HEADERTOGGLETRANSIT = 0xC112;
|
||||
const word CRC_HEADERTOGGLEKILL = 0xBFC2;
|
||||
const word CRC_HEADERTOGGLELOCKED = 0x312D;
|
||||
const word CRC_HEADERTOGGLERETRECREQ= 0x2CF1;
|
||||
const word CRC_HEADERTOGGLERETREC = 0x56EA;
|
||||
const word CRC_HEADERTOGGLEORPHAN = 0xC98A;
|
||||
const word CRC_HEADERTOGGLEPVT = 0xF614;
|
||||
const word CRC_HEADERTOGGLEAUDIT = 0x91B7;
|
||||
const word CRC_HEADERTOGGLERECEIVED = 0x36B9;
|
||||
const word CRC_HEADERTOGGLESENT = 0xF68C;
|
||||
const word CRC_HEADERTOGGLETRUNC = 0xA5B4;
|
||||
const word CRC_HEADERTOGGLEUPDREQ = 0xAC35;
|
||||
const word CRC_HEADERTOGGLEHUBHOST = 0x2505;
|
||||
const word CRC_HEADERTOGGLELOCAL = 0x47A1;
|
||||
const word CRC_HEADERTOGGLEXMAIL = 0x9622;
|
||||
const word CRC_HEADERTOGGLECFMRECREQ= 0xC12D;
|
||||
const word CRC_HEADERCLEARATTRIB = 0xBED5;
|
||||
|
||||
const word CRC_K_F1 = 0x4631;
|
||||
const word CRC_K_F2 = 0x4632;
|
||||
const word CRC_K_F3 = 0x4633;
|
||||
|
@ -551,6 +551,7 @@ struct MLst {
|
||||
time_t arrived;
|
||||
time_t received;
|
||||
char goldmark;
|
||||
bool initialized;
|
||||
};
|
||||
|
||||
|
||||
|
@ -836,8 +836,10 @@ Line* IEclass::wrapit(Line** __currline, uint* __curr_col, uint* __curr_row, boo
|
||||
displine(_thisline, _thisrow);
|
||||
}
|
||||
|
||||
_thislen = _thisline->txt.length();
|
||||
|
||||
// If we are on the cursor line, check if the cursor char was wrapped
|
||||
if(_thisrow == _cursrow and _thisline->txt.length() <= _curscol) {
|
||||
if((_thisrow == _cursrow) and (_thislen <= _curscol) and not ((_thislen == _curscol) and (_thisline->txt[_curscol] != ' '))) {
|
||||
_curscol = _quotelen + ((_curscol > _wrappos) ? _curscol-_wrappos : 0);
|
||||
_cursrow++;
|
||||
UndoItem* i = Undo->last_item;
|
||||
@ -1018,14 +1020,9 @@ void IEclass::DelChar() {
|
||||
GetQuotestr(_nextline->txt.c_str(), _dummybuf, &_quotelen);
|
||||
}
|
||||
|
||||
// Copy the next line's text to this line
|
||||
// Skip past the next line's quote string and blanks, if any
|
||||
const char* _nextptr = _nextline->txt.c_str()+_quotelen;
|
||||
if(not ((_nextline->type & GLINE_QUOT) and (col == 0))) {
|
||||
while(*_nextptr == ' ')
|
||||
_nextptr++;
|
||||
}
|
||||
_thisline->txt += _nextptr;
|
||||
// Copy the next line's text to this line without quote string
|
||||
const char *_nexttext = _nextline->txt.c_str()+_quotelen;
|
||||
_thisline->txt += _nexttext + strspn(_nexttext, " ");
|
||||
|
||||
Undo->PushItem(EDIT_UNDO_CUT_TEXT|batch_mode, _thisline, col);
|
||||
|
||||
@ -1054,10 +1051,12 @@ void IEclass::DelChar() {
|
||||
// Make sure the line type still is correct
|
||||
setlinetype(_thisline);
|
||||
|
||||
uint _thisrow = row;
|
||||
|
||||
// Rewrap this line
|
||||
wrapdel(&currline, &col, &row, false);
|
||||
|
||||
refresh(currline, row);
|
||||
refresh(_thisline, _thisrow);
|
||||
|
||||
GFTRK(NULL);
|
||||
}
|
||||
@ -1453,7 +1452,7 @@ void IEclass::DeleteEOL() {
|
||||
|
||||
GFTRK("EditDeleteEOL");
|
||||
|
||||
bool _has_linefeed = currline->txt.find('\n') != currline->txt.npos ? true : false;
|
||||
bool _has_linefeed = (currline->txt.find('\n') != currline->txt.npos) ? true : false;
|
||||
|
||||
Undo->PushItem(EDIT_UNDO_DEL_TEXT, currline);
|
||||
|
||||
|
@ -345,7 +345,6 @@ void FileSelect(GMsg* msg, char* title, FileSpec* fspec) {
|
||||
|
||||
if((strpbrk(fbuf, "*?")) or done) {
|
||||
winop = true;
|
||||
ChgAttrs(NO, msg);
|
||||
vcurhide();
|
||||
wopen_(6,0, MAX_POS+3, MAXCOL, W_BMENU, C_MENUB, C_MENUW, C_MENUPB);
|
||||
|
||||
@ -419,7 +418,6 @@ void FileSelect(GMsg* msg, char* title, FileSpec* fspec) {
|
||||
|
||||
if(winop) {
|
||||
wclose();
|
||||
ChgAttrs(YES, msg);
|
||||
vcurshow();
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,9 @@ int ListKeys = 0;
|
||||
int NodeKeys = 0;
|
||||
int EditKeys = 0;
|
||||
int FileKeys = 0;
|
||||
list<CmdKey>::iterator AreaKey, ReadKey, ListKey, NodeKey, EditKey, FileKey;
|
||||
int AddressbookKeys = 0;
|
||||
int HeaderKeys = 0;
|
||||
list<CmdKey>::iterator AreaKey, ReadKey, ListKey, NodeKey, EditKey, FileKey, AddressbookKey, HeaderKey;
|
||||
|
||||
int inforow = 18;
|
||||
|
||||
|
@ -100,8 +100,8 @@ extern char m_title[];
|
||||
extern int m_titlepos;
|
||||
extern int m_titleattr;
|
||||
|
||||
extern int AreaKeys, ReadKeys, ListKeys, NodeKeys, EditKeys, FileKeys;
|
||||
extern list<CmdKey>::iterator AreaKey, ReadKey, ListKey, NodeKey, EditKey, FileKey;
|
||||
extern int AreaKeys, ReadKeys, ListKeys, NodeKeys, EditKeys, FileKeys, AddressbookKeys, HeaderKeys;
|
||||
extern list<CmdKey>::iterator AreaKey, ReadKey, ListKey, NodeKey, EditKey, FileKey, AddressbookKey, HeaderKey;
|
||||
|
||||
extern int inforow;
|
||||
|
||||
|
@ -58,18 +58,29 @@ public:
|
||||
|
||||
bool GMsgHeaderEdit::handle_other_keys(gkey& key) {
|
||||
|
||||
gkey kk;
|
||||
|
||||
if(key < KK_Commands) {
|
||||
key = key_tolower(key);
|
||||
kk = SearchKey(key, HeaderKey, HeaderKeys);
|
||||
if(kk)
|
||||
key = kk;
|
||||
}
|
||||
|
||||
if(ProcessAttrs(key) == true)
|
||||
return true;
|
||||
|
||||
switch(key) {
|
||||
case Key_F10:
|
||||
case KK_HeaderAddressbook:
|
||||
vcurhide();
|
||||
ChgAttrs(NO, msg);
|
||||
lookup_addressbook(msg, get_field(id_to_name)->buf, get_field(id_to_addr)->buf, true);
|
||||
ChgAttrs(YES, msg);
|
||||
get_field(id_to_name)->draw();
|
||||
get_field(id_to_addr)->draw();
|
||||
current->update();
|
||||
vcurshow();
|
||||
break;
|
||||
case Key_S_F10:
|
||||
return true;
|
||||
|
||||
case KK_HeaderLookup:
|
||||
{
|
||||
Addr addr,addr2;
|
||||
INam buf;
|
||||
@ -110,6 +121,7 @@ bool GMsgHeaderEdit::handle_other_keys(gkey& key) {
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
default:
|
||||
if(PlayMacro(key, 0))
|
||||
return true;
|
||||
@ -414,7 +426,7 @@ int EditHeaderinfo(int mode, GMsgHeaderView &view) {
|
||||
break;
|
||||
}
|
||||
|
||||
ChgAttrs(true, msg);
|
||||
ChgAttrs(YES, msg);
|
||||
|
||||
whelpdef(CFG->helpged, Key_F1, C_HELPB, C_HELPW, C_HELPQ, C_HELPS, NULL);
|
||||
vcurshow();
|
||||
@ -430,7 +442,7 @@ int EditHeaderinfo(int mode, GMsgHeaderView &view) {
|
||||
hedit.run(H_Header);
|
||||
vcurhide();
|
||||
|
||||
ChgAttrs(false, msg);
|
||||
ChgAttrs(NO, msg);
|
||||
|
||||
if(not hedit.dropped and not gkbd.quitall) {
|
||||
|
||||
|
@ -304,19 +304,58 @@ const gkey KK_ReadToggleStyles = 0xFF9B;
|
||||
const gkey KK_ReadToggleTwits = 0xFF9C;
|
||||
const gkey KK_ReadTouchNetscan = 0xFF9D;
|
||||
const gkey KK_ReadTouchSemaphore = 0xFF9E;
|
||||
const gkey KK_ReadUserbase = 0xFF9F;
|
||||
const gkey KK_ReadAddressbook = 0xFF9F;
|
||||
const gkey KK_ReadUUDecode = 0xFFA0;
|
||||
const gkey KK_ReadWriteMsg = 0xFFA1;
|
||||
const gkey KK_ReadDirQuoteMsg = 0xFFA2;
|
||||
const gkey KK_ReadMoveDirQuoteMsg = 0xFFA3;
|
||||
|
||||
const gkey KK_AreaUndefine = 0xFFB0;
|
||||
const gkey KK_EditUndefine = 0xFFB1;
|
||||
const gkey KK_FileUndefine = 0xFFB2;
|
||||
const gkey KK_ListUndefine = 0xFFB3;
|
||||
const gkey KK_NodeUndefine = 0xFFB4;
|
||||
const gkey KK_ReadUndefine = 0xFFB5;
|
||||
const gkey KK_ZzzzLast = 0xFFB6;
|
||||
const gkey KK_AddressbookQuit = 0xFFB0;
|
||||
const gkey KK_AddressbookAdd = 0xFFB1;
|
||||
const gkey KK_AddressbookSelect = 0xFFB2;
|
||||
const gkey KK_AddressbookDelete = 0xFFB3;
|
||||
const gkey KK_AddressbookPack = 0xFFB4;
|
||||
|
||||
const gkey KK_HeaderAddressbook = 0xFFC0;
|
||||
const gkey KK_HeaderLookup = 0xFFC1;
|
||||
const gkey KK_HeaderToggleAttrWin = 0xFFC2;
|
||||
const gkey KK_HeaderClearAttrib = 0xFFC3;
|
||||
const gkey KK_HeaderToggleReserved = 0xFFC4;
|
||||
const gkey KK_HeaderToggleGroupmsg = 0xFFC5;
|
||||
const gkey KK_HeaderToggleScanned = 0xFFC6;
|
||||
const gkey KK_HeaderToggleFile = 0xFFC7;
|
||||
const gkey KK_HeaderToggleArcsent = 0xFFC8;
|
||||
const gkey KK_HeaderToggleCrash = 0xFFC9;
|
||||
const gkey KK_HeaderToggleDirect = 0xFFCA;
|
||||
const gkey KK_HeaderToggleDelsent = 0xFFCB;
|
||||
const gkey KK_HeaderToggleFreq = 0xFFCC;
|
||||
const gkey KK_HeaderToggleZonegate = 0xFFCD;
|
||||
const gkey KK_HeaderToggleHold = 0xFFCE;
|
||||
const gkey KK_HeaderToggleImm = 0xFFCF;
|
||||
const gkey KK_HeaderToggleTransit = 0xFFD0;
|
||||
const gkey KK_HeaderToggleKill = 0xFFD1;
|
||||
const gkey KK_HeaderToggleLocked = 0xFFD2;
|
||||
const gkey KK_HeaderToggleRetrecreq= 0xFFD3;
|
||||
const gkey KK_HeaderToggleRetrec = 0xFFD4;
|
||||
const gkey KK_HeaderToggleOrphan = 0xFFD5;
|
||||
const gkey KK_HeaderTogglePvt = 0xFFD6;
|
||||
const gkey KK_HeaderToggleAudit = 0xFFD7;
|
||||
const gkey KK_HeaderToggleReceived = 0xFFD8;
|
||||
const gkey KK_HeaderToggleSent = 0xFFD9;
|
||||
const gkey KK_HeaderToggleTrunc = 0xFFDA;
|
||||
const gkey KK_HeaderToggleUpdreq = 0xFFDB;
|
||||
const gkey KK_HeaderToggleHubhost = 0xFFDC;
|
||||
const gkey KK_HeaderToggleLocal = 0xFFDD;
|
||||
const gkey KK_HeaderToggleXmail = 0xFFDE;
|
||||
const gkey KK_HeaderToggleCfmrecreq= 0xFFDF;
|
||||
|
||||
const gkey KK_AreaUndefine = 0xFFE0;
|
||||
const gkey KK_EditUndefine = 0xFFE1;
|
||||
const gkey KK_FileUndefine = 0xFFE2;
|
||||
const gkey KK_ListUndefine = 0xFFE3;
|
||||
const gkey KK_NodeUndefine = 0xFFE4;
|
||||
const gkey KK_ReadUndefine = 0xFFE5;
|
||||
const gkey KK_ZzzzLast = 0xFFE6;
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
@ -329,6 +368,8 @@ const int KT_M = 8; // Msg lister
|
||||
const int KT_N = 16; // Node browser
|
||||
const int KT_R = 32; // Reader (+ external utils)
|
||||
const int KT_F = 64; // File browser
|
||||
const int KT_B = 128; // Addressbook browser
|
||||
const int KT_H = 256; // Header editor
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
@ -433,51 +433,145 @@ static void toggle_dispattrwindow() {
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void ChgAttrs(int mode, GMsg* __msg) {
|
||||
bool ProcessAttrs(gkey &key) {
|
||||
|
||||
static KBnd* k1;
|
||||
switch(key) {
|
||||
case KK_HeaderToggleScanned:
|
||||
toggle_scanned();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleGroupmsg:
|
||||
toggle_groupmsg();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleZonegate:
|
||||
toggle_zonegate();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleHubhost:
|
||||
toggle_hubhost();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleRetrecreq:
|
||||
toggle_retrecreq();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleCrash:
|
||||
toggle_crash();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleLocked:
|
||||
toggle_locked();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleReceived:
|
||||
toggle_received();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleLocal:
|
||||
toggle_local();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleRetrec:
|
||||
toggle_retrec();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleFreq:
|
||||
toggle_freq();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleImm:
|
||||
toggle_imm();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleAttrWin:
|
||||
toggle_dispattrwindow();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleArcsent:
|
||||
toggle_arcsent();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleHold:
|
||||
toggle_hold();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleAudit:
|
||||
toggle_audit();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleXmail:
|
||||
toggle_xmail();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleTrunc:
|
||||
toggle_trunc();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleUpdreq:
|
||||
toggle_updreq();
|
||||
return true;
|
||||
|
||||
case KK_HeaderClearAttrib:
|
||||
clear_attrib();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleKill:
|
||||
toggle_kill();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleTransit:
|
||||
toggle_transit();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleCfmrecreq:
|
||||
toggle_cfmrecreq();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleOrphan:
|
||||
toggle_orphan();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleFile:
|
||||
toggle_file();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleDelsent:
|
||||
toggle_delsent();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleDirect:
|
||||
toggle_direct();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleReserved:
|
||||
toggle_reserved();
|
||||
return true;
|
||||
|
||||
case KK_HeaderTogglePvt:
|
||||
toggle_pvt();
|
||||
return true;
|
||||
|
||||
case KK_HeaderToggleSent:
|
||||
toggle_sent();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void ChgAttrs(int mode, GMsg* __msg) {
|
||||
|
||||
if(mode) {
|
||||
MenuMsgPtr = __msg;
|
||||
|
||||
if(EDIT->HeaderAttrs() or (mode == ALWAYS))
|
||||
DispAttrWindow(true);
|
||||
k1 = chgonkey(NULL);
|
||||
setonkey(Key_A_F1, toggle_dispattrwindow, 0);
|
||||
setonkey(Key_A_1, toggle_reserved , 0);
|
||||
setonkey(Key_A_2, toggle_groupmsg , 0);
|
||||
setonkey(Key_A_4, toggle_scanned , 0);
|
||||
setonkey(Key_A_A, toggle_file , 0);
|
||||
setonkey(Key_A_B, toggle_arcsent , 0);
|
||||
setonkey(Key_A_C, toggle_crash , 0);
|
||||
setonkey(Key_A_D, toggle_direct , 0);
|
||||
setonkey(Key_A_E, toggle_delsent , 0);
|
||||
setonkey(Key_A_F, toggle_freq , 0);
|
||||
setonkey(Key_A_G, toggle_zonegate , 0);
|
||||
setonkey(Key_A_H, toggle_hold , 0);
|
||||
setonkey(Key_A_I, toggle_imm , 0);
|
||||
setonkey(Key_A_J, toggle_transit , 0);
|
||||
setonkey(Key_A_K, toggle_kill , 0);
|
||||
setonkey(Key_A_L, toggle_locked , 0);
|
||||
setonkey(Key_A_M, toggle_retrecreq , 0);
|
||||
setonkey(Key_A_N, toggle_retrec , 0);
|
||||
setonkey(Key_A_O, toggle_orphan , 0);
|
||||
setonkey(Key_A_P, toggle_pvt , 0);
|
||||
setonkey(Key_A_Q, toggle_audit , 0);
|
||||
setonkey(Key_A_R, toggle_received , 0);
|
||||
setonkey(Key_A_S, toggle_sent , 0);
|
||||
setonkey(Key_A_T, toggle_trunc , 0);
|
||||
setonkey(Key_A_U, toggle_updreq , 0);
|
||||
setonkey(Key_A_V, toggle_hubhost , 0);
|
||||
setonkey(Key_A_W, toggle_local , 0);
|
||||
setonkey(Key_A_X, toggle_xmail , 0);
|
||||
setonkey(Key_A_Y, toggle_cfmrecreq , 0);
|
||||
setonkey(Key_A_Z, clear_attrib , 0);
|
||||
}
|
||||
else {
|
||||
DispAttrWindow(false);
|
||||
freonkey();
|
||||
chgonkey(k1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -490,9 +584,23 @@ void AskAttributes(GMsg* __msg) {
|
||||
update_statusline(LNG->ChangeAttrs);
|
||||
whelpdef(CFG->helpged, Key_F1, C_HELPB, C_HELPW, C_HELPQ, C_HELPS, NULL);
|
||||
whelppcat(H_Attributes);
|
||||
getxch();
|
||||
|
||||
gkey key;
|
||||
do {
|
||||
gkey kk;
|
||||
|
||||
key = getxch();
|
||||
if(key < KK_Commands) {
|
||||
key = key_tolower(key);
|
||||
kk = SearchKey(key, HeaderKey, HeaderKeys);
|
||||
if(kk)
|
||||
key = kk;
|
||||
}
|
||||
}
|
||||
while(ProcessAttrs(key) == true);
|
||||
|
||||
whelpop();
|
||||
ChgAttrs(false, __msg);
|
||||
ChgAttrs(NO, __msg);
|
||||
}
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -742,9 +742,6 @@ static int browse_nodelist(GMsg* msg, char* title, int topline) {
|
||||
NodelistBrowser* browser = new NodelistBrowser;
|
||||
throw_new(browser);
|
||||
|
||||
if(topline == 0)
|
||||
ChgAttrs(NO, msg); // Close the attributes menu
|
||||
|
||||
browser->btype = W_BMENU;
|
||||
browser->battr = C_MENUB;
|
||||
browser->wattr = C_MENUW;
|
||||
@ -770,9 +767,6 @@ static int browse_nodelist(GMsg* msg, char* title, int topline) {
|
||||
|
||||
delete browser;
|
||||
|
||||
if(topline == 0)
|
||||
ChgAttrs(YES, msg); // Turn on the attributes menu again
|
||||
|
||||
return (not aborted);
|
||||
}
|
||||
|
||||
|
@ -183,6 +183,7 @@ void InvalidateControlInfo(GMsg *msg);
|
||||
|
||||
void DispHeadAttrs(GMsg* msg);
|
||||
void AskAttributes(GMsg* msg);
|
||||
bool ProcessAttrs(gkey &key);
|
||||
void ChgAttrs(int mode, GMsg* msg);
|
||||
int ChangeAka();
|
||||
int ChangeCharsIn();
|
||||
@ -197,7 +198,6 @@ int ChangeXlatImport();
|
||||
// ------------------------------------------------------------------
|
||||
// GEMLST prototypes
|
||||
|
||||
uint MsgBrowser(GMsg* msg);
|
||||
void MsgThreadlist();
|
||||
|
||||
|
||||
|
@ -713,7 +713,7 @@ void Reader() {
|
||||
}
|
||||
break;
|
||||
|
||||
case KK_ReadUserbase:
|
||||
case KK_ReadAddressbook:
|
||||
edit_addressbook(msg);
|
||||
break;
|
||||
|
||||
|
@ -606,11 +606,20 @@ void guserbase::update_screen(bool force) {
|
||||
|
||||
bool guserbase::handle_key() {
|
||||
|
||||
gkey kk;
|
||||
|
||||
if(key < KK_Commands) {
|
||||
key = key_tolower(key);
|
||||
kk = SearchKey(key, AddressbookKey, AddressbookKeys);
|
||||
if(kk)
|
||||
key = kk;
|
||||
}
|
||||
|
||||
switch(key) {
|
||||
case Key_Esc:
|
||||
case KK_AddressbookQuit:
|
||||
aborted = true;
|
||||
return false;
|
||||
case Key_Ins: // Add new entry
|
||||
case KK_AddressbookAdd:
|
||||
{
|
||||
clear_entry(&entry);
|
||||
lock();
|
||||
@ -629,7 +638,7 @@ bool guserbase::handle_key() {
|
||||
center(CFG->displistcursor);
|
||||
}
|
||||
break;
|
||||
case Key_Ent: // Select/Edit entry
|
||||
case KK_AddressbookSelect:
|
||||
if(not select_list) {
|
||||
if(not entry.is_deleted) {
|
||||
lock();
|
||||
@ -645,7 +654,7 @@ bool guserbase::handle_key() {
|
||||
aborted = false;
|
||||
return false;
|
||||
}
|
||||
case Key_Del: // Soft-Delete Entry
|
||||
case KK_AddressbookDelete:
|
||||
lock();
|
||||
refresh_maximum_index();
|
||||
read_entry(index);
|
||||
@ -654,7 +663,7 @@ bool guserbase::handle_key() {
|
||||
unlock();
|
||||
update_screen();
|
||||
break;
|
||||
case Key_A_P: // Pack Addressbook
|
||||
case KK_AddressbookPack:
|
||||
pack_addressbook();
|
||||
index = position = 0;
|
||||
update_screen();
|
||||
|
@ -256,7 +256,7 @@ void w_progress(int mode, int attr, long pos, long size, const char* title) {
|
||||
goto oops; // Oops, someone forgot to open the window..
|
||||
if((pos*58/size) != (prev_pos*58/size)) {
|
||||
force_update:
|
||||
wpropbar(PROP_BARGRAPH, 1, 0, -59, 1, attr, pos, size);
|
||||
wpropbar(1, 0, 59, attr, pos, size);
|
||||
}
|
||||
prev_pos = pos;
|
||||
break;
|
||||
|
@ -1594,8 +1594,9 @@ int setonkey(gkey keycode, VfvCP func, gkey pass) {
|
||||
|
||||
gkey key_tolower(gkey __keycode) {
|
||||
|
||||
if(isupper(KCodAsc(__keycode)))
|
||||
return (gkey)(__keycode + 'a' - 'A');
|
||||
byte &ascii = KCodAsc(__keycode);
|
||||
if(isupper(ascii))
|
||||
ascii = tolower(ascii);
|
||||
return __keycode;
|
||||
}
|
||||
|
||||
|
@ -35,13 +35,6 @@
|
||||
#include <gdefs.h>
|
||||
#if defined(__USE_NCURSES__)
|
||||
#include <gcurses.h>
|
||||
#else
|
||||
#define ACS_BOARD '°'
|
||||
#ifndef __linux__
|
||||
#define ACS_BLOCK 'Û'
|
||||
#else
|
||||
#define ACS_BLOCK ' '
|
||||
#endif
|
||||
#endif
|
||||
#if defined(__WIN32__)
|
||||
#include <windows.h>
|
||||
@ -196,7 +189,7 @@ struct __int10_ah1b_statebuf {
|
||||
#endif
|
||||
#define INTENSE 8
|
||||
|
||||
#if defined(__UNIX__) and not defined(__USE_NCURSES__)
|
||||
#if defined(__UNIX__) && !defined(__USE_NCURSES__)
|
||||
#define ACSET BLINK
|
||||
#else
|
||||
#define ACSET 0
|
||||
@ -345,15 +338,11 @@ public:
|
||||
|
||||
extern GVid *gvid;
|
||||
|
||||
#if defined(__UNIX__) and not defined(__USE_NCURSES__)
|
||||
extern bool gvid_xterm;
|
||||
#endif
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Box characters table
|
||||
|
||||
#if not defined(__USE_NCURSES__)
|
||||
#if !defined(__USE_NCURSES__)
|
||||
|
||||
extern char* __box_table[];
|
||||
#define _box_table(i,j) (__box_table[i][j])
|
||||
|
@ -177,7 +177,6 @@ inline gdma gdmaptr(int col, int row) {
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
extern int gvid_stdout;
|
||||
extern bool gvid_xterm;
|
||||
extern const char* gvid_acs_enable;
|
||||
extern const char* gvid_acs_disable;
|
||||
int gvid_last_attr = 0;
|
||||
|
@ -92,7 +92,6 @@ GVid *gvid;
|
||||
#elif defined(__UNIX__)
|
||||
|
||||
int gvid_stdout = -1;
|
||||
bool gvid_xterm = false;
|
||||
const char* gvid_acs_enable;
|
||||
const char* gvid_acs_disable;
|
||||
|
||||
@ -401,26 +400,31 @@ int GVid::detectadapter() {
|
||||
|
||||
adapter = V_VGA;
|
||||
|
||||
#elif defined(__UNIX__)
|
||||
#elif defined(__linux__)
|
||||
|
||||
for(int n=0; n<8; n++)
|
||||
__box_table[n] = __box_table[8];
|
||||
|
||||
gvid_acs_enable = "\016";
|
||||
gvid_acs_disable = "\017";
|
||||
|
||||
gvid_stdout = fileno(stdout);
|
||||
|
||||
adapter = V_VGA;
|
||||
|
||||
#elif defined(__UNIX__) // code below should not be normally used...
|
||||
|
||||
bool gvid_xterm = false;
|
||||
const char* term = getenv("TERM");
|
||||
#ifndef __linux__
|
||||
|
||||
if(term and strneql(term, "xterm", 5)) {
|
||||
#endif
|
||||
gvid_xterm = true;
|
||||
for(int n=0; n<8; n++)
|
||||
__box_table[n] = __box_table[8];
|
||||
#ifndef __linux__
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef __linux__
|
||||
|
||||
gvid_acs_enable = gvid_xterm ? "\033)0\033(B\016" : "\033[11m";
|
||||
gvid_acs_disable = gvid_xterm ? "\033(B\033)B\017" : "\033[10m";
|
||||
#else
|
||||
gvid_acs_enable = gvid_xterm ? "\016" : "";
|
||||
gvid_acs_disable = gvid_xterm ? "\017" : "";
|
||||
#endif
|
||||
|
||||
gvid_stdout = fileno(stdout);
|
||||
|
||||
|
@ -380,10 +380,11 @@ int wprintvs (int wrow, int wcol, int attr, const vchar* str);
|
||||
int wprintns (int wrow, int wcol, int attr, const char* str, uint len, vchar fill=' ', int fill_attr=-1);
|
||||
int wprintsf (int wrow, int wcol, int attr, const char* format, const char* str);
|
||||
int wprintws (int wrow, int wcol, vatch* buf, uint len);
|
||||
void wpropbar (int mode, int xx, int yy, long len, long barlen, int attr, long pos, long size);
|
||||
void wpropbar (int xx, int yy, long len, int attr, long pos, long size);
|
||||
int wputc (vchar ch);
|
||||
int wputs (const char* str);
|
||||
int wputx (int wrow, int wcol, int attr, vchar chr, uint len);
|
||||
int wputy (int wrow, int wcol, int attr, vchar chr, uint len);
|
||||
int wreadcur (int* wrow, int* wcol);
|
||||
int wscroll (int count, int direc);
|
||||
void wscrollbar (int orientation, uint total, uint maxpos, uint pos, int sadd=0);
|
||||
|
@ -309,14 +309,14 @@ int wshadow(int attr) {
|
||||
// read current screen characters/attributes and save in shadow's buffer
|
||||
vatch tmp[2];
|
||||
*q = vgetw(crow, ccol);
|
||||
#ifndef __linux__
|
||||
#if defined(__USE_NCURSES__) || !defined(__UNIX__)
|
||||
tmp[0] = vsattr(*q, attr);
|
||||
#else
|
||||
tmp[0] = vsattr(' ', attr);
|
||||
#endif
|
||||
q++;
|
||||
*q = vgetw(crow, ccol + 1);
|
||||
#ifndef __linux__
|
||||
#if defined(__USE_NCURSES__) || !defined(__UNIX__)
|
||||
tmp[1] = vsattr(*q, attr);
|
||||
#else
|
||||
tmp[1] = vsattr(' ', attr);
|
||||
@ -339,7 +339,7 @@ int wshadow(int attr) {
|
||||
|
||||
// read attribs/chars and store in buffers
|
||||
*q = vgetw(crow, ccol++);
|
||||
#ifndef __linux__
|
||||
#if defined(__USE_NCURSES__) || !defined(__UNIX__)
|
||||
*wptr++ = vsattr(*q, attr);
|
||||
#else
|
||||
*wptr++ = vsattr(' ', attr);
|
||||
@ -918,6 +918,16 @@ int wputx(int wrow, int wcol, int attr, vchar chr, uint len) {
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
int wputy(int wrow, int wcol, int attr, vchar chr, uint len) {
|
||||
|
||||
const int &border = gwin.active->border;
|
||||
vputy(gwin.active->srow+wrow+border,gwin.active->scol+wcol+border,attr,chr,len);
|
||||
return gwin.werrno=W_NOERROR;
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Displays a string inside active window
|
||||
|
||||
@ -1882,83 +1892,32 @@ int wmessage(const char* str, int border, int leftofs, int attr) {
|
||||
// ------------------------------------------------------------------
|
||||
// Proportion bar
|
||||
|
||||
void wpropbar(int mode, int xx, int yy, long len, long barlen, int attr, long pos, long size) {
|
||||
void wpropbar(int xx, int yy, long len, int attr, long pos, long size) {
|
||||
|
||||
// mode = PROP_PAGE or PROP_BARGRAPH.
|
||||
// xx, yy = start position in window.
|
||||
// len = length (in chars) of progress field.
|
||||
// attr = color to use for progress field.
|
||||
// pos = present position.
|
||||
// size = total size of field.
|
||||
|
||||
#ifndef __linux__
|
||||
const vchar _fld = ACS_BOARD;
|
||||
const vchar _bar = ACS_BLOCK;
|
||||
const vchar barchar = _box_table(gwin.active->btype, 13);
|
||||
#ifdef __UNIX__ // prefferable under xterm
|
||||
const vchar thumbchar = ' ';
|
||||
int thumbattr = revsattr(attr);
|
||||
#else
|
||||
const vchar _fld = ' ';
|
||||
const vchar _bar = _box_table(gwin.active->btype, 13);
|
||||
const vchar thumbchar = '\xDB';
|
||||
int thumbattr = attr;
|
||||
#endif
|
||||
const vchar _up = '\x18';
|
||||
const vchar _dwn = '\x19';
|
||||
|
||||
int dir=0, x, y;
|
||||
long first, width, length;
|
||||
long thumblen = (pos*len)/size;
|
||||
|
||||
if(len > 0)
|
||||
dir = 1; // Vertical
|
||||
else
|
||||
len = -len; // Horizontal
|
||||
|
||||
if(not barlen)
|
||||
length = size-len;
|
||||
else
|
||||
length = size;
|
||||
|
||||
if((size > len) or (mode!=PROP_PAGE)) {
|
||||
if(not barlen)
|
||||
barlen = (len*len)/size;
|
||||
if(not barlen)
|
||||
barlen = 1;
|
||||
width = len-barlen;
|
||||
first = (pos*width)/length;
|
||||
}
|
||||
else {
|
||||
first = 0;
|
||||
barlen = len;
|
||||
}
|
||||
|
||||
if(dir) {
|
||||
if(mode==PROP_PAGE) {
|
||||
if(pos > 0)
|
||||
wprintc(yy,xx,revsattr(attr),_up);
|
||||
else
|
||||
wprintc(yy,xx,revsattr(attr),' ');
|
||||
if(pos+len < size)
|
||||
wprintc(yy+(int)len-1,xx,revsattr(attr),_dwn);
|
||||
else
|
||||
wprintc(yy+(int)len-1,xx,revsattr(attr),' ');
|
||||
}
|
||||
for(y=yy+(mode==PROP_PAGE); y<(yy+first); y++) {
|
||||
wprintc(y,xx,attr|ACSET,mode==PROP_BARGRAPH?_bar:_fld);
|
||||
}
|
||||
for(; y<(yy+first+barlen); y++) {
|
||||
wprintc(y,xx,attr|ACSET,_bar);
|
||||
}
|
||||
for(; y<(yy+len-(mode==PROP_PAGE)); y++) {
|
||||
wprintc(y,xx,attr|ACSET,_fld);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(x=xx; x<(xx+first); x++) {
|
||||
wprintc(yy,x,attr|ACSET,mode==PROP_BARGRAPH?_bar:_fld);
|
||||
}
|
||||
for(; x<(xx+first+barlen); x++) {
|
||||
wprintc(yy,x,attr|ACSET,_bar);
|
||||
}
|
||||
for(; x<(xx+len); x++) {
|
||||
wprintc(yy,x,attr|ACSET,_fld);
|
||||
}
|
||||
int x = xx;
|
||||
if(thumblen != 0) {
|
||||
wputx(yy, x, thumbattr|ACSET, thumbchar, thumblen);
|
||||
x += thumblen;
|
||||
}
|
||||
if(thumblen != len)
|
||||
wputx(yy, x, attr|ACSET, barchar, len-thumblen);
|
||||
}
|
||||
|
||||
|
||||
@ -2044,85 +2003,78 @@ int wtitle(const char* str, int tpos, int tattr) {
|
||||
|
||||
void wscrollbar(int orientation, uint total, uint maxpos, uint pos, int sadd) {
|
||||
|
||||
int attr = (gwin.active->sbattr == -1) ? gwin.active->battr : gwin.active->sbattr;
|
||||
int invattr = revsattr(attr);
|
||||
|
||||
const vchar barchar = _box_table(gwin.active->btype, 13);
|
||||
const vchar thumbchar = ACS_BLOCK;
|
||||
const vchar arrowupchar = '\x18';
|
||||
const vchar arrowdownchar = '\x19';
|
||||
const vchar arrowleftchar = '\x1B';
|
||||
const vchar arrowrightchar = '\x1A';
|
||||
|
||||
int attr = (gwin.active->sbattr == -1) ? gwin.active->battr : gwin.active->sbattr;
|
||||
#ifdef __linux__
|
||||
int thumbattr = revsattr(attr);
|
||||
#ifdef __UNIX__ // prefferable under xterm
|
||||
const vchar thumbchar = ' ';
|
||||
int thumbattr = revsattr(attr);
|
||||
#else
|
||||
const vchar thumbchar = '\xDB';
|
||||
int thumbattr = attr;
|
||||
#endif
|
||||
|
||||
int srow, scol;
|
||||
uint visiblelen, barlen;
|
||||
uint maxthumbpos, thumbpos, thumblen;
|
||||
|
||||
if(maxpos == 0)
|
||||
maxpos = 1;
|
||||
|
||||
if(orientation == W_VERT) {
|
||||
srow = gwin.active->srow + gwin.active->border + sadd;
|
||||
scol = gwin.active->ecol;
|
||||
uint visiblelen;
|
||||
if(orientation == W_VERT)
|
||||
visiblelen = (gwin.active->erow - (gwin.active->srow+sadd)) + 1 - (gwin.active->border?2:0);
|
||||
}
|
||||
else {
|
||||
srow = gwin.active->erow;
|
||||
scol = gwin.active->scol + gwin.active->border + sadd;
|
||||
else
|
||||
visiblelen = (gwin.active->ecol - (gwin.active->scol+sadd)) + 1 - (gwin.active->border?2:0) - 2;
|
||||
}
|
||||
|
||||
barlen = visiblelen - 2;
|
||||
thumblen = (visiblelen*barlen) / total;
|
||||
uint barlen = visiblelen - 2;
|
||||
uint thumblen = (visiblelen*barlen) / total;
|
||||
if(thumblen == 0)
|
||||
thumblen = 1;
|
||||
else if(thumblen > barlen)
|
||||
thumblen = barlen;
|
||||
maxthumbpos = barlen - thumblen;
|
||||
thumbpos = (pos*maxthumbpos) / maxpos;
|
||||
uint maxthumbpos = barlen - thumblen;
|
||||
uint thumbpos = (pos*maxthumbpos) / maxpos;
|
||||
uint thumbdiv = (pos*maxthumbpos) % maxpos;
|
||||
if((thumbdiv >= (maxpos/2)) and (maxpos > 1))
|
||||
thumbpos++;
|
||||
if(thumbpos > maxthumbpos)
|
||||
thumbpos = maxthumbpos;
|
||||
barlen -= thumbpos + thumblen;
|
||||
|
||||
if(orientation == W_VERT) {
|
||||
register int row = srow;
|
||||
register int erow1 = srow + thumbpos + 1;
|
||||
register int erow2 = erow1 + thumblen;
|
||||
register int erow3 = srow + barlen + 1;
|
||||
vputc(row++, scol, revsattr(attr), arrowupchar);
|
||||
while(row < erow1)
|
||||
vputc(row++, scol, attr|ACSET, barchar);
|
||||
while(row < erow2)
|
||||
#ifdef __linux__
|
||||
vputc(row++, scol, thumbattr|ACSET, thumbchar);
|
||||
#else
|
||||
vputc(row++, scol, attr|ACSET, thumbchar);
|
||||
#endif
|
||||
while(row < erow3)
|
||||
vputc(row++, scol, attr|ACSET, barchar);
|
||||
vputc(row, scol, revsattr(attr), arrowdownchar);
|
||||
uint scol = gwin.active->ecol - gwin.active->scol - gwin.active->border;
|
||||
vputc((sadd++)+gwin.active->srow+gwin.active->border, gwin.active->ecol, invattr|ACSET, arrowupchar);
|
||||
if(thumbpos != 0) {
|
||||
wputy(sadd, scol, attr|ACSET, barchar, thumbpos);
|
||||
sadd += thumbpos;
|
||||
}
|
||||
if(thumblen != 0) {
|
||||
wputy(sadd, scol, thumbattr|ACSET, thumbchar, thumblen);
|
||||
sadd += thumblen;
|
||||
}
|
||||
if(barlen != 0) {
|
||||
wputy(sadd, scol, attr|ACSET, barchar, barlen);
|
||||
sadd += barlen;
|
||||
}
|
||||
vputc(sadd+gwin.active->srow+gwin.active->border, gwin.active->ecol, invattr|ACSET, arrowdownchar);
|
||||
}
|
||||
else {
|
||||
register int col = scol;
|
||||
register int ecol1 = scol + thumbpos + 1;
|
||||
register int ecol2 = ecol1 + thumblen;
|
||||
register int ecol3 = scol + barlen + 1;
|
||||
vputc(srow, col++, revsattr(attr), arrowleftchar);
|
||||
while(col < ecol1)
|
||||
vputc(srow, col++, attr|ACSET, barchar);
|
||||
while(col < ecol2)
|
||||
#ifdef __linux__
|
||||
vputc(srow, col++, thumbattr|ACSET, thumbchar);
|
||||
#else
|
||||
vputc(srow, col++, attr|ACSET, thumbchar);
|
||||
#endif
|
||||
while(col < ecol3)
|
||||
vputc(srow, col++, attr|ACSET, barchar);
|
||||
vputc(srow, col, revsattr(attr), arrowrightchar);
|
||||
uint srow = gwin.active->erow - gwin.active->srow - gwin.active->border;
|
||||
vputc(gwin.active->erow, (sadd++)+gwin.active->scol+gwin.active->border, invattr|ACSET, arrowleftchar);
|
||||
if(thumbpos != 0) {
|
||||
wputx(srow, sadd, attr|ACSET, barchar, thumbpos);
|
||||
sadd += thumbpos;
|
||||
}
|
||||
if(thumblen != 0) {
|
||||
wputx(srow, sadd, thumbattr|ACSET, thumbchar, thumblen);
|
||||
sadd += thumblen;
|
||||
}
|
||||
if(barlen != 0) {
|
||||
wputx(srow, sadd, attr|ACSET, barchar, barlen);
|
||||
sadd += barlen;
|
||||
}
|
||||
vputc(gwin.active->erow, sadd+gwin.active->scol+gwin.active->border, invattr|ACSET, arrowrightchar);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,233 +34,6 @@
|
||||
#include <gwinpick.h>
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
int Picker(PInf* p, Pick* pick) {
|
||||
|
||||
int keyok;
|
||||
gkey keycode, newkey;
|
||||
|
||||
#ifdef GOLD_MOUSE
|
||||
gmou.HideCursor();
|
||||
#endif
|
||||
|
||||
// Open and initialize
|
||||
|
||||
if(pick->open)
|
||||
pick->open(p);
|
||||
if(p->helpcat)
|
||||
whelppcat(p->helpcat);
|
||||
|
||||
do {
|
||||
|
||||
// Display selection bar
|
||||
|
||||
wgotoxy(p->pos, 0);
|
||||
p->type = PICK_BAR;
|
||||
pick->disp(p);
|
||||
p->type = PICK_DISP;
|
||||
|
||||
// Handle keyboard and delay function
|
||||
|
||||
if(pick->dodelayed)
|
||||
pick->dodelayed(p);
|
||||
|
||||
#ifdef GOLD_MOUSE
|
||||
gmou.ShowCursor();
|
||||
#endif
|
||||
|
||||
keyok = YES;
|
||||
|
||||
do {
|
||||
newkey = keycode = getxchtick();
|
||||
if(newkey == Key_Tick)
|
||||
pick->dokey(p, &keycode);
|
||||
} while(newkey == Key_Tick);
|
||||
|
||||
do {
|
||||
#ifdef GOLD_MOUSE
|
||||
gmou.HideCursor();
|
||||
#endif
|
||||
newkey = 0;
|
||||
switch(keycode) {
|
||||
case Key_Up:
|
||||
case Key_Dwn:
|
||||
case Key_PgUp:
|
||||
case Key_PgDn:
|
||||
case Key_Home:
|
||||
case Key_End:
|
||||
if(pick->precursor)
|
||||
pick->precursor(p);
|
||||
break;
|
||||
}
|
||||
switch(keycode) {
|
||||
case Key_Up:
|
||||
p->direction = -1;
|
||||
if(p->pos) {
|
||||
pick->disp(p);
|
||||
p->pos--;
|
||||
p->idx--;
|
||||
}
|
||||
else if(p->idx > p->minidx) {
|
||||
pick->disp(p);
|
||||
p->idx--;
|
||||
pick->scroll(p, SDOWN);
|
||||
}
|
||||
else if(p->listwrap)
|
||||
newkey = Key_End;
|
||||
break;
|
||||
|
||||
case Key_Dwn:
|
||||
p->direction = 1;
|
||||
if(p->pos < p->maxpos) {
|
||||
if(p->idx < p->maxidx) {
|
||||
pick->disp(p);
|
||||
p->pos++;
|
||||
p->idx++;
|
||||
}
|
||||
else if(p->listwrap)
|
||||
newkey = Key_Home;
|
||||
}
|
||||
else if(p->idx < p->maxidx) {
|
||||
pick->disp(p);
|
||||
p->idx++;
|
||||
pick->scroll(p, SUP);
|
||||
}
|
||||
else if(p->listwrap)
|
||||
newkey = Key_Home;
|
||||
break;
|
||||
|
||||
case Key_PgUp:
|
||||
p->direction = -1;
|
||||
if(p->pos) {
|
||||
pick->disp(p);
|
||||
p->idx -= p->pos;
|
||||
p->pos = 0;
|
||||
}
|
||||
else if(p->idx > p->minidx) {
|
||||
p->idx -= (p->idx >= p->maxpos) ? p->maxpos : p->idx;
|
||||
pick->page(p);
|
||||
}
|
||||
break;
|
||||
|
||||
case Key_PgDn:
|
||||
p->direction = 1;
|
||||
if(p->pos < p->maxpos) {
|
||||
if(p->idx == p->maxidx) {
|
||||
if(p->maxpos < p->maxidx) {
|
||||
p->pos = p->maxpos;
|
||||
p->idx = p->maxidx;
|
||||
pick->page(p);
|
||||
}
|
||||
}
|
||||
else if(p->idx + (p->maxpos-p->pos) >= p->maxidx) {
|
||||
pick->disp(p);
|
||||
p->pos += p->maxidx-p->idx;
|
||||
p->idx = p->maxidx;
|
||||
}
|
||||
else if(p->pos != p->maxpos) {
|
||||
pick->disp(p);
|
||||
p->idx += p->maxpos-p->pos;
|
||||
p->pos = p->maxpos;
|
||||
}
|
||||
}
|
||||
else if(p->idx < p->maxidx) {
|
||||
if(p->idx+p->maxpos > p->maxidx) {
|
||||
p->pos = p->maxidx-p->idx;
|
||||
p->idx = p->maxidx;
|
||||
pick->page(p);
|
||||
}
|
||||
else {
|
||||
p->idx += p->maxpos;
|
||||
p->pos = p->maxpos;
|
||||
pick->page(p);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case Key_Home:
|
||||
p->direction = -1;
|
||||
if(p->idx > p->minidx) {
|
||||
if((p->idx - p->pos) <= p->minidx) {
|
||||
pick->disp(p);
|
||||
p->idx = p->minidx;
|
||||
p->pos = 0;
|
||||
}
|
||||
else {
|
||||
p->pos = 0;
|
||||
p->idx = p->minidx;
|
||||
pick->page(p);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case Key_End:
|
||||
p->direction = 1;
|
||||
if(p->idx < p->maxidx) {
|
||||
if(p->idx + (p->maxpos-p->pos) >= p->maxidx) {
|
||||
pick->disp(p);
|
||||
p->pos += p->maxidx-p->idx;
|
||||
p->idx = p->maxidx;
|
||||
}
|
||||
else {
|
||||
p->pos = (p->maxidx-p->idx) < p->maxpos ? p->maxidx-p->idx : p->maxpos;
|
||||
p->idx = p->maxidx;
|
||||
pick->page(p);
|
||||
}
|
||||
}
|
||||
else if(p->pos < p->maxpos) {
|
||||
if(p->maxpos < p->maxidx) {
|
||||
p->pos = p->maxpos;
|
||||
p->idx = p->maxidx;
|
||||
pick->page(p);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case Key_C_Up:
|
||||
p->direction = -1;
|
||||
if(p->idx - p->pos) {
|
||||
p->idx--;
|
||||
pick->page(p);
|
||||
}
|
||||
break;
|
||||
|
||||
case Key_C_Dwn:
|
||||
p->direction = 1;
|
||||
if(p->idx < p->maxidx) {
|
||||
p->idx++;
|
||||
pick->page(p);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
keyok = pick->dokey(p, &keycode);
|
||||
newkey = keycode;
|
||||
}
|
||||
if(newkey)
|
||||
keycode = newkey;
|
||||
} while(newkey);
|
||||
} while(keyok);
|
||||
|
||||
#ifdef GOLD_MOUSE
|
||||
gmou.HideCursor();
|
||||
#endif
|
||||
|
||||
// Close and clean
|
||||
if(p->helpcat)
|
||||
whelpop();
|
||||
if(pick->close)
|
||||
pick->close(p);
|
||||
|
||||
#ifdef GOLD_MOUSE
|
||||
gmou.ShowCursor();
|
||||
#endif
|
||||
|
||||
return p->retval;
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
gwinpick::gwinpick() {
|
||||
|
@ -46,66 +46,6 @@ const int LIST_NEARTOP = 1;
|
||||
const int LIST_TOP = 2;
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Picker info
|
||||
|
||||
struct PInf {
|
||||
|
||||
PInf() : ypos(row), xpos(column), ylen(height), xlen(width) {}
|
||||
|
||||
uint& ypos;
|
||||
uint& xpos;
|
||||
uint& ylen;
|
||||
uint& xlen;
|
||||
uint row; //ypos; // Window Starting Row
|
||||
uint column; //xpos; // Window Starting Column
|
||||
uint height; //ylen; // Window Height
|
||||
uint width; //xlen; // Window Width
|
||||
int btype; // Window Border Type
|
||||
int battr; // Window Border Color
|
||||
int wattr; // Window Color
|
||||
int tattr; // Window Title Color
|
||||
int sattr; // Window Selection Bar Color
|
||||
int hattr; // Window Highlight Color
|
||||
int loattr; // Window LoAttr Color
|
||||
int sbattr; // Window Scrollbar Color
|
||||
char* title; // Window Title
|
||||
int helpcat; // Window Help Category
|
||||
uint maxidx; // List Entries - 1
|
||||
uint minidx; // Minimum index in the list
|
||||
uint maxpos; // Display Pos
|
||||
uint idx; // List Index
|
||||
uint pos; // Display Pos
|
||||
long delay; // Ticks until delay
|
||||
int type; // Bar or Disp
|
||||
int retval; // Return value
|
||||
bool aborted; // True if aborted
|
||||
bool listwrap; // True if wrap-around is supported
|
||||
int direction; // 1 if next, -1 if previous
|
||||
};
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Picker definable functions
|
||||
|
||||
struct Pick {
|
||||
void (*open) (PInf*); // Called after window is opened
|
||||
void (*close) (PInf*); // Called after window is closed
|
||||
void (*precursor)(PInf*); // Called before any cursor movement
|
||||
void (*dodelayed)(PInf*); // Called after a delay
|
||||
void (*disp) (PInf*); // Display line
|
||||
void (*page) (PInf*); // Display page
|
||||
void (*scroll) (PInf*, int); // Scroll list (direction)
|
||||
int (*dokey) (PInf*, gkey*); // Called with key (&keycode)
|
||||
};
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// Prototypes
|
||||
|
||||
int Picker(PInf* p, Pick* pick);
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
class gwinpick {
|
||||
|
@ -188,8 +188,6 @@ public:
|
||||
void restore_field();
|
||||
void delete_left_word();
|
||||
void delete_right_word();
|
||||
void clear_to_end_field();
|
||||
void clear_to_end_form();
|
||||
void go_left_word();
|
||||
void go_right_word();
|
||||
void enter_char(char ch);
|
||||
|
@ -516,20 +516,6 @@ void gwinput::delete_right_word() {
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void gwinput::clear_to_end_field() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void gwinput::clear_to_end_form() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
void gwinput::go_left_word() {
|
||||
@ -619,8 +605,6 @@ bool gwinput::handle_key(gkey key) {
|
||||
case Key_C_R: restore_field(); break;
|
||||
case Key_C_BS: delete_left_word(); break;
|
||||
case Key_C_T: delete_right_word(); break;
|
||||
case Key_C_U: clear_to_end_field(); break;
|
||||
case Key_C_Y: clear_to_end_form(); break;
|
||||
case Key_C_Lft: go_left_word(); break;
|
||||
case Key_C_Rgt: go_right_word(); break;
|
||||
default:
|
||||
|
@ -50,9 +50,10 @@ void gareafile::ReadAreasBBS(char* tag) {
|
||||
// Read each AREAS.BBS
|
||||
while(ptr) {
|
||||
if(*ptr != '-') {
|
||||
int echos_before = echolist.Echos();
|
||||
GetAreasBBS(ptr, origin, options);
|
||||
echos = echolist.Echos();
|
||||
for(int n=0; n<echos; n++) {
|
||||
for(int n=echos_before; n<echos; n++) {
|
||||
echolist.GetEcho(n, &echoid, &path, &desc);
|
||||
aa.reset();
|
||||
aa.type = GMB_ECHO;
|
||||
|
Reference in New Issue
Block a user