From 823767706b7990567fb8f9a5dd68efa8e30f2064 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Fri, 13 Aug 2010 17:01:52 +0200 Subject: docview: Now manages some images for RichTextView control. The image list contains "missing image" images to indicate where images where supposed to have been displayed. --- docview/src/frm_main.pas | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'docview') diff --git a/docview/src/frm_main.pas b/docview/src/frm_main.pas index 383b0429..3e24c320 100644 --- a/docview/src/frm_main.pas +++ b/docview/src/frm_main.pas @@ -7,7 +7,8 @@ interface uses SysUtils, Classes, fpg_base, fpg_main, fpg_form, fpg_panel, fpg_tab, fpg_tree, fpg_splitter, fpg_menu, fpg_button, fpg_listbox, - fpg_label, fpg_edit, fpg_radiobutton, fpg_progressbar, + fpg_label, fpg_edit, fpg_radiobutton, fpg_progressbar, fpg_imagelist, + fpg_imgfmt_bmp, HelpFile, RichTextView, HelpTopic; type @@ -76,6 +77,7 @@ TMainForm = class(TfpgForm) Debug: boolean; FFileOpenRecent: TfpgMenuItem; FHistorySelection: Boolean; + FImages: TfpgImageList; LoadingFilenameList: TStringList; LoadingFileIndex: integer; @@ -201,6 +203,7 @@ implementation cVersion = 'Version ' + FPGUI_VERSION; {$I arrows.inc} +{$I missing.inc} {@VFD_NEWFORM_IMPL} @@ -347,6 +350,8 @@ procedure TMainForm.MainFormShow(Sender: TObject); LoadSettings; CreateMRUMenuItems; ProcessCommandLineParams; + + RichView.Images := FImages; end; procedure TMainForm.MainFormDestroy(Sender: TObject); @@ -1700,10 +1705,11 @@ procedure TMainForm.DisplayTopic(ATopic: TTopic); ImageIndices, nil {Highlights} ); + if ImageIndices.Count > 0 then + begin { TODO -oGraeme : We do not support images yet } -// THelpFile(CurrentTopic.HelpFile).GetImages(ImageOf) -// THelpFile( Topic.HelpFile ).GetImages( ImageOffsets, -// Images ); +// THelpFile(CurrentTopic.HelpFile).GetImages(ImageIndices, FImages); + end; ImageIndices.Free; @@ -1741,6 +1747,8 @@ function TMainForm.TranslateEnvironmentVar(AFilenames: TfpgString): TfpgString; end; constructor TMainForm.Create(AOwner: TComponent); +var + img: TfpgImage; begin inherited Create(AOwner); fpgApplication.OnException := @MainFormException; @@ -1755,6 +1763,16 @@ constructor TMainForm.Create(AOwner: TComponent); { TODO -oGraeme : Make Debug a menu option } Debug := False; + FImages := TfpgImageList.Create; + // store up to three images per Topic - while we don't support INF images + img := CreateImage_BMP(@dv_missing, sizeof(dv_missing)); + FImages.AddImage(img); + img := CreateImage_BMP(@dv_missing, sizeof(dv_missing)); + FImages.AddImage(img); + img := CreateImage_BMP(@dv_missing, sizeof(dv_missing)); + FImages.AddImage(img); + + // load toolbar images fpgImages.AddMaskedBMP( 'dv.arrowleft', @usr_arrow_left, @@ -1771,10 +1789,13 @@ constructor TMainForm.Create(AOwner: TComponent); fpgImages.AddMaskedBMP( 'dv.arrowdown', @usr_arrow_down, sizeof(usr_arrow_down), 0, 0); + end; destructor TMainForm.Destroy; begin + RichView.Images := nil; + FImages.Free; CurrentTopic := nil; // it was a reference only FFileOpenRecent := nil; // it was a reference only miOpenRecentMenu.Free; -- cgit v1.2.3-54-g00ecf