git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27745 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			226 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			226 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//wxConvertApp Programming Utility
 | 
						|
/*This program currently offers 3 useful conversions
 | 
						|
1.  Converts most of an .RC file into a wxXml file
 | 
						|
2.  Converts most of an .wxr file into a wxXml file
 | 
						|
3.  Converts portions of an .RC file into a wxr file
 | 
						|
*/
 | 
						|
 | 
						|
#ifdef __GNUG__
 | 
						|
#pragma implementation "convert.cpp"
 | 
						|
#pragma interface "convert.cpp"
 | 
						|
#endif
 | 
						|
 | 
						|
// For compilers that support precompilation, includes "wx/wx.h".
 | 
						|
#include "wx/wxprec.h"
 | 
						|
 | 
						|
#ifdef __BORLANDC__
 | 
						|
#pragma hdrstop
 | 
						|
#endif
 | 
						|
 | 
						|
// for all others, include the necessary headers (this file is usually all you
 | 
						|
// need because it includes almost all "standard" wxWidgets headers
 | 
						|
#ifndef WX_PRECOMP
 | 
						|
#include <wx/wx.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#include <wx/image.h>
 | 
						|
 | 
						|
#include "wx/deprecated/setup.h"
 | 
						|
#include "wx/deprecated/resource.h"
 | 
						|
 | 
						|
#include "convert.h"
 | 
						|
#include "rc2wxr.h"
 | 
						|
#include "wxr2xml.h"
 | 
						|
#include "rc2xml.h"
 | 
						|
 | 
						|
IMPLEMENT_APP(wxConvertApp)
 | 
						|
//////////////////////////////////////////////////////////////////////
 | 
						|
// Construction/Destruction
 | 
						|
//////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
wxConvertApp::wxConvertApp()
 | 
						|
{
 | 
						|
    m_pFrame=NULL;
 | 
						|
    m_pMenuBar=NULL;
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
wxConvertApp::~wxConvertApp()
 | 
						|
{
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool wxConvertApp::OnInit()
 | 
						|
{
 | 
						|
//Initialize all image loaders(JPEG,BMP,PNG,and etc)
 | 
						|
    wxInitAllImageHandlers();
 | 
						|
    SetAppName(_T("wxConvertApp"));
 | 
						|
 | 
						|
    if (HandleCommandLine())
 | 
						|
        return true;
 | 
						|
 | 
						|
 | 
						|
// Create the main frame window
 | 
						|
    m_pFrame = new wxMainFrame(NULL, wxID_ANY, _T("wxConvertApp"), wxPoint(0, 0), wxSize(500, 400),
 | 
						|
        wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL);
 | 
						|
 | 
						|
    InitMenu();
 | 
						|
    m_pFrame->Show(true);
 | 
						|
    SetTopWindow(m_pFrame);
 | 
						|
    return true;
 | 
						|
}
 | 
						|
 | 
						|
void wxConvertApp::InitMenu()
 | 
						|
{
 | 
						|
    m_pMenuBar=new wxMenuBar;
 | 
						|
    wxASSERT(m_pMenuBar);
 | 
						|
 | 
						|
    wxMenu *filemenu=new wxMenu;
 | 
						|
    filemenu->Append(ID_RC2WXR,_T("Convert RC file to WXR file"));
 | 
						|
    filemenu->Append(ID_WXR2XML,_T("Convert WXR file to XML file"));
 | 
						|
    filemenu->Append(ID_RC2XML,_T("Convert RC file to XML file"));
 | 
						|
 | 
						|
    filemenu->Append(ID_QUIT, _T("E&xit"));
 | 
						|
    m_pMenuBar->Append(filemenu,_T("&File"));
 | 
						|
 | 
						|
    m_pFrame->SetMenuBar(m_pMenuBar);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
// MainFrame.cpp: implementation of the wxMainFrame class.
 | 
						|
//
 | 
						|
//////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE(wxMainFrame, wxFrame)
 | 
						|
    EVT_MENU(ID_QUIT,wxMainFrame::OnQuit)
 | 
						|
    EVT_MENU(ID_RC2WXR,wxMainFrame::OnRc2Wxr)
 | 
						|
    EVT_MENU(ID_WXR2XML,wxMainFrame::OnWXR2XML)
 | 
						|
    EVT_MENU(ID_RC2XML,wxMainFrame::OnRC2XML)
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
 | 
						|
 | 
						|
//////////////////////////////////////////////////////////////////////
 | 
						|
// Construction/Destruction
 | 
						|
//////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
wxMainFrame::wxMainFrame(wxWindow* parent,wxWindowID id,
 | 
						|
const wxString& title, const wxPoint& pos, const wxSize& size,
 | 
						|
long style, const wxString& name)
 | 
						|
:wxFrame(parent,id,title,pos,size,style,name)
 | 
						|
{
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
wxMainFrame::~wxMainFrame()
 | 
						|
{
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
void wxMainFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 | 
						|
{
 | 
						|
    Close(true);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void wxMainFrame::OnRc2Wxr(wxCommandEvent& WXUNUSED(event))
 | 
						|
{
 | 
						|
    wxFileDialog filed(this);
 | 
						|
    filed.SetWildcard(_T("*.rc"));
 | 
						|
    filed.SetStyle(wxOPEN);
 | 
						|
 | 
						|
    if (filed.ShowModal()!=wxID_OK)
 | 
						|
        return;
 | 
						|
 | 
						|
    wxFileDialog wxrfile(this,_T("Enter Desired WXR file name"));
 | 
						|
    wxrfile.SetWildcard(_T("*.wxr"));
 | 
						|
    wxrfile.SetStyle(wxOPEN);
 | 
						|
    wxrfile.SetFilename(_T("resource.wxr"));
 | 
						|
 | 
						|
    if (wxrfile.ShowModal()!=wxID_OK)
 | 
						|
        return;
 | 
						|
 | 
						|
    rc2wxr convert;
 | 
						|
    convert.Convert(wxrfile.GetPath(),filed.GetPath());
 | 
						|
}
 | 
						|
 | 
						|
void wxMainFrame::OnWXR2XML(wxCommandEvent& WXUNUSED(event))
 | 
						|
{
 | 
						|
    wxFileDialog f(this);
 | 
						|
    f.SetWildcard(_T("*.wxr"));
 | 
						|
    if (f.ShowModal()!=wxID_OK)
 | 
						|
        return;
 | 
						|
 | 
						|
 | 
						|
    wxFileDialog xmlfile(this,_T("Enter Desired XML file name"));
 | 
						|
    xmlfile.SetWildcard(_T("*.xml"));
 | 
						|
    xmlfile.SetStyle(wxOPEN);
 | 
						|
    xmlfile.SetFilename(_T("resource.xml"));
 | 
						|
 | 
						|
    if (xmlfile.ShowModal()!=wxID_OK)
 | 
						|
        return;
 | 
						|
 | 
						|
    wxr2xml XMLCon;
 | 
						|
    XMLCon.Convert(f.GetPath(),xmlfile.GetPath());
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
void wxMainFrame::OnRC2XML(wxCommandEvent& WXUNUSED(event))
 | 
						|
{
 | 
						|
    wxFileDialog f(this);
 | 
						|
    f.SetWildcard(_T("*.rc"));
 | 
						|
    if (f.ShowModal()!=wxID_OK)
 | 
						|
        return;
 | 
						|
 | 
						|
    wxFileDialog xmlfile(this,_T("Enter Desired XML file name"));
 | 
						|
    xmlfile.SetWildcard(_T("*.xml"));
 | 
						|
    xmlfile.SetStyle(wxOPEN);
 | 
						|
    xmlfile.SetFilename(_T("resource.xml"));
 | 
						|
 | 
						|
    if (xmlfile.ShowModal()!=wxID_OK)
 | 
						|
        return;
 | 
						|
 | 
						|
    rc2xml XMLCon;
 | 
						|
    XMLCon.Convert(f.GetPath(),xmlfile.GetPath());
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
bool wxConvertApp::HandleCommandLine()
 | 
						|
{
 | 
						|
 | 
						|
   if (argc != 2)
 | 
						|
       return false;
 | 
						|
 | 
						|
//Figure out kind of conversion
 | 
						|
    wxString source,target;
 | 
						|
 | 
						|
    wxr2xml trans_wxr2xml;
 | 
						|
    rc2xml trans_rc2xml;
 | 
						|
    rc2wxr trans_rc2wxr;
 | 
						|
 | 
						|
    source=argv[1];
 | 
						|
    target=argv[2];
 | 
						|
 | 
						|
 | 
						|
    if ((source.Find(_T(".wxr"))>0)&&(target.Find(_T(".xml"))>0))
 | 
						|
        {
 | 
						|
        trans_wxr2xml.Convert(source,target);
 | 
						|
        return true;
 | 
						|
        }
 | 
						|
    else if ((source.Find(_T(".rc"))!=wxNOT_FOUND)&(target.Find(_T(".wxr"))!=wxNOT_FOUND))
 | 
						|
        {
 | 
						|
        trans_rc2wxr.Convert(source,target);
 | 
						|
        return true;
 | 
						|
        }
 | 
						|
    else if ((source.Find(_T(".rc"))!=wxNOT_FOUND)&(target.Find(_T(".xml"))!=wxNOT_FOUND))
 | 
						|
        {
 | 
						|
        trans_rc2xml.Convert(source,target);
 | 
						|
        return true;
 | 
						|
        }
 | 
						|
 | 
						|
    return false;
 | 
						|
}
 |