summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qt_s60_p.h
Commit message (Collapse)AuthorAgeFilesLines
* S60 softkey refactoring (support for merging, priorities and menus)Janne Anttila2010-02-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Implemented features: Softkey Merging: Widget can set only one softkey and set flag that rest of the softkeys shall be taken from parent. Priority Handling: If multiple sokftkeys with same role are set, the highest priority action gets displayed. Custom Softkey Menu: By setting QMenu to QAction and assigning a softkey role for that action, the native menubar will be displayed when sofkey is clicked. Softkey Image: Initial code for implementing sofkey image support, the final implementation is still pending legal acceptance to use eiksoftkeyimage.h header file which is under EPL license. Task-number: QTBUG-7315 Review-By: Sami Merila Review-By: Jason Barron
* Move avkon component transparency check to app initialization.Jani Hautakangas2010-01-221-31/+1
| | | | Reviewed-by: Sami Merila
* Fix for symbian dialog background transparency.Jani Hautakangas2010-01-221-0/+31
| | | | | | | If Avkon components support transparency then dialog background is transparent enabling rounded corners. Reviewed-by: Sami Merila
* Update copyright year to 2010Jason McDonald2010-01-061-1/+1
| | | | Reviewed-by: Trust Me
* Rewrote most of the regular pointer handling.axis2009-12-091-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old implementation had been hacked on for a while and needed cleanup. The new code is heavily based on looking at the behavior of other platforms. It also reuses more of the cross platform code, which improves the handling of Enter and Leave events. We also switched to letting Symbian grab the pointer automatically when pressing down the mouse button, which improves things considerably compared to doing it ourselves. Popups should also work a lot better after this fix, since they were not really handled at all in the old code. The old code had calls to set the Symbian cursor sprite. This code has been removed since that code is now being called from within dispatchEnterLeaveEvents(). In addition, there was code to check whether the up key event had been left out by the platform. This was solved a bit differently now, instead putting the code in the section that handles virtual mouse, since that is where the problem occurs. Task: QTBUG-4990 RevBy: Shane Kearns AutoTest: N/A, Platform specific code that an autotest cannot catch. Lots of manual testing was done on normal examples as well drag'n'drop examples and it seemed to work fine.
* Remove fake right mouse button events from long tapShane Kearns2009-11-131-1/+0
| | | | | | | | | | | The context menu is launched by a separate event, not by the right mouse button. Generating the fake right mouse button caused side effects. We now treat the touch screen as a one button mouse, long taps still open the context menu using QContextMenuEvent. Task-number: QTBUG-5180 Reviewed-by: axis
* Merge commit upstream/4.6 into oslo-staging-2/4.6Olivier Goffart2009-11-131-1/+1
|\
| * Fix typo in license headerAlessandro Portale2009-11-121-1/+1
| | | | | | | | | | | | The word 'module' was missing. Reviewed-By: TrustMe
* | Fixed a focusing bug on Symbian.axis2009-11-121-0/+1
| | | | | | | | | | | | | | | | | | | | When Symbian pops up a menu or dialog, Qt should produce FocusOut events using PopupFocusReason rather than deactivating the whole window. This keeps input widgets from losing focus when FEP wants to pop up dialogs. AutoTest: QWidget passed RevBy: Jason Barron
* | Fixed some initializers and saved some memory.axis2009-11-111-2/+2
| | | | | | | | RevBy: Trust me
* | Prevented compiler warning.axis2009-11-091-1/+1
|/ | | | RevBy: Trust me
* Fixed modal dialog fading support in Symbian.Janne Anttila2009-11-041-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switched to use S60 API instead of Symbian one, the rationale is given below as an copy/paste from S60 docs: "Cross-application fading support Symbian OS provides some support for fading, but this only covers fading within an application. The S60 UI can have more than one application on the screen at once (in fact, since the system parts of the Status pane are inside EikServer, it always has more than one application on the screen). The S60 UI introduced the fading and drawing system to manage the fading state for the whole system. Application and UI control code for S60 should not attempt to set fade for a popup window directly. Instead, the popup window should implement the MAknFadedComponent interface, and should use the TAknPopupFader support class to set the fade. The application UI base classes interact with the fading and drawing system by informing it when the foreground status of the application changes. They also use it to implement system wide fading." There is also task QTBUG-5393 to implement fading support in future without S60 dependency. Task-number: QTBUG-5181 Reviewed-by: Sami Merila
* Removed the need for extra Symbian traps after QApp construction.axis2009-10-261-0/+2
| | | | | | | | | This was achieved by putting back the old trap handler after the S60 framework construction has finished. Task: QTBUG-4960 AutoTest: Included and passed RevBy: Shane Kearns
* Use premultiplied alpha pixel format in SymbianShane Kearns2009-10-201-4/+6
| | | | | | | | | Gives better performance in the raster paint engine. For Symbian 9.3 onwards, this can also be used as the native pixmap format. For 9.2, conversion is required. Reviewed-by: Sami Merila Reviewed-by: Jani Hautakangas
* Merge branch 'focusFixes' into 4.6axis2009-09-301-0/+5
|\ | | | | | | | | | | Conflicts: src/gui/kernel/qwidget_p.h src/gui/kernel/qwidget_s60.cpp
| * Fixed some focus issues on Symbian.axis2009-09-301-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are really two bugs that are fixed in this commit: - SetFocus() in Symbian does not automatically clear focus on the previously focused control, so we have to remember that control and clear it ourselves. - Symbian assumes that it is always the control at the top of the control stack that should have focus, and if this isn't the case, focus may or may not work depending on whether Symbian has had a chance to reset the focus or not. Therefore, whenever we change focus on a control, we have to also readd that control to the top of the stack, to ensure that it stays focused. RevBy: Janne Anttila
* | Revert "Revert all GUI changes from the MMF work."Frans Englich2009-09-281-1/+1
|/ | | | This reverts commit 9345d47c3945b61a27724508e8b3d0aaf7b57bcf.
* Compile fix for platforms prior to Symbian^3.Jason Barron2009-09-231-0/+2
| | | | | | | | | The advanced pointer events are only available on Symbian^3 and higher so we need to make sure these are protected by an #ifdef. We might have to re-factor this later into a plugin in order to get this running on older versions. Reviewed-by: axis
* Merge branch 's60MainHelperClasses' into 4.6axis2009-09-231-1/+3
|\
| * Corrected typo.axis2009-09-231-1/+1
| |
| * Added support for using custom application objects on S60.axis2009-09-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this patch, the application developer can use his own CEikApplication, CEikDocument and CEikAppUi classes with Qt, by deriving from QS60MainApplication, QSMainDocument and QS60MainAppUi, respectively. He can then register a factory function in the QApplication constructor to have his own objects created during the framework initialization. This patch also fixes some Qt code style issues. RevBy: Jason Barron RevBy: mread RevBy: Sami Merila RevBy: Shane Kearns
* | Implement advanced pointer handling on S60Bradley T. Hughes2009-09-231-0/+1
|/ | | | | | | | | | | | | Since we only get one pointer event at a time, we need to keep a list of all known touch points in QApplicationPrivate (otherwise the QTouchEvent won't contain enough points). The QApplication machinery can handle having inactive touch-points in the list, so at the moment we don't clear the list. We treat PointerNumber zero as the primary touch point, and only send regular mouse events for that pointer, never for the others. Reviewed-by: Jason Barron
* Saved some space by using bitfields instead of bools.axis2009-09-221-4/+4
| | | | RevBy: Shane Kearns
* Introduce native Symbian bitmap support to QPixmapJani Hautakangas2009-09-181-2/+2
| | | | | | | | | This is done to reduce heap consumption and to give a possibility to share bitmaps across process. QPixmap maps to Symbian CFbsBitmap which is stored in Symbian font and bitmap server. Reviewed-by: Jason Barron
* Enable compiling Symbian port with QT_NO_CURSORShane Kearns2009-09-171-0/+2
| | | | | | | Added some missing #ifdef QT_NO_CURSOR, so the symbian port still compiles if this feature is configured out. Reviewed-by: Jason Barron
* QCursor support for Symbian OSShane Kearns2009-09-151-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reviewed-By: Jason Barron Reviewed-By: Alessandro Portale Summary: QT_NO_CURSOR is now not defined for symbian builds Existing QCursor APIs are all supported New public API, QApplication::setNavigationMode, to allow the navigation mode to be set. I.E. on an S60 3.2 phone, some applications will want a virtual mouse cursor (web browser), while others are designed for keypad navigation. Symbian HAL is used for detecting input capabilities. Fix DND, code cleanup & comment QCursor visibility now uses a refcount, and is called from DND and the setNavigationMode so they are both simpler and don't interfere with each other. QApplication::setNavigationMode New public API for configuring cursor/keypad navi style. This links in with ongoing work on the 4-way keypad navi branch, but 2-way and 4-way modes both act as 2-way mode until that is integrated Some of the demos/examples have cursor switched on (those that were not usable with keypad) Virtual mouse support for non touch, non mouse phones (tested on N78) add *.d and .metadata (carbide debug file / workspace dir) to .gitignore System pointers are unavailable when using sprite workaround, so the system cursor shapes are compiled into qtgui as resources. MAC port does this also for shapes that aren't standard on the MAC. Refactor Drag'n'Drop to use QCursor Add test case to check all system cursor shapes Simply a mainwindow containing a label widget for each cursor shape, with the cursor property set appropriately QCursor(QBitmap,QBitmap) supported Fixed problem with the image & mask being inverted when using the QCursor constructor that takes two mono bitmaps. add .make.cache files to .gitignore Correct implementation of QApplication::setOverrideCursor QApplication::restoreOverrideCursor and QApplication::setOverrideCursor are now working correctly on Symbian platform. Performance will be slower compared with other platforms, because the Symbian window server has a cursor associated with each native window. Add test case for custom cursors Create a pixmap cursor and associate it with a widget. No changes to production code, since test passed 1st time ;) Add manual test for QCursor Make cursor independent of construction order Updated to work around window server issue where contruction order affects what cursor is displayed in child windows. Also changed to effectiveWinId following review comments Also fixed a problem which would make qcursor not link if configured with QT_NO_CURSOR Moved some multiply declared extern functions from cpp to _p.h files Implemented Symbian versions of the cursor functions. Merged in work I'd done based on tower. Fill in bits of stub functions based on windows port Removed QT_NO_CURSOR from list of config options forced on symbian Recompiled configure.exe Added stub functions for the missing functions in s60 port
* Removed some superfluous semicolonsAlessandro Portale2009-09-091-1/+1
| | | | Reviewed-by: TrustMe
* Update license headers again.Jason McDonald2009-09-091-4/+4
| | | | Reviewed-by: Trust Me
* Merge branch 'minimizeWrapperApp' into 4.6axis2009-09-031-0/+1
|\
| * Move the S60/Avkon framework initialization into QtGui.axis2009-09-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This way we avoid having a lot of code in a static (and unmaintainable) library. The s60main static library now currently has only one task: to call main(). To move the initialization into QtGui also meant a change in how the S60 framework is created, because we can no longer use the trick where we create and start the the S60 event loop and then have the framework call us back to start main(). The initialization now follows the creation and destruction of QApplication, which is a lot more in line with how other platforms do it. Since S60 doesn't support creating the environment, and *then* starting it (both are executed by the same call), we had to open up the S60 framework construction classes and just mirror what they do. This means that after QApplication construction is done, the S60 framework is initialized, but nothing will run yet and control will return to main(), where the user can start the event loop himself. One of the quirks of this approach is that the construction of the S60 framework makes a new cleanup stack. This means that any active traps will not be active anymore, and leaving without setting a new trap will most likely panic. This shouldn't be a problem for us, since Qt is never supposed to leave, but it means that if anyone uses the cleanup stack without setting a new trap, they will receive a panic. It was considered to add a trap mark in QApplication construction and then removing it on destruction, but it was dropped because leaving from main() is still undefined (even if the old cleanup stack would be restored in the destructor, we wouldn't be able to stop the exception from unwinding the stack, and the cleanup stack would then be unbalanced). RevBy: Jason Barron RevBy: Janne Anttila AutoTest: QWidget passed with same failure count
* | Update tech preview license header for files that are new in 4.6.Jason McDonald2009-08-311-13/+13
|/ | | | Reviewed-by: Trust Me
* Merge branch 'master' of git@scm.dev.troll.no:qt/qt-s60-publicJanne Anttila2009-08-191-1/+1
|\
| * Changed names and URLs to reflect name change.axis2009-08-191-1/+1
| | | | | | | | RevBy: Trust me
* | Enabled contextmenu event for Symbian.Janne Anttila2009-08-191-1/+1
|/ | | | | | In Symbian the context menu event is triggered after long press event is detected. This is equivalent to right mouse click on desktop environments.
* Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt-s60-publicmread2009-08-071-4/+4
|\ | | | | | | | | Conflicts fixed: src/corelib/io/qdiriterator.cpp
| * Update license headers according to commit 858c70f768e.axis2009-08-061-3/+3
| | | | | | | | RevBy: Trust me
| * Replaced $MODULE$ with hardcoded module names.axis2009-08-061-1/+1
| | | | | | | | RevBy: Trust me
* | exception -> leave conversion for pointer eventsmread2009-08-071-0/+1
|/
* Trailing whitespace and tab/space fixes for src/guiJanne Anttila2009-08-041-3/+3
|
* Squashed commit of the topic/exceptions branch.Harald Fernengel2009-08-031-6/+4
| | | | | Contains some smaller fixes and renaming of macros. Looks big, but isn't scary at all ;)
* Make S60 integration optional.Jason Barron2009-07-151-1/+8
| | | | | | | | | | | | | | This is more a cleanup of the usage of Q_WS_S60 vs. Q_OS_SYMBIAN than anything else. One of the side effects of this work was that it was relatively little work to get QtGui compiling when Q_WS_S60 is not defined. Based on this we introduce two new configure options that control S60 integration. Currently the -no-s60 option will not work entirely because the 's60main' module has not yet been refactored and still has a dependancy on the S60 libraries. Reviewed-by: axis <qt-info@nokia.com>
* Make Qt exception safer.Robert Griebl2009-06-101-0/+1
| | | | | | | | Squashed commit of the branch haralds-haralds-qt-s60-topics/topic/exceptions, which also contains the full history. Rev-By: Harald Fernengel Rev-By: Ralf Engels
* Fix up the display mode conversion function.Jason Barron2009-06-041-31/+34
| | | | | | | | Few things here: - Add support for EGray2 and EGray256 - Change the define to disable EColor16MAP for old SDKs - Make the default case return Invalid instead of a fatal error - Fix indentation, tabs -> spaces
* Fixed incorrect headers.axis2009-06-031-1/+31
|
* fixed bug where pointer down outside modal dialog causes access violationJanne Koskinen2009-05-191-0/+1
|
* We previously had some hacks in this function to avoid creating aJason Barron2009-04-281-2/+4
| | | | | | backing store with the ARGB32 format (which is slower to draw on), but we actually want this in some cases so let's do this properly and move the hacks somewhere else.
* Long live Qt for S60!axis2009-04-241-0/+248