/* Copyright (C) 2006-2007 Scott Ellis Copyright (C) 2007-2011 Jan Holub This is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this file; see the file license.txt. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _OPTIONS_INC #define _OPTIONS_INC #define WMU_ENABLE_LIST_BUTTONS (WM_USER + 0x030) #define WMU_ENABLE_MODULE_ENTRY (WM_USER + 0x031) #define LABEL_LEN 1024 #define VALUE_LEN 8192 #define MODULE_NAME_LEN 512 #define SETTING_NAME_LEN 512 #define IDPRESETITEM 1000 #define MS_TOOLTIP_SHOWTIP "mToolTip/ShowTip" typedef struct { UINT id, uintCoreIconId, uintResIconId; wchar_t *swzTooltip; } OPTBUTTON; typedef enum { DIT_ALL = 0, DIT_CONTACTS = 1, DIT_CHATS = 2 } DisplayItemType; typedef struct { wchar_t swzLabel[LABEL_LEN]; wchar_t swzValue[VALUE_LEN]; DisplayItemType type; bool bLineAbove, bValueNewline; bool bIsVisible; bool bParseTipperVarsFirst; } DISPLAYITEM; // display item types static struct { DisplayItemType type; wchar_t *title; } displayItemTypes[] = { { DIT_ALL, LPGENW("Show for all contact types") }, { DIT_CONTACTS, LPGENW("Show only for contacts") }, { DIT_CHATS, LPGENW("Show only for chatrooms") } }; typedef enum { DVT_DB = 0, DVT_PROTODB = 1 } DisplaySubstType; typedef struct { wchar_t swzName[LABEL_LEN]; DisplaySubstType type; char szModuleName[MODULE_NAME_LEN]; char szSettingName[SETTING_NAME_LEN]; int iTranslateFuncId; } DISPLAYSUBST; struct DSListNode { DISPLAYSUBST ds; DSListNode *next; }; struct DIListNode { DISPLAYITEM di; DIListNode *next; }; typedef struct { BYTE top; BYTE right; BYTE bottom; BYTE left; } MARGINS; // tray tooltip items static wchar_t *trayTipItems[TRAYTIP_ITEMS_COUNT] = { LPGENW("Number of contacts"), LPGENW("Protocol lock status"), LPGENW("Logon time"), LPGENW("Unread emails"), LPGENW("Status"), LPGENW("Status message"), LPGENW("Extra status"), LPGENW("Listening to"), LPGENW("Favorite contacts"), LPGENW("Miranda uptime"), LPGENW("Contact list event") }; // extra icons static wchar_t *extraIconName[6] = { LPGENW("Status"), LPGENW("Extra status"), LPGENW("Jabber activity"), LPGENW("Gender"), LPGENW("Country flag"), LPGENW("Client") }; typedef struct { bool bDragging; HTREEITEM hDragItem; } EXTRAICONDATA; typedef struct { BYTE order; BYTE vis; } ICONSTATE; typedef enum { PAV_NONE = 0, PAV_LEFT = 1, PAV_RIGHT = 2 } PopupAvLayout; typedef enum { PTL_NOICON = 0, PTL_LEFTICON = 1, PTL_RIGHTICON = 2 } PopupIconTitleLayout; typedef enum { PP_BOTTOMRIGHT = 0, PP_BOTTOMLEFT = 1, PP_TOPRIGHT = 2, PP_TOPLEFT = 3 } PopupPosition; typedef enum { PSE_NONE = 0, PSE_ANIMATE = 1, PSE_FADE = 2 } PopupShowEffect; typedef struct { int iWinWidth, iWinMaxHeight, iAvatarSize; //tweety PopupIconTitleLayout titleIconLayout; bool bShowTitle; PopupAvLayout avatarLayout; int iTextIndent, iTitleIndent, iValueIndent; bool bShowNoFocus; DSListNode *dsList; int iDsCount; DIListNode *diList; int iDiCount; int iTimeIn; int iPadding, iOuterAvatarPadding, iInnerAvatarPadding, iTextPadding; PopupPosition pos; int iMinWidth, iMinHeight; // no UI for these int iMouseTollerance; bool bStatusBarTips; int iSidebarWidth; COLORREF colBg, colBorder, colAvatarBorder, colDivider, colBar, colTitle, colLabel, colValue, colTrayTitle, colSidebar; int iLabelValign, iLabelHalign, iValueValign, iValueHalign; bool bWaitForStatusMsg, bWaitForAvatar; // tooltip skin SkinMode skinMode; wchar_t szSkinName[256]; wchar_t szPreviewFile[1024]; wchar_t *szImgFile[SKIN_ITEMS_COUNT]; MARGINS margins[SKIN_ITEMS_COUNT]; TransformationMode transfMode[SKIN_ITEMS_COUNT]; PopupShowEffect showEffect; bool bLoadFonts; bool bLoadProportions; int iEnableColoring; int iAnimateSpeed; int iOpacity; int iAvatarOpacity; bool bBorder; bool bRound, bAvatarRound; bool bDropShadow; bool bAeroGlass; // tray tooltip bool bTraytip; bool bHandleByTipper; bool bExpandTraytip; bool bHideOffline; int iExpandTime; int iFirstItems, iSecondItems; int iFavoriteContFlags; // extra setting bool bOriginalAvatarSize; bool bAvatarBorder; bool bWaitForContent; bool bGetNewStatusMsg; bool bDisableIfInvisible; bool bRetrieveXstatus; bool bLimitMsg; int iLimitCharCount; int iSmileyAddFlags; BYTE exIconsOrder[EXICONS_COUNT]; BYTE exIconsVis[EXICONS_COUNT]; } OPTIONS; extern OPTIONS opt; void InitOptions(); void LoadOptions(); void SaveOptions(); void DeinitOptions(); #endif