File: ads_globals.sip

package info (click to toggle)
qt-advanced-docking-system 3.8.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 13,600 kB
  • sloc: cpp: 11,678; python: 2,623; makefile: 12
file content (138 lines) | stat: -rw-r--r-- 3,277 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
%Import QtWidgets/QtWidgetsmod.sip

%If (Qt_5_0_0 -)

%ModuleHeaderCode
PyObject *qtads_FindParent(PyObject* type, const QWidget *child);
%End

%ModuleCode
PyObject *qtads_FindParent(PyObject* type, const QWidget *w)
{
    // Check that the types checking was successful.
    if (!type)
        return 0;
   
    QWidget* parentWidget = w->parentWidget();

    while (parentWidget)
    {
        PyObject *ParentImpl = sipConvertFromType(parentWidget, sipType_QObject, 0);
        if (!ParentImpl)
        {
            return 0;
        }
            
        if (PyObject_IsInstance(ParentImpl, type))
            return ParentImpl;
        
        Py_DECREF(ParentImpl);
        
        parentWidget = parentWidget->parentWidget();
    }
    
    Py_INCREF(Py_None);
    return Py_None;
}
%End

namespace ads
{
    %TypeHeaderCode
    #include <ads_globals.h>
    %End

    enum DockWidgetArea
    {
        NoDockWidgetArea,
        LeftDockWidgetArea,
        RightDockWidgetArea,
        TopDockWidgetArea,
        BottomDockWidgetArea,
        CenterDockWidgetArea,

        InvalidDockWidgetArea,
        OuterDockAreas,
        AllDockAreas
    };
    typedef QFlags<ads::DockWidgetArea> DockWidgetAreas;


    enum TitleBarButton
    {
        TitleBarButtonTabsMenu,
        TitleBarButtonUndock,
        TitleBarButtonClose
    };

    enum eDragState
    {
        DraggingInactive,
        DraggingMousePressed,
        DraggingTab,
        DraggingFloatingWidget
    };

    enum eIcon
    {
        TabCloseIcon,
        DockAreaMenuIcon,
        DockAreaUndockIcon,
        DockAreaCloseIcon,

        IconCount,
    };

    enum eBitwiseOperator
    {
        BitwiseAnd,
        BitwiseOr
    };
    
    namespace internal
    {    
        void replaceSplitterWidget(QSplitter* Splitter, QWidget* From, QWidget* To);
        void hideEmptyParentSplitters(ads::CDockSplitter* FirstParentSplitter);
        
        class CDockInsertParam
        {
            %TypeHeaderCode
            #include <ads_globals.h>
            %End
            
        public:
            Qt::Orientation orientation() const;
            bool append() const;
            int insertOffset() const;
        };
        ads::internal::CDockInsertParam dockAreaInsertParameters(ads::DockWidgetArea Area);
        
        SIP_PYOBJECT findParent(SIP_PYTYPE type, const QWidget *w) const /TypeHint="QObject"/;
        %MethodCode
        sipRes = qtads_FindParent(a0, a1);

        if (!sipRes)
        {
            sipIsErr = 1;
        }
        %End
        
        QPixmap createTransparentPixmap(const QPixmap& Source, qreal Opacity);  

        QPoint globalPositionOf(QMouseEvent* ev);

        void setButtonIcon(QAbstractButton* Button, QStyle::StandardPixmap StandarPixmap, ads::eIcon CustomIconId);
        
        enum eRepolishChildOptions
        {
            RepolishIgnoreChildren,
            RepolishDirectChildren,
            RepolishChildrenRecursively
        };
        
       void repolishStyle(QWidget* w, ads::internal::eRepolishChildOptions Options = ads::internal::RepolishIgnoreChildren); 
    };

};

%End