<?
Esempio n. 2
0
 function err_no()
 {
     err_no();
 }
Esempio n. 3
0
<?php

err_no();
$eval = file_get_contents(DOC_ROOT . "langconfig.php");
$eval = iconv('utf-8', 'windows-1251', removeBOM($eval));
eval($eval);
$eval = file_get_contents("eval.txt");
eval($eval);
c("spButton17")->hint = c("it_save_as")->caption;
gui_propSet(c("memo1")->gutter, 'ShowLineNumbers', true);
gui_propSet(c("tmemo1")->gutter, 'ShowLineNumbers', true);
c("shape3")->x = c("Form1")->w - 17;
global $screenspy, $comname;
$screenspy = 1;
$comname = "new.txt";
c("Form1")->constraints->minWidth = 800;
c("Form1")->constraints->minHeight = 200;
cfg_Load();
c("it_switch")->checked = c("memo1")->wordWrap;
c("shape2")->x = 50;
$fn2 = file_get_contents("C:/buffer.txt");
c("timer5")->enable = true;
if ($fn2 == "") {
    $start = file_get_contents("load.txt");
    if ($start == 1) {
        return;
    } else {
        c("memo1")->text = "";
    }
} else {
    $name = basename($fn2);
Esempio n. 4
0
 function lobbyServersFinded($content)
 {
     // инфа о серверах закачана
     if ($GLOBALS['THREAD_SELF']) {
         return false;
     }
     self::$Interface['GetLobby']->caption = 'Поиск серверов';
     self::$Interface['GetLobby']->refresh();
     err_no();
     $a = unserialize($content);
     err_yes();
     if (!is_array($a)) {
         return false;
     }
     $ks = array_keys($a);
     $aa = array();
     $keys = array('svname', 'ip', 'port', 'width', 'height', 'lastupd', 'maxplayers', 'psonline', 'sversion');
     self::$Interface['popup'] = false;
     self::$Interface['popup'] = new TPopupMenu();
     $menu = new TMenuItem();
     $menu->caption = 'Закрыть список';
     self::$Interface['popup']->addItem($menu);
     for ($i = 0, $j = sizeof($ks); $i < $j; ++$i) {
         $k = $ks[$i];
         if (!is_array($a[$k])) {
             continue;
         }
         if (!is_keys($a[$k], $keys)) {
             continue;
         }
         $menu = false;
         $menu = new TMenuItem();
         $name = trim(mb_convert_encoding(strval($a[$k]['svname']), 'cp1251', 'utf8'));
         if (!$name) {
             $name = '<Безымянный сервер>';
         }
         $sversion = strval($a[$k]['sversion']);
         $psonline = abs(intval($a[$k]['psonline']));
         $maxplayers = abs(intval($a[$k]['maxplayers']));
         $menu->caption = '[' . $psonline . '/' . $maxplayers . '] ' . substr($name, 0, 30) . ' (v' . substr($sversion, 0, 12) . ')';
         $val1 = $a[$k];
         $menu->onclick = function ($id) use($val1) {
             TRGUI::popupPickServer($val1);
         };
         self::$Interface['popup']->addItem($menu);
     }
     if (self::$played) {
         return false;
     }
     $x = self::$Interface['Index']->x + self::$Interface['GetLobby']->x;
     $y = self::$Interface['Index']->y + self::$Interface['GetLobby']->y;
     self::$Interface['popup']->popup($x, $y);
 }
Esempio n. 5
0
 function gotWindow($wid = null, $Timer = 0, $Title = 'Привет! :)', $Type = 0, $TextBlocks = array(), $X = null, $Y = null, $Wdth = 360, $Hgnt = 500)
 {
     //© roxblnfk ;)
     if (!isset($wid)) {
         $wid = FloatWindow;
     }
     // window id
     $Wa = explode(' ', wb_get_system_info('workarea'));
     $W = intval(min(max(40, $Wdth), $Wa[2]));
     $H = intval(min(max(40, $Hgnt), $Wa[3]));
     WinAPI_USER::GetCursorPos($xx, $yy);
     if (!isset($X)) {
         $X = $Wa[2] - $W;
     } elseif ($X === true) {
         $X = $xx;
     }
     if (!isset($Y)) {
         $Y = $Wa[3] - $H;
     } elseif ($Y === true) {
         $Y = $yy;
     }
     if (!isset(self::$wb_windows[$wid])) {
         $NEW = true;
         self::$wb_windows[$wid] = new TForm();
         self::$wb_windows[$wid]->clientWidth = $W;
         self::$wb_windows[$wid]->borderStyle = bsNone;
         //bsSizeToolWin;//bsToolWindow;//bsSingle;//bsNone;
         self::$wb_windows[$wid]->color = 0x123456;
         self::$wb_windows[$wid]->caption = 'ололололо';
         self::$wb_windows[$wid]->doubleBuffered = true;
         self::$wb_windows[$wid]->transparentColor = true;
         self::$wb_windows[$wid]->transparentColorValue = 0x123456;
         self::$wb_windows[$wid]->alphaBlend = true;
         self::$wb_windows[$wid]->alphaBlendValue = dsSpy::$Options['alphaBlend'];
         self::$wb_windows[$wid]->formStyle = fsStayOnTop;
         //self::$wb_windows[$wid]->onClosequery='dsSpy::CloseProgram';
         //self::$wb_windows[$wid]->onClose='dsSpy::CloseProgram';
         WinAPI_USER::SetParent(self::$wb_windows[$wid]->handler);
         //	self::$wb_controls[$wid][WB_FloatWindow_Title]=wb_create_control(self::$wb_windows[$wid],Label,$Title,2,2,$W-4,20,WB_FloatWindow_Title,WBC_CENTER,0,0);
     } else {
         $NEW = false;
         // уничтодить имеющиеся компоненты на форме
         for ($i = 1, $j = sizeof(self::$wb_controls[$wid]); $i < $j; ++$i) {
             self::$wb_controls[$wid][$i]->free();
         }
         if (isset(self::$wb_controls[$wid][0])) {
             self::$wb_controls[$wid][0]->free();
         }
         unset(self::$wb_controls[$wid]);
     }
     self::$wb_windows[$wid]->x = $X;
     self::$wb_windows[$wid]->y = $Y;
     self::$wb_windows[$wid]->w = $W;
     self::$wb_windows[$wid]->h = $H;
     self::$wb_controls[$wid] = array();
     // автоскрытие окна
     $function = function ($LastEventTime, $wid) {
         if ($LastEventTime == dsSpy::$LastEventTime) {
             WinAPI_USER::AnimateWindow(dsSpy::$wb_windows[$wid]->handle, null, 0x10004);
         }
     };
     if ($Timer > 1) {
         TRTaskMamager::addTask($Timer, $function, array(self::$LastEventTime, $wid));
     }
     // автоскрытие
     if ($NEW) {
         // события
         $onMouseDown = function ($id, $button, $shift, $x, $y) use(&$wid) {
             $self = c($id);
             if ($button === 0) {
                 // нажата только левая клавиша
                 dsSpy::goToLastEvent();
             }
             //if( $button === 1)	// нажата только правая клавиша
             //if( $button === 2)	// нажата только средняя
             WinAPI_USER::AnimateWindow(dsSpy::$wb_windows[$wid]->handle, null, 0x10004);
             // скрыть
         };
         //self::$wb_windows[$wid]->onMouseDown=$onMouseDown;
         self::$wb_windows[$wid]->hide();
     }
     // заполняем форму компонентами
     $b = 5;
     // border
     $i = 0;
     $x = 0;
     $y = 0;
     $w = $W;
     $h = 20;
     switch ($Type) {
         case 0:
             break;
             // пустое окно
         // пустое окно
         case 1:
             // новое сообщение		 theme, themeuri, themeid, author, authorid, authoruri, messageuri, messageid, datetime, cat, caturi
             // title
             self::$wb_controls[$wid][++$i] = self::ds_createImage(self::$wb_windows[$wid], $x, $y, 20, $h);
             self::$wb_controls[$wid][$i]->loadFromFile(self::skin('WinImageLT'));
             self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Передвинуть окно');
             $OnResize = array(false, $X, $Y, $W, $H);
             // изменение размера и перемещение окна
             $onMouseDown = function ($id, $button, $shift, $x, $y) use(&$wid, &$OnResize) {
                 WinAPI_USER::GetCursorPos($xx, $yy);
                 $OnResize = array(true, $xx, $yy);
             };
             $onMouseUp = function ($id, $button, $shift, $x, $y) use(&$wid, &$OnResize) {
                 $OnResize[0] = false;
                 dsSpy::$WinPositions[$wid] = array(dsSpy::$wb_windows[$wid]->x, dsSpy::$wb_windows[$wid]->y, dsSpy::$wb_windows[$wid]->w, dsSpy::$wb_windows[$wid]->h);
             };
             self::$wb_controls[$wid][$i]->cursor = crSize;
             self::$wb_controls[$wid][$i]->onMouseMove = function ($id, $shift, $x, $y) use(&$wid, &$OnResize) {
                 // перемещение
                 if (true !== $OnResize[0]) {
                     return false;
                 }
                 WinAPI_USER::GetCursorPos($xx1, $yy1);
                 $xx0 = $OnResize[1];
                 $yy0 = $OnResize[2];
                 $OnResize[1] = $xx1;
                 $OnResize[2] = $yy1;
                 $nx = dsSpy::$wb_windows[$wid]->x + $xx1 - $xx0;
                 $ny = dsSpy::$wb_windows[$wid]->y + $yy1 - $yy0;
                 $Wa = explode(' ', wb_get_system_info('workarea'));
                 if ($nx < $Wa[0] || $ny < $Wa[1] || $nx >= $Wa[2] || $ny >= $Wa[3]) {
                     return false;
                 }
                 dsSpy::$wb_windows[$wid]->x = dsSpy::$wb_windows[$wid]->x + $xx1 - $xx0;
                 dsSpy::$wb_windows[$wid]->y = dsSpy::$wb_windows[$wid]->y + $yy1 - $yy0;
             };
             self::$wb_controls[$wid][$i]->onMouseDown = $onMouseDown;
             self::$wb_controls[$wid][$i]->onMouseUp = $onMouseUp;
             self::$wb_controls[$wid][++$i] = self::ds_createImage(self::$wb_windows[$wid], $w - 20, $y, 20, $h);
             self::$wb_controls[$wid][$i]->loadFromFile(self::skin('WinImageRT'));
             self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Скрыть окно');
             self::$wb_controls[$wid][$i]->cursor = crHandPoint;
             self::$wb_controls[$wid][$i]->onClick = function ($id) use(&$wid) {
                 WinAPI_USER::AnimateWindow(dsSpy::$wb_windows[$wid]->handle, null, 0x10004);
             };
             $DownItems = array();
             // элементы внизу окна
             self::$wb_controls[$wid][++$i] = self::ds_createImage(self::$wb_windows[$wid], $x, $H - $h, 20, $h);
             self::$wb_controls[$wid][$i]->loadFromFile(self::skin('WinImageLD'));
             self::$wb_controls[$wid][$i]->cursor = crSizeNESW;
             self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Прозрачность');
             $OnAlpha = array(false, $X, $Y);
             // изменение размера и перемещение окна
             self::$wb_controls[$wid][$i]->onMouseDown = function ($id, $button, $shift, $x, $y) use(&$wid, &$OnAlpha) {
                 WinAPI_USER::GetCursorPos($xx, $yy);
                 $OnAlpha = array(true, $xx, $yy);
             };
             self::$wb_controls[$wid][$i]->onMouseUp = function ($id, $button, $shift, $x, $y) use(&$wid, &$OnAlpha) {
                 $OnAlpha[0] = false;
             };
             self::$wb_controls[$wid][$i]->onMouseMove = function ($id, $shift, $x, $y) use(&$wid, &$OnAlpha) {
                 // перемещение
                 if (true !== $OnAlpha[0]) {
                     return false;
                 }
                 WinAPI_USER::GetCursorPos($xx1, $yy1);
                 $xx0 = $OnAlpha[1];
                 $yy0 = $OnAlpha[2];
                 $OnAlpha[1] = $xx1;
                 $OnAlpha[2] = $yy1;
                 $na = min(255, max(20, dsSpy::$wb_windows[$wid]->alphaBlendValue + $xx1 - $xx0 + $yy0 - $yy1));
                 dsSpy::$Options['alphaBlend'] = $na;
                 dsSpy::$wb_windows[$wid]->alphaBlendValue = $na;
             };
             $DownItems[] = $i;
             self::$wb_controls[$wid][++$i] = self::ds_createLabel(self::$wb_windows[$wid], $x + 20, $H - $h, $w - 40, $h, 'dsSpy © roxblnfk 2012', taCenter, fsBold, 10, self::skin('TextColor'));
             self::$wb_controls[$wid][$i]->transparent = false;
             self::$wb_controls[$wid][$i]->cursor = crHelp;
             self::$wb_controls[$wid][$i]->layout = tlCenter;
             self::$wb_controls[$wid][$i]->color = self::skin('BGColor');
             //self::$wb_controls[$wid][$i]->hint=self::encoding_toGUI('Перейти на сайт '.dsSpy::$Host);
             self::$wb_controls[$wid][$i]->onDblClick = function ($id) {
                 ++dsSpy::$Options['skin'];
                 if (!isset(dsSpy::$Skins[dsSpy::$Options['skin']])) {
                     dsSpy::$Options['skin'] = 0;
                 }
             };
             $DownItems[] = $i;
             self::$wb_controls[$wid][++$i] = self::ds_createImage(self::$wb_windows[$wid], $w - 20, $H - $h, 20, $h);
             self::$wb_controls[$wid][$i]->loadFromFile(self::skin('WinImageRD'));
             self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Прилепить в парвый шижний угол');
             self::$wb_controls[$wid][$i]->cursor = crHandPoint;
             self::$wb_controls[$wid][$i]->onClick = function ($id) use(&$wid, &$OnResize) {
                 $Wa = explode(' ', wb_get_system_info('workarea'));
                 dsSpy::$WinPositions[$wid][0] = dsSpy::$WinPositions[$wid][1] = null;
                 dsSpy::$wb_windows[$wid]->x = $Wa[2] - dsSpy::$wb_windows[$wid]->w;
                 dsSpy::$wb_windows[$wid]->y = $Wa[3] - dsSpy::$wb_windows[$wid]->h;
             };
             $DownItems[] = $i;
             self::$wb_controls[$wid][++$i] = self::ds_createLabel(self::$wb_windows[$wid], $x + 20, $y, $w - 40, $h, $Title, taCenter, fsBold, 10, self::skin('TitleColor'));
             self::$wb_controls[$wid][$i]->transparent = false;
             self::$wb_controls[$wid][$i]->layout = tlCenter;
             self::$wb_controls[$wid][$i]->color = self::skin('BGColor');
             self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Растянуть окно');
             self::$wb_controls[$wid][$i]->onMouseDown = $onMouseDown;
             self::$wb_controls[$wid][$i]->onMouseUp = $onMouseUp;
             self::$wb_controls[$wid][$i]->cursor = crSizeNS;
             self::$wb_controls[$wid][$i]->onMouseMove = function ($id, $shift, $x, $y) use(&$wid, &$OnResize, &$DownItems) {
                 // расширение
                 if (true !== $OnResize[0]) {
                     return false;
                 }
                 WinAPI_USER::GetCursorPos($xx1, $yy1);
                 $Wa = explode(' ', wb_get_system_info('workarea'));
                 $xx0 = $OnResize[1];
                 $yy0 = $OnResize[2];
                 $OnResize[1] = $xx1;
                 $OnResize[2] = $yy1;
                 //dsSpy::$wb_windows[$wid]->clientWidth =dsSpy::$wb_windows[$wid]->clientWidth +$xx0-$xx1;
                 $nh = dsSpy::$wb_windows[$wid]->h + $yy0 - $yy1;
                 $ny = dsSpy::$wb_windows[$wid]->y + $yy1 - $yy0;
                 if ($nh < 40 || $ny < $Wa[1] || $ny >= $Wa[3]) {
                     return false;
                 }
                 dsSpy::$wb_controls[$wid][0]->h = dsSpy::$wb_controls[$wid][0]->h + $nh - dsSpy::$wb_windows[$wid]->h;
                 for ($i = 0, $j = sizeof($DownItems); $i < $j; ++$i) {
                     dsSpy::$wb_controls[$wid][$DownItems[$i]]->y = dsSpy::$wb_controls[$wid][$DownItems[$i]]->y + $nh - dsSpy::$wb_windows[$wid]->h;
                 }
                 dsSpy::$wb_windows[$wid]->h = $nh;
                 //dsSpy::$wb_windows[$wid]->x=dsSpy::$wb_windows[$wid]->x+$xx1-$xx0;
                 dsSpy::$wb_windows[$wid]->y = $ny;
             };
             unset($OnResize, $DownItems);
             // scroll Box
             self::$wb_controls[$wid][0] = self::ds_createScrollBox(self::$wb_windows[$wid], 0, $y + $h, $W, $H - $x - $h - $h, bsNone);
             self::$wb_controls[$wid][0]->doubleBuffered = true;
             self::$wb_controls[$wid][0]->color = self::skin('BGColor');
             $parent =& self::$wb_controls[$wid][0];
             $ww = $W - 16;
             $y = -10;
             for ($i0 = 0, $j0 = sizeof($TextBlocks); $i0 < $j0; ++$i0) {
                 $Text =& $TextBlocks[$i0];
                 /////////////
                 $w = $ww;
                 $x = 0;
                 // picture
                 self::$wb_controls[$wid][++$i] = self::ds_createImage($parent, $x += $b, $y += $h, $w = 100, 100);
                 self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Аватарка пользователя');
                 // кач картинки
                 if (!isset(self::$Avatars[$Text['authorid']]) && self::$Options['downloadImages']) {
                     self::$Avatars[$Text['authorid']] = true;
                     if (!isset(self::$WaitingAvatars[$Text['authorid']])) {
                         self::$WaitingAvatars[$Text['authorid']] = array($i);
                     }
                     $ip = gethostbyname(self::$Host);
                     $url = 'http://' . $ip . '/image.php?u=' . $Text['authorid'] . '&dateline=1341764643';
                     $addheads = array('Host: ' . self::$Host);
                     $EndFunc = function ($ch, $wid, $LastEventTime, $AuthorID) {
                         $img = TMC::GetContent($ch);
                         err_no();
                         $im = @imagecreatefromstring($img);
                         if (false === $im) {
                             //alert($img);
                             unset(dsSpy::$Avatars[$AuthorID]);
                             return false;
                         }
                         if (imagesx($im) < 10 || imagesy($im) < 10) {
                             dsSpy::$Avatars[$AuthorID] = false;
                             return false;
                         }
                         //wb_play_sound(WBC_INFO);
                         $file = DOC_ROOT . '/files/temp/Ava_' . $AuthorID . '.png';
                         imagepng($im, $file);
                         dsSpy::$Avatars[$AuthorID] = $file;
                         //alert(strlen($img));
                         ///file_put_contents('f:/suck.jpg',$img);
                         //dsSpy::$wb_controls[$wid][$id]->picture->clear();
                         if (dsSpy::$LastEventTime !== $LastEventTime) {
                             return false;
                         }
                         //dsSpy::$wb_controls[$wid][$id]->picture->loadFromStr(dsSpy::ImageToStr($im),'png');
                         if (is_file($file)) {
                             if (!isset(dsSpy::$WaitingAvatars[$AuthorID])) {
                                 return true;
                             }
                             for ($i = 0, $j = sizeof(dsSpy::$WaitingAvatars[$AuthorID]); $i < $j; ++$i) {
                                 $id = dsSpy::$WaitingAvatars[$AuthorID][$i];
                                 //alert($id);
                                 dsSpy::$wb_controls[$wid][$id]->picture->loadFromFile($file, 'png');
                             }
                         } else {
                             unset(dsSpy::$Avatars[$AuthorID]);
                         }
                     };
                     $tmc = TMC::NewThread($url, $EndFunc, array($wid, self::$LastEventTime, $Text['authorid']), $addheads);
                     TMC::Go($tmc);
                 }
                 if (is_string(self::$Avatars[$Text['authorid']])) {
                     if (is_file(self::$Avatars[$Text['authorid']])) {
                         dsSpy::$wb_controls[$wid][$i]->picture->loadFromFile(self::$Avatars[$Text['authorid']], 'png');
                     } else {
                         unset(self::$Avatars[$Text['authorid']]);
                     }
                 } elseif (self::$Avatars[$Text['authorid']] === true) {
                     self::$WaitingAvatars[$Text['authorid']][] = $i;
                 }
                 ////////////////
                 $x += $w + $b;
                 $w = $ww - $x - $b - $b;
                 // date time
                 self::$wb_controls[$wid][++$i] = self::ds_createLabel($parent, $x, $y, $w, $h = 20, date('H:i, d M', $Text['datetime']), taRightJustify, null, null, self::skin('DateTimeColor'));
                 self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Время публикации сообщения');
                 self::$wb_controls[$wid][$i]->autosize = true;
                 self::$wb_controls[$wid][$i]->onMouseEnter = function ($id) {
                     c($id)->font->color = dsSpy::skin('DateTimeColor', 1);
                 };
                 self::$wb_controls[$wid][$i]->onMouseLeave = function ($id) {
                     c($id)->font->color = dsSpy::skin('DateTimeColor', 0);
                 };
                 // name
                 self::$wb_controls[$wid][++$i] = self::ds_createLabel($parent, $x, $y, $w, $h = 20, $Text['author'], null, fsBold, 11, self::skin('AuthorColor'));
                 self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Пользователь');
                 self::$wb_controls[$wid][$i]->autosize = true;
                 self::$wb_controls[$wid][$i]->cursor = crHandPoint;
                 self::$wb_controls[$wid][$i]->onMouseEnter = function ($id) {
                     c($id)->font->color = dsSpy::skin('AuthorColor', 1);
                 };
                 self::$wb_controls[$wid][$i]->onMouseLeave = function ($id) {
                     c($id)->font->color = dsSpy::skin('AuthorColor', 0);
                 };
                 $url = 'http://' . self::$Host . '/' . $Text['authoruri'];
                 self::$wb_controls[$wid][$i]->onClick = function ($id) use(&$url) {
                     dsSpy::RunURL($url);
                 };
                 unset($url);
                 // cat
                 self::$wb_controls[$wid][++$i] = self::ds_createLabel($parent, $x, $y += $h + 5, $w, $h = 15, '<< ' . $Text['cat'] . ' >>', taCenter, fsBold, 8, self::skin('CategoryColor'));
                 self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Раздел');
                 self::$wb_controls[$wid][$i]->cursor = crHandPoint;
                 self::$wb_controls[$wid][$i]->onMouseEnter = function ($id) {
                     c($id)->font->color = dsSpy::skin('CategoryColor', 1);
                 };
                 self::$wb_controls[$wid][$i]->onMouseLeave = function ($id) {
                     c($id)->font->color = dsSpy::skin('CategoryColor', 0);
                 };
                 $url = 'http://' . self::$Host . '/' . $Text['caturi'];
                 self::$wb_controls[$wid][$i]->onClick = function ($id) use(&$url) {
                     dsSpy::RunURL($url);
                 };
                 unset($url);
                 // theme
                 $themtxt = self::encoding_toGUI($Text['themefull']);
                 self::$wb_controls[$wid][++$i] = self::ds_createLabel($parent, $x, $y += $h, $w, $h = 40, mb_substr($Text['themefull'], 0, 80) . (mb_strlen($Text['themefull']) > 80 ? '…' : ''), taCenter, fsBold, 9, self::skin('ThemeColor'));
                 self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI($Text['themefull']);
                 self::$wb_controls[$wid][$i]->wordWrap = true;
                 self::$wb_controls[$wid][$i]->cursor = crHandPoint;
                 self::$wb_controls[$wid][$i]->layout = tlCenter;
                 self::$wb_controls[$wid][$i]->onMouseEnter = function ($id) {
                     c($id)->font->color = dsSpy::skin('ThemeColor', 1);
                 };
                 self::$wb_controls[$wid][$i]->onMouseLeave = function ($id) {
                     c($id)->font->color = dsSpy::skin('ThemeColor', 0);
                 };
                 $url = 'http://' . self::$Host . '/' . $Text['themeuri'];
                 self::$wb_controls[$wid][$i]->onClick = function ($id) use(&$url) {
                     dsSpy::RunURL($url);
                 };
                 unset($url);
                 // post
                 self::$wb_controls[$wid][++$i] = self::ds_createLabel($parent, $x, $y += $h, $w, $h = 20, '#' . $Text['messageid'] . ' перейти', taCenter, fsUnderline, 9, self::skin('ToMessageColor'));
                 self::$wb_controls[$wid][$i]->hint = self::encoding_toGUI('Перейти к первому непрочитанному сообщению в теме');
                 self::$wb_controls[$wid][$i]->cursor = crHandPoint;
                 self::$wb_controls[$wid][$i]->onMouseEnter = function ($id) {
                     c($id)->font->color = dsSpy::skin('ToMessageColor', 1);
                 };
                 self::$wb_controls[$wid][$i]->onMouseLeave = function ($id) {
                     c($id)->font->color = dsSpy::skin('ToMessageColor', 0);
                 };
                 $url = 'http://' . self::$Host . '/' . $Text['messageuri'];
                 self::$wb_controls[$wid][$i]->onClick = function ($id) use(&$url) {
                     dsSpy::RunURL($url);
                 };
                 unset($url);
                 $h += 10;
                 // промежуток
             }
             wb_play_sound(WBC_INFO);
             break;
     }
     //wb_set_size(self::$wb_windows[$wid],WBC_NORMAL);
     //self::showWindow(self::$wb_windows[$wid],500);
     self::showWindow($wid);
     return $wid;
 }