git-svn-id: svn://db.shs.com.ru/pip@43 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
2015-03-26 11:51:43 +00:00
parent d789623b9f
commit 8c051235aa
6 changed files with 11 additions and 5 deletions

View File

@@ -161,6 +161,7 @@ void PIScreenTile::sizeHint(int & w, int & h) const {
if (direction == Horizontal) w += sl;
else h += sl;
piForeachC (PIScreenTile * t, tiles) {
if (!t->visible) continue;
int cw(0), ch(0);
t->sizeHint(cw, ch);
cw = piClampi(cw, t->minimumWidth, t->maximumWidth);

View File

@@ -95,8 +95,10 @@ void TileList::sizeHint(int & w, int & h) const {
void TileList::drawEvent(PIScreenDrawer * d) {
lhei = height - 2;
int osp = piMini(3, lhei / 4);
int is = piClampi(offset, 0, piMaxi(0, content.size_s() - 1)), ie = piClampi(offset + lhei, 0, content.size_s());
if (is > 0) d->drawText(x, y, PIString(" /\\ ").repeat(width / 4), Green, Default, Bold);
//piCout << is << ie << offset << lhei << content.size_s();
for (int i = is; i < ie; ++i) {
Row & r(content[i]);
bool sel = i == cur && has_focus;
@@ -178,6 +180,7 @@ bool TileList::keyEvent(PIKbdListener::KeyEvent key) {
if (cur >= content.size_s()) cur = content.size_s() - 1;
if (cur - offset >= lhei - osp) offset += oo;
if (offset >= content.size_s() - lhei) offset = content.size_s() - lhei;
if (offset < 0) offset = 0;
return true;
case PIKbdListener::Home:
cur = offset = 0;
@@ -185,6 +188,7 @@ bool TileList::keyEvent(PIKbdListener::KeyEvent key) {
case PIKbdListener::End:
cur = content.size_s() - 1;
offset = content.size_s() - lhei;
if (offset < 0) offset = 0;
return true;
case PIKbdListener::Return:
if (cur >= 0 && cur < content.size_s())

View File

@@ -4,7 +4,7 @@
extern PIScreen screen;
Daemon::Daemon(): PIPeer("_pisd_" + PISystemInfo::instance()->hostname + "_" + PIString(rand() % 100)) {
Daemon::Daemon(): PIPeer("_pisd_" + PISystemInfo::instance()->hostname + "_" + PIString(rand() % 100)), fm(this) {
setName("Daemon");
timer.setName("__S__Daemon_timer");
mode = offset = cur = height = 0;
@@ -58,6 +58,7 @@ void Daemon::hideAll() {
list_actions->hide();
tile_info->hide();
list_daemons->hide();
tile_fm->hide();
}

View File

@@ -82,8 +82,8 @@ private:
PISystemMonitor sys_mon_other;
HostInfo info_my, info_other;
FileManager fm;
PIScreenTile * tile_root;
TileSimple * tile_info, * tile_fm, * tile_header;
PIScreenTile * tile_root, * tile_fm;
TileSimple * tile_info, * tile_header;
TileList * list_daemons, * list_actions;
int mode, offset, cur, height;

View File

@@ -9,7 +9,7 @@ class Daemon;
class FileManager: public PIObject {
PIOBJECT(FileManager)
public:
FileManager(Daemon * d);
FileManager(Daemon * d = 0);
PIScreenTile * tile() const;

View File

@@ -33,7 +33,7 @@ _Init _pisd_init;
PIScreen screen(false);
PISystemMonitor sys_mon;
Daemon daemon_;
FileManager file_manager(&daemon_);
FileManager file_manager;
class MainMenu: public PITimer {