File: rlistboxitem.cpp

package info (click to toggle)
qcad 1.3.3-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 4,504 kB
  • ctags: 2,449
  • sloc: cpp: 29,400; makefile: 49; sh: 15
file content (85 lines) | stat: -rw-r--r-- 1,767 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/***************************************************************************
                          rlistboxitem.cpp  -  description
                             -------------------
    begin                : Mon Sep 27 1999
    copyright            : (C) 1999 by Andreas Mustun
    email                : andrew@ribbonsoft.com
 ***************************************************************************/


/****************************************************************************
** rlistboxitem.cpp 1998/09/06 A. Mustun RibbonSoft
**
** Copyright (C) 1998 RibbonSoft.  All rights reserved.
**
*****************************************************************************/

#include <qpainter.h>

#include "rlistboxitem.h"

// Constructor:
//
RListBoxItem::RListBoxItem(const char* _text, const QPixmap _pixmap)
  : QListBoxItem(), pm(_pixmap)
{
  setText(_text);
}



// Destructor:
//
RListBoxItem::~RListBoxItem()
{

}


// Paint the item (text & pixmap):
//
void 
RListBoxItem::paint(QPainter *_painter)
{
  _painter->drawPixmap(3, 0, pm);
  QFontMetrics fm = _painter->fontMetrics();
  int yPos;                       // vertical text position
  if(pm.height() < fm.height()) {
    yPos = fm.ascent() + fm.leading()/2;
  }
  else {
    yPos = pm.height()/2 - fm.height()/2 + fm.ascent();
  }
  _painter->drawText( pm.width() + 5, yPos, text() );
}



// Get the height of this item:
//
int 
RListBoxItem::height(const QListBox* lb) const
{
  int textHeight=lb->fontMetrics().lineSpacing()+1;
  if(pm.height() > textHeight) {
    return pm.height();
  }
  else {
    return textHeight;
  }
}



// Get the width of this item:
//
int 
RListBoxItem::width(const QListBox* lb) const
{
  return pm.width() + lb->fontMetrics().width(text()) + 6;
}


// EOF