home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / qt3_emx.zip / examples / themes / themes.cpp < prev    next >
C/C++ Source or Header  |  2001-10-11  |  6KB  |  176 lines

  1. /****************************************************************************
  2. ** $Id:  qt/themes.cpp   3.0.0   edited Jul 30 21:27 $
  3. **
  4. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  5. **
  6. ** This file is part of an example program for Qt.  This example
  7. ** program may be used, distributed and modified without limitation.
  8. **
  9. *****************************************************************************/
  10.  
  11. #include "themes.h"
  12. #include "wood.h"
  13. #include "metal.h"
  14.  
  15. #include "../buttongroups/buttongroups.h"
  16. #include "../lineedits/lineedits.h"
  17. #include "../listboxcombo/listboxcombo.h"
  18. #include "../checklists/checklists.h"
  19. #include "../progressbar/progressbar.h"
  20. #include "../rangecontrols/rangecontrols.h"
  21. #include "../richtext/richtext.h"
  22.  
  23. #include <qtabwidget.h>
  24. #include <qapplication.h>
  25. #include <qpopupmenu.h>
  26. #include <qmenubar.h>
  27. #include <qmessagebox.h>
  28. #include <qfont.h>
  29.  
  30. Themes::Themes( QWidget *parent, const char *name, WFlags f )
  31.     : QMainWindow( parent, name, f )
  32. {
  33.     appFont = QApplication::font();
  34.     tabwidget = new QTabWidget( this );
  35.  
  36.     tabwidget->addTab( new ButtonsGroups( tabwidget ), "Buttons/Groups" );
  37.     QHBox *hbox = new QHBox( tabwidget );
  38.     hbox->setMargin( 5 );
  39.     (void)new LineEdits( hbox );
  40.     (void)new ProgressBar( hbox );
  41.     tabwidget->addTab( hbox, "Lineedits/Progressbar" );
  42.     tabwidget->addTab( new ListBoxCombo( tabwidget ), "Listboxes/Comboboxes" );
  43.     tabwidget->addTab( new CheckLists( tabwidget ), "Listviews" );
  44.     tabwidget->addTab( new RangeControls( tabwidget ), "Rangecontrols" );
  45.     tabwidget->addTab( new MyRichText( tabwidget ), "Fortune" );
  46.  
  47.     setCentralWidget( tabwidget );
  48.  
  49.     QPopupMenu *style = new QPopupMenu( this );
  50.     style->setCheckable( TRUE );
  51.     menuBar()->insertItem( "&Style" , style );
  52.  
  53.     sMetal = style->insertItem( "&Metal", this, SLOT( styleMetal() ) );
  54.     sWood = style->insertItem( "&Norwegian Wood", this, SLOT( styleWood() ) );
  55.     sPlatinum = style->insertItem( "&Platinum" , this ,SLOT( stylePlatinum() ) );
  56.     sWindows = style->insertItem( "&Windows", this, SLOT( styleWindows() ) );
  57.     sCDE = style->insertItem( "&CDE", this, SLOT( styleCDE() ) );
  58.     sMotif = style->insertItem( "M&otif", this, SLOT( styleMotif() ) );
  59.     sMotifPlus = style->insertItem( "Motif P&lus", this, SLOT( styleMotifPlus() ) );
  60.     style->insertSeparator();
  61.     style->insertItem("&Quit", qApp, SLOT( quit() ), CTRL | Key_Q );
  62.  
  63.     QPopupMenu * help = new QPopupMenu( this );
  64.     menuBar()->insertSeparator();
  65.     menuBar()->insertItem( "&Help", help );
  66.     help->insertItem( "&About", this, SLOT(about()), Key_F1);
  67.     help->insertItem( "About &Qt", this, SLOT(aboutQt()));
  68.  
  69.     qApp->setStyle( new NorwegianWoodStyle );
  70.     menuBar()->setItemChecked( sWood, TRUE );
  71. }
  72.  
  73. void Themes::styleWood()
  74. {
  75.     qApp->setStyle( new NorwegianWoodStyle );
  76.     qApp->setFont( appFont, TRUE );
  77.     selectStyleMenu( sWood );
  78. }
  79.  
  80. void Themes::styleMetal()
  81. {
  82.     qApp->setStyle( new MetalStyle );
  83.     qApp->setFont( appFont, TRUE );
  84.     selectStyleMenu( sMetal );
  85. }
  86.  
  87. void Themes::stylePlatinum()
  88. {
  89.     qApp->setStyle( "Platinum" );
  90.     QPalette p( QColor( 239, 239, 239 ) );
  91.     qApp->setPalette( p, TRUE );
  92.     qApp->setFont( appFont, TRUE );
  93.     selectStyleMenu( sPlatinum );
  94. }
  95.  
  96. void Themes::styleWindows()
  97. {
  98.     qApp->setStyle( "Windows" );
  99.     qApp->setFont( appFont, TRUE );
  100.     selectStyleMenu( sWindows );
  101. }
  102.  
  103. void Themes::styleCDE()
  104. {
  105.     qApp->setStyle( "CDE" );
  106.     selectStyleMenu( sCDE );
  107.  
  108.     QPalette p( QColor( 75, 123, 130 ) );
  109.     p.setColor( QPalette::Active, QColorGroup::Base, QColor( 55, 77, 78 ) );
  110.     p.setColor( QPalette::Inactive, QColorGroup::Base, QColor( 55, 77, 78 ) );
  111.     p.setColor( QPalette::Disabled, QColorGroup::Base, QColor( 55, 77, 78 ) );
  112.     p.setColor( QPalette::Active, QColorGroup::Highlight, Qt::white );
  113.     p.setColor( QPalette::Active, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );
  114.     p.setColor( QPalette::Inactive, QColorGroup::Highlight, Qt::white );
  115.     p.setColor( QPalette::Inactive, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );
  116.     p.setColor( QPalette::Disabled, QColorGroup::Highlight, Qt::white );
  117.     p.setColor( QPalette::Disabled, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );
  118.     p.setColor( QPalette::Active, QColorGroup::Foreground, Qt::white );
  119.     p.setColor( QPalette::Active, QColorGroup::Text, Qt::white );
  120.     p.setColor( QPalette::Active, QColorGroup::ButtonText, Qt::white );
  121.     p.setColor( QPalette::Inactive, QColorGroup::Foreground, Qt::white );
  122.     p.setColor( QPalette::Inactive, QColorGroup::Text, Qt::white );
  123.     p.setColor( QPalette::Inactive, QColorGroup::ButtonText, Qt::white );
  124.     p.setColor( QPalette::Disabled, QColorGroup::Foreground, Qt::lightGray );
  125.     p.setColor( QPalette::Disabled, QColorGroup::Text, Qt::lightGray );
  126.     p.setColor( QPalette::Disabled, QColorGroup::ButtonText, Qt::lightGray );
  127.     qApp->setPalette( p, TRUE );
  128.     qApp->setFont( QFont( "times", appFont.pointSize() ), TRUE );
  129. }
  130.  
  131. void Themes::styleMotif()
  132. {
  133.     qApp->setStyle( "Motif" );
  134.     QPalette p( QColor( 192, 192, 192 ) );
  135.     qApp->setPalette( p, TRUE );
  136.     qApp->setFont( appFont, TRUE );
  137.     selectStyleMenu( sMotif );
  138. }
  139.  
  140. void Themes::styleMotifPlus()
  141. {
  142.     qApp->setStyle( "MotifPlus" );
  143.     QPalette p( QColor( 192, 192, 192 ) );
  144.     qApp->setPalette( p, TRUE );
  145.     qApp->setFont( appFont, TRUE );
  146.     selectStyleMenu( sMotifPlus );
  147. }
  148.  
  149.  
  150. void Themes::about()
  151. {
  152.     QMessageBox::about( this, "Qt Themes Example",
  153.             "<p>This example demonstrates the concept of "
  154.             "<b>generalized GUI styles </b> first introduced "
  155.             " with the 2.0 release of Qt.</p>" );
  156. }
  157.  
  158.  
  159. void Themes::aboutQt()
  160. {
  161.     QMessageBox::aboutQt( this, "Qt Themes Example" );
  162. }
  163.  
  164.  
  165. void Themes::selectStyleMenu( int s )
  166. {
  167.     menuBar()->setItemChecked( sWood, FALSE );
  168.     menuBar()->setItemChecked( sMetal, FALSE );
  169.     menuBar()->setItemChecked( sPlatinum, FALSE );
  170.     menuBar()->setItemChecked( sWindows, FALSE );
  171.     menuBar()->setItemChecked( sCDE, FALSE );
  172.     menuBar()->setItemChecked( sMotif, FALSE );
  173.     menuBar()->setItemChecked( sMotifPlus, FALSE );
  174.     menuBar()->setItemChecked( s, TRUE );
  175. }
  176.