[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-cygwin
Subject: [PATCH] for Borland & widget-colors
From: Christian Ehrlicher <Ch.Ehrlicher () gmx ! de>
Date: 2004-09-30 20:33:14
Message-ID: 415C6D8A.7030502 () gmx ! de
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
[Attachment #4 (multipart/mixed)]
Today I've two patches
1. standard color definitions: since some of them were not set correctly
(see "[PATCH] Correct color for disabled Buttons") I tried to set all to
the correct value. Feel free to correct them if you find an error :)
2. A fix for the "undefined reference to qMain in qtmain.lib" - problem
when using Borland. First we only need qMain in a gui-application
(qwindowdefs_win.h). The change in qtmain.cpp was a try and error
solution ... but it works :)
Christian
["qt-3.3-borland.patch" (text/plain)]
Index: src/kernel/qwindowdefs_win.h
===================================================================
RCS file: /cvsroot/kde-cygwin/qt-3/src/kernel/Attic/qwindowdefs_win.h,v
retrieving revision 1.1.4.5
diff -u -r1.1.4.5 qwindowdefs_win.h
--- src/kernel/qwindowdefs_win.h 24 Sep 2004 13:07:03 -0000 1.1.4.5
+++ src/kernel/qwindowdefs_win.h 29 Sep 2004 04:17:18 -0000
@@ -48,7 +48,7 @@
#endif
*/
-#if defined(Q_CC_BOR) || defined(Q_CC_WAT)
+#if (defined(Q_CC_BOR) || defined(Q_CC_WAT)) && !defined(__CONSOLE__)
#define NEEDS_QMAIN
#endif
Index: src/kernel/qtmain_win.cpp
===================================================================
RCS file: /cvsroot/kde-cygwin/qt-3/src/kernel/Attic/qtmain_win.cpp,v
retrieving revision 1.1.2.5.2.2
diff -u -r1.1.2.5.2.2 qtmain_win.cpp
--- src/kernel/qtmain_win.cpp 24 Sep 2004 13:07:02 -0000 1.1.2.5.2.2
+++ src/kernel/qtmain_win.cpp 29 Sep 2004 15:19:00 -0000
@@ -41,11 +41,32 @@
extern void qWinMain( HINSTANCE, HINSTANCE, QStringList &, int, int &, QMemArray<pchar> & );
#endif
+/* for borland and watchcom regular applications defines an entry point named
+ qMain() instead of main() because of internal limitations in gui applications we
+ can't call main() inside our WinMain.
+ But we only need this crap for GUI-apps
+ -> see qwindowdefs_win.h
+ */
+#ifdef NEEDS_QMAIN
+/* Don't know why, but defining this 'extern "C"' prevents ilink32 from
+ finding qMain in main.cpp ... courious
+ because of this our old version:
+ undef main
+ int main (int argc,char** argv) {
+ qMain(argc,argv
+ }
+ won't work when it is defined at the end of this file since then qMain
+ is already defined as extern "C" ...
+ So I think this is the best solution atm...
+ */
+int qMain( int , char ** );
+#else
#ifdef Q_OS_TEMP
extern "C" int __cdecl main( int, char ** ); // hmmmm
#else
extern "C" int main( int, char ** );
#endif
+#endif
/*
\internal
@@ -70,17 +91,3 @@
int result = main( argc, argv.data() );
return result;
}
-
-// for borland and watchcom regular applications defines an entry point named
-// qMain() instead of main() because of internal limitations in gui applications.
-//
-// The real main() function is defined here in the qt dll and will be
-// referenced by the borland startupcode in case of console applications
-// while gui applications references WinMain().
-#ifdef NEEDS_QMAIN
-#undef main
-int main( int argc, char ** argv )
-{
- return qMain( argc, argv );
-}
-#endif
["qapplication_win.cpp.patch" (text/plain)]
Index: src/kernel/qapplication_win.cpp
===================================================================
RCS file: /cvsroot/kde-cygwin/qt-3/src/kernel/Attic/qapplication_win.cpp,v
retrieving revision 1.1.2.30.2.10
diff -u -r1.1.2.30.2.10 qapplication_win.cpp
--- src/kernel/qapplication_win.cpp 29 Sep 2004 19:51:47 -0000 1.1.2.30.2.10
+++ src/kernel/qapplication_win.cpp 30 Sep 2004 20:25:00 -0000
@@ -710,6 +710,11 @@
*/
}
+static QColor& getQColorFromSys( int syscolor )
+{
+ COLORREF c = GetSysColor( syscolor );
+ return QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
+}
void qt_win_update_os_settings()
{
@@ -718,53 +723,207 @@
//setup the global palette
QColor qc;
- COLORREF c;
QPalette pal = QApplication::palette();
- c = GetSysColor( COLOR_BTNFACE );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
+ /* Available color roles:
+ * QColorGroup::Background - general background color.
+ * QColorGroup::Foreground - general foreground color.
+ * QColorGroup::Base - used as background color for text entry widgets, for \
example; + usually white or another light color.
+ * QColorGroup::Text - the foreground color used with Base. Usually this is \
the same + as the Foreground, in which case it must \
provide good contrast + with Background and Base.
+ * QColorGroup::Button - general button background color in which buttons \
need a + background different from Background, as in \
the Macintosh style. + * QColorGroup::ButtonText - a foreground color used \
with the Button color. + * QColorGroup::Light - lighter than Button color.
+ * QColorGroup::Midlight - between Button and Light.
+ * QColorGroup::Dark - darker than Button.
+ * QColorGroup::Mid - between Button and Dark.
+ * QColorGroup::Shadow - a very dark color. By default, the shadow color is \
Qt::black. + * QColorGroup::Highlight - a color to indicate a selected item \
or the current item. + By default, the highlight \
color is Qt::darkBlue. + * QColorGroup::HighlightedText - a text color that \
contrasts with Highlight. By default, + the \
highlighted text color is Qt::white. + * QColorGroup::BrightText - a text \
color that is very different from Foreground and + \
contrasts well with e.g. Dark. + * QColorGroup::Link - a text color used for \
unvisited hyperlinks. By default, the link + color is \
Qt::blue. + * QColorGroup::LinkVisited - a text color used for already visited \
hyperlinks. By + default, the linkvisited color \
is Qt::magenta. + */
+
+ /* Background is everytime the same
+ it is *not* COLOR_BACKGROUND */
+ qc = getQColorFromSys( COLOR_BTNFACE );
+ pal.setColor( QPalette::Active, QColorGroup::Background, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Background, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Background, qc );
+
+ /* Foreground is the same as Windowtext when I see it at
+ http://doc.trolltech.com/3.3/palette.png correct */
+ qc = getQColorFromSys( COLOR_WINDOWTEXT );
+ pal.setColor( QPalette::Active, QColorGroup::Foreground, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Foreground, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Foreground, getQColorFromSys ( \
COLOR_GRAYTEXT ) ); +
+ /* don't know if this is correct ... */
+ qc = getQColorFromSys( COLOR_WINDOW );
+ pal.setColor( QPalette::Active, QColorGroup::Base, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Base, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Base, qc );
+
+ /* Text ... is disabled text gray? have to look at qt321nc ! */
+ qc = getQColorFromSys( COLOR_WINDOWTEXT );
+ pal.setColor( QPalette::Active, QColorGroup::Text, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Text, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Text, getQColorFromSys( \
COLOR_GRAYTEXT ) ); +
+ /* but a Button is everytime the same */
+ qc = getQColorFromSys( COLOR_BTNFACE );
+ pal.setColor( QPalette::Active, QColorGroup::Button, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Button, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Button, qc );
+
+ /* disabled ButtonText is gray */
+ qc = getQColorFromSys( COLOR_BTNTEXT );
+ pal.setColor( QPalette::Active, QColorGroup::ButtonText, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::ButtonText, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::ButtonText, getQColorFromSys( \
COLOR_GRAYTEXT ) ); +
+ /* Light... mhhh don't know - I took COLOR_BTNHIGHLIGHT */
+ qc = getQColorFromSys( COLOR_BTNHIGHLIGHT );
+ pal.setColor( QPalette::Active, QColorGroup::Light, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Light, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Light, qc );
+
+ /* Midlight... what the hell is this? Using the same as light - correct me :) */
+ qc = getQColorFromSys( COLOR_BTNHIGHLIGHT );
+ pal.setColor( QPalette::Active, QColorGroup::Midlight, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Midlight, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Midlight, qc );
+
+ /* Dark -> Shadow (COLOR_BTNSHADOW or COLOR_3DSHADOW ? )*/
+ qc = getQColorFromSys( COLOR_BTNSHADOW );
+ pal.setColor( QPalette::Active, QColorGroup::Dark, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Dark, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Dark, qc );
+
+ /* Mid ... same procedure as midlight :) */
+ qc = getQColorFromSys( COLOR_BTNSHADOW );
+ pal.setColor( QPalette::Active, QColorGroup::Mid, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Mid, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Mid, qc );
+
+ /* Shadow */
+ qc = getQColorFromSys( COLOR_3DDKSHADOW );
+ pal.setColor( QPalette::Active, QColorGroup::Shadow, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Shadow, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Shadow, qc );
+
+ /* Highlight */
+ qc = getQColorFromSys( COLOR_HIGHLIGHT );
+ pal.setColor( QPalette::Active, QColorGroup::Highlight, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Highlight, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Highlight, qc );
+
+ /* HighlightedText */
+ qc = getQColorFromSys( COLOR_HIGHLIGHTTEXT );
+ pal.setColor( QPalette::Active, QColorGroup::HighlightedText, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::HighlightedText, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::HighlightedText, \
getQColorFromSys( COLOR_GRAYTEXT ) ); +
+ /* BrightText - really don't know - correct me! */
+ qc = getQColorFromSys( COLOR_HIGHLIGHTTEXT );
+ pal.setColor( QPalette::Active, QColorGroup::BrightText, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::BrightText, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::BrightText, qc );
+
+ /* Link - there is now GetSysColor const for this :(
+ But I've found this:
+ http://msdn.microsoft.com/workshop/browser/overview/hypertextlinks.asp
+ for now I use blue like explained in the docs
+ */
+ qc = Qt::blue;
+ pal.setColor( QPalette::Active, QColorGroup::Link, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Link, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::Link, qc );
+
+ /* LinkVisited: see QColorGroup::Link
+ purple -> magenta*/
+ qc = Qt::magenta;
+ pal.setColor( QPalette::Active, QColorGroup::LinkVisited, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::LinkVisited, qc );
+ pal.setColor( QPalette::Disabled, QColorGroup::LinkVisited, qc );
+
+ if ( !( pal == QApplication::palette() ) )
+ QApplication::setPalette( pal );
+
+ // now setup the palette for special widgets
+ // only set the values which are different from standard values...
+
+ //Popup Menu
+ pal = QApplication::palette();
+ qc = getQColorFromSys( COLOR_MENU );
pal.setBrush( QPalette::Active, QColorGroup::Background, qc );
pal.setBrush( QPalette::Inactive, QColorGroup::Background, qc );
- pal.setBrush( QPalette::Disabled, QColorGroup::Background, qc );
+ pal.setBrush( QPalette::Inactive, QColorGroup::Background, qc );
+
pal.setBrush( QPalette::Active, QColorGroup::Button, qc );
pal.setBrush( QPalette::Inactive, QColorGroup::Button, qc );
pal.setBrush( QPalette::Disabled, QColorGroup::Button, qc );
- c = GetSysColor( COLOR_HIGHLIGHT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setBrush( QPalette::Active, QColorGroup::Highlight, qc );
- pal.setBrush( QPalette::Inactive, QColorGroup::Highlight, qc );
-
- c = GetSysColor( COLOR_3DDKSHADOW );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setBrush( QPalette::Active, QColorGroup::Shadow, qc );
- pal.setBrush( QPalette::Inactive, QColorGroup::Shadow, qc );
-
- c = GetSysColor( COLOR_WINDOWTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setBrush( QPalette::Active, QColorGroup::Text, qc );
+ qc = getQColorFromSys( COLOR_MENUTEXT );
+ pal.setColor( QPalette::Active, QColorGroup::ButtonText, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::ButtonText, qc );
+
+ if ( pal != QApplication::palette() )
+ QApplication::setPalette( pal, TRUE, "QPopupMenu" );
+
+ //Button
+ pal = QApplication::palette();
+ qc = getQColorFromSys( COLOR_BTNFACE );
+ pal.setBrush( QPalette::Active, QColorGroup::Background, qc );
+ pal.setBrush( QPalette::Inactive, QColorGroup::Background, qc );
+ pal.setBrush( QPalette::Disabled, QColorGroup::Background, qc );
+
pal.setBrush( QPalette::Active, QColorGroup::Foreground, qc );
- pal.setBrush( QPalette::Inactive, QColorGroup::Text, qc );
pal.setBrush( QPalette::Inactive, QColorGroup::Foreground, qc );
-
- c = GetSysColor( COLOR_HIGHLIGHTTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setBrush( QPalette::Active, QColorGroup::HighlightedText, qc );
- pal.setBrush( QPalette::Inactive, QColorGroup::HighlightedText, qc );
-
- c = GetSysColor( COLOR_GRAYTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setBrush( QPalette::Disabled, QColorGroup::Text, qc );
pal.setBrush( QPalette::Disabled, QColorGroup::Foreground, qc );
- pal.setBrush( QPalette::Disabled, QColorGroup::HighlightedText, qc );
- if ( !( pal == QApplication::palette() ) )
- QApplication::setPalette( pal );
+ qc = getQColorFromSys( COLOR_BTNTEXT );
+ pal.setColor( QPalette::Active, QColorGroup::HighlightedText, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::HighlightedText, qc );
+
+ pal.setColor( QPalette::Active, QColorGroup::Text, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Text, qc );
+
+ if ( pal != QApplication::palette() )
+ QApplication::setPalette( pal, TRUE, "QPushButton" );
+
+ //Tool Tip
+ pal = QApplication::palette();
+ qc = getQColorFromSys( COLOR_INFOBK );
+ pal.setColor( QPalette::Active, QColorGroup::Background, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Background, qc );
+
+ qc = getQColorFromSys ( COLOR_INFOTEXT );
+ pal.setColor( QPalette::Active, QColorGroup::Text, qc );
+ pal.setColor( QPalette::Active, QColorGroup::HighlightedText, qc );
+ pal.setColor( QPalette::Active, QColorGroup::Foreground, qc );
+
+ pal.setColor( QPalette::Inactive, QColorGroup::Text, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::HighlightedText, qc );
+ pal.setColor( QPalette::Inactive, QColorGroup::Foreground, qc );
+
+ if ( pal != QApplication::palette() )
+ QApplication::setPalette( pal, TRUE, "QTipLabel" );
+
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof( NONCLIENTMETRICS );
SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof( NONCLIENTMETRICS ), &ncm, \
0 );
- HDC hDC = GetDC( NULL );
+ HDC hDC = qt_display_dc(); /* better than GetDC(0) */
LOGFONT lf;
GetObject( GetStockObject( DEFAULT_GUI_FONT ), sizeof( LOGFONT ), &lf );
@@ -799,9 +958,7 @@
( bool ) lf.lfItalic
);
- QApplication::setFont( fdef );
-
- ReleaseDC( NULL, hDC );
+ QApplication::setFont( fdef );
QApplication::setFont( fmenu, TRUE, "QMenuBar" );
QApplication::setFont( fmenu, TRUE, "QPopupMenu" );
@@ -810,75 +967,6 @@
QApplication::setFont( fmsg, TRUE, "QMessageBoxLabel" );
QApplication::setFont( ftitle, TRUE, "QTitleBar" );
- //setup the palette
- pal = QApplication::palette();
-
- //Popup Menu
- c = GetSysColor( COLOR_MENU );
- pal.setBrush( QPalette::Active, QColorGroup::Background, QColor( GetRValue( c ), \
GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Inactive, QColorGroup::Background, QColor( GetRValue( c \
), GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Active, QColorGroup::Button, QColor( GetRValue( c ), \
GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Inactive, QColorGroup::Button, QColor( GetRValue( c ), \
GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Disabled, QColorGroup::Button, QColor( GetRValue( c ), \
GetGValue( c ), GetBValue( c ) ) );
- c = GetSysColor( COLOR_MENUTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setColor( QPalette::Active, QColorGroup::ButtonText, qc );
- pal.setColor( QPalette::Inactive, QColorGroup::ButtonText, qc );
- //pal.setBrush(QColorGroup::ButtonText, qc);
- c = GetSysColor( COLOR_HIGHLIGHTTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setColor( QPalette::Active, QColorGroup::HighlightedText, qc );
- pal.setColor( QPalette::Inactive, QColorGroup::HighlightedText, qc );
- //pal.setBrush(QColorGroup::HighlightedText, qc);
- c = GetSysColor( COLOR_GRAYTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setColor( QPalette::Disabled, QColorGroup::ButtonText, qc );
- pal.setColor( QPalette::Disabled, QColorGroup::HighlightedText, qc );
- pal.setColor( QPalette::Disabled, QColorGroup::Text, qc );
- //pal.setBrush(QColorGroup::Text, qc);
- if ( pal != QApplication::palette() )
- QApplication::setPalette( pal, TRUE, "QPopupMenu" );
-
- //Button
- pal = QApplication::palette();
- c = GetSysColor( COLOR_BTNFACE );
- pal.setBrush( QPalette::Active, QColorGroup::Background, QColor( GetRValue( c ), \
GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Inactive, QColorGroup::Background, QColor( GetRValue( c \
), GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Active, QColorGroup::Foreground, QColor( GetRValue( c ), \
GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Inactive, QColorGroup::Foreground, QColor( GetRValue( c \
), GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Active, QColorGroup::Button, QColor( GetRValue( c ), \
GetGValue( c ), GetBValue( c ) ) );
- pal.setBrush( QPalette::Inactive, QColorGroup::Button, QColor( GetRValue( c ), \
GetGValue( c ), GetBValue( c ) ) );
- c = GetSysColor( COLOR_BTNTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setColor( QPalette::Active, QColorGroup::ButtonText, qc );
- pal.setColor( QPalette::Active, QColorGroup::HighlightedText, qc );
- pal.setColor( QPalette::Active, QColorGroup::Text, qc );
- pal.setColor( QPalette::Inactive, QColorGroup::ButtonText, qc );
- pal.setColor( QPalette::Inactive, QColorGroup::HighlightedText, qc );
- pal.setColor( QPalette::Inactive, QColorGroup::Text, qc );
- c = GetSysColor( COLOR_GRAYTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setColor( QPalette::Disabled, QColorGroup::ButtonText, qc );
- pal.setColor( QPalette::Disabled, QColorGroup::HighlightedText, qc );
- pal.setColor( QPalette::Disabled, QColorGroup::Text, qc );
- if ( pal != QApplication::palette() )
- QApplication::setPalette( pal, TRUE, "QPushButton" );
-
- //Tool Tip
- pal = QApplication::palette();
- c = GetSysColor( COLOR_INFOBK );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setColor( QPalette::Active, QColorGroup::Background, qc );
- c = GetSysColor( COLOR_INFOTEXT );
- qc = QColor( GetRValue( c ), GetGValue( c ), GetBValue( c ) );
- pal.setColor( QPalette::Active, QColorGroup::Text, qc );
- pal.setColor( QPalette::Active, QColorGroup::HighlightedText, qc );
- pal.setColor( QPalette::Active, QColorGroup::Foreground, qc );
- pal.setColor( QPalette::Inactive, QColorGroup::Text, qc );
- pal.setColor( QPalette::Inactive, QColorGroup::HighlightedText, qc );
- pal.setColor( QPalette::Inactive, QColorGroup::Foreground, qc );
- if ( pal != QApplication::palette() )
- QApplication::setPalette( pal, TRUE, "QTipLabel" );
}
// set font, foreground and background from x11 resources. The
["signature.asc" (application/pgp-signature)]
_______________________________________________
kde-cygwin mailing list
kde-cygwin@kde.org
https://mail.kde.org/mailman/listinfo/kde-cygwin
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic