From 486f4f48ff250ce64ab532a302b6bbd6c05c4050 Mon Sep 17 00:00:00 2001 From: David Laurence Emerson Date: Mon, 27 May 2013 22:59:46 -0700 Subject: Scroll-Frame! --- src/corelib/x11/fpgui_toolkit.lpk | 6 +++++- src/corelib/x11/fpgui_toolkit.pas | 26 ++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/x11/fpgui_toolkit.lpk b/src/corelib/x11/fpgui_toolkit.lpk index 2ac5a337..9be3ad6e 100644 --- a/src/corelib/x11/fpgui_toolkit.lpk +++ b/src/corelib/x11/fpgui_toolkit.lpk @@ -29,7 +29,7 @@ - + @@ -426,6 +426,10 @@ + + + + diff --git a/src/corelib/x11/fpgui_toolkit.pas b/src/corelib/x11/fpgui_toolkit.pas index 10dc7f27..4f4f92c0 100644 --- a/src/corelib/x11/fpgui_toolkit.pas +++ b/src/corelib/x11/fpgui_toolkit.pas @@ -8,19 +8,21 @@ interface uses fpg_base, fpg_main, fpg_cmdlineparams, fpg_command_intf, fpg_constants, - fpg_extinterpolation, fpg_imagelist, fpg_imgfmt_bmp, fpg_pofiles, fpg_popupwindow, - fpg_stdimages, fpg_stringhashlist, fpg_translations, fpg_stringutils, fpg_utils, - fpg_widget, fpg_wuline, fpg_impl, fpg_x11, fpg_netlayer_x11, fpg_keyconv_x11, - fpg_xft_x11, fpg_animation, fpg_basegrid, fpg_button, fpg_checkbox, fpg_combobox, - fpg_customgrid, fpg_dialogs, fpg_editcombo, fpg_edit, fpg_form, fpg_gauge, fpg_grid, - fpg_hyperlink, fpg_iniutils, fpg_label, fpg_listbox, fpg_listview, fpg_memo, fpg_menu, + fpg_extinterpolation, fpg_imagelist, fpg_imgfmt_bmp, fpg_pofiles, + fpg_popupwindow, fpg_stdimages, fpg_stringhashlist, fpg_translations, + fpg_stringutils, fpg_utils, fpg_widget, fpg_wuline, fpg_impl, fpg_x11, + fpg_netlayer_x11, fpg_keyconv_x11, fpg_xft_x11, fpg_animation, fpg_basegrid, + fpg_button, fpg_checkbox, fpg_combobox, fpg_customgrid, fpg_dialogs, + fpg_editcombo, fpg_edit, fpg_form, fpg_gauge, fpg_grid, fpg_hyperlink, + fpg_iniutils, fpg_label, fpg_listbox, fpg_listview, fpg_memo, fpg_menu, fpg_mru, fpg_panel, fpg_popupcalendar, fpg_progressbar, fpg_radiobutton, - fpg_scrollbar, fpg_style, fpg_tab, fpg_trackbar, fpg_tree, fpgui_db, fpg_splitter, - fpg_hint, fpg_spinedit, fpg_extgraphics, fpg_ColorMapping, fpg_ColorWheel, - fpg_interface, fpg_editbtn, fpg_imgfmt_jpg, fpg_imgutils, fpg_stylemanager, - fpg_style_win2k, fpg_style_motif, fpg_style_clearlooks, fpg_style_bluecurve, - fpg_style_bitmap, fpg_readonly, fpg_imgfmt_png, U_Command, U_Pdf, U_Report, - U_ReportImages, U_Visu, fpg_trayicon, Agg2D; + fpg_scrollbar, fpg_style, fpg_tab, fpg_trackbar, fpg_tree, fpgui_db, + fpg_splitter, fpg_hint, fpg_spinedit, fpg_extgraphics, fpg_ColorMapping, + fpg_ColorWheel, fpg_interface, fpg_editbtn, fpg_imgfmt_jpg, fpg_imgutils, + fpg_stylemanager, fpg_style_win2k, fpg_style_motif, fpg_style_clearlooks, + fpg_style_bluecurve, fpg_style_bitmap, fpg_readonly, fpg_imgfmt_png, + U_Command, U_Pdf, U_Report, U_ReportImages, U_Visu, fpg_trayicon, Agg2D, + fpg_scrollframe; implementation -- cgit v1.2.3-70-g09d2 From 4559f9a96432e78351edcaefc5dbe929887e6a38 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Mon, 18 Mar 2013 10:35:36 +0000 Subject: utils: Adds a new RTL wrapper to handle UTF-8 path names correctly. --- src/corelib/fpg_utils.pas | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/corelib') diff --git a/src/corelib/fpg_utils.pas b/src/corelib/fpg_utils.pas index dcc0cf71..9d0e907d 100644 --- a/src/corelib/fpg_utils.pas +++ b/src/corelib/fpg_utils.pas @@ -63,6 +63,7 @@ function fpgExtractFileDir(const FileName: TfpgString): TfpgString; function fpgExtractFilePath(const FileName: TfpgString): TfpgString; function fpgExtractFileName(const FileName: TfpgString): TfpgString; function fpgExtractFileExt(const FileName: TfpgString): TfpgString; +function fpgExtractRelativepath(const ABaseName, ADestName: TfpgString): TfpgString; function fpgForceDirectories(const ADirectory: TfpgString): Boolean; function fpgChangeFileExt(const FileName, Extension: TfpgString): TfpgString; function fpgGetAppConfigDir(const Global: Boolean): TfpgString; @@ -164,6 +165,11 @@ begin Result := ExtractFileExt(fpgToOSEncoding(Filename)); end; +function fpgExtractRelativepath(const ABaseName, ADestName: TfpgString): TfpgString; +begin + Result := ExtractRelativepath(fpgToOSEncoding(ABaseName), fpgToOSEncoding(ADestName)); +end; + function fpgForceDirectories(const ADirectory: TfpgString): Boolean; begin Result := ForceDirectories(fpgToOSEncoding(ADirectory)); -- cgit v1.2.3-70-g09d2 From ddd405fceb17209474b7569f49894ed3155ba3f4 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Tue, 19 Mar 2013 23:05:42 +0000 Subject: Adds Chrome and Chromium support to fpgOpenURL() --- src/corelib/x11/fpg_utils_impl.inc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/corelib') diff --git a/src/corelib/x11/fpg_utils_impl.inc b/src/corelib/x11/fpg_utils_impl.inc index 753b0ea1..bc5917e9 100644 --- a/src/corelib/x11/fpg_utils_impl.inc +++ b/src/corelib/x11/fpg_utils_impl.inc @@ -34,7 +34,11 @@ begin else if fpsystem('which opera') = 0 then Helper := 'opera' else if fpsystem('which mozilla') = 0 then - Helper := 'mozilla'; + Helper := 'mozilla' + else if fpsystem('which chrome') = 0 then + Helper := 'chrome' + else if fpsystem('which chromium') = 0 then + Helper := 'chromium'; if Helper <> '' then fpSystem(Helper + ' ' + aURL + '&'); -- cgit v1.2.3-70-g09d2 From 823c7db4e8374fb01985a0669642b03d5915726d Mon Sep 17 00:00:00 2001 From: Jean-Marc Levecque Date: Wed, 6 Mar 2013 14:11:29 +0100 Subject: Add common procedures in fpg_base for deadkeys --- src/corelib/fpg_base.pas | 64 +++++++++++++++++++++++++++++++++++++++++++++++ src/gui/fpg_edit.pas | 33 +++--------------------- src/gui/fpg_editcombo.pas | 33 +++--------------------- src/gui/fpg_memo.pas | 33 +++--------------------- 4 files changed, 73 insertions(+), 90 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas index 3eae947a..5158540e 100644 --- a/src/corelib/fpg_base.pas +++ b/src/corelib/fpg_base.pas @@ -744,6 +744,8 @@ type { Keyboard } function KeycodeToText(AKey: Word; AShiftState: TShiftState): string; function CheckClipboardKey(AKey: Word; AShiftstate: TShiftState): TClipboardKeyType; +function UseDeadKey(AChar: TfpgChar; AKey: word): TfpgChar; +function ReadDeadKey(AKey: word): integer; { Color } function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple; @@ -965,6 +967,68 @@ begin end { if/else } end; +function UseDeadKey(AChar: TfpgChar; AKey: word): TfpgChar; +begin + case AKey of + keyDeadCircumflex: + case AChar of + 'a': + Result:= 'â'; + 'e': + Result:= 'ê'; + 'i': + Result:= 'î'; + 'o': + Result:= 'ô'; + 'u': + Result:= 'û'; + 'A': + Result:= 'Â'; + 'E': + Result:= 'Ê'; + 'I': + Result:= 'Î'; + 'O': + Result:= 'Ô'; + 'U': + Result:= 'Û'; + end; + keyDeadDiaeresis: + case AChar of + 'a': + Result:= 'ä'; + 'e': + Result:= 'ë'; + 'i': + Result:= 'ï'; + 'o': + Result:= 'ö'; + 'u': + Result:= 'ü'; + 'A': + Result:= 'Ä'; + 'E': + Result:= 'Ë'; + 'I': + Result:= 'Ï'; + 'O': + Result:= 'Ö'; + 'U': + Result:= 'Ü'; + end; + end; +end; + +function ReadDeadKey(AKey: word): integer; +begin + case AKey of + keyDeadCircumflex, keyDeadDiaeresis: + Result := AKey; + else + Result := -1; + end; +end; + function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple; begin with Result do diff --git a/src/gui/fpg_edit.pas b/src/gui/fpg_edit.pas index 01c52d4c..21e6895e 100644 --- a/src/gui/fpg_edit.pas +++ b/src/gui/fpg_edit.pas @@ -758,34 +758,7 @@ begin prevval := Text; if FDeadKeyChar> -1 then begin - case FDeadKeyChar of - keyDeadDiaeresis: - case AText of - 'a': - AText:= 'â'; - 'e': - AText:= 'ë'; - 'i': - AText:= 'ï'; - 'o': - AText:= 'ö'; - 'u': - AText:= 'ü'; - end; - keyDeadCircumflex: - case AText of - 'a': - AText:= 'â'; - 'e': - AText:= 'ê'; - 'i': - AText:= 'î'; - 'o': - AText:= 'ô'; - 'u': - AText:= 'û'; - end; - end; + AText:= UseDeadKey(AText, FDeadKeyChar); FDeadKeyChar:= -1; end; s := AText; @@ -831,8 +804,8 @@ begin hasChanged := False; fpgApplication.HideHint; - if (keycode= keyDeadCircumflex) or (keycode= keyDeadDiaeresis) then - FDeadKeyChar:= keycode; + if FDeadKeyChar = -1 then + FDeadKeyChar:= ReadDeadKey(keycode); Consumed := True; case CheckClipBoardKey(keycode, shiftstate) of diff --git a/src/gui/fpg_editcombo.pas b/src/gui/fpg_editcombo.pas index 72b804ef..9145d641 100644 --- a/src/gui/fpg_editcombo.pas +++ b/src/gui/fpg_editcombo.pas @@ -526,34 +526,7 @@ begin prevval := FText; if FDeadKeyChar> -1 then begin - case FDeadKeyChar of - keyDeadDiaeresis: - case AText of - 'a': - AText:= 'â'; - 'e': - AText:= 'ë'; - 'i': - AText:= 'ï'; - 'o': - AText:= 'ö'; - 'u': - AText:= 'ü'; - end; - keyDeadCircumflex: - case AText of - 'a': - AText:= 'â'; - 'e': - AText:= 'ê'; - 'i': - AText:= 'î'; - 'o': - AText:= 'ô'; - 'u': - AText:= 'û'; - end; - end; + AText:= UseDeadKey(AText, FDeadKeyChar); FDeadKeyChar:= -1; end; s := AText; @@ -617,8 +590,8 @@ var begin hasChanged := False; - if (keycode= 58536) or (keycode= 58462) then - FDeadKeyChar:= keycode; + if FDeadKeyChar = -1 then + FDeadKeyChar:= ReadDeadKey(keycode); if not Enabled then consumed := False diff --git a/src/gui/fpg_memo.pas b/src/gui/fpg_memo.pas index c0b227ae..2769e4d4 100644 --- a/src/gui/fpg_memo.pas +++ b/src/gui/fpg_memo.pas @@ -1064,34 +1064,7 @@ begin prevval := Text; if FDeadKeyChar> -1 then begin - case FDeadKeyChar of - keyDeadDiaeresis: - case AText of - 'a': - AText:= 'â'; - 'e': - AText:= 'ë'; - 'i': - AText:= 'ï'; - 'o': - AText:= 'ö'; - 'u': - AText:= 'ü'; - end; - keyDeadCircumflex: - case AText of - 'a': - AText:= 'â'; - 'e': - AText:= 'ê'; - 'i': - AText:= 'î'; - 'o': - AText:= 'ô'; - 'u': - AText:= 'û'; - end; - end; + AText:= UseDeadKey(AText, FDeadKeyChar); FDeadKeyChar:= -1; end; s := AText; @@ -1142,8 +1115,8 @@ begin Consumed := True; hasChanged := False; - if (keycode= 58536) or (keycode= 58462) then - FDeadKeyChar:= keycode; + if FDeadKeyChar = -1 then + FDeadKeyChar:= ReadDeadKey(keycode); case CheckClipBoardKey(keycode, shiftstate) of ckCopy: -- cgit v1.2.3-70-g09d2 From 49b73d8c5fae5b2fa998aaa7c3487ced6da3c05d Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Wed, 27 Mar 2013 16:39:02 +0000 Subject: updated reporting images I've updated the actual *.bmp files ages ago, but forgot to update the image byte arrays in fpGUI Toolkit. While I was at it, I also translated some French names to English. --- src/corelib/stdimages.inc | 192 +++++++++------- src/reportengine/u_reportimages.pas | 442 +++++++++++++++++++++++++++--------- src/reportengine/u_visu.pas | 4 +- 3 files changed, 448 insertions(+), 190 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/stdimages.inc b/src/corelib/stdimages.inc index 076ae4a4..36255154 100644 --- a/src/corelib/stdimages.inc +++ b/src/corelib/stdimages.inc @@ -3017,175 +3017,209 @@ Const 0); Const - stdimg_print : Array[0..245] of byte = ( - 66, 77,246, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 40, 0, 0, - 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 16, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,128, 0, 0, 0,128, - 128, 0,128, 0, 0, 0,128, 0,128, 0,128,128, 0, 0,128,128,128, - 0,192,192,192, 0, 0, 0,255, 0,192,192,192, 0, 0,255,255, 0, - 255, 0, 0, 0,192,192,192, 0,255,255, 0, 0,255,255,255, 0,218, - 218,218,218,218,218,218,218,173, 0, 0, 0, 0, 0, 13,173,208,136, - 136,136,136,128,128,218, 0, 0, 0, 0, 0, 0, 8, 13, 8,136,136, - 139,187,136, 0, 10, 8,136,136,135,119,136, 8, 13, 0, 0, 0, 0, - 0, 0, 8,128, 8,136,136,136,136,128,128,128,208, 0, 0, 0, 0, - 8, 8, 0,173, 15,255,255,255,240,128,128,218,208,240, 0, 0,240, - 0, 10,173,160,255,255,255,255, 13,173,218,218, 15, 0, 0, 15, 10, - 218,173,173, 15,255,255,255,240,173,218,218,208, 0, 0, 0, 0,218, - 173,173,173,173,173,173,173,173); + stdimg_print: array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 0, 0, 0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192, 0, 0, 0,192, + 192,192, 0, 0, 0,255, 0,255,255, 0,255, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, + 192,192, 0, 0, 0,255, 0,255, 0, 0, 0,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192, 0,255,255, 0,255, + 255, 0,255,255,192,192,192,192,192,192, 0, 0, 0, 0, 0, 0, 0, + 0, 0,255, 0,255, 0, 0, 0,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,128,128,128,128,128,128,128,128, + 128,192,192,192,192,192,192, 0, 0, 0,192,192,192, 0, 0, 0,255, + 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,192,192,192,192,192,192, 0, 0, 0, 0, + 0, 0,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, 0, 0, + 0,192,192,192, 0, 0, 0,192,192,192, 0, 0, 0,255, 0,255, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,192,192, 0, 0, + 0,192,192,192, 0, 0, 0, 0, 0, 0,255, 0,255,255, 0,255, 0, + 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255, 0, 0, 0,192,192,192, 0, 0, + 0,192,192,192, 0, 0, 0,255, 0,255,255, 0,255,255, 0,255, 0, + 0, 0,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0, 0,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255, 0, 0, 0,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0, 0,255, + 255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 255,255,255, 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255, 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); const - stdimg_Adobe_pdf : Array[0..1253] of byte = ( + stdimg_adobe_pdf: array[0..1253] of byte = ( 66, 77,230, 4, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 176, 4, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,226,226, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,226,226, 226,148,148,148,152,152,152,152,152,152,152,152,152,152,152,152,152, 152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152, - 152,152,152,146,146,146,208,208,208,253,253,253,255,255,255,255,255, - 255,255,255,255,255,255,255,204,204,204,245,245,245,247,247,244,246, + 152,152,152,146,146,146,208,208,208,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,204,204,204,245,245,245,247,247,244,246, 246,244,244,244,244,245,245,245,210,210,209,212,212,212,200,201,200, 208,208,208,210,210,209,202,202,202,209,210,209,221,222,221,210,210, - 210,253,253,253,255,255,255,255,255,255,255,255,255,255,255,255,212, + 210,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,212, 212,212,254,254,255,205,205,255,226,226,255,255,255,255,255,255,255, 141,142,139,136,138,135,127,128,125,136,138,135,137,139,136,130,131, - 128,130,131,129,145,146,143,194,194,194,253,253,253,255,255,255,255, - 255,255,255,255,255,255,255,255,211,211,211,247,247,255,135,135,254, + 128,130,131,129,145,146,143,194,194,194,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,211,211,211,247,247,255,135,135,254, 144,144,254,229,229,254,255,255,255,173,174,172,151,153,151,157,159, 157,175,176,174,193,194,193,131,133,130,190,190,189,188,188,187,200, - 201,200,253,253,253,255,255,255,255,255,255,255,255,255,255,255,255, + 201,200,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 211,211,211,253,253,254,221,221,253,138,138,253,155,155,253,249,249, 253,238,238,238,225,225,224,226,227,226,237,237,237,252,252,252,207, - 207,206,255,255,253,253,253,252,222,222,221,253,253,253,255,255,255, - 255,255,255,255,255,255,255,255,255,210,210,210,253,253,253,254,254, + 207,206,255,255,253,253,253,252,222,222,221,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,210,210,210,253,253,253,254,254, 252,254,254,251,133,133,252,197,197,252,249,249,253,247,247,253,249, 249,253,250,250,253,244,244,252,231,231,254,197,196,251,217,214,249, - 213,212,220,253,253,253,255,255,255,255,255,255,255,255,255,255,255, + 213,212,220,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, 255,209,209,209,251,251,251,250,250,250,252,252,250,248,248,250, 96, 96,252,188,188,251,175,175,251,166,166,251,164,164,252, 99, 99,252, - 122,122,252,180,180,251,228,228,252,224,224,220,253,253,253,255,255, - 255,255,255,255,255,255,255,255,255,255,209,209,209,250,250,250,249, + 122,122,252,180,180,251,228,228,252,224,224,220,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,209,209,209,250,250,250,249, 249,249,249,249,249,255,255,249,172,172,250,181,181,250,243,243,249, 131,131,251,162,162,250,192,192,250,195,195,250,201,201,250,243,243, - 250,221,221,220,253,253,253,255,255,255,255,255,255,255,255,255,255, - 255,255,208,208,208,248,248,248,247,247,247,247,247,247,247,247,247, + 250,221,221,220,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,208,208,208,248,248,248,247,247,247,247,247,247,247,247,247, 249,249,247,102,102,251,161,161,249,185,185,248,252,252,247,251,251, - 247,251,251,247,250,250,247,249,249,249,219,219,219,253,253,253,255, - 255,255,255,255,255,255,255,255,255,255,255,207,207,207,246,246,246, + 247,251,251,247,250,250,247,249,249,249,219,219,219,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,207,207,207,246,246,246, 245,245,245,245,245,245,245,245,245,247,247,245,184,184,247, 87, 87, 251,254,254,244,245,245,245,245,245,245,245,245,245,245,245,245,244, - 244,244,214,214,214,253,253,253,255,255,255,255,255,255,255,255,255, - 255,255,255,206,206,206,245,245,245,244,244,244,244,244,244,244,244, + 244,244,214,214,214,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,206,206,206,245,245,245,244,244,244,244,244,244,244,244, 244,247,247,244,176,176,246,125,125,248,253,253,244,244,244,244,244, - 244,244,243,243,243,240,240,240,238,238,238,209,209,209,252,252,252, - 255,255,255,255,255,255,255,255,255,255,255,255,205,205,205,243,243, + 244,244,243,243,243,240,240,240,238,238,238,209,209,209,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,205,205,205,243,243, 243,242,242,242,242,242,242,242,242,242,247,247,242,118,118,248,191, 191,244,246,246,242,242,242,242,240,240,240,237,237,237,233,233,233, - 231,231,231,204,204,204,252,252,252,255,255,255,255,255,255,255,255, - 255,255,255,255,216,216,210,249,249,245,248,248,245,248,248,245,248, + 231,231,231,204,204,204,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,216,216,210,249,249,245,248,248,245,248,248,245,248, 248,245,254,254,245, 96, 96,254,238,238,245,250,250,244,242,242,241, - 234,234,234,230,230,230,227,227,227,223,223,223,196,196,196,252,252, - 252,202,202,222,114,114,167,122,122,170,122,122,170, 78, 78,130,145, + 234,234,234,230,230,230,227,227,227,223,223,223,196,196,196,255, 0, + 255,202,202,222,114,114,167,122,122,170,122,122,170, 78, 78,130,145, 145,177,138,138,173,139,139,172,140,140,171,146,146,172, 68, 68,176, 111,111,174,142,142,169,183,183,199,226,226,227,223,223,223,216,216, - 216,206,206,206,190,190,190,252,252,252,127,127,195, 0, 0,156, 0, + 216,206,206,206,190,190,190,255, 0,255,127,127,195, 0, 0,156, 0, 0,164, 11, 11,168, 44, 44,178, 6, 6,167, 69, 69,184, 53, 53,177, 50, 50,174, 13, 13,158, 3, 3,151, 3, 3,146, 0, 0,132,109,109, - 162,204,204,205,181,181,181,166,166,166,162,162,162,224,224,224,254, - 254,254,127,127,209, 0, 0,199, 4, 4,206, 36, 36,212,152,152,234, + 162,204,204,205,181,181,181,166,166,166,162,162,162,224,224,224,255, + 0,255,127,127,209, 0, 0,199, 4, 4,206, 36, 36,212,152,152,234, 28, 28,209,134,134,230,129,129,229,184,184,238, 41, 41,198, 0, 0, 183, 0, 0,175, 0, 0,159,100,100,165,180,180,181,185,185,185,189, - 189,189,219,219,219,254,254,254,255,255,255,138,138,225, 28, 28,227, + 189,189,219,219,219,255, 0,255,255, 0,255,138,138,225, 28, 28,227, 37, 37,232, 60, 60,234,187,187,247,196,196,248,129,129,238,129,129, 236,175,175,242,168,168,241, 5, 5,204, 0, 0,195, 0, 0,177, 92, - 92,166,185,185,187,244,244,244,224,224,224,252,252,252,255,255,255, - 254,254,254,143,143,237, 42, 42,240, 52, 52,244, 59, 59,242,118,118, + 92,166,185,185,187,244,244,244,224,224,224,255, 0,255,255, 0,255, + 255, 0,255,143,143,237, 42, 42,240, 52, 52,244, 59, 59,242,118,118, 244,101,101,240, 91, 91,235, 86, 86,230, 81, 81,226, 80, 80,221, 2, 2,202, 0, 0,192, 0, 0,177, 80, 80,162,187,187,190,229,229,229, - 251,251,251,255,255,255,254,254,254,255,255,255,221,221,249,184,184, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,221,221,249,184,184, 248,187,187,250,188,188,250,121,121,213,158,158,224,155,155,220,153, 153,218,147,147,213,142,142,207,141,141,201,135,135,195,126,126,184, - 148,148,176,227,227,228,253,253,253,255,255,255,254,254,254,255,255, - 255,255,255,255,254,254,254,254,254,254,254,254,254,254,254,255,248, - 248,249,243,243,244,243,243,244,243,243,243,242,242,243,241,241,242, - 239,239,239,237,237,238,235,235,236,245,245,245,254,254,254,255,255, - 255,254,254,254,255,255,255,255,255,255,255,255,255); + 148,148,176,227,227,228,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255); Const - stdimg_preview : Array[0..1253] of byte = ( + stdimg_preview: array[0..1253] of byte = ( 66, 77,230, 4, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 176, 4, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,255,255,255,255,255,255,255,255,255,160,160,160,160,160, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160, - 160,160,160,160,160,160,160,160,160,255,255,255,255,255,255,255,255, + 160,160,160,160,160,160,160,160,160,255, 0,255,255, 0,255,255, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,160,160, - 160,255,255,255,255,255,255, 0, 0, 0, 0, 0, 0,100,100,100,100, + 160,255, 0,255,255, 0,255, 0, 0, 0, 0, 0, 0,100,100,100,100, 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100, 0, 0, 0,150,150,150,200,200,200,200,200,200,200,200, - 200,200,200,200,100,100,100,160,160,160,255,255,255,255,255,255, 0, + 200,200,200,200,100,100,100,160,160,160,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,200,200,200,100,100, 100,150,150,150,200,200,200,200,200,200,200,200,200,100,100,100,160, - 160,160,255,255,255,255,255,255, 0, 0, 0,255,255,255,255,255,255, + 160,160,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,200,200,200,255,255,255,100,100,100,150,150,150,200, - 200,200,200,200,200,100,100,100,160,160,160,255,255,255,255,255,255, + 200,200,200,200,200,100,100,100,160,160,160,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,255,255,255,220,220,220,220,220,220,220,220, 220,220,220,220,220,220,220,220,220,220,220,220,220,200,200,200,255, 255,255,255,255,255,100,100,100,150,150,150,200,200,200,100,100,100, - 160,160,160,255,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, + 160,160,160,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,200,200,200,255,255,255,255,255,255,255,255,255, - 100,100,100,150,150,150,100,100,100,160,160,160,255,255,255,255,255, + 100,100,100,150,150,150,100,100,100,160,160,160,255, 0,255,255, 0, 255, 0, 0, 0,255,255,255,255,255,255,200,200,200,200,200,200,200, 200,200,200,200,200,200,200,200,200,200,200,200,200,200,100,100,100, 100,100,100,100,100,100,100,100,100,100,100,100, 0, 0, 0,100,100, - 100,160,160,160,255,255,255,255,255,255, 0, 0, 0,255,255,255,255, + 100,160,160,160,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,200,200,200,100,100,100,160,160,160,255,255,255,255, - 255,255, 0, 0, 0,255,255,255,255,255,255,160,160,160,160,160,160, + 255,255,255,255,200,200,200,100,100,100,160,160,160,255, 0,255,255, + 0,255, 0, 0, 0,255,255,255,255,255,255,160,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,255,255,255,200,200,200,100, - 100,100,160,160,160,255,255,255,255,255,255, 0, 0, 0,255,255,255, + 100,100,160,160,160,255, 0,255,255, 0,255, 0, 0, 0,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,200,200,200,100,100,100,160,160,160,255,255,255, - 255,255,255, 0, 0, 0,255,255,255,255,255,255,160,160,160,160,160, + 255,255,255,255,255,200,200,200,100,100,100,160,160,160,255, 0,255, + 255, 0,255, 0, 0, 0,255,255,255,255,255,255,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,255,255,255,200,200,200, - 100,100,100,160,160,160,255,255,255,255,255,255, 0, 0, 0,255,255, + 100,100,100,160,160,160,255, 0,255,255, 0,255, 0, 0, 0,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,200,200,200,100,100,100,160,160,160,255,255, - 255,255,255,255, 0, 0, 0,255,255,255,255,255,255,160,160,160,160, + 255,255,255,255,255,255,200,200,200,100,100,100,160,160,160,255, 0, + 255,255, 0,255, 0, 0, 0,255,255,255,255,255,255,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,255,255,255,200,200, - 200,100,100,100,160,160,160,255,255,255,255,255,255, 0, 0, 0,255, + 200,100,100,100,160,160,160,255, 0,255,255, 0,255, 0, 0, 0,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,200,200,200,100,100,100,160,160,160,255, - 255,255,255,255,255, 0, 0, 0,255,255,255,255,255,255,160,160,160, + 0,255,255, 0,255, 0, 0, 0,255,255,255,255,255,255,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,255,255,255,200, - 200,200,100,100,100,160,160,160,255,255,255,255,255,255, 0, 0, 0, + 200,200,100,100,100,160,160,160,255, 0,255,255, 0,255, 0, 0, 0, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,200,200,200,100,100,100,160,160,160, - 255,255,255,255,255,255, 0, 0, 0,255,255,255,255,255,255,160,160, + 255, 0,255,255, 0,255, 0, 0, 0,255,255,255,255,255,255,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,255,255,255, - 200,200,200,100,100,100,160,160,160,255,255,255,255,255,255, 0, 0, + 200,200,200,100,100,100,160,160,160,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,200,200,200,100,100,100,255,255, - 255,255,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 255,255,255,255,255,255,255,255,255,200,200,200,100,100,100,255, 0, + 255,255, 0,255,255, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,255,255,255,255,255,255,255,255,255); + 0, 0, 0, 0,255, 0,255,255, 0,255,255, 0,255); diff --git a/src/reportengine/u_reportimages.pas b/src/reportengine/u_reportimages.pas index 7a7a3ba2..250869a3 100644 --- a/src/reportengine/u_reportimages.pas +++ b/src/reportengine/u_reportimages.pas @@ -34,134 +34,358 @@ function DeleteReportImages: Boolean; implementation const - repimg_Fin : Array[0..245] of byte = ( - 66, 77,246, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 40, 0, 0, - 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,128, 0, 0, 0,128, - 128, 0,128, 0, 0, 0,128, 0,128, 0,128,128, 0, 0,192,192,192, - 0,128,128,128, 0, 0, 0,255, 0, 0,255, 0, 0, 0,255,255, 0, - 255, 0, 0, 0,255, 0,255, 0,255,255, 0, 0,255,255,255, 0,119, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,113, - 119,119,116, 71,119,119,119,113, 23,119,116, 71,119,119,119,113, 17, - 119,116, 71,119,119,119,113, 17, 23,116, 71,119,119,119,113, 17, 17, - 116, 71,119,119,119,113, 17, 23,116, 71,119,119,119,113, 17,119,116, - 71,119,119,119,113, 23,119,116, 71,119,119,119,113,119,119,116, 71, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 119,119,119,119,119,119,119,119); + repimg_Last: array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255, 0, 0,128,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,128, 0, 0,128, 0, 0,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255, 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,128, 0, 0,128, 0, 0,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0, + 255,128, 0, 0,128, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, + 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,128, 0, + 0,128, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, + 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,128, 0, 0,128, 0, + 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, 0, 0,128, + 0, 0,128,255, 0,255,255, 0,255,128, 0, 0,128, 0, 0,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255, 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255, + 255, 0,255,255, 0,255,128, 0, 0,128, 0, 0,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255, 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,128, 0, 0,128, 0, 0,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, + 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 128, 0, 0,128, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); const - repimg_Imprimante : Array[0..357] of byte = ( - 66, 77,102, 1, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 40, 0, 0, - 0, 20, 0, 0, 0, 20, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, - 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,128, 0, 0, 0,128, - 128, 0,128, 0, 0, 0,128, 0,128, 0,128,128, 0, 0,192,192,192, - 0,128,128,128, 0, 0, 0,255, 0, 0,255, 0, 0, 0,255,255, 0, - 255, 0, 0, 0,255, 0,255, 0,255,255, 0, 0,255,255,255, 0, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 0, 0, 51, 0, 3, 51, 51, 51, 51, 48, 0, 51, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 48,247,119,119, - 119,119,119,119,119, 3, 0, 0, 48,247,119,119,119,119,119,119,119, - 3, 0, 0, 48,247,119,119,119,119,119,153,119, 3, 0, 0, 48,255, - 255,255,255,255,255,255,255, 3, 0, 0, 56, 0,136,136,136,136,136, - 136, 0,131, 0, 0, 51, 48, 0, 0, 0, 0, 0, 0, 3, 51, 0, 0, - 51, 48,136,136,136,136,136,136, 3, 51, 0, 0, 51, 48, 0, 0, 0, - 0, 0, 0, 3, 51, 0, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 0, 0, 51, 51, 51, 51, 51, 51, 56, 0, 8, 51, 0, 0, 51, 51, 51, - 51, 51, 51, 48,239,224, 51, 0, 0, 51, 56, 0, 0, 0, 0, 14,240, - 8, 51, 0, 0, 51, 48,224,239,239,239, 63,224, 51, 51, 0, 0, 51, - 56, 0, 0, 0, 0, 14,240, 8, 51, 0, 0, 51, 51, 51, 51, 51, 51, - 48,239,224, 51, 0, 0, 51, 51, 51, 51, 51, 51, 56, 0, 8, 51, 0, - 0); + repimg_Printer: array[0..1253] of byte = ( + 66, 77,230, 4, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 20, 0, 0, 0, 20, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 176, 4, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255, 0, 0, 0, 0, 0, 0, 0, + 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0, + 0, 0, 0, 0, 0, 0, 0,255, 0,255,255, 0,255,255, 0,255, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192, 0, 0, 0,255, 0,255,255, 0,255, + 0, 0, 0,255,255,255,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 0, 0, 0,255, 0,255,255, 0,255, 0, 0, 0,255,255,255,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, + 192,192,192,192,192,192,192,192,192,192,192,192,192,192, 0, 0,255, + 0, 0,255,192,192,192,192,192,192, 0, 0, 0,255, 0,255,255, 0, + 255, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255, 0, 0, 0,255, 0,255,255, 0,255,128,128,128, 0, 0, 0, 0, + 0, 0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128, 0, 0, 0, 0, 0, 0,128,128,128,255, 0,255,255, + 0,255,255, 0,255,255, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 0, 0, 0,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, + 128,128,128,128,128, 0, 0, 0,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,128,128,128, 0, 0, 0, 0, 0, 0, 0, 0, + 0,128,128,128,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0, + 0,255,255, 0,255,255,255,255,255, 0, 0, 0, 0,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,128,128,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,255,255, 0,255,255,255, 0, 0, 0, 0, + 0, 0,128,128,128,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255, 0, 0, 0,255,255, 0, 0, 0, 0,255,255, 0,255,255, + 255,255,255, 0,255,255,255,255,255, 0,255,255,255,255,255, 0,255, + 255,255,255,255, 0, 0, 0, 0,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,128,128,128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0,255,255,255, 0, 0, 0, + 0, 0, 0,128,128,128,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 0, 0, 0,255,255, 0,255,255,255,255,255, 0, 0, 0, 0,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,128,128,128, 0, 0, 0, 0, 0, + 0, 0, 0, 0,128,128,128,255, 0,255,255, 0,255); const - repimg_Precedent : Array[0..245] of byte = ( - 66, 77,246, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 40, 0, 0, - 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 16, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,128, 0, 0, 0,128, - 128, 0,128, 0, 0, 0,128, 0,128, 0,128,128, 0, 0,128,128,128, - 0,192,192,192, 0, 0, 0,255, 0,192,192,192, 0, 0,255,255, 0, - 255, 0, 0, 0,192,192,192, 0,255,255, 0, 0,255,255,255, 0,218, - 218,218,218,218,218,218,218,173,173,173,173,173,173,173,173,218,218, - 218,218,218,218,218,218,173,173,173,173,173,173,173,173,218,218,218, - 218,209,218,218,218,173,173,173,173, 17,173,173,173,218,218,218,209, - 17,218,218,218,173,173,173, 17, 17,173,173,173,218,218,209, 17, 17, - 218,218,218,173,173,173, 17, 17,173,173,173,218,218,218,209, 17,218, - 218,218,173,173,173,173, 17,173,173,173,218,218,218,218,209,218,218, - 218,173,173,173,173,173,173,173,173,218,218,218,218,218,218,218,218, - 173,173,173,173,173,173,173,173); + repimg_Previous: array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255, 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0, + 128,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, 0, 0,128,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 0, 0,128, 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, + 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, + 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, + 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); const - repimg_Stop : Array[0..245] of byte = ( - 66, 77,246, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 40, 0, 0, - 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,128, 0, 0, 0,128, - 128, 0,128, 0, 0, 0,128, 0,128, 0,128,128, 0, 0,192,192,192, - 0,128,128,128, 0, 0, 0,255, 0, 0,255, 0, 0, 0,255,255, 0, - 255, 0, 0, 0,255, 0,255, 0,255,255, 0, 0,255,255,255, 0, 51, - 35,153,153,153,153, 34, 35, 51, 41,153,153,153,153,147, 51, 50,153, - 153,153,153,153,153, 51, 41,153,153,153,153,153,153,147,153,255,153, - 249,159,153,249,153,159,153,249,249,249,249,249,153,153,153,249,249, - 249,249,249,153,153,159,153,249,249,249,255,153,153,249,153,249,249, - 249,249,249,159,153,153,249,249,249,249,249,159,153,249,249,249,249, - 249,249,153,255,159,255,159,153,255,153, 57,153,153,153,153,153,153, - 147, 51,153,153,153,153,153,153, 51, 51, 57,153,153,153,153,147, 51, - 51, 51,153,153,153,153, 51, 51); + repimg_Stop: array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0, + 255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255, 0, 0,255, 0, 0,255, 0, 0, + 255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0, + 255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,255, + 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0, + 255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255,255, 0,255, 0, 0,255, 0, 0,255,255,255,255, + 255,255,255, 0, 0,255, 0, 0,255,255,255,255, 0, 0,255, 0, 0, + 255,255,255,255, 0, 0,255, 0, 0,255,255,255,255, 0, 0,255, 0, + 0,255, 0, 0,255, 0, 0,255,255,255,255, 0, 0,255, 0, 0,255, + 255,255,255, 0, 0,255,255,255,255, 0, 0,255,255,255,255, 0, 0, + 255,255,255,255, 0, 0,255,255,255,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255,255,255,255, + 0, 0,255,255,255,255, 0, 0,255,255,255,255, 0, 0,255,255,255, + 255, 0, 0,255,255,255,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255, 0, 0,255,255,255,255, 0, 0,255, 0, 0,255, + 255,255,255, 0, 0,255,255,255,255, 0, 0,255,255,255,255, 0, 0, + 255,255,255,255,255,255,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255,255,255,255, 0, 0,255, 0, 0,255, 0, 0,255,255,255,255, + 0, 0,255,255,255,255, 0, 0,255,255,255,255, 0, 0,255,255,255, + 255, 0, 0,255,255,255,255, 0, 0,255, 0, 0,255,255,255,255, 0, + 0,255, 0, 0,255, 0, 0,255, 0, 0,255,255,255,255, 0, 0,255, + 255,255,255, 0, 0,255,255,255,255, 0, 0,255,255,255,255, 0, 0, + 255,255,255,255, 0, 0,255, 0, 0,255,255,255,255, 0, 0,255, 0, + 0,255,255,255,255, 0, 0,255,255,255,255, 0, 0,255,255,255,255, + 0, 0,255,255,255,255, 0, 0,255,255,255,255, 0, 0,255,255,255, + 255, 0, 0,255, 0, 0,255, 0, 0,255,255,255,255,255,255,255, 0, + 0,255,255,255,255,255,255,255,255,255,255, 0, 0,255,255,255,255, + 0, 0,255, 0, 0,255,255,255,255,255,255,255, 0, 0,255, 0, 0, + 255,255, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, + 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255,255, 0,255,255, 0, + 255,255, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, + 0, 0,255, 0, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, 0,255, 0, + 0,255, 0, 0,255, 0, 0,255, 0, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); const - repimg_Suivant : Array[0..245] of byte = ( - 66, 77,246, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 40, 0, 0, - 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 16, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,128, 0, 0, 0,128, - 128, 0,128, 0, 0, 0,128, 0,128, 0,128,128, 0, 0,128,128,128, - 0,192,192,192, 0, 0, 0,255, 0,192,192,192, 0, 0,255,255, 0, - 255, 0, 0, 0,192,192,192, 0,255,255, 0, 0,255,255,255, 0,218, - 218,218,218,218,218,218,218,173,173,173,173,173,173,173,173,218,218, - 218,218,218,218,218,218,173,173,173,173,173,173,173,173,218,218,218, - 26,218,218,218,218,173,173,173, 17,173,173,173,173,218,218,218, 17, - 26,218,218,218,173,173,173, 17, 17,173,173,173,218,218,218, 17, 17, - 26,218,218,173,173,173, 17, 17,173,173,173,218,218,218, 17, 26,218, - 218,218,173,173,173, 17,173,173,173,173,218,218,218, 26,218,218,218, - 218,173,173,173,173,173,173,173,173,218,218,218,218,218,218,218,218, - 173,173,173,173,173,173,173,173); + repimg_Next: array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255, 0, 0,128,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255, 0, 0,128, 0, 0,128,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255, 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 0, 0,128, 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, + 0, 0,128, 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, + 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, 0, 0,128, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255, 0, 0,128, 0, 0,128,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255, 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + const - repimg_Debut : Array[0..245] of byte = ( - 66, 77,246, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 40, 0, 0, - 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,128, 0, 0, 0,128, - 128, 0,128, 0, 0, 0,128, 0,128, 0,128,128, 0, 0,192,192,192, - 0,128,128,128, 0, 0, 0,255, 0, 0,255, 0, 0, 0,255,255, 0, - 255, 0, 0, 0,255, 0,255, 0,255,255, 0, 0,255,255,255, 0,119, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, 68, - 119,119,113,119,119,119,119, 68,119,119, 17,119,119,119,119, 68,119, - 113, 17,119,119,119,119, 68,119, 17, 17,119,119,119,119, 68,113, 17, - 17,119,119,119,119, 68,119, 17, 17,119,119,119,119, 68,119,113, 17, - 119,119,119,119, 68,119,119, 17,119,119,119,119, 68,119,119,113,119, - 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, - 119,119,119,119,119,119,119,119); + repimg_First: array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 18, 11, 0, 0, 18, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,128, 0, 0,128, 0, 0,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255, 0, 0,128,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 128, 0, 0,128, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255, 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,128, 0, 0, + 128, 0, 0,255, 0,255,255, 0,255,255, 0,255, 0, 0,128, 0, 0, + 128, 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,128, 0, 0,128, 0, 0, + 255, 0,255,255, 0,255, 0, 0,128, 0, 0,128, 0, 0,128, 0, 0, + 128,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,128, 0, 0,128, 0, 0,255, 0,255, + 0, 0,128, 0, 0,128, 0, 0,128, 0, 0,128, 0, 0,128,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,128, 0, 0,128, 0, 0,255, 0,255,255, 0,255, + 0, 0,128, 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,128, 0, 0,128, 0, 0,255, 0,255,255, 0,255,255, 0,255, + 0, 0,128, 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,128, + 0, 0,128, 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 0, 0,128, 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,128, 0, 0,128, + 0, 0,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 0, 0,128,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0, + 255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, + 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255,255, 0,255, + 255, 0,255,255, 0,255); + procedure CreateReportImages; begin - fpgImages.AddMaskedBMP('repimg.Last',@repimg_Fin,sizeof(repimg_Fin),0,0); + fpgImages.AddMaskedBMP('repimg.Last',@repimg_Last,sizeof(repimg_Last),0,0); - fpgImages.AddMaskedBMP('repimg.Printer',@repimg_Imprimante,sizeof(repimg_Imprimante),0,0); + fpgImages.AddMaskedBMP('repimg.Printer',@repimg_Printer,sizeof(repimg_Printer),0,0); - fpgImages.AddMaskedBMP('repimg.Precedent',@repimg_Precedent,sizeof(repimg_Precedent),0,0); + fpgImages.AddMaskedBMP('repimg.Previous',@repimg_Previous,sizeof(repimg_Previous),0,0); fpgImages.AddMaskedBMP('repimg.Stop',@repimg_Stop,sizeof(repimg_Stop),0,0); - fpgImages.AddMaskedBMP('repimg.Next',@repimg_Suivant,sizeof(repimg_Suivant),0,0); + fpgImages.AddMaskedBMP('repimg.Next',@repimg_Next,sizeof(repimg_Next),0,0); - fpgImages.AddMaskedBMP('repimg.First',@repimg_Debut,sizeof(repimg_Debut),0,0); + fpgImages.AddMaskedBMP('repimg.First',@repimg_First,sizeof(repimg_First),0,0); end; @@ -172,7 +396,7 @@ begin fpgImages.DeleteImage('repimg.Printer',True); - fpgImages.DeleteImage('repimg.Precedent',True); + fpgImages.DeleteImage('repimg.Previous',True); fpgImages.DeleteImage('repimg.Stop',True); diff --git a/src/reportengine/u_visu.pas b/src/reportengine/u_visu.pas index bd82c704..b9d2907d 100644 --- a/src/reportengine/u_visu.pas +++ b/src/reportengine/u_visu.pas @@ -515,7 +515,7 @@ begin Bv_Sections := CreateBevel(Bv_Command, 540, 5, 500, 40, bsBox, bsLowered); Bt_FirstPage := CreateButton(Bv_Pages, 54, 6, 26, '', @Bt_FirstPageClick, 'repimg.First'); - Bt_PrecPage := CreateButton(Bv_Pages, 80, 6, 26, '', @Bt_PrecPageClick, 'repimg.Precedent'); + Bt_PrecPage := CreateButton(Bv_Pages, 80, 6, 26, '', @Bt_PrecPageClick, 'repimg.Previous'); E_NumPage := CreateEditInteger(Bv_Pages, 110, 6, 60, 0); E_NumPage.OnKeyPress := @E_NumPageKeypress; Bt_NextPage := CreateButton(Bv_Pages, 174, 6, 26, '', @Bt_NextPageClick, 'repimg.Next'); @@ -524,7 +524,7 @@ begin L_FromPage := CreateLabel(Bv_Pages, 235, E_NumPage.Top, rsReportPageOf, 30, E_NumPage.Height, taLeftJustify, tlcenter); L_NbrPages := CreateLabel(Bv_Pages, 265, E_NumPage.Top, ' ', 30, E_NumPage.Height, taCenter, tlcenter); - Bt_PrecSect := CreateButton(Bv_Sections, 90, 6, 26, '', @Bt_PrecSectClick, 'repimg.Precedent'); + Bt_PrecSect := CreateButton(Bv_Sections, 90, 6, 26, '', @Bt_PrecSectClick, 'repimg.Previous'); E_NumSect := CreateEditInteger(Bv_Sections, 120, 6, 60, 0); E_NumSect.OnKeyPress := @E_NumSectKeyPress; Bt_NextSect := CreateButton(Bv_Sections, 184, 6, 26, '', @Bt_NextSectClick, 'repimg.Next'); -- cgit v1.2.3-70-g09d2 From c5aa9b1adbbe6194a2ab269656bf5abdc0aff95f Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Wed, 27 Mar 2013 16:40:37 +0000 Subject: aggpas: Improved font work-around to work for FreeBSD too. --- src/corelib/render/software/Agg2D.pas | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/corelib') diff --git a/src/corelib/render/software/Agg2D.pas b/src/corelib/render/software/Agg2D.pas index 79940cbd..36737c2b 100644 --- a/src/corelib/render/software/Agg2D.pas +++ b/src/corelib/render/software/Agg2D.pas @@ -3539,7 +3539,11 @@ begin {$IFDEF WINDOWS} Font('Arial', 13); {$ELSE} - Font('/usr/share/fonts/truetype/ttf-liberation/LiberationSans-Regular.ttf', 13); + {$IFDEF BSD} + Font('/usr/local/lib/X11/fonts/Liberation/LiberationSans-Regular.ttf', 13); + {$ELSE} + Font('/usr/share/fonts/truetype/ttf-liberation/LiberationSans-Regular.ttf', 13); + {$ENDIF} {$ENDIF} end; -- cgit v1.2.3-70-g09d2 From 27080df98c700f8ef9ff58d2608d031f9907e30d Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Wed, 27 Mar 2013 17:32:26 +0000 Subject: aggpas backend: finally implemented DoDrawPolygon() Rather late than never. ;-) --- src/corelib/render/software/Agg2D.pas | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/corelib') diff --git a/src/corelib/render/software/Agg2D.pas b/src/corelib/render/software/Agg2D.pas index 36737c2b..280736af 100644 --- a/src/corelib/render/software/Agg2D.pas +++ b/src/corelib/render/software/Agg2D.pas @@ -3749,8 +3749,21 @@ begin end; procedure TAgg2D.DoDrawPolygon(Points: PPoint; NumPts: Integer; Winding: boolean); +var + i: integer; + poly: array of double; begin - + SetLength(poly, (NumPts*2)+1); // dynamic arrays start at 0, but we want to use 1..NumPts + for i := 1 to NumPts do + begin + poly[i * 2 - 1] := Points[i-1].X + 0.5; + poly[i * 2] := Points[i-1].Y + 0.5; + end; + // Draw Polygon + LineWidth(1); + LineColor(LineColor); + FillColor($00, $00, $00); // clBlack for now + Polygon(@poly[1], NumPts); end; -- cgit v1.2.3-70-g09d2 From 17ac1344ebb5cf742b2c959596d30732a0bd3a85 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Tue, 2 Apr 2013 11:56:03 +0100 Subject: Buttons & Styles now support hover effect on standard buttons too. Before we only had the mouse hover effect on Flat buttons. But now the Style can enable hover support for normal buttons too. Important for Win7 and MacOSX like themes. --- src/corelib/fpg_main.pas | 6 ++++++ src/gui/fpg_button.pas | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_main.pas b/src/corelib/fpg_main.pas index f90e6b4c..89c5da1d 100644 --- a/src/corelib/fpg_main.pas +++ b/src/corelib/fpg_main.pas @@ -214,6 +214,7 @@ type procedure DrawButtonFace(ACanvas: TfpgCanvas; r: TfpgRect; AFlags: TfpgButtonFlags); overload; function GetButtonBorders: TRect; virtual; function GetButtonShift: TPoint; virtual; + function HasButtonHoverEffect: boolean; virtual; { Menus } procedure DrawMenuBar(ACanvas: TfpgCanvas; r: TfpgRect; ABackgroundColor: TfpgColor); virtual; procedure DrawMenuRow(ACanvas: TfpgCanvas; r: TfpgRect; AFlags: TfpgMenuItemFlags); virtual; @@ -2340,6 +2341,11 @@ begin Result := Point(1, 1); end; +function TfpgStyle.HasButtonHoverEffect: boolean; +begin + Result := False; +end; + function TfpgStyle.GetControlFrameBorders: TRect; begin Result := Rect(2, 2, 2, 2); diff --git a/src/gui/fpg_button.pas b/src/gui/fpg_button.pas index 28db95d6..3bc026de 100644 --- a/src/gui/fpg_button.pas +++ b/src/gui/fpg_button.pas @@ -550,6 +550,12 @@ begin Include(lBtnFlags, btfHover) else if FFlat then Include(lBtnFlags, btfFlat); + + if (not FFlat) and (not FDown) and fpgStyle.HasButtonHoverEffect then + begin + if FState = 1 then + Include(lBtnFlags, btfHover); + end; end else begin @@ -558,7 +564,7 @@ begin Include(lBtnFlags, btfHover); end; - if not FFlat and FDefault then + if (not FFlat) and FDefault then Include(lBtnFlags, btfIsDefault); if FBackgroundColor <> clButtonFace then @@ -747,7 +753,7 @@ begin FDown := False; Repaint; end - else if FFlat then + else if FFlat or fpgStyle.HasButtonHoverEffect then begin if Enabled then Repaint; @@ -766,7 +772,7 @@ begin FDown := True; Repaint; end - else if FFlat then + else if FFlat or fpgStyle.HasButtonHoverEffect then begin if Enabled then Repaint; -- cgit v1.2.3-70-g09d2 From 65951c8a1aff10e6b893f53a62db2621014197eb Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Tue, 2 Apr 2013 11:58:26 +0100 Subject: core: Debug output is now sent to the Debug Server instead of console output. This makes testing a bit easier on all platforms. --- src/corelib/fpg_main.pas | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_main.pas b/src/corelib/fpg_main.pas index 89c5da1d..44ab6a82 100644 --- a/src/corelib/fpg_main.pas +++ b/src/corelib/fpg_main.pas @@ -457,6 +457,9 @@ uses {$ifdef AGGCanvas} Agg2D, {$endif} +{$IFDEF DEBUG} + dbugintf, +{$ENDIF} fpg_imgfmt_bmp, fpg_stdimages, fpg_translations, @@ -832,14 +835,14 @@ begin FClassName := AClassName; FMethodName := AMethodName; {$IFDEF DEBUG} - Writeln(Format('%s>> %s.%s', [spacing, FClassName, FMethodName])); + SendDebug(Format('%s>> %s.%s', [spacing, FClassName, FMethodName])); {$ENDIF} end; destructor TPrintCallTrace.Destroy; begin {$IFDEF DEBUG} - Writeln(Format('%s<< %s.%s', [spacing, FClassName, FMethodName])); + SendDebug(Format('%s<< %s.%s', [spacing, FClassName, FMethodName])); {$ENDIF} dec(iCallTrace); inherited Destroy; @@ -1167,7 +1170,7 @@ begin end; {$IFDEF DEBUG} - Writeln('GetNamedFontDesc error: "' + afontid + '" is missing. Default is used.'); + SendDebug('GetNamedFontDesc error: "' + afontid + '" is missing. Default is used.'); {$ENDIF} Result := FPG_DEFAULT_FONT_DESC; end; @@ -1328,7 +1331,7 @@ begin begin fr.Free; {$IFDEF DEBUG} - writeln('fpGFX: Error opening font.'); + SendDebug('fpGFX: Error opening font.'); {$ENDIF} end; end; @@ -1651,7 +1654,7 @@ end; procedure TfpgApplication.HideHint; begin {$IFDEF DEBUG} - writeln('HideHint'); + SendDebug('HideHint'); {$ENDIF} FHintTimer.Enabled := False; if Assigned(FHintWindow) and TfpgHintWindow(FHintWindow).Visible then @@ -2439,7 +2442,7 @@ begin {$Note This occurs every now and again with TfpgMemo and CaretInvert painting! } // Investigate this. {$IFDEF DEBUG} - writeln('TfpgCaret.InvertCaret cause an exception'); + SendDebug('TfpgCaret.InvertCaret cause an exception'); {$ENDIF} end; end; -- cgit v1.2.3-70-g09d2 From 27140cc6d5bd4ec1b2429d50530ab46b5fb505bc Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Wed, 3 Apr 2013 00:39:28 +0100 Subject: minor code formatting --- src/corelib/render/software/Agg2D.pas | 82 +++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/render/software/Agg2D.pas b/src/corelib/render/software/Agg2D.pas index 280736af..50a68fb8 100644 --- a/src/corelib/render/software/Agg2D.pas +++ b/src/corelib/render/software/Agg2D.pas @@ -40,51 +40,51 @@ interface {$ENDIF} uses - agg_basics , - agg_array , - agg_trans_affine , - agg_trans_viewport , - agg_path_storage , - agg_conv_stroke , - agg_conv_transform , - agg_conv_curve , - agg_conv_dash , - agg_rendering_buffer , - agg_renderer_base , - agg_renderer_scanline , - agg_span_gradient , - agg_span_image_filter_rgba , - agg_span_image_resample_rgba , - agg_span_converter , - agg_span_interpolator_linear , - agg_span_allocator , - agg_rasterizer_scanline_aa , - agg_gamma_functions , - agg_scanline_u , - agg_arc , - agg_bezier_arc , - agg_rounded_rect , - agg_font_engine , - agg_font_cache_manager , - agg_pixfmt , - agg_pixfmt_rgb , - agg_pixfmt_rgba , - agg_color , - agg_math_stroke , - agg_image_filters , - agg_vertex_source , - agg_render_scanlines , + agg_basics , + agg_array , + agg_trans_affine , + agg_trans_viewport , + agg_path_storage , + agg_conv_stroke , + agg_conv_transform , + agg_conv_curve , + agg_conv_dash , + agg_rendering_buffer , + agg_renderer_base , + agg_renderer_scanline , + agg_span_gradient , + agg_span_image_filter_rgba , + agg_span_image_resample_rgba , + agg_span_converter , + agg_span_interpolator_linear , + agg_span_allocator , + agg_rasterizer_scanline_aa , + agg_gamma_functions , + agg_scanline_u , + agg_arc , + agg_bezier_arc , + agg_rounded_rect , + agg_font_engine , + agg_font_cache_manager , + agg_pixfmt , + agg_pixfmt_rgb , + agg_pixfmt_rgba , + agg_color , + agg_math_stroke , + agg_image_filters , + agg_vertex_source , + agg_render_scanlines , {$IFDEF AGG2D_USE_FREETYPE } - agg_font_freetype , + agg_font_freetype , {$ENDIF } {$IFDEF AGG2D_USE_WINFONTS} - agg_font_win32_tt , + agg_font_win32_tt , {$ENDIF } - Math , - Classes, - SysUtils, + Math, + Classes, + SysUtils, // This allows for platform specific uses clauses {$define uses_interface} @@ -98,8 +98,8 @@ uses {$I agg_platform_x11.inc} {$ENDIF} - fpg_base, - fpg_main; + fpg_base, + fpg_main; { GLOBAL VARIABLES & CONSTANTS } const -- cgit v1.2.3-70-g09d2 From 769c2fb098517607ff54314ea160895263b9a125 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Wed, 3 Apr 2013 12:26:27 +0100 Subject: debug support --- src/corelib/fpg_base.pas | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas index 5158540e..07d44191 100644 --- a/src/corelib/fpg_base.pas +++ b/src/corelib/fpg_base.pas @@ -22,6 +22,9 @@ unit fpg_base; // To enable the AggPas powered Canvas {.$define AGGCanvas} +// For debug use only +{.$define GDEBUG} + interface uses @@ -780,6 +783,9 @@ uses fpg_form, // needed for fpgApplication.CreateForms() typinfo, process, + {$IFDEF GDEBUG} + dbugintf, + {$ENDIF} dateutils; @@ -2617,7 +2623,9 @@ begin p.CommandLine := GetHelpViewer + ' ' + HelpFile else p.CommandLine := GetHelpViewer + ' ' + HelpFile + ' -n ' + IntToStr(AHelpContext); -//writeln('DEBUG: TfpgApplicationBase.ContextHelp > ', p.CommandLine); + {$ifdef GDEBUG} + senddebug(p.CommandLine); + {$endif} end else p.CommandLine := GetHelpViewer; @@ -2640,7 +2648,9 @@ begin if fpgFileExists(HelpFile) then begin p.CommandLine := GetHelpViewer + ' ' + HelpFile + ' -s ' + AHelpKeyword; -//writeln('DEBUG: TfpgApplicationBase.ContextHelp > ', p.CommandLine); + {$ifdef GDEBUG} + senddebug(p.CommandLine); + {$endif} end else p.CommandLine := GetHelpViewer; -- cgit v1.2.3-70-g09d2 From c1b355588ffdd76402e380e6006756fb585aca3f Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Thu, 4 Apr 2013 23:44:37 +0100 Subject: bmp code now raises an exception for a unknown BMP format. Before it would have done a writeln() which would go unnoticed under Linux, and cause an AV under Windows GUI apps. --- src/corelib/fpg_imgfmt_bmp.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_imgfmt_bmp.pas b/src/corelib/fpg_imgfmt_bmp.pas index 353b3216..5add70ba 100644 --- a/src/corelib/fpg_imgfmt_bmp.pas +++ b/src/corelib/fpg_imgfmt_bmp.pas @@ -314,7 +314,7 @@ begin until linecnt >= img.Height; end; else - writeln('Unsupported BMP format!'); + raise Exception.Create('Unsupported BMP format!'); end; if ppal <> nil then -- cgit v1.2.3-70-g09d2 From 6d8f7199812c53f7454df1bac7d7432bb6719f10 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Fri, 5 Apr 2013 10:05:09 +0100 Subject: Initial support for reading OS/2 Bitmap files. They have a slightly different structure to Windows BMP files - now the more common format. --- src/corelib/fpg_imgfmt_bmp.pas | 231 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) (limited to 'src/corelib') diff --git a/src/corelib/fpg_imgfmt_bmp.pas b/src/corelib/fpg_imgfmt_bmp.pas index 5add70ba..296e515d 100644 --- a/src/corelib/fpg_imgfmt_bmp.pas +++ b/src/corelib/fpg_imgfmt_bmp.pas @@ -39,6 +39,9 @@ uses fpg_utils; +procedure ReadImage_OS2BMP(img: TfpgImage; bmp: Pointer; bmpsize: longword); forward; + + function CreateImage_BMP(bmp: Pointer; bmpsize: longword): TfpgImage; begin Result := TfpgImage.Create; @@ -147,6 +150,13 @@ begin p := bmp; PByte(bh) := p; + + if bh^.signature = $4d62 then { 'bM' } + begin + ReadImage_OS2BMP(img, bmp, bmpsize); + exit; + end; + ppal := nil; if bh^.filesize <> bmpsize then Exit; //==> @@ -323,5 +333,226 @@ begin img.UpdateImage; end; +type + { These records come from the HelpBitmap unit - part of DocView } + INFBITMAPHEADER = packed record + // BITMAP FILE HEADER + usType: uint16; // = 'bM' + cbSize: uint32; + xHotspot: uint16; + yHotspot: uint16; + DataOffset: uint32; // =size(hdr)+size(palette) + // BITMAP INFO HEADER + cbFIx: uint32; // =size(info_hdr) (usually = 12?) + Width: uint16; // width size + Height: uint16; // height size + cPlanes: uint16; // planes, =1 (always seems to be one) + BitCount: uint16; // bits per pixel + // followed by RGB triples if <= 8bpp + end; + + +procedure ReadImage_OS2BMP(img: TfpgImage; bmp: Pointer; bmpsize: longword); +var + bh: ^INFBITMAPHEADER; + p: PByte; + ppal: plongword; + pcol: Plongword; + palsize: integer; + pdata: PByte; + b: byte; + bit: byte; + bcnt: byte; + linecnt: integer; + pixelcnt: integer; + pdest: Plongword; + depth: integer; + + function GetPalColor(cindex: longword): longword; + var + pc: Plongword; + begin + pc := ppal; + Inc(pc, cindex); + Result := pc^; + end; + +begin + if img = nil then + Exit; //==> + + img.FreeImage; + + ppal := nil; + p := bmp; + PByte(bh) := p; + + pdata := bmp; + Inc(pdata, bh^.DataOffset); + Inc(p, SizeOf(INFBITMAPHEADER)); + + depth := bh^.BitCount; + + if depth > 1 then + img.AllocateImage(32, bh^.Width, bh^.Height)// color image (RGB or Indexed) + else + begin + img.AllocateImage(1, bh^.Width, bh^.Height); + img.AllocateMask; + end; + + if depth <= 8 then + begin + // reading color palette + case depth of + 1: palsize := 2; + 4: palsize := 16; + else + palsize := 256; + end; + + GetMem(ppal, palsize * SizeOf(longword)); + + pcol := ppal; + pixelcnt := 0; + while (p) < (pdata) do + begin + pcol^ := (LongWord(p[3]) shl 24) + (LongWord(p[2]) shl 16) + (LongWord(p[1]) shl 8) + LongWord(p[0]); + Inc(pcol); + inc(p, 4); + Inc(pixelcnt); + end; + end; + + pdest := img.ImageData; + Inc(pdest, img.Width * (img.Height - 1)); // bottom-up line order + p := bmp; + Inc(p, bh^.DataOffset); + + // reading the data... + case depth of + 1: + begin + // direct line transfer + //writeln('reading 1-bit color bitmap'); + linecnt := 0; + bcnt := img.Width div 32; + if (img.Width and $1F) > 0 then + Inc(bcnt); + + pdest := img.ImageData; + Inc(pdest, bcnt * (img.Height - 1)); // bottom-up line order + repeat + move(p^, pdest^, bcnt * 4); + Inc(p, bcnt * 4); + Dec(pdest, bcnt); + Inc(linecnt); + until linecnt >= img.Height; + + //Writeln(linecnt,' lines loaded.'); + move(img.ImageData^, img.MaskData^, img.ImageDataSize); + img.Invert(True); + end; + + 4: + begin + //writeln('reading 4-bit color'); + linecnt := 0; + repeat + // parse one line.. + bit := 0; + pixelcnt := 0; + bcnt := 0; + repeat + if bit = 0 then + b := (p^ shr 4) and $0F + else + begin + b := p^ and $0F; + Inc(p); + Inc(bcnt); + end; + + pdest^ := GetPalColor(b); + Inc(pdest); + Inc(pixelcnt); + bit := bit xor 1; + until pixelcnt >= img.Width; + + while (bcnt mod 4) <> 0 do + begin + Inc(bcnt); + Inc(p); + end; + + Inc(linecnt); + Dec(pdest, img.Width * 2); // go to next line + until linecnt >= img.Height; + end; + + 8: + begin + //writeln('reading 8-bit color'); + linecnt := 0; + repeat + // parse one line.. + pixelcnt := 0; + repeat + pdest^ := GetPalColor(p^); + Inc(p); + Inc(pdest); + Inc(pixelcnt); + until pixelcnt >= img.Width; + + while (pixelcnt mod 4) <> 0 do + begin + Inc(pixelcnt); + Inc(p); + end; + + Inc(linecnt); + Dec(pdest, img.Width * 2); // go to next line + until linecnt >= img.Height; + end; + + 24: + begin + //writeln('reading truecolor'); + linecnt := 0; + repeat + // parse one line.. + pixelcnt := 0; + repeat + pdest^ := p^; + Inc(p); + pdest^ := pdest^ or (longword(p^) shl 8); + Inc(p); + pdest^ := pdest^ or (longword(p^) shl 16) or ($FF shl 24) {alpha set to full opaque}; + Inc(p); + Inc(pdest); + Inc(pixelcnt); + until pixelcnt >= img.Width; + + pixelcnt := img.Width * 3; + while (pixelcnt mod 4) <> 0 do + begin + Inc(pixelcnt); + Inc(p); + end; + + Inc(linecnt); + Dec(pdest, img.Width * 2); // go to next line + until linecnt >= img.Height; + end; + else + raise Exception.Create('Unsupported BMP format!'); + end; + + if ppal <> nil then + FreeMem(ppal); + + img.UpdateImage; +end; + end. -- cgit v1.2.3-70-g09d2 From 438c1d116b5ab66cb1f787d3a7c3923cc8714e78 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Sat, 6 Apr 2013 02:36:50 +0100 Subject: os/2 bitmaps with bitdepth of 1,4 or 8 have a 3 byte color palette. I originally read it as a 4-byte color palette. This fixes the colors of images (mostly), but there still seems to be some or other decoding issues with larger than 65KB images. --- src/corelib/fpg_imgfmt_bmp.pas | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_imgfmt_bmp.pas b/src/corelib/fpg_imgfmt_bmp.pas index 296e515d..ff354898 100644 --- a/src/corelib/fpg_imgfmt_bmp.pas +++ b/src/corelib/fpg_imgfmt_bmp.pas @@ -1,7 +1,7 @@ { fpGUI - Free Pascal GUI Toolkit - Copyright (C) 2006 - 2010 See the file AUTHORS.txt, included in this + Copyright (C) 2006 - 2013 See the file AUTHORS.txt, included in this distribution, for details of the copyright. See the file COPYING.modifiedLGPL, included in this distribution, @@ -415,11 +415,12 @@ begin pcol := ppal; pixelcnt := 0; + // OS/2 1.x bitmap with uses 3-byte palette while (p) < (pdata) do begin - pcol^ := (LongWord(p[3]) shl 24) + (LongWord(p[2]) shl 16) + (LongWord(p[1]) shl 8) + LongWord(p[0]); + pcol^ := (LongWord($FF) shl 24) + (LongWord(p[2]) shl 16) + (LongWord(p[1]) shl 8) + LongWord(p[0]); Inc(pcol); - inc(p, 4); + inc(p, 3); Inc(pixelcnt); end; end; -- cgit v1.2.3-70-g09d2 From c8fd343228367e477fbc313570b342e9292b10c5 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Mon, 8 Apr 2013 01:43:59 +0100 Subject: Menu shortcuts with F1 key combinations never worked. The global F1 (application help) shortcut handling never looked at the ShiftState value. So if we had a popup menu with F1->help; Ctrl+F1->About, the second item's shortcut with be interpreted as F1 only. --- src/corelib/fpg_widget.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_widget.pas b/src/corelib/fpg_widget.pas index 67206557..a74c1b30 100644 --- a/src/corelib/fpg_widget.pas +++ b/src/corelib/fpg_widget.pas @@ -960,7 +960,7 @@ begin dir := 0; - if not consumed and (keycode = fpgApplication.HelpKey) then + if not consumed and (keycode = fpgApplication.HelpKey) and (shiftstate=[]) then begin InvokeHelp; consumed := True; -- cgit v1.2.3-70-g09d2 From 7d5c05e08c7728dc86339cdd9903ce395935f86d Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Mon, 8 Apr 2013 09:04:35 +0100 Subject: New overloaded LoadImage_PNG() This allows us to read the image from a byte array, just like we do with BMP images. --- src/corelib/fpg_imgfmt_png.pas | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_imgfmt_png.pas b/src/corelib/fpg_imgfmt_png.pas index c0659d2e..c95150e4 100644 --- a/src/corelib/fpg_imgfmt_png.pas +++ b/src/corelib/fpg_imgfmt_png.pas @@ -1,7 +1,7 @@ { fpGUI - Free Pascal GUI Toolkit - Copyright (C) 2006 - 2012 See the file AUTHORS.txt, included in this + Copyright (C) 2006 - 2013 See the file AUTHORS.txt, included in this distribution, for details of the copyright. See the file COPYING.modifiedLGPL, included in this distribution, @@ -31,6 +31,7 @@ uses function LoadImage_PNG(const AFileName: TfpgString): TfpgImage; overload; function LoadImage_PNG(AStream: TStream): TfpgImage; overload; +function LoadImage_PNG(const AImageData: Pointer; const AImageDataSize: LongWord): TfpgImage; overload; function LoadImage_PNG(AInstance: THandle; const AResName: String; AResType: PChar): TfpgImage; overload; function LoadImage_PNGcrop(const AMaxWidth, AMaxHeight: integer; const AFileName: TfpgString): TfpgImage; @@ -114,6 +115,19 @@ begin end; end; +function LoadImage_PNG(const AImageData: Pointer; const AImageDataSize: LongWord): TfpgImage; +var + s: TMemoryStream; +begin + s := TMemoryStream.Create; + try + s.Write(AImageData^, AImageDataSize); + Result := LoadImage_PNG(s); + finally + s.Free; + end; +end; + function LoadImage_PNG(AInstance: THandle; const AResName: String; AResType: PChar): TfpgImage; var res: TResourceStream; -- cgit v1.2.3-70-g09d2 From 49526e26477bddb4837f56dc545b09ac8eb9f3b0 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Wed, 10 Apr 2013 17:39:50 +0100 Subject: Change to still support FPC 2.6.0 during the fpGUI 1.0 release Even though I normally say I only support latest released FPC versions, this is a small change. --- src/corelib/fpg_imgfmt_bmp.pas | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/corelib') diff --git a/src/corelib/fpg_imgfmt_bmp.pas b/src/corelib/fpg_imgfmt_bmp.pas index ff354898..00637f3b 100644 --- a/src/corelib/fpg_imgfmt_bmp.pas +++ b/src/corelib/fpg_imgfmt_bmp.pas @@ -38,6 +38,12 @@ implementation uses fpg_utils; +{$IF FPC_FULLVERSION<20602} +type + uint16 = word; + uint32 = cardinal; +{$IFEND} + procedure ReadImage_OS2BMP(img: TfpgImage; bmp: Pointer; bmpsize: longword); forward; -- cgit v1.2.3-70-g09d2 From 4a176cfb8a152d5f7f0974af40b4ea9264d9f309 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Wed, 10 Apr 2013 17:40:31 +0100 Subject: Forgot to bump the version numbers of the fpgui_toolkit.lpk packages. --- src/corelib/gdi/fpgui_toolkit.lpk | 7 +++---- src/corelib/x11/fpgui_toolkit.lpk | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/gdi/fpgui_toolkit.lpk b/src/corelib/gdi/fpgui_toolkit.lpk index f3f349c3..bf019e5f 100644 --- a/src/corelib/gdi/fpgui_toolkit.lpk +++ b/src/corelib/gdi/fpgui_toolkit.lpk @@ -1,12 +1,11 @@ - + - - + @@ -31,7 +30,7 @@ - + diff --git a/src/corelib/x11/fpgui_toolkit.lpk b/src/corelib/x11/fpgui_toolkit.lpk index 2ac5a337..c769331e 100644 --- a/src/corelib/x11/fpgui_toolkit.lpk +++ b/src/corelib/x11/fpgui_toolkit.lpk @@ -28,7 +28,7 @@ - + -- cgit v1.2.3-70-g09d2 From 33c5d8cf5f14cadb89b2f82f3557fd9b0ab89348 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Wed, 17 Apr 2013 10:31:14 +0100 Subject: Revert "Add common procedures in fpg_base for deadkeys" This reverts commit ccfd4b2ae0a9dfae0d19ae7ba673118af70c75da. --- src/corelib/fpg_base.pas | 64 ----------------------------------------------- src/gui/fpg_edit.pas | 33 +++++++++++++++++++++--- src/gui/fpg_editcombo.pas | 33 +++++++++++++++++++++--- src/gui/fpg_memo.pas | 33 +++++++++++++++++++++--- 4 files changed, 90 insertions(+), 73 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas index 07d44191..f3e8f6db 100644 --- a/src/corelib/fpg_base.pas +++ b/src/corelib/fpg_base.pas @@ -747,8 +747,6 @@ type { Keyboard } function KeycodeToText(AKey: Word; AShiftState: TShiftState): string; function CheckClipboardKey(AKey: Word; AShiftstate: TShiftState): TClipboardKeyType; -function UseDeadKey(AChar: TfpgChar; AKey: word): TfpgChar; -function ReadDeadKey(AKey: word): integer; { Color } function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple; @@ -973,68 +971,6 @@ begin end { if/else } end; -function UseDeadKey(AChar: TfpgChar; AKey: word): TfpgChar; -begin - case AKey of - keyDeadCircumflex: - case AChar of - 'a': - Result:= 'â'; - 'e': - Result:= 'ê'; - 'i': - Result:= 'î'; - 'o': - Result:= 'ô'; - 'u': - Result:= 'û'; - 'A': - Result:= 'Â'; - 'E': - Result:= 'Ê'; - 'I': - Result:= 'Î'; - 'O': - Result:= 'Ô'; - 'U': - Result:= 'Û'; - end; - keyDeadDiaeresis: - case AChar of - 'a': - Result:= 'ä'; - 'e': - Result:= 'ë'; - 'i': - Result:= 'ï'; - 'o': - Result:= 'ö'; - 'u': - Result:= 'ü'; - 'A': - Result:= 'Ä'; - 'E': - Result:= 'Ë'; - 'I': - Result:= 'Ï'; - 'O': - Result:= 'Ö'; - 'U': - Result:= 'Ü'; - end; - end; -end; - -function ReadDeadKey(AKey: word): integer; -begin - case AKey of - keyDeadCircumflex, keyDeadDiaeresis: - Result := AKey; - else - Result := -1; - end; -end; - function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple; begin with Result do diff --git a/src/gui/fpg_edit.pas b/src/gui/fpg_edit.pas index 21e6895e..01c52d4c 100644 --- a/src/gui/fpg_edit.pas +++ b/src/gui/fpg_edit.pas @@ -758,7 +758,34 @@ begin prevval := Text; if FDeadKeyChar> -1 then begin - AText:= UseDeadKey(AText, FDeadKeyChar); + case FDeadKeyChar of + keyDeadDiaeresis: + case AText of + 'a': + AText:= 'â'; + 'e': + AText:= 'ë'; + 'i': + AText:= 'ï'; + 'o': + AText:= 'ö'; + 'u': + AText:= 'ü'; + end; + keyDeadCircumflex: + case AText of + 'a': + AText:= 'â'; + 'e': + AText:= 'ê'; + 'i': + AText:= 'î'; + 'o': + AText:= 'ô'; + 'u': + AText:= 'û'; + end; + end; FDeadKeyChar:= -1; end; s := AText; @@ -804,8 +831,8 @@ begin hasChanged := False; fpgApplication.HideHint; - if FDeadKeyChar = -1 then - FDeadKeyChar:= ReadDeadKey(keycode); + if (keycode= keyDeadCircumflex) or (keycode= keyDeadDiaeresis) then + FDeadKeyChar:= keycode; Consumed := True; case CheckClipBoardKey(keycode, shiftstate) of diff --git a/src/gui/fpg_editcombo.pas b/src/gui/fpg_editcombo.pas index 9145d641..72b804ef 100644 --- a/src/gui/fpg_editcombo.pas +++ b/src/gui/fpg_editcombo.pas @@ -526,7 +526,34 @@ begin prevval := FText; if FDeadKeyChar> -1 then begin - AText:= UseDeadKey(AText, FDeadKeyChar); + case FDeadKeyChar of + keyDeadDiaeresis: + case AText of + 'a': + AText:= 'â'; + 'e': + AText:= 'ë'; + 'i': + AText:= 'ï'; + 'o': + AText:= 'ö'; + 'u': + AText:= 'ü'; + end; + keyDeadCircumflex: + case AText of + 'a': + AText:= 'â'; + 'e': + AText:= 'ê'; + 'i': + AText:= 'î'; + 'o': + AText:= 'ô'; + 'u': + AText:= 'û'; + end; + end; FDeadKeyChar:= -1; end; s := AText; @@ -590,8 +617,8 @@ var begin hasChanged := False; - if FDeadKeyChar = -1 then - FDeadKeyChar:= ReadDeadKey(keycode); + if (keycode= 58536) or (keycode= 58462) then + FDeadKeyChar:= keycode; if not Enabled then consumed := False diff --git a/src/gui/fpg_memo.pas b/src/gui/fpg_memo.pas index 2769e4d4..c0b227ae 100644 --- a/src/gui/fpg_memo.pas +++ b/src/gui/fpg_memo.pas @@ -1064,7 +1064,34 @@ begin prevval := Text; if FDeadKeyChar> -1 then begin - AText:= UseDeadKey(AText, FDeadKeyChar); + case FDeadKeyChar of + keyDeadDiaeresis: + case AText of + 'a': + AText:= 'â'; + 'e': + AText:= 'ë'; + 'i': + AText:= 'ï'; + 'o': + AText:= 'ö'; + 'u': + AText:= 'ü'; + end; + keyDeadCircumflex: + case AText of + 'a': + AText:= 'â'; + 'e': + AText:= 'ê'; + 'i': + AText:= 'î'; + 'o': + AText:= 'ô'; + 'u': + AText:= 'û'; + end; + end; FDeadKeyChar:= -1; end; s := AText; @@ -1115,8 +1142,8 @@ begin Consumed := True; hasChanged := False; - if FDeadKeyChar = -1 then - FDeadKeyChar:= ReadDeadKey(keycode); + if (keycode= 58536) or (keycode= 58462) then + FDeadKeyChar:= keycode; case CheckClipBoardKey(keycode, shiftstate) of ckCopy: -- cgit v1.2.3-70-g09d2 From 8f91e7081f8b3b64e2dab0d8dfb0e0c16c7558a0 Mon Sep 17 00:00:00 2001 From: David Laurence Emerson Date: Tue, 28 May 2013 00:41:47 -0700 Subject: horizontal scrolling, commit 1 --- src/corelib/fpg_widget.pas | 18 +++++++++++++++ src/corelib/x11/fpg_x11.pas | 47 +++++++++++++++++++++++++------------ src/gui/fpg_basegrid.pas | 56 ++++++++++++++++++++++++++------------------- 3 files changed, 84 insertions(+), 37 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/fpg_widget.pas b/src/corelib/fpg_widget.pas index a74c1b30..ae18ff98 100644 --- a/src/corelib/fpg_widget.pas +++ b/src/corelib/fpg_widget.pas @@ -39,6 +39,8 @@ type TfpgDragDropEvent = procedure(Sender, Source: TObject; X, Y: integer; AData: variant) of object; + { TfpgWidget } + TfpgWidget = class(TfpgWindow) private FAcceptDrops: boolean; @@ -56,6 +58,7 @@ type FOnMouseMove: TMouseMoveEvent; FOnMouseUp: TMouseButtonEvent; FOnMouseScroll: TMouseWheelEvent; + FOnMouseHorizScroll: TMouseWheelEvent; FOnPaint: TPaintEvent; FOnKeyPress: TKeyPressEvent; FOnResize: TNotifyEvent; @@ -81,6 +84,7 @@ type procedure MsgMouseEnter(var msg: TfpgMessageRec); message FPGM_MOUSEENTER; procedure MsgMouseExit(var msg: TfpgMessageRec); message FPGM_MOUSEEXIT; procedure MsgMouseScroll(var msg: TfpgMessageRec); message FPGM_SCROLL; + procedure MsgMouseHorizScroll(var msg: TfpgMessageRec); message FPGM_HSCROLL; procedure MsgDropEnter(var msg: TfpgMessageRec); message FPGM_DROPENTER; procedure MsgDropExit(var msg: TfpgMessageRec); message FPGM_DROPEXIT; protected @@ -134,6 +138,7 @@ type procedure HandleMouseEnter; virtual; procedure HandleMouseExit; virtual; procedure HandleMouseScroll(x, y: integer; shiftstate: TShiftState; delta: smallint); virtual; + procedure HandleMouseHorizScroll(x, y: integer; shiftstate: TShiftState; delta: smallint); virtual; function FindFocusWidget(startwg: TfpgWidget; direction: TFocusSearchDirection): TfpgWidget; procedure HandleAlignments(const dwidth, dheight: TfpgCoord); virtual; procedure HandleShow; virtual; @@ -153,6 +158,7 @@ type property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove; property OnMouseUp: TMouseButtonEvent read FOnMouseUp write FOnMouseUp; property OnMouseScroll: TMouseWheelEvent read FOnMouseScroll write FOnMouseScroll; + property OnMouseHorizScroll: TMouseWheelEvent read FOnMouseHorizScroll write FOnMouseHorizScroll; property OnPaint: TPaintEvent read FOnPaint write FOnPaint; property OnResize: TNotifyEvent read FOnResize write FOnResize; property OnShowHint: THintEvent read GetOnShowHint write SetOnShowHint; @@ -854,6 +860,12 @@ begin msg.Params.mouse.shiftstate, msg.Params.mouse.delta); end; +procedure TfpgWidget.MsgMouseHorizScroll(var msg: TfpgMessageRec); +begin + HandleMouseHorizScroll(msg.Params.mouse.x, msg.Params.mouse.y, + msg.Params.mouse.shiftstate, msg.Params.mouse.delta); +end; + procedure TfpgWidget.MsgDropEnter(var msg: TfpgMessageRec); begin // do nothing @@ -1189,6 +1201,12 @@ begin FOnMouseScroll(self, shiftstate, delta, Point(x, y)); end; +procedure TfpgWidget.HandleMouseHorizScroll(x, y: integer; shiftstate: TShiftState; delta: smallint); +begin + if Assigned(FOnMouseHorizScroll) then + FOnMouseHorizScroll(self, shiftstate, delta, Point(x, y)); +end; + function TfpgWidget.FindFocusWidget(startwg: TfpgWidget; direction: TFocusSearchDirection): TfpgWidget; var w: TfpgWidget; diff --git a/src/corelib/x11/fpg_x11.pas b/src/corelib/x11/fpg_x11.pas index 20974dfe..27f59abe 100644 --- a/src/corelib/x11/fpg_x11.pas +++ b/src/corelib/x11/fpg_x11.pas @@ -1749,31 +1749,50 @@ begin if not blockmsg then begin if (ev.xbutton.button >= 4) and (ev.xbutton.button <= 7) then // mouse wheel + // 4=up, 5=down, 6=left, 7=right begin // generate scroll events: if ev._type = X.ButtonPress then begin - if ev.xbutton.button = Button4 then + if (ev.xbutton.button = Button4) or (ev.xbutton.button = 6) then // x.pp lacks Button6, Button7 i := -1 else i := 1; // Check for other mouse wheel messages in the queue - while XCheckTypedWindowEvent(display, ev.xbutton.window, X.ButtonPress, @NewEvent) do - begin - if NewEvent.xbutton.Button = 4 then - Dec(i) - else if NewEvent.xbutton.Button = 5 then - Inc(i) - else - begin - XPutBackEvent(display, @NewEvent); - break; - end; - end; + if ev.xbutton.button in [Button4,Button5] then + while XCheckTypedWindowEvent(display, ev.xbutton.window, X.ButtonPress, @NewEvent) do + begin + if NewEvent.xbutton.Button = 4 then + Dec(i) + else if NewEvent.xbutton.Button = 5 then + Inc(i) + else + begin + XPutBackEvent(display, @NewEvent); + break; + end; + end + else // button is 6 or 7 + while XCheckTypedWindowEvent(display, ev.xbutton.window, X.ButtonPress, @NewEvent) do + begin + if NewEvent.xbutton.Button = 6 then + Dec(i) + else if NewEvent.xbutton.Button = 7 then + Inc(i) + else + begin + XPutBackEvent(display, @NewEvent); + break; + end; + end; msgp.mouse.delta := i; - fpgPostMessage(nil, w, FPGM_SCROLL, msgp); + + if ev.xbutton.button in [Button4,Button5] then + fpgPostMessage(nil, w, FPGM_SCROLL, msgp) + else + fpgPostMessage(nil, w, FPGM_HSCROLL, msgp); end; end else diff --git a/src/gui/fpg_basegrid.pas b/src/gui/fpg_basegrid.pas index 3b0e445f..cc8bf0a6 100644 --- a/src/gui/fpg_basegrid.pas +++ b/src/gui/fpg_basegrid.pas @@ -135,6 +135,7 @@ type procedure HandleResize(awidth, aheight: TfpgCoord); override; procedure HandleKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean); override; procedure HandleMouseScroll(x, y: integer; shiftstate: TShiftState; delta: smallint); override; + procedure HandleMouseHorizScroll(x, y: integer; shiftstate: TShiftState; delta: smallint); override; procedure HandleMouseMove(x, y: integer; btnstate: word; shiftstate: TShiftState); override; procedure HandleLMouseUp(x, y: integer; shiftstate: TShiftState); override; procedure HandleLMouseDown(x, y: integer; shiftstate: TShiftState); override; @@ -1164,43 +1165,52 @@ end; procedure TfpgBaseGrid.HandleMouseScroll(x, y: integer; shiftstate: TShiftState; delta: smallint); var lRow: Integer; - lCol: Integer; begin inherited HandleMouseScroll(x, y, shiftstate, delta); lRow := FFirstRow; - lCol := FFirstCol; - if delta > 0 then // scroll down - inc(FFirstRow, abs(delta)*3) - else // scroll up - if FFirstRow > 0 then - dec(FFirstRow, abs(delta)*3); + // If vertical scrollbar is not visible, but + // horizontal is, Mouse wheel will scroll horizontally. :) + if FHScrollBar.Visible and (not FVScrollBar.Visible) then + begin + HandleMouseHorizScroll(x, y, shiftstate, delta); + Exit; + end; + + inc(FFirstRow, delta*3); // apply limits if FFirstRow > RowCount - VisibleLines then FFirstRow := RowCount - VisibleLines; if FFirstRow < 0 then FFirstRow := 0; - - // scroll left/right - // If vertical scrollbar is not visible, but - // horizontal is. Mouse wheel will scroll horizontally. :) - if FHScrollBar.Visible and (not FVScrollBar.Visible) then + + if lRow <> FFirstRow then begin - if delta > 0 then // scroll right - begin - if FFirstCol < (ColumnCount-1) then - inc(FFirstCol); - end - else - begin - if FFirstCol > 0 then - dec(FFirstCol); - end; + UpdateScrollBars; + RePaint; + end; +end; + +procedure TfpgBaseGrid.HandleMouseHorizScroll(x, y: integer; shiftstate: TShiftState; delta: smallint); +var + lCol: Integer; +begin + inherited HandleMouseHorizScroll(x, y, shiftstate, delta); + + lCol := FFirstCol; + + if go_SmoothScroll in Options then + begin + ; + end + else + begin + inc(FFirstCol, delta); end; - if (lRow <> FFirstRow) or (lCol <> FFirstCol) then + if lCol <> FFirstCol then begin UpdateScrollBars; RePaint; -- cgit v1.2.3-70-g09d2 From 2b8adfa477498d63a1cd5af4d428bfc4cc43e419 Mon Sep 17 00:00:00 2001 From: David Laurence Emerson Date: Tue, 28 May 2013 00:42:29 -0700 Subject: horizontal scrolling, commit 2 --- src/corelib/fpg_base.pas | 1 + 1 file changed, 1 insertion(+) (limited to 'src/corelib') diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas index f3e8f6db..504aa9ea 100644 --- a/src/corelib/fpg_base.pas +++ b/src/corelib/fpg_base.pas @@ -119,6 +119,7 @@ const FPGM_FREEME = 19; FPGM_DROPENTER = 20; FPGM_DROPEXIT = 21; + FPGM_HSCROLL = 22; FPGM_USER = 50000; FPGM_KILLME = MaxInt; -- cgit v1.2.3-70-g09d2