123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #include <stdlib.h>
- #include <dir.h>
- #pragma hdrstop
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- #include "Main.h"
- TMainForm *MainForm;
- //---------------------------------------------------------------------------
- #include "About.h"
- #include "Help.h"
- # define PAGE_CHUNKS 1
- # define PAGE_REPORT 2
- # define PAGE_OPTIONS 3
- # define PAGE_ABOUT 4
- # define PAGE_HELP 5
- /* ************************************************************************** */
- /* * * */
- /* * MngDump is based on Gerard Juyn's MngTree * */
- /* * * */
- /* * COPYRIGHT NOTICE: * */
- /* * * */
- /* * Copyright (c) 2000 Andy Protano * */
- /* * Gerard Juyn ([email protected]) * */
- /* * [You may insert additional notices after this sentence if you modify * */
- /* * this source] * */
- /* * * */
- /* * For the purposes of this copyright and license, "Contributing Authors" * */
- /* * is defined as the following set of individuals: * */
- /* * * */
- /* * Gerard Juyn ([email protected]) * */
- /* * Andy Protano ([email protected]) * */
- /* * * */
- /* * This program is supplied "AS IS". The Contributing Authors * */
- /* * disclaim all warranties, expressed or implied, including, without * */
- /* * limitation, the warranties of merchantability and of fitness for any * */
- /* * purpose. The Contributing Authors assume no liability for direct, * */
- /* * indirect, incidental, special, exemplary, or consequential damages, * */
- /* * which may result from the use of the MNG Library, even if advised of * */
- /* * the possibility of such damage. * */
- /* * * */
- /* * Permission is hereby granted to use, copy, modify, and distribute this * */
- /* * source code, or portions hereof, for any purpose, without fee, subject * */
- /* * to the following restrictions: * */
- /* * * */
- /* * 1. The origin of this source code must not be misrepresented; * */
- /* * you must not claim that you wrote the original software. * */
- /* * * */
- /* * 2. Altered versions must be plainly marked as such and must not be * */
- /* * misrepresented as being the original source. * */
- /* * * */
- /* * 3. This Copyright notice may not be removed or altered from any source * */
- /* * or altered source distribution. * */
- /* * * */
- /* * The Contributing Authors specifically permit, without fee, and * */
- /* * encourage the use of this source code as a component to supporting * */
- /* * the MNG and JNG file format in commercial products. If you use this * */
- /* * source code in a product, acknowledgment would be highly appreciated. * */
- /* * * */
- /* ************************************************************************** */
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- __fastcall TMainForm::TMainForm(TComponent* Owner)
- : TForm(Owner)
- {
- }
- //---------------------------------------------------------------------------
- __fastcall TMainForm::~TMainForm( void )
- {
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::OnMinMax(TMessage& Msg)
- {
- ((POINT far *)Msg.LParam)[3].x = 500;
- ((POINT far *)Msg.LParam)[3].y = 450;
- TForm::Dispatch(&Msg);
- }
- //---------------------------------------------------------------------------
- // MessageBox Methods
- // ----------------------------------------------------------------------
- int __fastcall TMainForm::MessageBox( String &as, UINT flags )
- {
- return ::MessageBox( Handle, as.c_str(), Application->Title.c_str(), flags );
- }
- // ----------------------------------------------------------------------
- void __fastcall TMainForm::MsgBoxOk( String as )
- {
- (void)MessageBox( as, MB_ICONINFORMATION );
- }
- //-------------------------------------------------------------------------
- int __fastcall TMainForm::MsgBoxYN( String as )
- {
- return MessageBox( as, MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON1 );
- }
- //-------------------------------------------------------------------------
- int __fastcall TMainForm::MsgBoxYNC( String as )
- {
- return MessageBox( as, MB_YESNOCANCEL | MB_ICONQUESTION );
- }
- //-------------------------------------------------------------------------
- void __fastcall TMainForm::MsgBoxStop( String as )
- {
- (void)MessageBox( as, MB_ICONSTOP );
- }
- //-------------------------------------------------------------------------
- void __fastcall TMainForm::MsgBoxInfo( String as )
- {
- (void)MessageBox( as, MB_OK | MB_ICONINFORMATION );
- }
- //-------------------------------------------------------------------------
- void __fastcall TMainForm::MsgBoxWarn( String as )
- {
- (void)MessageBox( as, MB_OK | MB_ICONWARNING );
- }
- //-------------------------------------------------------------------------
- void __fastcall TMainForm::FormCreate(TObject *Sender)
- {
- // For when the application name changes - coz i'll forget !
- asAppName = Application->Title;
- // And while we've got it set the caption
- Caption = Application->Title;
- // Load About Screen
- LabelAbout->Caption = _szAbout;
- // Load Help Screen
- LabelHelp->Caption = _szHelp;
- fd = NULL;
- strList = new TStringList();
- asTab = " ";// default tab size 2
- RadioGroupTabSize->ItemIndex = 1; // range is zero based
- // Start with the help pane
- PageControl1->ActivePage = tsHelp;
- mnuWordWrap->Checked = false;
- // This call will TOGGLE and set word wrap for all the applicables
- // editors and enable/disable the Horz scroll bar.
- mnuWordWrapClick( this ); // So start with false to get to true;
- // Clear things from design time settings
- StaticTextStatus->Caption = "";
- //strList->Clear(); constructor dodid that
- pnlChunks->Caption = "";
- ListBoxChunks->Clear();
- RichEditChunks->Clear();
- RichEditReport->Clear();
- ProgressBar1->Min = 0;
- ProgressBar1->Position = 0;
- SetChunkCount( 0 );
- // Set default states for switches
- cbPaletteEntries->Checked = false;
- cbRGBOrder->Checked = true;
- cbRawData->Checked = true;
- cbComments->Checked = true;
- cbMacroIdentifier->Checked = true;
- cbBool->Checked = true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::FormDestroy(TObject *Sender)
- {
- delete strList;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuExitClick(TObject *Sender)
- {
- Close();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuFileOpenClick(TObject *Sender)
- {
- if( !OpenDialog1->Execute() )
- return;
- Application->ProcessMessages(); // Refresh the screen
- LoadFile();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuReloadClick(TObject *Sender)
- {
- // Only reload - if we have something to reload
- if( OpenDialog1->FileName.Length() )
- LoadFile();
- else
- MsgBoxStop( "Nothing to reload yet !" );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuUndoClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count ) // Do we have something in there ?
- RichEditReport->Undo();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuCutClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count ) // Do we have something in there ?
- RichEditReport->CutToClipboard();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuCopyClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count ) // Do we have something in there ?
- RichEditReport->CopyToClipboard();
- }
- //-------------------------------------------------------------------------
- void __fastcall TMainForm::sbtnCopyChunkClick(TObject *Sender)
- {
- if( RichEditChunks->Lines->Count ) // Do we have something in there ?
- {
- // Copy chunk data from Chunks pane to clipboard
- RichEditChunks->SelectAll();
- RichEditChunks->CopyToClipboard();
- RichEditChunks->SelLength = 0;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuPasteClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count ) // Do we have something in there ?
- RichEditReport->PasteFromClipboard();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuSelectAllClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count ) // Do we have something in there ?
- RichEditReport->SelectAll();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuWordWrapClick(TObject *Sender)
- {
- bool bWrap;
- mnuWordWrap->Checked = !mnuWordWrap->Checked;
- bWrap = mnuWordWrap->Checked;
- RichEditChunks->WordWrap = bWrap;
- RichEditReport->WordWrap = bWrap;
- if( bWrap ) { // if Word wrap on then no need for horizontal scrollbar
- RichEditChunks->ScrollBars = ssVertical;
- RichEditReport->ScrollBars = ssVertical;
- } else { // Horizontal scrollbar required (auto)
- RichEditChunks->ScrollBars = ssBoth;
- RichEditReport->ScrollBars = ssBoth;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuSetFontClick(TObject *Sender)
- {
- if( FontDialog1->Execute() )
- {
- RichEditChunks->Font = FontDialog1->Font;
- RichEditReport->Font = FontDialog1->Font;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::FontDialog1Apply(TObject *Sender, HWND Wnd)
- {
- RichEditChunks->Font = FontDialog1->Font;
- RichEditReport->Font = FontDialog1->Font;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuFindClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count == 0 )
- {
- MsgBoxStop( "Find what ?.");
- return;
- }
- FindDialog->Execute();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::FindDialogFind(TObject *Sender)
- {
- TSearchTypes st;
- TFindDialog *fd;
- int newpos;
- if( RichEditReport->Lines->Count == 0 )
- {
- MsgBoxStop( "Find what ?.");
- return;
- }
- fd = dynamic_cast<TFindDialog *>( Sender );
- if( fd->Options.Contains( frMatchCase ) )
- st << stMatchCase;
- if( fd->Options.Contains( frWholeWord ) )
- st << stWholeWord;
- if( RichEditReport->SelLength )
- RichEditReport->SelStart += 1;
- newpos = RichEditReport->FindText( fd->FindText,
- RichEditReport->SelStart, RichEditReport->Text.Length(), st );
- if( newpos != -1 ) {
- RichEditReport->SelStart = newpos;
- RichEditReport->SelLength = fd->FindText.Length();
- } else {
- MsgBoxInfo( "End of document reached." );
- RichEditReport->SelStart = 0;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuFindNextClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count == 0 )
- {
- MsgBoxStop( "Find what ?.");
- return;
- }
- FindDialogFind( FindDialog );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuPrintClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count == 0 )
- {
- MsgBoxStop( "I can't find anything to print !.");
- return;
- }
- RichEditReport->Print( ExtractFileName( OpenDialog1->FileName ) );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuPrintSetupClick(TObject *Sender)
- {
- PrinterSetupDialog->Execute();
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::mnuSaveClick(TObject *Sender)
- {
- if( RichEditReport->Lines->Count == 0 )
- {
- MsgBoxStop( "I can't find anything to save !.");
- return;
- }
- // Grab the graphic's filename and change to "txt" extension
- {
- char szFile[ MAXFILE ];
- char szExt[ MAXEXT ];
- char szDest[ MAXPATH ];
- String as;
- fnsplit( OpenDialog1->FileName.c_str(), NULL, NULL, szFile, szExt );
- memset( szDest, 0, MAXPATH );
- strcat( szDest, szFile );
- strcat( szDest, "\." );
- strcat( szDest, "txt" );
- as = szDest;
- // Initially create a text file of the same name as the graphic
- // but with "txt" extension
- SaveDialog1->FileName = as;
- }
- if( !SaveDialog1->Execute() )
- return; // Given up hey ?
- RichEditReport->Lines->SaveToFile( SaveDialog1->FileName );
- }
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::LoadFile( void )
- {
- int bStatus;
- // Can we open the file ?
- if( (fd = fopen( OpenDialog1->FileName.c_str(), "rb") ) == NULL )
- {
- MsgBoxStop( "Cannot open input file\n\n" + OpenDialog1->FileName );
- return;
- }
- pnlChunks->Caption = "";
- strList->Clear();
- ListBoxChunks->Clear();
- RichEditChunks->Clear();
- RichEditReport->Clear();
- ProgressBar1->Min = 0;
- ProgressBar1->Position = 0;
- SetChunkCount( 0 );
- RichEditReport->Lines->Add( "" );
- RichEditReport->Lines->Add( "Chunk contents of file :" );
- RichEditReport->Lines->Add( OpenDialog1->FileName );
- RichEditReport->Lines->Add( "" );
- // Make report pane visible - prove we are working and not locked up
- PageControl1->ActivePage = tsReport;
- try {
- StaticTextStatus->Caption = "Working ... please wait";
- StaticTextStatus->Update();
- bStatus = DumpTree(); // true indicates success
- }
- __finally {
- ProgressBar1->Position = 0;
- StaticTextStatus->Caption = "Ok";
- fclose( fd );
- fd = NULL;
- }
- if( !bStatus ) // We have an error
- {
- pnlChunks->Caption = "";
- strList->Clear();
- ListBoxChunks->Clear();
- RichEditChunks->Clear();
- RichEditReport->Lines->Add("");
- RichEditReport->Lines->Add("An error occurred while reading the file.");
- } else { // Read file and chunks without any problems
- // Set Report Panels caption
- pnlChunks->Caption = "Chunk 1 of " + String( ListBoxChunks->Items->Count );
- // Set Listbox to first item
- ListBoxChunks->ItemIndex = 0;
- // Put gleeful message in report pane
- RichEditChunks->Lines->Add( "" );
- RichEditChunks->Lines->Add(
- "No error's found when reading file ... " );
- RichEditChunks->Lines->Add(
- "Click the list box to display the data for each chunk.");
- // Place cursor at top of editor
- RichEditChunks->SelStart = 0;
- RichEditChunks->SelLength = 0;
- // Place cursor at top of editor
- RichEditReport->SelStart = 0;
- RichEditReport->SelLength = 0;
- // Lock richedits - so an immediate undo does not make data vanish !
- RichEditReport->Modified = false;
- // @ap@ Borland should fix this ! (it don't work)
- }
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::DumpTree( void )
- {
- mng_handle hMNG;
- // let's initialize the library
- hMNG = mng_initialize( (mng_ptr)this, Alloc, Free, NULL );
- if( !hMNG ) // did that work out ?
- {
- MNGError( hMNG, "Cannot initialize libmng." );
- mng_cleanup( &hMNG ); // Always cleanup the library
- MsgBoxStop( "Bye!" );
- Application->Terminate(); // Exit now
- }
- // setup callbacks
- if( (mng_setcb_openstream ( hMNG, OpenStream ) != 0) ||
- (mng_setcb_closestream ( hMNG, CloseStream ) != 0) ||
- (mng_setcb_processheader( hMNG,ProcessHeader ) != 0) ||
- (mng_setcb_readdata ( hMNG, FileReadData ) != 0)
- )
- {
- MNGError( hMNG, "Cannot set callbacks for libmng.");
- mng_cleanup( &hMNG ); // Always cleanup the library
- MsgBoxStop( "Bye!" );
- Application->Terminate(); // Exit now
- }
- else
- {
- // read the file into memory
- if( mng_read( hMNG ) != 0 )
- {
- // Because we read the whole file in first,
- // here is where bad input files first choke !
- MNGError( hMNG, "Cannot read the file." );
- mng_cleanup( &hMNG ); // Always cleanup the library
- return false;
- }
- else
- {
- // run through the chunk list
- if( mng_iterate_chunks( hMNG, 0, IterateChunks ) != 0 )
- {
- MNGError( hMNG, "Error Getting Chunk info!" );
- mng_cleanup( &hMNG ); // Always cleanup the library
- return false; // Errors may occur with bad chunk data
- }
- }
- }
- mng_cleanup( &hMNG ); // Always cleanup the library
- return true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::MNGError( mng_handle hMNG, String SHMsg )
- {
- // get extended info
- mng_uint32 iErrorcode;
- mng_uint8 iSeverity;
- mng_chunkid iChunkname;
- mng_uint32 iChunkseq;
- mng_int32 iExtra1;
- mng_int32 iExtra2;
- mng_pchar zErrortext;
- char szFormatStr[ 256 ];
- iErrorcode = mng_getlasterror( hMNG, &iSeverity, &iChunkname,
- &iChunkseq, &iExtra1, &iExtra2,
- &zErrortext);
- wsprintf( szFormatStr,
- "Error = %d; Severity = %d; Chunknr = %d; Extra1 = %d",
- (int)iErrorcode, (int)iSeverity, (int)iChunkseq, (int)iExtra1
- );
- MsgBoxStop( SHMsg + "\n\n" + String( zErrortext ) + "\n\n" + String( szFormatStr ) );
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::ListBoxChunksClick(TObject *Sender)
- {
- // When the Chunks listbox is clicked ...
- // display strings from strlist in the RichEditChunks window.
- int iIndex = ListBoxChunks->ItemIndex;
- if( !ListBoxChunks->Items->Count )
- return;
- // Update panel to reflect the selection : "Chunk N of NChunks"
- pnlChunks->Caption = "Chunk " + String( iIndex + 1) +
- " of " + String( ListBoxChunks->Items->Count );
- // Reset Chunks windows ...
- RichEditChunks->Clear();
- RichEditChunks->Lines->Add( "" );
- // ... Chunks header string : "Chunk N : XXXX" (XXXX == Chunk name)
- RichEditChunks->Lines->Add( "Chunk " + String( iIndex + 1 ) + " : " +
- ListBoxChunks->Items->Strings[ iIndex ] );
- // ... Seperator line
- //RichEditChunks->Lines->Add("");
- // ... add the data from the stringlist
- {
- String as = strList->Strings[ iIndex ] + 1;
- String z;
- int n =1;
- do{
- if( as[n] == '\n' )
- {
- RichEditChunks->Lines->Add( z );
- z = "";
- }
- else
- z = z + as[n];
- n+=1;
- } while( n < as.Length() );
- RichEditChunks->Lines->Add( z );
- }
- // ... Seperator line
- RichEditChunks->Lines->Add("");
- // Place cursor at top of editor
- RichEditChunks->SelStart = 0;
- RichEditChunks->SelLength = 0;
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::EventShowPage(TObject *Sender)
- {
- switch( ((TTabSheet *)Sender)->Tag ) {
- case PAGE_REPORT :
- mnuPrint->Enabled = true;
- mnuEdit->Enabled = true;
- mnuUndo->Enabled = true;
- mnuSave->Enabled = true;
- sbtnSave->Enabled = true;
- sbtnUndo->Enabled = true;
- mnuCut->Enabled = true;
- sbtnCut->Enabled = true;
- mnuCopy->Enabled = true;
- sbtnCopy->Enabled = true;
- mnuPaste->Enabled = true;
- sbtnPaste->Enabled = true;
- mnuSearch->Enabled = true;
- sbtnPrint->Enabled = true;
- break;
- //case PAGE_CHUNKS :
- //case PAGE_OPTIONS :
- ///case PAGE_ABOUT :
- //case PAGE_HELP :
- default :
- mnuPrint->Enabled = false;
- mnuEdit->Enabled = false;
- // no need to enable/disable menu commands as none will be available
- mnuSave->Enabled = false;
- sbtnSave->Enabled = false;
- sbtnUndo->Enabled = false;
- sbtnCut->Enabled = false;
- sbtnCopy->Enabled = false;
- sbtnPaste->Enabled = false;
- mnuSearch->Enabled = false;
- sbtnPrint->Enabled = false;
- }
-
- }
- //---------------------------------------------------------------------------
- void __fastcall TMainForm::RadioGroupTabSizeClick(TObject *Sender)
- {
- switch( RadioGroupTabSize->ItemIndex ) {
- case 0 : asTab = " "; break;
- case 1 : asTab = " "; break;
- case 2 : asTab = " "; break;
- case 3 : asTab = " "; break;
- case 4 : asTab = " "; break;
- case 5 : asTab = " "; break;
- }
- }
- //---------------------------------------------------------------------------
- String __fastcall TMainForm::PadInt( int iInt, int iWidth )
- {
- char szFmtStr[ 24 ];
- char szInt[ 24 ]; // Should be wide enough !
- String as;
- wsprintf( szFmtStr,"%%%d\d\0",iWidth ); //"%[iWidth]d"
- as = szFmtStr;
- wsprintf( szInt, szFmtStr, iInt );
- return String( szInt );
- }
- //---------------------------------------------------------------------------
- mng_bool __fastcall TMainForm::ShowChunk(
- mng_handle hMNG, mng_handle hChunk, mng_chunkid iChunktype )
- {
- String asDataText;
- // Fill asDataText with string data including newline's ...
- // this is added to string list for each chunk
- // and also added to the tail end of "Report"
- // NOTE :
- // Return True to continue processing.
- // If mng_getchunk_xxxx fails just return false to the
- // caller "(bool) myiterchunk" which inturn will then return false
- // to "(mng_retcode) mng_iterate_chunks(...)" which will then
- // give us the correct error code.
- // In other words DON'T check for errors in "(bool) myiterchunk" !
- switch( iChunktype ) {
- case MNG_UINT_BACK :
- if( !Info_BACK( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_BASI :
- if( !Info_BASI( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_CLIP :
- if( !Info_CLIP( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_CLON :
- if( !Info_CLON( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_DBYK : // untested @ap@
- if( !Info_DBYK( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_DEFI :
- if( !Info_DEFI( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_DHDR :
- if( !Info_DHDR( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_DISC : // untested @ap@
- if( !Info_DISC( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_DROP : // untested @ap@
- if( !Info_DROP( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_ENDL :
- if( !Info_ENDL( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_FRAM :
- if( !Info_FRAM( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_IDAT :
- if( !Info_IDAT( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_IEND :
- if( !Info_IEND( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_IHDR :
- if( !Info_IHDR( hMNG, hChunk, asDataText ) ) return false; break;
- #define MNG_UINT_IJNG 0x494a4e47L // Function AWOL @ap@
- #define MNG_UINT_IPNG 0x49504e47L // Function AWOL @ap@
- case MNG_UINT_JDAT :
- if( !Info_JDAT( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_JHDR :
- if( !Info_JHDR( hMNG, hChunk, asDataText ) ) return false; break;
- #define MNG_UINT_JSEP 0x4a534550L // Function AWOL @ap@
- case MNG_UINT_LOOP :
- if( !Info_LOOP( hMNG, hChunk, asDataText ) ) return false; break;
- #define MNG_UINT_MaGN 0x4d61474eL // which one "mng_getchunk_magn" ?
- case MNG_UINT_MEND :
- if( !Info_MEND( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_MHDR :
- if( !Info_MHDR( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_MOVE :
- if( !Info_MOVE( hMNG, hChunk, asDataText ) ) return false; break;
- #define MNG_UINT_MaGN 0x4d61474eL // which one "mng_getchunk_magn" ?
- case MNG_UINT_ORDR :
- if( !Info_ORDR( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_PAST :
- if( !Info_PAST( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_PLTE :
- if( !Info_PLTE( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_PPLT :
- if( !Info_PPLT( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_PROM :
- if( !Info_PROM( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_SAVE :
- if( !Info_SAVE( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_SEEK :
- if( !Info_SEEK( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_SHOW :
- if( !Info_SHOW( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_TERM :
- if( !Info_TERM( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_bKGD :
- if( !Info_bKGD( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_cHRM :
- if( !Info_cHRM( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_eXPI :
- if( !Info_eXPI( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_fPRI :
- if( !Info_fPRI( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_gAMA :
- if( !Info_gAMA( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_hIST :
- if( !Info_hIST( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_iCCP :
- if( !Info_iCCP( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_iTXt : // untested @ap@
- if( !Info_iTXt( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_nEED :
- if( !Info_nEED( hMNG, hChunk, asDataText ) ) return false; break;
- #define MNG_UINT_oFFs 0x6f464673L // Function AWOL @ap@
- #define MNG_UINT_pCAL 0x7043414cL // Function AWOL @ap@
- case MNG_UINT_pHYg : // untested @ap@
- if( !Info_pHYg( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_pHYs :
- if( !Info_pHYs( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_sBIT :
- if( !Info_sBIT( hMNG, hChunk, asDataText ) ) return false; break;
- #define MNG_UINT_sCAL 0x7343414cL // Function AWOL @ap@
- case MNG_UINT_sPLT : // untested @ap@
- if( !Info_sPLT( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_sRGB :
- if( !Info_sRGB( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_tEXt :
- if( !Info_tEXt( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_tIME :
- if( !Info_tIME( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_tRNS :
- if( !Info_tRNS( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_zTXt :
- if( !Info_zTXt( hMNG, hChunk, asDataText ) ) return false; break;
- case MNG_UINT_HUH :
- default : // this will catch unknown chunks - Huh !
- if( !Info_Unknown( hMNG, hChunk, asDataText ) ) return false; break;
- } // end of switch
- //-------------------------------------------------
- // Add this chunk's string to our string list
- strList->Insert( GetChunkCount(), asDataText );
- // Now's the time to bump chunk count
- IncChunkCount();
- // Add this chunk's string to the Report
- MainForm->RichEditReport->Lines->Add( asDataText );
- return true;
- }
- //---------------------------------------------------------------------------
|