/* 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 struct OPTBUTTON { UINT id, uintCoreIconId, uintResIconId; wchar_t *swzTooltip; }; enum DisplayItemType { DIT_ALL = 0, DIT_CONTACTS = 1, DIT_CHATS = 2 }; struct DISPLAYITEM { wchar_t swzLabel[LABEL_LEN]; wchar_t swzValue[VALUE_LEN]; DisplayItemType type; bool bLineAbove, bValueNewline; bool bIsVisible; bool bParseTipperVarsFirst; }; enum DisplaySubstType { DVT_DB = 0, DVT_PROTODB = 1 }; struct DISPLAYSUBST { wchar_t swzName[LABEL_LEN]; DisplaySubstType type; char szModuleName[MODULE_NAME_LEN]; char szSettingName[SETTING_NAME_LEN]; int iTranslateFuncId; }; struct DSListNode { DISPLAYSUBST ds; DSListNode *next; }; struct DIListNode { DISPLAYITEM di; DIListNode *next; }; struct MARGINS { uint8_t top; uint8_t right; uint8_t bottom; uint8_t left; }; struct EXTRAICONDATA { bool bDragging; HTREEITEM hDragItem; }; struct ICONSTATE { uint8_t order; uint8_t vis; }; enum PopupAvLayout { PAV_NONE = 0, PAV_LEFT = 1, PAV_RIGHT = 2 }; enum PopupIconTitleLayout { PTL_NOICON = 0, PTL_LEFTICON = 1, PTL_RIGHTICON = 2 }; enum PopupPosition { PP_BOTTOMRIGHT = 0, PP_BOTTOMLEFT = 1, PP_TOPRIGHT = 2, PP_TOPLEFT = 3 }; enum PopupShowEffect { PSE_NONE = 0, PSE_ANIMATE = 1, PSE_FADE = 2 }; struct OPTIONS { 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 bRetrieveXstatus; bool bLimitMsg; int iLimitCharCount; int iSmileyAddFlags; uint8_t exIconsOrder[EXICONS_COUNT]; uint8_t exIconsVis[EXICONS_COUNT]; }; extern OPTIONS opt; int OptInit(WPARAM wParam, LPARAM); void LoadOptions(); void SaveOptions(); void DeinitOptions(); #endif