File: tlwgeom.h

package info (click to toggle)
wxpython4.0 4.2.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 232,540 kB
  • sloc: cpp: 958,937; python: 233,059; ansic: 150,441; makefile: 51,662; sh: 8,687; perl: 1,563; javascript: 584; php: 326; xml: 200
file content (75 lines) | stat: -rw-r--r-- 2,300 bytes parent folder | download | duplicates (4)
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
///////////////////////////////////////////////////////////////////////////////
// Name:        wx/gtk/private/tlwgeom.h
// Purpose:     wxGTK-specific wxTLWGeometry class.
// Author:      Vadim Zeitlin
// Created:     2018-04-29
// Copyright:   (c) 2018 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence:     wxWindows licence
///////////////////////////////////////////////////////////////////////////////

#ifndef _WX_GTK_PRIVATE_TLWGEOM_H_
#define _WX_GTK_PRIVATE_TLWGEOM_H_

class wxTLWGeometry : public wxTLWGeometryGeneric
{
    typedef wxTLWGeometryGeneric BaseType;
public:
    virtual bool Save(const Serializer& ser) const wxOVERRIDE
    {
        if ( !wxTLWGeometryGeneric::Save(ser) )
            return false;

        // Don't save the decoration sizes if we don't really have any values
        // for them.
        if ( m_decorSize.left || m_decorSize.right ||
                m_decorSize.top || m_decorSize.bottom )
        {
            ser.SaveField("decor_l", m_decorSize.left);
            ser.SaveField("decor_r", m_decorSize.right);
            ser.SaveField("decor_t", m_decorSize.top);
            ser.SaveField("decor_b", m_decorSize.bottom);
        }

        return true;
    }

    virtual bool Restore(Serializer& ser) wxOVERRIDE
    {
        if ( !wxTLWGeometryGeneric::Restore(ser) )
            return false;

        ser.RestoreField("decor_l", &m_decorSize.left);
        ser.RestoreField("decor_r", &m_decorSize.right);
        ser.RestoreField("decor_t", &m_decorSize.top);
        ser.RestoreField("decor_b", &m_decorSize.bottom);

        return true;
    }

    virtual bool GetFrom(const wxTopLevelWindow* tlw) wxOVERRIDE
    {
        if ( !wxTLWGeometryGeneric::GetFrom(tlw) )
            return false;

        m_decorSize = tlw->m_decorSize;

        return true;
    }

    virtual bool ApplyTo(wxTopLevelWindow* tlw) wxOVERRIDE
    {
        // Don't overwrite the current decoration size if we already have it.
        if ( !tlw->m_decorSize.left && !tlw->m_decorSize.right &&
                !tlw->m_decorSize.top && !tlw->m_decorSize.bottom )
        {
            tlw->m_decorSize = m_decorSize;
        }

        return BaseType::ApplyTo(tlw);
    }

private:
    wxTopLevelWindow::DecorSize m_decorSize;
};

#endif // _WX_GTK_PRIVATE_TLWGEOM_H_