// History Linklist Plus // Copyright (C) 2010 Thomas Wendel, gureedo // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #pragma once #ifndef _LINKLIST_H #define _LINKLIST_H #include #include #include #include #include #include #include #include #include #include #include "language.h" #include "linklist_dlg.h" #include "resource.h" #include "version.h" // Filter Flags #define WLL_URL 0x01 #define WLL_MAIL 0x02 #define WLL_FILE 0x04 #define WLL_IN 0x08 #define WLL_OUT 0x10 #define WLL_ALL (WLL_URL | WLL_MAIL | WLL_FILE | WLL_IN | WLL_OUT) #define SLL_DEEP 0x20 // String length #define LINK_MAX 1024 #define DIR_SIZE 6 #define TYPE_SIZE 5 #define DATE_SIZE 11 #define TIME_SIZE 15 // Link types #define LINK_UNKNOWN 0x00 #define LINK_URL 0x01 #define LINK_MAIL 0x02 #define LINK_FILE 0x03 // Directions #define DIRECTION_IN 1 #define DIRECTION_OUT 2 #define FILTERTEXT 125 #define IN_COL_DEF 0x005050A0 #define OUT_COL_DEF 0x00206020 #define BG_COL_DEF 0x00EAFFFF #define TXT_COL_DEF 0x00000000 struct LISTELEMENT { uint8_t direction; uint8_t type; wchar_t date[DATE_SIZE]; wchar_t time[TIME_SIZE]; wchar_t link[LINK_MAX]; MEVENT hEvent; int linePos; struct LISTELEMENT *nextElement; }; typedef struct { uint8_t openNewWindow; uint8_t updateWindow; uint8_t mouseEvent; uint8_t saveSpecial; uint8_t showDate; uint8_t showLine; uint8_t showTime; uint8_t showDirection; uint8_t showType; } LISTOPTIONS; typedef struct { uint32_t incoming; uint32_t outgoing; uint32_t background; uint32_t text; } MYCOLOURSET; #include "linklist_fct.h" #define LINKLIST_MODULE "HistoryLinklist" #define LINKLIST_IN_COL "InColour" #define LINKLIST_OUT_COL "OutColour" #define LINKLIST_BG_COL "BGColour" #define LINKLIST_TXT_COL "TxtColour" #define LINKLIST_USE_DEF "UseMirandaDefault" #define LINKLIST_OPEN_WINDOW "OpenNewWindow" #define LINKLIST_UPDATE_WINDOW "UpdateWindow" #define LINKLIST_MOUSE_EVENT "MessageView" #define LINKLIST_LEFT "WindowLeft" #define LINKLIST_RIGHT "WindowRight" #define LINKLIST_BOTTOM "WindowBottom" #define LINKLIST_TOP "WindowTop" #define LINKLIST_SPLITPOS "SplitterPos" #define LINKLIST_SAVESPECIAL "SavePosSpecial" #define LINKLIST_FIRST "FirstStartup" #define LINKLIST_SHOW_DATE "ShowDate" #define LINKLIST_SHOW_LINE "ShowLine" #define LINKLIST_SHOW_TIME "ShowTime" #define LINKLIST_SHOW_DIRECTION "ShowMessageDirection" #define LINKLIST_SHOW_TYPE "ShowMessageType" struct CMPlugin : public PLUGIN { CMPlugin(); int Load() override; int Unload() override; }; #define _mstrlen(x) (_countof(x) - 1) #define MAKE_TXT_COL(BGCol) ((uint32_t)~BGCol & 0x00FFFFFF) #define DM_LINKSPLITTER WM_USER+99 typedef struct LISTELEMENT LISTELEMENT; // Dialogbox Parameter typedef struct { MCONTACT hContact; LISTELEMENT *listStart; UINT findMessage; CHARRANGE chrg; int splitterPosNew; int splitterPosOld; SIZE minSize; } DIALOGPARAM; int DBUpdate(WPARAM, LPARAM); int ExtractURI(DBEVENTINFO*, MEVENT, LISTELEMENT*); int RemoveList(LISTELEMENT*); int ListCount(LISTELEMENT*); #endif //_LINKLIST_H