PureBasic

TreeGadget()

Синтаксис

Result = TreeGadget(#Gadget , x , y , Width , Height [, Flags])

Описание


Создает Гаджет "Дерево элементов" (Tree Gadget) в текущем списке Гаджетов (GadgetList).

Параметры

#Gadget Номер для идентификации нового Гаджета. В качестве этого параметра можно использовать значение #PB_Any, чтобы сгенерировать этот Номер автоматически.
x, y, Width, Height Позиция и размеры нового Гаджета.
Flags (дополн.) Флаги, позволяющие изменить поведение Гаджета. Этот параметр может быть комбинацией следующих значение (с помощью оператора '|'):
  #PB_Tree_AlwaysShowSelection : Даже если Гаджет не активирован, выбор по-прежнему отображается.
  #PB_Tree_NoLines             : Скрыть черточки между всеми узлами.
  #PB_Tree_NoButtons           : Скрыть кнопки '+' узлов.
  #PB_Tree_CheckBoxes          : Добавляет чекбокс (флажок) перед каждым элементом.
  #PB_Tree_ThreeState          : Флажки могут иметь "Промежуточное" состояние.
Флаг #PB_Tree_ThreeState можно использовать в сочетании с флагом #PB_Tree_CheckBoxes, чтобы получить чек-боксы (флажки), которые могут иметь состояние "включено", "выключено" и "промежуточное". Пользователь может выбрать только состояния "включено" или "выключено". Состояние "промежуточное" может быть установлено программно с помощью функции SetGadgetItemState().

Возвращаемое значение

Возвращает не нулевое значение в случае успешного создания Гаджета, в противном случае возвращает ноль. Если в качестве параметра #Gadget использовалось значение #PB_Any, то в случае успеха, возвращаемым значением будет сгенерированный Номер Гаджета.

Комментарии

Каждому элементу дерева присваивается значение подуровня, которое определяет его связь с элементом выше и ниже него. Элементы с одинаковым под-уровнем принадлежат одному узлу, элементы с более высоким под-уровнем - это дочерние элементы, и так далее. Это значение подуровня может использоваться для определения отношения между двумя элементами путем сравнения их значений подуровня. Параметр 'Flags' функции AddGadgetItem() всегда требуется для элементов TreeGadget и используется для установки подуровня, на котором должен быть добавлен новый элемент. Обратите внимание, что если функция вызывается со значением подуровня, в котором элемент не может быть добавлен, элемент будет добавлен на подуровне, где его можно добавить.

Примечание переводчика : Для функции TreeGadget() действия команд SetGadgetItemState() и SetGadgetState() пересекаются не так как в ListIconGadget() и ListViewGadget().
А именно: выделение наложенное на несколько элементов с помощью SetGadgetItemState() не снимается полностью при вызове функции SetGadgetState(), а снимается только с последнего выделенного элемента. Следующий вызов SetGadgetState() снимет выделение с предпоследнего выделенного элемента, и так далее, вероятно глюк. Проверено на 5.44 и 5.60.

Вы можете добавить 'Всплывающую мини-подсказку' к этому Гаджету с помощью функции GadgetToolTip().


Для работы с содержимым Дерева могут использоваться следующие функции:

- AddGadgetItem(): Добавляет элемент (с необязательным изображением в стандартном размере значка 16x16).
- RemoveGadgetItem(): Удаляет элемент (и все его дочерние элементы).
- ClearGadgetItems(): Удаляет все элементы.
- CountGadgetItems(): Возвращает количество элементов в текущем Гаджете.
- GetGadgetItemState(): Возвращает текущее состояние указанного элемента (Выделен/Развёрнут/Флажок...).
- SetGadgetItemState(): Изменяет текущее состояние указанного элемента (Выделен/Развёрнут/Флажок...).
- GetGadgetItemText(): Возвращает текст (имя) указанного элемента.
- SetGadgetItemText(): Изменяет текст (имя) указанного элемента.
- SetGadgetItemImage(): Изменяет текущее изображение указанного элемента.
- GetGadgetItemData(): Возвращает значение, которое было сохранено в указанном элементе.
- SetGadgetItemData(): Сохраняет заданное значение в указанном элементе Гаджета.
- GetGadgetItemColor(): Возвращает цвет текста или цвет фона элемента.
- SetGadgetItemColor(): Изменяет цвет текста или цвет фона элемента. (не поддерживается на MacOS X)
- GetGadgetState(): Возвращает индекс элемента, который является выбранным в данный момент, или -1 если ничего не выбрано (здесь выбранный не значит выделенный , например с помощью SetGadgetItemState() ).
- SetGadgetState(): Делает указанный элемент выделенным (все прочие выделенные элементы теряют этот статус (глюк)). 'State'- это индекс элемента, если задано -1, не один элемент не будет выделен.
- GetGadgetText(): Возвращает текст (имя) элемента, выбранного в данный момент в TreeGadget.
- SetGadgetText(): Изменяет текст (имя) элемента, выбранного в данный момент в TreeGadget.
- GetGadgetItemAttribute(): Со следующим атрибутом:
  #PB_Tree_SubLevel: Возвращает значение подуровня для данного элемента.
- GadgetItemID(): Возвращает дескриптор ОС (ID) указанного элемента (полезно для функций API).

Этот Гаджет поддерживает функции SetGadgetColor() и GetGadgetColor() со следующими значениями для параметра 'ColorType':
  #PB_Gadget_FrontColor: Цвет текста
  #PB_Gadget_BackColor : Цвет фона
Через EventType() поддерживаются следующие события:
  #PB_EventType_LeftClick : Клик левой кнопкой мыши на элементе, или галочка на чек-боксе установлена/снята. 
  #PB_EventType_LeftDoubleClick : Двойной клик левой кнопкой мыши на элементе.
  #PB_EventType_RightClick : Клик правой кнопкой мыши на элементе
  #PB_EventType_RightDoubleClick : Двойной Клик левой кнопкой мыши на элементе.
  #PB_EventType_Change: Текущий элемент изменен.
  #PB_EventType_DragStart: Пользователь попытался запустить операцию Drag & Drop.
После события #PB_EventType_DragStart библиотека Drag & Drop может использоваться для запуска операции Drag & Drop (Перетаскивание мышью).

Пример

If OpenWindow(0, 0, 0, 355, 200, "Гаджет Дерево Элементов", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    TreeGadget(0, 10, 10, 160, 180) ; Стандартный Гаджет "Дерево Элементов"
    TreeGadget(1, 180, 10, 160, 180, #PB_Tree_CheckBoxes | #PB_Tree_NoLines); "Дерево Элементов" с чек-боксами и без линий
    For ID = 0 To 1
        For a = 0 To 10
            AddGadgetItem(ID, -1, "обычный элемент "+Str(a), 0, 0) ; Если вы хотите добавить изображение,
            AddGadgetItem(ID, -1, "Узел "+Str(a), 0, 0) ; используйте ImageID(x) в качестве 4-го параметра
            AddGadgetItem(ID, -1, "Sub-элемент 1", 0, 1) ; Они находятся на первом подуровне
            AddGadgetItem(ID, -1, "Sub-элемент 2", 0, 1)
            AddGadgetItem(ID, -1, "Sub-элемент 3", 0, 1)
            AddGadgetItem(ID, -1, "Sub-элемент 4", 0, 1)
            AddGadgetItem(ID, -1, "Файл "+Str(a), 0, 0) ; Дополнительный уровень 0
        Next
    Next
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf


См. также

AddGadgetItem(), RemoveGadgetItem(), ClearGadgetItems(), CountGadgetItems(), GetGadgetItemState(), SetGadgetItemState(), GetGadgetItemText(), SetGadgetItemText(), SetGadgetItemImage(), GetGadgetItemData(), SetGadgetItemData(), GetGadgetState(), SetGadgetState(), GetGadgetText(), SetGadgetText(), GetGadgetItemAttribute(), GadgetItemID(), GetGadgetColor(), SetGadgetColor(), ExplorerTreeGadget()

Поддерживаемые OS

Все

<- TrackBarGadget() - Оглавление Gadget - UnbindGadgetEvent()->