diff options
author | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-08-31 10:09:44 +0000 |
---|---|---|
committer | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-08-31 10:09:44 +0000 |
commit | 052d28c91a70678b264fb7772096da6fb6803dc3 (patch) | |
tree | a85abf936ba6f95bffcaae00b431121c305c032a | |
parent | 13bdc0b2269cfc49d605a057f24b0ba83c37b1b4 (diff) | |
download | fpGUI-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
-rw-r--r-- | examples/gui/hintwindow/edittest.lpi | 3 | ||||
-rw-r--r-- | examples/gui/hintwindow/edittest.lpr | 2 | ||||
-rw-r--r-- | src/corelib/fpgfx.pas | 2 | ||||
-rw-r--r-- | src/corelib/gdi/fpgui_toolkit.lpk | 658 | ||||
-rw-r--r-- | src/corelib/gdi/fpgui_toolkit.pas | 3 | ||||
-rw-r--r-- | src/corelib/gdi/gfx_gdi.pas | 40 | ||||
-rw-r--r-- | src/corelib/gfx_widget.pas | 6 | ||||
-rw-r--r-- | src/corelib/x11/fpgui_toolkit.pas | 24 | ||||
-rw-r--r-- | src/gui/gui_edit.pas | 25 | ||||
-rw-r--r-- | src/gui/gui_hint.pas | 21 |
10 files changed, 409 insertions, 375 deletions
diff --git a/examples/gui/hintwindow/edittest.lpi b/examples/gui/hintwindow/edittest.lpi index a0d03018..e26ec9bc 100644 --- a/examples/gui/hintwindow/edittest.lpi +++ b/examples/gui/hintwindow/edittest.lpi @@ -17,7 +17,6 @@ </VersionInfo> <PublishOptions> <Version Value="2"/> - <IgnoreBinaries Value="False"/> <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> </PublishOptions> @@ -40,7 +39,7 @@ </Units> </ProjectOptions> <CompilerOptions> - <Version Value="8"/> + <Version Value="5"/> <Other> <CustomOptions Value="-FUunits"/> <CompilerPath Value="$(CompPath)"/> diff --git a/examples/gui/hintwindow/edittest.lpr b/examples/gui/hintwindow/edittest.lpr index 7a09ccd4..33682a65 100644 --- a/examples/gui/hintwindow/edittest.lpr +++ b/examples/gui/hintwindow/edittest.lpr @@ -617,13 +617,13 @@ begin rb_time_1.OnChange:= @rb_time_1Change; rb_time_2 := CreateRadioButton(p_time,10,50,'2 seconds'); - rb_time_2.Checked:= True; rb_time_2.OnChange:= @rb_time_2Change; rb_time_3 := CreateRadioButton(p_time,80,25,'3 seconds'); rb_time_3.OnChange:= @rb_time_3Change; rb_time_5 := CreateRadioButton(p_time,80,50,'5 seconds'); + rb_time_5.Checked:= True; rb_time_5.OnChange:= @rb_time_5Change; p_color := TfpgPanel.Create(self); 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; |