Библиотека сайта rus-linux.net
Программирование с использованием gtkmm 3. Виджет древовидного представления данных (TreeView)
Оригинал: Programming with gtkmm 3
Авторы: Murray Cumming, Bernhard Rieder, Jonathon Jongsma, Ole Laursen, Marko Anastasov, Daniel Elstner, Chris Vine, David King, Pedro Ferreira, Kjell Ahlstedt
Перевод: А.Панин
9.8.4. Захват и перемещение элементов (Drag and Drop)
Данный пример очень похож на пример работы с моделью представления данных для хранения деревьев, но в данном случае используются еще 2 дополнительных столбца, которые предназначены для указания на то, может ли строка захватываться и может ли она принимать захваченные и перемещаемые строки. В примере используется унаследованный от класса Gtk::TreeStore
класс, в котором реализовано перекрытие виртуальных методов таким способом, как это описано в разделе "Механизм захвата и перемещения элементов Drag and Drop".
Рисунок 9-6: Виджет древовидного представления данных с поддержкой захвата и перемещения строк
Файл: examplewindow.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: treemodel_dnd.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: examplewindow.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: main.cc
(Для работы совместно с gtkmm 3, а не с gtkmm 2)
Файл: treemodel_dnd.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
9.8.5. Всплывающие контекстные меню
Данный пример очень похож на пример использования модели представления данных для хранения списков (ListStore), но в нем создается унаследованный от класса Gtk::TreeView
дочерний класс, в котором реализуется перекрытие метода button_press_event
с инкапсуляцией кода модели представления данных. Обратитесь к разделу "Всплывающее контекстное меню" для ознакомления с подробностями реализации.
Рисунок 9-7: Виджет древовидного представления данных с всплывающим контекстным меню
Файл: examplewindow.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: treeview_withpopup.h
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: treeview_withpopup.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: examplewindow.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Файл: main.cc
(Для использования совместно с gtkmm 3, а не с gtkmm 2)
Следующий раздел : 10. Раскрывающиеся списки (Combo Boxes).