Files
haiku-beta6/src/bin/screen_blanker/ScreenSaverWindow.h
T

60 lines
1.3 KiB
C++
Raw Normal View History

/*
* Copyright 2003, Michael Phipps. All rights reserved.
* Copyright 2014, Puck Meerburg.
* Distributed under the terms of the MIT License.
*/
#ifndef SCREEN_SAVER_WINDOW_H
#define SCREEN_SAVER_WINDOW_H
#include "ScreenSaver.h"
#include <DirectWindow.h>
#include <MessageFilter.h>
2013-11-14 16:44:15 -05:00
#include "ScreenSaverRunner.h"
const static uint32 kMsgEnableFilter = 'eflt';
class ScreenSaverFilter : public BMessageFilter {
2013-11-14 16:31:43 -05:00
public:
ScreenSaverFilter(bool test)
2013-11-14 16:31:43 -05:00
:
BMessageFilter(B_ANY_DELIVERY, B_ANY_SOURCE),
fEnabled(true),
fTestMode(test) {}
2013-11-14 16:31:43 -05:00
virtual filter_result Filter(BMessage* message, BHandler** target);
2013-11-14 16:31:43 -05:00
void SetEnabled(bool enabled)
{ fEnabled = enabled; };
private:
bool fEnabled;
bool fTestMode;
};
class ScreenSaverWindow : public BDirectWindow {
2013-11-14 16:31:43 -05:00
public:
ScreenSaverWindow(BRect frame, bool test);
2013-11-14 16:31:43 -05:00
~ScreenSaverWindow();
2013-11-14 16:31:43 -05:00
virtual void MessageReceived(BMessage* message);
virtual bool QuitRequested();
virtual void DirectConnected(direct_buffer_info* info);
2013-11-14 16:44:15 -05:00
void SetSaverRunner(ScreenSaverRunner* runner);
BScreenSaver* _ScreenSaver();
2013-11-14 16:44:15 -05:00
private:
BView* fTopView;
ScreenSaverRunner* fSaverRunner;
ScreenSaverFilter* fFilter;
};
2013-11-14 16:44:15 -05:00
#endif // SCREEN_SAVER_WINDOW_H