summaryrefslogtreecommitdiff
path: root/src/corelib/gdi
AgeCommit message (Collapse)Author
2012-12-20AggPas Canvas can now render to the screen under Windows too.Graeme Geldenhuys
2012-11-22Fixes line ending issuesGraeme Geldenhuys
2012-11-13Implements WakeMainThread for Windows.Graeme Geldenhuys
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.
2012-10-26Adds a System Tray Icon implementation for X11.Graeme Geldenhuys
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.
2012-09-26gdi: oops, fixed code where I check the variable before I actually assign ↵Graeme Geldenhuys
something to it.
2012-09-21gdi: Corrected the implemenation of Canvas.GetPixel()Graeme Geldenhuys
We referenced the write device context. FGC is the temporary buffer used for double buffering. FWinGC is the actual DC of the window.
2012-09-21gdi: corrected the WinColorTofpgColor() implementation.Graeme Geldenhuys
2012-09-21gdi: re-ordered the code in a more logical way, to ease reading.Graeme Geldenhuys
2012-08-23gdi: The IDropSource signature has changed in FPC > 2.6.0Graeme Geldenhuys
Once the next stable FPC is released, then we can remove this again.
2012-08-09bugfix: gdi fullscreen - form was larger than screen dimensions.Graeme Geldenhuys
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.
2012-08-01Updates te fpgui_toolkit.lpk (lazarus packages) with the reporting engine units.Graeme Geldenhuys
* I also updated the windows version of the package with some missing units.
2012-07-31TfpgGDIWindow.ActivateWindow now uses SetWindowPos instead of ↵Graeme Geldenhuys
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.
2012-07-31Windows GDI BringToFront() behaviour is now consistent with Linux X11Graeme Geldenhuys
The window is brought to the front, but not activated.
2012-04-25gdi: minor changes to make sure fpGUI compiles under Win64Graeme Geldenhuys
2012-04-05gdi: fixes spelling mistake in code comment.Graeme Geldenhuys
2012-04-05gdi: Removed completed todo item comment.Graeme Geldenhuys
2012-03-19fixes compiler errors under Windows.Graeme Geldenhuys
Clearly I did not pay as much attension as I should have. :-(
2012-03-19updates search paths for AggPas in fpgui_toolkit.lpk packages.Graeme Geldenhuys
2012-03-19gdi: We will probably need access to HBitmap in the Agg Canvas.Graeme Geldenhuys
2012-02-29changed alias class definitions to class descendants.Graeme Geldenhuys
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.
2012-02-21Adds PNG loading support.Graeme Geldenhuys
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.
2011-12-02version bump to 0.8Graeme Geldenhuys
2011-11-21TfpgWindowBase now introduces a BringToFront() method.Graeme Geldenhuys
2011-08-17GDI: Fixed the rubbish timer implementation.Graeme Geldenhuys
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. :-)
2011-08-17TfpgTimer refactoring.Graeme Geldenhuys
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.
2011-07-14GDI: minor change to IUnknown interface code for FPC 2.5.1 compatibilityGraeme Geldenhuys
2011-06-17gdi implementation of GetWindowStateGraeme Geldenhuys
Now we can retrieve the WindowState of TfpgForm under both Linux and Windows.
2011-05-19New component TfpgReadOnly added to fpGUI.Graeme Geldenhuys
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.
2011-05-06Skeleton style units.Graeme Geldenhuys
These will later contain the various style implementations.
2011-03-08applied the missing setting for Lazarus IDE so package unit is not added to ↵Graeme Geldenhuys
a project uses clause.
2011-01-14GDI: OnDragDrop the Sender and Source parameters are now populated.Graeme Geldenhuys
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.
2011-01-14GDI: OnDragEnter now has Sender and Source parameters populatedGraeme Geldenhuys
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.
2011-01-11fixes Alignment and Anchor calculation even before we have a window handleGraeme Geldenhuys
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.
2011-01-10DoWaitWindowMessage() defined as virtual abstract in fpg_baseGraeme Geldenhuys
* All fpGUI backends must override it as supply an implementation. * Moved DowaitWindowMessage() implementations to the protected section in the GDI and X11 backends.
2011-01-10DoMessagesPending() renamed to MessagesPending()Graeme Geldenhuys
Also made MessagesPending() a virtual abstract method in fpg_base.pas which every fpGUI backend must supply an implementation.
2010-11-15A new compiler define for debuging GDI key input messages.Graeme Geldenhuys
2010-11-11Bumped the version number so it's newer than the last release.Graeme Geldenhuys
2010-10-29Code cleanup by removing leftover writeln() statements.Graeme Geldenhuys
2010-10-29Fixed Windows DND memory leaks.Graeme Geldenhuys
2010-10-29More DND debugging code for TfpgGDIDrag class.Graeme Geldenhuys
2010-10-29Moved OnDragStartDetected from TfpgWidget to TfpgWindowBaseGraeme Geldenhuys
* also introduced virtual DoDragStartDetected which executes the OnDragStartDetected event * We also added a override of DoDragStartDetected in GDI for some extra tasks.
2010-10-29Added DND debugging entries and minor code formatting improvements.Graeme Geldenhuys
2010-10-29Applied same logic in X11 to OLE DND regarding preferred mime choiceGraeme Geldenhuys
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.
2010-10-29Bugfix in EnumDataToStringList()Graeme Geldenhuys
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
2010-10-29Slight improvement to the WindowsClipboardLookup method.Graeme Geldenhuys
* 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
2010-10-29Implemented a working TfpgGDIDrag.ExecuteGraeme Geldenhuys
Finally we are getting somewhere with OLE DND.
2010-10-29GDI: Implemented StringToHandle in TfpgGDIDrag classGraeme Geldenhuys
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.
2010-10-29Added a new private Drag property to TfpgGDIApplicationGraeme Geldenhuys
This allows use to easily find the TfpgDrag instance we are working with. Same was done in X11 backend.
2010-10-28GDI: Implement last remaining part to allow DropTarget to receive data.Graeme Geldenhuys
2010-10-28GDI: store user selected information from DragEnter event handlerGraeme Geldenhuys