summaryrefslogtreecommitdiff
path: root/src/corelib
AgeCommit message (Collapse)Author
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-19better debug output when needed.Graeme Geldenhuys
2011-05-19This code is not needed any more, as it was meant for FPC 2.2.x versions.Graeme Geldenhuys
Code cleanup was done. After all, FPC 2.4.0 and 2.4.2 has been out for ages.
2011-05-08Included Motif as one of the default registered styles in fpGUI.Graeme Geldenhuys
2011-05-08Corrected the button border sizes in the common style TfpgStyleGraeme Geldenhuys
2011-05-08added comments and fixed spelling mistakes in comments.Graeme Geldenhuys
2011-05-08globally renamed TFTextFlags to TfpgTextFlagsGraeme Geldenhuys
Somehow I forgot to rename this type when we introduced the 'fpg' prefix years ago.
2011-05-08globally renamed TFButtonFlags to TfpgButtonFlagsGraeme Geldenhuys
Somehow I forgot to rename that type name when we moved over to the 'fpg' prefix.
2011-05-06hook up the Style Manager.Graeme Geldenhuys
The fpgStyle global variable is now simply a reference to the current style in the fpgStyleManager. The Style Manager does the free'ing of the style too, so we simply need to tell the style manager when we want that done.
2011-05-06make the Style Manager available in the fpg_main unit.Graeme Geldenhuys
This is a bit of a cross-linking case, jumping from corelib code to gui code, but I can't see how this can be done any other way. After all, fpGUI is a GUI toolkit - not a non-gui utility library. For some strange reason the 'Win2000' and 'auto' did not register automatically, even though they are in the *.lpk package and in the initialization section. So I had to add that style unit to the uses clause. I need to investigate why this had to be done.
2011-05-06Just grouped the methods of TfpgStyle based on functionality and widgets.Graeme Geldenhuys
This is basically just some code formatting changes, making it easier for a developer to see what style methods related to what widgets - that's if the method names was not obvious enough. ;-)
2011-05-06Implemented a new style method that draws the EditBox background.Graeme Geldenhuys
This is a common style implementation - basically just paints the background a specific color. Nothing fancy.
2011-05-06Skeleton style units.Graeme Geldenhuys
These will later contain the various style implementations.
2011-05-03Fixed a compiler warning. I forgot to set the function result.Graeme Geldenhuys
2011-05-03New style method introduced: TfpgStyle.GetButtonShiftGraeme Geldenhuys
This allows a style to define by how much the button image and text must shift (if at all) when the button is pressed. Possitive numbers moves right and down. Negative numbers move up and left. Zero values means the icon and text doesn't move [like under Mac OS X].
2011-05-03marked various methods with overload.Graeme Geldenhuys
I know in FPC mode objfpc it is not strictly needed, but lets keep to the Object Pascal language standards for now.
2011-05-03Introduced a new overloaded method TfpgStyle.DrawButtonFace()Graeme Geldenhuys
2011-04-05Fixes a potential AV when ActiveWidget is freedGraeme Geldenhuys
If the ActiveWidget was freed, the parent never got notified. If focus was then changed, the parent tried to call ActiveWidget.HandleFocusKill, causing an access violation. The toolkit now correctly sets ActiveWidget to nil if it was freed, and as a extra failsafe, wraps the HandleFocusKill call in a try..except block.
2011-03-26Set the default value for IgnoreDblClick propertyGraeme Geldenhuys
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-03-24improved charset translation to UTF8Graeme Geldenhuys
2011-03-08applied the missing setting for Lazarus IDE so package unit is not added to ↵Graeme Geldenhuys
a project uses clause.
2011-02-07Default Font changes.Graeme Geldenhuys
* Linux now defaults to 'Liberation Sans' which comes standard with most Linux distros, and is metric compatible with Arial. The latter is freely available, but doesn't come standard with any Linux disto. * Windows default font size is now 8 (down from previous 10), which is now the same as the remainder of Windows apps. Strange that the same font as size (eg: Arial-10) is different sizes in pixels under Linux and Windows. Weird! :-/
2011-02-07Fix the URL of fpGUI's home page. We recently moved to SourceForge.Graeme Geldenhuys
2011-01-20adds extra checks to know when we shouldn't fire the OnClick eventGraeme Geldenhuys
2011-01-19OnClick now only triggers if the LeftMouseUp occurs in the bounds of the widget.Graeme Geldenhuys
Old behaviour was that the OnClick will trigger even if the left mouse button was released outside the bounds. This is not standard behaviour compared to other gui toolkits.
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-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-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-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-12UpdateWindowPosition now called irrespectively in MoveandResize.Graeme Geldenhuys
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.
2011-01-12Fix stupid typo bug in HandleMove.Graeme Geldenhuys
We used FHeight instead of FLeft!! Dope!
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-06fpgCheckTimers is now a function.Graeme Geldenhuys
A boolean return value of True means that there are active timers.
2011-01-06new fpgPause() function.Graeme Geldenhuys
This function blocks the calling method, but allows for framework messages still to be processed. Could be useful for some developers.
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.
2011-01-03Minor code improvements.Graeme Geldenhuys
2011-01-03Moved FDefaultFont instantiation to a new location in code.Graeme Geldenhuys
2011-01-03new overloaded version of TfpgStyle.DrawControlFrame()Graeme Geldenhuys
2010-12-30TfpgWidget.MsgResize never considered constraints when calculating size deltasGraeme Geldenhuys
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().
2010-12-30Doubled the message queue size to handle lots more messages.Graeme Geldenhuys
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.
2010-12-30X11: Correctly implemented the handling of X11's GraphicsExpose event.Graeme Geldenhuys
2010-11-30New theme function to paint MenuBar backgroundGraeme 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-18TfpgWidget.SetAlign called the wrong ReAlign() method.Graeme Geldenhuys
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.