Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

pianoscale.cpp

Go to the documentation of this file.
00001 #include "pianoscale.h"
00002 
00003 #include <qpainter.h>
00004 
00005 
00006 Menu::PianoScale::PianoScale(QWidget* parent,const char* name,WFlags f)
00007 :QWidget(parent,name,f)
00008 {
00009     QColor black(0,0,0);
00010     QColor white(255,255,255);
00011     QColor mark(255,0,0);
00012     blackBrush=QBrush(black);
00013     whiteBrush=QBrush(white);
00014     markBrush=QBrush(mark);
00015     blackPen=QPen(black);
00016     whitePen=QPen(white);
00017     setBackgroundColor(QColor(0,0,255));
00018 }
00019 //****************************************************************************
00020 Menu::PianoScale::~ PianoScale()
00021 {
00022 }
00023 //****************************************************************************
00024 void Menu::PianoScale::paintEvent(QPaintEvent* pe)
00025 {
00026     QPainter p(this);
00027     QRect mysize=rect();
00028 
00029     int pad=10;
00030     int x0=pad;
00031     int y0=pad;
00032     int w0=mysize.width()-2*pad;
00033     int h0=mysize.height()-2*pad;
00034 
00035     int keypad=2;
00036     if(mysize.width()>mysize.height())
00037     {
00038         int div=(int)(w0/14.0);
00039         int halftonewidth=(int)(div/3.0);
00040         int halftoneheight=(int)((h0-2*keypad)*0.66);
00041         for(int a=0;a<14;a++)
00042         {
00043             int x=x0+a*div;
00044 
00045             p.setPen(blackPen);
00046             p.setBrush(blackBrush);
00047             p.drawRect(x,y0,div,h0);
00048 
00049             p.setPen(whitePen);
00050             p.setBrush(whiteBrush);
00051             p.drawRect(x+keypad,y0+keypad,div-2*keypad,h0-2*keypad);
00052 
00053             if(a==1 || a==2 || a==4 || a==5 || a==6 || a==8 || a==9 || a==11 || a==12 || a==13)
00054             {
00055                 p.setPen(blackPen);
00056                 p.setBrush(blackBrush);
00057                 p.drawRect(x-halftonewidth,y0+keypad,2*halftonewidth,halftoneheight);
00058             }
00059         }
00060     }
00061     else
00062     {
00063         int div=(int)(w0/7.0);
00064         int halfheight=(int)(h0/2.0);
00065         int halftonewidth=(int)(div/3.0);
00066         int halftoneheight=(int)((halfheight-2*keypad)*0.66);
00067         for(int a=0;a<7;a++)
00068         {
00069             int x=x0+a*div;
00070 
00071             p.setPen(blackPen);
00072             p.setBrush(blackBrush);
00073             p.drawRect(x,y0,div,h0);
00074 
00075             p.setPen(whitePen);
00076             p.setBrush(whiteBrush);
00077             p.drawRect(x+keypad,y0+keypad,div-2*keypad,halfheight-2*keypad);
00078             p.drawRect(x+keypad,y0+keypad+halfheight,div-2*keypad,halfheight-2*keypad);
00079 
00080             if(a==1 || a==2 || a==4 || a==5 || a==6)
00081             {
00082                 p.setPen(blackPen);
00083                 p.setBrush(blackBrush);
00084                 p.drawRect(x-halftonewidth,y0+keypad,2*halftonewidth,halftoneheight);
00085                 p.drawRect(x-halftonewidth,y0+keypad+halfheight,2*halftonewidth,halftoneheight);
00086             }
00087         }
00088     }
00089 }
00090 //****************************************************************************
00091 void Menu::PianoScale::mousePressEvent(QMouseEvent* me)
00092 {
00093 }
00094 //****************************************************************************
00095 //****************************************************************************
00096 

Generated on Sat Nov 5 16:17:35 2005 for OPIE by  doxygen 1.4.2