1 /****************************************************************************
4 ** Global feature selection
8 ** Copyright (C) 2000 Trolltech AS. All rights reserved.
10 ** This file is part of the tools module of the Qt GUI Toolkit.
12 ** This file may be distributed under the terms of the Q Public License
13 ** as defined by Trolltech AS of Norway and appearing in the file
14 ** LICENSE.QPL included in the packaging of this file.
16 ** This file may be distributed and/or modified under the terms of the
17 ** GNU General Public License version 2 as published by the Free Software
18 ** Foundation and appearing in the file LICENSE.GPL included in the
19 ** packaging of this file.
21 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
22 ** licenses may use this file in accordance with the Qt Commercial License
23 ** Agreement provided with the Software.
25 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
28 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
29 ** information about Qt Commercial License Agreements.
30 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
31 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
33 ** Contact info@trolltech.com if any conditions of this licensing are
36 **********************************************************************/
41 /*! \page features....html
45 // Qt ships with a number of pre-defined configurations. If none suit
46 // your needs, define QCONFIG_LOCAL and create a "qconfig-local.h" file.
48 // Note that disabling some features will produce a libqt that is not
49 // compatible with other libqt builds. Such modifications are only
50 // supported on Qt/Embedded where reducing the library size is important
51 // and where the application-suite is often a fixed set.
53 #if defined(QCONFIG_LOCAL)
54 #include <qconfig-local.h>
55 #elif defined(QCONFIG_MINIMAL)
56 #include <qconfig-minimal.h>
57 #elif defined(QCONFIG_SMALL)
58 #include <qconfig-small.h>
59 #elif defined(QCONFIG_MEDIUM)
60 #include <qconfig-medium.h>
61 #elif defined(QCONFIG_LARGE)
62 #include <qconfig-large.h>
63 #else // everything...
72 //#define QT_NO_STRINGLIST
74 #if defined(QT_NO_IMAGE_SMOOTHSCALE)
78 # define QT_NO_ICONSET
82 #if defined(QT_NO_STRINGLIST)
92 //#define QT_NO_PALETTE
97 //#define QT_NO_TEXTSTREAM
101 //#define QT_NO_DATASTREAM
104 Dynamic module linking
106 //#define QT_NO_PLUGIN
112 <p>The Windows Bitmap (BMP) image format is common on MS-Windows.
113 <p>This is an uncompressed image format
114 offering few advantages over PNG or JPEG.
116 #if defined(QT_NO_DATASTREAM)
117 # define QT_NO_IMAGEIO_BMP
121 <p>The Portable PixMap (PPM) image format is common on Unix.
122 <p>This is an uncompressed image format
123 offering few advantages over PNG or JPEG.
125 //#define QT_NO_IMAGEIO_PPM
128 <p>The X11 BitMap (XBM) image format is common on X11.
129 <p>This is an uncompressed monochrome image format.
130 Qt uses this format for some internal images (eg. mouse cursors).
132 //#define QT_NO_IMAGEIO_XBM
135 <p>The X11 PixMap (XPM) image format is common on X11.
136 <p>This is an uncompressed image format.
137 XPM images have the small advantage that they can be trivially
138 included in source files as they are C code.
139 Qt uses this format for some internal images (eg. QMessageBox icons).
141 #if defined(QT_NO_TEXTSTREAM)
142 # define QT_NO_IMAGEIO_XPM
146 <p>The Portable Network Graphics (PNG) is a compressed image format.
147 <p>See <a href=http://www.libpng.org/pub/png/>The PNG Home Site</a> for
148 details of the format.
150 //#define QT_NO_IMAGEIO_PNG
153 <p>The Multiple-image Network Graphics (MNG) is a compressed animation format.
154 <p>See <a href=http://www.libpng.org/pub/mng/>The MNG Home Site</a> for
155 details of the format.
157 //#define QT_NO_IMAGEIO_MNG
160 <p>The Joint Photographic Experts Group (JPEG) is a compressed lossy image format that gives high compression
161 for real-world and photo-realistic images.
163 //#define QT_NO_IMAGEIO_JPEG
167 <p>Allows push-driven data processing.
169 //#define QT_NO_ASYNC_IO
171 Asynchronous image I/O
172 <p>Allows push-driven images.
174 //#define QT_NO_ASYNC_IMAGE_IO
175 #if defined(QT_NO_ASYNC_IO) || defined(QT_NO_ASYNC_IMAGE_IO)
178 <p>This includes animated GIFs.
179 <p><b>Note: this currently also requires <tt>QT_BUILTIN_GIF_READER</tt> to
180 be defined when building Qt.</b>
188 <p>Scalable font format common on MS-Windows and becoming common on Unix.
189 <p>Only supported on Qt/Embedded.
191 //#define QT_NO_TRUETYPE
194 <p>The Bitmap Distribution Format (BDF) font file format, common
196 <p>Only supported on Qt/Embedded.
198 #if defined(QT_NO_TEXTSTREAM) || defined(QT_NO_STRINGLIST)
204 #if defined(QT_NO_STRINGLIST)
205 # define QT_NO_FONTDATABASE
208 // Internationalization
213 #if defined(QT_NO_DATASTREAM)
214 # define QT_NO_TRANSLATION
218 QTextCodec class and subclasses
220 //#define QT_NO_TEXTCODEC
222 #if defined(QT_NO_TEXTCODEC)
225 <p>This includes some large conversion tables.
227 # define QT_NO_CODECS
229 #if defined(QT_LITE_UNICODE)
231 Unicode property tables
232 <p>These include some large tables.
234 # define QT_NO_UNICODETABLES
240 #if defined(QT_NO_DIR)
243 #if defined(QT_NO_MIME) || defined(QT_NO_TEXTSTREAM) || defined(QT_NO_DRAWUTIL) || defined(QT_NO_IMAGE_SMOOTHSCALE)
245 RichText (HTML) display
247 # define QT_NO_RICHTEXT
253 #if defined(QT_NO_STRINGLIST) || defined(QT_NO_TEXTSTREAM) || defined(QT_NO_TEXTCODEC)
258 Document Object Model
260 #if defined(QT_NO_XML) || defined(QT_NO_MIME)
268 //#define QT_NO_SOUND
273 #if defined(QT_NO_STRINGLIST) || defined(QT_NO_ICONSET)
274 # define QT_NO_PROPERTIES
284 //#define QT_NO_NETWORK
286 #if defined(QT_NO_NETWORK) || defined(QT_NO_STRINGLIST) || defined(QT_NO_TEXTSTREAM)
295 #if defined(QT_NO_NETWORK) || defined(QT_NO_DIR) || defined(QT_NO_STRINGLIST)
296 # define QT_NO_NETWORKPROTOCOL
298 #if defined(QT_NO_NETWORKPROTOCOL) || defined(QT_NO_DNS)
302 # define QT_NO_NETWORKPROTOCOL_FTP
306 # define QT_NO_NETWORKPROTOCOL_HTTP
310 External process invocation.
312 //#define QT_NO_PROCESS
315 // Qt/Embedded-specific
317 #if defined(QT_NO_NETWORK)
319 Multi-process support.
321 # define QT_NO_QWS_MULTIPROCESS
324 #if defined(QT_NO_QWS_MULTIPROCESS) || defined(QT_NO_DATASTREAM)
326 Palmtop Communication Protocol
332 Console keyboard support
334 //#define QT_NO_QWS_KEYBOARD
339 #if defined(QT_NO_CURSOR)
340 # define QT_NO_QWS_CURSOR
346 //#define QT_NO_QWS_ALPHA_CURSOR
350 //#define QT_NO_QWS_MACH64
354 //#define QT_NO_QWS_VOODOO3
356 Matrox MGA acceleration (Millennium/Millennium II/Mystique/G200/G400)
358 //#define QT_NO_QWS_MATROX
363 //#define QT_NO_QWS_VFB
365 Transformed frame buffer
367 //#define QT_NO_QWS_TRANSFORMED
368 #if defined(QT_NO_NETWORK)
370 Remote frame buffer (VNC)
372 # ifndef QT_NO_QWS_VNC
373 # define QT_NO_QWS_VNC
379 //#define QT_NO_QWS_DEPTH_1
383 //#define QT_NO_QWS_DEPTH_4
387 //#define QT_NO_QWS_VGA_16
392 #define QT_NO_QWS_SVGALIB
396 #define QT_NO_QWS_DEPTH_8GRAYSCALE
400 //#define QT_NO_QWS_DEPTH_8
402 15 or 16-bit color (define QT_QWS_DEPTH16_RGB as 555 for 15-bit)
404 //#define QT_NO_QWS_DEPTH_16
408 //#define QT_NO_QWS_DEPTH_24
412 //#define QT_NO_QWS_DEPTH_32
417 //#define QT_NO_QWS_MANAGER
420 Window Manager Styles
422 #define QT_NO_QWS_KDE2_WM_STYLE
423 #if defined( QT_NO_QWS_MANAGER ) || defined( QT_NO_IMAGEIO_XPM )
424 # define QT_NO_QWS_AQUA_WM_STYLE
425 # define QT_NO_QWS_BEOS_WM_STYLE
426 # define QT_NO_QWS_KDE_WM_STYLE
427 # define QT_NO_QWS_QPE_WM_STYLE
428 # define QT_NO_QWS_WINDOWS_WM_STYLE
434 //#define QT_NO_QWS_SAVEFONTS
437 Favour code size over graphics speed
438 <p>Smaller, slower code will be used for drawing operations.
439 <p>Only supported on Qt/Embedded.
441 //#define QT_NO_QWS_GFX_SPEED
444 Qt/Embedded window system properties.
446 //#define QT_NO_QWS_PROPERTIES
448 #if defined(QT_NO_QWS_PROPERTIES) || defined(QT_NO_MIME)
452 # define QT_NO_CLIPBOARD
455 #if defined(QT_NO_MIME) || defined(QT_NO_QWS_PROPERTIES)
459 # define QT_NO_DRAGANDDROP
462 #if defined(QT_NO_PROPERTIES)
469 #if defined(QT_NO_CLIPBOARD) || defined(QT_NO_MIME) || defined(_WS_QWS_)
471 Cut and paste of complex data types (non-text)
472 Not yet implemented for QWS.
474 # define QT_NO_MIMECLIPBOARD
479 Drawing utility functions
481 //#define QT_NO_DRAWUTIL
485 //#define QT_NO_IMAGE_TRUECOLOR
487 Smooth QImage scaling
489 //#define QT_NO_IMAGE_SMOOTHSCALE
491 Image file text strings
493 #if defined(QT_NO_STRINGLIST)
494 # define QT_NO_IMAGE_TEXT
497 #if defined(QT_NO_IMAGE_TRUECOLOR)
501 # define QT_NO_IMAGE_16_BIT
506 //#define QT_NO_CURSOR
512 //#define QT_NO_COLORNAMES
516 //#define QT_NO_TRANSFORMATIONS
521 #if defined(QT_NO_TEXTSTREAM)
522 # define QT_NO_PRINTER
528 #if defined(QT_NO_DATASTREAM)
529 # define QT_NO_PICTURE
534 Automatic widget layout
536 //#define QT_NO_LAYOUT
539 #if defined(QT_NO_DRAWUTIL) || defined(QT_NO_PALETTE)
550 //#define QT_NO_DIALOG
554 //#define QT_NO_SEMIMODAL
558 //#define QT_NO_FRAME
561 Special widget effects (fading, scrolling)
563 //#define QT_NO_EFFECTS
577 # define QT_NO_TOOLBAR
583 #if defined(QT_NO_BUTTON) || defined(QT_NO_STYLE)
587 # define QT_NO_CHECKBOX
591 # define QT_NO_RADIOBUTTON
593 #if defined(QT_NO_BUTTON) || defined(QT_NO_TOOLBAR) || defined(QT_NO_ICONSET)
597 # define QT_NO_TOOLBUTTON
609 # define QT_NO_GROUPBOX
611 #if defined(QT_NO_GROUPBOX)
615 # define QT_NO_BUTTONGROUP
617 Horizontal group boxes
619 # define QT_NO_HGROUPBOX
621 #if defined(QT_NO_HGROUPBOX)
625 # define QT_NO_VGROUPBOX
627 #if defined(QT_NO_BUTTONGROUP)
629 Horizontal button groups
631 # define QT_NO_HBUTTONGROUP
633 #if defined(QT_NO_HBUTTONGROUP)
635 Vertical button groups
637 # define QT_NO_VBUTTONGROUP
640 Horizonal box layout widgets
645 #if defined(QT_NO_HBOX)
647 Vertical box layout widgets
654 #if defined(QT_NO_PALETTE)
655 # define QT_NO_LINEEDIT
657 #if defined(QT_NO_TOOLBAR)
661 # define QT_NO_MAINWINDOW
663 #if defined(QT_NO_ICONSET)
667 # define QT_NO_MENUDATA
669 #if defined(QT_NO_MENUDATA)
673 # define QT_NO_POPUPMENU
677 # define QT_NO_MENUBAR
679 #if defined(QT_NO_BUTTON) || defined(QT_NO_ICONSET) || defined(QT_NO_POPUPMENU)
683 # define QT_NO_PUSHBUTTON
689 # define QT_NO_PROGRESSBAR
692 Range-control widgets
694 //#define QT_NO_RANGECONTROL
695 #if defined(QT_NO_RANGECONTROL) || defined(QT_NO_STYLE)
699 # define QT_NO_SCROLLBAR
703 # define QT_NO_SLIDER
707 # define QT_NO_SPINBOX
715 #if defined(QT_NO_SCROLLBAR) || defined(QT_NO_FRAME)
717 Scrollable view widgets
719 # define QT_NO_SCROLLVIEW
721 #if defined(QT_NO_SCROLLVIEW)
725 # define QT_NO_CANVAS
729 # define QT_NO_ICONVIEW
732 #if defined(QT_NO_SCROLLBAR)
736 # define QT_NO_TABLEVIEW
738 #if defined(QT_NO_TABLEVIEW)
742 # define QT_NO_MULTILINEEDIT
749 # define QT_NO_SPLITTER
755 # define QT_NO_STATUSBAR
760 #if defined(QT_NO_ICONSET)
761 # define QT_NO_TABBAR
763 #if defined(QT_NO_TABBAR)
767 # define QT_NO_TABWIDGET
772 #if defined( QT_NO_LABEL ) || defined( QT_NO_PALETTE )
773 # define QT_NO_TOOLTIP
778 //#define QT_NO_VALIDATOR
782 #if defined( QT_NO_TOOLTIP )
783 # define QT_NO_WHATSTHIS
789 # define QT_NO_WIDGETSTACK
792 #if defined(QT_NO_RICHTEXT) || defined(QT_NO_SCROLLVIEW)
796 # define QT_NO_TEXTVIEW
799 #if defined(QT_NO_TEXTVIEW)
803 # define QT_NO_TEXTBROWSER
806 #if defined(QT_NO_STYLE)
810 # define QT_NO_STYLE_WINDOWS
814 # define QT_NO_STYLE_MOTIF
817 #if defined(QT_NO_STYLE_MOTIF)
821 # define QT_NO_STYLE_MOTIFPLUS
825 #if defined(QT_NO_SCROLLVIEW) || defined(QT_NO_STRINGLIST)
829 # define QT_NO_LISTBOX
835 //#define QT_NO_ACCEL
841 # define QT_NO_SIZEGRIP
847 # define QT_NO_HEADER
853 # define QT_NO_WORKSPACE
859 # define QT_NO_LCDNUMBER
864 //#define QT_NO_ACTION
866 #if defined(QT_NO_HEADER)
873 #if defined(QT_NO_LISTBOX)
877 # define QT_NO_COMBOBOX
880 #if defined(QT_NO_HEADER) || defined(QT_NO_SCROLLVIEW)
884 # define QT_NO_LISTVIEW
887 #if defined(QT_NO_STYLE_WINDOWS)
889 Compact Windows style
891 # define QT_NO_STYLE_COMPACT
894 #if defined(QT_NO_STYLE_MOTIF) || defined(QT_NO_TRANSFORMATIONS)
898 # define QT_NO_STYLE_CDE
902 # define QT_NO_STYLE_SGI
904 #if defined(QT_NO_STYLE_WINDOWS)
908 # define QT_NO_STYLE_PLATINUM
914 #if defined(QT_NO_LAYOUT) || defined(QT_NO_LABEL) || defined(QT_NO_PUSHBUTTON) || defined(QT_NO_DIALOG)
915 # define QT_NO_COLORDIALOG
917 #if defined(QT_NO_DIALOG)
921 # define QT_NO_MESSAGEBOX
923 #if defined(QT_NO_DIALOG) || defined(QT_NO_TABBAR)
927 #define QT_NO_TABDIALOG
930 #if defined(QT_NO_DIALOG)
934 # define QT_NO_WIZARD
937 #if defined(QT_NO_DIALOG) || defined(QT_NO_LISTVIEW) || defined(QT_NO_NETWORKPROTOCOL) || defined(QT_NO_COMBOBOX) || defined(QT_NO_DIR) || defined(QT_NO_MESSAGEBOX) || defined(QT_NO_SEMIMODAL)
941 # define QT_NO_FILEDIALOG
944 #if defined(QT_NO_DIALOG) || defined(QT_NO_FONTDATABASE) || defined(QT_NO_COMBOBOX)
948 # define QT_NO_FONTDIALOG
951 #if defined(QT_NO_DIALOG) || defined(QT_NO_LISTVIEW) || defined(QT_NO_PRINTER) || defined(QT_NO_COMBOBOX) || defined(QT_NO_DIR) || defined(QT_NO_LAYOUT) || defined(QT_NO_LABEL)
955 # define QT_NO_PRINTDIALOG
958 #if defined(QT_NO_SEMIMODAL)
962 # define QT_NO_PROGRESSDIALOG
964 #if defined(QT_NO_DIALOG) || defined(QT_NO_COMBOBOX)
968 # define QT_NO_INPUTDIALOG
971 #if defined(QT_NO_STRINGLIST)
973 Session management support
975 # define QT_NO_SESSIONMANAGER
978 #endif // QFEATURES_H