summaryrefslogtreecommitdiffstats
path: root/src/ui/displayinfo.h
blob: 2eabbf2333d6beb96d90a2c937037571f6221850 (plain)
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
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see  http://www.gnu.org/licenses/.

// displayinfo.h

#pragma once

#include <string>

#include "common/event.h"

#include "graphics/engine/camera.h"

class CInstanceManager;
class CRobotMain;
class CObject;
class CEventQueue;

struct Event;

namespace Gfx {
    class CEngine;
    class CParticle;
    class CLightManager;
}

namespace Ui {
    class CInterface;

    class CDisplayInfo
    {
    public:
    //    CDisplayInfo(CInstanceManager* iMan);
        CDisplayInfo();
        ~CDisplayInfo();

        bool        EventProcess(const Event &event);

        void        StartDisplayInfo(std::string filename, int index, bool bSoluce);
        void        StopDisplayInfo();

        void        SetPosition(int pos);
        int         GetPosition();

    protected:
        bool        EventFrame(const Event &event);
        void        HyperUpdate();
        void        AdjustDisplayInfo(Math::Point wpos, Math::Point wdim);
        void        ChangeIndexButton(int index);
        void        UpdateIndexButton();
        void        UpdateCopyButton();
        void        ViewDisplayInfo();
        CObject*    SearchToto();
        void        CreateObjectsFile();

    protected:
        CInstanceManager* m_iMan;
        Gfx::CEngine* m_engine;
        CEventQueue*     m_event;
        CRobotMain* m_main;
        Gfx::CCamera*    m_camera;
        CInterface* m_interface;
        Gfx::CParticle* m_particle;
        Gfx::CLightManager*     m_light;

        bool        m_bInfoMaximized;
        bool        m_bInfoMinimized;

        int         m_index;
        Gfx::CameraType  m_infoCamera;
        Math::Point     m_infoNormalPos;
        Math::Point     m_infoNormalDim;
        Math::Point     m_infoActualPos;
        Math::Point     m_infoActualDim;
        Math::Point     m_infoFinalPos;
        Math::Point     m_infoFinalDim;
        int         m_lightSuppl;
        bool        m_bEditLock;
        bool        m_bInitPause;
        bool        m_bSoluce;
        CObject*    m_toto;
    };


}