Age | Commit message (Collapse) | Author |
|
the interface anyway, not an actual object instance.
|
|
|
|
|
|
|
|
We should not modify the dwEffect variable before the user gets
a chance to look at it.
|
|
|
|
|
|
|
|
AcceptDrops: is implemented and can be toggled at runtime or
designtime.
Windows cursor also changes to show that target windows can
accept drops.
|
|
|
|
* This abstract method is called from TfpgWidget's AcceptDrops setter function
* Template implementation in X11
* Actual implementation in GDI
|
|
|
|
* implements the IDropTarget interface
* Also initialize/uninitialize OLE at application startup/stop
|
|
|
|
|
|
Even though this method was called, it should have checked the FDropAccepted
variable which did didn't. Now it correctly conforms to the XDND spec.
Due to the new behaviour we also have to make sure we free the TfpgDrag
instance when the drop is not accepted.
|
|
not correctly
set the ActionType parameter if the drag was not accepted.
|
|
component
|
|
This does error checking before and DND gets triggered. The error messages
must still be replaced with resource strings though.
|
|
|
|
If the Drop occured, but AcceptDrops = False, we must not do
any Selections conversions. This is now so.
We must still send the XdndFinished message though, so data object
can be freed, and to simply comply with XDND protocol. We now
correctly set the Accept or Decine status in the XDNDFinished
message.
|
|
This will hopefully reduce the confusion between the other
TfpgWidget.AcceptDrops property - they had too similar names.
* Applied rename changes to all other descendants too
* Updated DND demo project
|
|
If the developer did not set the AMimeChoice in OnDragEnter, then
the incorrect default could have been used. By default it
used to deflaut to 'text/plain' and never actually checked the
mime-type list to see if that exists. :-(
Now the default AMimeChoice is set the the first mime-type in
the mime-type list. This keeps with the methodology that the
mime-type list must be from most specific to least specific mime types.
|
|
The bug was that it only checked for the immediate children of
the toplevel window. It never recursed through all levels of
children finding the correct child the mouse cursor is over.
This is now fixed.
This also allows embedded frames or forms to work with DND.
|
|
There was a bug where if the component had a OnDragDrop event
handler and AcceptDrops was False, it still triggered the event.
Not any more.
|
|
I also made sure that all writeln() statements are wrapped in IFDEF's.
|
|
* Single click produces one OnClick event
* On a Double Click in produces a OnClick, then a OnDoubleClick
event. Old behaviour used to procuder yet another OnClick at
the end. This is not needed.
* OnMouseDown and OnMouseUp events behaviour has not changed.
The reason we introduce the FOnClickPending instead of fully
handling the events in TfpgWidget.MsgMouseUp is because a TfpgButton
has slightly different behavior (eg: When clicking on a button, keep
mouse down, and move mouse out of button rectangle, then an
OnClick must not fire.) The extra FOnClickPending allows us to
toggle this behaviour of HandleLButtonUp (which normally fires
the OnClick event)
|
|
This applies to:
clInactiveSel, clUnset, clGridInactiveSel
I wasn't fond of the purple / faded blue color from before.
|
|
|
|
|
|
|
|
This allows you to add/delete many lines and the memo only
repaints once.
|
|
|
|
The DoMessagesPending() only processed OS events, now ProccessMessages
processes all events like the real event loop does. This gives
a more expected behaviour to developers that write blocking
loops etc.
|
|
|
|
|
|
|
|
* It used to have a hard-coded processing of alignment.
Top, Bottom, Left, Right and then Client.
* This meant extra "fake" panels was required to get a specific
design.
* Align property is now processed in the creation order of the
widgets.
|
|
|
|
If you only set a single anchor eg [anTop] and you resize the
width of the form, the component will stay relative to the
original position.
if you place a component in the center of a form, and set anchors
to [], and resize the form, the component will stay centered.
|
|
|
|
X11 seems too efficient, so one the initial mapping of the window
to the display, no resize event needs to occur, and it doesn't.
This screws with Align property which expects as Resize event (like
Windows GDI). So we fake a resize event.
|
|
When the date/time changes to an earlier date while an fpGUI
application is running, all timers stopped firing. Under Windows
all timers are reset.
TODO:
Found out what happens under Linux and how we can detected a
date/time change.
|
|
API.
|
|
* A default font size is now set.
* The Writeln() statement is now hidden under IFDEF's like it
was supposed to be.
|
|
|
|
|
|
Then name says it all.
|
|
|
|
|