annotate myframe.cpp @ 3:cc1f1fa544a4

for wxWidgets 3.1
author pyon@macmini
date Sun, 27 Nov 2016 20:15:37 +0900
parents 25a76c128804
children 3fadcf124bb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
1 // Filename : myframe.cpp
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
2 // Last Change: 2016-11-27 Sun 20:08:02.
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
3 //
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
4
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
5 #include "myframe.h"
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
6 #include "dndfile.h"
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
7 #include "sample.xpm"
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
8
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
9 MyFrame::MyFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
10 : wxFrame( parent, id, title, pos, size, style )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
11 {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
12 this->SetIcon( wxIcon( wxT("sample") ) );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
13 //this->SetSizeHints( wxSize( 450, 200 ), wxSize( 450, 200 ) );
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
14 this->SetSizeHints( wxSize( 550, 200 ), wxSize( 550, 200 ) );
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
15 this->SetBackgroundColour( *wxBLACK );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
16
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
17 wxBoxSizer* bSizerTop = new wxBoxSizer( wxVERTICAL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
18
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
19 // Source
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
20 wxBoxSizer* bSizerSource = new wxBoxSizer( wxHORIZONTAL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
21
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
22 m_staticTextSource = new wxStaticText( this, wxID_ANY, wxT("Source"), wxDefaultPosition, wxSize( 90, -1 ), wxALIGN_RIGHT );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
23 m_staticTextSource->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
24 m_staticTextSource->SetBackgroundColour( *wxBLACK );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
25
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
26 bSizerSource->Add( m_staticTextSource, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
27
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
28 m_textCtrlSource = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 200, -1 ), wxTAB_TRAVERSAL );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
29 bSizerSource->Add( m_textCtrlSource, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
30
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
31 bSizerTop->Add( bSizerSource, 1, wxEXPAND, 5 );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
32
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
33 // Config
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
34 // Type
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
35 wxBoxSizer* bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
36
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
37 m_staticTextConfig = new wxStaticText( this, wxID_ANY, wxT("Config"), wxDefaultPosition, wxSize( 90, -1 ), wxALIGN_RIGHT );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
38 m_staticTextConfig->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
39 m_staticTextConfig->SetBackgroundColour( *wxBLACK );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
40 bSizerConfig->Add( m_staticTextConfig, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
41
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
42 m_staticTextType = new wxStaticText( this, wxID_ANY, wxT("Type"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
43 m_staticTextType->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
44 m_staticTextType->SetBackgroundColour( *wxBLACK );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
45 bSizerConfig->Add( m_staticTextType, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
46
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
47 m_comboBoxType = new wxComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY|wxTAB_TRAVERSAL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
48 m_comboBoxType->Append( wxT("Not change") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
49 m_comboBoxType->Append( wxT("PNG") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
50 m_comboBoxType->Append( wxT("XPM") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
51 m_comboBoxType->Append( wxT("GIF") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
52 m_comboBoxType->Append( wxT("ICON") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
53 m_comboBoxType->Append( wxT("BMP") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
54 m_comboBoxType->Append( wxT("TIFF") );
2
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
55 m_comboBoxType->Append( wxT("JPEG") );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
56 m_comboBoxType->Append( wxT("SVG") );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
57 m_comboBoxType->SetSelection( 0 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
58 bSizerConfig->Add( m_comboBoxType, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
59
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
60 // Size
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
61 m_staticTextSize = new wxStaticText( this, wxID_ANY, wxT("Size"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
62 m_staticTextSize->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
63 m_staticTextSize->SetBackgroundColour( *wxBLACK );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
64 bSizerConfig->Add( m_staticTextSize, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
65
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
66 m_staticTextWidth = new wxStaticText( this, wxID_ANY, wxT("Width"), wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
67 m_staticTextWidth->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
68 m_staticTextWidth->SetBackgroundColour( *wxBLACK );
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
69 bSizerConfig->Add( m_staticTextWidth, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
70
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
71 m_textCtrlWidth = new wxTextCtrl( this, wxID_ANY, wxT("0"), wxDefaultPosition, wxSize( 40, -1 ), wxTE_CENTRE );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
72 m_staticTextWidth->SetBackgroundColour( *wxBLACK );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
73 bSizerConfig->Add( m_textCtrlWidth, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
74
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
75 m_staticTextHeight = new wxStaticText( this, wxID_ANY, wxT("Height"), wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
76 m_staticTextHeight->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
77 m_staticTextHeight->SetBackgroundColour( *wxBLACK );
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
78 bSizerConfig->Add( m_staticTextHeight, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
79
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
80 m_textCtrlHeight = new wxTextCtrl( this, wxID_ANY, wxT("0"), wxDefaultPosition, wxSize( 50, -1 ), wxTE_CENTRE );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
81 bSizerConfig->Add( m_textCtrlHeight, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
82
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
83 bSizerTop->Add( bSizerConfig, 1, wxEXPAND, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
84
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
85 // Output
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
86 wxBoxSizer* bSizerOutput = new wxBoxSizer( wxHORIZONTAL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
87
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
88 m_staticTextOutput = new wxStaticText( this, wxID_ANY, wxT("Output folder"), wxDefaultPosition, wxSize( 90, -1 ), wxALIGN_RIGHT );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
89 m_staticTextOutput->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
90 m_staticTextOutput->SetBackgroundColour( *wxBLACK );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
91 bSizerOutput->Add( m_staticTextOutput, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
92
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
93 m_dirPicker = new wxDirPickerCtrl( this, wxID_ANY, wxGetCwd(), wxT("Select a folder"), wxDefaultPosition, wxSize( 200, -1 ), wxDIRP_DEFAULT_STYLE );
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
94 m_dirPicker->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
95 m_dirPicker->SetBackgroundColour( *wxBLACK );
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
96 bSizerOutput->Add( m_dirPicker, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
97
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
98 bSizerTop->Add( bSizerOutput, 1, wxEXPAND, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
99
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
100 // Button
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
101 wxBoxSizer* bSizerButton = new wxBoxSizer( wxHORIZONTAL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
102
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
103 m_buttonExec = new wxButton( this, ID_EXEC, wxT("Exec"), wxDefaultPosition, wxDefaultSize, 0 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
104 bSizerButton->Add( m_buttonExec, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
105
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
106 m_buttonExit = new wxButton( this, ID_EXIT, wxT("Exit"), wxDefaultPosition, wxDefaultSize, 0 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
107 bSizerButton->Add( m_buttonExit, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
108
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
109 bSizerTop->Add( bSizerButton, 1, wxALIGN_RIGHT|wxALL, 5 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
110
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
111 //
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
112 this->SetSizer( bSizerTop );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
113 this->Layout();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
114
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
115 this->SetDropTarget( new DnDFile( m_textCtrlSource ) );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
116
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
117 this->Centre( wxBOTH );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
118 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
119
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
120 MyFrame::~MyFrame()
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
121 {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
122 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
123
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
124 // Event Table
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
125 BEGIN_EVENT_TABLE( MyFrame, wxFrame )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
126 EVT_BUTTON( ID_EXEC, MyFrame::OnExec )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
127 EVT_BUTTON( ID_EXIT, MyFrame::OnExit )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
128 END_EVENT_TABLE()
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
129
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
130 void MyFrame::OnExec( wxCommandEvent& WXUNUSED(event) )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
131 {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
132 wxString buf;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
133
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
134 wxString file, path;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
135 buf = m_textCtrlSource->GetValue();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
136 if ( wxFileName::FileExists( buf ) ) file = buf;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
137 if ( wxFileName::DirExists( buf ) ) path = buf;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
138 if ( file.IsEmpty() && path.IsEmpty() ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
139 WarnMessage( wxT("no input !") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
140 return;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
141 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
142
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
143 choice_type = m_comboBoxType->GetSelection();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
144
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
145 buf = m_textCtrlWidth->GetValue();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
146 buf.ToLong( &w, 10 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
147 buf = m_textCtrlHeight->GetValue();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
148 buf.ToLong( &h, 10 );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
149
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
150 if ( choice_type == 0 && w == 0 && h == 0 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
151 WarnMessage( wxT("no change !") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
152 return;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
153 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
154
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
155 buf = m_dirPicker->GetPath();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
156 if ( buf.IsEmpty() ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
157 WarnMessage( wxT("no output directory !") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
158 return;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
159 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
160 out_dir = buf;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
161
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
162 bool result;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
163 if ( file.IsEmpty() ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
164 result = ConvertFiles( path );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
165 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
166 else {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
167 result = ConvertAFile( file );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
168 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
169 if ( !result ) return;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
170
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
171 wxMessageDialog *md = new wxMessageDialog( this, wxT("Done !"), wxT("Message"), wxICON_INFORMATION|wxOK );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
172 md->ShowModal();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
173 md->Destroy();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
174 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
175
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
176 void MyFrame::OnExit( wxCommandEvent& WXUNUSED(event) )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
177 {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
178 Close();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
179 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
180
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
181 void MyFrame::WarnMessage( wxString msg )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
182 {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
183 wxMessageDialog *md = new wxMessageDialog( this, msg, wxT("Warning"), wxICON_ERROR|wxOK );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
184 md->ShowModal();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
185 md->Destroy();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
186 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
187
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
188 bool MyFrame::ConvertAFile( wxString file )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
189 {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
190 wxFileName f( file );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
191 wxString ext = f.GetExt();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
192 wxString name = f.GetName();
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
193 wxBitmapType in_type;
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
194
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
195 if ( ext.IsSameAs( wxT("jpg"), false ) ) in_type = wxBITMAP_TYPE_JPEG;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
196 else if ( ext.IsSameAs( wxT("jpeg"), false ) ) in_type = wxBITMAP_TYPE_JPEG;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
197 else if ( ext.IsSameAs( wxT("png"), false ) ) in_type = wxBITMAP_TYPE_PNG;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
198 else if ( ext.IsSameAs( wxT("xpm"), false ) ) in_type = wxBITMAP_TYPE_XPM;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
199 else if ( ext.IsSameAs( wxT("gif"), false ) ) in_type = wxBITMAP_TYPE_GIF;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
200 else if ( ext.IsSameAs( wxT("ico"), false ) ) in_type = wxBITMAP_TYPE_ICO;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
201 else if ( ext.IsSameAs( wxT("bmp"), false ) ) in_type = wxBITMAP_TYPE_BMP;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
202 else if ( ext.IsSameAs( wxT("tif"), false ) ) in_type = wxBITMAP_TYPE_TIFF;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
203 else if ( ext.IsSameAs( wxT("tiff"), false ) ) in_type = wxBITMAP_TYPE_TIFF;
1
593c93e904b5 Fix bugs.
pyon@macmini
parents: 0
diff changeset
204 else {
593c93e904b5 Fix bugs.
pyon@macmini
parents: 0
diff changeset
205 WarnMessage( wxT("Input file type is not supported !") );
593c93e904b5 Fix bugs.
pyon@macmini
parents: 0
diff changeset
206 return false;
593c93e904b5 Fix bugs.
pyon@macmini
parents: 0
diff changeset
207 }
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
208
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
209 wxBitmapType out_type = in_type;
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
210 if ( choice_type == 1 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
211 out_type = wxBITMAP_TYPE_PNG;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
212 ext = wxT("png");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
213 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
214 else if ( choice_type == 2 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
215 out_type = wxBITMAP_TYPE_XPM;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
216 ext = wxT("xpm");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
217 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
218 else if ( choice_type == 3 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
219 out_type = wxBITMAP_TYPE_GIF;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
220 ext = wxT("gif");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
221 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
222 else if ( choice_type == 4 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
223 out_type = wxBITMAP_TYPE_ICO;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
224 ext = wxT("ico");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
225 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
226 else if ( choice_type == 5 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
227 out_type = wxBITMAP_TYPE_BMP;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
228 ext = wxT("bmp");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
229 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
230 else if ( choice_type == 6 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
231 out_type = wxBITMAP_TYPE_TIFF;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
232 ext = wxT("tiff");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
233 }
2
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
234 else if ( choice_type == 7 ) {
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
235 out_type = wxBITMAP_TYPE_JPEG;
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
236 ext = wxT("jpg");
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
237 }
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
238 else if ( choice_type == 8 ) {
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
239 // SVG
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
240 }
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
241
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
242 wxImage image( file, in_type );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
243 if ( w == 0 || h == 0 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
244 w = (long)(image.GetWidth());
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
245 h = (long)(image.GetHeight());
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
246 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
247 wxImage output = image.Scale( (int)w, (int)h, wxIMAGE_QUALITY_HIGH );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
248 wxString outfile = out_dir + wxFILE_SEP_PATH + name + wxT(".") + ext;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
249
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
250 if ( file.IsSameAs( outfile ) ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
251 WarnMessage( wxT("Output file is same as input file !") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
252 return false;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
253 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
254
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
255 output.SaveFile( outfile, out_type );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
256 return true;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
257 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
258
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
259 bool MyFrame::ConvertFiles( wxString dir )
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
260 {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
261 wxFileName dn( dir );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
262
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
263 if ( out_dir.IsSameAs( dn.GetPath() ) ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
264 WarnMessage( wxT("Output directory is same as input directory !") );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
265 return false;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
266 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
267
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
268 wxBitmapType out_type = wxBITMAP_TYPE_INVALID;
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
269 wxString out_ext;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
270 if ( choice_type == 1 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
271 out_type = wxBITMAP_TYPE_PNG;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
272 out_ext = wxT("png");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
273 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
274 else if ( choice_type == 2 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
275 out_type = wxBITMAP_TYPE_XPM;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
276 out_ext = wxT("xpm");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
277 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
278 else if ( choice_type == 3 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
279 out_type = wxBITMAP_TYPE_GIF;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
280 out_ext = wxT("gif");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
281 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
282 else if ( choice_type == 4 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
283 out_type = wxBITMAP_TYPE_ICO;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
284 out_ext = wxT("ico");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
285 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
286 else if ( choice_type == 5 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
287 out_type = wxBITMAP_TYPE_BMP;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
288 out_ext = wxT("bmp");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
289 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
290 else if ( choice_type == 6 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
291 out_type = wxBITMAP_TYPE_TIFF;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
292 out_ext = wxT("tiff");
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
293 }
2
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
294 else if ( choice_type == 7 ) {
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
295 out_type = wxBITMAP_TYPE_JPEG;
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
296 out_ext = wxT("jpg");
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
297 }
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
298 else if ( choice_type == 8 ) {
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
299 // SVG
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
300 }
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
301
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
302 wxArrayString files;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
303 wxDir::GetAllFiles( dir, &files, wxT("*.*"), wxDIR_DEFAULT );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
304
1
593c93e904b5 Fix bugs.
pyon@macmini
parents: 0
diff changeset
305 for ( long i = 0; i < files.GetCount(); i++ ) {
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
306
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
307 wxFileName fn( files[i] );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
308 wxString in_ext = fn.GetExt();
3
cc1f1fa544a4 for wxWidgets 3.1
pyon@macmini
parents: 2
diff changeset
309 wxBitmapType in_type;
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
310
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
311 if ( in_ext.IsSameAs( wxT("jpg"), false ) ) in_type = wxBITMAP_TYPE_JPEG;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
312 else if ( in_ext.IsSameAs( wxT("jpeg"), false ) ) in_type = wxBITMAP_TYPE_JPEG;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
313 else if ( in_ext.IsSameAs( wxT("png"), false ) ) in_type = wxBITMAP_TYPE_PNG;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
314 else if ( in_ext.IsSameAs( wxT("xpm"), false ) ) in_type = wxBITMAP_TYPE_XPM;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
315 else if ( in_ext.IsSameAs( wxT("gif"), false ) ) in_type = wxBITMAP_TYPE_GIF;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
316 else if ( in_ext.IsSameAs( wxT("ico"), false ) ) in_type = wxBITMAP_TYPE_ICO;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
317 else if ( in_ext.IsSameAs( wxT("bmp"), false ) ) in_type = wxBITMAP_TYPE_BMP;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
318 else if ( in_ext.IsSameAs( wxT("tif"), false ) ) in_type = wxBITMAP_TYPE_TIFF;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
319 else if ( in_ext.IsSameAs( wxT("tiff"), false ) ) in_type = wxBITMAP_TYPE_TIFF;
1
593c93e904b5 Fix bugs.
pyon@macmini
parents: 0
diff changeset
320 else continue;
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
321
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
322 if ( out_type == wxBITMAP_TYPE_INVALID ) out_type = in_type;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
323
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
324 wxString fullpath = fn.GetPath() + wxFILE_SEP_PATH + fn.GetName();
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
325
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
326 fullpath.Replace( dn.GetPath(), wxEmptyString, false );
2
25a76c128804 Fix bugs.
pyon@macmini
parents: 1
diff changeset
327 fullpath = out_dir + wxFILE_SEP_PATH + fullpath + wxT(".") + out_ext;
0
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
328
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
329 wxFileName tf( fullpath );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
330 if ( !tf.Exists() ) tf.Mkdir( wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
331
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
332 wxImage image( files[i], in_type );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
333 if ( w == 0 || h == 0 ) {
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
334 w = (long)(image.GetWidth());
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
335 h = (long)(image.GetHeight());
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
336 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
337 wxImage output = image.Scale( (int)w, (int)h, wxIMAGE_QUALITY_HIGH );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
338 output.SaveFile( fullpath, out_type );
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
339 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
340
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
341 return true;
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
342 }
ebc42d7a0010 First Release.
pyon@macmini
parents:
diff changeset
343