home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Shareware / Programare / skincraft / SkinCrafter_v1.4.12_Demo.msi / _49E29CB9A65AABBF653C1037E1AA74B6 / _19E0DB02E20C4695808977452EE5EB95 < prev    next >
Encoding:
Text File  |  2004-06-29  |  5.8 KB  |  195 lines

  1. #include "StdAfx.h"
  2. #include "Controls.h"
  3. #include "resource.h"
  4. #include "MyPropertySheet.h"
  5.  
  6. #ifdef _DEBUG
  7. #undef THIS_FILE
  8. static char BASED_CODE THIS_FILE[] = __FILE__;
  9. #endif
  10.  
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CMyPropertySheet
  13.  
  14. IMPLEMENT_DYNAMIC( CMyPropertySheet, CPropertySheet )
  15.  
  16. CMyPropertySheet::CMyPropertySheet( CWnd* pWndParent ) :
  17.      CPropertySheet( IDS_PROPSHT_CAPTION, pWndParent )
  18. {
  19.     AddPage( &m_Page5 );
  20.     AddPage( &m_Page1 );
  21.     AddPage( &m_Page2 );
  22.     AddPage( &m_Page3 );
  23.     AddPage( &m_Page4 );
  24. }
  25.  
  26. CMyPropertySheet::~CMyPropertySheet()
  27. {
  28. }
  29.  
  30. BEGIN_MESSAGE_MAP( CMyPropertySheet, CPropertySheet )
  31.     //{{AFX_MSG_MAP(CMyPropertySheet)    
  32.    ON_WM_SYSCOMMAND()
  33.     ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
  34.     //}}AFX_MSG_MAP
  35. END_MESSAGE_MAP()
  36.  
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CMyPropertySheet message handlers
  39.  
  40. BOOL CMyPropertySheet::OnInitDialog()
  41. {
  42.     char str[256]="";
  43.     GetCurrentDirectory(256,str);
  44.     theApp.m_ExePath.Format("%s",str);
  45.  
  46.     CPropertySheet::OnInitDialog();
  47.  
  48.    // Add "About..." menu item to system menu.
  49.  
  50.     // IDM_ABOUTBOX must be in the system command range.
  51.     ASSERT( (IDM_ABOUTBOX & 0xFFF0 ) == IDM_ABOUTBOX );
  52.     ASSERT( IDM_ABOUTBOX < 0xF000 );
  53.  
  54.     CMenu* pSysMenu = GetSystemMenu( FALSE );
  55.     if ( pSysMenu != NULL )
  56.     {
  57.         CString strAboutMenu;
  58.         strAboutMenu.LoadString( IDS_ABOUTBOX );
  59.         if ( !strAboutMenu.IsEmpty() )
  60.         {
  61.             pSysMenu->AppendMenu( MF_SEPARATOR );
  62.             pSysMenu->AppendMenu( MF_STRING, IDM_ABOUTBOX, strAboutMenu );
  63.         }
  64.     }
  65.  
  66.    SetIcon( AfxGetApp()->LoadIcon( IDR_MAINFRAME ), TRUE );
  67.  
  68. /////************************************************//////////////////////
  69.     HMENU hmenu = CreateMenu();
  70.     ::SetMenu(m_hWnd,hmenu);
  71.     //::SetMenu(m_hWnd,LoadMenu(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MENU1)));
  72.  
  73.     HMENU hmenuFile = CreatePopupMenu();
  74.     HMENU hmenuSkines = CreatePopupMenu();
  75.     HMENU hmenuHelp = CreatePopupMenu();
  76.  
  77.     AppendMenu(hmenuFile, MF_ENABLED | MF_STRING, IDR_FILE_OPEN, "&Open");
  78.     AppendMenu(hmenuFile, MF_ENABLED | MF_STRING, ID_FILE_EXIT, "E&xit");
  79.  
  80.     //AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_SKINS_ADDSKIN, "&AddSkin");
  81.     AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_TOOLS_APPLYSKIN, "&ApplySkin");
  82.     AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_TOOLS_REMOVESKIN, "&RemoveSkin");
  83.     AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, 35600, "&DeleteSkin");
  84.  
  85.     AppendMenu(hmenuSkines, MF_SEPARATOR, 0, NULL);
  86.  
  87.     CString fileSize = "";
  88.     theApp.customNumber = 0;
  89.     WIN32_FIND_DATA fd;
  90.     SetCurrentDirectory(theApp.skinPath);
  91.     HANDLE h=FindFirstFile("*.*",&fd);
  92.     while (FindNextFile (h,&fd))
  93.     {
  94.         if (fd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
  95.         {
  96.         }
  97.         else
  98.         {
  99.             if (strcmp (fd.cFileName, "GlaucousTrack.skf")==0)
  100.                 AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_SKINS_GLAUCOUSTRACK, fd.cFileName);
  101.             else if (strcmp (fd.cFileName, "Metallic.skf")==0)
  102.                 AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_SKINS_METALLIC, fd.cFileName);
  103.             else if (strcmp (fd.cFileName, "Ruby.skf")==0)
  104.                 AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_SKINS_RUBY, fd.cFileName);
  105.             else if (strcmp (fd.cFileName, "SkinCrafter.skf")==0)
  106.                 AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_SKINS_SKINCRAFTER, fd.cFileName);
  107.             else if (strcmp (fd.cFileName, "TechnoBronze.skf")==0)
  108.                 AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_SKINS_TECHNOBRONZE, fd.cFileName);
  109.             else if (strcmp (fd.cFileName, "Tiger-eye.skf")==0)
  110.                 AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, ID_SKINS_TIGEREYE, fd.cFileName);
  111.             else
  112.             {
  113.                 AppendMenu(hmenuSkines, MF_ENABLED | MF_STRING, 35500+theApp.customNumber, fd.cFileName);
  114.                 //CheckMenuItem(hmenuSkines, 35500+theApp.customNumber, MF_CHECKED);
  115.                 theApp.customSkinNames[theApp.customNumber] = fd.cFileName;
  116.                 theApp.customNumber++;
  117.             }
  118.         }
  119.     }
  120.     FindClose(h);
  121.  
  122.     AppendMenu(hmenuHelp, MF_ENABLED | MF_STRING, ID_HELP_ABOUT, "About");
  123.  
  124.     // ─εßαΓδ σ∞ Γ≡σ∞σφφ√σ ∞σφ■ Ω ∞σφ■ Γσ≡⌡φσπε ≤≡εΓφ 
  125.     AppendMenu(hmenu, MF_ENABLED|MF_POPUP, (UINT)hmenuFile, "&File");
  126.     AppendMenu(hmenu, MF_ENABLED|MF_POPUP, (UINT)hmenuSkines, "&Skines");
  127.     AppendMenu(hmenu, MF_ENABLED|MF_POPUP, (UINT)hmenuHelp, "&Help");
  128.     //BOOL res = AppendMenu(LoadMenu(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MENU1)), MF_ENABLED|MF_POPUP, (UINT)hmenuFile, "&Skinez");
  129. /////************************************************//////////////////////
  130.  
  131.     CRect rectW;
  132.     GetWindowRect(&rectW);
  133.  
  134.     rectW.bottom += GetSystemMetrics(SM_CYMENU);
  135.  
  136.     MoveWindow(&rectW);
  137.  
  138.     ModifyStyle(WS_POPUPWINDOW,WS_BORDER|WS_CAPTION|WS_THICKFRAME);
  139.  
  140.     HKEY hk; 
  141.     DWORD dwData; 
  142.  
  143.     if(RegOpenKeyEx( HKEY_LOCAL_MACHINE,
  144.                "Software\\SkinCrafter\\SkinCrafter Demo",
  145.                0, KEY_QUERY_VALUE, &hk) != ERROR_SUCCESS);
  146.         
  147.  
  148.     char skinPath[_MAX_PATH] = "";
  149.     if(RegQueryValueEx(hk,"SkinPath",NULL,NULL,(LPBYTE)skinPath,&dwData) == ERROR_SUCCESS)
  150.         m_Page1.m_strSkinDir.Format("%s",skinPath);
  151.     
  152.     
  153.     RegCloseKey(hk);
  154.  
  155.     SHFILEINFO shinfo;
  156.     DWORD dw = SHGetFileInfo( m_Page1.m_strSkinDir, NULL,
  157.                    &shinfo,
  158.                    sizeof(shinfo),
  159.                    SHGFI_DISPLAYNAME );
  160.     if(dw == 0)
  161.         m_Page1.m_strSkinDir = theApp.m_ExePath;
  162.     
  163.    return TRUE;
  164. }
  165.  
  166. void CMyPropertySheet::OnSysCommand( UINT nID, LPARAM lParam )
  167. {
  168.     if ( (nID & 0xFFF0) == IDM_ABOUTBOX )
  169.     {
  170.  
  171.     }
  172.     else
  173.     {
  174.         CPropertySheet::OnSysCommand( nID, lParam );
  175.     }
  176. }
  177.  
  178. void CMyPropertySheet::OnFileOpen() 
  179. {
  180.     // TODO: Add your command handler code here
  181.     CString Filter("SkinCrafter files (*.skf)|*.skf||");
  182.  
  183.     CFileDialog FileDlg(TRUE, "skf", NULL, NULL, Filter);
  184.     FileDlg.m_ofn.lpstrTitle = "Select file";
  185.  
  186.     if(IDOK == FileDlg.DoModal())
  187.     {
  188.         CString SelectedFile = FileDlg.GetPathName();
  189.  
  190.         theApp.m_pSkin.LoadSkinFromFile(SelectedFile);
  191.         theApp.m_pSkin.UpdateControl(0);
  192.     }
  193.  
  194. }
  195.