summaryrefslogtreecommitdiff
path: root/src/corelib/x11
AgeCommit message (Collapse)Author
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-09-13x11: implemented window grouping support used by some X11 window managers.Graeme Geldenhuys
2011-08-26x11: removed trailing whitespaceGraeme Geldenhuys
2011-08-26x11: fixed a compiler hint about an invalid/unsafe typecast.Graeme Geldenhuys
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-28Changed IFDEF around users unit in uses clause.Graeme Geldenhuys
It seems FPC only supports users.pp unit in Linux. Making this changes allows use to compile fpGUI under OpenSolaris too!
2011-07-25parameter handling improvementsGraeme Geldenhuys
Old behaviour was that we simply assumed the first parameter will be the X11 -display parameter. This is just WRONG! We now query the parameter list for the value of -display, that's if it exists in the first place.
2011-07-23wip stashGraeme Geldenhuys
2011-07-06Numlock gets treated as a ShitfState in X11. Now disabled.Graeme Geldenhuys
See the comments in the code. This fixes lots of code that checks for the ShiftState values in key press events.
2011-06-17minor code formatting changesGraeme Geldenhuys
2011-06-17Introduced a new property TfpgWindowBase.WindowStateGraeme Geldenhuys
This is an initial implementation for Linux only. Currently this property is read-only, but that alone is already very useful. Next I'll implement the Windows support, and later the read-write support.
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-24Partial undo of commit 2ffdd747.Graeme Geldenhuys
The code change in the original commit worked fine for Windows, but caused other problems under Linux. So I have commented the original code change for Linux until I can find a more suitable solution.
2011-03-24Replaced direct API usage with an already implemented method.Graeme Geldenhuys
2011-03-24Replaced old reference to GFX to fpGUI.Graeme Geldenhuys
2011-01-14X11: 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-14X11: OnDragEnter now has Sender and Source parameters populatedGraeme Geldenhuys
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.
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.
2011-01-06Timers bugfix. Timers did not always work under Windows or Linux.Graeme Geldenhuys
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.
2010-12-30X11: Correctly implemented the handling of X11's GraphicsExpose event.Graeme Geldenhuys
2010-11-18This X11 work-around doesn't seem to be needed anymore.Graeme Geldenhuys
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. :)
2010-11-12X11: extra checks and precautionsGraeme Geldenhuys
2010-11-12Added "call stack debugging" for internal use.Graeme Geldenhuys
It's disabled by default. Enabling can be done via project level or inside each unit at the beginning of such units.
2010-11-12fpgApplication.CreateForm implementation has changed, but end result is the sameGraeme Geldenhuys
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).
2010-11-11Bumped the version number so it's newer than the last release.Graeme Geldenhuys
2010-11-08Revert "Merge branch 'master' of ↵Graeme Geldenhuys
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.
2010-11-05Merge branch 'master' of ssh://fpgui.git.sourceforge.net/gitroot/fpgui/fpguiAndrew Haines
2010-10-29Removed the stray writeln() statement.Graeme Geldenhuys
2010-10-29Updated X11 code due to property changes in TfpgMimeDataItem class.Graeme Geldenhuys
2010-10-28TfpgWindowBase introduced a new abstract methodGraeme Geldenhuys
* This abstract method is called from TfpgWidget's AcceptDrops setter function * Template implementation in X11 * Actual implementation in GDI
2010-10-28extra error checking in mimelist DND operationGraeme Geldenhuys
2010-10-28More code comments and DNDDebug entries.Graeme Geldenhuys
2010-10-28bugfix: TfpgX11Drag.SendDNDDrop did not always process correctly.Graeme Geldenhuys
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.
2010-10-28Bugfix: TfpgX11Application.HandleDNDposition's XdndStatus message sent did ↵Graeme Geldenhuys
not correctly set the ActionType parameter if the drag was not accepted.
2010-10-28OnDragLeave event now has the Sender parameter set, and points to the target ↵Graeme Geldenhuys
component
2010-10-27X11 DND: We never checked if drop was really accepted in HandleDNDDropGraeme Geldenhuys
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.
2010-10-27Renamed TfpgWindowBase.DoEnabledDrops() to DoDNDEnabled()Graeme Geldenhuys
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
2010-10-27X11 DND: Incorrectly assumed there will always be a 'text/plain' mime-typeGraeme Geldenhuys
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.
2010-10-26X11: in HandleDNDposition() we never recursed through all childrenGraeme Geldenhuys
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.
2010-10-26X11: make sure that AcceptDrops are True before we fire OnDragDropGraeme Geldenhuys
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.
2010-10-26X11: improved DND debug messagesGraeme Geldenhuys
I also made sure that all writeln() statements are wrapped in IFDEF's.
2010-10-21GDI: Removed definition of MW_MOUSEWHEEL. it already exists in FPC.Graeme Geldenhuys
2010-10-04X11: extra failsafe before posting FPGM_RESIZE event.Graeme Geldenhuys
2010-10-03X11: fake a Resize event after the window is mapped (shown).Graeme Geldenhuys
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.
2010-09-23X11: disable DNDDebug define to hide debug informationGraeme Geldenhuys