1#ifdef NANOGUI_PYTHON
2
3#include "python.h"
4
5DECLARE_WIDGET(StackedWidget);
6DECLARE_WIDGET(TabHeader);
7DECLARE_WIDGET(TabWidget);
8
9void register_tabs(py::module &m) {
10 py::class_<StackedWidget, Widget, ref<StackedWidget>, PyStackedWidget>(m, "StackedWidget", D(StackedWidget))
11 .def(py::init<Widget *>(), D(StackedWidget, StackedWidget))
12 .def("selectedIndex", &StackedWidget::selectedIndex, D(StackedWidget, selectedIndex))
13 .def("setSelectedIndex", &StackedWidget::setSelectedIndex, D(StackedWidget, setSelectedIndex));
14
15 py::class_<TabHeader, Widget, ref<TabHeader>, PyTabHeader>(m, "TabHeader", D(TabHeader))
16 .def(py::init<Widget *, const std::string &>(), D(TabHeader, TabHeader))
17 .def("setFont", &TabHeader::setFont, D(TabHeader, setFont))
18 .def("font", &TabHeader::font, D(TabHeader, font))
19 .def("overflowing", &TabHeader::overflowing, D(TabHeader, overflowing))
20 .def("callback", &TabHeader::callback, D(TabHeader, callback))
21 .def("setCallback", &TabHeader::setCallback, D(TabHeader, setCallback))
22 .def("activeTab", &TabHeader::activeTab, D(TabHeader, activeTab))
23 .def("setActiveTab", &TabHeader::setActiveTab, D(TabHeader, setActiveTab))
24 .def("addTab", (void (TabHeader::*)(const std::string &)) &TabHeader::addTab, D(TabHeader, addTab))
25 .def("addTab", (void (TabHeader::*)(int index, const std::string &)) &TabHeader::addTab, D(TabHeader, addTab, 2))
26 .def("removeTab", (int (TabHeader::*)(const std::string &)) &TabHeader::removeTab, D(TabHeader, removeTab))
27 .def("removeTab", (void (TabHeader::*)(int index)) &TabHeader::removeTab, D(TabHeader, removeTab, 2))
28 .def("tabLabelAt", &TabHeader::tabLabelAt, D(TabHeader, tabLabelAt))
29 .def("tabIndex", &TabHeader::tabIndex, D(TabHeader, tabIndex))
30 .def("ensureTabVisible", &TabHeader::ensureTabVisible, D(TabHeader, ensureTabVisible));
31
32 py::class_<TabWidget, Widget, ref<TabWidget>, PyTabWidget>(m, "TabWidget", D(TabWidget))
33 .def(py::init<Widget *>(), D(TabWidget, TabWidget))
34 .def("setActiveTab", &TabWidget::setActiveTab, D(TabWidget, setActiveTab))
35 .def("activeTab", &TabWidget::activeTab, D(TabWidget, activeTab))
36 .def("tabCount", &TabWidget::tabCount, D(TabWidget, tabCount))
37 .def("setCallback", &TabWidget::setCallback, D(TabWidget, setCallback))
38 .def("callback", &TabWidget::callback, D(TabWidget, callback))
39 .def("addTab", (void (TabWidget::*)(const std::string &, Widget *)) &TabWidget::addTab, D(TabWidget, addTab))
40 .def("addTab", (void (TabWidget::*)(int index, const std::string &, Widget *)) &TabWidget::addTab, D(TabWidget, addTab, 2))
41 .def("createTab", (Widget *(TabWidget::*)(const std::string &)) &TabWidget::createTab, D(TabWidget, createTab))
42 .def("createTab", (Widget *(TabWidget::*)(int index, const std::string &)) &TabWidget::createTab, D(TabWidget, createTab, 2))
43 .def("removeTab", (bool (TabWidget::*)(const std::string &)) &TabWidget::removeTab, D(TabWidget, removeTab))
44 .def("removeTab", (void (TabWidget::*)(int index)) &TabWidget::removeTab, D(TabWidget, removeTab, 2))
45 .def("tabLabelAt", &TabWidget::tabLabelAt, D(TabWidget, tabLabelAt))
46 .def("tabIndex", &TabWidget::tabIndex, D(TabWidget, tabIndex))
47 .def("tab", (Widget * (TabWidget::*)(const std::string &)) &TabWidget::tab, D(TabWidget, tab))
48 .def("tab", (Widget * (TabWidget::*)(int)) &TabWidget::tab, D(TabWidget, tab))
49 .def("ensureTabVisible", &TabWidget::ensureTabVisible, D(TabWidget, ensureTabVisible));
50}
51
52#endif
53