Source: kglobalsettings.h
|
|
|
|
/* This file is part of the KDE libraries
Copyright (C) 2000 David Faure
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef _KGLOBALSETTINGS_H
#define _KGLOBALSETTINGS_H
#include
#include
#include
#define KDE_DEFAULT_SINGLECLICK true
#define KDE_DEFAULT_INSERTTEAROFFHANDLES 0
#define KDE_DEFAULT_AUTOSELECTDELAY -1
#define KDE_DEFAULT_CHANGECURSOR true
#define KDE_DEFAULT_LARGE_CURSOR false
#define KDE_DEFAULT_VISUAL_ACTIVATE true
#define KDE_DEFAULT_VISUAL_ACTIVATE_SPEED 50
#define KDE_DEFAULT_WHEEL_ZOOM false
/**
* Access the KDE global configuration.
*
* @author David Faure
* @version $Id: kglobalsettings_h.html 203394 2003-01-28 18:16:22Z ctennis $
*/
class KGlobalSettings
{
public:
/**
* Returns a threshold in pixels for drag & drop operations.
* As long as the mouse movement has not exceeded this number
* of pixels in either X or Y direction no drag operation may
* be started. This prevents spurious drags when the user intended
* to click on something but moved the mouse a bit while doing so.
*
* For this to work you must save the position of the mouse (oldPos)
* in the @ref QWidget::mousePressEvent().
* When the position of the mouse (newPos)
* in a @ref QWidget::mouseMoveEvent() exceeds this threshold
* you may start a drag
* which should originate from oldPos.
*
* Example code:
*
* void KColorCells::mousePressEvent( QMouseEvent *e )
* {
* mOldPos = e->pos();
* }
*
* void KColorCells::mouseMoveEvent( QMouseEvent *e )
* {
* if( !(e->state() && LeftButton)) return;
*
* int delay = KGlobalSettings::dndEventDelay();
* QPoint newPos = e->pos();
* if(newPos.x() > mOldPos.x()+delay || newPos.x() < mOldPos.x()-delay ||
* newPos.y() > mOldPos.y()+delay || newPos.y() < mOldPos.y()-delay)
* {
* // Drag color object
* int cell = posToCell(mOldPos); // Find color at mOldPos
* if ((cell != -1) && colors[cell].isValid())
* {
* KColorDrag *d = KColorDrag::makeDrag( colors[cell], this);
* d->dragCopy();
* }
* }
* }
*
* @return the threshold for drag & drop in pixels
*/
static int dndEventDelay();
/**
* Returns whether KDE runs in single (default) or double click
* mode.
* see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
* @return true if single click mode, or false if double click mode.
**/
static bool singleClick();
/**
* This enum describes the return type for insertTearOffHandle() wether to insert
* a handle or not. Applications who independently want to use handles in their popup menus
* should test for Application level before calling the appropriate function in KPopupMenu.
* @since 3,1
**/
enum TearOffHandle {
Disable = 0, ///< disable tear-off handles
ApplicationLevel, ///< enable on application level
Enable ///< enable tear-off handles
};
/**
* Returns whether tear-off handles are inserted in @ref KPopupMenus.
* @return whether tear-off handles are inserted in KPopupMenus.
* @since 3.1
**/
static TearOffHandle insertTearOffHandle();
/**
* Checks whether the cursor changes over icons.
* @return the KDE setting for "change cursor over icon"
*/
static bool changeCursorOverIcon();
/**
* Checks whether to show feedback when in item (specifically an
* icon) is activated.
* @return whether to show some feedback when an item is activated.
*/
static bool visualActivate();
/**
* Returns the speed of the visual activation feedback.
* @return the speed of the visual activation feedback, between
* 0 for minimum and 100 for maximum speed
*/
static unsigned int visualActivateSpeed();
/**
* Returns the KDE setting for the auto-select option.
*
* @return the auto-select delay or -1 if auto-select is disabled.
*/
static int autoSelectDelay();
/**
* Returns the KDE setting for the shortcut key to open
* context menus.
*
* @return the key that pops up context menus.
*/
static int contextMenuKey ();
/**
* Returns the KDE setting for context menus.
*
* @return whether context menus should be shown on button press
* or button release (click).
*/
static bool showContextMenusOnPress ();
/**
* This enum describes the completion mode used for by the @ref KCompletion class.
* See
* the styleguide.
**/
enum Completion {
/**
* No completion is used.
*/
CompletionNone=1,
/**
* Text is automatically filled in whenever possible.
*/
CompletionAuto,
/**
* Same as automatic except shortest match is used for completion.
*/
CompletionMan,
/**
* Complete text much in the same way as a typical *nix shell would.
*/
CompletionShell,
/**
* Lists all possible matches in a popup list-box to choose from.
*/
CompletionPopup,
/**
* Lists all possible matches in a popup list-box to choose from, and automatically
* fill the result whenever possible.
*/
CompletionPopupAuto
};
/**
* Returns the preferred completion mode setting.
*
* @return @ref Completion. Default is @p CompletionPopup.
*/
static Completion completionMode();
/**
* Describes the mouse settings.
*/
struct KMouseSettings
{
enum { RightHanded = 0, LeftHanded = 1 };
int handed; // left or right
};
/**
* This returns the current mouse settings.
* @return the current mouse settings
*/
static KMouseSettings & mouseSettings();
/**
* The path to the desktop directory of the current user.
* @return the user's desktop directory
*/
static QString desktopPath() { initStatic(); return *s_desktopPath; }
/**
* The path to the autostart directory of the current user.
* @return the path of the autostart directory
*/
static QString autostartPath() { initStatic(); return *s_autostartPath; }
/**
* The path to the trash directory of the current user.
* @return the path of the trash directory
*/
static QString trashPath() { initStatic(); return *s_trashPath; }
/**
* The path where documents are stored of the current user.
* @return the path of the document directory
*/
static QString documentPath() { initStatic(); return *s_documentPath; }
/**
* The default color to use when highlighting toolbar buttons.
* @return the toolbar highlight color
*/
static QColor toolBarHighlightColor();
/**
* The default color to use for inactive titles.
* @return the inactive title color
*/
static QColor inactiveTitleColor();
/**
* The default color to use for inactive texts.
* @return the inactive text color
*/
static QColor inactiveTextColor();
/**
* The default color to use for active titles.
* @return the active title color
*/
static QColor activeTitleColor();
/**
* The default color to use for active texts.
* @return the active text color
*/
static QColor activeTextColor();
/**
* Returns the contrast for borders.
* @return the contrast (between 0 for minimum and 10 for maximum
* contrast)
*/
static int contrast();
/**
* Returns the default base (background) color.
* @return the default base (background) color
* @see QColorGroup::base()
*/
static QColor baseColor();
/**
* Returns the default text color.
* @return the default text color
* @see QColorGroup::text()
*/
static QColor textColor();
/**
* Returns the default link color.
* @return the default link color
*/
static QColor linkColor();
/**
* Returns the default color for visited links.
* @return the default color for visited links
*/
static QColor visitedLinkColor();
/**
* Returns the default color for highlighted text.
* @return the default color for highlighted text
* @see QColorGroup::hightlightedText()
*/
static QColor highlightedTextColor();
/**
* Returns the default color for text highlights.
* @return the default color for text highlights
* @see QColorGroup::hightlight()
*/
static QColor highlightColor();
/**
* Returns the alternate background color used by @ref KListView with
* @ref KListViewItem. Any other list that uses alternating background
* colors should use this too, to obey to the user's preferences. Returns
* an invalid color if the user doesn't want alternating backgrounds.
* @return the alternate background color
* @see #calculateAlternateBackgroundColor
*/
static QColor alternateBackgroundColor();
/**
* Calculates a color based on @p base to be used as alternating
* color for e.g. listviews.
* @param base the base for the calculation
* @return the calculated color
* @see #alternateBackgroundColor
*/
static QColor calculateAlternateBackgroundColor(const QColor& base);
/**
* Returns the default general font.
* @return the default general font.
*/
static QFont generalFont();
/**
* Returns the default fixed font.
* @return the default fixed font.
*/
static QFont fixedFont();
/**
* Returns the default toolbar font.
* @return the default toolbar font.
*/
static QFont toolBarFont();
/**
* Returns the default menu font.
* @return the default menu font.
*/
static QFont menuFont();
/**
* Returns the default window title font.
* @return the default window title font.
*/
static QFont windowTitleFont();
/**
* Returns the default taskbar font.
* @return the default taskbar font.
*/
static QFont taskbarFont();
/**
* Returns a font of approx. 48 pt. capable of showing @p text.
* @param text the text to test
* @return the font that is capable to show the text with 48 pt
* @since 3.1
*/
static QFont largeFont(const QString &text = QString::null);
/**
* Returns if the user specified multihead. In case the display
* has multiple screens, the return value of this function specifies
* if the user wants KDE to run on all of them or just on the primary
* @return true if the user chose multi head
*/
static bool isMultiHead();
/**
* Typically, QScrollView derived classes can be scrolled fast by
* holding down the Ctrl-button during wheel-scrolling.
* But QTextEdit and derived classes perform zooming instead of fast
* scrolling.
*
* This value determines whether the user wants to zoom or scroll fast
* with Ctrl-wheelscroll.
* @return true if the user wishes to zoom with the mouse wheel,
* false for scrolling
* @since 3.1
*/
static bool wheelMouseZooms();
private:
/**
* reads in all paths from kdeglobals
*/
static void initStatic();
/**
* initialise kde2Blue
*/
static void initColors();
/**
* drop cached values for fonts (called by KApplication)
*/
static void rereadFontSettings();
/**
* drop cached values for paths (called by KApplication)
*/
static void rereadPathSettings();
/**
* drop cached values for mouse settings (called by KApplication)
*/
static void rereadMouseSettings();
static QString* s_desktopPath;
static QString* s_autostartPath;
static QString* s_trashPath;
static QString* s_documentPath;
static QFont *_generalFont;
static QFont *_fixedFont;
static QFont *_toolBarFont;
static QFont *_menuFont;
static QFont *_windowTitleFont;
static QFont *_taskbarFont;
static QFont *_largeFont;
static QColor * kde2Gray;
static QColor * kde2Blue;
static QColor * kde2AlternateColor;
static KMouseSettings *s_mouseSettings;
friend class KApplication;
};
#endif
Generated by: caleb on tcdevel on Tue Jan 28 12:54:04 2003, using kdoc $. |