-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathsaverframe.h
67 lines (55 loc) · 1.94 KB
/
saverframe.h
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
/*
* This file is part of MultiScreenSaver.
*
* Copyright (c) qu1ck 2022
*
* MultiScreenSaver 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.
*
* MultiScreenSaver 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 MultiScreenSaver.
* If not, see https://www.gnu.org/licenses/.
*/
#ifndef __SAVERFRAME_H__
#define __SAVERFRAME_H__
#include <wx/graphics.h>
#include <wx/image.h>
#include <wx/timer.h>
#include <wx/wx.h>
#include "config.h"
class RenderWindow : public wxWindow
{
public:
RenderWindow(wxWindow* parent, const wxString& aPath, const bool aRecursive, const Config::SCALE aScale,
const Config::TRANSITION aTransition);
void OnPaint(const wxPaintEvent& e)
{
Draw();
};
void Draw();
void Transition(bool forward, double tick);
void Increment(bool forward);
void LoadNextImage(bool forward);
private:
void drawBitmap(wxGraphicsContext* gc, wxGraphicsBitmap& bitmap, wxSize& originalSize);
wxSize getScaledSize(const wxSize& originalSize);
wxGraphicsRenderer* m_renderer;
wxSize m_originalImgSizes[3];
wxGraphicsBitmap m_bitmaps[3];
Config::SCALE m_scaleMode;
Config::TRANSITION m_transition;
int m_imgIndex;
wxArrayString m_files;
};
class SaverFrame : public wxFrame
{
public:
SaverFrame(const wxString& aPath, const bool aRecursive, const Config::SCALE aScale,
const Config::TRANSITION aTransition, const wxPoint& aPos, const wxSize& aSize);
RenderWindow* renderer;
};
#endif // __SAVERFRAME_H__