summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2008-08-31 10:09:44 +0000
committergraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2008-08-31 10:09:44 +0000
commit052d28c91a70678b264fb7772096da6fb6803dc3 (patch)
treea85abf936ba6f95bffcaae00b431121c305c032a /src
parent13bdc0b2269cfc49d605a057f24b0ba83c37b1b4 (diff)
downloadfpGUI-052d28c91a70678b264fb7772096da6fb6803dc3.tar.xz
* Made some changes to the Hint Help under Windows. Microsoft strikes
again with it's weird behaviour. Windows sends fake MouseMove messages when a windows is shown, hidden or moved. The backend had to filter out those fake messages. For more details on this see the following link. http://blogs.msdn.com/oldnewthing/archive/2003/10/01/55108.aspx
Diffstat (limited to 'src')
-rw-r--r--src/corelib/fpgfx.pas2
-rw-r--r--src/corelib/gdi/fpgui_toolkit.lpk658
-rw-r--r--src/corelib/gdi/fpgui_toolkit.pas3
-rw-r--r--src/corelib/gdi/gfx_gdi.pas40
-rw-r--r--src/corelib/gfx_widget.pas6
-rw-r--r--src/corelib/x11/fpgui_toolkit.pas24
-rw-r--r--src/gui/gui_edit.pas25
-rw-r--r--src/gui/gui_hint.pas21
8 files changed, 407 insertions, 372 deletions
diff --git a/src/corelib/fpgfx.pas b/src/corelib/fpgfx.pas
index 7dc0e469..7b777a4a 100644
--- a/src/corelib/fpgfx.pas
+++ b/src/corelib/fpgfx.pas
@@ -626,7 +626,7 @@ end;
procedure TfpgTimer.SetEnabled(const AValue: boolean);
begin
- if not FEnabled and AValue then
+ if (not FEnabled) and AValue then
FNextAlarm := now + interval * ONE_MILISEC;
FEnabled := AValue;
end;
diff --git a/src/corelib/gdi/fpgui_toolkit.lpk b/src/corelib/gdi/fpgui_toolkit.lpk
index 6acbaacb..4158ab1b 100644
--- a/src/corelib/gdi/fpgui_toolkit.lpk
+++ b/src/corelib/gdi/fpgui_toolkit.lpk
@@ -1,327 +1,331 @@
-<?xml version="1.0"?>
-<CONFIG>
- <Package Version="2">
- <PathDelim Value="\"/>
- <Name Value="fpgui_toolkit"/>
- <Author Value="Graeme Geldenhuys"/>
- <CompilerOptions>
- <Version Value="5"/>
- <PathDelim Value="\"/>
- <SearchPaths>
- <OtherUnitFiles Value="..\;..\..\gui\;..\..\gui\db\"/>
- <UnitOutputDirectory Value="..\..\..\lib"/>
- </SearchPaths>
- <Parsing>
- <SyntaxOptions>
- <CStyleOperator Value="False"/>
- <AllowLabel Value="False"/>
- <CPPInline Value="False"/>
- </SyntaxOptions>
- </Parsing>
- <CodeGeneration>
- <Generate Value="Faster"/>
- </CodeGeneration>
- <Other>
- <CompilerPath Value="$(CompPath)"/>
- </Other>
- </CompilerOptions>
- <Description Value="fpGUI Toolkit
-"/>
- <License Value="Modified LGPL
-"/>
- <Version Minor="6" Release="2"/>
- <Files Count="69">
- <Item1>
- <Filename Value="..\stdimages.inc"/>
- <Type Value="Include"/>
- </Item1>
- <Item2>
- <Filename Value="..\fpgfx.pas"/>
- <UnitName Value="fpgfx"/>
- </Item2>
- <Item3>
- <Filename Value="..\gfxbase.pas"/>
- <UnitName Value="gfxbase"/>
- </Item3>
- <Item4>
- <Filename Value="..\gfx_cmdlineparams.pas"/>
- <UnitName Value="gfx_cmdlineparams"/>
- </Item4>
- <Item5>
- <Filename Value="..\gfx_command_intf.pas"/>
- <UnitName Value="gfx_command_intf"/>
- </Item5>
- <Item6>
- <Filename Value="..\gfx_constants.pas"/>
- <UnitName Value="gfx_constants"/>
- </Item6>
- <Item7>
- <Filename Value="..\gfx_extinterpolation.pas"/>
- <UnitName Value="gfx_extinterpolation"/>
- </Item7>
- <Item8>
- <Filename Value="..\gfx_imagelist.pas"/>
- <UnitName Value="gfx_imagelist"/>
- </Item8>
- <Item9>
- <Filename Value="..\gfx_imgfmt_bmp.pas"/>
- <UnitName Value="gfx_imgfmt_bmp"/>
- </Item9>
- <Item10>
- <Filename Value="..\gfx_msgqueue.inc"/>
- <Type Value="Include"/>
- </Item10>
- <Item11>
- <Filename Value="..\gfx_pofiles.pas"/>
- <UnitName Value="gfx_pofiles"/>
- </Item11>
- <Item12>
- <Filename Value="..\gfx_popupwindow.pas"/>
- <UnitName Value="gfx_popupwindow"/>
- </Item12>
- <Item13>
- <Filename Value="..\gfx_stdimages.pas"/>
- <UnitName Value="gfx_stdimages"/>
- </Item13>
- <Item14>
- <Filename Value="..\gfx_stringhashlist.pas"/>
- <UnitName Value="gfx_stringhashlist"/>
- </Item14>
- <Item15>
- <Filename Value="..\gfx_translations.pas"/>
- <UnitName Value="gfx_translations"/>
- </Item15>
- <Item16>
- <Filename Value="..\gfx_utf8utils.pas"/>
- <UnitName Value="gfx_UTF8utils"/>
- </Item16>
- <Item17>
- <Filename Value="..\gfx_utils.pas"/>
- <UnitName Value="gfx_utils"/>
- </Item17>
- <Item18>
- <Filename Value="..\gfx_widget.pas"/>
- <UnitName Value="gfx_widget"/>
- </Item18>
- <Item19>
- <Filename Value="..\gfx_wuline.pas"/>
- <UnitName Value="gfx_wuline"/>
- </Item19>
- <Item20>
- <Filename Value="..\keys.inc"/>
- <Type Value="Include"/>
- </Item20>
- <Item21>
- <Filename Value="..\lang_afrikaans.inc"/>
- <Type Value="Include"/>
- </Item21>
- <Item22>
- <Filename Value="..\lang_english.inc"/>
- <Type Value="Include"/>
- </Item22>
- <Item23>
- <Filename Value="..\lang_french.inc"/>
- <Type Value="Include"/>
- </Item23>
- <Item24>
- <Filename Value="..\lang_german.inc"/>
- <Type Value="Include"/>
- </Item24>
- <Item25>
- <Filename Value="..\lang_italian.inc"/>
- <Type Value="Include"/>
- </Item25>
- <Item26>
- <Filename Value="..\lang_portuguese.inc"/>
- <Type Value="Include"/>
- </Item26>
- <Item27>
- <Filename Value="..\lang_russian.inc"/>
- <Type Value="Include"/>
- </Item27>
- <Item28>
- <Filename Value="..\lang_spanish.inc"/>
- <Type Value="Include"/>
- </Item28>
- <Item29>
- <Filename Value="..\predefinedcolors.inc"/>
- <Type Value="Include"/>
- </Item29>
- <Item30>
- <Filename Value="..\..\gui\promptuserdialog.inc"/>
- <Type Value="Include"/>
- </Item30>
- <Item31>
- <Filename Value="..\..\gui\gui_animation.pas"/>
- <UnitName Value="gui_animation"/>
- </Item31>
- <Item32>
- <Filename Value="..\..\gui\gui_basegrid.pas"/>
- <UnitName Value="gui_basegrid"/>
- </Item32>
- <Item33>
- <Filename Value="..\..\gui\gui_bevel.pas"/>
- <UnitName Value="gui_bevel"/>
- </Item33>
- <Item34>
- <Filename Value="..\..\gui\gui_button.pas"/>
- <UnitName Value="gui_button"/>
- </Item34>
- <Item35>
- <Filename Value="..\..\gui\gui_checkbox.pas"/>
- <UnitName Value="gui_checkbox"/>
- </Item35>
- <Item36>
- <Filename Value="..\..\gui\gui_combobox.pas"/>
- <UnitName Value="gui_combobox"/>
- </Item36>
- <Item37>
- <Filename Value="..\..\gui\gui_customgrid.pas"/>
- <UnitName Value="gui_customgrid"/>
- </Item37>
- <Item38>
- <Filename Value="..\..\gui\gui_dialogs.pas"/>
- <UnitName Value="gui_dialogs"/>
- </Item38>
- <Item39>
- <Filename Value="..\..\gui\gui_editcombo.pas"/>
- <UnitName Value="gui_editcombo"/>
- </Item39>
- <Item40>
- <Filename Value="..\..\gui\gui_edit.pas"/>
- <UnitName Value="gui_edit"/>
- </Item40>
- <Item41>
- <Filename Value="..\..\gui\gui_form.pas"/>
- <UnitName Value="gui_form"/>
- </Item41>
- <Item42>
- <Filename Value="..\..\gui\gui_gauge.pas"/>
- <UnitName Value="gui_gauge"/>
- </Item42>
- <Item43>
- <Filename Value="..\..\gui\gui_grid.pas"/>
- <UnitName Value="gui_grid"/>
- </Item43>
- <Item44>
- <Filename Value="..\..\gui\gui_hyperlink.pas"/>
- <UnitName Value="gui_hyperlink"/>
- </Item44>
- <Item45>
- <Filename Value="..\..\gui\gui_iniutils.pas"/>
- <UnitName Value="gui_iniutils"/>
- </Item45>
- <Item46>
- <Filename Value="..\..\gui\gui_label.pas"/>
- <UnitName Value="gui_label"/>
- </Item46>
- <Item47>
- <Filename Value="..\..\gui\gui_listbox.pas"/>
- <UnitName Value="gui_listbox"/>
- </Item47>
- <Item48>
- <Filename Value="..\..\gui\gui_listview.pas"/>
- <UnitName Value="gui_listview"/>
- </Item48>
- <Item49>
- <Filename Value="..\..\gui\gui_memo.pas"/>
- <UnitName Value="gui_memo"/>
- </Item49>
- <Item50>
- <Filename Value="..\..\gui\gui_menu.pas"/>
- <UnitName Value="gui_menu"/>
- </Item50>
- <Item51>
- <Filename Value="..\..\gui\gui_mru.pas"/>
- <UnitName Value="gui_mru"/>
- </Item51>
- <Item52>
- <Filename Value="..\..\gui\gui_panel.pas"/>
- <UnitName Value="gui_panel"/>
- </Item52>
- <Item53>
- <Filename Value="..\..\gui\gui_popupcalendar.pas"/>
- <UnitName Value="gui_popupcalendar"/>
- </Item53>
- <Item54>
- <Filename Value="..\..\gui\gui_progressbar.pas"/>
- <UnitName Value="gui_progressbar"/>
- </Item54>
- <Item55>
- <Filename Value="..\..\gui\gui_radiobutton.pas"/>
- <UnitName Value="gui_radiobutton"/>
- </Item55>
- <Item56>
- <Filename Value="..\..\gui\gui_scrollbar.pas"/>
- <UnitName Value="gui_scrollbar"/>
- </Item56>
- <Item57>
- <Filename Value="..\..\gui\gui_style.pas"/>
- <UnitName Value="gui_style"/>
- </Item57>
- <Item58>
- <Filename Value="..\..\gui\gui_tab.pas"/>
- <UnitName Value="gui_tab"/>
- </Item58>
- <Item59>
- <Filename Value="..\..\gui\gui_trackbar.pas"/>
- <UnitName Value="gui_trackbar"/>
- </Item59>
- <Item60>
- <Filename Value="..\..\gui\gui_tree.pas"/>
- <UnitName Value="gui_tree"/>
- </Item60>
- <Item61>
- <Filename Value="..\..\gui\logo.inc"/>
- <Type Value="Include"/>
- </Item61>
- <Item62>
- <Filename Value="..\..\gui\messagedialog.inc"/>
- <Type Value="Include"/>
- </Item62>
- <Item63>
- <Filename Value="..\..\gui\newdirdialog.inc"/>
- <Type Value="Include"/>
- </Item63>
- <Item64>
- <Filename Value="..\..\gui\db\fpgui_db.pas"/>
- <UnitName Value="fpgui_db"/>
- </Item64>
- <Item65>
- <Filename Value="gfx_utils_impl.inc"/>
- <Type Value="Include"/>
- </Item65>
- <Item66>
- <Filename Value="gfx_gdi.pas"/>
- <UnitName Value="gfx_gdi"/>
- </Item66>
- <Item67>
- <Filename Value="gfx_impl.pas"/>
- <UnitName Value="gfx_impl"/>
- </Item67>
- <Item68>
- <Filename Value="gdikeys.inc"/>
- <Type Value="Include"/>
- </Item68>
- <Item69>
- <Filename Value="..\..\gui\gui_splitter.pas"/>
- <UnitName Value="gui_splitter"/>
- </Item69>
- </Files>
- <LazDoc Paths="..\..\..\docs\xml\corelib\;..\..\..\docs\xml\corelib\x11\;..\..\..\docs\xml\corelib\gdi\;..\..\..\docs\xml\gui\"/>
- <RequiredPkgs Count="1">
- <Item1>
- <PackageName Value="FCL"/>
- <MinVersion Major="1" Valid="True"/>
- </Item1>
- </RequiredPkgs>
- <UsageOptions>
- <UnitPath Value="$(PkgOutDir)\"/>
- </UsageOptions>
- <PublishOptions>
- <Version Value="2"/>
- <DestinationDirectory Value="$(TestDir)\publishedpackage\"/>
- <IgnoreBinaries Value="False"/>
- </PublishOptions>
- </Package>
-</CONFIG>
+<?xml version="1.0"?>
+<CONFIG>
+ <Package Version="2">
+ <PathDelim Value="\"/>
+ <Name Value="fpgui_toolkit"/>
+ <Author Value="Graeme Geldenhuys"/>
+ <CompilerOptions>
+ <Version Value="5"/>
+ <PathDelim Value="\"/>
+ <SearchPaths>
+ <OtherUnitFiles Value="..\;..\..\gui\;..\..\gui\db\"/>
+ <UnitOutputDirectory Value="..\..\..\lib"/>
+ </SearchPaths>
+ <Parsing>
+ <SyntaxOptions>
+ <CStyleOperator Value="False"/>
+ <AllowLabel Value="False"/>
+ <CPPInline Value="False"/>
+ </SyntaxOptions>
+ </Parsing>
+ <CodeGeneration>
+ <Generate Value="Faster"/>
+ </CodeGeneration>
+ <Other>
+ <CompilerPath Value="$(CompPath)"/>
+ </Other>
+ </CompilerOptions>
+ <Description Value="fpGUI Toolkit
+"/>
+ <License Value="Modified LGPL
+"/>
+ <Version Minor="6" Release="2"/>
+ <Files Count="70">
+ <Item1>
+ <Filename Value="..\stdimages.inc"/>
+ <Type Value="Include"/>
+ </Item1>
+ <Item2>
+ <Filename Value="..\fpgfx.pas"/>
+ <UnitName Value="fpgfx"/>
+ </Item2>
+ <Item3>
+ <Filename Value="..\gfxbase.pas"/>
+ <UnitName Value="gfxbase"/>
+ </Item3>
+ <Item4>
+ <Filename Value="..\gfx_cmdlineparams.pas"/>
+ <UnitName Value="gfx_cmdlineparams"/>
+ </Item4>
+ <Item5>
+ <Filename Value="..\gfx_command_intf.pas"/>
+ <UnitName Value="gfx_command_intf"/>
+ </Item5>
+ <Item6>
+ <Filename Value="..\gfx_constants.pas"/>
+ <UnitName Value="gfx_constants"/>
+ </Item6>
+ <Item7>
+ <Filename Value="..\gfx_extinterpolation.pas"/>
+ <UnitName Value="gfx_extinterpolation"/>
+ </Item7>
+ <Item8>
+ <Filename Value="..\gfx_imagelist.pas"/>
+ <UnitName Value="gfx_imagelist"/>
+ </Item8>
+ <Item9>
+ <Filename Value="..\gfx_imgfmt_bmp.pas"/>
+ <UnitName Value="gfx_imgfmt_bmp"/>
+ </Item9>
+ <Item10>
+ <Filename Value="..\gfx_msgqueue.inc"/>
+ <Type Value="Include"/>
+ </Item10>
+ <Item11>
+ <Filename Value="..\gfx_pofiles.pas"/>
+ <UnitName Value="gfx_pofiles"/>
+ </Item11>
+ <Item12>
+ <Filename Value="..\gfx_popupwindow.pas"/>
+ <UnitName Value="gfx_popupwindow"/>
+ </Item12>
+ <Item13>
+ <Filename Value="..\gfx_stdimages.pas"/>
+ <UnitName Value="gfx_stdimages"/>
+ </Item13>
+ <Item14>
+ <Filename Value="..\gfx_stringhashlist.pas"/>
+ <UnitName Value="gfx_stringhashlist"/>
+ </Item14>
+ <Item15>
+ <Filename Value="..\gfx_translations.pas"/>
+ <UnitName Value="gfx_translations"/>
+ </Item15>
+ <Item16>
+ <Filename Value="..\gfx_utf8utils.pas"/>
+ <UnitName Value="gfx_UTF8utils"/>
+ </Item16>
+ <Item17>
+ <Filename Value="..\gfx_utils.pas"/>
+ <UnitName Value="gfx_utils"/>
+ </Item17>
+ <Item18>
+ <Filename Value="..\gfx_widget.pas"/>
+ <UnitName Value="gfx_widget"/>
+ </Item18>
+ <Item19>
+ <Filename Value="..\gfx_wuline.pas"/>
+ <UnitName Value="gfx_wuline"/>
+ </Item19>
+ <Item20>
+ <Filename Value="..\keys.inc"/>
+ <Type Value="Include"/>
+ </Item20>
+ <Item21>
+ <Filename Value="..\lang_afrikaans.inc"/>
+ <Type Value="Include"/>
+ </Item21>
+ <Item22>
+ <Filename Value="..\lang_english.inc"/>
+ <Type Value="Include"/>
+ </Item22>
+ <Item23>
+ <Filename Value="..\lang_french.inc"/>
+ <Type Value="Include"/>
+ </Item23>
+ <Item24>
+ <Filename Value="..\lang_german.inc"/>
+ <Type Value="Include"/>
+ </Item24>
+ <Item25>
+ <Filename Value="..\lang_italian.inc"/>
+ <Type Value="Include"/>
+ </Item25>
+ <Item26>
+ <Filename Value="..\lang_portuguese.inc"/>
+ <Type Value="Include"/>
+ </Item26>
+ <Item27>
+ <Filename Value="..\lang_russian.inc"/>
+ <Type Value="Include"/>
+ </Item27>
+ <Item28>
+ <Filename Value="..\lang_spanish.inc"/>
+ <Type Value="Include"/>
+ </Item28>
+ <Item29>
+ <Filename Value="..\predefinedcolors.inc"/>
+ <Type Value="Include"/>
+ </Item29>
+ <Item30>
+ <Filename Value="..\..\gui\promptuserdialog.inc"/>
+ <Type Value="Include"/>
+ </Item30>
+ <Item31>
+ <Filename Value="..\..\gui\gui_animation.pas"/>
+ <UnitName Value="gui_animation"/>
+ </Item31>
+ <Item32>
+ <Filename Value="..\..\gui\gui_basegrid.pas"/>
+ <UnitName Value="gui_basegrid"/>
+ </Item32>
+ <Item33>
+ <Filename Value="..\..\gui\gui_bevel.pas"/>
+ <UnitName Value="gui_bevel"/>
+ </Item33>
+ <Item34>
+ <Filename Value="..\..\gui\gui_button.pas"/>
+ <UnitName Value="gui_button"/>
+ </Item34>
+ <Item35>
+ <Filename Value="..\..\gui\gui_checkbox.pas"/>
+ <UnitName Value="gui_checkbox"/>
+ </Item35>
+ <Item36>
+ <Filename Value="..\..\gui\gui_combobox.pas"/>
+ <UnitName Value="gui_combobox"/>
+ </Item36>
+ <Item37>
+ <Filename Value="..\..\gui\gui_customgrid.pas"/>
+ <UnitName Value="gui_customgrid"/>
+ </Item37>
+ <Item38>
+ <Filename Value="..\..\gui\gui_dialogs.pas"/>
+ <UnitName Value="gui_dialogs"/>
+ </Item38>
+ <Item39>
+ <Filename Value="..\..\gui\gui_editcombo.pas"/>
+ <UnitName Value="gui_editcombo"/>
+ </Item39>
+ <Item40>
+ <Filename Value="..\..\gui\gui_edit.pas"/>
+ <UnitName Value="gui_edit"/>
+ </Item40>
+ <Item41>
+ <Filename Value="..\..\gui\gui_form.pas"/>
+ <UnitName Value="gui_form"/>
+ </Item41>
+ <Item42>
+ <Filename Value="..\..\gui\gui_gauge.pas"/>
+ <UnitName Value="gui_gauge"/>
+ </Item42>
+ <Item43>
+ <Filename Value="..\..\gui\gui_grid.pas"/>
+ <UnitName Value="gui_grid"/>
+ </Item43>
+ <Item44>
+ <Filename Value="..\..\gui\gui_hyperlink.pas"/>
+ <UnitName Value="gui_hyperlink"/>
+ </Item44>
+ <Item45>
+ <Filename Value="..\..\gui\gui_iniutils.pas"/>
+ <UnitName Value="gui_iniutils"/>
+ </Item45>
+ <Item46>
+ <Filename Value="..\..\gui\gui_label.pas"/>
+ <UnitName Value="gui_label"/>
+ </Item46>
+ <Item47>
+ <Filename Value="..\..\gui\gui_listbox.pas"/>
+ <UnitName Value="gui_listbox"/>
+ </Item47>
+ <Item48>
+ <Filename Value="..\..\gui\gui_listview.pas"/>
+ <UnitName Value="gui_listview"/>
+ </Item48>
+ <Item49>
+ <Filename Value="..\..\gui\gui_memo.pas"/>
+ <UnitName Value="gui_memo"/>
+ </Item49>
+ <Item50>
+ <Filename Value="..\..\gui\gui_menu.pas"/>
+ <UnitName Value="gui_menu"/>
+ </Item50>
+ <Item51>
+ <Filename Value="..\..\gui\gui_mru.pas"/>
+ <UnitName Value="gui_mru"/>
+ </Item51>
+ <Item52>
+ <Filename Value="..\..\gui\gui_panel.pas"/>
+ <UnitName Value="gui_panel"/>
+ </Item52>
+ <Item53>
+ <Filename Value="..\..\gui\gui_popupcalendar.pas"/>
+ <UnitName Value="gui_popupcalendar"/>
+ </Item53>
+ <Item54>
+ <Filename Value="..\..\gui\gui_progressbar.pas"/>
+ <UnitName Value="gui_progressbar"/>
+ </Item54>
+ <Item55>
+ <Filename Value="..\..\gui\gui_radiobutton.pas"/>
+ <UnitName Value="gui_radiobutton"/>
+ </Item55>
+ <Item56>
+ <Filename Value="..\..\gui\gui_scrollbar.pas"/>
+ <UnitName Value="gui_scrollbar"/>
+ </Item56>
+ <Item57>
+ <Filename Value="..\..\gui\gui_style.pas"/>
+ <UnitName Value="gui_style"/>
+ </Item57>
+ <Item58>
+ <Filename Value="..\..\gui\gui_tab.pas"/>
+ <UnitName Value="gui_tab"/>
+ </Item58>
+ <Item59>
+ <Filename Value="..\..\gui\gui_trackbar.pas"/>
+ <UnitName Value="gui_trackbar"/>
+ </Item59>
+ <Item60>
+ <Filename Value="..\..\gui\gui_tree.pas"/>
+ <UnitName Value="gui_tree"/>
+ </Item60>
+ <Item61>
+ <Filename Value="..\..\gui\logo.inc"/>
+ <Type Value="Include"/>
+ </Item61>
+ <Item62>
+ <Filename Value="..\..\gui\messagedialog.inc"/>
+ <Type Value="Include"/>
+ </Item62>
+ <Item63>
+ <Filename Value="..\..\gui\newdirdialog.inc"/>
+ <Type Value="Include"/>
+ </Item63>
+ <Item64>
+ <Filename Value="..\..\gui\db\fpgui_db.pas"/>
+ <UnitName Value="fpgui_db"/>
+ </Item64>
+ <Item65>
+ <Filename Value="gfx_utils_impl.inc"/>
+ <Type Value="Include"/>
+ </Item65>
+ <Item66>
+ <Filename Value="gfx_gdi.pas"/>
+ <UnitName Value="gfx_gdi"/>
+ </Item66>
+ <Item67>
+ <Filename Value="gfx_impl.pas"/>
+ <UnitName Value="gfx_impl"/>
+ </Item67>
+ <Item68>
+ <Filename Value="gdikeys.inc"/>
+ <Type Value="Include"/>
+ </Item68>
+ <Item69>
+ <Filename Value="..\..\gui\gui_splitter.pas"/>
+ <UnitName Value="gui_splitter"/>
+ </Item69>
+ <Item70>
+ <Filename Value="..\..\gui\gui_hint.pas"/>
+ <UnitName Value="gui_hint"/>
+ </Item70>
+ </Files>
+ <LazDoc Paths="..\..\..\docs\xml\corelib\;..\..\..\docs\xml\corelib\x11\;..\..\..\docs\xml\corelib\gdi\;..\..\..\docs\xml\gui\"/>
+ <RequiredPkgs Count="1">
+ <Item1>
+ <PackageName Value="FCL"/>
+ <MinVersion Major="1" Valid="True"/>
+ </Item1>
+ </RequiredPkgs>
+ <UsageOptions>
+ <UnitPath Value="$(PkgOutDir)\"/>
+ </UsageOptions>
+ <PublishOptions>
+ <Version Value="2"/>
+ <DestinationDirectory Value="$(TestDir)\publishedpackage\"/>
+ <IgnoreBinaries Value="False"/>
+ </PublishOptions>
+ </Package>
+</CONFIG>
diff --git a/src/corelib/gdi/fpgui_toolkit.pas b/src/corelib/gdi/fpgui_toolkit.pas
index f85bebf3..93dd9265 100644
--- a/src/corelib/gdi/fpgui_toolkit.pas
+++ b/src/corelib/gdi/fpgui_toolkit.pas
@@ -16,7 +16,8 @@ uses
gui_grid, gui_hyperlink, gui_iniutils, gui_label, gui_listbox,
gui_listview, gui_memo, gui_menu, gui_mru, gui_panel, gui_popupcalendar,
gui_progressbar, gui_radiobutton, gui_scrollbar, gui_style, gui_tab,
- gui_trackbar, gui_tree, fpgui_db, gfx_gdi, gfx_impl, gui_splitter;
+ gui_trackbar, gui_tree, fpgui_db, gfx_gdi, gfx_impl, gui_splitter,
+ gui_hint;
implementation
diff --git a/src/corelib/gdi/gfx_gdi.pas b/src/corelib/gdi/gfx_gdi.pas
index 313e154e..5ffc09fd 100644
--- a/src/corelib/gdi/gfx_gdi.pas
+++ b/src/corelib/gdi/gfx_gdi.pas
@@ -247,6 +247,8 @@ uses
var
wapplication: TfpgApplication;
MouseFocusedWH: HWND;
+ OldMousePos: TPoint; // used to detect fake MouseMove events
+
// some required keyboard functions
{$INCLUDE gdikeys.inc}
@@ -481,7 +483,7 @@ var
mcode: integer;
wmsg: TMsg;
PaintStruct: TPaintStruct;
-
+
//------------
procedure SetMinMaxInfo(var MinMaxInfo: TMINMAXINFO);
@@ -647,11 +649,33 @@ begin
if uMsg <> WM_MOUSEMOVE then
writeln('fpGFX/GDI: Found a mouse button event');
{$ENDIF}
-// {$IFDEF DEBUG} write(w.ClassName + ': '); {$ENDIF}
-// {$IFDEF DEBUG} writeln('Mouse Move or Button Click'); {$ENDIF}
- msgp.mouse.x := smallint(lParam and $FFFF);
- msgp.mouse.y := smallint((lParam and $FFFF0000) shr 16);
+// msgp.mouse.x := smallint(lParam and $FFFF);
+// msgp.mouse.y := smallint((lParam and $FFFF0000) shr 16);
+ msgp.mouse.x := GET_X_LPARAM(lParam);
+ msgp.mouse.y := GET_Y_LPARAM(lParam);
+ if uMsg = WM_MOUSEMOVE then
+ begin
+ {$IFDEF DEBUG}
+ Writeln('old x=', OldMousePos.x, ' y=', OldMousePos.y);
+ writeln('new x=', msgp.mouse.x, ' y=', msgp.mouse.y);
+ writeln('---');
+ {$ENDIF}
+ // Check for fake MouseMove messages - Windows sucks!
+ if (OldMousePos.x = msgp.mouse.x) and
+ (OldMousePos.y = msgp.mouse.y) then
+ begin
+ {$IFDEF DEBUG}
+ writeln('We received fake MouseMove messages');
+ {$ENDIF}
+ Exit; //==>
+ end
+ else
+ begin
+ OldMousePos.x := msgp.mouse.x;
+ OldMousePos.y := msgp.mouse.y;
+ end;
+ end;
{ This closes popup windows when you click the mouse elsewhere }
if uMsg = WM_LBUTTONDOWN then
begin
@@ -688,7 +712,9 @@ begin
begin
case uMsg of
WM_MOUSEMOVE:
- mcode := FPGM_MOUSEMOVE;
+ begin
+ mcode := FPGM_MOUSEMOVE;
+ end;
WM_LBUTTONDBLCLK,
WM_LBUTTONDOWN,
@@ -696,7 +722,7 @@ begin
WM_RBUTTONDOWN:
begin
{$IFDEF DEBUG}
- writeln('fpGFX/GDI:', w.ClassName + ': MouseButtonDown event');
+ writeln('fpGUI/GDI:', w.ClassName + ': MouseButtonDown event');
{$ENDIF}
// This is temporary and we should try and move it to
// the UI Designer code instead.
diff --git a/src/corelib/gfx_widget.pas b/src/corelib/gfx_widget.pas
index cc98d45d..dd2df625 100644
--- a/src/corelib/gfx_widget.pas
+++ b/src/corelib/gfx_widget.pas
@@ -547,6 +547,9 @@ end;
procedure TfpgWidget.MsgMouseEnter(var msg: TfpgMessageRec);
begin
+ {$IFDEF DEBUG}
+ writeln('MsgMouseEnter');
+ {$ENDIF}
if FFormDesigner <> nil then
begin
FFormDesigner.Dispatch(msg);
@@ -561,6 +564,9 @@ end;
procedure TfpgWidget.MsgMouseExit(var msg: TfpgMessageRec);
begin
+ {$IFDEF DEBUG}
+ writeln('MsgMouseExit');
+ {$ENDIF}
if FFormDesigner <> nil then
begin
FFormDesigner.Dispatch(msg);
diff --git a/src/corelib/x11/fpgui_toolkit.pas b/src/corelib/x11/fpgui_toolkit.pas
index bc5cecd0..89d04a35 100644
--- a/src/corelib/x11/fpgui_toolkit.pas
+++ b/src/corelib/x11/fpgui_toolkit.pas
@@ -1,5 +1,5 @@
-{ This file was automatically created by Lazarus. do not edit!
- This source is only used to compile and install the package.
+{ This file was automatically created by Lazarus. Do not edit!
+This source is only used to compile and install the package.
}
unit fpgui_toolkit;
@@ -8,16 +8,16 @@ interface
uses
fpgfx, gfxbase, gfx_cmdlineparams, gfx_command_intf, gfx_constants,
- gfx_extinterpolation, gfx_imagelist, gfx_imgfmt_bmp, gfx_pofiles,
- gfx_popupwindow, gfx_stdimages, gfx_stringhashlist, gfx_translations,
- gfx_UTF8utils, gfx_utils, gfx_widget, gfx_wuline, gfx_impl, gfx_x11,
- _netlayer, x11_keyconv, x11_xft, gui_animation, gui_basegrid, gui_bevel,
- gui_button, gui_checkbox, gui_combobox, gui_customgrid, gui_dialogs,
- gui_editcombo, gui_edit, gui_form, gui_gauge, gui_grid, gui_hyperlink,
- gui_iniutils, gui_label, gui_listbox, gui_listview, gui_memo, gui_menu,
- gui_mru, gui_panel, gui_popupcalendar, gui_progressbar, gui_radiobutton,
- gui_scrollbar, gui_style, gui_tab, gui_trackbar, gui_tree, fpgui_db,
- gui_splitter, gui_hint;
+ gfx_extinterpolation, gfx_imagelist, gfx_imgfmt_bmp, gfx_pofiles,
+ gfx_popupwindow, gfx_stdimages, gfx_stringhashlist, gfx_translations,
+ gfx_UTF8utils, gfx_utils, gfx_widget, gfx_wuline, gfx_impl, gfx_x11,
+ _netlayer, x11_keyconv, x11_xft, gui_animation, gui_basegrid, gui_bevel,
+ gui_button, gui_checkbox, gui_combobox, gui_customgrid, gui_dialogs,
+ gui_editcombo, gui_edit, gui_form, gui_gauge, gui_grid, gui_hyperlink,
+ gui_iniutils, gui_label, gui_listbox, gui_listview, gui_memo, gui_menu,
+ gui_mru, gui_panel, gui_popupcalendar, gui_progressbar, gui_radiobutton,
+ gui_scrollbar, gui_style, gui_tab, gui_trackbar, gui_tree, fpgui_db,
+ gui_splitter, gui_hint;
implementation
diff --git a/src/gui/gui_edit.pas b/src/gui/gui_edit.pas
index c732c9fd..71565fdc 100644
--- a/src/gui/gui_edit.pas
+++ b/src/gui/gui_edit.pas
@@ -713,6 +713,8 @@ var
begin
hasChanged := False;
+ FHintTimer.Enabled := False;
+
Consumed := True;
case CheckClipBoardKey(keycode, shiftstate) of
@@ -844,24 +846,10 @@ begin
end;
procedure TfpgBaseEdit.HandleLMouseDown(x, y: integer; shiftstate: TShiftState);
-{var
- cp: integer;}
begin
+ FHintTimer.Enabled := False;
inherited HandleLMouseDown(x, y, shiftstate);
- {cp := PointToCharPos(x, y);
- FMouseDragPos := cp;
- FCursorPos := cp;
- if (ssShift in shiftstate) then
- FSelOffset := FCursorPos - FSelStart
- else
- begin
- FSelStart := cp;
- FSelOffset := 0;
- end;
- Adjust;
- Repaint;}
-
FCursorPx := x;
AdjustTextOffset(True);
FMouseDragPos := FCursorPos;
@@ -895,12 +883,11 @@ begin
if FShowHint then
begin
if FHintTimer.Enabled then
- FHintTimer.Reset // keep reseting while mouse is moving to prevent hint from showing
+ FHintTimer.Reset // keep reseting to prevent hint from showing
else
HideHint;
- end
- else
- Exit; //==>
+ end;
+ Exit; //==>
end;
cp := FCursorPos;
diff --git a/src/gui/gui_hint.pas b/src/gui/gui_hint.pas
index 12acf034..e106f7f3 100644
--- a/src/gui/gui_hint.pas
+++ b/src/gui/gui_hint.pas
@@ -2,6 +2,8 @@ unit gui_hint;
{$mode objfpc}{$H+}
+{.$Define Debug}
+
interface
uses
@@ -40,7 +42,7 @@ type
property LTextColor: TfpgColor write SetLTextColor default clBlack;
property LBackgroundColor: TfpgColor write SetLBackgroundColor default clHintWindow;
property ShadowColor: TfpgColor write SetShadowColor default clGray;
- property Time: Integer write SetTime default 2000;
+ property Time: Integer write SetTime default 5000;
end;
@@ -64,6 +66,9 @@ implementation
procedure DisplayHint(Pt: TPoint; AHint: string);
begin
+ {$IFDEF DEBUG}
+ writeln('DisplayHint');
+ {$ENDIF}
if Assigned(F_Hint) and F_Hint.Visible then
Exit; //==> Nothing to do
@@ -85,6 +90,9 @@ end;
procedure HideHint;
begin
+ {$IFDEF DEBUG}
+ writeln('HideHint');
+ {$ENDIF}
if Assigned(F_Hint) and F_Hint.Visible then
F_Hint.Hide;
end;
@@ -99,13 +107,16 @@ end;
procedure TF_Hint.FormHide(Sender: TObject);
begin
+ T_Chrono.Enabled := False;
if Assigned(F_Shadow) then
F_Shadow.Hide;
end;
procedure TF_Hint.T_ChronoFini(Sender: TObject);
begin
- T_Chrono.Enabled:= False;
+ {$IFDEF DEBUG}
+ writeln('TF_Hint.T_ChronoFini timer fired');
+ {$ENDIF}
Hide;
end;
@@ -124,10 +135,10 @@ end;
procedure TF_Hint.SetTime(AValue: Integer);
begin
if FTime <> AValue then
- begin
+ begin
FTime := AValue;
T_Chrono.Interval := FTime;
- end;
+ end;
end;
procedure TF_Hint.SetLTextColor(AValue: Tfpgcolor);
@@ -162,7 +173,7 @@ begin
FMargin := 3;
FBorder := 1;
FShadow := 5;
- FTime := 2000;
+ FTime := 5000;
L_Hint := CreateLabel(Self, FBorder, FBorder, '', Width - FBorder * 2, Height - FBorder * 2, taCenter, tlCenter);
L_Hint.BackgroundColor := clHintWindow;
L_Hint.OnClick := @T_ChronoFini;