Age | Commit message (Collapse) | Author |
|
|
|
|
|
We incorrectly set the consumed variable, and called inherited
unnecessarily. This is now improved.
|
|
Before the menu only used to process the Alt+<key> events for the
mainmenu bar (top level menus). Now we recursively run through all menu
items looking for a hotkey match.
|
|
This is done because DoKeyShortcut() clearly says what it does. It only
processes keyboard shortcut events.
|
|
|
|
|
|
processing order is now as follows;
- widget that keypress occured it trys to handle the event.
- then to keyboard shortcut processing for the widget's children
- then work back towards the top-level form giving chance for
keyboard navigation (tabstop) processing. eg: pressing Tab key
- then let the top level form to keyboard shortcut processing
eg: allowing MainMenu to process the event.
- then allow the top level for to process OnKeyPress if such an
event handler is implemented.
- then if the top level form is not the MainForm, and the current
top level form is not shown model, allow the application.mainform
to process the keyshortcut in it's main menu.
|
|
This is similar to HandleKeyPress() but takes into account the original
widget that started the process, so it doesn't process that widget or its
children twice.
|
|
In KeycodeToText(), 'Shift+' came before Ctrl or Alt. This is not normal
practice, so I moved it.
|
|
This is a UI Designer friendly component that allows you to embed frames
"Windows" inside other windows.
|
|
- Renamed the timer field variable from T_Chrono to FTimer.
- Renamed the OnTimer event handler from T_ChronoFini to HintTimerFired
- Disabled the timer *before* hinding the hint window. This prevents
those add AV's that occur when you close an application.
- No need to explicityl disable the timer in HintWindow destructor.
When you free a timer, it automatically gets disabled.
|
|
Now the internal blink timer only gets activating when a Canvas is assigned.
|
|
|
|
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.
|
|
|
|
This is consistent with other components in the RTL, FCL and even fpGUI
itself.
|
|
I have successfully tested fpGUI using OpenSolaris 2010.03 (x86) using
FPC 2.4.4.
|
|
It seems FPC only supports users.pp unit in Linux. Making this changes
allows use to compile fpGUI under OpenSolaris too!
|
|
We never used to check if we are allowed to set the FFocusCol, we just
assumed we are allowed. Now we try each column while calling CanSelectCell()
in each iteration so we select the first available column.
|
|
Old behaviour we simply forced Consumed = True and later Consumed = False.
This has a very good chance of overwriting the origin consume value. We now
only set consume to True, if it is really so.
|
|
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.
|
|
|
|
This is a placeholder for future use.
|
|
|
|
A slightly tweaked DrawButtonFace() is all that is really required.
|
|
Prevents a possible compiler error.
|
|
This meant that sometimes we couldn't select the desired date.
|
|
|
|
|
|
|
|
this allows us easy access to what database the user selected.
|
|
This gives the user another chance to log in.
|
|
See the comments in the code. This fixes lots of code that checks for
the ShiftState values in key press events.
|
|
Calling FollowFocus already calls CheckFocusChanged.
|
|
This will make sure that EndUpdate is called, even if we get an error
somewhere in between.
|
|
resized.
- My calculations was totally out of wack! Now it works
as it should.
- Also made sure scrollbars are correctly updated if
Beginupdate..Endupdate is used.
|
|
The horizontal scrollbar was always the same size as the width of the
grid, so it couldn't actually scroll columns.
|
|
Now we can retrieve the WindowState of TfpgForm under both Linux and
Windows.
|
|
|
|
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.
|
|
|
|
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.
|
|
This event fires when we have successfully changed the name of the filename.
|
|
|
|
We painted the background rectangle twice. So I just removed the duplicate
paint code.
|
|
Not sure if this will break anything. I can't really see why it should.
|
|
|
|
The ComboBox.Checked property now fires the event even when set programmatically.
So we better set the event handler AFTER we set the Checked property. This is
how it is done in all other components anyway.
|