Age | Commit message (Collapse) | Author |
|
|
|
|
|
Multi-threaded apps under Windows requires the main thread to be woken up
periodically. We now simply hook into the Classes.WakeMainThread function
which is automatically called by TThread.Synchronize.
I did the same testing under X11, but it doesn't seem needed there. If we
do find a case for this under X11, it is easy to implement.
|
|
This has been a long awaited feature. There is still some functionality missing and some
more tweaks that need to be applied, but this implementation does work. It has been tested
under JWM (Joe's Window Manager), MATE (Gnome2 fork) and KDE 4.8.x
The Windows implementation will follow shortly.
|
|
something to it.
|
|
We referenced the write device context. FGC is the temporary buffer used
for double buffering. FWinGC is the actual DC of the window.
|
|
|
|
|
|
Once the next stable FPC is released, then we can remove this again.
|
|
This went unnoticed for a very long time, Mhen a from was set to
fullscreen, after it was already displayed (not at creation time), then
the size of the form was slightly bigger that the screen resolution.
I corrected the Win32 API calls, and now the form has the correct size at
all times.
|
|
* I also updated the windows version of the package with some missing units.
|
|
SetForegroundWindow.
The code and intent seems to be correct, but even though I set the flag
SWP_NOZORDER (so the behaviour is consistent with Linux X11), Windows
seems to ignore that flag and still bring the active window to the
front.
|
|
The window is brought to the front, but not activated.
|
|
|
|
|
|
|
|
Clearly I did not pay as much attension as I should have. :-(
|
|
|
|
|
|
FPC doesn't have a problem with the original code, but other tools like
fpdoc does. So to make everybody's life easier, I am making this change.
The benefit now is that fpdoc will be able to generate a nice class
hierarchy of fpGUI classes - without problems.
|
|
The unit uses the fcl-image backend to load the image. This is slightly
slower than the native implementations for BMP and JPG. But at least now
we have PNG support too.
|
|
|
|
|
|
I was clearly smoking something that day! Anyway, the GDI timer is now
correctly implemented, and doesn't push up the CPU load any more. No matter
how long the timer runs for. The timer is much more accurate/consistent in
firing as well. :-)
|
|
Refactored the TfpgTimer by introducing a TfpgBaseTimer and X11 & GDI Timer
descendants. This now allows use to add platform specific extensions to
the timer implementation.
|
|
|
|
Now we can retrieve the WindowState of TfpgForm under both Linux and
Windows.
|
|
This component allows you to set all components on a form or embedded containers
as ReadOnly = True/False by just toggling one property on TfpgReadOnly.
|
|
These will later contain the various style implementations.
|
|
a project uses clause.
|
|
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 = 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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
* 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.
|
|
|
|
|