Рекомендуется разработчикам аддонов использовать данную версию Lib. Dn. D в своих аддонах. В ближайшем будущем планируется добавления новых плюшек, в т. Это нужно только один раз, во время инициализации аддона, или позже, когда угодно. Повторные вызовы для того же самого виджета на данный момент нежелательны. Пример: Dn. D. Init( wt. Main. Panel ). Всё, Drag& Drop УЖЕ работает )Функция Dn.
D. Init()Синтаксис: Dn. D. Init( wt. Movable, wt. Reacting, f. Use.
Cfg, f. Locked. To. Screen. Area, Padding, Kb. Flag, Cursor )Обязательные параметры: 1) wt. Movable - ссылка на Widget. Виджет, КОТОРЫЙ нужно перемещать. НЕобязательные параметры (могут быть nil, или их можно вообще не писать): 2) wt. Reacting - ссылка на Widget (nil = wt.
Movable). Виджет, на который привязывается реакция, т. Это может быть сам wt. Lego 7639 Manual. Movable, то есть сама перетаскиваемая панель, но НЕ обязательно (!), это может быть что угодно, например, ЗАГОЛОВОК ОКНА, . Если не указан - виджет wt. Movable перемещается сам за себя.
Use. Cfg - true/false (nil = false). Сохранять ли позицию виджета в конфиг- файл User. Если да, то сохранит в таблице с именем . Рекомендуется, чтобы все родительские виджеты wt.
Movable имели осмысленные, не динамические, уникальные имена. Locked. To. Parent. Area - true/false (nil = true). Если true, то передвигаемый виджет нельзя даже частично утащить за края родительского окна (чаще всего ими являются края экрана).
Таким образом он всегда будет находиться целиком на экране (если не переопределено в параметре Padding, см. А если false, то его можно утащить полностью, точно так же, как можно утаскивать окна в ОС Microsuxx Windows.
Padding - число или таблица из 4 чисел . Если хотите, чтобы за край окна всё- таки можно было частично утащить wt. Movable на какую- то глубину, то можете заполнить таблицу.
Например, это сделано в аддонах . Там эта таблица заполнена отрицательными числами, вот так: . В случае передачи числа в качестве параметра, оно будет использовано в качестве глубины по всем направлениям. Kb. Flag - флаги управляющих клавиш KBF. Но если возникнет необходимость . Она меняет статус виждета, перманентно разрешающий или запрещающий его Drag& Drop. Если позже вам потребуется снова разблокировать его (снова сделать перетаскиваемым), то сделайте это командой Dn.
D. Enable( Ваш. Виждет, true ). Функция Dn. D. Enable() может потребоваться вам, например, если вы захотите сделать в своём аддоне полноценную поддержку событий аддона Addon. Manager. Подробнее об этом написано здесь: Поддержка событий Addon. Manager в других аддонах. Функция Dn. D. Is. Dragging()Синтаксис: Dn. Образец Уведомления О Расторжении Трудового Договора По Инициативе Работодателя. D. Is. Dragging()Если в вашем аддоне есть перетаскиваемые кнопки (такие есть, например, в аддонах .
Чтобы при перетаскивании такой кнопки, ИЗБЕЖАТЬ нажатие на неё, вставьте такую строку в начало кода реакции на нажатие кнопки: if Dn. D. Is. Dragging() then return end. Функция Dn. D. Remove()Синтаксис: Dn. D. Remove( wt. Widget )1) wt. Widget - ссылка на Widget. Виджет, который нужно разрегистрировать в системе Dn. D, чтобы его можно было безопасно уничтожить с помощью Destroy.
Widget. Передавать надо именно тот виджет, который собираетесь уничтожать. На данный момент не проверяет, зарегистрированы ли в системе дочерние по отношению к wt. Widget виджеты, поэтому, если вы их регистрировали, то необходимо вызывать Dn. D. Remove и для них. Пример: for . Именно добавлены.
То есть, тупой перезаписи одной таблицы поверх другой эта функция НЕ делает. Set. Config( . 3 9.