00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef QSTYLEMANAGER_H
00010 #define QSTYLEMANAGER_H
00011
00012 #include "JavaQxQSwing.h"
00013 #include "QFontSet.h"
00014
00015
00016
00017
00018
00025 class JAVAQX_EXPORT QStyleManager : public QObject
00026 {
00027 Q_OBJECT
00028 private:
00029 QStyleManager();
00030 ~QStyleManager();
00031 public:
00032 const QString &systemStyleName() const;
00033 const QString &systemStyleDescription() const;
00034 QStringList &availableStyleNames();
00035 QStringList &availableThemeNames();
00036 public slots:
00037 jboolean setStyle(JNIEnv *env, jstring name);
00038 void setTheme(JNIEnv *env, jobject colorPalette, jobject fontSet);
00039 void setUseSystemTheme(JNIEnv *env, jboolean useSystemTheme);
00040 void fillPalette(JNIEnv *env, jobject customColorPalette, jstring name);
00041 void fillPalette(JNIEnv *env, jobject customColorPalette, jint argb);
00042 void fillFontSet(JNIEnv *env, jobject customFontSet, jstring name);
00043 public:
00044 static void initialize(JNIEnv *env, jclass systemColorPaletteClass,
00045 jclass systemFontSetClass);
00046 static void setCustomProperty(const QString &name, const QString &value);
00047 public:
00048 inline static QStyleManager *instance();
00049 private:
00050 QStyle *createStyle(const QString &styleName);
00051 QPalette *getPalette(const QString &paletteName);
00052 QFontSet *getFontSet(const QString &fontSetName);
00053 QFontSet *getFontSet(JNIEnv *env, jobject fontSet);
00054 void fillPalette(JNIEnv *env, jobject customColorPalette, QPalette *palette);
00055 bool fillColor(JNIEnv *env, jobject customColorPalette, jfieldID fid,
00056 QColor color);
00057 void loadPalette(JNIEnv *env, jobject colorPalette, QPalette *palette);
00058 void loadColor(JNIEnv *env, jobject customColorPalette, jmethodID metodID,
00059 QPalette *palette, QPalette::ColorGroup cg,
00060 QPalette::ColorRole cr);
00061 bool fillFont(JNIEnv *env, jobject customFontSet, jfieldID fid, QFont font);
00062 bool getFont(JNIEnv *env, QFont &result, jobject fontSet, jmethodID mid);
00063 bool initColorPaletteFIDs(JNIEnv *env, jclass cls);
00064 bool initColorPaletteMIDs(JNIEnv *env, jclass cls);
00065 bool initFontSetFIDs(JNIEnv *env, jclass cls);
00066 bool initFontSetMIDs(JNIEnv *env, jclass cls);
00067 private:
00068 QString m_systemStyleName;
00069 QString m_systemStyleDescription;
00070 QStringList m_availableStyleNames;
00071 QStringList m_availableThemeNames;
00072 QPalette m_systemPallete;
00073 QFontSet m_systemFontSet;
00074 QHash<QString, QPalette *> m_palettes;
00075 QHash<QString, QFontSet *> m_fontSets;
00076 bool m_useSystemTheme;
00077 #ifdef Q_OS_WIN32
00078 bool m_winThemeable;
00079 #endif // Q_OS_WIN32
00080 private:
00081 static QStyleManager *sm_instance;
00082 static jclass sm_systemColorPaletteClass;
00083 static jclass sm_systemFontSetClass;
00084 static jfieldID sm_systemColorPaletteNameFID;
00085 static jfieldID sm_systemFontSetNameFID;
00086 static jfieldID sm_activeBackgroundColorFID;
00087 static jfieldID sm_inactiveBackgroundColorFID;
00088 static jfieldID sm_disabledBackgroundColorFID;
00089 static jfieldID sm_activeForegroundColorFID;
00090 static jfieldID sm_inactiveForegroundColorFID;
00091 static jfieldID sm_disabledForegroundColorFID;
00092 static jfieldID sm_activeBaseColorFID;
00093 static jfieldID sm_inactiveBaseColorFID;
00094 static jfieldID sm_disabledBaseColorFID;
00095 static jfieldID sm_activeAlternateBaseColorFID;
00096 static jfieldID sm_inactiveAlternateBaseColorFID;
00097 static jfieldID sm_disabledAlternateBaseColorFID;
00098 static jfieldID sm_activeTextColorFID;
00099 static jfieldID sm_inactiveTextColorFID;
00100 static jfieldID sm_disabledTextColorFID;
00101 static jfieldID sm_activeButtonColorFID;
00102 static jfieldID sm_inactiveButtonColorFID;
00103 static jfieldID sm_disabledButtonColorFID;
00104 static jfieldID sm_activeButtonTextColorFID;
00105 static jfieldID sm_inactiveButtonTextColorFID;
00106 static jfieldID sm_disabledButtonTextColorFID;
00107 static jfieldID sm_activeBrightTextColorFID;
00108 static jfieldID sm_inactiveBrightTextColorFID;
00109 static jfieldID sm_disabledBrightTextColorFID;
00110 static jfieldID sm_activeLightColorFID;
00111 static jfieldID sm_inactiveLightColorFID;
00112 static jfieldID sm_disabledLightColorFID;
00113 static jfieldID sm_activeMidlightColorFID;
00114 static jfieldID sm_inactiveMidlightColorFID;
00115 static jfieldID sm_disabledMidlightColorFID;
00116 static jfieldID sm_activeDarkColorFID;
00117 static jfieldID sm_inactiveDarkColorFID;
00118 static jfieldID sm_disabledDarkColorFID;
00119 static jfieldID sm_activeMidColorFID;
00120 static jfieldID sm_inactiveMidColorFID;
00121 static jfieldID sm_disabledMidColorFID;
00122 static jfieldID sm_activeShadowColorFID;
00123 static jfieldID sm_inactiveShadowColorFID;
00124 static jfieldID sm_disabledShadowColorFID;
00125 static jfieldID sm_activeHighlightColorFID;
00126 static jfieldID sm_inactiveHighlightColorFID;
00127 static jfieldID sm_disabledHighlightColorFID;
00128 static jfieldID sm_activeHighlightedTextColorFID;
00129 static jfieldID sm_inactiveHighlightedTextColorFID;
00130 static jfieldID sm_disabledHighlightedTextColorFID;
00131 static jfieldID sm_activeLinkColorFID;
00132 static jfieldID sm_inactiveLinkColorFID;
00133 static jfieldID sm_disabledLinkColorFID;
00134 static jfieldID sm_activeLinkVisitedColorFID;
00135 static jfieldID sm_inactiveLinkVisitedColorFID;
00136 static jfieldID sm_disabledLinkVisitedColorFID;
00137 static jfieldID sm_defaultFontFID;
00138 static jfieldID sm_componentFontFID;
00139 static jfieldID sm_buttonFontFID;
00140 static jfieldID sm_menuFontFID;
00141 static jfieldID sm_menuBarFontFID;
00142 static jfieldID sm_textFontFID;
00143 static jfieldID sm_toolTipFontFID;
00144 static jmethodID sm_getActiveBackgroundColorMID;
00145 static jmethodID sm_getInactiveBackgroundColorMID;
00146 static jmethodID sm_getDisabledBackgroundColorMID;
00147 static jmethodID sm_getActiveForegroundColorMID;
00148 static jmethodID sm_getInactiveForegroundColorMID;
00149 static jmethodID sm_getDisabledForegroundColorMID;
00150 static jmethodID sm_getActiveBaseColorMID;
00151 static jmethodID sm_getInactiveBaseColorMID;
00152 static jmethodID sm_getDisabledBaseColorMID;
00153 static jmethodID sm_getActiveAlternateBaseColorMID;
00154 static jmethodID sm_getInactiveAlternateBaseColorMID;
00155 static jmethodID sm_getDisabledAlternateBaseColorMID;
00156 static jmethodID sm_getActiveTextColorMID;
00157 static jmethodID sm_getInactiveTextColorMID;
00158 static jmethodID sm_getDisabledTextColorMID;
00159 static jmethodID sm_getActiveButtonColorMID;
00160 static jmethodID sm_getInactiveButtonColorMID;
00161 static jmethodID sm_getDisabledButtonColorMID;
00162 static jmethodID sm_getActiveButtonTextColorMID;
00163 static jmethodID sm_getInactiveButtonTextColorMID;
00164 static jmethodID sm_getDisabledButtonTextColorMID;
00165 static jmethodID sm_getActiveBrightTextColorMID;
00166 static jmethodID sm_getInactiveBrightTextColorMID;
00167 static jmethodID sm_getDisabledBrightTextColorMID;
00168 static jmethodID sm_getActiveLightColorMID;
00169 static jmethodID sm_getInactiveLightColorMID;
00170 static jmethodID sm_getDisabledLightColorMID;
00171 static jmethodID sm_getActiveMidlightColorMID;
00172 static jmethodID sm_getInactiveMidlightColorMID;
00173 static jmethodID sm_getDisabledMidlightColorMID;
00174 static jmethodID sm_getActiveDarkColorMID;
00175 static jmethodID sm_getInactiveDarkColorMID;
00176 static jmethodID sm_getDisabledDarkColorMID;
00177 static jmethodID sm_getActiveMidColorMID;
00178 static jmethodID sm_getInactiveMidColorMID;
00179 static jmethodID sm_getDisabledMidColorMID;
00180 static jmethodID sm_getActiveShadowColorMID;
00181 static jmethodID sm_getInactiveShadowColorMID;
00182 static jmethodID sm_getDisabledShadowColorMID;
00183 static jmethodID sm_getActiveHighlightColorMID;
00184 static jmethodID sm_getInactiveHighlightColorMID;
00185 static jmethodID sm_getDisabledHighlightColorMID;
00186 static jmethodID sm_getActiveHighlightedTextColorMID;
00187 static jmethodID sm_getInactiveHighlightedTextColorMID;
00188 static jmethodID sm_getDisabledHighlightedTextColorMID;
00189 static jmethodID sm_getActiveLinkColorMID;
00190 static jmethodID sm_getInactiveLinkColorMID;
00191 static jmethodID sm_getDisabledLinkColorMID;
00192 static jmethodID sm_getActiveLinkVisitedColorMID;
00193 static jmethodID sm_getInactiveLinkVisitedColorMID;
00194 static jmethodID sm_getDisabledLinkVisitedColorMID;
00195 static jmethodID sm_getDefaultFontMID;
00196 static jmethodID sm_getComponentFontMID;
00197 static jmethodID sm_getFixedFontMID;
00198 static jmethodID sm_getButtonFontMID;
00199 static jmethodID sm_getMenuFontMID;
00200 static jmethodID sm_getMenuBarFontMID;
00201 static jmethodID sm_getTextFontMID;
00202 static jmethodID sm_getToolTipFontMID;
00203 };
00204
00205
00206
00207
00208
00214 inline QStyleManager *QStyleManager::instance()
00215 {
00216 return sm_instance;
00217 }
00218
00219
00220
00221
00222
00223 #define qStyleManager (QStyleManager::instance())
00224
00225 #endif // QSTYLEMANAGER_H
00226
00227
00228
00229
00230
00231
00232
00233