Home · All Classes · Main Classes · Annotated · Grouped Classes · Functions

The Qt/Embedded-Specific Classes

Qt/Embedded classes fall into two groups: the majority are used by every Qt/Embedded program, and some are only used by the Qt/Embedded server. The Qt/Embedded server program can also be a client, as in the case of a single-process installation. All Qt/Embedded specific source files are in src/gui and are suffixed _qws. The > symbol indicates inheritance.

QScreen > QLinuxFbScreen > accelerated screens, QTransformedScreen > QVfbScreen

These encapsulate the framebuffer Qt/Embedded is drawing to, provide support for mapping of coordinates for rotating framebuffers, allow manipulation of the colour palette and provide access to offscreen graphics memory for devices with separate framebuffer memories.

QScreenCursor > accelerated cursor > QVfbCursor

This handles drawing the on-screen mouse cursor, and saving and restoring the screen under it for the non-accelerated cursor types.

Subclassing QScreenCursor is optional in an accelerated driver (you would only want to do so if the hardware supports a hardware cursor).

QLock, QLockHolder

This encapsulates a System V semaphore, used for synchronising access to memory shared between Qt/Embedded clients. QLockHolder is a utility class to make managing and destroying QLocks easier.

There should be no need to modify this class unless porting Qt/Embedded to an operating system without System V IPC.

QWSSoundServer, Client

The Qt/Embedded server contains a simple sound player and mixer. Clients can request the server play sounds specified as files.

There should be no need to modify this class unless porting Qt/Embedded to an operating system without a Linux-style /dev/dsp.

QWSWindow

This contains the server's notion of an individual top level window: the region of the framebuffer it's allocated, the client that created it, and so forth.

There should be no reason to modify this class.

QWSKeyboardHandler > subtypes

This handles keyboard/button input. QWSKeyboardHandler is subclassed to provide for reading /dev/tty, an arbitrary low-level USB event device (for USB keyboards) and some PDA button devices.

Modifying QWSKeyboardHandler would allow you to support different types of keyboard (currently only a fairly standard US PC style keyboard is supported); subclassing it is the preferred way to handle non-pointer input devices.

QWSMouseHandler > QWSCalibratedMouseHandler > mouse types

This handles mouse/touch-panel input. Descendants of QWSCalibratedMouseHandler make use of filtering code which prevents 'jittering' of the pointer on touchscreens; some embedded devices do this filtering in the kernel in which case the driver doesn't need to inherit from QWSCalibratedMouseHandler.

Subclassing QWSCalibratedMouseHandler is preferred for touch-panels without kernel filtering; inheriting QWSMouseHandler is the way to add any other type of pointing device (pen tablets, touchscreens, mice, trackballs and so forth).

QWSDisplay

This class exists only in the Qt/Embedded server and keeps track of all the top-level windows in the system, as well as the keyboard and mouse.

You would only want to modify this if making deep and drastic modifications to Qt/Embedded window behavior (alpha blended windows for example).

QWSServer

This manages the Qt/Embedded server's Unix-domain socket connections to clients. It sends and receives QWS protocol events and calls QWSDisplay in order to do such things as change the allocation region of windows.

The only reason to modify this would be to use something other than some sort of socket-like mechanism to communicate between Qt/Embedded applications (in which case modify QWSClient too). If you have something like Unix domain sockets, modify QWSSocket/\c QWSServerSocket instead. Don't add extra QWS events to communicate between applications, use QCop instead.

QWSClient

This encapsulates the client side of a Qt/Embedded connection and can marshal and demarshal events.

There should be no reason to modify this except to use something radically different from Unix domain sockets to communicate between Qt/Embedded applications.

QWSDisplayData

This manages a client's QWSClient, reading and interpreting events from the QWS server. It connects to the QWS server on application startup, getting information about the framebuffer and creating the memory manager. Other information about the framebuffer comes directly from /dev/fb in QLinuxFbScreen.

There should be no reason to modify this class.

QWSCommands

These encapsulate the data sent to and from the QWS server.

There should be no reason to modify them.

QCopChannel

QCop is a simple inter-process communication (IPC) mechanism for communication between Qt/Embedded applications. String messages with optional binary data can be sent to different channels.

The mechanism itself is designed to be bare-bones in order for users to build whatever higher-level layer they like on top of it.

QWSManager

This provides Qt/Embedded window management, drawing a title bar and handling user requests to move and resize windows, and so on.

There should be no reason to modify it but you should subclass it if you want to modify window behavior (point to click versus focus follows mouse, for instance).

QWSDecoration

Descendants of this class are different styles for the Qt/Embedded window manager, for instance QWSWindowsDecoration draws Qt/Embedded window frames in the style of Windows CE.

Subclass it in order to provide a new window manager appearance (the equivalent of a Windows XP or Enlightenment theme).

QWSPropertyManager

This provides the QWS client's interface to the QWS property system (a simpler version of the X property system, it allows you to attach arbitrary data to top-level windows, keyed by an integer).

There should be no reason to modify this class.

QWSSocket, QWSServerSocket

Provides Unix-domain sockets.

Modify this if you're porting to a non-Unix OS but have something analogous to Unix-domain sockets (a byte-oriented, reliable, ordered transmission mechanism, although you can probably implement it with something like a message queue as well).


Copyright © 2005 Trolltech Trademarks
Qt 4.0.0-rc1