3 #include <lib/gui/slider.h>
4 #include <lib/gui/ebutton.h>
5 #include <lib/gui/elabel.h>
6 #include <lib/gui/combobox.h>
7 #include <lib/gui/enumber.h>
8 #include <lib/gui/echeckbox.h>
9 #include <lib/gui/eskin.h>
10 #include <lib/gui/actions.h>
11 #include <lib/system/econfig.h>
12 #include <lib/base/i18n.h>
13 #include <lib/dvb/dvbwidgets.h>
14 #include <lib/driver/rc.h>
16 #include <enigma_main.h>
18 void eZapRCSetup::repeatChanged( int i
)
20 eDebug("Repeat rate changed to %i", i
);
25 void eZapRCSetup::delayChanged( int i
)
27 eDebug("Repeat delay changed to %i", i
);
32 void eZapRCSetup::update()
34 eRCInput::getInstance()->config
.set(rdelay
, rrate
);
37 eZapRCSetup::eZapRCSetup()
43 void eZapRCSetup::init_eZapRCSetup()
45 setText(_("Remotecontrol Setup"));
46 cmove(ePoint(140, 136));
47 cresize(eSize(470, 335));
49 int fd
=eSkin::getActive()->queryValue("fontsize", 20);
51 eConfig::getInstance()->getKey("/ezap/rc/repeatRate", rrate
);
52 eConfig::getInstance()->getKey("/ezap/rc/repeatDelay", rdelay
);
55 lrrate
=new eLabel(this);
56 lrrate
->setText(_("Repeat Rate:"));
57 lrrate
->move(ePoint(20, 20));
58 lrrate
->resize(eSize(170, fd
+4));
60 lrdelay
=new eLabel(this);
61 lrdelay
->setText(_("Repeat Delay:"));
62 lrdelay
->move(ePoint(20, 60));
63 lrdelay
->resize(eSize(170, fd
+4));
65 srrate
=new eSlider(this, lrrate
, 0, 250 );
66 srrate
->setName("rrate");
67 srrate
->move(ePoint(200, 20));
68 srrate
->resize(eSize(220, fd
+4));
69 srrate
->setHelpText(_("change remote control repeat rate\nleft => less, right => more (... repeats)"));
70 CONNECT( srrate
->changed
, eZapRCSetup::repeatChanged
);
72 srdelay
=new eSlider(this, lrdelay
, 0, 1000 );
73 srdelay
->setName("rdelay");
74 srdelay
->move(ePoint(200, 60));
75 srdelay
->resize(eSize(220, fd
+4));
76 srdelay
->setHelpText(_("change remote control repeat delay\nleft => shorter, right => longer (...delay)"));
77 CONNECT( srdelay
->changed
, eZapRCSetup::delayChanged
);
79 lrcStyle
=new eLabel(this);
80 lrcStyle
->move(ePoint(20, 100));
81 lrcStyle
->resize(eSize(220, fd
+4));
82 lrcStyle
->setText("Remotecontrol Style:");
83 rcStyle
=new eComboBox(this, 4, lrcStyle
);
84 rcStyle
->move(ePoint(20, 140));
85 rcStyle
->resize(eSize(220, 35));
86 rcStyle
->setHelpText(_("select your favourite RC style (ok)"));
88 CONNECT( rcStyle
->selchanged
, eZapRCSetup::styleChanged
);
89 eListBoxEntryText
*current
=0;
90 const std::set
<eString
> &activeStyles
=eActionMapList::getInstance()->getCurrentStyles();
91 for (std::map
<eString
, eString
>::const_iterator
it(eActionMapList::getInstance()->getExistingStyles().begin())
92 ; it
!= eActionMapList::getInstance()->getExistingStyles().end(); ++it
)
94 if (activeStyles
.find(it
->first
) != activeStyles
.end())
96 current
= new eListBoxEntryText( *rcStyle
, it
->second
, (void*) &it
->first
);
100 new eListBoxEntryText( *rcStyle
, it
->second
, (void*) &it
->first
);
103 rcStyle
->setCurrent( current
);
105 lNextCharTimeout
= new eLabel(this);
106 lNextCharTimeout
->move(ePoint(20,185));
107 lNextCharTimeout
->resize(eSize(300,35));
108 lNextCharTimeout
->setText(_("Next Char Timeout:"));
111 if (eConfig::getInstance()->getKey("/ezap/rc/TextInputField/nextCharTimeout", t
) )
113 NextCharTimeout
= new eNumber(this,1,0,3999,4,0,0,lNextCharTimeout
);
114 NextCharTimeout
->move(ePoint(335,180));
115 NextCharTimeout
->resize(eSize(65,35));
116 NextCharTimeout
->loadDeco();
117 NextCharTimeout
->setHelpText(_("cursor to next char timeout(msek) in textinputfields"));
118 NextCharTimeout
->setNumber(t
);
119 CONNECT(NextCharTimeout
->selected
, eZapRCSetup::nextField
);
121 ok
=new eButton(this);
122 ok
->setText(_("save"));
123 ok
->setShortcut("green");
124 ok
->setShortcutPixmap("green");
125 ok
->move(ePoint(20, clientrect
.height()-100));
126 ok
->resize(eSize(220, 40));
127 ok
->setHelpText(_("save changes and return"));
129 CONNECT(ok
->selected
, eZapRCSetup::okPressed
);
131 statusbar
=new eStatusBar(this);
132 statusbar
->move( ePoint(0, clientrect
.height()-50 ) );
133 statusbar
->resize( eSize( clientrect
.width(), 50) );
134 statusbar
->loadDeco();
136 srdelay
->setValue(rdelay
);
137 srrate
->setValue(rrate
);
141 eZapRCSetup::~eZapRCSetup()
145 void eZapRCSetup::nextField(int *)
147 focusNext(eWidget::focusDirNext
);
150 void eZapRCSetup::styleChanged( eListBoxEntryText
* e
)
154 eActionMapList::getInstance()->deactivateStyle( curstyle
);
155 eActionMapList::getInstance()->activateStyle( curstyle
= *(eString
*)e
->getKey() );
159 void eZapRCSetup::okPressed()
161 // save current selected style
162 eConfig::getInstance()->setKey("/ezap/rc/style", curstyle
.c_str());
164 eZap::getInstance()->getServiceSelector()->setKeyDescriptions();
167 rrate
= 250 - srrate
->getValue();
168 eConfig::getInstance()->setKey("/ezap/rc/repeatRate", rrate
);
169 eConfig::getInstance()->setKey("/ezap/rc/repeatDelay", rdelay
);
170 unsigned int t
= (unsigned int) NextCharTimeout
->getNumber();
171 eConfig::getInstance()->setKey("/ezap/rc/TextInputField/nextCharTimeout", t
);
172 eConfig::getInstance()->flush();
176 int eZapRCSetup::eventHandler( const eWidgetEvent
& e
)
180 case eWidgetEvent::execDone
:
182 eConfig::getInstance()->getKey("/ezap/rc/repeatRate", rrate
);
183 eConfig::getInstance()->getKey("/ezap/rc/repeatDelay", rdelay
);
187 return eWindow::eventHandler( e
);
192 void eZapRCSetup::setStyle()
194 eActionMapList::getInstance()->deactivateStyle(curstyle
);
197 if (eConfig::getInstance()->getKey("/ezap/rc/style", style
) )
198 eActionMapList::getInstance()->activateStyle("default");
201 eActionMapList::getInstance()->activateStyle( style
);