Hello community,
here is the log from the commit of package qtcurve-gtk2 for openSUSE:Factory
checked in at Tue Dec 8 12:06:35 CET 2009.
--------
--- KDE/qtcurve-gtk2/qtcurve-gtk2.changes 2009-09-02 15:47:33.000000000 +0200
+++ /mounts/work_src_done/STABLE/qtcurve-gtk2/qtcurve-gtk2.changes 2009-12-07 11:30:11.000000000 +0100
@@ -1,0 +2,47 @@
+Mon Dec 7 11:27:54 CET 2009 - vuntz@opensuse.org
+
+- Change qtcurve-kde Recommends to qtcurve-kde4 Suggests.
+- Adds a supplements to qtcurve-kde4 and gtk2.
+- Add a Requires on gtk2.
+
+-------------------------------------------------------------------
+Thu Nov 19 17:09:33 CET 2009 - robert.munteanu@gmail.com
+
+- Update to version 0.69.2:
+ + If a scrollbar slider is maxed-out, then shade it as disabled;
+ matches KDE.
+ + When detecting Ctrl-Alt-M for menubar hiding, check for
+ uppercase M as well as lower case. Also, ignore state of shift
+ and caps-lock keys.
+ + Set default contrast to 7.
+- Changes from version 0.69.1:
+ + Fix glow-style mouse over for combos with coloured buttons.
+ + Improve appearance of plastik style mouse-over on scrollbar
+ sliders.
++ Changes from version 0.69.0:
+ + Add option to control whether bottom tabs should have their
+ gradient shades inverted.
+ + Config files now stored under $XDG_CONFIG_HOME/qtcurve (e.g.
+ ~/.config/qtcurve)
+ + Fix some issue with 'flat' appearance.
+ + Add an experimental option to hide/unhide menubars using
+ Ctrl-Alt-M.
+ + Respect double arrow setting for non-editable combos on more
+ Gtk2 combo types. (Affects combos in pidgin.)
+ + Colour arrows on mouse over of non-editable combos on more Gtk2
+ combo types. (Affects combos in pidgin.)
+ + Fix disabled editable combos.
+ + It has been reported that under intel Xorg drivers > 2.8, that
+ QtCurve's arrows are not appearing. This seems to be due to the
+ fact that QtCurve is using cairo to draw non-antialised lines
+ in this case. To work-around this issue QtCurve has been
+ changed to use the older Gdk to draw arrows.
+- Changes from version 0.68.1:
+ + Fix reading of 'dark inverted gradient' setting.
+ + Allow toggle buttons to be max rounded.
+ + Fix combo-box arrow position when not etched/shadowed.
+ + Fix default value for 'double Gtk combo arrow' setting.
+ + Fix bnc#529607.
+- Dropped QtCurve-arraysize.patch: now upstream.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
QtCurve-Gtk2-0.68.0.tar.bz2
QtCurve-arraysize.patch
New:
----
QtCurve-Gtk2-0.69.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qtcurve-gtk2.spec ++++++
--- /var/tmp/diff_new_pack.OTaTmo/_old 2009-12-08 12:05:33.000000000 +0100
+++ /var/tmp/diff_new_pack.OTaTmo/_new 2009-12-08 12:05:33.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package qtcurve-gtk2 (Version 0.68.0)
+# spec file for package qtcurve-gtk2 (Version 0.69.2)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -18,21 +18,21 @@
Name: qtcurve-gtk2
-Version: 0.68.0
+Version: 0.69.2
Release: 1
-License: GPL v2 or later
+License: GPLv2+
Summary: QtCurve style for Gtk2
Url: http://www.kde-look.org/content/show.php?content=40492
Group: System/GUI/GNOME
Source0: QtCurve-Gtk2-%{version}.tar.bz2
-# PATCH-FIX-UPSTREAM QtCurve-arraysize.patch bnc#529607 dimstar@opensuse.org -- Adjust array size
-Patch0: QtCurve-arraysize.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: gtk2-devel
BuildRequires: kdelibs3
BuildRequires: kdelibs4-core
-Recommends: qtcurve-kde
+Requires: gtk2
+Suggests: qtcurve-kde4
+Supplements: packageand(qtcurve-kde4:gtk2)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -40,7 +40,6 @@
%prep
%setup -q -n QtCurve-Gtk2-%{version}
-%patch0 -p1
%build
mkdir build
@@ -59,10 +58,7 @@
%files
%defattr(-,root,root)
%doc ChangeLog COPYING README TODO
-%dir %{_libdir}/gtk-2.0
-%dir %{_libdir}/gtk-2.0/*
-%dir %{_libdir}/gtk-2.0/*/engines
%{_libdir}/gtk-2.0/*/engines/libqtcurve.*
-%{_datadir}/themes/QtCurve
+%{_datadir}/themes/QtCurve/
%changelog
++++++ QtCurve-Gtk2-0.68.0.tar.bz2 -> QtCurve-Gtk2-0.69.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/CMakeLists.txt new/QtCurve-Gtk2-0.69.2/CMakeLists.txt
--- old/QtCurve-Gtk2-0.68.0/CMakeLists.txt 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/CMakeLists.txt 2009-10-18 21:14:48.000000000 +0200
@@ -7,8 +7,8 @@
set(DEBIAN_PACKAGE_SECTION "gtk")
set(CPACK_SOURCE_GENERATOR "TBZ2")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
-set(CPACK_PACKAGE_VERSION_MINOR "68")
-set(CPACK_PACKAGE_VERSION_PATCH "0")
+set(CPACK_PACKAGE_VERSION_MINOR "69")
+set(CPACK_PACKAGE_VERSION_PATCH "2")
set(CPACK_PACKAGE_CONTACT "Craig Drummond ")
set(QTCURVE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
set(QTCURVE_VERSION_FULL "${QTCURVE_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")
@@ -144,6 +144,17 @@
"**************************************************************\n"
"**************************************************************\n")
endif(QTC_MODIFY_MOZILLA)
+
+ if(QTC_USE_CAIRO_FOR_ARROWS)
+ message("\n**************************************************************\n"
+ "Warning: Using ciaro to draw arrows - this has been reported to \n"
+ " fail with intel Xorg driver > 2.8\n"
+ "**************************************************************\n")
+ else(QTC_USE_CAIRO_FOR_ARROWS)
+ message("\n**************************************************************\n"
+ "Information: Using Gdk to draw arrows.\n"
+ "**************************************************************\n")
+ endif(QTC_USE_CAIRO_FOR_ARROWS)
else (GTK_INCLUDE_DIR)
message(FATAL_ERROR "Could not locate Gtk2 include files")
endif (GTK_INCLUDE_DIR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/ChangeLog new/QtCurve-Gtk2-0.69.2/ChangeLog
--- old/QtCurve-Gtk2-0.68.0/ChangeLog 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/ChangeLog 2009-10-18 21:14:48.000000000 +0200
@@ -1,3 +1,43 @@
+0.69.2
+------
+1. If a scrollbar slider is maxed-out, then shade it as disabled - matches KDE.
+2. When detecting Ctrl-Alt-M for menubar hiding, check for uppercase M
+ as well as lower case. Also, ignore state of shift and caps-lock keys.
+3. Set default contrast to 7
+
+0.69.1
+------
+1. Fix glow-style mouse over for combos with coloured buttons.
+2. Improve appearance of plastik style mouse-over on scrollbar sliders.
+
+0.69.0
+------
+1. Add option to control whether bottom tabs should have their gradient
+ shades inverted.
+2. Config files now stored under $XDG_CONFIG_HOME/qtcurve (e.g. ~/.config/qtcurve)
+3. Fix some issue with 'flat' appearance.
+4. Add an experimental option to hide/unhide menubars using Ctrl-Alt-M.
+5. Respect double arrow setting for non-editable combos on more Gtk2
+ combo types. (Affects combos in pidgin.)
+6. Colour arrows on mouse over of non-editable combos on more Gtk2
+ combo types. (Affects combos in pidgin.)
+7. Fix disabled editable combos.
+8. It has been reported that under intel Xorg drivers > 2.8, that QtCurve's
+ arrows are not appearing. This seems to be due to the fact that QtCurve is
+ using cairo to draw non-antialised lines in this case. To work-around this
+ issue QtCurve has been changed to use the older Gdk to draw arrows. To
+ revert back to cairo, use the following cmake option:
+
+ -DQTC_USE_CAIRO_FOR_ARROWS=true
+
+0.68.1
+------
+1. Fix reading of 'dark inverted gradient' setting.
+2. Allow toggle buttons to be max rounded.
+3. Fix combo-box arrow position when not etched/shadowed.
+4. Fix default value for 'double Gtk combo arrow' setting.
+5. Fix https://bugzilla.novell.com/show_bug.cgi?id=529607
+
0.68.0
------
1. New options:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/README new/QtCurve-Gtk2-0.69.2/README
--- old/QtCurve-Gtk2-0.68.0/README 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/README 2009-10-18 21:14:48.000000000 +0200
@@ -39,6 +39,11 @@
If the KDE_SESSION_VERSION is not set, then assume we are running
under KDE3. If this cmake option is not set, then KDE4 is assumed.
+ -DQTC_USE_CAIRO_FOR_ARROWS=true
+ Use Cairo, and not Gdk, to draw the non-antialised arrows. It has been reported
+ that for intel Xorg drivers >2.8, that drawing these non-antialised arrows with
+ cairo results in nothing being drawn! As of 0.69.0, the default is to use Gdk
+
Themes
------
As of v0.55, you can create QtCurve based themes. These will appear with KDE's style
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/common/common.h new/QtCurve-Gtk2-0.69.2/common/common.h
--- old/QtCurve-Gtk2-0.68.0/common/common.h 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/common/common.h 2009-10-18 21:14:48.000000000 +0200
@@ -68,6 +68,10 @@
#endif
#include <map>
#include <set>
+#if !defined QTC_CONFIG_DIALOG && defined QT_VERSION && (QT_VERSION >= 0x040000)
+#include
+#include
+#endif
#else
#include
#endif
@@ -144,6 +148,7 @@
} ;
#define QTC_SIMPLE_SHADING (!shading)
+#define QTC_DEFAULT_CONTRAST 7
#define QTC_THIN_SBAR_MOD ((opts.sliderWidthDEFAULT_SLIDER_WIDTH ? (opts.sliderWidth-9)/2 : 4)+(EFFECT_NONE==opts.buttonEffect ? 1 : 0))
#define QTC_SLIDER_SIZE (opts.sliderWidth= 0x040000))
@@ -421,26 +429,25 @@
WIDGET_SB_BGND,
WIDGET_TROUGH,
WIDGET_CHECKBOX,
- WIDGET_TOGGLE_BUTTON,
WIDGET_COMBO,
WIDGET_COMBO_BUTTON,
WIDGET_MENU_ITEM,
WIDGET_PROGRESSBAR,
WIDGET_PBAR_TROUGH,
#ifndef __cplusplus
+ WIDGET_TOGGLE_BUTTON,
WIDGET_SPIN_UP,
WIDGET_SPIN_DOWN,
WIDGET_UNCOLOURED_MO_BUTTON,
-#endif
- WIDGET_SPIN,
- WIDGET_ENTRY,
- WIDGET_SCROLLVIEW,
-#ifdef __cplusplus
+#else
WIDGET_CHECKBUTTON, // Qt4 only
WIDGET_MDI_WINDOW, // Qt4 only
WIDGET_MDI_WINDOW_TITLE, // Qt4 only
WIDGET_MDI_WINDOW_BUTTON, // Qt4 only
#endif
+ WIDGET_SPIN,
+ WIDGET_ENTRY,
+ WIDGET_SCROLLVIEW,
#if defined QTC_CONFIG_DIALOG || (defined QT_VERSION && (QT_VERSION >= 0x040000)) || !defined __cplusplus
WIDGET_SELECTION,
// WIDGET_RUBBER_BAND,
@@ -495,12 +502,14 @@
APPEARANCE_LV_BEVELLED, /* To be used only with getGradient */
APPEARANCE_AGUA_MOD,
APPEARANCE_LV_AGUA,
- QTC_NUM_STD_APP = APPEARANCE_LV_AGUA-QTC_NUM_CUSTOM_GRAD
+ QTC_NUM_STD_APP = (APPEARANCE_LV_AGUA-QTC_NUM_CUSTOM_GRAD)+1
} EAppearance;
#define IS_SLIDER(W) (WIDGET_SLIDER==(W) || WIDGET_SB_SLIDER==(W))
#define IS_TROUGH(W) (WIDGET_SLIDER_TROUGH==(W) || WIDGET_PBAR_TROUGH==(W) || WIDGET_TROUGH==(W) || WIDGET_FILLED_SLIDER_TROUGH==(W))
+#ifndef __cplusplus
#define IS_TOGGLE_BUTTON(W) (WIDGET_TOGGLE_BUTTON==(W) || WIDGET_CHECKBOX==(W))
+#endif
typedef enum
{
@@ -846,7 +855,9 @@
stdBtnSizes,
#endif
forceAlternateLvCols,
- squareLvSelection;
+ squareLvSelection,
+ invertBotTab,
+ menubarHiding;
ELvLines lvLines;
EGradType bgndGrad,
menuBgndGrad;
@@ -911,6 +922,9 @@
customSortedLvColor;
#if defined __cplusplus
EAlign titlebarAlignment;
+#if !defined QTC_CONFIG_DIALOG && defined QT_VERSION && (QT_VERSION >= 0x040000)
+ QSet<QString> menubarApps;
+#endif
#endif
EShading shading;
#ifdef __cplusplus
@@ -1401,26 +1415,25 @@
if(!init)
{
- setupGradient(&stdGradients[APPEARANCE_RAISED-APPEARANCE_RAISED], GB_3D_FULL,2,0.0,1.0,1.0,1.0);
- setupGradient(&stdGradients[APPEARANCE_DULL_GLASS-APPEARANCE_RAISED], GB_LIGHT,4,0.0,1.05,0.499,0.984,0.5,0.928,1.0,1.0);
- setupGradient(&stdGradients[APPEARANCE_SHINY_GLASS-APPEARANCE_RAISED], GB_LIGHT,4,0.0,1.2,0.499,0.984,0.5,0.9,1.0,1.06);
- setupGradient(&stdGradients[APPEARANCE_AGUA-APPEARANCE_RAISED], GB_NONE, 2,0.0,0.6,1.0,1.1);
- setupGradient(&stdGradients[APPEARANCE_SOFT_GRADIENT-APPEARANCE_RAISED], GB_3D,2,0.0,1.04,1.0,0.98);
- setupGradient(&stdGradients[APPEARANCE_GRADIENT-APPEARANCE_RAISED], GB_3D,2,0.0,1.1,1.0,0.94);
- setupGradient(&stdGradients[APPEARANCE_HARSH_GRADIENT-APPEARANCE_RAISED], GB_3D,2,0.0,1.3,1.0,0.925);
- setupGradient(&stdGradients[APPEARANCE_INVERTED-APPEARANCE_RAISED], GB_3D,2,0.0,0.93,1.0,1.04);
- setupGradient(&stdGradients[APPEARANCE_DARK_INVERTED-APPEARANCE_RAISED], GB_NONE,3,0.0,0.8,0.7,0.95,1.0,1.0);
- setupGradient(&stdGradients[APPEARANCE_SPLIT_GRADIENT-APPEARANCE_RAISED], GB_3D,4,0.0,1.06,0.499,1.004,0.5,0.986,1.0,0.92);
- setupGradient(&stdGradients[APPEARANCE_BEVELLED-APPEARANCE_RAISED], GB_3D,4,0.0,1.05,0.1,1.02,0.9,0.985,1.0,0.94);
- setupGradient(&stdGradients[APPEARANCE_LV_BEVELLED-APPEARANCE_RAISED], GB_3D,3,0.0,1.00,0.85,1.0,1.0,0.90);
- setupGradient(&stdGradients[APPEARANCE_AGUA_MOD-APPEARANCE_RAISED], GB_NONE,3,0.0,1.5,0.49,0.85,1.0,1.3);
- setupGradient(&stdGradients[APPEARANCE_LV_AGUA-APPEARANCE_RAISED], GB_NONE,4,0.0,0.98,0.35,0.95,0.4,0.93,1.0,1.15);
+ setupGradient(&stdGradients[APPEARANCE_FLAT-APPEARANCE_FLAT], GB_3D,2,0.0,1.0,1.0,1.0);
+ setupGradient(&stdGradients[APPEARANCE_RAISED-APPEARANCE_FLAT], GB_3D_FULL,2,0.0,1.0,1.0,1.0);
+ setupGradient(&stdGradients[APPEARANCE_DULL_GLASS-APPEARANCE_FLAT], GB_LIGHT,4,0.0,1.05,0.499,0.984,0.5,0.928,1.0,1.0);
+ setupGradient(&stdGradients[APPEARANCE_SHINY_GLASS-APPEARANCE_FLAT], GB_LIGHT,4,0.0,1.2,0.499,0.984,0.5,0.9,1.0,1.06);
+ setupGradient(&stdGradients[APPEARANCE_AGUA-APPEARANCE_FLAT], GB_NONE, 2,0.0,0.6,1.0,1.1);
+ setupGradient(&stdGradients[APPEARANCE_SOFT_GRADIENT-APPEARANCE_FLAT], GB_3D,2,0.0,1.04,1.0,0.98);
+ setupGradient(&stdGradients[APPEARANCE_GRADIENT-APPEARANCE_FLAT], GB_3D,2,0.0,1.1,1.0,0.94);
+ setupGradient(&stdGradients[APPEARANCE_HARSH_GRADIENT-APPEARANCE_FLAT], GB_3D,2,0.0,1.3,1.0,0.925);
+ setupGradient(&stdGradients[APPEARANCE_INVERTED-APPEARANCE_FLAT], GB_3D,2,0.0,0.93,1.0,1.04);
+ setupGradient(&stdGradients[APPEARANCE_DARK_INVERTED-APPEARANCE_FLAT], GB_NONE,3,0.0,0.8,0.7,0.95,1.0,1.0);
+ setupGradient(&stdGradients[APPEARANCE_SPLIT_GRADIENT-APPEARANCE_FLAT], GB_3D,4,0.0,1.06,0.499,1.004,0.5,0.986,1.0,0.92);
+ setupGradient(&stdGradients[APPEARANCE_BEVELLED-APPEARANCE_FLAT], GB_3D,4,0.0,1.05,0.1,1.02,0.9,0.985,1.0,0.94);
+ setupGradient(&stdGradients[APPEARANCE_LV_BEVELLED-APPEARANCE_FLAT], GB_3D,3,0.0,1.00,0.85,1.0,1.0,0.90);
+ setupGradient(&stdGradients[APPEARANCE_AGUA_MOD-APPEARANCE_FLAT], GB_NONE,3,0.0,1.5,0.49,0.85,1.0,1.3);
+ setupGradient(&stdGradients[APPEARANCE_LV_AGUA-APPEARANCE_FLAT], GB_NONE,4,0.0,0.98,0.35,0.95,0.4,0.93,1.0,1.15);
init=true;
}
- if(APPEARANCE_FLAT==app)
- app=APPEARANCE_RAISED;
- return &stdGradients[app-APPEARANCE_RAISED];
+ return &stdGradients[app-APPEARANCE_FLAT];
}
return 0L; /* Will never happen! */
@@ -1470,14 +1483,15 @@
RADIUS_ETCH
} ERadius;
+#ifdef __cplusplus
#define QTC_IS_MAX_ROUND_WIDGET(A) \
(WIDGET_STD_BUTTON==A || WIDGET_DEF_BUTTON==A /*|| WIDGET_MENU_BUTTON==A*/)
-
-#ifdef __cplusplus
#define QTC_IS_EXTRA_ROUND_WIDGET(A) \
(A!=WIDGET_MENU_ITEM && A!=WIDGET_TAB_FRAME && A!=WIDGET_PBAR_TROUGH && A!=WIDGET_PROGRESSBAR && \
A!=WIDGET_MDI_WINDOW && A!=WIDGET_MDI_WINDOW_TITLE)
#else
+#define QTC_IS_MAX_ROUND_WIDGET(A) \
+ (WIDGET_STD_BUTTON==A || WIDGET_DEF_BUTTON==A || WIDGET_TOGGLE_BUTTON==A /*|| WIDGET_MENU_BUTTON==A*/)
#define QTC_IS_EXTRA_ROUND_WIDGET(A) \
(A!=WIDGET_MENU_ITEM && A!=WIDGET_TAB_FRAME && A!=WIDGET_PBAR_TROUGH && A!=WIDGET_PROGRESSBAR)
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/common/config_file.c new/QtCurve-Gtk2-0.69.2/common/config_file.c
--- old/QtCurve-Gtk2-0.68.0/common/config_file.c 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/common/config_file.c 2009-10-18 21:14:48.000000000 +0200
@@ -33,7 +33,8 @@
#define QTC_MAX_FILENAME_LEN 1024
#define QTC_MAX_INPUT_LINE_LEN 256
-#define QTC_FILE "qtcurvestylerc"
+#define QTC_FILE "stylerc"
+#define QTC_OLD_FILE "qtcurvestylerc"
#define QTC_VERSION_KEY "version"
#ifdef CONFIG_READ
@@ -152,26 +153,28 @@
return APPEARANCE_FLAT;
if(0==memcmp(str, "raised", 6))
return APPEARANCE_RAISED;
- if(0==memcmp(str, "gradient", 8) || 0==memcmp(str, "lightgradient", 13))
- return APPEARANCE_GRADIENT;
- if(0==memcmp(str, "soft", 4))
- return APPEARANCE_SOFT_GRADIENT;
- if(0==memcmp(str, "harsh", 5))
- return APPEARANCE_HARSH_GRADIENT;
- if(0==memcmp(str, "splitgradient", 13))
- return APPEARANCE_SPLIT_GRADIENT;
- if(0==memcmp(str, "glass", 5) || 0==memcmp(str, "shinyglass", 10))
- return APPEARANCE_SHINY_GLASS;
if(0==memcmp(str, "dullglass", 9))
return APPEARANCE_DULL_GLASS;
+ if(0==memcmp(str, "glass", 5) || 0==memcmp(str, "shinyglass", 10))
+ return APPEARANCE_SHINY_GLASS;
if(0==memcmp(str, "agua", 4))
#if defined __cplusplus && !defined QTC_CONFIG_DIALOG && defined QT_VERSION && QT_VERSION < 0x040000
return APPEARANCE_AGUA_MOD;
#else
return APPEARANCE_AGUA;
#endif
+ if(0==memcmp(str, "soft", 4))
+ return APPEARANCE_SOFT_GRADIENT;
+ if(0==memcmp(str, "gradient", 8) || 0==memcmp(str, "lightgradient", 13))
+ return APPEARANCE_GRADIENT;
+ if(0==memcmp(str, "harsh", 5))
+ return APPEARANCE_HARSH_GRADIENT;
if(0==memcmp(str, "inverted", 8))
return APPEARANCE_INVERTED;
+ if(0==memcmp(str, "darkinverted", 12))
+ return APPEARANCE_DARK_INVERTED;
+ if(0==memcmp(str, "splitgradient", 13))
+ return APPEARANCE_SPLIT_GRADIENT;
if(0==memcmp(str, "bevelled", 8))
return APPEARANCE_BEVELLED;
if(allowFade && 0==memcmp(str, "fade", 4))
@@ -447,10 +450,6 @@
#endif
-#ifdef CONFIG_WRITE
-#include
-#endif
-
static const char * getHome()
{
static const char *home=NULL;
@@ -476,11 +475,65 @@
return home;
}
-static const char *xdgConfigFolder()
+#ifdef __cplusplus
+
+#ifdef QTC_QT_ONLY
+// Take from KStandardDirs::makeDir
+bool makeDir(const QString& dir, int mode)
+{
+ // we want an absolute path
+ if (QDir::isRelativePath(dir))
+ return false;
+
+#ifdef Q_WS_WIN
+ return QDir().mkpath(dir);
+#else
+ QString target = dir;
+ uint len = target.length();
+
+ // append trailing slash if missing
+ if (dir.at(len - 1) != '/')
+ target += '/';
+
+ QString base;
+ uint i = 1;
+
+ while( i < len )
+ {
+ struct stat st;
+ int pos = target.indexOf('/', i);
+ base += target.mid(i - 1, pos - i + 1);
+ QByteArray baseEncoded = QFile::encodeName(base);
+ // bail out if we encountered a problem
+ if (stat(baseEncoded, &st) != 0)
+ {
+ // Directory does not exist....
+ // Or maybe a dangling symlink ?
+ if (lstat(baseEncoded, &st) == 0)
+ (void)unlink(baseEncoded); // try removing
+
+ if (mkdir(baseEncoded, static_cast(mode)) != 0) {
+ baseEncoded.prepend( "trying to create local folder " );
+ perror(baseEncoded.constData());
+ return false; // Couldn't create it :-(
+ }
+ }
+ i = pos + 1;
+ }
+ return true;
+#endif
+}
+
+#else
+#include
+#endif
+#endif
+
+static const char *qtcConfDir()
{
- static char xdgDir[QTC_MAX_FILENAME_LEN]={'\0'};
+ static char *cfgDir=NULL;
- if(!xdgDir[0])
+ if(!cfgDir)
{
static const char *home=NULL;
@@ -518,30 +571,96 @@
if(!home)
home=getHome();
- sprintf(xdgDir, "%s/.config", home);
+ cfgDir=(char *)malloc(strlen(home)+18);
+ sprintf(cfgDir, "%s/.config/qtcurve/", home);
}
else
- strcpy(xdgDir, env);
+ {
+ cfgDir=(char *)malloc(strlen(env)+10);
+ sprintf(cfgDir, "%s/qtcurve/", env);
+ }
-#if defined CONFIG_WRITE || !defined __cplusplus
+//#if defined CONFIG_WRITE || !defined __cplusplus
{
struct stat info;
- if(0!=lstat(xdgDir, &info))
+ if(0!=lstat(cfgDir, &info))
{
#ifdef __cplusplus
- KStandardDirs::makeDir(xdgDir, 0755);
+#ifdef QTC_QT_ONLY
+ makeDir(cfgDir, 0755);
+#else
+ KStandardDirs::makeDir(cfgDir, 0755);
+#endif
#else
- g_mkdir_with_parents(xdgDir, 0755);
+ g_mkdir_with_parents(cfgDir, 0755);
#endif
}
}
-#endif
+//#endif
+ }
+
+ return cfgDir;
+}
+
+#if !defined QT_VERSION || QT_VERSION >= 0x040000
+
+#define QTC_MENU_FILE_PREFIX "menubar-"
+
+#ifdef __cplusplus
+static bool qtcMenuBarHidden(const QString &app)
+{
+ return QFile::exists(QFile::decodeName(qtcConfDir())+QTC_MENU_FILE_PREFIX+app);
+}
+
+static void qtcSetMenuBarHidden(const QString &app, bool hidden)
+{
+ if(!hidden)
+ QFile::remove(QFile::decodeName(qtcConfDir())+QTC_MENU_FILE_PREFIX+app);
+ else
+ QFile(QFile::decodeName(qtcConfDir())+QTC_MENU_FILE_PREFIX+app).open(QIODevice::WriteOnly);
+}
+#else
+static bool qtcFileExists(const char *name)
+{
+ struct stat info;
+
+ return 0==lstat(name, &info) && S_ISREG(info.st_mode);
+}
+
+static char * qtcGetMenuBarFileName(const char *app)
+{
+ char *filename=NULL;
+
+ if(!filename)
+ {
+ filename=(char *)malloc(strlen(qtcConfDir())+strlen(QTC_MENU_FILE_PREFIX)+strlen(app)+1);
+ sprintf(filename, "%s"QTC_MENU_FILE_PREFIX"%s", qtcConfDir(), app);
}
- return xdgDir;
+ return filename;
}
+static bool qtcMenuBarHidden(const char *app)
+{
+ return qtcFileExists(qtcGetMenuBarFileName(app));
+}
+
+static void qtcSetMenuBarHidden(const char *app, bool hidden)
+{
+ if(!hidden)
+ unlink(qtcGetMenuBarFileName(app));
+ else
+ {
+ FILE *f=fopen(qtcGetMenuBarFileName(app), "w");
+
+ if(f)
+ fclose(f);
+ }
+}
+#endif
+#endif
+
#ifdef CONFIG_READ
#ifdef __cplusplus
@@ -897,27 +1016,33 @@
#ifdef __cplusplus
if(file.isEmpty())
{
- const char *xdg=xdgConfigFolder();
+ const char *cfgDir=qtcConfDir();
- if(xdg)
+ if(cfgDir)
{
- QString filename(xdg);
+ QString filename(QFile::decodeName(cfgDir)+QTC_FILE);
- filename+="/"QTC_FILE;
+ if(!QFile::exists(filename))
+ filename=QFile::decodeName(cfgDir)+"../"QTC_OLD_FILE;
return readConfig(filename, opts, defOpts);
}
}
#else
if(!file)
{
- const char *xdg=xdgConfigFolder();
+ const char *cfgDir=qtcConfDir();
- if(xdg)
+ if(cfgDir)
{
- char filename[QTC_MAX_FILENAME_LEN];
+ char *filename=(char *)malloc(strlen(cfgDir)+strlen(QTC_OLD_FILE)+4);
+ bool rv=false;
- sprintf(filename, "%s/"QTC_FILE, xdg);
- return readConfig(filename, opts, defOpts);
+ sprintf(filename, "%s"QTC_FILE, cfgDir);
+ if(!qtcFileExists(filename))
+ sprintf(filename, "%s../"QTC_OLD_FILE, cfgDir);
+ rv=readConfig(filename, opts, defOpts);
+ free(filename);
+ return rv;
}
}
#endif
@@ -948,6 +1073,15 @@
if(opts!=def)
opts->customGradient=def->customGradient;
+
+#if !defined QTC_CONFIG_DIALOG && defined QT_VERSION && (QT_VERSION >= 0x040000)
+ if(opts!=def)
+ {
+ opts->menubarApps=QSet<QString>::fromList(readStringEntry(cfg, "menubarApps").split(','));
+ opts->menubarApps << "kcalc" << "amarok" << "vlc" << "smplayer";
+ }
+#endif
+
#else
Options newOpts;
Options *def=&newOpts;
@@ -1152,6 +1286,8 @@
QTC_CFG_READ_BOOL(menuIcons)
QTC_CFG_READ_BOOL(forceAlternateLvCols)
QTC_CFG_READ_BOOL(squareLvSelection)
+ QTC_CFG_READ_BOOL(invertBotTab)
+ QTC_CFG_READ_BOOL(menubarHiding)
#if defined QTC_CONFIG_DIALOG || (defined QT_VERSION && (QT_VERSION >= 0x040000))
QTC_CFG_READ_BOOL(stdBtnSizes)
QTC_CFG_READ_BOOL(titlebarBorder)
@@ -1764,6 +1900,8 @@
opts->menuIcons=true;
opts->forceAlternateLvCols=false;
opts->squareLvSelection=false;
+ opts->invertBotTab=true;
+ opts->menubarHiding=false;
#if defined QTC_CONFIG_DIALOG || (defined QT_VERSION && (QT_VERSION >= 0x040000))
opts->stdBtnSizes=false;
opts->titlebarBorder=true;
@@ -1775,10 +1913,10 @@
opts->shading=SHADING_HSL;
opts->gtkScrollViews=true;
opts->comboBtn=SHADE_NONE;
+ opts->doubleGtkComboArrow=true;
#ifdef __cplusplus
opts->stdSidebarButtons=false;
opts->gtkComboMenus=false;
- opts->doubleGtkComboArrow=true;
opts->colorTitlebarOnly=false;
opts->customMenubarsColor.setRgb(0, 0, 0);
opts->customSlidersColor.setRgb(0, 0, 0);
@@ -1912,26 +2050,28 @@
return "flat";
case APPEARANCE_RAISED:
return "raised";
+ case APPEARANCE_DULL_GLASS:
+ return "dullglass";
+ case APPEARANCE_SHINY_GLASS:
+ return "shinyglass";
+ case APPEARANCE_AGUA:
+ return "agua";
case APPEARANCE_SOFT_GRADIENT:
return "soft";
case APPEARANCE_GRADIENT:
return "gradient";
case APPEARANCE_HARSH_GRADIENT:
return "harsh";
+ case APPEARANCE_INVERTED:
+ return "inverted";
+ case APPEARANCE_DARK_INVERTED:
+ return "darkinverted";
case APPEARANCE_SPLIT_GRADIENT:
return "splitgradient";
- case APPEARANCE_DULL_GLASS:
- return "dullglass";
case APPEARANCE_BEVELLED:
return "bevelled";
- case APPEARANCE_INVERTED:
- return "inverted";
- case APPEARANCE_SHINY_GLASS:
- return "shinyglass";
case APPEARANCE_FADE:
return "fade";
- case APPEARANCE_AGUA:
- return "agua";
default:
{
QString app;
@@ -2221,18 +2361,14 @@
{
if(!cfg)
{
- const char *xdg=xdgConfigFolder();
+ const char *cfgDir=qtcConfDir();
- if(xdg)
+ if(cfgDir)
{
- char filename[QTC_MAX_FILENAME_LEN];
-
- sprintf(filename, "%s/"QTC_FILE, xdg);
-
#if QT_VERSION >= 0x040000
- KConfig defCfg(filename, KConfig::SimpleConfig);
+ KConfig defCfg(QFile::decodeName(cfgDir)+QTC_FILE, KConfig::SimpleConfig);
#else
- KConfig defCfg(filename, false, false);
+ KConfig defCfg(QFile::decodeName(cfgDir)+QTC_FILE, false, false);
#endif
return writeConfig(&defCfg, opts, def, exportingStyle);
@@ -2337,6 +2473,8 @@
CFG_WRITE_ENTRY(menuIcons)
CFG_WRITE_ENTRY(forceAlternateLvCols)
CFG_WRITE_ENTRY(squareLvSelection)
+ CFG_WRITE_ENTRY(invertBotTab)
+ CFG_WRITE_ENTRY(menubarHiding)
#if defined QTC_CONFIG_DIALOG || (defined QT_VERSION && (QT_VERSION >= 0x040000))
CFG_WRITE_ENTRY(stdBtnSizes)
CFG_WRITE_ENTRY(titlebarBorder)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/config.h.cmake new/QtCurve-Gtk2-0.69.2/config.h.cmake
--- old/QtCurve-Gtk2-0.68.0/config.h.cmake 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/config.h.cmake 2009-10-18 21:14:48.000000000 +0200
@@ -14,5 +14,6 @@
#cmakedefine QTC_REORDER_GTK_DIALOG_BUTTONS
#cmakedefine QTC_OLD_MOZILLA
#cmakedefine QTC_DEFAULT_TO_KDE3
+#cmakedefine QTC_USE_CAIRO_FOR_ARROWS
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/style/gtkrc new/QtCurve-Gtk2-0.69.2/style/gtkrc
--- old/QtCurve-Gtk2-0.68.0/style/gtkrc 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/style/gtkrc 2009-10-18 21:14:48.000000000 +0200
@@ -254,3 +254,13 @@
widget_class "*.GtkSeparatorMenuItem.*" style "qtcurve-separator"
widget_class "*.GeditNotebook.GtkHBox.GtkButton" style "qtcurve-tabbutton"
widget_class "*MenuBar*MenuItem" style "qtcurve-menubaritem"
+
+# Seems to fix issues with pidgin where some buttons have icons, and others not.
+# Messes other widgets up :-(
+#style "qtcurve-box" = "qtcurve-default"
+#{
+# xthickness = 2
+# ythickness = 2
+#}
+#
+#widget_class "*.*Box.*" style "qtcurve-box"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/style/qt_settings.c new/QtCurve-Gtk2-0.69.2/style/qt_settings.c
--- old/QtCurve-Gtk2-0.68.0/style/qt_settings.c 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/style/qt_settings.c 2009-10-18 21:14:48.000000000 +0200
@@ -167,7 +167,8 @@
inactiveSelectCol;*/
char *fonts[FONT_NUM_TOTAL],
*icons,
- *styleName;
+ *styleName,
+ *appName;
GtkToolbarStyle toolbarStyle;
struct QtIcons iconSizes;
gboolean buttonIcons,
@@ -1015,7 +1016,7 @@
{
opts.contrast=readInt(line, 9);
if(opts.contrast>10 || opts.contrast<0)
- opts.contrast=7;
+ opts.contrast=QTC_DEFAULT_CONTRAST;
found|=RD_CONTRAST;
}
else if(qtSettings.qt4 && SECT_GENERAL==section && rd&RD_STYLE && !(found&RD_STYLE) &&
@@ -1896,10 +1897,10 @@
#endif
-static void getGtk2CfgFile(char **tmpStr, const char *xdg, const char *f)
+static void getGtk2CfgFile(char **tmpStr, const char *f)
{
- *tmpStr=(char *)realloc(*tmpStr, strlen(xdg)+1+strlen(f)+1);
- sprintf(*tmpStr, "%s/%s", xdg, f);
+ *tmpStr=(char *)realloc(*tmpStr, strlen(qtcConfDir())+strlen(f)+1);
+ sprintf(*tmpStr, "%s%s", qtcConfDir(), f);
}
static gboolean checkFileVersion(const char *fname, const char *versionStr, int versionStrLen)
@@ -1961,12 +1962,10 @@
if(abs(now-lastRead)>1)
{
- char *app=NULL,
- *path=NULL,
+ char *path=NULL,
*tmpStr=NULL,
*rcFile=NULL;
GtkSettings *settings=NULL;
- const char *xdg=xdgConfigFolder();
qtSettings.icons=NULL;
memset(qtSettings.fonts, 0, sizeof(char *)*FONT_NUM_TOTAL);
@@ -1981,6 +1980,8 @@
qtSettings.colors[PAL_ACTIVE][COLOR_TOOLTIP]=setGdkColor(0xFF, 0xFF, 192);
qtSettings.styleName=NULL;
qtSettings.inactiveChangeSelectionColor=FALSE;
+ qtSettings.appName=NULL;
+ opts.contrast=QTC_DEFAULT_CONTRAST;
lastRead=now;
@@ -2054,14 +2055,14 @@
*/
/* Check if we're firefox... */
- if((app=getAppName()))
+ if((qtSettings.appName=getAppName()))
{
- gboolean firefox=isMozApp(app, "firefox") || isMozApp(app, "iceweasel") ||
- isMozApp(app, "swiftfox") || isMozApp(app, "xulrunner") ||
- isMozApp(app, "abrowser"),
- thunderbird=!firefox && isMozApp(app, "thunderbird"),
- mozThunderbird=!thunderbird && !firefox && isMozApp(app, "mozilla-thunderbird"),
- seamonkey=!thunderbird && !firefox && !mozThunderbird && isMozApp(app, "seamonkey");
+ gboolean firefox=isMozApp(qtSettings.appName, "firefox") || isMozApp(qtSettings.appName, "iceweasel") ||
+ isMozApp(qtSettings.appName, "swiftfox") || isMozApp(qtSettings.appName, "xulrunner") ||
+ isMozApp(qtSettings.appName, "abrowser"),
+ thunderbird=!firefox && isMozApp(qtSettings.appName, "thunderbird"),
+ mozThunderbird=!thunderbird && !firefox && isMozApp(qtSettings.appName, "mozilla-thunderbird"),
+ seamonkey=!thunderbird && !firefox && !mozThunderbird && isMozApp(qtSettings.appName, "seamonkey");
#ifdef QTC_FIX_FIREFOX_LOCATION_BAR
qtSettings.isBrowser=firefox;
@@ -2080,7 +2081,7 @@
if(firefox)
{
processMozillaApp(mozVersion=QTC_MAKE_VERSION(3, 5) && 0==strcmp(app, "firefox-3.5"))
+ if(mozVersion>=QTC_MAKE_VERSION(3, 5) && 0==strcmp(qtSettings.appName, "firefox-3.5"))
processMozillaApp(FALSE, add_menu_colors, "firefox-3.5", TRUE);
}
else if(thunderbird)
@@ -2100,23 +2101,23 @@
(thunderbird || mozThunderbird || (seamonkey && mozVersion\0 */
char *version=(char *)malloc(versionLen);
- getGtk2CfgFile(&tmpStr, xdg, "qtcurve.gtk-icons");
+ getGtk2CfgFile(&tmpStr, "gtk-icons");
sprintf(version, "#%s %s %02X%02X%02X%02X%02X%02X%02X",
VERSION,
iconTheme,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/style/qtcurve.c new/QtCurve-Gtk2-0.69.2/style/qtcurve.c
--- old/QtCurve-Gtk2-0.68.0/style/qtcurve.c 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/style/qtcurve.c 2009-10-18 21:14:48.000000000 +0200
@@ -1229,8 +1229,8 @@
}
else
{
- double val=botTab ? INVERT_SHADE(grad->stops[i].val) : grad->stops[i].val;
- shade(&opts, base, &col, botTab ? QTC_MAX(val, 0.9) : val);
+ double val=botTab && opts.invertBotTab ? INVERT_SHADE(grad->stops[i].val) : grad->stops[i].val;
+ shade(&opts, base, &col, botTab && opts.invertBotTab ? QTC_MAX(val, 0.9) : val);
}
cairo_pattern_add_color_stop_rgba(pt, botTab ? 1.0-grad->stops[i].pos : grad->stops[i].pos,
@@ -1380,15 +1380,16 @@
int widthi=width-2,
heighti=height-2;
- if((GTK_STATE_INSENSITIVE!=state || BORDER_SUNKEN==borderProfile) &&
- (BORDER_RAISED==borderProfile || APPEARANCE_FLAT!=app))
+ if((GTK_STATE_INSENSITIVE!=state || BORDER_SUNKEN==borderProfile) /*&&
+ (BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile || APPEARANCE_FLAT!=app)*/)
{
- GdkColor *col=col=&colors[BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile
+ GdkColor *col=&colors[BORDER_RAISED==borderProfile || BORDER_LIGHT==borderProfile
? 0 : QT_FRAME_DARK_SHADOW];
if(flags&DF_BLEND)
cairo_set_source_rgba(cr, QTC_CAIRO_COL(*col), alpha);
else
cairo_set_source_rgb(cr, QTC_CAIRO_COL(*col));
+
}
else
cairo_set_source_rgb(cr, QTC_CAIRO_COL(style->bg[state]));
@@ -1402,10 +1403,10 @@
cairo_set_source_rgb(cr, QTC_CAIRO_COL(style->bg[state]));
else if(WIDGET_ENTRY==widget && !hasFocus)
cairo_set_source_rgb(cr, QTC_CAIRO_COL(style->base[state]));
- else if(GTK_STATE_INSENSITIVE!=state && (BORDER_SUNKEN==borderProfile || APPEARANCE_FLAT!=app ||
+ else if(GTK_STATE_INSENSITIVE!=state && (BORDER_SUNKEN==borderProfile || /*APPEARANCE_FLAT!=app ||*/
WIDGET_TAB_TOP==widget || WIDGET_TAB_BOT==widget))
{
- GdkColor *col=col=&colors[BORDER_RAISED==borderProfile ? QT_FRAME_DARK_SHADOW : 0];
+ GdkColor *col=&colors[BORDER_RAISED==borderProfile ? QT_FRAME_DARK_SHADOW : 0];
if(flags&DF_BLEND)
cairo_set_source_rgba(cr, QTC_CAIRO_COL(*col), BORDER_SUNKEN==borderProfile ? 0.0 : alpha);
else
@@ -1680,7 +1681,7 @@
horizontal=WIDGET_SB_SLIDER==widget ? !horiz
: (horiz && WIDGET_SB_BUTTON!=widget) ||
(!horiz && WIDGET_SB_BUTTON==widget);
- int len=WIDGET_SB_SLIDER==widget ? QTC_SB_SLIDER_MO_LEN(horiz ? width : height)+1 : (thin ? 1 : 2);
+ int len=WIDGET_SB_SLIDER==widget ? QTC_SB_SLIDER_MO_LEN(horiz ? width : height) : (thin ? 1 : 2);
GdkRectangle rect;
if(horizontal)
rect.x=x, rect.y=y+len, rect.width=width, rect.height=height-(len*2);
@@ -2362,6 +2363,19 @@
}
}
+ if (opts.menubarHiding && widget && GTK_IS_WINDOW(widget) && !isFixedWidget(widget) && !isGimpDockable(widget) &&
+ (!widget->name || strcmp(widget->name, "gtk-tooltip")))
+ {
+ qtcWindowSetup(widget);
+ if(qtcMenuBarHidden(qtSettings.appName))
+ {
+ GtkWidget *menuBar=qtcWindowGetMenuBar(widget, 0);
+
+ if(menuBar)
+ gtk_widget_hide(menuBar);
+ }
+ }
+
if(!IS_FLAT(opts.bgndAppearance) && widget && GTK_IS_WINDOW(widget) &&
drawBgndGradient(cr, style, area, widget, x, y, width, height))
qtcWindowSetup(widget);
@@ -2549,8 +2563,10 @@
QTC_CAIRO_END
}
-static void drawPolygon(cairo_t *cr, GdkColor *col, GdkRectangle *area, GdkPoint *points, int npoints, gboolean fill)
+static void drawPolygon(GdkWindow *window, GtkStyle *style, GdkColor *col, GdkRectangle *area, GdkPoint *points, int npoints, gboolean fill)
{
+#ifdef QTC_USE_CAIRO_FOR_ARROWS
+ QTC_CAIRO_BEGIN
int i;
cairo_antialias_t aa=cairo_get_antialias(cr);
setCairoClipping(cr, area, NULL);
@@ -2565,9 +2581,32 @@
cairo_fill(cr);
cairo_set_antialias(cr, aa);
unsetCairoClipping(cr);
+ QTC_CAIRO_END
+#else
+ QtCurveStyle *qtcurveStyle = (QtCurveStyle *)style;
+
+ if(!qtcurveStyle->arrow_gc)
+ {
+ qtcurveStyle->arrow_gc=gdk_gc_new(window);
+ g_object_ref(qtcurveStyle->arrow_gc);
+ }
+
+ gdk_rgb_find_color(style->colormap, col);
+ gdk_gc_set_foreground(qtcurveStyle->arrow_gc, col);
+
+ if(area)
+ gdk_gc_set_clip_rectangle(qtcurveStyle->arrow_gc, area);
+
+ gdk_draw_polygon(window, qtcurveStyle->arrow_gc, FALSE, points, npoints);
+ if(fill)
+ gdk_draw_polygon(window, qtcurveStyle->arrow_gc, TRUE, points, npoints);
+
+ if(area)
+ gdk_gc_set_clip_rectangle(qtcurveStyle->arrow_gc, NULL);
+#endif
}
-static void drawArrow(cairo_t *cr, GdkColor *col, GdkRectangle *area, GtkArrowType arrow_type,
+static void drawArrow(GdkWindow *window, GtkStyle *style, GdkColor *col, GdkRectangle *area, GtkArrowType arrow_type,
gint x, gint y, gboolean small, gboolean fill)
{
if(small)
@@ -2576,25 +2615,25 @@
case GTK_ARROW_UP:
{
GdkPoint a[]={{x+2,y}, {x,y-2}, {x-2,y}, {x-2,y+1}, {x,y-1}, {x+2,y+1}};
- drawPolygon(cr, col, area, a, opts.vArrows ? 6 : 3, fill);
+ drawPolygon(window, style, col, area, a, opts.vArrows ? 6 : 3, fill);
break;
}
case GTK_ARROW_DOWN:
{
GdkPoint a[]={{x+2,y}, {x,y+2}, {x-2,y}, {x-2,y-1}, {x,y+1}, {x+2,y-1}};
- drawPolygon(cr, col, area, a, opts.vArrows ? 6 : 3, fill);
+ drawPolygon(window, style, col, area, a, opts.vArrows ? 6 : 3, fill);
break;
}
case GTK_ARROW_RIGHT:
{
GdkPoint a[]={{x,y-2}, {x+2,y}, {x,y+2}, {x-1,y+2}, {x+1,y}, {x-1,y-2}};
- drawPolygon(cr, col, area, a, opts.vArrows ? 6 : 3, fill);
+ drawPolygon(window, style, col, area, a, opts.vArrows ? 6 : 3, fill);
break;
}
case GTK_ARROW_LEFT:
{
GdkPoint a[]={{x,y-2}, {x-2,y}, {x,y+2}, {x+1,y+2}, {x-1,y}, {x+1,y-2}};
- drawPolygon(cr, col, area, a, opts.vArrows ? 6 : 3, fill);
+ drawPolygon(window, style, col, area, a, opts.vArrows ? 6 : 3, fill);
break;
}
default:
@@ -2606,25 +2645,25 @@
case GTK_ARROW_UP:
{
GdkPoint a[]={{x+3,y+1}, {x,y-2}, {x-3,y+1}, {x-3, y+2}, {x-2, y+2}, {x,y}, {x+2, y+2}, {x+3,y+2}};
- drawPolygon(cr, col, area, a, opts.vArrows ? 8 : 3, fill);
+ drawPolygon(window, style, col, area, a, opts.vArrows ? 8 : 3, fill);
break;
}
case GTK_ARROW_DOWN:
{
GdkPoint a[]={{x+3,y-1}, {x,y+2}, {x-3,y-1}, {x-3,y-2}, {x-2, y-2}, {x,y}, {x+2, y-2}, {x+3,y-2}};
- drawPolygon(cr, col, area, a, opts.vArrows ? 8 : 3, fill);
+ drawPolygon(window, style, col, area, a, opts.vArrows ? 8 : 3, fill);
break;
}
case GTK_ARROW_RIGHT:
{
GdkPoint a[]={{x-1,y+3}, {x+2,y}, {x-1,y-3}, {x-2,y-3}, {x-2, y-2}, {x,y}, {x-2, y+2}, {x-2,y+3}};
- drawPolygon(cr, col, area, a, opts.vArrows ? 8 : 3, fill);
+ drawPolygon(window, style, col, area, a, opts.vArrows ? 8 : 3, fill);
break;
}
case GTK_ARROW_LEFT:
{
GdkPoint a[]={{x+1,y-3}, {x-2,y}, {x+1,y+3}, {x+2,y+3}, {x+2, y+2}, {x,y}, {x+2, y-2}, {x+2,y-3}};
- drawPolygon(cr, col, area, a, opts.vArrows ? 8 : 3, fill);
+ drawPolygon(window, style, col, area, a, opts.vArrows ? 8 : 3, fill);
break;
}
default:
@@ -2637,8 +2676,6 @@
const gchar *detail, GtkArrowType arrow_type,
gboolean fill, gint x, gint y, gint width, gint height)
{
- QTC_CAIRO_BEGIN
-
#ifdef QTC_DEBUG
printf("Draw arrow %d %d %d %d %d %d %d %s ", state, shadow, arrow_type, x, y, width, height, detail ? detail : "NULL");
debugDisplayWidget(widget, 3);
@@ -2652,18 +2689,24 @@
GdkColor *arrowColor=QTC_MO_ARROW(false, &qtSettings.colors[GTK_STATE_INSENSITIVE==state
? PAL_DISABLED : PAL_ACTIVE]
[COLOR_BUTTON_TEXT]);
+ //gboolean moz=isMozilla() && widget && widget->parent && widget->parent->parent && widget->parent->parent->parent &&
+ // isFixedWidget(widget->parent->parent->parent);
x++;
+ // NOTE: Dont do this for moz - as looks odd fir widgets in HTML pages - arrow is shifted too much :-(
+ if(!QTC_DO_EFFECT) // || moz)
+ x+=2;
+
if(opts.doubleGtkComboArrow)
{
int pad=opts.vArrows ? 0 : 1;
- drawArrow(cr, arrowColor, area, GTK_ARROW_UP,
+ drawArrow(window, style, arrowColor, area, GTK_ARROW_UP,
x+(width>>1), y+(height>>1)-(LARGE_ARR_HEIGHT-pad), FALSE, TRUE);
- drawArrow(cr, arrowColor, area, GTK_ARROW_DOWN,
+ drawArrow(window, style, arrowColor, area, GTK_ARROW_DOWN,
x+(width>>1), y+(height>>1)+(LARGE_ARR_HEIGHT-pad), FALSE, TRUE);
}
else
- drawArrow(cr, arrowColor, area, GTK_ARROW_DOWN, x+(width>>1), y+(height>>1), FALSE, TRUE);
+ drawArrow(window, style, arrowColor, area, GTK_ARROW_DOWN, x+(width>>1), y+(height>>1), FALSE, TRUE);
}
else
{
@@ -2674,7 +2717,7 @@
: &style->text[QTC_ARROW_STATE(state)];
if(onComboEntry && GTK_STATE_ACTIVE==state && opts.unifyCombo)
x--, y--;
- drawArrow(cr, QTC_MO_ARROW(false, col), area, arrow_type, x+(width>>1), y+(height>>1), FALSE, TRUE);
+ drawArrow(window, style, QTC_MO_ARROW(false, col), area, arrow_type, x+(width>>1), y+(height>>1), FALSE, TRUE);
}
}
else
@@ -2773,10 +2816,9 @@
? &qtSettings.colors[GTK_STATE_INSENSITIVE==state ? PAL_DISABLED : PAL_ACTIVE][COLOR_BUTTON_TEXT]
: &style->text[QTC_IS_MENU_ITEM(widget) && GTK_STATE_PRELIGHT==state
? GTK_STATE_SELECTED : QTC_ARROW_STATE(state)];
- drawArrow(cr, QTC_MO_ARROW(isMenuItem, col), area, arrow_type, x, y, smallArrows, TRUE);
+ drawArrow(window, style, QTC_MO_ARROW(isMenuItem, col), area, arrow_type, x, y, smallArrows, TRUE);
}
}
- QTC_CAIRO_END
}
static void drawBox(GtkStyle *style, GdkWindow *window, GtkStateType state,
@@ -3141,6 +3183,25 @@
}
#endif
+ if(/*GTK_APP_JAVA_SWT==qtSettings.app && */
+ widget && !isFixedWidget(widget) && /* Don't do for Firefox, etc. */
+ WIDGET_SB_SLIDER==widgetType && GTK_STATE_INSENSITIVE!=state)
+ {
+ gboolean horizontal = GTK_RANGE(widget)->orientation != GTK_ORIENTATION_HORIZONTAL;
+ int sbarTroughLen = (horizontal ? widget->allocation.height : widget->allocation.width)-
+ ( (GTK_RANGE(widget)->has_stepper_a ? opts.sliderWidth : 0)+
+ (GTK_RANGE(widget)->has_stepper_b ? opts.sliderWidth : 0)+
+ (GTK_RANGE(widget)->has_stepper_c ? opts.sliderWidth : 0)+
+ (GTK_RANGE(widget)->has_stepper_d ? opts.sliderWidth : 0)),
+ sliderLen = (horizontal ? height : width);
+
+ if(sbarTroughLen==sliderLen)
+ {
+ state=GTK_STATE_INSENSITIVE;
+ btn_colors=qtcPalette.background;
+ bgnd=getFill(state, FALSE);
+ }
+ }
#ifdef QTC_INCREASE_SB_SLIDER
if(slider && widget && GTK_IS_RANGE(widget) && !opts.flatSbarButtons && SCROLLBAR_NONE!=opts.scrollbarType
/*&& !(GTK_STATE_PRELIGHT==state && MO_GLOW==opts.coloredMouseOver)*/)
@@ -3210,11 +3271,16 @@
// determine the button associated with it. So, we store the mapping here...
if(!mozToolbar && widget->parent && GTK_IS_COMBO_BOX_ENTRY(widget->parent))
qtcWidgetMapSetup(widget->parent, widget, 0);
+ // If the button is disabled, but the entry field is not - then use entry field's state
+ // for the button. This fixes an issue with LinuxDC++ and Gtk 2.18
+ if(GTK_STATE_INSENSITIVE==state && entry && GTK_STATE_INSENSITIVE!=entry->state)
+ state=entry->state;
drawEntryField(cr, style, state, entry, area, x, y, width, height, rev ? ROUNDED_LEFT : ROUNDED_RIGHT,
WIDGET_COMBO_BUTTON);
// Get entry to redraw by setting its state...
// ...cant do a queue redraw, as then entry does for the button, else we get stuck in a loop!
- if(!mozToolbar && widget && entry && entry->state!=widget->state && GTK_STATE_INSENSITIVE!=entry->state)
+ if(!mozToolbar && widget && entry && entry->state!=widget->state && GTK_STATE_INSENSITIVE!=entry->state &&
+ GTK_STATE_INSENSITIVE!=state)
gtk_widget_set_state(entry, state);
}
else if(opts.flatSbarButtons && WIDGET_SB_BUTTON==widgetType)
@@ -3327,7 +3393,7 @@
btn.x=cx + (rev ? ind_width+QT_STYLE->xthickness
: (cwidth - ind_width - QT_STYLE->xthickness)+1),
- btn.y=y, btn.width=ind_width+4, btn.height=height;
+ btn.y=y, btn.width=ind_width+3, btn.height=height;
if(!opts.comboSplitter)
setCairoClipping(cr, &btn, NULL);
@@ -3392,7 +3458,7 @@
? getFillReal(state, btn_down, true) : bgnd;
btn.x=vx+(rev ? LARGE_ARR_WIDTH+4 : 0),
- btn.y=y, btn.width=20+4, btn.height=height;
+ btn.y=y, btn.width=20+3, btn.height=height;
if(!opts.comboSplitter)
setCairoClipping(cr, &btn, NULL);
@@ -4850,6 +4916,8 @@
gdk_gc_set_clip_rectangle(gc, NULL);
}
+#define QTC_NUM_GCS 5
+
static void gtkDrawLayout(GtkStyle *style, GdkWindow *window, GtkStateType state, gboolean use_text,
GdkRectangle *area, GtkWidget *widget, const gchar *detail, gint x, gint y,
PangoLayout *layout)
@@ -4878,7 +4946,7 @@
GtkNotebook *nb=mb || isMenuItem || !GTK_IS_LABEL(widget) ||
!widget->parent || !GTK_IS_NOTEBOOK(widget->parent) ? NULL : GTK_NOTEBOOK(widget->parent);
#endif
- GdkGC *prevGcs[4];
+ GdkGC *prevGcs[QTC_NUM_GCS];
gboolean activeWindow=TRUE;
int i=0;
@@ -4927,7 +4995,7 @@
{
use_text=TRUE;
swap_gc=TRUE;
- for(i=0; i<5; ++i)
+ for(i=0; itext_gc[i];
style->text_gc[i]=qtcurveStyle->button_text_gc[GTK_STATE_INSENSITIVE==state ? PAL_DISABLED : PAL_ACTIVE];
@@ -4941,7 +5009,7 @@
{
if(opts.customMenuTextColor && qtcurveStyle->menutext_gc[0])
{
- for(i=0; i<5; ++i)
+ for(i=0; itext_gc[i];
swap_gc=TRUE;
style->text_gc[GTK_STATE_NORMAL]=qtcurveStyle->menutext_gc[0];
@@ -5168,8 +5236,15 @@
const gchar *detail, gint x, gint y, gint width, gint height)
{
QtCurveStyle *qtcurveStyle = (QtCurveStyle *)style;
+ GdkColor *arrowColor=QTC_MO_ARROW(false, &qtSettings.colors[GTK_STATE_INSENSITIVE==state
+ ? PAL_DISABLED : PAL_ACTIVE]
+ [COLOR_BUTTON_TEXT]);
//if(QTC_DO_EFFECT)
// x--;
+#ifdef QTC_DEBUG
+printf("Draw tab %d %d %s ", state, shadow_type, detail ? detail : "NULL");
+debugDisplayWidget(widget, 5);
+#endif
if(isActiveCombo(widget))
x++, y++;
@@ -5178,19 +5253,16 @@
? x+1
: x+(width>>1);
- QTC_CAIRO_BEGIN
-// if(opts.singleComboArrow)
- drawArrow(cr, &qtSettings.colors[GTK_STATE_INSENSITIVE==state ? PAL_DISABLED : PAL_ACTIVE][COLOR_BUTTON_TEXT], NULL,
- GTK_ARROW_DOWN, x, y+(height>>1), FALSE, TRUE);
-// else
-// {
-// drawArrow(window, qtcurveStyle->button_text_gc[GTK_STATE_INSENSITIVE==state ? PAL_DISABLED : PAL_ACTIVE], NULL, GTK_ARROW_UP, x,
-// y+(height>>1)-(LARGE_ARR_HEIGHT-1), FALSE, TRUE);
-// drawArrow(window, qtcurveStyle->button_text_gc[GTK_STATE_INSENSITIVE==state ? PAL_DISABLED : PAL_ACTIVE], NULL, GTK_ARROW_DOWN, x,
-// y+(height>>1)+(LARGE_ARR_HEIGHT-1), FALSE, TRUE);
-// }
-
- QTC_CAIRO_END
+ if(opts.doubleGtkComboArrow)
+ {
+ int pad=opts.vArrows ? 0 : 1;
+ drawArrow(window, style, arrowColor, area, GTK_ARROW_UP,
+ x, y+(height>>1)-(LARGE_ARR_HEIGHT-pad), FALSE, TRUE);
+ drawArrow(window, style, arrowColor, area, GTK_ARROW_DOWN,
+ x, y+(height>>1)+(LARGE_ARR_HEIGHT-pad), FALSE, TRUE);
+ }
+ else
+ drawArrow(window, style, arrowColor, area, GTK_ARROW_DOWN, x, y+(height>>1), FALSE, TRUE);
}
static void gtkDrawBoxGap(GtkStyle *style, GdkWindow *window, GtkStateType state,
@@ -6277,7 +6349,7 @@
GdkPoint a[]={{ x+width, (y+height)-size},
{ x+width, y+height},
{(x+width)-size, y+height}};
- drawPolygon(cr, &qtcPalette.background[2], area, a, 3, TRUE);
+ drawPolygon(window, style, &qtcPalette.background[2], area, a, 3, TRUE);
break;
}
case GDK_WINDOW_EDGE_SOUTH_WEST:
@@ -6285,7 +6357,7 @@
GdkPoint a[]={{(x+width)-size, (y+height)-size},
{ x+width, y+height},
{(x+width)-size, y+height}};
- drawPolygon(cr, &qtcPalette.background[2], area, a, 3, TRUE);
+ drawPolygon(window, style, &qtcPalette.background[2], area, a, 3, TRUE);
break;
}
case GDK_WINDOW_EDGE_NORTH_EAST:
@@ -6316,13 +6388,11 @@
x-=QTC_LV_SIZE>>1;
y-=QTC_LV_SIZE>>1;
- QTC_CAIRO_BEGIN
if(GTK_EXPANDER_COLLAPSED==expander_style)
- drawArrow(cr, col, area, reverseLayout(widget) ? GTK_ARROW_LEFT : GTK_ARROW_RIGHT,
+ drawArrow(window, style, col, area, reverseLayout(widget) ? GTK_ARROW_LEFT : GTK_ARROW_RIGHT,
x+(LARGE_ARR_WIDTH>>1), y+LARGE_ARR_HEIGHT, FALSE, fill);
else
- drawArrow(cr, col, area, GTK_ARROW_DOWN, x+(LARGE_ARR_WIDTH>>1), y+LARGE_ARR_HEIGHT, FALSE, fill);
- QTC_CAIRO_END
+ drawArrow(window, style, col, area, GTK_ARROW_DOWN, x+(LARGE_ARR_WIDTH>>1), y+LARGE_ARR_HEIGHT, FALSE, fill);
}
static void styleRealize(GtkStyle *style)
@@ -6347,6 +6417,9 @@
qtcurveStyle->lv_lines_gc=realizeColors(style, &qtSettings.colors[PAL_ACTIVE][COLOR_MID]);
else
qtcurveStyle->lv_lines_gc=NULL;
+#ifndef QTC_USE_CAIRO_FOR_ARROWS
+ qtcurveStyle->arrow_gc=NULL;
+#endif
}
static void styleUnrealize(GtkStyle *style)
@@ -6369,6 +6442,14 @@
gtk_gc_release(qtcurveStyle->lv_lines_gc);
qtcurveStyle->lv_lines_gc=NULL;
}
+
+#ifndef QTC_USE_CAIRO_FOR_ARROWS
+ if(qtcurveStyle->arrow_gc)
+ {
+ g_object_unref(qtcurveStyle->arrow_gc);
+ qtcurveStyle->arrow_gc=NULL;
+ }
+#endif
}
static void generateColors()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/style/qtcurve.h new/QtCurve-Gtk2-0.69.2/style/qtcurve.h
--- old/QtCurve-Gtk2-0.68.0/style/qtcurve.h 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/style/qtcurve.h 2009-10-18 21:14:48.000000000 +0200
@@ -23,6 +23,7 @@
#include
#include "common.h"
+#include "config.h"
typedef struct _QtCurveStyleClass QtCurveStyleClass;
@@ -65,6 +66,9 @@
GdkGC *button_text_gc[2],
*menutext_gc[2],
*lv_lines_gc;
+#ifndef QTC_USE_CAIRO_FOR_ARROWS
+ GdkGC *arrow_gc;
+#endif
} QtCurveStyle;
struct _QtCurveStyleClass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtCurve-Gtk2-0.68.0/style/window.c new/QtCurve-Gtk2-0.69.2/style/window.c
--- old/QtCurve-Gtk2-0.68.0/style/window.c 2009-08-27 00:00:08.000000000 +0200
+++ new/QtCurve-Gtk2-0.69.2/style/window.c 2009-10-18 21:14:48.000000000 +0200
@@ -1,13 +1,19 @@
+#include
+
static void qtcWindowCleanup(GtkWidget *widget)
{
if (widget)
{
- g_signal_handler_disconnect(G_OBJECT(widget),
- (gint)g_object_steal_data(G_OBJECT(widget), "QTC_WINDOW_SIZE_REQUEST_ID"));
+ if(!IS_FLAT(opts.bgndAppearance))
+ g_signal_handler_disconnect(G_OBJECT(widget),
+ (gint)g_object_steal_data(G_OBJECT(widget), "QTC_WINDOW_SIZE_REQUEST_ID"));
g_signal_handler_disconnect(G_OBJECT(widget),
(gint)g_object_steal_data(G_OBJECT(widget), "QTC_WINDOW_DESTROY_ID"));
g_signal_handler_disconnect(G_OBJECT(widget),
(gint)g_object_steal_data(G_OBJECT(widget), "QTC_WINDOW_STYLE_SET_ID"));
+ if(opts.menubarHiding)
+ g_signal_handler_disconnect(G_OBJECT(widget),
+ (gint)g_object_steal_data(G_OBJECT(widget), "QTC_WINDOW_KEY_RELEASE_ID"));
g_object_steal_data(G_OBJECT(widget), "QTC_WINDOW_HACK_SET");
}
}
@@ -36,19 +42,71 @@
return FALSE;
}
+static GtkWidget * qtcWindowGetMenuBar(GtkWidget *parent, int level)
+{
+ if(level<3 && GTK_IS_CONTAINER(parent))
+ {
+ GList *child=gtk_container_get_children(GTK_CONTAINER(parent));
+
+ for(; child; child=child->next)
+ {
+ GtkBoxChild *boxChild=(GtkBoxChild *)child->data;
+
+ if(GTK_IS_MENU_BAR(boxChild))
+ return GTK_WIDGET(boxChild);
+ else if(GTK_IS_CONTAINER(boxChild))
+ {
+ GtkWidget *w=qtcWindowGetMenuBar(GTK_WIDGET(boxChild), level+1);
+ if(w)
+ return w;
+ }
+ }
+ }
+
+ return NULL;
+}
+
+static gboolean qtcWindowKeyRelease(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
+{
+ if(GDK_CONTROL_MASK&event->state &&
+ GDK_MOD1_MASK&event->state &&
+ 0==(event->state&0xFF00) && // Ensure only ctrl/alt/shift/capsLock are pressed...
+ (GDK_m==event->keyval || GDK_M==event->keyval) &&
+ !event->is_modifier)
+ {
+
+ GtkWidget *menuBar=qtcWindowGetMenuBar(widget, 0);
+
+ if(menuBar)
+ {
+ qtcSetMenuBarHidden(qtSettings.appName, GTK_WIDGET_VISIBLE(menuBar));
+ if(GTK_WIDGET_VISIBLE(menuBar))
+ gtk_widget_hide(menuBar);
+ else
+ gtk_widget_show(menuBar);
+ }
+ }
+ return FALSE;
+}
+
static void qtcWindowSetup(GtkWidget *widget)
{
if (widget && !g_object_get_data(G_OBJECT(widget), "QTC_WINDOW_HACK_SET"))
{
g_object_set_data(G_OBJECT(widget), "QTC_WINDOW_HACK_SET", (gpointer)1);
- g_object_set_data(G_OBJECT(widget), "QTC_WINDOW_SIZE_REQUEST_ID",
- (gpointer)g_signal_connect(G_OBJECT(widget), "size-request",
- (GtkSignalFunc)qtcWindowSizeRequest, NULL));
+ if(!IS_FLAT(opts.bgndAppearance))
+ g_object_set_data(G_OBJECT(widget), "QTC_WINDOW_SIZE_REQUEST_ID",
+ (gpointer)g_signal_connect(G_OBJECT(widget), "size-request",
+ (GtkSignalFunc)qtcWindowSizeRequest, NULL));
g_object_set_data(G_OBJECT(widget), "QTC_WINDOW_DESTROY_ID",
(gpointer)g_signal_connect(G_OBJECT(widget), "destroy-event",
(GtkSignalFunc)qtcWindowDestroy, NULL));
g_object_set_data(G_OBJECT(widget), "QTC_WINDOW_STYLE_SET_ID",
(gpointer)g_signal_connect(G_OBJECT(widget), "style-set",
(GtkSignalFunc)qtcWindowStyleSet, NULL));
+ if(opts.menubarHiding)
+ g_object_set_data(G_OBJECT(widget), "QTC_WINDOW_KEY_RELEASE_ID",
+ (gpointer)g_signal_connect(G_OBJECT(widget), "key-release-event",
+ (GtkSignalFunc)qtcWindowKeyRelease, NULL));
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org