diff options
author | George Hazan <george.hazan@gmail.com> | 2012-06-17 12:44:02 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2012-06-17 12:44:02 +0000 |
commit | f673f034c2fef25e932a12fbd5e2772f90c75e6d (patch) | |
tree | aeaac57c13fd2a23e47e437d804957d67e5413ee /plugins/Modernb/modern_skineditor.cpp | |
parent | bce08282b66209eb482726a7ec6c89083db327ac (diff) |
Clist_mw & Clist_modern renamed
git-svn-id: http://svn.miranda-ng.org/main/trunk@455 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Modernb/modern_skineditor.cpp')
-rw-r--r-- | plugins/Modernb/modern_skineditor.cpp | 859 |
1 files changed, 0 insertions, 859 deletions
diff --git a/plugins/Modernb/modern_skineditor.cpp b/plugins/Modernb/modern_skineditor.cpp deleted file mode 100644 index 8684c3d53f..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; i<SIZEOF(TYPES); i++)
- SendDlgItemMessage(hwndDlg,IDC_TYPE,CB_ADDSTRING,0,(LPARAM)TranslateTS(TYPES[i]));
- }
- { //Fill fit combo
- int i=0;
- for (i=0; i<SIZEOF(FITMODES); i++)
- SendDlgItemMessage(hwndDlg,IDC_FIT,CB_ADDSTRING,0,(LPARAM)TranslateTS(FITMODES[i]));
- }
- //SPIN Ranges
- {
- SendDlgItemMessage(hwndDlg,IDC_SPIN_ALPHA,UDM_SETRANGE,0,MAKELONG(255,0));
- SendDlgItemMessage(hwndDlg,IDC_SPIN_ALPHA,UDM_SETPOS,0,MAKELONG(255,0));
-
- SendDlgItemMessage(hwndDlg,IDC_SPIN_TOP,UDM_SETRANGE,0,MAKELONG(900,0));
- SendDlgItemMessage(hwndDlg,IDC_SPIN_LEFT,UDM_SETRANGE,0,MAKELONG(900,0));
- SendDlgItemMessage(hwndDlg,IDC_SPIN_BOTTOM,UDM_SETRANGE,0,MAKELONG(900,0));
- SendDlgItemMessage(hwndDlg,IDC_SPIN_RIGHT,UDM_SETRANGE,0,MAKELONG(900,0));
-
- SendDlgItemMessage(hwndDlg,IDC_SPIN_POSLEFT,UDM_SETRANGE,0,MAKELONG(1000,0));
- SendDlgItemMessage(hwndDlg,IDC_SPIN_POSTOP,UDM_SETRANGE,0,MAKELONG(1000,0));
- SendDlgItemMessage(hwndDlg,IDC_SPIN_WIDTH,UDM_SETRANGE,0,MAKELONG(1000,0));
- SendDlgItemMessage(hwndDlg,IDC_SPIN_HEIGHT,UDM_SETRANGE,0,MAKELONG(1000,0));
- }
- 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);
- EnableWindow(GetDlgItem(hwndDlg,IDC_PASTE),FALSE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_COPY),FALSE);
- glSkinWasModified=0;
- glOtherSkinWasLoaded=FALSE;
- break;
- }
-
- case WM_COMMAND:
- {
- if (LOWORD(wParam)==IDC_TYPE)
- {
- if (HIWORD(wParam)==CBN_SELCHANGE)
- {
- int i=SendDlgItemMessage(hwndDlg,IDC_TYPE,CB_GETCURSEL,(WPARAM)0,(LPARAM)0);
- //if (IsWindowEnabled(GetDlgItem(hwndDlg,IDC_TYPE)))
- SetAppropriateGroups(hwndDlg,i);
- if (GetFocus()==GetDlgItem(hwndDlg,IDC_TYPE))
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- UpdateInfo(hwndDlg);
- break;
- }
- }
- else if (LOWORD(wParam)==IDC_COPY)
- {
- if (HIWORD(wParam)==BN_CLICKED)
- {
- if (object_clipboard) mir_free_and_nill(object_clipboard);
- object_clipboard=NULL;
- {
- OPT_OBJECT_DATA *sd=NULL;
- HTREEITEM hti=TreeView_GetSelection(GetDlgItem(hwndDlg,IDC_OBJECT_TREE));
- if (hti!=0)
- {
- TVITEM 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 && sd->szValue)
- 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 || GetWindowLongPtr(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 || GetWindowLongPtr(hwnd,GWL_STYLE)&WS_GROUP) exit=TRUE;
- }while (!exit);
- return 0;
-}
-
|