File: intedit.cpp

package info (click to toggle)
odin 2.0.5-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,196 kB
  • sloc: cpp: 62,638; sh: 4,541; makefile: 779
file content (112 lines) | stat: -rw-r--r-- 2,955 bytes parent folder | download | duplicates (8)
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
102
103
104
105
106
107
108
109
110
111
112
#include <qslider.h>

#include "intedit.h"

#include <tjutils/tjstring.h> // for itos
#include <tjutils/tjcstd.h> // for strtol

intLineEdit::intLineEdit(int minValue, int maxValue, int value, QWidget *parent, const char *name, int width, int height ) {

  gle = new GuiLineEdit(parent, this, SLOT(emitSignal()), width, height);

   /* minValue & maxValue unused so far: */
  minValue=maxValue=0;

  set_value(value);
}

intLineEdit::~intLineEdit() {
  delete gle;
}

void intLineEdit::setintLineEditValue( int newValue ) {
  set_value(newValue);
}


void intLineEdit::emitSignal() {
  if(gle->is_modified()) {
    int value=atoi(gle->get_text());
    set_value(value);
    emit intLineEditValueChanged(value);
  }
}

void intLineEdit::set_value(int value) {
  gle->set_text( itos(value).c_str() );
}


//////////////////////////////////////////////////////////////



intLineBox::intLineBox(int value,QWidget *parent, const char *name )
 : QGroupBox(name,parent) {

  grid=new GuiGridLayout( this, 1, 1);

  le = new intLineEdit( 0, 0, value, this, "LineEdit", TEXTEDIT_WIDTH, TEXTEDIT_HEIGHT );

  grid->add_widget( le->get_widget(), 0, 0);

  connect(le,SIGNAL(intLineEditValueChanged( int )), this,SLOT(emitSignal( int )));
  connect(this,SIGNAL(SignalToChild( int )), le, SLOT(setintLineEditValue( int)));
}


void intLineBox::setintLineBoxValue( int newvalue ) {
  emit SignalToChild( newvalue );

}

void intLineBox::emitSignal( int newvalue ) {
  emit intLineBoxValueChanged(newvalue);
}


intLineBox::~intLineBox() {
  delete le;
  delete grid;
}


//////////////////////////////////////////////////////////////


intScientSlider::intScientSlider(int minValue, int maxValue, int Step, int value, QWidget *parent, const char *name )
 : QGroupBox(name, parent ) {

  grid=new GuiGridLayout( this, 1, 4);

  slider=new GuiSlider(this, minValue, maxValue, Step, value, int(((float)maxValue-(float)minValue)/20.0));

  le = new intLineEdit( minValue, maxValue, value, this, "LineEdit" , SLIDER_CELL_WIDTH, SLIDER_CELL_HEIGHT );

  grid->add_widget(slider->get_widget(), 0, 0, GuiGridLayout::Default, 1, 3 );
  grid->add_widget(le->get_widget(), 0, 3);

  // cross-wise connection of slider and line edit
  connect(slider->get_widget(), SIGNAL(valueChanged(int)), le, SLOT(setintLineEditValue(int)));
  connect(le, SIGNAL(intLineEditValueChanged(int)), slider->get_widget(), SLOT(setValue(int)));

  // emit signal whenever of one of both has been changed
  connect(slider->get_widget(),SIGNAL(valueChanged(int)), this,SLOT(emitSignal( int )));
  connect(le,SIGNAL(intLineEditValueChanged( int )), this,SLOT(emitSignal( int )));

}

void intScientSlider::setintScientSliderValue( int newvalue ) {
  slider->set_value(newvalue);
  le->setintLineEditValue(newvalue);
}

void intScientSlider::emitSignal( int newvalue ) {
  emit intScientSliderValueChanged(newvalue);
}

intScientSlider::~intScientSlider(){
  delete le;
  delete slider;
  delete grid;
}