Age | Commit message (Collapse) | Author |
|
Sender: the widget the mouse was over when drop occurs.
Source: If whole DND is inside the same app, then Source is the
original Widget the DND started from.
|
|
Sender: the widget the mouse was over when drop occurs.
Source: If whole DND is inside the same app, then Source is the
original Widget the DND started from.
|
|
Sender: = the widget the mouse entered and that triggered the event
Source: = if whole DND occurs in same app, then Source is the
Widget the DND action started from.
|
|
Sender = widget the mouse entered and triggered the event
Source = if the whole DND is inside the same app, then Source
is the original Widget drag started from.
|
|
Because widget positioning is new possible before it is show, we
need to call UpdateWindowPosition any time we set Width, Height,
Top or Left so that it can update the internal state of the
widget correctly.
|
|
We used FHeight instead of FLeft!! Dope!
|
|
Updated the following methods by rather checking the ComponentState,
than the HasHandle result. Why? Because we want alignment and anchor
calculations to work, even before we have a window handle. Something
that happens often when using a Frame-type design for the UI.
* HandleMove()
* HandleResize()
* UpdateWindowPosition()
Due to removing the HasHandle check in UpdateWindowPosition, we had
to do the HasHandle check in each backend code instead. We don't want
to trigger API calls when we don't have a window handle yet.
|
|
* All fpGUI backends must override it as supply an implementation.
* Moved DowaitWindowMessage() implementations to the protected
section in the GDI and X11 backends.
|
|
Also made MessagesPending() a virtual abstract method in fpg_base.pas
which every fpGUI backend must supply an implementation.
|
|
A boolean return value of True means that there are active timers.
|
|
This function blocks the calling method, but allows for framework
messages still to be processed. Could be useful for some developers.
|
|
Windows uses OS messages for the timer, and Linux not. So the
DoMessagePending code had to be tweaked to work for both.
I made a note of this, to see if there is a better way of doing this.
|
|
|
|
|
|
|
|
Old behaviour calculated the size deltas, then applied the new sizes from
the received message. The new sizes were not guaranteed due to widget size
constraints that could be applied, which means the deltas could be wrong, which
in turn meant child components could be positioned incorrectly.
We now store the original size values in temp variables, apply the new sizes
which handles possible constraints, then only do we calculate the deltas, and
then pass those on to HandleAlignments().
|
|
eg: When you resize continuously for a few seconds to test widget anchor
processing, it was possible to reach the message queue limit. After this change,
that is not so likely any more.
|
|
|
|
|
|
Now that the Align issues have been resolved, this work-around
is not needed any more. Commented, it now produces the exact same
events as under Windows too. This is good, obviously. :)
|
|
Not calling Parent.Realign ment we (self widget) is not being
resized (excluded from the re-align calculation), and thus the
self widget status at its current location and dimentions - until
the end-user actually resizes the top-level form.
This has now been fixed.
NOTE:
If you create extra widgets (eg: frames) outside the control of
the UI Designer, but still created before resource handles are
created, and you use Align property in those widgets, you need to
rather create those in Form.OnShow().
Align changes are not always acted apon before they have a window
handle, so it's best to do it in Form.OnShow for example. I'm still
figuring out how best to handle this.
|
|
|
|
|
|
|
|
|
|
It's disabled by default. Enabling can be done via project level
or inside each unit at the beginning of such units.
|
|
Used internally, but could be used in developers own software
too.
|
|
Apparently it is good to allocate a instance, without
calling the constructor. I'm not exactly sure why, but it also
makes supporting FPC 2.5.1 a lot less messy (no casting required).
|
|
|
|
|
|
highlighted
|
|
* TfpgButton now ignores double clicks by default
|
|
ssh://fpgui.git.sourceforge.net/gitroot/fpgui/fpgui"
Andrew is finding is training wheels with git.
This reverts commit e320dfae6add39c66ea554dbb161a844ee06db4d, reversing
changes made to 735aec8207036adb17f2174ffcb9056bee712ed3.
|
|
|
|
Grid.HeaderStyle has Button, Thin and Flat options
New DrawBevel can draw a bevel raised or lowered using standard system
colors. Quite similar to TfpgBevel.
New DrawBevel() method and new Grid.HeaderStyle option.
|
|
|
|
|
|
|
|
This is so they can be tested. Once DND stabilizes, I'll make the
properties available on the other components too.
|
|
|
|
* also introduced virtual DoDragStartDetected which executes
the OnDragStartDetected event
* We also added a override of DoDragStartDetected in GDI for
some extra tasks.
|
|
|
|
|
|
Mime types should be registered from most specific (first item in
mime list) to least specific (last item in mime list). The preferred
mime choice will be the first item in the list. Raise an error
if the mime list doesn't contain data.
|
|
We can't just go adding mime types without actual data associated
with each entry.
So now we match the mime stringlist to exact data count in IDataObject
|
|
* Introduced a new parameter to know if we translated the mime
type to a known Windows CF_ clipboard type.
* Fixed the spelling mistake in the function name
|
|
Finally we are getting somewhere with OLE DND.
|
|
This is needed so we can store a string in a global buffer for DND.
This will also reduce code duplication a bit, by simply allowing
us to call this function.
|
|
This allows use to easily find the TfpgDrag instance we are
working with. Same was done in X11 backend.
|
|
* Also changed FormatCount to Count (more like standard list interface)
* Also introduced a Items property (more like standard list interface)
* The above to changes also made other implementations more
simplified, so I did a bit of refactoring.
|