From 725f68b6808a8a30778f58223fac75386f082785 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Fri, 18 May 2012 22:10:43 +0000 Subject: plugins folders renaming git-svn-id: http://svn.miranda-ng.org/main/trunk@61 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/modernb/modern_skineditor.cpp | 859 ---------------------------------- 1 file changed, 859 deletions(-) delete mode 100644 plugins/modernb/modern_skineditor.cpp (limited to 'plugins/modernb/modern_skineditor.cpp') diff --git a/plugins/modernb/modern_skineditor.cpp b/plugins/modernb/modern_skineditor.cpp deleted file mode 100644 index 0f3b95a9df..0000000000 --- a/plugins/modernb/modern_skineditor.cpp +++ /dev/null @@ -1,859 +0,0 @@ -/* - -Miranda IM: the free IM client for Microsoft* Windows* - -Copyright 2000-2008 Miranda ICQ/IM project, -all portions of this codebase are copyrighted to the people -listed in contributors.txt. - -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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ -#include "hdr/modern_commonheaders.h" -#include "m_clui.h" -#include "hdr/modern_clist.h" -#include "m_clc.h" -#include "io.h" -#include "hdr/modern_commonprototypes.h" -#include "hdr/modern_sync.h" - -typedef struct _OPT_OBJECT_DATA -{ - char * szName; - char * szPath; - char * szValue; - char * szTempValue; -} OPT_OBJECT_DATA; - -static char *gl_Mask=NULL; -HWND gl_Dlg=NULL; -int gl_controlID=0; -int EnableGroup(HWND hwndDlg, HWND first, BOOL bEnable); -int ShowGroup(HWND hwndDlg, HWND first, BOOL bEnable); -BOOL glOtherSkinWasLoaded=FALSE; -BYTE glSkinWasModified=0; //1- but not applied, 2-stored to DB -HTREEITEM FindChild(HWND hTree, HTREEITEM Parent, char * Caption) -{ - HTREEITEM res=NULL, tmp=NULL; - if (Parent) - tmp=TreeView_GetChild(hTree,Parent); - else - tmp=TreeView_GetRoot(hTree); - while (tmp) - { - TVITEMA tvi; - char buf[255]; - tvi.hItem=tmp; - tvi.mask=TVIF_TEXT|TVIF_HANDLE; - tvi.pszText=(LPSTR)&buf; - tvi.cchTextMax=254; - TreeView_GetItemA(hTree,&tvi); - if (mir_bool_strcmpi(Caption,tvi.pszText)) - return tmp; - tmp=TreeView_GetNextSibling(hTree,tmp); - } - return tmp; -} - -int TreeAddObject(HWND hwndDlg, int ID, OPT_OBJECT_DATA * data) -{ - HTREEITEM rootItem=NULL; - HTREEITEM cItem=NULL; - char * path; - char * ptr; - char * ptrE; - char buf[255]; - BOOL ext=FALSE; - path=data->szPath?mir_strdup(data->szPath):(data->szName[1]=='$')?mir_strdup((data->szName)+2):NULL; - if (!path) - { - mir_snprintf(buf,SIZEOF(buf),"$(other)/%s",(data->szName)+1); - path=mir_strdup(buf); - } - - ptr=path; - ptrE=path; - do - { - - while (*ptrE!='/' && *ptrE!='\0') ptrE++; - if (*ptrE=='/') - { - *ptrE='\0'; - ptrE++; - // find item if not - create; - { - cItem=FindChild(GetDlgItem(hwndDlg,ID),rootItem,ptr); - if (!cItem) // not found - create node - { - TVINSERTSTRUCTA tvis; - tvis.hParent=rootItem; - tvis.hInsertAfter=TVI_SORT; - tvis.item.mask=TVIF_PARAM|TVIF_TEXT|TVIF_PARAM; - tvis.item.pszText=ptr; - tvis.item.lParam=(LPARAM)NULL; - cItem=TreeView_InsertItemA(GetDlgItem(hwndDlg,ID),&tvis); - - } - rootItem=cItem; - } - ptr=ptrE; - } - else ext=TRUE; - }while (!ext); - //Insert item node - { - TVINSERTSTRUCTA tvis; - tvis.hParent=rootItem; - tvis.hInsertAfter=TVI_SORT; - tvis.item.mask=TVIF_PARAM|TVIF_TEXT|TVIF_PARAM; - tvis.item.pszText=ptr; - tvis.item.lParam=(LPARAM)data; - TreeView_InsertItemA(GetDlgItem(hwndDlg,ID),&tvis); - } - mir_free_and_nill(path); - return 0; -} - -int enumDB_SkinObjectsForEditorProc(const char *szSetting,LPARAM lParam) -{ - if (wildcmp((char *)szSetting,gl_Mask,0)||wildcmp((char *)szSetting,"$*",0)) - { - char * value; - char *desc; - char *descKey; - descKey=mir_strdup(szSetting); - descKey[0]='%'; - value= ModernGetStringA(NULL,SKIN,szSetting); - desc= ModernGetStringA(NULL,SKIN,descKey); - if (wildcmp(value,"?lyph*",0)) - { - OPT_OBJECT_DATA * a=(OPT_OBJECT_DATA*)mir_alloc(sizeof(OPT_OBJECT_DATA)); - a->szPath=desc; - a->szName=mir_strdup(szSetting); - a->szValue=value; - a->szTempValue=NULL; - TreeAddObject(gl_Dlg,gl_controlID,a); - } - else - { - if (value) mir_free_and_nill(value); - if (desc) mir_free_and_nill(desc); - } - mir_free_and_nill(descKey); - } - return 0; -} - -int FillObjectTree(HWND hwndDlg, int ObjectTreeID, char * wildmask) -{ - DBCONTACTENUMSETTINGS dbces; - gl_Dlg=hwndDlg; - gl_controlID=ObjectTreeID; - gl_Mask=wildmask; - dbces.pfnEnumProc=enumDB_SkinObjectsForEditorProc; - dbces.szModule=SKIN; - dbces.ofsSettings=0; - CallService(MS_DB_CONTACT_ENUMSETTINGS,0,(LPARAM)&dbces); - return 0; -} -TCHAR *TYPES[]={_T("- Empty - (do not draw this object)"),_T("Solid fill object"),_T("Image (draw image)"),_T("Fragment (draw portion of image)")}; -TCHAR *FITMODES[]={_T("Stretch Both directions"),_T("Stretch Vertical, Tile Horizontal"),_T("Tile Vertical, Stretch Horizontal"),_T("Tile Both directions")}; - -void SetAppropriateGroups(HWND hwndDlg, int Type) -//str contains default values -{ - switch (Type) - { - case -1: - { - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_1),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_COLOUR),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_ALPHA),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_2),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_3),FALSE); - ShowWindow(GetDlgItem(hwndDlg,IDC_S_SIZE),FALSE); - } - break; - case 0: - { - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_1),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_COLOUR),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_ALPHA),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_2),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_3),FALSE); - ShowWindow(GetDlgItem(hwndDlg,IDC_S_SIZE),FALSE); - } - break; - case 1: - { - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_1),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_COLOUR),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_ALPHA),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_2),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_3),FALSE); - ShowWindow(GetDlgItem(hwndDlg,IDC_S_SIZE),FALSE); - //Set Color and alpha - } - break; - case 2: - { - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_1),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_COLOUR),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_ALPHA),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_2),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_3),FALSE); - ShowWindow(GetDlgItem(hwndDlg,IDC_S_SIZE),TRUE); - //Set alpha, image, margins etc. - } - break; - case 3: - { - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_1),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_COLOUR),FALSE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_ST_ALPHA),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_2),TRUE); - EnableGroup(hwndDlg,GetDlgItem(hwndDlg,IDC_GROUP_3),TRUE); - ShowWindow(GetDlgItem(hwndDlg,IDC_S_SIZE),TRUE); - //Set alpha, image, margins etc. - } - break; - } -} - -void SetControls(HWND hwndDlg, char * str) -{ - char buf[250]; - int Type=0; - if (!str) - { - SetAppropriateGroups(hwndDlg,-1); - return; - } - GetParamN(str,buf,SIZEOF(buf),1,',',TRUE); - if (mir_bool_strcmpi(buf,"Solid")) Type=1; - else if (mir_bool_strcmpi(buf,"Image")) Type=2; - else if (mir_bool_strcmpi(buf,"Fragment")) Type=3; - SendDlgItemMessage(hwndDlg,IDC_TYPE,CB_SETCURSEL,(WPARAM)Type,(LPARAM)0); - SetAppropriateGroups(hwndDlg,Type); - switch (Type) - { - case 1: - { - int r,g,b,a; - r=g=b=200; - a=255; - r=atoi(GetParamN(str,buf,SIZEOF(buf),2,',',TRUE)); - g=atoi(GetParamN(str,buf,SIZEOF(buf),3,',',TRUE)); - b=atoi(GetParamN(str,buf,SIZEOF(buf),4,',',TRUE)); - a=atoi(GetParamN(str,buf,SIZEOF(buf),5,',',TRUE)); - SendDlgItemMessage(hwndDlg,IDC_COLOR,CPM_SETCOLOUR,(WPARAM)0,(LPARAM)RGB(r,g,b)); - SendDlgItemMessage(hwndDlg,IDC_COLOR,CPM_SETDEFAULTCOLOUR,(WPARAM)0,(LPARAM)RGB(r,g,b)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_ALPHA,UDM_SETPOS,0,MAKELONG(a,0)); - } - break; - case 2: - { - int a; - int l,t,r,b; - int fitmode=0; - l=t=r=b=0; - a=255; - - l=atoi(GetParamN(str,buf,SIZEOF(buf),4,',',TRUE)); - t=atoi(GetParamN(str,buf,SIZEOF(buf),5,',',TRUE)); - r=atoi(GetParamN(str,buf,SIZEOF(buf),6,',',TRUE)); - b=atoi(GetParamN(str,buf,SIZEOF(buf),7,',',TRUE)); - a=atoi(GetParamN(str,buf,SIZEOF(buf),8,',',TRUE)); - - SendDlgItemMessage(hwndDlg,IDC_SPIN_ALPHA,UDM_SETPOS,0,MAKELONG(a,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_LEFT,UDM_SETPOS,0,MAKELONG(l,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_TOP,UDM_SETPOS,0,MAKELONG(t,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_RIGHT,UDM_SETPOS,0,MAKELONG(r,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_BOTTOM,UDM_SETPOS,0,MAKELONG(b,0)); - - GetParamN(str,buf,SIZEOF(buf),2,',',TRUE); - SendDlgItemMessageA(hwndDlg,IDC_FILE,WM_SETTEXT,0,(LPARAM)buf); - - GetParamN(str,buf,SIZEOF(buf),3,',',TRUE); - if (mir_bool_strcmpi(buf,"TileBoth")) fitmode=FM_TILE_BOTH; - else if (mir_bool_strcmpi(buf,"TileVert")) fitmode=FM_TILE_VERT; - else if (mir_bool_strcmpi(buf,"TileHorz")) fitmode=FM_TILE_HORZ; - else fitmode=0; - SendDlgItemMessage(hwndDlg,IDC_FIT,CB_SETCURSEL,(WPARAM)fitmode,(LPARAM)0); - } - - break; - case 3: - { - int a; - int l,t,r,b; - int x,y,w,h; - int fitmode=0; - l=t=r=b=0; - x=y=w=h=0; - a=255; - - x=atoi(GetParamN(str,buf,SIZEOF(buf),3,',',TRUE)); - y=atoi(GetParamN(str,buf,SIZEOF(buf),4,',',TRUE)); - w=atoi(GetParamN(str,buf,SIZEOF(buf),5,',',TRUE)); - h=atoi(GetParamN(str,buf,SIZEOF(buf),6,',',TRUE)); - - l=atoi(GetParamN(str,buf,SIZEOF(buf),8,',',TRUE)); - t=atoi(GetParamN(str,buf,SIZEOF(buf),9,',',TRUE)); - r=atoi(GetParamN(str,buf,SIZEOF(buf),10,',',TRUE)); - b=atoi(GetParamN(str,buf,SIZEOF(buf),11,',',TRUE)); - a=atoi(GetParamN(str,buf,SIZEOF(buf),12,',',TRUE)); - - SendDlgItemMessage(hwndDlg,IDC_SPIN_ALPHA,UDM_SETPOS,0,MAKELONG(a,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_LEFT,UDM_SETPOS,0,MAKELONG(l,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_TOP,UDM_SETPOS,0,MAKELONG(t,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_RIGHT,UDM_SETPOS,0,MAKELONG(r,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_BOTTOM,UDM_SETPOS,0,MAKELONG(b,0)); - - SendDlgItemMessage(hwndDlg,IDC_SPIN_POSLEFT,UDM_SETPOS,0,MAKELONG(x,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_POSTOP,UDM_SETPOS,0,MAKELONG(y,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_WIDTH,UDM_SETPOS,0,MAKELONG(w,0)); - SendDlgItemMessage(hwndDlg,IDC_SPIN_HEIGHT,UDM_SETPOS,0,MAKELONG(h,0)); - - GetParamN(str,buf,SIZEOF(buf),2,',',TRUE); - SendDlgItemMessageA(hwndDlg,IDC_FILE,WM_SETTEXT,0,(LPARAM)buf); - - GetParamN(str,buf,SIZEOF(buf),7,',',TRUE); - if (mir_bool_strcmpi(buf,"TileBoth")) fitmode=FM_TILE_BOTH; - else if (mir_bool_strcmpi(buf,"TileVert")) fitmode=FM_TILE_VERT; - else if (mir_bool_strcmpi(buf,"TileHorz")) fitmode=FM_TILE_HORZ; - else fitmode=0; - SendDlgItemMessage(hwndDlg,IDC_FIT,CB_SETCURSEL,(WPARAM)fitmode,(LPARAM)0); - } - - break; - } -} - - - -int GetShortFileName(char * FullFile) -{ - char buf[MAX_PATH]={0}; - char * f=strrchr(FullFile,'\\'); - char * file=f?mir_strdup(f+1):0; - if (!file) return 0; - ske_GetFullFilename(buf,file,0,TRUE); - if (mir_bool_strcmpi(buf,FullFile)) - { - _snprintf(FullFile,MAX_PATH,"%s",file); - mir_free_and_nill(file); - return 1; //skin folder relative - } - else - { - CallService(MS_UTILS_PATHTORELATIVE,(WPARAM)FullFile,(LPARAM)buf); - if (buf[0]!='\\' && buf[1]!=':') - _snprintf(FullFile,MAX_PATH,"\\%s",buf); - else - _snprintf(FullFile,MAX_PATH,"%s",buf); - } - mir_free_and_nill(file); - return 2; //mirand folder relative -} - -char * MadeString(HWND hwndDlg) -{ - char buf[MAX_PATH*2]={0}; - int i=SendDlgItemMessage(hwndDlg,IDC_TYPE,CB_GETCURSEL,(WPARAM)0,(LPARAM)0); - switch (i) - { - case 0: - mir_snprintf(buf,SIZEOF(buf),"Glyph,Skip"); - break; - case 1: - { - BYTE a; - DWORD col; - a=(BYTE)SendDlgItemMessage(hwndDlg,IDC_SPIN_ALPHA,UDM_GETPOS,0,0); - col=(DWORD)SendDlgItemMessage(hwndDlg,IDC_COLOR,CPM_GETCOLOUR,(WPARAM)0,(LPARAM)0); - mir_snprintf(buf,SIZEOF(buf),"Glyph,Solid,%d,%d,%d,%d",GetRValue(col),GetGValue(col),GetBValue(col),a); - } - break; - case 2: - { - BYTE a; - WORD l,t,b,r; - char buf_name[MAX_PATH]={0}; - int i=0; - a=(BYTE)SendDlgItemMessage(hwndDlg,IDC_SPIN_ALPHA,UDM_GETPOS,0,0); - l=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_LEFT,UDM_GETPOS,0,0); - t=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_TOP,UDM_GETPOS,0,0); - r=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_RIGHT,UDM_GETPOS,0,0); - b=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_BOTTOM,UDM_GETPOS,0,0); - SendDlgItemMessageA(hwndDlg,IDC_FILE,WM_GETTEXT,(WPARAM)MAX_PATH,(LPARAM)buf_name); - i=SendDlgItemMessage(hwndDlg,IDC_FIT,CB_GETCURSEL,0,0); - mir_snprintf(buf,SIZEOF(buf),"Glyph,Image,%s,%s,%d,%d,%d,%d,%d",buf_name, - //fitmode - (i==FM_TILE_BOTH)?"TileBoth": - (i==FM_TILE_VERT)?"TileVert": - (i==FM_TILE_HORZ)?"TileHorz":"StretchBoth", - l,t,r,b,a); - } - break; - case 3: - { - BYTE a; - WORD l,t,b,r; - WORD x,y,w,h; - char buf_name[MAX_PATH]={0}; - int i=0; - a=(BYTE)SendDlgItemMessage(hwndDlg,IDC_SPIN_ALPHA,UDM_GETPOS,0,0); - l=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_LEFT,UDM_GETPOS,0,0); - t=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_TOP,UDM_GETPOS,0,0); - r=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_RIGHT,UDM_GETPOS,0,0); - b=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_BOTTOM,UDM_GETPOS,0,0); - - x=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_POSLEFT,UDM_GETPOS,0,0); - y=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_POSTOP,UDM_GETPOS,0,0); - - w=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_WIDTH,UDM_GETPOS,0,0); - h=(WORD)SendDlgItemMessage(hwndDlg,IDC_SPIN_HEIGHT,UDM_GETPOS,0,0); - - SendDlgItemMessageA(hwndDlg,IDC_FILE,WM_GETTEXT,(WPARAM)MAX_PATH,(LPARAM)buf_name); - i=SendDlgItemMessage(hwndDlg,IDC_FIT,CB_GETCURSEL,0,0); - mir_snprintf(buf,SIZEOF(buf),"Glyph,Fragment,%s,%d,%d,%d,%d,%s,%d,%d,%d,%d,%d",buf_name,x,y,w,h, - //fitmode - (i==FM_TILE_BOTH)?"TileBoth": - (i==FM_TILE_VERT)?"TileVert": - (i==FM_TILE_HORZ)?"TileHorz":"StretchBoth", - l,t,r,b,a); - } - break; - } - if (buf[0]!='\0') return mir_strdup(buf); - return 0; -} -void UpdateInfo(HWND hwndDlg) -{ - char *b=MadeString(hwndDlg); - if (!b) - { - SendDlgItemMessageA(hwndDlg,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)""); - return; - } - SendDlgItemMessageA(hwndDlg,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)b); - { - OPT_OBJECT_DATA *sd=NULL; - HTREEITEM hti=TreeView_GetSelection(GetDlgItem(hwndDlg,IDC_OBJECT_TREE)); - if (hti) - { - TVITEMA tvi={0}; - tvi.hItem=hti; - tvi.mask=TVIF_HANDLE|TVIF_PARAM; - TreeView_GetItem(GetDlgItem(hwndDlg,IDC_OBJECT_TREE),&tvi); - sd=(OPT_OBJECT_DATA*)(tvi.lParam); - if (sd) - { - if (sd->szValue) mir_free_and_nill(sd->szValue); - sd->szValue=mir_strdup(b); - } - } - } - mir_free_and_nill(b); - glSkinWasModified=1; -} - -void StoreTreeNode(HWND hTree, HTREEITEM node, char * section) -{ - HTREEITEM tmp; - tmp=node; - while (tmp) - { - HTREEITEM tmp2=NULL; - TVITEMA tvi; - char buf[255]; - tvi.hItem=tmp; - tvi.mask=TVIF_TEXT|TVIF_HANDLE; - tvi.pszText=(LPSTR)&buf; - tvi.cchTextMax=254; - TreeView_GetItemA(hTree,&tvi); - if (tvi.lParam) - { - OPT_OBJECT_DATA * dat =(OPT_OBJECT_DATA*)(tvi.lParam); - if (dat->szName && dat->szValue) - ModernWriteSettingString(NULL,section,dat->szName,dat->szValue); - } - tmp2=TreeView_GetChild(hTree,tmp); - if (tmp2) StoreTreeNode(hTree,tmp2,section); - tmp=TreeView_GetNextSibling(hTree,tmp); - } - return; -} - -void StoreTreeToDB(HWND hTree, char * section) -{ - HTREEITEM tmp=NULL; - tmp=TreeView_GetRoot(hTree); - StoreTreeNode(hTree,tmp,section); - ModernWriteSettingByte(NULL,section,"Modified",1); - glSkinWasModified=2; -} -static BOOL fileChanged=FALSE; -static char * object_clipboard=NULL; -int GetFileSizes(HWND hwndDlg) -{ - char buf[MAX_PATH]; - SIZE sz={0}; - SendDlgItemMessageA(hwndDlg,IDC_FILE,WM_GETTEXT,(WPARAM)MAX_PATH,(LPARAM)buf); - ske_GetFullFilename(buf,buf,0,TRUE); - { - HBITMAP hbmp=ske_LoadGlyphImage(buf); - if (hbmp) - { - BITMAP bm={0}; - GetObject(hbmp,sizeof(BITMAP),&bm); - sz.cx=bm.bmWidth; - sz.cy=bm.bmHeight; - ske_UnloadGlyphImage(hbmp); - } - } - _snprintf(buf, MAX_PATH, "%s %d x %d %s",Translate("Image size is"),sz.cx, sz.cy, Translate("pixels")); - SendDlgItemMessageA(hwndDlg,IDC_S_SIZE,WM_SETTEXT,0,(LPARAM)buf); - return 0; -} -INT_PTR CALLBACK DlgSkinEditorOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch (msg) - { - case WM_DESTROY: - { - if (object_clipboard) mir_free_and_nill(object_clipboard); - break; - } - case WM_WINDOWPOSCHANGED: - { - WINDOWPOS * wp=(WINDOWPOS *)lParam; - if (lParam && wp->flags&SWP_SHOWWINDOW) - { - if (glOtherSkinWasLoaded) - { - TreeView_DeleteAllItems(GetDlgItem(hwndDlg,IDC_OBJECT_TREE)); - FillObjectTree(hwndDlg,IDC_OBJECT_TREE,"$$*"); - glSkinWasModified=0; - glOtherSkinWasLoaded=FALSE; - } - } - break; - } - case WM_INITDIALOG: - { - TranslateDialogDefault(hwndDlg); - FillObjectTree(hwndDlg,IDC_OBJECT_TREE,"$$*"); - { //Fill types combo - int i=0; - for (i=0; iszValue) - object_clipboard=mir_strdup(sd->szValue); - } - EnableWindow(GetDlgItem(hwndDlg,IDC_PASTE),object_clipboard!=NULL); - return 0; - } - - } - else if (LOWORD(wParam)==IDC_PASTE) - { - if (HIWORD(wParam)==BN_CLICKED) - { - if (object_clipboard) - SetControls(hwndDlg, object_clipboard); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - UpdateInfo(hwndDlg); - return 0; - } - } - else if (LOWORD(wParam)==IDC_COLOR) - { - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - UpdateInfo(hwndDlg); - } - else if (LOWORD(wParam)==IDC_BROWSE) - { - if (HIWORD(wParam)==BN_CLICKED) - { - { - char str[MAX_PATH]={0}; - OPENFILENAMEA ofn={0}; - char filter[512]={0}; - int res=0; - ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400; - ofn.hwndOwner = hwndDlg; - ofn.hInstance = NULL; - ofn.lpstrFilter = "Images (*.png,*.jpg,*.bmp,*.gif,*.tga)\0*.png;*.jpg;*.jpeg;*.bmp;*.gif;*.tga\0All files (*.*)\0*.*\0\0"; - ofn.Flags = (OFN_FILEMUSTEXIST | OFN_HIDEREADONLY); - SendDlgItemMessageA(hwndDlg,IDC_FILE,WM_GETTEXT,(WPARAM)SIZEOF(str),(LPARAM)str); - if (str[0]=='\0' || strchr(str,'%')) - { - ofn.Flags|=OFN_NOVALIDATE; - str[0]='\0'; - } - else - { - ske_GetFullFilename(str,str,(char*)0,TRUE); - } - ofn.lpstrFile = str; - - ofn.nMaxFile = SIZEOF(str); - ofn.nMaxFileTitle = MAX_PATH; - ofn.lpstrDefExt = "*.*"; -// { -// DWORD tick=GetTickCount(); - res=GetOpenFileNameA(&ofn); -// if(!res) -// if (GetTickCount()-tick<100) -// { -// res=GetOpenFileNameA(&ofn); -// if(!res) break; -// } -// else break; - //} - if (res) - { - GetShortFileName(ofn.lpstrFile); - SendDlgItemMessageA(hwndDlg,IDC_FILE,WM_SETTEXT,(WPARAM)0,(LPARAM)ofn.lpstrFile); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - UpdateInfo(hwndDlg); - } - } - } - } - else if (LOWORD(wParam)==IDC_FILE) - { - if (HIWORD(wParam) == EN_CHANGE) - { - fileChanged=TRUE; - if ((HWND)lParam != GetFocus()) - { - GetFileSizes(hwndDlg); - fileChanged=FALSE; - } - } - else if (HIWORD(wParam) == EN_KILLFOCUS) - { - if (fileChanged) - { - GetFileSizes(hwndDlg); - fileChanged=FALSE; - } - } - } - else if (( - (LOWORD(wParam)==IDC_E_TOP - ||LOWORD(wParam)==IDC_E_BOTTOM - ||LOWORD(wParam)==IDC_E_LEFT - ||LOWORD(wParam)==IDC_E_RIGHT - ||LOWORD(wParam)==IDC_E_X - ||LOWORD(wParam)==IDC_E_Y - ||LOWORD(wParam)==IDC_E_W - ||LOWORD(wParam)==IDC_E_H - ||LOWORD(wParam)==IDC_EDIT_ALPHA - ) - && HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus())) - { - return 0; - } - else if (LOWORD(wParam)!=IDC_EDIT1) - { - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - UpdateInfo(hwndDlg); - } - //check (LOWORD(wParam)) - //SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - break; - } - case WM_NOTIFY: - switch (((LPNMHDR)lParam)->idFrom) - { - case IDC_OBJECT_TREE: - { - //Save existed object - //Change to new object - NMTREEVIEWA * nmtv = (NMTREEVIEWA *) lParam; - if (!nmtv) return 0; - if (nmtv->hdr.code==TVN_SELCHANGEDA || nmtv->hdr.code==TVN_SELCHANGEDW) - { - if (nmtv->itemOld.lParam) - { - OPT_OBJECT_DATA * dataOld=(OPT_OBJECT_DATA*)nmtv->itemOld.lParam; - if (dataOld->szValue) - { - mir_free_and_nill(dataOld->szValue); - dataOld->szValue=MadeString(hwndDlg); - } - } - if (nmtv->itemNew.lParam) - { - - OPT_OBJECT_DATA * data=(OPT_OBJECT_DATA*)nmtv->itemNew.lParam; - char buf[255]; - - mir_snprintf(buf,SIZEOF(buf),"%s=%s",data->szName, data->szValue); - SendDlgItemMessageA(hwndDlg,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)buf); - SetControls(hwndDlg,data->szValue); - EnableWindow(GetDlgItem(hwndDlg,IDC_COPY),TRUE); - EnableWindow(GetDlgItem(hwndDlg,IDC_PASTE),object_clipboard!=NULL); - } - else - { - SendDlgItemMessageA(hwndDlg,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)""); - SetControls(hwndDlg,NULL); - EnableWindow(GetDlgItem(hwndDlg,IDC_COPY),FALSE); - EnableWindow(GetDlgItem(hwndDlg,IDC_PASTE),FALSE); - } - - } - else if (nmtv->hdr.code==TVN_DELETEITEMA) - { - OPT_OBJECT_DATA * dataOld=(OPT_OBJECT_DATA*)nmtv->itemOld.lParam; - if (dataOld) - { - if (dataOld->szName) mir_free_and_nill(dataOld->szName); - if (dataOld->szPath) mir_free_and_nill(dataOld->szPath); - if (dataOld->szTempValue) mir_free_and_nill(dataOld->szTempValue); - if (dataOld->szValue) mir_free_and_nill(dataOld->szValue); - } - } - return 0; - } - - case 0: - switch (((LPNMHDR)lParam)->code) - { - case PSN_APPLY: - if (!glOtherSkinWasLoaded) //store only if skin is same - { - StoreTreeToDB(GetDlgItem(hwndDlg,IDC_OBJECT_TREE),SKIN); - //ReloadSkin - ske_LoadSkinFromDB(); - pcli->pfnClcBroadcast( INTM_RELOADOPTIONS,0,0); - Sync(CLUIFrames_OnClistResize_mod,0,0); - ske_RedrawCompleteWindow(); - Sync(CLUIFrames_OnClistResize_mod, (WPARAM)0, (LPARAM)0); - { - HWND hwnd=pcli->hwndContactList; - RECT rc={0}; - GetWindowRect(hwnd, &rc); - Sync(CLUIFrames_OnMoving,hwnd,&rc); - } - return TRUE; - } - else - return TRUE; - } - break; - } - } - return FALSE; -} - -int EnableGroup(HWND hwndDlg, HWND first, BOOL bEnable) -{ - HWND hwnd=first; - BOOL exit=FALSE; - if (!hwnd) return 0; - do - { - EnableWindow(hwnd,bEnable); - hwnd=GetWindow(hwnd,GW_HWNDNEXT); - if (!hwnd || GetWindowLong(hwnd,GWL_STYLE)&WS_GROUP) exit=TRUE; - }while (!exit); - return 0; -} - -int ShowGroup(HWND hwndDlg, HWND first, BOOL bEnable) -{ - HWND hwnd=first; - BOOL exit=FALSE; - if (!hwnd) return 0; - do - { - ShowWindow(hwnd,bEnable?SW_SHOW:SW_HIDE); - hwnd=GetWindow(hwnd,GW_HWNDNEXT); - if (!hwnd || GetWindowLong(hwnd,GWL_STYLE)&WS_GROUP) exit=TRUE; - }while (!exit); - return 0; -} - -- cgit v1.2.3