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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
/***************************************************************************
* Copyright (C) 2003-2004 by *
* Unai Garro ([email protected]) *
* Jason Kivlighn ([email protected]) *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef CONVERSIONTABLE_H
#define CONVERSIONTABLE_H
#include <tqstring.h>
#include <tqtable.h>
#include <tqobject.h>
#include "datablocks/unitratio.h"
#include "datablocks/elementlist.h"
#include "datablocks/unit.h"
/**
@author Unai Garro
*/
class ConversionTable: public TQTable
{
TQ_OBJECT
public:
ConversionTable( TQWidget* parent, int maxrows, int maxcols );
~ConversionTable();
void createNewItem( int r, int c, double amount );
void setUnitIDs( const IDList &idList );
void setRatio( int ingID1, int ingID2, double ratio );
void setRatio( const UnitRatio &r )
{
setRatio( r.uID1, r.uID2, r.ratio );
}
int getUnitID( int rc );
TQString text( int r, int c ) const; //Reimplement, otherwise it won't work this way
void resize( int r, int c );
void clear( void );
private:
//Internal Variables
double editBoxValue;
TQIntDict<TQTableItem> items;
TQIntDict<TQWidget> widgets;
IDList unitIDs; // unit ID list to know the units by ID, not name
//Internal Methods
void resizeData( int )
{}
;
TQTableItem *item( int r, int c ) const;
void setItem( int r, int c, TQTableItem *i );
void clearCell( int r, int c );
void takeItem( TQTableItem *item );
void insertWidget( int r, int c, TQWidget *w );
TQWidget *cellWidget( int r, int c ) const;
void clearCellWidget( int r, int c );
void initTable();
void swapRows( int, int, bool );
void swapColumns( int, int, bool );
void swapCells( int, int, int, int );
protected:
TQWidget* beginEdit ( int row, int col, bool replace );
private slots:
void repaintCell( int r, int c );
void unitRemoved( int );
void unitCreated( const Unit& );
signals:
void ratioChanged( int row, int col, double value );
void ratioRemoved( int row, int col );
};
class ConversionTableItem: public TQObject, public TQTableItem
{
TQ_OBJECT
public:
ConversionTableItem( TQTable *t, EditType et );
TQWidget *createEditor() const;
void setContentFromEditor( TQWidget *w );
void setText( const TQString &s );
void paint( TQPainter *p, const TQColorGroup &cg, const TQRect &cr, bool selected );
void setTextAndSave( const TQString &s );
int alignment() const
{
return TQt::AlignRight;
}
signals:
void ratioChanged( int row, int col, double value );
void ratioRemoved( int row, int col );
void signalRepaintCell( int r, int c );
};
#endif
|