├── .gitattributes ├── .gitignore ├── Changelog.txt ├── LICENSE ├── README.md ├── cmix_gui.sln └── cmix_gui ├── App.config ├── Form1.Designer.vb ├── Form1.resx ├── Form1.vb ├── My Project ├── Application.Designer.vb ├── Application.myapp ├── AssemblyInfo.vb ├── Resources.Designer.vb ├── Resources.resx ├── Settings.Designer.vb ├── Settings.settings └── app.manifest ├── Translations.vb └── cmix_gui.vbproj /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | bld/ 21 | [Bb]in/ 22 | [Oo]bj/ 23 | [Ll]og/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | project.fragment.lock.json 46 | artifacts/ 47 | 48 | *_i.c 49 | *_p.c 50 | *_i.h 51 | *.ilk 52 | *.meta 53 | *.obj 54 | *.pch 55 | *.pdb 56 | *.pgc 57 | *.pgd 58 | *.rsp 59 | *.sbr 60 | *.tlb 61 | *.tli 62 | *.tlh 63 | *.tmp 64 | *.tmp_proj 65 | *.log 66 | *.vspscc 67 | *.vssscc 68 | .builds 69 | *.pidb 70 | *.svclog 71 | *.scc 72 | 73 | # Chutzpah Test files 74 | _Chutzpah* 75 | 76 | # Visual C++ cache files 77 | ipch/ 78 | *.aps 79 | *.ncb 80 | *.opendb 81 | *.opensdf 82 | *.sdf 83 | *.cachefile 84 | *.VC.db 85 | *.VC.VC.opendb 86 | 87 | # Visual Studio profiler 88 | *.psess 89 | *.vsp 90 | *.vspx 91 | *.sap 92 | 93 | # TFS 2012 Local Workspace 94 | $tf/ 95 | 96 | # Guidance Automation Toolkit 97 | *.gpState 98 | 99 | # ReSharper is a .NET coding add-in 100 | _ReSharper*/ 101 | *.[Rr]e[Ss]harper 102 | *.DotSettings.user 103 | 104 | # JustCode is a .NET coding add-in 105 | .JustCode 106 | 107 | # TeamCity is a build add-in 108 | _TeamCity* 109 | 110 | # DotCover is a Code Coverage Tool 111 | *.dotCover 112 | 113 | # NCrunch 114 | _NCrunch_* 115 | .*crunch*.local.xml 116 | nCrunchTemp_* 117 | 118 | # MightyMoose 119 | *.mm.* 120 | AutoTest.Net/ 121 | 122 | # Web workbench (sass) 123 | .sass-cache/ 124 | 125 | # Installshield output folder 126 | [Ee]xpress/ 127 | 128 | # DocProject is a documentation generator add-in 129 | DocProject/buildhelp/ 130 | DocProject/Help/*.HxT 131 | DocProject/Help/*.HxC 132 | DocProject/Help/*.hhc 133 | DocProject/Help/*.hhk 134 | DocProject/Help/*.hhp 135 | DocProject/Help/Html2 136 | DocProject/Help/html 137 | 138 | # Click-Once directory 139 | publish/ 140 | 141 | # Publish Web Output 142 | *.[Pp]ublish.xml 143 | *.azurePubxml 144 | # TODO: Comment the next line if you want to checkin your web deploy settings 145 | # but database connection strings (with potential passwords) will be unencrypted 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 150 | # checkin your Azure Web App publish settings, but sensitive information contained 151 | # in these scripts will be unencrypted 152 | PublishScripts/ 153 | 154 | # NuGet Packages 155 | *.nupkg 156 | # The packages folder can be ignored because of Package Restore 157 | **/packages/* 158 | # except build/, which is used as an MSBuild target. 159 | !**/packages/build/ 160 | # Uncomment if necessary however generally it will be regenerated when needed 161 | #!**/packages/repositories.config 162 | # NuGet v3's project.json files produces more ignoreable files 163 | *.nuget.props 164 | *.nuget.targets 165 | 166 | # Microsoft Azure Build Output 167 | csx/ 168 | *.build.csdef 169 | 170 | # Microsoft Azure Emulator 171 | ecf/ 172 | rcf/ 173 | 174 | # Windows Store app package directories and files 175 | AppPackages/ 176 | BundleArtifacts/ 177 | Package.StoreAssociation.xml 178 | _pkginfo.txt 179 | 180 | # Visual Studio cache files 181 | # files ending in .cache can be ignored 182 | *.[Cc]ache 183 | # but keep track of directories ending in .cache 184 | !*.[Cc]ache/ 185 | 186 | # Others 187 | ClientBin/ 188 | ~$* 189 | *~ 190 | *.dbmdl 191 | *.dbproj.schemaview 192 | *.jfm 193 | *.pfx 194 | *.publishsettings 195 | node_modules/ 196 | orleans.codegen.cs 197 | 198 | # Since there are multiple workflows, uncomment next line to ignore bower_components 199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 200 | #bower_components/ 201 | 202 | # RIA/Silverlight projects 203 | Generated_Code/ 204 | 205 | # Backup & report files from converting an old project file 206 | # to a newer Visual Studio version. Backup files are not needed, 207 | # because we have git ;-) 208 | _UpgradeReport_Files/ 209 | Backup*/ 210 | UpgradeLog*.XML 211 | UpgradeLog*.htm 212 | 213 | # SQL Server files 214 | *.mdf 215 | *.ldf 216 | 217 | # Business Intelligence projects 218 | *.rdl.data 219 | *.bim.layout 220 | *.bim_*.settings 221 | 222 | # Microsoft Fakes 223 | FakesAssemblies/ 224 | 225 | # GhostDoc plugin setting file 226 | *.GhostDoc.xml 227 | 228 | # Node.js Tools for Visual Studio 229 | .ntvs_analysis.dat 230 | 231 | # Visual Studio 6 build log 232 | *.plg 233 | 234 | # Visual Studio 6 workspace options file 235 | *.opt 236 | 237 | # Visual Studio LightSwitch build output 238 | **/*.HTMLClient/GeneratedArtifacts 239 | **/*.DesktopClient/GeneratedArtifacts 240 | **/*.DesktopClient/ModelManifest.xml 241 | **/*.Server/GeneratedArtifacts 242 | **/*.Server/ModelManifest.xml 243 | _Pvt_Extensions 244 | 245 | # Paket dependency manager 246 | .paket/paket.exe 247 | paket-files/ 248 | 249 | # FAKE - F# Make 250 | .fake/ 251 | 252 | # JetBrains Rider 253 | .idea/ 254 | *.sln.iml 255 | 256 | # CodeRush 257 | .cr/ 258 | 259 | # Python Tools for Visual Studio (PTVS) 260 | __pycache__/ 261 | *.pyc -------------------------------------------------------------------------------- /Changelog.txt: -------------------------------------------------------------------------------- 1 | v1.9 (9/28/2021) 2 | - Adds support for cmix_v19. 3 | 4 | v1.8 (8/3/2019) 5 | - Adds support for cmix_v18. 6 | 7 | v1.7 (4/7/2019) 8 | - Adds support for cmix_v17. 9 | 10 | v1.6 (1/13/2019) 11 | - Adds support for cmix_v16f. 12 | - Can now drag and drop a file into the software icon. 13 | - Real-time log improvements. 14 | 15 | v1.5 (11/13/2018) 16 | - Adds support for cmix_v16e. 17 | - Log now displays cmix output. 18 | - Shows original and compressed file sizes after compression. 19 | 20 | v1.4r7 (11/12/2018) 21 | - Adds support for cmix_v16c and cmix_v16d. 22 | 23 | v1.4r6 24 | - Adds support for cmix_v16a and cmix_v16b. 25 | 26 | v1.4r5 (9/17/2018) 27 | - Adds support for cmix_v15i. 28 | 29 | v1.4r4 (9/4/2018) 30 | - Adds support for cmix_v15h. 31 | 32 | v1.4r3 (9/3/2018) 33 | - Adds support for cmix_v15g. 34 | 35 | v1.4r2 (8/28/2018) 36 | - Adds support for cmix_v15f. 37 | 38 | v1.4 (8/27/2018) 39 | - Adds support for cmix_v15d and cmix_v15e. 40 | 41 | v1.3 (7/11/2018) 42 | - Adds support for cmix_v15c. 43 | 44 | v1.2 (6/20/2018) 45 | - Added Clear Log Button. 46 | - Added RAM information. 47 | 48 | v1.1 (6/4/2018) 49 | - Added log to see progress. 50 | - Can save log to file. 51 | - GUI will not get locked when a task is running. 52 | - GUI will update the Output file textbox accordingly if a file or folder is manually typed in the Input file/folder textbox. 53 | - Fixed bug that the Output filename would not be updated when using Preprocessing mode. 54 | 55 | v1.0r4 (5/24/2018) 56 | - Added Spanish language. 57 | 58 | v1.0r3 (5/23/2018) 59 | - Added folder extraction to extract cmix files inside the specified folder. 60 | 61 | v1.0r2 (5/23/2018) 62 | - Added preprocessing. 63 | 64 | v1.0 (5/22/2018) 65 | - Initial release. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cmix_gui 2 | 3 | cmix_gui is a Front-end for the [cmix compression program](https://github.com/byronknoll/cmix). It allows you to compress, preprocess and extract files. 4 | 5 | When compressing files, the GUI will append the version used and will append a `_dict` at the end if you used the dictionary feature. When preprocessing files, they will always end with the `_dict` added at the end of the extension. 6 | 7 | When extracting a file, it will check the file extension and adjust version and dictionary feature accordingly. 8 | 9 | Released under the GPL license. Feel free to tweak with this GUI! 10 | 11 | Software written with Visual Studio 2017 in the Visual Basic .NET language. Updates are done in VS2022. Targets the .NET Framework 4.8. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 14 | 15 | # Screenshot 16 | 17 | English GUI Screenshot: 18 | ![GUI English Screenshot](https://moisescardona.me/wp-content/uploads/2019/08/CMIX-GUI-v1.8.png) 19 | 20 | Spanish GUI Screenshot: 21 | ![GUI Spanish Screenshot](https://moisescardona.me/wp-content/uploads/2019/08/CMIX-GUI-v1.8.png) 22 | 23 | # How to use? 24 | Simply, go to the release section and download the latest version. Then, execute **cmix_gui.exe**. 25 | 26 | Enjoy! 27 | -------------------- 28 | 29 | cmix repo: https://github.com/byronknoll/cmix 30 | -------------------------------------------------------------------------------- /cmix_gui.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27703.2000 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "cmix_gui", "cmix_gui\cmix_gui.vbproj", "{F9CF22F1-CB14-41C1-9A0C-519D8705B685}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {F9CF22F1-CB14-41C1-9A0C-519D8705B685}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {F9CF22F1-CB14-41C1-9A0C-519D8705B685}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {F9CF22F1-CB14-41C1-9A0C-519D8705B685}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {F9CF22F1-CB14-41C1-9A0C-519D8705B685}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {B4C76669-E1B9-45CC-9F5A-BADAA0A76B30} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /cmix_gui/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | True 15 | 16 | 17 | False 18 | 19 | 20 | cmix_v19 21 | 22 | 23 | False 24 | 25 | 26 | False 27 | 28 | 29 | True 30 | 31 | 32 | False 33 | 34 | 35 | False 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /cmix_gui/Form1.Designer.vb: -------------------------------------------------------------------------------- 1 |  _ 2 | Partial Class Form1 3 | Inherits System.Windows.Forms.Form 4 | 5 | 'Form overrides dispose to clean up the component list. 6 | _ 7 | Protected Overrides Sub Dispose(ByVal disposing As Boolean) 8 | Try 9 | If disposing AndAlso components IsNot Nothing Then 10 | components.Dispose() 11 | End If 12 | Finally 13 | MyBase.Dispose(disposing) 14 | End Try 15 | End Sub 16 | 17 | 'Required by the Windows Form Designer 18 | Private components As System.ComponentModel.IContainer 19 | 20 | 'NOTE: The following procedure is required by the Windows Form Designer 21 | 'It can be modified using the Windows Form Designer. 22 | 'Do not modify it using the code editor. 23 | _ 24 | Private Sub InitializeComponent() 25 | Me.InputFileMessage = New System.Windows.Forms.Label() 26 | Me.InputFileTxt = New System.Windows.Forms.TextBox() 27 | Me.OutputFileMessage = New System.Windows.Forms.Label() 28 | Me.OutputFileTxt = New System.Windows.Forms.TextBox() 29 | Me.ActionGroupBox = New System.Windows.Forms.GroupBox() 30 | Me.PreprocessRButton = New System.Windows.Forms.RadioButton() 31 | Me.ExtractRButton = New System.Windows.Forms.RadioButton() 32 | Me.CompressRButton = New System.Windows.Forms.RadioButton() 33 | Me.cmixVersionToUseLabel = New System.Windows.Forms.Label() 34 | Me.cmixVersionDropdown = New System.Windows.Forms.ComboBox() 35 | Me.BrowseButton1 = New System.Windows.Forms.Button() 36 | Me.BrowseButton2 = New System.Windows.Forms.Button() 37 | Me.StartButton = New System.Windows.Forms.Button() 38 | Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() 39 | Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog() 40 | Me.AboutLabel1 = New System.Windows.Forms.Label() 41 | Me.AboutLabel2 = New System.Windows.Forms.Label() 42 | Me.Label4 = New System.Windows.Forms.Label() 43 | Me.LinkLabel1 = New System.Windows.Forms.LinkLabel() 44 | Me.VersionLabel = New System.Windows.Forms.Label() 45 | Me.BrowseFolder = New System.Windows.Forms.Button() 46 | Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog() 47 | Me.UseEngDictCheckbox = New System.Windows.Forms.CheckBox() 48 | Me.GroupBox2 = New System.Windows.Forms.GroupBox() 49 | Me.SpanishRButton = New System.Windows.Forms.RadioButton() 50 | Me.EnglishRButton = New System.Windows.Forms.RadioButton() 51 | Me.ProgressLog = New System.Windows.Forms.RichTextBox() 52 | Me.SaveLogButton = New System.Windows.Forms.Button() 53 | Me.Label1 = New System.Windows.Forms.Label() 54 | Me.ClearLogButton = New System.Windows.Forms.Button() 55 | Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() 56 | Me.TotalRAM = New System.Windows.Forms.ToolStripStatusLabel() 57 | Me.AvailableRAM = New System.Windows.Forms.ToolStripStatusLabel() 58 | Me.UsedRAM = New System.Windows.Forms.ToolStripStatusLabel() 59 | Me.RAMBar = New System.Windows.Forms.ToolStripProgressBar() 60 | Me.ShowCMD = New System.Windows.Forms.CheckBox() 61 | Me.ActionGroupBox.SuspendLayout 62 | Me.GroupBox2.SuspendLayout 63 | Me.StatusStrip1.SuspendLayout 64 | Me.SuspendLayout 65 | ' 66 | 'InputFileMessage 67 | ' 68 | Me.InputFileMessage.AutoSize = true 69 | Me.InputFileMessage.Location = New System.Drawing.Point(9, 70) 70 | Me.InputFileMessage.Name = "InputFileMessage" 71 | Me.InputFileMessage.Size = New System.Drawing.Size(223, 13) 72 | Me.InputFileMessage.TabIndex = 0 73 | Me.InputFileMessage.Text = "Step 1: Browse for a file or folder to compress:" 74 | ' 75 | 'InputFileTxt 76 | ' 77 | Me.InputFileTxt.Location = New System.Drawing.Point(12, 86) 78 | Me.InputFileTxt.Name = "InputFileTxt" 79 | Me.InputFileTxt.Size = New System.Drawing.Size(237, 20) 80 | Me.InputFileTxt.TabIndex = 3 81 | ' 82 | 'OutputFileMessage 83 | ' 84 | Me.OutputFileMessage.AutoSize = true 85 | Me.OutputFileMessage.Location = New System.Drawing.Point(9, 109) 86 | Me.OutputFileMessage.Name = "OutputFileMessage" 87 | Me.OutputFileMessage.Size = New System.Drawing.Size(240, 13) 88 | Me.OutputFileMessage.TabIndex = 2 89 | Me.OutputFileMessage.Text = "Step 2: Browse for a location to save the archive:" 90 | ' 91 | 'OutputFileTxt 92 | ' 93 | Me.OutputFileTxt.Location = New System.Drawing.Point(12, 125) 94 | Me.OutputFileTxt.Name = "OutputFileTxt" 95 | Me.OutputFileTxt.Size = New System.Drawing.Size(237, 20) 96 | Me.OutputFileTxt.TabIndex = 6 97 | ' 98 | 'ActionGroupBox 99 | ' 100 | Me.ActionGroupBox.Controls.Add(Me.PreprocessRButton) 101 | Me.ActionGroupBox.Controls.Add(Me.ExtractRButton) 102 | Me.ActionGroupBox.Controls.Add(Me.CompressRButton) 103 | Me.ActionGroupBox.Location = New System.Drawing.Point(12, 12) 104 | Me.ActionGroupBox.Name = "ActionGroupBox" 105 | Me.ActionGroupBox.Size = New System.Drawing.Size(276, 46) 106 | Me.ActionGroupBox.TabIndex = 4 107 | Me.ActionGroupBox.TabStop = false 108 | Me.ActionGroupBox.Text = "I want to:" 109 | ' 110 | 'PreprocessRButton 111 | ' 112 | Me.PreprocessRButton.AutoSize = true 113 | Me.PreprocessRButton.Location = New System.Drawing.Point(83, 19) 114 | Me.PreprocessRButton.Name = "PreprocessRButton" 115 | Me.PreprocessRButton.Size = New System.Drawing.Size(116, 17) 116 | Me.PreprocessRButton.TabIndex = 1 117 | Me.PreprocessRButton.TabStop = true 118 | Me.PreprocessRButton.Text = "Only Preprocessing" 119 | Me.PreprocessRButton.UseVisualStyleBackColor = true 120 | ' 121 | 'ExtractRButton 122 | ' 123 | Me.ExtractRButton.AutoSize = true 124 | Me.ExtractRButton.Location = New System.Drawing.Point(205, 19) 125 | Me.ExtractRButton.Name = "ExtractRButton" 126 | Me.ExtractRButton.Size = New System.Drawing.Size(58, 17) 127 | Me.ExtractRButton.TabIndex = 2 128 | Me.ExtractRButton.TabStop = true 129 | Me.ExtractRButton.Text = "Extract" 130 | Me.ExtractRButton.UseVisualStyleBackColor = true 131 | ' 132 | 'CompressRButton 133 | ' 134 | Me.CompressRButton.AutoSize = true 135 | Me.CompressRButton.Location = New System.Drawing.Point(6, 19) 136 | Me.CompressRButton.Name = "CompressRButton" 137 | Me.CompressRButton.Size = New System.Drawing.Size(71, 17) 138 | Me.CompressRButton.TabIndex = 0 139 | Me.CompressRButton.TabStop = true 140 | Me.CompressRButton.Text = "Compress" 141 | Me.CompressRButton.UseVisualStyleBackColor = true 142 | ' 143 | 'cmixVersionToUseLabel 144 | ' 145 | Me.cmixVersionToUseLabel.AutoSize = true 146 | Me.cmixVersionToUseLabel.Location = New System.Drawing.Point(9, 148) 147 | Me.cmixVersionToUseLabel.Name = "cmixVersionToUseLabel" 148 | Me.cmixVersionToUseLabel.Size = New System.Drawing.Size(100, 13) 149 | Me.cmixVersionToUseLabel.TabIndex = 5 150 | Me.cmixVersionToUseLabel.Text = "cmix version to use:" 151 | ' 152 | 'cmixVersionDropdown 153 | ' 154 | Me.cmixVersionDropdown.FormattingEnabled = true 155 | Me.cmixVersionDropdown.Location = New System.Drawing.Point(12, 164) 156 | Me.cmixVersionDropdown.Name = "cmixVersionDropdown" 157 | Me.cmixVersionDropdown.Size = New System.Drawing.Size(121, 21) 158 | Me.cmixVersionDropdown.TabIndex = 8 159 | ' 160 | 'BrowseButton1 161 | ' 162 | Me.BrowseButton1.Location = New System.Drawing.Point(255, 84) 163 | Me.BrowseButton1.Name = "BrowseButton1" 164 | Me.BrowseButton1.Size = New System.Drawing.Size(96, 23) 165 | Me.BrowseButton1.TabIndex = 4 166 | Me.BrowseButton1.Text = "Browse File" 167 | Me.BrowseButton1.UseVisualStyleBackColor = true 168 | ' 169 | 'BrowseButton2 170 | ' 171 | Me.BrowseButton2.Location = New System.Drawing.Point(255, 123) 172 | Me.BrowseButton2.Name = "BrowseButton2" 173 | Me.BrowseButton2.Size = New System.Drawing.Size(96, 23) 174 | Me.BrowseButton2.TabIndex = 7 175 | Me.BrowseButton2.Text = "Browse" 176 | Me.BrowseButton2.UseVisualStyleBackColor = true 177 | ' 178 | 'StartButton 179 | ' 180 | Me.StartButton.Font = New System.Drawing.Font("Microsoft Sans Serif", 24!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) 181 | Me.StartButton.Location = New System.Drawing.Point(183, 151) 182 | Me.StartButton.Name = "StartButton" 183 | Me.StartButton.Size = New System.Drawing.Size(263, 57) 184 | Me.StartButton.TabIndex = 10 185 | Me.StartButton.Text = "Start" 186 | Me.StartButton.UseVisualStyleBackColor = true 187 | ' 188 | 'OpenFileDialog1 189 | ' 190 | Me.OpenFileDialog1.FileName = "OpenFileDialog1" 191 | ' 192 | 'AboutLabel1 193 | ' 194 | Me.AboutLabel1.AutoSize = true 195 | Me.AboutLabel1.Location = New System.Drawing.Point(9, 225) 196 | Me.AboutLabel1.Name = "AboutLabel1" 197 | Me.AboutLabel1.Size = New System.Drawing.Size(165, 13) 198 | Me.AboutLabel1.TabIndex = 10 199 | Me.AboutLabel1.Text = "GUI software by: Moisés Cardona" 200 | ' 201 | 'AboutLabel2 202 | ' 203 | Me.AboutLabel2.AutoSize = true 204 | Me.AboutLabel2.Location = New System.Drawing.Point(9, 238) 205 | Me.AboutLabel2.Name = "AboutLabel2" 206 | Me.AboutLabel2.Size = New System.Drawing.Size(101, 13) 207 | Me.AboutLabel2.TabIndex = 11 208 | Me.AboutLabel2.Text = "cmix by: Byron Knoll" 209 | ' 210 | 'Label4 211 | ' 212 | Me.Label4.AutoSize = true 213 | Me.Label4.Location = New System.Drawing.Point(9, 251) 214 | Me.Label4.Name = "Label4" 215 | Me.Label4.Size = New System.Drawing.Size(96, 13) 216 | Me.Label4.TabIndex = 12 217 | Me.Label4.Text = "cmix GitHub Repo:" 218 | ' 219 | 'LinkLabel1 220 | ' 221 | Me.LinkLabel1.AutoSize = true 222 | Me.LinkLabel1.Location = New System.Drawing.Point(111, 251) 223 | Me.LinkLabel1.Name = "LinkLabel1" 224 | Me.LinkLabel1.Size = New System.Drawing.Size(174, 13) 225 | Me.LinkLabel1.TabIndex = 11 226 | Me.LinkLabel1.TabStop = true 227 | Me.LinkLabel1.Text = "https://github.com/byronknoll/cmix" 228 | ' 229 | 'VersionLabel 230 | ' 231 | Me.VersionLabel.AutoSize = true 232 | Me.VersionLabel.Location = New System.Drawing.Point(396, 251) 233 | Me.VersionLabel.Name = "VersionLabel" 234 | Me.VersionLabel.Size = New System.Drawing.Size(50, 13) 235 | Me.VersionLabel.TabIndex = 14 236 | Me.VersionLabel.Text = "GUI v1.9" 237 | ' 238 | 'BrowseFolder 239 | ' 240 | Me.BrowseFolder.Location = New System.Drawing.Point(357, 84) 241 | Me.BrowseFolder.Name = "BrowseFolder" 242 | Me.BrowseFolder.Size = New System.Drawing.Size(89, 23) 243 | Me.BrowseFolder.TabIndex = 5 244 | Me.BrowseFolder.Text = "Browse Folder" 245 | Me.BrowseFolder.UseVisualStyleBackColor = true 246 | ' 247 | 'UseEngDictCheckbox 248 | ' 249 | Me.UseEngDictCheckbox.AutoSize = true 250 | Me.UseEngDictCheckbox.Location = New System.Drawing.Point(12, 192) 251 | Me.UseEngDictCheckbox.Name = "UseEngDictCheckbox" 252 | Me.UseEngDictCheckbox.Size = New System.Drawing.Size(148, 17) 253 | Me.UseEngDictCheckbox.TabIndex = 9 254 | Me.UseEngDictCheckbox.Text = "Use the English dictionary" 255 | Me.UseEngDictCheckbox.UseVisualStyleBackColor = true 256 | ' 257 | 'GroupBox2 258 | ' 259 | Me.GroupBox2.Controls.Add(Me.SpanishRButton) 260 | Me.GroupBox2.Controls.Add(Me.EnglishRButton) 261 | Me.GroupBox2.Location = New System.Drawing.Point(311, 12) 262 | Me.GroupBox2.Name = "GroupBox2" 263 | Me.GroupBox2.Size = New System.Drawing.Size(135, 46) 264 | Me.GroupBox2.TabIndex = 15 265 | Me.GroupBox2.TabStop = false 266 | Me.GroupBox2.Text = "Language / Idioma" 267 | ' 268 | 'SpanishRButton 269 | ' 270 | Me.SpanishRButton.AutoSize = true 271 | Me.SpanishRButton.Location = New System.Drawing.Point(70, 19) 272 | Me.SpanishRButton.Name = "SpanishRButton" 273 | Me.SpanishRButton.Size = New System.Drawing.Size(63, 17) 274 | Me.SpanishRButton.TabIndex = 4 275 | Me.SpanishRButton.TabStop = true 276 | Me.SpanishRButton.Text = "Español" 277 | Me.SpanishRButton.UseVisualStyleBackColor = true 278 | ' 279 | 'EnglishRButton 280 | ' 281 | Me.EnglishRButton.AutoSize = true 282 | Me.EnglishRButton.Location = New System.Drawing.Point(6, 19) 283 | Me.EnglishRButton.Name = "EnglishRButton" 284 | Me.EnglishRButton.Size = New System.Drawing.Size(59, 17) 285 | Me.EnglishRButton.TabIndex = 3 286 | Me.EnglishRButton.TabStop = true 287 | Me.EnglishRButton.Text = "English" 288 | Me.EnglishRButton.UseVisualStyleBackColor = true 289 | ' 290 | 'ProgressLog 291 | ' 292 | Me.ProgressLog.BackColor = System.Drawing.Color.White 293 | Me.ProgressLog.Location = New System.Drawing.Point(475, 25) 294 | Me.ProgressLog.Name = "ProgressLog" 295 | Me.ProgressLog.ReadOnly = true 296 | Me.ProgressLog.Size = New System.Drawing.Size(406, 213) 297 | Me.ProgressLog.TabIndex = 16 298 | Me.ProgressLog.Text = "" 299 | ' 300 | 'SaveLogButton 301 | ' 302 | Me.SaveLogButton.Location = New System.Drawing.Point(475, 244) 303 | Me.SaveLogButton.Name = "SaveLogButton" 304 | Me.SaveLogButton.Size = New System.Drawing.Size(310, 23) 305 | Me.SaveLogButton.TabIndex = 17 306 | Me.SaveLogButton.Text = "Save Log" 307 | Me.SaveLogButton.UseVisualStyleBackColor = true 308 | ' 309 | 'Label1 310 | ' 311 | Me.Label1.AutoSize = true 312 | Me.Label1.Location = New System.Drawing.Point(472, 9) 313 | Me.Label1.Name = "Label1" 314 | Me.Label1.Size = New System.Drawing.Size(28, 13) 315 | Me.Label1.TabIndex = 18 316 | Me.Label1.Text = "Log:" 317 | ' 318 | 'ClearLogButton 319 | ' 320 | Me.ClearLogButton.Location = New System.Drawing.Point(791, 244) 321 | Me.ClearLogButton.Name = "ClearLogButton" 322 | Me.ClearLogButton.Size = New System.Drawing.Size(90, 23) 323 | Me.ClearLogButton.TabIndex = 19 324 | Me.ClearLogButton.Text = "Clear Log" 325 | Me.ClearLogButton.UseVisualStyleBackColor = true 326 | ' 327 | 'StatusStrip1 328 | ' 329 | Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TotalRAM, Me.AvailableRAM, Me.UsedRAM, Me.RAMBar}) 330 | Me.StatusStrip1.Location = New System.Drawing.Point(0, 276) 331 | Me.StatusStrip1.Name = "StatusStrip1" 332 | Me.StatusStrip1.Size = New System.Drawing.Size(893, 22) 333 | Me.StatusStrip1.TabIndex = 21 334 | Me.StatusStrip1.Text = "StatusStrip1" 335 | ' 336 | 'TotalRAM 337 | ' 338 | Me.TotalRAM.Name = "TotalRAM" 339 | Me.TotalRAM.Size = New System.Drawing.Size(100, 17) 340 | Me.TotalRAM.Text = "Total RAM: 0.0 GB" 341 | ' 342 | 'AvailableRAM 343 | ' 344 | Me.AvailableRAM.Name = "AvailableRAM" 345 | Me.AvailableRAM.Size = New System.Drawing.Size(123, 17) 346 | Me.AvailableRAM.Text = "Available RAM: 0.0 GB" 347 | ' 348 | 'UsedRAM 349 | ' 350 | Me.UsedRAM.Name = "UsedRAM" 351 | Me.UsedRAM.Size = New System.Drawing.Size(98, 17) 352 | Me.UsedRAM.Text = "Used RAM: 0.0GB" 353 | ' 354 | 'RAMBar 355 | ' 356 | Me.RAMBar.Name = "RAMBar" 357 | Me.RAMBar.Size = New System.Drawing.Size(100, 16) 358 | ' 359 | 'ShowCMD 360 | ' 361 | Me.ShowCMD.AutoSize = true 362 | Me.ShowCMD.Location = New System.Drawing.Point(183, 214) 363 | Me.ShowCMD.Name = "ShowCMD" 364 | Me.ShowCMD.Size = New System.Drawing.Size(80, 17) 365 | Me.ShowCMD.TabIndex = 22 366 | Me.ShowCMD.Text = "Show CMD" 367 | Me.ShowCMD.UseVisualStyleBackColor = true 368 | ' 369 | 'Form1 370 | ' 371 | Me.AllowDrop = true 372 | Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!) 373 | Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 374 | Me.ClientSize = New System.Drawing.Size(893, 298) 375 | Me.Controls.Add(Me.ShowCMD) 376 | Me.Controls.Add(Me.StatusStrip1) 377 | Me.Controls.Add(Me.ClearLogButton) 378 | Me.Controls.Add(Me.Label1) 379 | Me.Controls.Add(Me.SaveLogButton) 380 | Me.Controls.Add(Me.ProgressLog) 381 | Me.Controls.Add(Me.GroupBox2) 382 | Me.Controls.Add(Me.UseEngDictCheckbox) 383 | Me.Controls.Add(Me.BrowseFolder) 384 | Me.Controls.Add(Me.VersionLabel) 385 | Me.Controls.Add(Me.LinkLabel1) 386 | Me.Controls.Add(Me.Label4) 387 | Me.Controls.Add(Me.AboutLabel2) 388 | Me.Controls.Add(Me.AboutLabel1) 389 | Me.Controls.Add(Me.StartButton) 390 | Me.Controls.Add(Me.BrowseButton2) 391 | Me.Controls.Add(Me.BrowseButton1) 392 | Me.Controls.Add(Me.cmixVersionDropdown) 393 | Me.Controls.Add(Me.cmixVersionToUseLabel) 394 | Me.Controls.Add(Me.ActionGroupBox) 395 | Me.Controls.Add(Me.OutputFileTxt) 396 | Me.Controls.Add(Me.OutputFileMessage) 397 | Me.Controls.Add(Me.InputFileTxt) 398 | Me.Controls.Add(Me.InputFileMessage) 399 | Me.MaximizeBox = false 400 | Me.MinimizeBox = false 401 | Me.Name = "Form1" 402 | Me.Text = "cmix Graphical User Interface" 403 | Me.ActionGroupBox.ResumeLayout(false) 404 | Me.ActionGroupBox.PerformLayout 405 | Me.GroupBox2.ResumeLayout(false) 406 | Me.GroupBox2.PerformLayout 407 | Me.StatusStrip1.ResumeLayout(false) 408 | Me.StatusStrip1.PerformLayout 409 | Me.ResumeLayout(false) 410 | Me.PerformLayout 411 | 412 | End Sub 413 | 414 | Friend WithEvents InputFileMessage As Label 415 | Friend WithEvents InputFileTxt As TextBox 416 | Friend WithEvents OutputFileMessage As Label 417 | Friend WithEvents OutputFileTxt As TextBox 418 | Friend WithEvents ActionGroupBox As GroupBox 419 | Friend WithEvents ExtractRButton As RadioButton 420 | Friend WithEvents CompressRButton As RadioButton 421 | Friend WithEvents cmixVersionToUseLabel As Label 422 | Friend WithEvents cmixVersionDropdown As ComboBox 423 | Friend WithEvents BrowseButton1 As Button 424 | Friend WithEvents BrowseButton2 As Button 425 | Friend WithEvents StartButton As Button 426 | Friend WithEvents SaveFileDialog1 As SaveFileDialog 427 | Friend WithEvents OpenFileDialog1 As OpenFileDialog 428 | Friend WithEvents AboutLabel1 As Label 429 | Friend WithEvents AboutLabel2 As Label 430 | Friend WithEvents Label4 As Label 431 | Friend WithEvents LinkLabel1 As LinkLabel 432 | Friend WithEvents VersionLabel As Label 433 | Friend WithEvents BrowseFolder As Button 434 | Friend WithEvents FolderBrowserDialog1 As FolderBrowserDialog 435 | Friend WithEvents UseEngDictCheckbox As CheckBox 436 | Friend WithEvents PreprocessRButton As RadioButton 437 | Friend WithEvents GroupBox2 As GroupBox 438 | Friend WithEvents SpanishRButton As RadioButton 439 | Friend WithEvents EnglishRButton As RadioButton 440 | Friend WithEvents ProgressLog As RichTextBox 441 | Friend WithEvents SaveLogButton As Button 442 | Friend WithEvents Label1 As Label 443 | Friend WithEvents ClearLogButton As Button 444 | Friend WithEvents StatusStrip1 As StatusStrip 445 | Friend WithEvents TotalRAM As ToolStripStatusLabel 446 | Friend WithEvents AvailableRAM As ToolStripStatusLabel 447 | Friend WithEvents UsedRAM As ToolStripStatusLabel 448 | Friend WithEvents RAMBar As ToolStripProgressBar 449 | Friend WithEvents ShowCMD As CheckBox 450 | End Class 451 | -------------------------------------------------------------------------------- /cmix_gui/Form1.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | 124 | 154, 17 125 | 126 | 127 | 296, 17 128 | 129 | 130 | 467, 17 131 | 132 | -------------------------------------------------------------------------------- /cmix_gui/Form1.vb: -------------------------------------------------------------------------------- 1 | Public Class Form1 2 | Private OutputFileName As String = String.Empty 3 | Private cmix_version As String = String.Empty 4 | Private dict As String = String.Empty 5 | Private TaskRunning As Boolean = False 6 | Private ExitSoftware As Boolean = False 7 | Private cmixVersionDictionary As Dictionary(Of String, String) = New Dictionary(Of String, String) From { 8 | {"15b", "cmix_v15b"}, 9 | {"15c", "cmix_v15c"}, 10 | {"15d", "cmix_v15d"}, 11 | {"15e", "cmix_v15e"}, 12 | {"15f", "cmix_v15f"}, 13 | {"15g", "cmix_v15g"}, 14 | {"15h", "cmix_v15h"}, 15 | {"15i", "cmix_v15i"}, 16 | {"16a", "cmix_v16a"}, 17 | {"16b", "cmix_v16b"}, 18 | {"16c", "cmix_v16c"}, 19 | {"16d", "cmix_v16d"}, 20 | {"16e", "cmix_v16e"}, 21 | {"16f", "cmix_v16f"}, 22 | {"17", "cmix_v17"}, 23 | {"18", "cmix_v18"}, 24 | {"19", "cmix_v19"} 25 | } 26 | 27 | 28 | Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 29 | IO.Directory.SetCurrentDirectory(IO.Path.GetDirectoryName(Process.GetCurrentProcess.MainModule.FileName)) 30 | CheckExes() 31 | CompressRButton.Checked = My.Settings.Compress 32 | ExtractRButton.Checked = My.Settings.Extract 33 | PreprocessRButton.Checked = My.Settings.Preprocess 34 | UseEngDictCheckbox.Checked = My.Settings.UseEngDict 35 | EnglishRButton.Checked = My.Settings.EnglishLanguage 36 | SpanishRButton.Checked = My.Settings.SpanishLanguage 37 | ShowCMD.Checked = My.Settings.ShowCMD 38 | Dim vars As String() = Environment.GetCommandLineArgs 39 | If vars.Count > 1 Then 40 | InputFileTxt.Text = vars(1) 41 | GetInputNameAndUpdateForm(InputFileTxt.Text) 42 | End If 43 | Dim Thread As New Threading.Thread(Sub() UpdateRAMBars()) 44 | Thread.Start() 45 | End Sub 46 | 47 | Private Sub CheckExes() 48 | For Each item As KeyValuePair(Of String, String) In cmixVersionDictionary 49 | If My.Computer.FileSystem.FileExists("exes\" + item.Key + "\" + item.Value + ".exe") Then cmixVersionDropdown.Items.Add(item.Value) 50 | Next 51 | If cmixVersionDropdown.Items.Contains(My.Settings.Version) Then cmixVersionDropdown.SelectedItem = My.Settings.Version 52 | End Sub 53 | Private Sub CheckDictionaryFile() 54 | If IO.File.Exists("exes\" + cmix_version + "\english.dic") Then 55 | UseEngDictCheckbox.Enabled = True 56 | Else 57 | UseEngDictCheckbox.Enabled = False 58 | UseEngDictCheckbox.Checked = False 59 | End If 60 | End Sub 61 | Private Sub CompressRButton_CheckedChanged(sender As Object, e As EventArgs) Handles CompressRButton.CheckedChanged 62 | InputFileMessage.Text = Translations.CompressInputMessage 63 | OutputFileMessage.Text = Translations.CompressOutputMessage 64 | CheckDictionaryFile() 65 | My.Settings.Compress = CompressRButton.Checked 66 | My.Settings.Save() 67 | If InputFileTxt.Text IsNot String.Empty Then GetInputNameAndUpdateForm(InputFileTxt.Text) 68 | End Sub 69 | 70 | Private Sub ExtractRButton_CheckedChanged(sender As Object, e As EventArgs) Handles ExtractRButton.CheckedChanged 71 | InputFileMessage.Text = Translations.ExtractInputMessage 72 | OutputFileMessage.Text = Translations.ExtractOutputMessage 73 | CheckDictionaryFile() 74 | My.Settings.Extract = ExtractRButton.Checked 75 | My.Settings.Save() 76 | If InputFileTxt.Text IsNot String.Empty Then GetInputNameAndUpdateForm(InputFileTxt.Text) 77 | End Sub 78 | 79 | Private Sub PreprocessRButton_CheckedChanged(sender As Object, e As EventArgs) Handles PreprocessRButton.CheckedChanged 80 | InputFileMessage.Text = Translations.PreprocessInputMessage 81 | OutputFileMessage.Text = Translations.PreprocessOutputMessage 82 | My.Settings.Preprocess = PreprocessRButton.Checked 83 | My.Settings.Save() 84 | UseEngDictCheckbox.Checked = True 85 | UseEngDictCheckbox.Enabled = False 86 | If InputFileTxt.Text IsNot String.Empty Then GetInputNameAndUpdateForm(InputFileTxt.Text) 87 | End Sub 88 | 89 | Private Function CheckIfFileOrFolder(Optional PathToCheck As String = "") As String 90 | If My.Computer.FileSystem.FileExists(PathToCheck) Or PathToCheck = "" Then 91 | If CompressRButton.Checked Then 92 | OutputFileMessage.Text = Translations.CompressOutputMessage 93 | ElseIf PreprocessRButton.Checked Then 94 | OutputFileMessage.Text = Translations.PreprocessOutputMessage 95 | Else 96 | OutputFileMessage.Text = Translations.ExtractOutputMessage 97 | End If 98 | OutputFileTxt.Enabled = True 99 | BrowseButton2.Enabled = True 100 | If PathToCheck IsNot "" Then Return "File" 101 | ElseIf My.Computer.FileSystem.DirectoryExists(PathToCheck) Then 102 | If CompressRButton.Checked Then 103 | OutputFileMessage.Text = Translations.CompressFolderSelectedMessage 104 | ElseIf PreprocessRButton.Checked Then 105 | OutputFileMessage.Text = Translations.PreprocessFolderSelectedMessage 106 | Else 107 | OutputFileMessage.Text = Translations.ExtractFolderSelectedMessage 108 | End If 109 | OutputFileTxt.Enabled = False 110 | BrowseButton2.Enabled = False 111 | Return "Folder" 112 | End If 113 | Return "N/A" 114 | End Function 115 | 116 | Private Sub SetVersion(Extension As String) 117 | For Each item As KeyValuePair(Of String, String) In cmixVersionDictionary 118 | If Extension.Contains(item.Key) Then 119 | cmixVersionDropdown.SelectedItem = item.Value 120 | End If 121 | Next 122 | End Sub 123 | 124 | Private Function SetDict(Extension As String) As Boolean 125 | If Extension.Contains("_dict") Then 126 | If IO.File.Exists("exes\" + cmix_version + "\english.dic") Then 127 | UseEngDictCheckbox.Checked = True 128 | Else 129 | MsgBox("english.dic is missing. Cannot use dictionary.") 130 | InputFileTxt.Text = "" 131 | OutputFileTxt.Text = "" 132 | UseEngDictCheckbox.Checked = False 133 | Return False 134 | End If 135 | Else 136 | UseEngDictCheckbox.Checked = False 137 | End If 138 | Return True 139 | End Function 140 | 141 | Public Function GetInputNameAndUpdateForm(Path As String) As String 142 | Dim CheckIfFile = CheckIfFileOrFolder(Path) 143 | If CheckIfFile = "File" Then 144 | Dim FileExtension As String = IO.Path.GetExtension(Path) 145 | If FileExtension.Contains("cmix") Then 146 | SetVersion(FileExtension) 147 | If SetDict(FileExtension) Then 148 | OutputFileTxt.Text = IO.Path.ChangeExtension(Path, Nothing) 149 | ExtractRButton.Checked = True 150 | End If 151 | End If 152 | If CompressRButton.Checked Or PreprocessRButton.Checked Then 153 | OutputFileName = Path + ".cmix" 154 | SetOutputFilename() 155 | End If 156 | End If 157 | Return Path 158 | End Function 159 | 160 | Private Sub BrowseButton1_Click(sender As Object, e As EventArgs) Handles BrowseButton1.Click 161 | OpenFileDialog1.Title = InputFileMessage.Text 162 | OpenFileDialog1.Filter = "All files (*.*)|*.*" 163 | If InputFileTxt.Text IsNot String.Empty Then 164 | If My.Computer.FileSystem.FileExists(InputFileTxt.Text) Then OpenFileDialog1.FileName = My.Computer.FileSystem.GetName(InputFileTxt.Text) Else OpenFileDialog1.FileName = String.Empty 165 | Else 166 | OpenFileDialog1.FileName = String.Empty 167 | End If 168 | Dim response As DialogResult = OpenFileDialog1.ShowDialog 169 | If response = DialogResult.OK Then 170 | InputFileTxt.Text = OpenFileDialog1.FileName 171 | End If 172 | End Sub 173 | 174 | Private Sub BrowseFolder_Click(sender As Object, e As EventArgs) Handles BrowseFolder.Click 175 | Dim response As DialogResult = FolderBrowserDialog1.ShowDialog() 176 | If response = DialogResult.OK Then 177 | InputFileTxt.Text = GetInputNameAndUpdateForm(FolderBrowserDialog1.SelectedPath) 178 | End If 179 | End Sub 180 | 181 | Private Sub BrowseButton2_Click(sender As Object, e As EventArgs) Handles BrowseButton2.Click 182 | SaveFileDialog1.Title = OutputFileMessage.Text 183 | If CompressRButton.Checked Then SaveFileDialog1.Filter = "cmix file|*.cmix" Else SaveFileDialog1.Filter = "All files (*.*)|*.*" 184 | If OutputFileTxt.Text IsNot String.Empty Then 185 | If My.Computer.FileSystem.FileExists(OutputFileTxt.Text) Then SaveFileDialog1.FileName = My.Computer.FileSystem.GetName(OutputFileTxt.Text) Else SaveFileDialog1.FileName = String.Empty 186 | Else 187 | SaveFileDialog1.FileName = String.Empty 188 | End If 189 | Dim response As DialogResult = SaveFileDialog1.ShowDialog 190 | If response = DialogResult.OK Then 191 | If CompressRButton.Checked Then 192 | OutputFileName = SaveFileDialog1.FileName 193 | If CompressRButton.Checked Then SetOutputFilename() 194 | Else 195 | OutputFileTxt.Text = SaveFileDialog1.FileName 196 | End If 197 | End If 198 | End Sub 199 | 200 | Private Sub SetOutputFilename() 201 | If CompressRButton.Checked Or PreprocessRButton.Checked Then OutputFileTxt.Text = OutputFileName + cmix_version + dict 202 | End Sub 203 | 204 | Private Sub CmixVersionDropdown_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmixVersionDropdown.SelectedIndexChanged 205 | My.Settings.Version = cmixVersionDropdown.SelectedItem 206 | My.Settings.Save() 207 | For Each item As KeyValuePair(Of String, String) In cmixVersionDictionary 208 | If cmixVersionDropdown.SelectedItem = item.Value Then 209 | cmix_version = item.Key 210 | CheckDictionaryFile() 211 | End If 212 | Next 213 | If OutputFileName IsNot String.Empty Then 214 | SetOutputFilename() 215 | End If 216 | End Sub 217 | 218 | Private Sub Form1_DragEnter(sender As Object, e As DragEventArgs) Handles MyBase.DragEnter 219 | If e.Data.GetDataPresent(DataFormats.FileDrop) Then 220 | e.Effect = DragDropEffects.Copy 221 | End If 222 | End Sub 223 | 224 | Private Sub Form1_DragDrop(sender As Object, e As DragEventArgs) Handles MyBase.DragDrop 225 | InputFileTxt.Text = e.Data.GetData(DataFormats.FileDrop)(0) 226 | GetInputNameAndUpdateForm(InputFileTxt.Text) 227 | End Sub 228 | 229 | Private Sub UpdateLogEventHandler(sender As Object, e As DataReceivedEventArgs) 230 | If Not e.Data = Nothing Then 231 | UpdateLog(e.Data) 232 | End If 233 | End Sub 234 | 235 | Private Sub Run_cmix(Input As String, Output As String, action As String) 236 | If action.Contains("-c") Then 237 | UpdateLog("Compressing file " + Input) 238 | ElseIf action.Contains("-d") Then 239 | UpdateLog("Extracting file " + Input) 240 | Else 241 | UpdateLog("Preprocessing file " + Input) 242 | End If 243 | UpdateLog("Start time: " & Date.Now()) 244 | UpdateLog("----------") 245 | Using process As New Process 246 | Dim SoftwareDirectory As String = IO.Path.GetDirectoryName(Process.GetCurrentProcess.MainModule.FileName) 247 | process.StartInfo.WorkingDirectory = SoftwareDirectory + "\exes\" + cmix_version 248 | process.StartInfo.FileName = SoftwareDirectory + "\exes\" + cmix_version + "\" + My.Settings.Version + ".exe" 249 | process.StartInfo.Arguments = action + " """ + Input + """ """ + Output + """" 250 | process.StartInfo.CreateNoWindow = Not ShowCMD.Checked 251 | process.StartInfo.RedirectStandardOutput = Not ShowCMD.Checked 252 | process.StartInfo.RedirectStandardError = Not ShowCMD.Checked 253 | process.StartInfo.UseShellExecute = ShowCMD.Checked 254 | If Not ShowCMD.Checked Then 255 | AddHandler process.OutputDataReceived, New DataReceivedEventHandler(AddressOf UpdateLogEventHandler) 256 | AddHandler process.ErrorDataReceived, New DataReceivedEventHandler(AddressOf UpdateLogEventHandler) 257 | End If 258 | process.Start() 259 | If Not ShowCMD.Checked Then 260 | process.BeginOutputReadLine() 261 | process.BeginErrorReadLine() 262 | End If 263 | process.WaitForExit() 264 | UpdateLog("----------") 265 | End Using 266 | UpdateLog("Finished processing file " + Input + vbCrLf + "End Time: " + Date.Now() + vbCrLf) 267 | Dim OutputFileMessage As String = String.Empty 268 | If action.Contains("-c") Then 269 | OutputFileMessage = "Compressed" 270 | ElseIf action.Contains("-d") Then 271 | OutputFileMessage = "Extracted" 272 | Else 273 | OutputFileMessage = "Preprocessed" 274 | End If 275 | UpdateLog(String.Format("Input file size: {0:N2} MB ", My.Computer.FileSystem.GetFileInfo(Input).Length / 1024 / 1024)) 276 | UpdateLog(String.Format(OutputFileMessage + " file size: {0:N2} MB ", My.Computer.FileSystem.GetFileInfo(Output).Length / 1024 / 1024)) 277 | End Sub 278 | Private Delegate Sub UpdateLogInvoker(message As String) 279 | Private Sub UpdateLog(message As String) 280 | If ProgressLog.InvokeRequired Then 281 | ProgressLog.Invoke(New UpdateLogInvoker(AddressOf UpdateLog), message) 282 | Else 283 | ProgressLog.AppendText(Date.Now().ToString() + " || " + message + vbCrLf) 284 | ProgressLog.SelectionStart = ProgressLog.Text.Length - 1 285 | ProgressLog.ScrollToCaret() 286 | End If 287 | End Sub 288 | Public Sub ProcessFiles(Folder As String, Action As String) 289 | For Each File In IO.Directory.GetFiles(Folder) 290 | If ExtractRButton.Checked Then 291 | If IO.Path.GetExtension(File).Contains("cmix") Then 292 | GetInputNameAndUpdateForm(File) 293 | Run_cmix(File, OutputFileTxt.Text, Action) 294 | End If 295 | Else 296 | Run_cmix(File, File + ".cmix" + cmix_version + dict, Action) 297 | End If 298 | Next 299 | End Sub 300 | 301 | Public Sub ProcessSubfolders(Folder As String, Action As String) 302 | For Each Subfolder In IO.Directory.GetDirectories(Folder) 303 | ProcessFolder(Subfolder, Action) 304 | Next 305 | End Sub 306 | 307 | Public Sub ProcessFolder(Folder As String, Action As String) 308 | ProcessFiles(Folder, Action) 309 | ProcessSubfolders(Folder, Action) 310 | End Sub 311 | 312 | Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click 313 | If InputFileTxt.Text IsNot String.Empty Then 314 | If Not TaskRunning Then 315 | TaskRunning = True 316 | Dim Thread As New Threading.Thread(Sub() ProcessThread()) 317 | Thread.Start() 318 | Else 319 | MsgBox(Translations.TaskRunningString) 320 | End If 321 | End If 322 | End Sub 323 | Private Sub ProcessThread() 324 | Dim ProcessAction As String = String.Empty 325 | If CompressRButton.Checked Then 326 | ProcessAction = "-c" 327 | ElseIf PreprocessRButton.Checked Then 328 | ProcessAction = "-s" 329 | Else 330 | ProcessAction = "-d" 331 | End If 332 | If My.Settings.UseEngDict Then ProcessAction = ProcessAction + " english.dic" 333 | Dim CheckInput As String = CheckIfFileOrFolder(InputFileTxt.Text) 334 | If CheckInput = "File" Then 335 | If OutputFileTxt.Text IsNot String.Empty Then 336 | Run_cmix(InputFileTxt.Text, OutputFileTxt.Text, ProcessAction) 337 | End If 338 | ElseIf CheckInput = "Folder" Then 339 | ProcessFolder(InputFileTxt.Text, ProcessAction) 340 | End If 341 | TaskRunning = False 342 | MessageBox.Show(Translations.Finished) 343 | End Sub 344 | Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked 345 | Process.Start("https://github.com/byronknoll/cmix") 346 | End Sub 347 | 348 | Private Sub UseEngDictCheckbox_CheckedChanged(sender As Object, e As EventArgs) Handles UseEngDictCheckbox.CheckedChanged 349 | My.Settings.UseEngDict = UseEngDictCheckbox.Checked 350 | My.Settings.Save() 351 | If UseEngDictCheckbox.Checked Then dict = "_dict" Else dict = String.Empty 352 | If OutputFileName IsNot String.Empty Then 353 | SetOutputFilename() 354 | End If 355 | End Sub 356 | 357 | Private Sub EnglishRButton_CheckedChanged(sender As Object, e As EventArgs) Handles EnglishRButton.CheckedChanged 358 | My.Settings.EnglishLanguage = EnglishRButton.Checked 359 | My.Settings.Save() 360 | Translations.UpdateMessageStrings("English") 361 | End Sub 362 | 363 | Private Sub SpanishRButton_CheckedChanged(sender As Object, e As EventArgs) Handles SpanishRButton.CheckedChanged 364 | My.Settings.SpanishLanguage = SpanishRButton.Checked 365 | My.Settings.Save() 366 | Translations.UpdateMessageStrings("Spanish") 367 | End Sub 368 | 369 | Private Sub SaveLogButton_Click(sender As Object, e As EventArgs) Handles SaveLogButton.Click 370 | Dim SaveLogFile As New SaveFileDialog With { 371 | .Title = "Browse for a location to save the log file", 372 | .Filter = "Log file (*.log)|*.log", 373 | .FileName = String.Empty 374 | } 375 | Dim dialogResult As DialogResult = SaveLogFile.ShowDialog 376 | If DialogResult.OK Then 377 | If Not SaveLogFile.FileName = String.Empty Then 378 | My.Computer.FileSystem.WriteAllText(SaveLogFile.FileName, ProgressLog.Text, False) 379 | MsgBox(Translations.LogSaved) 380 | End If 381 | End If 382 | End Sub 383 | 384 | Private Sub InputFileTxt_TextChanged(sender As Object, e As EventArgs) Handles InputFileTxt.TextChanged 385 | GetInputNameAndUpdateForm(InputFileTxt.Text) 386 | End Sub 387 | 388 | Private Delegate Sub ClearLogInvoker() 389 | Private Sub ClearLog() 390 | If ProgressLog.InvokeRequired Then 391 | ProgressLog.Invoke(New ClearLogInvoker(AddressOf ClearLog)) 392 | Else 393 | ProgressLog.Clear() 394 | End If 395 | End Sub 396 | Private Sub ClearLogButton_Click(sender As Object, e As EventArgs) Handles ClearLogButton.Click 397 | If Not TaskRunning Then ClearLog() 398 | End Sub 399 | 400 | Private Sub UpdateRAMBars() 401 | Dim TotalSystemRAM As Double = My.Computer.Info.TotalPhysicalMemory / 1024 / 1024 / 1024 402 | TotalRAM.GetCurrentParent.Invoke(Sub() 403 | TotalRAM.Text = String.Format(Translations.TotalRAMString + " {0:N2} GB", TotalSystemRAM) 404 | End Sub) 405 | RAMBar.GetCurrentParent.Invoke(Sub() 406 | RAMBar.Maximum = TotalSystemRAM 407 | End Sub) 408 | Dim AvailableSystemRAM As Double = 0.0 409 | Dim UsedSystemRAM As Double = 0.0 410 | While True 411 | If ExitSoftware Then Exit While 412 | Try 413 | AvailableSystemRAM = My.Computer.Info.AvailablePhysicalMemory / 1024 / 1024 / 1024 414 | UsedSystemRAM = TotalSystemRAM - AvailableSystemRAM 415 | AvailableRAM.GetCurrentParent.Invoke(Sub() 416 | AvailableRAM.Text = String.Format(Translations.AvailableRAMString + " {0:N2} GB", AvailableSystemRAM) 417 | End Sub) 418 | UsedRAM.GetCurrentParent.Invoke(Sub() 419 | UsedRAM.Text = String.Format(Translations.UsedRAMString + " {0:N2} GB", UsedSystemRAM) 420 | End Sub) 421 | RAMBar.GetCurrentParent.Invoke(Sub() 422 | RAMBar.Value = UsedSystemRAM 423 | End Sub) 424 | Threading.Thread.Sleep(500) 425 | Catch 426 | Continue While 427 | End Try 428 | End While 429 | End Sub 430 | 431 | Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing 432 | ExitSoftware = True 433 | End Sub 434 | 435 | Private Sub ShowCMD_CheckedChanged(sender As Object, e As EventArgs) Handles ShowCMD.CheckedChanged 436 | My.Settings.ShowCMD = ShowCMD.Checked 437 | My.Settings.Save() 438 | End Sub 439 | End Class 440 | -------------------------------------------------------------------------------- /cmix_gui/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | 'NOTE: This file is auto-generated; do not modify it directly. To make changes, 18 | ' or if you encounter build errors in this file, go to the Project Designer 19 | ' (go to Project Properties or double-click the My Project node in 20 | ' Solution Explorer), and make changes on the Application tab. 21 | ' 22 | Partial Friend Class MyApplication 23 | 24 | _ 25 | Public Sub New() 26 | MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) 27 | Me.IsSingleInstance = false 28 | Me.EnableVisualStyles = true 29 | Me.SaveMySettingsOnExit = true 30 | Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses 31 | End Sub 32 | 33 | _ 34 | Protected Overrides Sub OnCreateMainForm() 35 | Me.MainForm = Global.cmix_gui.Form1 36 | End Sub 37 | End Class 38 | End Namespace 39 | -------------------------------------------------------------------------------- /cmix_gui/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 |  2 | 3 | true 4 | Form1 5 | false 6 | 0 7 | true 8 | 0 9 | 0 10 | true 11 | 12 | -------------------------------------------------------------------------------- /cmix_gui/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Reflection 3 | Imports System.Runtime.InteropServices 4 | 5 | ' General Information about an assembly is controlled through the following 6 | ' set of attributes. Change these attribute values to modify the information 7 | ' associated with an assembly. 8 | 9 | ' Review the values of the assembly attributes 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM 21 | 22 | 23 | ' Version information for an assembly consists of the following four values: 24 | ' 25 | ' Major Version 26 | ' Minor Version 27 | ' Build Number 28 | ' Revision 29 | ' 30 | ' You can specify all the values or you can default the Build and Revision Numbers 31 | ' by using the '*' as shown below: 32 | ' 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /cmix_gui/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | Imports System 15 | 16 | Namespace My.Resources 17 | 18 | 'This class was auto-generated by the StronglyTypedResourceBuilder 19 | 'class via a tool like ResGen or Visual Studio. 20 | 'To add or remove a member, edit your .ResX file then rerun ResGen 21 | 'with the /str option, or rebuild your VS project. 22 | ''' 23 | ''' A strongly-typed resource class, for looking up localized strings, etc. 24 | ''' 25 | _ 29 | Friend Module Resources 30 | 31 | Private resourceMan As Global.System.Resources.ResourceManager 32 | 33 | Private resourceCulture As Global.System.Globalization.CultureInfo 34 | 35 | ''' 36 | ''' Returns the cached ResourceManager instance used by this class. 37 | ''' 38 | _ 39 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 40 | Get 41 | If Object.ReferenceEquals(resourceMan, Nothing) Then 42 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("cmix_gui.Resources", GetType(Resources).Assembly) 43 | resourceMan = temp 44 | End If 45 | Return resourceMan 46 | End Get 47 | End Property 48 | 49 | ''' 50 | ''' Overrides the current thread's CurrentUICulture property for all 51 | ''' resource lookups using this strongly typed resource class. 52 | ''' 53 | _ 54 | Friend Property Culture() As Global.System.Globalization.CultureInfo 55 | Get 56 | Return resourceCulture 57 | End Get 58 | Set 59 | resourceCulture = value 60 | End Set 61 | End Property 62 | 63 | ''' 64 | ''' Looks up a localized string similar to GUI software by: Moisés Cardona. 65 | ''' 66 | Friend ReadOnly Property About1() As String 67 | Get 68 | Return ResourceManager.GetString("About1", resourceCulture) 69 | End Get 70 | End Property 71 | 72 | ''' 73 | ''' Looks up a localized string similar to programa GUI por: Moisés Cardona. 74 | ''' 75 | Friend ReadOnly Property About1Spanish() As String 76 | Get 77 | Return ResourceManager.GetString("About1Spanish", resourceCulture) 78 | End Get 79 | End Property 80 | 81 | ''' 82 | ''' Looks up a localized string similar to cmix by: Byron Knoll. 83 | ''' 84 | Friend ReadOnly Property About2() As String 85 | Get 86 | Return ResourceManager.GetString("About2", resourceCulture) 87 | End Get 88 | End Property 89 | 90 | ''' 91 | ''' Looks up a localized string similar to cmix por: Byron Knoll. 92 | ''' 93 | Friend ReadOnly Property About2Spanish() As String 94 | Get 95 | Return ResourceManager.GetString("About2Spanish", resourceCulture) 96 | End Get 97 | End Property 98 | 99 | ''' 100 | ''' Looks up a localized string similar to I want to.... 101 | ''' 102 | Friend ReadOnly Property ActionGroupBox() As String 103 | Get 104 | Return ResourceManager.GetString("ActionGroupBox", resourceCulture) 105 | End Get 106 | End Property 107 | 108 | ''' 109 | ''' Looks up a localized string similar to Quiero.... 110 | ''' 111 | Friend ReadOnly Property ActionGroupBoxSpanish() As String 112 | Get 113 | Return ResourceManager.GetString("ActionGroupBoxSpanish", resourceCulture) 114 | End Get 115 | End Property 116 | 117 | ''' 118 | ''' Looks up a localized string similar to Available RAM:. 119 | ''' 120 | Friend ReadOnly Property AvailableRAM() As String 121 | Get 122 | Return ResourceManager.GetString("AvailableRAM", resourceCulture) 123 | End Get 124 | End Property 125 | 126 | ''' 127 | ''' Looks up a localized string similar to RAM disponible:. 128 | ''' 129 | Friend ReadOnly Property AvailableRAMSpanish() As String 130 | Get 131 | Return ResourceManager.GetString("AvailableRAMSpanish", resourceCulture) 132 | End Get 133 | End Property 134 | 135 | ''' 136 | ''' Looks up a localized string similar to Browse File. 137 | ''' 138 | Friend ReadOnly Property BrowseFileButton() As String 139 | Get 140 | Return ResourceManager.GetString("BrowseFileButton", resourceCulture) 141 | End Get 142 | End Property 143 | 144 | ''' 145 | ''' Looks up a localized string similar to Buscar Archivo. 146 | ''' 147 | Friend ReadOnly Property BrowseFileButtonSpanish() As String 148 | Get 149 | Return ResourceManager.GetString("BrowseFileButtonSpanish", resourceCulture) 150 | End Get 151 | End Property 152 | 153 | ''' 154 | ''' Looks up a localized string similar to Browse Folder. 155 | ''' 156 | Friend ReadOnly Property BrowseFolderButton() As String 157 | Get 158 | Return ResourceManager.GetString("BrowseFolderButton", resourceCulture) 159 | End Get 160 | End Property 161 | 162 | ''' 163 | ''' Looks up a localized string similar to Buscar Carpeta. 164 | ''' 165 | Friend ReadOnly Property BrowseFolderButtonSpanish() As String 166 | Get 167 | Return ResourceManager.GetString("BrowseFolderButtonSpanish", resourceCulture) 168 | End Get 169 | End Property 170 | 171 | ''' 172 | ''' Looks up a localized string similar to Browse. 173 | ''' 174 | Friend ReadOnly Property BrowseOutputButton() As String 175 | Get 176 | Return ResourceManager.GetString("BrowseOutputButton", resourceCulture) 177 | End Get 178 | End Property 179 | 180 | ''' 181 | ''' Looks up a localized string similar to Buscar. 182 | ''' 183 | Friend ReadOnly Property BrowseOutputButtonSpanish() As String 184 | Get 185 | Return ResourceManager.GetString("BrowseOutputButtonSpanish", resourceCulture) 186 | End Get 187 | End Property 188 | 189 | ''' 190 | ''' Looks up a localized string similar to Clear Log. 191 | ''' 192 | Friend ReadOnly Property ClearLogButton() As String 193 | Get 194 | Return ResourceManager.GetString("ClearLogButton", resourceCulture) 195 | End Get 196 | End Property 197 | 198 | ''' 199 | ''' Looks up a localized string similar to Borrar Log. 200 | ''' 201 | Friend ReadOnly Property ClearLogButtonSpanish() As String 202 | Get 203 | Return ResourceManager.GetString("ClearLogButtonSpanish", resourceCulture) 204 | End Get 205 | End Property 206 | 207 | ''' 208 | ''' Looks up a localized string similar to cmix version to use:. 209 | ''' 210 | Friend ReadOnly Property cmixVersionToUseLabel() As String 211 | Get 212 | Return ResourceManager.GetString("cmixVersionToUseLabel", resourceCulture) 213 | End Get 214 | End Property 215 | 216 | ''' 217 | ''' Looks up a localized string similar to Versión de cmix a usar:. 218 | ''' 219 | Friend ReadOnly Property cmixVersionToUseLabelSpanish() As String 220 | Get 221 | Return ResourceManager.GetString("cmixVersionToUseLabelSpanish", resourceCulture) 222 | End Get 223 | End Property 224 | 225 | ''' 226 | ''' Looks up a localized string similar to Compressed files will be saved at the input folder. 227 | ''' 228 | Friend ReadOnly Property CompressFolderSelectedMessage() As String 229 | Get 230 | Return ResourceManager.GetString("CompressFolderSelectedMessage", resourceCulture) 231 | End Get 232 | End Property 233 | 234 | ''' 235 | ''' Looks up a localized string similar to Archivos comprimidos serán guardados en su carpeta original. 236 | ''' 237 | Friend ReadOnly Property CompressFolderSelectedMessageSpanish() As String 238 | Get 239 | Return ResourceManager.GetString("CompressFolderSelectedMessageSpanish", resourceCulture) 240 | End Get 241 | End Property 242 | 243 | ''' 244 | ''' Looks up a localized string similar to Step 1: Browse for a file or folder to compress:. 245 | ''' 246 | Friend ReadOnly Property CompressInputMessage() As String 247 | Get 248 | Return ResourceManager.GetString("CompressInputMessage", resourceCulture) 249 | End Get 250 | End Property 251 | 252 | ''' 253 | ''' Looks up a localized string similar to Paso 1: Busque un archivo o carpeta para comprimir:. 254 | ''' 255 | Friend ReadOnly Property CompressInputMessageSpanish() As String 256 | Get 257 | Return ResourceManager.GetString("CompressInputMessageSpanish", resourceCulture) 258 | End Get 259 | End Property 260 | 261 | ''' 262 | ''' Looks up a localized string similar to Step 2: Browse for a location to save the compressed file:. 263 | ''' 264 | Friend ReadOnly Property CompressOutputMessage() As String 265 | Get 266 | Return ResourceManager.GetString("CompressOutputMessage", resourceCulture) 267 | End Get 268 | End Property 269 | 270 | ''' 271 | ''' Looks up a localized string similar to Paso 2: Busque un lugar para guardar el archivo comprimido:. 272 | ''' 273 | Friend ReadOnly Property CompressOutputMessageSpanish() As String 274 | Get 275 | Return ResourceManager.GetString("CompressOutputMessageSpanish", resourceCulture) 276 | End Get 277 | End Property 278 | 279 | ''' 280 | ''' Looks up a localized string similar to Compress. 281 | ''' 282 | Friend ReadOnly Property CompressRButton() As String 283 | Get 284 | Return ResourceManager.GetString("CompressRButton", resourceCulture) 285 | End Get 286 | End Property 287 | 288 | ''' 289 | ''' Looks up a localized string similar to Comprimir. 290 | ''' 291 | Friend ReadOnly Property CompressRButtonSpanish() As String 292 | Get 293 | Return ResourceManager.GetString("CompressRButtonSpanish", resourceCulture) 294 | End Get 295 | End Property 296 | 297 | ''' 298 | ''' Looks up a localized string similar to Extracted files will be saved at the input folder. 299 | ''' 300 | Friend ReadOnly Property ExtractFolderSelectedMessage() As String 301 | Get 302 | Return ResourceManager.GetString("ExtractFolderSelectedMessage", resourceCulture) 303 | End Get 304 | End Property 305 | 306 | ''' 307 | ''' Looks up a localized string similar to Archivos descomprimidos serán guardados en su carpeta original. 308 | ''' 309 | Friend ReadOnly Property ExtractFolderSelectedMessageSpanish() As String 310 | Get 311 | Return ResourceManager.GetString("ExtractFolderSelectedMessageSpanish", resourceCulture) 312 | End Get 313 | End Property 314 | 315 | ''' 316 | ''' Looks up a localized string similar to Step 1: Browse for a compressed file to extract:. 317 | ''' 318 | Friend ReadOnly Property ExtractInputMessage() As String 319 | Get 320 | Return ResourceManager.GetString("ExtractInputMessage", resourceCulture) 321 | End Get 322 | End Property 323 | 324 | ''' 325 | ''' Looks up a localized string similar to Paso 1: Busque un archivo o carpeta para descomprimir:. 326 | ''' 327 | Friend ReadOnly Property ExtractInputMessageSpanish() As String 328 | Get 329 | Return ResourceManager.GetString("ExtractInputMessageSpanish", resourceCulture) 330 | End Get 331 | End Property 332 | 333 | ''' 334 | ''' Looks up a localized string similar to Step 2: Browse for a location to save the extracted file:. 335 | ''' 336 | Friend ReadOnly Property ExtractOutputMessage() As String 337 | Get 338 | Return ResourceManager.GetString("ExtractOutputMessage", resourceCulture) 339 | End Get 340 | End Property 341 | 342 | ''' 343 | ''' Looks up a localized string similar to Paso 2: Busque un lugar para guardar el archivo descomprimido:. 344 | ''' 345 | Friend ReadOnly Property ExtractOutputMessageSpanish() As String 346 | Get 347 | Return ResourceManager.GetString("ExtractOutputMessageSpanish", resourceCulture) 348 | End Get 349 | End Property 350 | 351 | ''' 352 | ''' Looks up a localized string similar to Extract. 353 | ''' 354 | Friend ReadOnly Property ExtractRButton() As String 355 | Get 356 | Return ResourceManager.GetString("ExtractRButton", resourceCulture) 357 | End Get 358 | End Property 359 | 360 | ''' 361 | ''' Looks up a localized string similar to Extraer. 362 | ''' 363 | Friend ReadOnly Property ExtractRButtonSpanish() As String 364 | Get 365 | Return ResourceManager.GetString("ExtractRButtonSpanish", resourceCulture) 366 | End Get 367 | End Property 368 | 369 | ''' 370 | ''' Looks up a localized string similar to Finished!. 371 | ''' 372 | Friend ReadOnly Property Finished() As String 373 | Get 374 | Return ResourceManager.GetString("Finished", resourceCulture) 375 | End Get 376 | End Property 377 | 378 | ''' 379 | ''' Looks up a localized string similar to ¡Finalizado!. 380 | ''' 381 | Friend ReadOnly Property FinishedSpanish() As String 382 | Get 383 | Return ResourceManager.GetString("FinishedSpanish", resourceCulture) 384 | End Get 385 | End Property 386 | 387 | ''' 388 | ''' Looks up a localized string similar to cmix Graphical User Interface. 389 | ''' 390 | Friend ReadOnly Property FormName() As String 391 | Get 392 | Return ResourceManager.GetString("FormName", resourceCulture) 393 | End Get 394 | End Property 395 | 396 | ''' 397 | ''' Looks up a localized string similar to Interfáz Gráfica para cmix. 398 | ''' 399 | Friend ReadOnly Property FormNameSpanish() As String 400 | Get 401 | Return ResourceManager.GetString("FormNameSpanish", resourceCulture) 402 | End Get 403 | End Property 404 | 405 | ''' 406 | ''' Looks up a localized string similar to The Log has been saved.. 407 | ''' 408 | Friend ReadOnly Property LogSaved() As String 409 | Get 410 | Return ResourceManager.GetString("LogSaved", resourceCulture) 411 | End Get 412 | End Property 413 | 414 | ''' 415 | ''' Looks up a localized string similar to El log ha sido guardado.. 416 | ''' 417 | Friend ReadOnly Property LogSavedSpanish() As String 418 | Get 419 | Return ResourceManager.GetString("LogSavedSpanish", resourceCulture) 420 | End Get 421 | End Property 422 | 423 | ''' 424 | ''' Looks up a localized string similar to Preprocessed files will be saved at the input folder. 425 | ''' 426 | Friend ReadOnly Property PreprocessFolderSelectedMessage() As String 427 | Get 428 | Return ResourceManager.GetString("PreprocessFolderSelectedMessage", resourceCulture) 429 | End Get 430 | End Property 431 | 432 | ''' 433 | ''' Looks up a localized string similar to Archivos preprocesados serán guardados en su carpeta original. 434 | ''' 435 | Friend ReadOnly Property PreprocessFolderSelectedMessageSpanish() As String 436 | Get 437 | Return ResourceManager.GetString("PreprocessFolderSelectedMessageSpanish", resourceCulture) 438 | End Get 439 | End Property 440 | 441 | ''' 442 | ''' Looks up a localized string similar to Step 1: Browse for a file or folder to preprocess:. 443 | ''' 444 | Friend ReadOnly Property PreprocessInputMessage() As String 445 | Get 446 | Return ResourceManager.GetString("PreprocessInputMessage", resourceCulture) 447 | End Get 448 | End Property 449 | 450 | ''' 451 | ''' Looks up a localized string similar to Paso 1: Busque un archivo o carpeta para preprocesar:. 452 | ''' 453 | Friend ReadOnly Property PreprocessInputMessageSpanish() As String 454 | Get 455 | Return ResourceManager.GetString("PreprocessInputMessageSpanish", resourceCulture) 456 | End Get 457 | End Property 458 | 459 | ''' 460 | ''' Looks up a localized string similar to Step 2: Browse for a location to save the preprocessed file:. 461 | ''' 462 | Friend ReadOnly Property PreprocessOutputMessage() As String 463 | Get 464 | Return ResourceManager.GetString("PreprocessOutputMessage", resourceCulture) 465 | End Get 466 | End Property 467 | 468 | ''' 469 | ''' Looks up a localized string similar to Paso 2: Busque un lugar para guardar el archivo preprocesado:. 470 | ''' 471 | Friend ReadOnly Property PreprocessOutputMessageSpanish() As String 472 | Get 473 | Return ResourceManager.GetString("PreprocessOutputMessageSpanish", resourceCulture) 474 | End Get 475 | End Property 476 | 477 | ''' 478 | ''' Looks up a localized string similar to Only Preprocessing. 479 | ''' 480 | Friend ReadOnly Property PreprocessRButton() As String 481 | Get 482 | Return ResourceManager.GetString("PreprocessRButton", resourceCulture) 483 | End Get 484 | End Property 485 | 486 | ''' 487 | ''' Looks up a localized string similar to Solo Preprocesar. 488 | ''' 489 | Friend ReadOnly Property PreprocessRButtonSpanish() As String 490 | Get 491 | Return ResourceManager.GetString("PreprocessRButtonSpanish", resourceCulture) 492 | End Get 493 | End Property 494 | 495 | ''' 496 | ''' Looks up a localized string similar to Save Log. 497 | ''' 498 | Friend ReadOnly Property SaveLogButton() As String 499 | Get 500 | Return ResourceManager.GetString("SaveLogButton", resourceCulture) 501 | End Get 502 | End Property 503 | 504 | ''' 505 | ''' Looks up a localized string similar to Guardar Log. 506 | ''' 507 | Friend ReadOnly Property SaveLogButtonSpanish() As String 508 | Get 509 | Return ResourceManager.GetString("SaveLogButtonSpanish", resourceCulture) 510 | End Get 511 | End Property 512 | 513 | ''' 514 | ''' Looks up a localized string similar to Show CMD. 515 | ''' 516 | Friend ReadOnly Property ShowCMD() As String 517 | Get 518 | Return ResourceManager.GetString("ShowCMD", resourceCulture) 519 | End Get 520 | End Property 521 | 522 | ''' 523 | ''' Looks up a localized string similar to Mostrar CMD. 524 | ''' 525 | Friend ReadOnly Property ShowCMDSpanish() As String 526 | Get 527 | Return ResourceManager.GetString("ShowCMDSpanish", resourceCulture) 528 | End Get 529 | End Property 530 | 531 | ''' 532 | ''' Looks up a localized string similar to Start. 533 | ''' 534 | Friend ReadOnly Property StartButton() As String 535 | Get 536 | Return ResourceManager.GetString("StartButton", resourceCulture) 537 | End Get 538 | End Property 539 | 540 | ''' 541 | ''' Looks up a localized string similar to Comenzar. 542 | ''' 543 | Friend ReadOnly Property StartButtonSpanish() As String 544 | Get 545 | Return ResourceManager.GetString("StartButtonSpanish", resourceCulture) 546 | End Get 547 | End Property 548 | 549 | ''' 550 | ''' Looks up a localized string similar to A task is currently running. Please wait for it to finish. 551 | ''' 552 | Friend ReadOnly Property TaskRunning() As String 553 | Get 554 | Return ResourceManager.GetString("TaskRunning", resourceCulture) 555 | End Get 556 | End Property 557 | 558 | ''' 559 | ''' Looks up a localized string similar to Una tarea se está ejecutando en estos momentos. Por favor, espere a que termine.. 560 | ''' 561 | Friend ReadOnly Property TaskRunningSpanish() As String 562 | Get 563 | Return ResourceManager.GetString("TaskRunningSpanish", resourceCulture) 564 | End Get 565 | End Property 566 | 567 | ''' 568 | ''' Looks up a localized string similar to Total RAM:. 569 | ''' 570 | Friend ReadOnly Property TotalRAM() As String 571 | Get 572 | Return ResourceManager.GetString("TotalRAM", resourceCulture) 573 | End Get 574 | End Property 575 | 576 | ''' 577 | ''' Looks up a localized string similar to RAM total:. 578 | ''' 579 | Friend ReadOnly Property TotalRAMSpanish() As String 580 | Get 581 | Return ResourceManager.GetString("TotalRAMSpanish", resourceCulture) 582 | End Get 583 | End Property 584 | 585 | ''' 586 | ''' Looks up a localized string similar to Use the English dictionary. 587 | ''' 588 | Friend ReadOnly Property UseDict() As String 589 | Get 590 | Return ResourceManager.GetString("UseDict", resourceCulture) 591 | End Get 592 | End Property 593 | 594 | ''' 595 | ''' Looks up a localized string similar to Usar el diccionario Inglés. 596 | ''' 597 | Friend ReadOnly Property UseDictSpanish() As String 598 | Get 599 | Return ResourceManager.GetString("UseDictSpanish", resourceCulture) 600 | End Get 601 | End Property 602 | 603 | ''' 604 | ''' Looks up a localized string similar to Used RAM:. 605 | ''' 606 | Friend ReadOnly Property UsedRAM() As String 607 | Get 608 | Return ResourceManager.GetString("UsedRAM", resourceCulture) 609 | End Get 610 | End Property 611 | 612 | ''' 613 | ''' Looks up a localized string similar to RAM usada:. 614 | ''' 615 | Friend ReadOnly Property UsedRAMSpanish() As String 616 | Get 617 | Return ResourceManager.GetString("UsedRAMSpanish", resourceCulture) 618 | End Get 619 | End Property 620 | End Module 621 | End Namespace 622 | -------------------------------------------------------------------------------- /cmix_gui/My Project/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | GUI software by: Moisés Cardona 122 | 123 | 124 | programa GUI por: Moisés Cardona 125 | 126 | 127 | cmix by: Byron Knoll 128 | 129 | 130 | cmix por: Byron Knoll 131 | 132 | 133 | I want to... 134 | 135 | 136 | Quiero... 137 | 138 | 139 | Browse File 140 | 141 | 142 | Buscar Archivo 143 | 144 | 145 | Browse Folder 146 | 147 | 148 | Buscar Carpeta 149 | 150 | 151 | Browse 152 | 153 | 154 | Buscar 155 | 156 | 157 | cmix version to use: 158 | 159 | 160 | Versión de cmix a usar: 161 | 162 | 163 | Compressed files will be saved at the input folder 164 | 165 | 166 | Archivos comprimidos serán guardados en su carpeta original 167 | 168 | 169 | Step 1: Browse for a file or folder to compress: 170 | 171 | 172 | Paso 1: Busque un archivo o carpeta para comprimir: 173 | 174 | 175 | Step 2: Browse for a location to save the compressed file: 176 | 177 | 178 | Paso 2: Busque un lugar para guardar el archivo comprimido: 179 | 180 | 181 | Compress 182 | 183 | 184 | Comprimir 185 | 186 | 187 | Extracted files will be saved at the input folder 188 | 189 | 190 | Archivos descomprimidos serán guardados en su carpeta original 191 | 192 | 193 | Step 1: Browse for a compressed file to extract: 194 | 195 | 196 | Paso 1: Busque un archivo o carpeta para descomprimir: 197 | 198 | 199 | Step 2: Browse for a location to save the extracted file: 200 | 201 | 202 | Paso 2: Busque un lugar para guardar el archivo descomprimido: 203 | 204 | 205 | Extract 206 | 207 | 208 | Extraer 209 | 210 | 211 | Finished! 212 | 213 | 214 | ¡Finalizado! 215 | 216 | 217 | cmix Graphical User Interface 218 | 219 | 220 | Interfáz Gráfica para cmix 221 | 222 | 223 | Preprocessed files will be saved at the input folder 224 | 225 | 226 | Archivos preprocesados serán guardados en su carpeta original 227 | 228 | 229 | Step 1: Browse for a file or folder to preprocess: 230 | 231 | 232 | Paso 1: Busque un archivo o carpeta para preprocesar: 233 | 234 | 235 | Step 2: Browse for a location to save the preprocessed file: 236 | 237 | 238 | Paso 2: Busque un lugar para guardar el archivo preprocesado: 239 | 240 | 241 | Only Preprocessing 242 | 243 | 244 | Solo Preprocesar 245 | 246 | 247 | Start 248 | 249 | 250 | Comenzar 251 | 252 | 253 | Use the English dictionary 254 | 255 | 256 | Usar el diccionario Inglés 257 | 258 | 259 | The Log has been saved. 260 | 261 | 262 | El log ha sido guardado. 263 | 264 | 265 | Save Log 266 | 267 | 268 | Guardar Log 269 | 270 | 271 | A task is currently running. Please wait for it to finish 272 | 273 | 274 | Una tarea se está ejecutando en estos momentos. Por favor, espere a que termine. 275 | 276 | 277 | Available RAM: 278 | 279 | 280 | RAM disponible: 281 | 282 | 283 | Clear Log 284 | 285 | 286 | Borrar Log 287 | 288 | 289 | Total RAM: 290 | 291 | 292 | RAM total: 293 | 294 | 295 | Used RAM: 296 | 297 | 298 | RAM usada: 299 | 300 | 301 | Show CMD 302 | 303 | 304 | Mostrar CMD 305 | 306 | -------------------------------------------------------------------------------- /cmix_gui/My Project/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | _ 20 | Partial Friend NotInheritable Class MySettings 21 | Inherits Global.System.Configuration.ApplicationSettingsBase 22 | 23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) 24 | 25 | #Region "My.Settings Auto-Save Functionality" 26 | #If _MyType = "WindowsForms" Then 27 | Private Shared addedHandler As Boolean 28 | 29 | Private Shared addedHandlerLockObject As New Object 30 | 31 | _ 32 | Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) 33 | If My.Application.SaveMySettingsOnExit Then 34 | My.Settings.Save() 35 | End If 36 | End Sub 37 | #End If 38 | #End Region 39 | 40 | Public Shared ReadOnly Property [Default]() As MySettings 41 | Get 42 | 43 | #If _MyType = "WindowsForms" Then 44 | If Not addedHandler Then 45 | SyncLock addedHandlerLockObject 46 | If Not addedHandler Then 47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings 48 | addedHandler = True 49 | End If 50 | End SyncLock 51 | End If 52 | #End If 53 | Return defaultInstance 54 | End Get 55 | End Property 56 | 57 | _ 60 | Public Property Compress() As Boolean 61 | Get 62 | Return CType(Me("Compress"),Boolean) 63 | End Get 64 | Set 65 | Me("Compress") = value 66 | End Set 67 | End Property 68 | 69 | _ 72 | Public Property Extract() As Boolean 73 | Get 74 | Return CType(Me("Extract"),Boolean) 75 | End Get 76 | Set 77 | Me("Extract") = value 78 | End Set 79 | End Property 80 | 81 | _ 84 | Public Property Version() As String 85 | Get 86 | Return CType(Me("Version"),String) 87 | End Get 88 | Set 89 | Me("Version") = value 90 | End Set 91 | End Property 92 | 93 | _ 96 | Public Property UseEngDict() As Boolean 97 | Get 98 | Return CType(Me("UseEngDict"),Boolean) 99 | End Get 100 | Set 101 | Me("UseEngDict") = value 102 | End Set 103 | End Property 104 | 105 | _ 108 | Public Property Preprocess() As Boolean 109 | Get 110 | Return CType(Me("Preprocess"),Boolean) 111 | End Get 112 | Set 113 | Me("Preprocess") = value 114 | End Set 115 | End Property 116 | 117 | _ 120 | Public Property EnglishLanguage() As Boolean 121 | Get 122 | Return CType(Me("EnglishLanguage"),Boolean) 123 | End Get 124 | Set 125 | Me("EnglishLanguage") = value 126 | End Set 127 | End Property 128 | 129 | _ 132 | Public Property SpanishLanguage() As Boolean 133 | Get 134 | Return CType(Me("SpanishLanguage"),Boolean) 135 | End Get 136 | Set 137 | Me("SpanishLanguage") = value 138 | End Set 139 | End Property 140 | 141 | _ 144 | Public Property ShowCMD() As Boolean 145 | Get 146 | Return CType(Me("ShowCMD"),Boolean) 147 | End Get 148 | Set 149 | Me("ShowCMD") = value 150 | End Set 151 | End Property 152 | End Class 153 | End Namespace 154 | 155 | Namespace My 156 | 157 | _ 160 | Friend Module MySettingsProperty 161 | 162 | _ 163 | Friend ReadOnly Property Settings() As Global.cmix_gui.My.MySettings 164 | Get 165 | Return Global.cmix_gui.My.MySettings.Default 166 | End Get 167 | End Property 168 | End Module 169 | End Namespace 170 | -------------------------------------------------------------------------------- /cmix_gui/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | True 7 | 8 | 9 | False 10 | 11 | 12 | cmix_v19 13 | 14 | 15 | False 16 | 17 | 18 | False 19 | 20 | 21 | True 22 | 23 | 24 | False 25 | 26 | 27 | False 28 | 29 | 30 | -------------------------------------------------------------------------------- /cmix_gui/My Project/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 52 | 59 | 60 | 61 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /cmix_gui/Translations.vb: -------------------------------------------------------------------------------- 1 | Public Class Translations 2 | 'variables that holds localization messages: 3 | Public Shared AboutString1 As String = My.Resources.About1 4 | Public Shared AboutString2 As String = My.Resources.About2 5 | Public Shared ActionGroupBoxString As String = My.Resources.ActionGroupBox 6 | Public Shared BrowseFileButton As String = My.Resources.BrowseFileButton 7 | Public Shared BrowseFolderButton As String = My.Resources.BrowseFolderButton 8 | Public Shared BrowseOutputButton As String = My.Resources.BrowseOutputButton 9 | Public Shared ClearLogButtonString As String = My.Resources.ClearLogButton 10 | Public Shared cmixVersionToUseLabelString As String = My.Resources.cmixVersionToUseLabel 11 | Public Shared CompressFolderSelectedMessage As String = My.Resources.CompressFolderSelectedMessage 12 | Public Shared CompressInputMessage As String = My.Resources.CompressInputMessage 13 | Public Shared CompressOutputMessage As String = My.Resources.CompressOutputMessage 14 | Public Shared CompressRButtonString As String = My.Resources.CompressRButton 15 | Public Shared ExtractFolderSelectedMessage As String = My.Resources.ExtractFolderSelectedMessage 16 | Public Shared ExtractInputMessage As String = My.Resources.ExtractInputMessage 17 | Public Shared ExtractOutputMessage As String = My.Resources.ExtractOutputMessage 18 | Public Shared ExtractRButtonString As String = My.Resources.ExtractRButton 19 | Public Shared LogSaved As String = My.Resources.LogSaved 20 | Public Shared PreprocessFolderSelectedMessage As String = My.Resources.PreprocessFolderSelectedMessage 21 | Public Shared PreprocessInputMessage As String = My.Resources.PreprocessInputMessage 22 | Public Shared PreprocessOutputMessage As String = My.Resources.PreprocessOutputMessage 23 | Public Shared PreprocessRButtonString As String = My.Resources.PreprocessRButton 24 | Public Shared SaveLogButtonString As String = My.Resources.SaveLogButton 25 | Public Shared StartButtonString As String = My.Resources.StartButton 26 | Public Shared UseDictString As String = My.Resources.UseDict 27 | Public Shared Finished As String = My.Resources.Finished 28 | Public Shared FormName As String = My.Resources.FormName 29 | Public Shared TaskRunningString As String = My.Resources.TaskRunning 30 | Public Shared ShowCMDString As String = My.Resources.ShowCMD 31 | Public Shared AvailableRAMString As String = My.Resources.AvailableRAM 32 | Public Shared UsedRAMString As String = My.Resources.UsedRAM 33 | Public Shared TotalRAMString As String = My.Resources.TotalRAM 34 | Private Shared Sub UpdateElementsInForm() 35 | Form1.GetInputNameAndUpdateForm(Form1.InputFileTxt.Text) 36 | If Form1.CompressRButton.Checked Then 37 | Form1.InputFileMessage.Text = CompressInputMessage 38 | ElseIf Form1.PreprocessRButton.Checked Then 39 | Form1.InputFileMessage.Text = PreprocessInputMessage 40 | ElseIf Form1.ExtractRButton.Checked Then 41 | Form1.InputFileMessage.Text = ExtractInputMessage 42 | End If 43 | Form1.AboutLabel1.Text = AboutString1 44 | Form1.AboutLabel2.Text = AboutString2 45 | Form1.ActionGroupBox.Text = ActionGroupBoxString 46 | Form1.BrowseButton1.Text = BrowseFileButton 47 | Form1.BrowseFolder.Text = BrowseFolderButton 48 | Form1.BrowseButton2.Text = BrowseOutputButton 49 | Form1.ClearLogButton.Text = ClearLogButtonString 50 | Form1.cmixVersionToUseLabel.Text = cmixVersionToUseLabelString 51 | Form1.CompressRButton.Text = CompressRButtonString 52 | Form1.PreprocessRButton.Text = PreprocessRButtonString 53 | Form1.ExtractRButton.Text = ExtractRButtonString 54 | Form1.SaveLogButton.Text = SaveLogButtonString 55 | Form1.StartButton.Text = StartButtonString 56 | Form1.UseEngDictCheckbox.Text = UseDictString 57 | Form1.ShowCMD.Text = ShowCMDString 58 | Form1.Text = FormName 59 | End Sub 60 | Public Shared Sub UpdateMessageStrings(Language As String) 61 | If Language = "English" Then 62 | AboutString1 = My.Resources.About1 63 | AboutString2 = My.Resources.About2 64 | ActionGroupBoxString = My.Resources.ActionGroupBox 65 | BrowseFileButton = My.Resources.BrowseFileButton 66 | BrowseFolderButton = My.Resources.BrowseFolderButton 67 | BrowseOutputButton = My.Resources.BrowseOutputButton 68 | ClearLogButtonString = My.Resources.ClearLogButton 69 | cmixVersionToUseLabelString = My.Resources.cmixVersionToUseLabel 70 | CompressFolderSelectedMessage = My.Resources.CompressFolderSelectedMessage 71 | CompressInputMessage = My.Resources.CompressInputMessage 72 | CompressOutputMessage = My.Resources.CompressOutputMessage 73 | CompressRButtonString = My.Resources.CompressRButton 74 | ExtractFolderSelectedMessage = My.Resources.ExtractFolderSelectedMessage 75 | ExtractInputMessage = My.Resources.ExtractInputMessage 76 | ExtractOutputMessage = My.Resources.ExtractOutputMessage 77 | ExtractRButtonString = My.Resources.ExtractRButton 78 | LogSaved = My.Resources.LogSaved 79 | PreprocessFolderSelectedMessage = My.Resources.PreprocessFolderSelectedMessage 80 | PreprocessInputMessage = My.Resources.PreprocessInputMessage 81 | PreprocessOutputMessage = My.Resources.PreprocessOutputMessage 82 | PreprocessRButtonString = My.Resources.PreprocessRButton 83 | SaveLogButtonString = My.Resources.SaveLogButton 84 | StartButtonString = My.Resources.StartButton 85 | TaskRunningString = My.Resources.TaskRunning 86 | UseDictString = My.Resources.UseDict 87 | Finished = My.Resources.Finished 88 | FormName = My.Resources.FormName 89 | AvailableRAMString = My.Resources.AvailableRAM 90 | UsedRAMString = My.Resources.UsedRAM 91 | TotalRAMString = My.Resources.TotalRAM 92 | ShowCMDString = My.Resources.ShowCMD 93 | Else 94 | AboutString1 = My.Resources.About1Spanish 95 | AboutString2 = My.Resources.About2Spanish 96 | ActionGroupBoxString = My.Resources.ActionGroupBoxSpanish 97 | BrowseFileButton = My.Resources.BrowseFileButtonSpanish 98 | BrowseFolderButton = My.Resources.BrowseFolderButtonSpanish 99 | BrowseOutputButton = My.Resources.BrowseOutputButtonSpanish 100 | ClearLogButtonString = My.Resources.ClearLogButtonSpanish 101 | cmixVersionToUseLabelString = My.Resources.cmixVersionToUseLabelSpanish 102 | CompressFolderSelectedMessage = My.Resources.CompressFolderSelectedMessageSpanish 103 | CompressInputMessage = My.Resources.CompressInputMessageSpanish 104 | CompressOutputMessage = My.Resources.CompressOutputMessageSpanish 105 | CompressRButtonString = My.Resources.CompressRButtonSpanish 106 | ExtractFolderSelectedMessage = My.Resources.ExtractFolderSelectedMessageSpanish 107 | ExtractInputMessage = My.Resources.ExtractInputMessageSpanish 108 | ExtractOutputMessage = My.Resources.ExtractOutputMessageSpanish 109 | ExtractRButtonString = My.Resources.ExtractRButtonSpanish 110 | LogSaved = My.Resources.LogSavedSpanish 111 | PreprocessFolderSelectedMessage = My.Resources.PreprocessFolderSelectedMessageSpanish 112 | PreprocessInputMessage = My.Resources.PreprocessInputMessageSpanish 113 | PreprocessOutputMessage = My.Resources.PreprocessOutputMessageSpanish 114 | PreprocessRButtonString = My.Resources.PreprocessRButtonSpanish 115 | SaveLogButtonString = My.Resources.SaveLogButtonSpanish 116 | StartButtonString = My.Resources.StartButtonSpanish 117 | TaskRunningString = My.Resources.TaskRunningSpanish 118 | UseDictString = My.Resources.UseDictSpanish 119 | Finished = My.Resources.FinishedSpanish 120 | FormName = My.Resources.FormNameSpanish 121 | AvailableRAMString = My.Resources.AvailableRAMSpanish 122 | UsedRAMString = My.Resources.UsedRAMSpanish 123 | TotalRAMString = My.Resources.TotalRAMSpanish 124 | ShowCMDString = My.Resources.ShowCMDSpanish 125 | End If 126 | UpdateElementsInForm() 127 | End Sub 128 | End Class 129 | -------------------------------------------------------------------------------- /cmix_gui/cmix_gui.vbproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {F9CF22F1-CB14-41C1-9A0C-519D8705B685} 8 | WinExe 9 | cmix_gui.My.MyApplication 10 | cmix_gui 11 | cmix_gui 12 | 512 13 | WindowsForms 14 | v4.8 15 | true 16 | 17 | 18 | 19 | AnyCPU 20 | true 21 | full 22 | true 23 | true 24 | bin\Debug\ 25 | 26 | 27 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 28 | false 29 | 30 | 31 | AnyCPU 32 | pdbonly 33 | false 34 | true 35 | true 36 | bin\Release\ 37 | 38 | 39 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 40 | false 41 | 42 | 43 | On 44 | 45 | 46 | Binary 47 | 48 | 49 | Off 50 | 51 | 52 | On 53 | 54 | 55 | My Project\app.manifest 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | Form 85 | 86 | 87 | Form1.vb 88 | Form 89 | 90 | 91 | 92 | True 93 | Application.myapp 94 | True 95 | 96 | 97 | True 98 | True 99 | Resources.resx 100 | 101 | 102 | True 103 | Settings.settings 104 | True 105 | 106 | 107 | 108 | 109 | 110 | Form1.vb 111 | 112 | 113 | VbMyResourcesResXFileCodeGenerator 114 | Resources.Designer.vb 115 | My.Resources 116 | Designer 117 | 118 | 119 | 120 | 121 | 122 | MyApplicationCodeGenerator 123 | Application.Designer.vb 124 | 125 | 126 | SettingsSingleFileGenerator 127 | My 128 | Settings.Designer.vb 129 | 130 | 131 | 132 | 133 | --------------------------------------------------------------------------------