haiku/src/apps/tv/MainWin.h

115 lines
3.2 KiB
C++

/*
* Copyright (c) 2004-2007 Marcus Overhagen <marcus@overhagen.de>
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify,
* merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef __MAIN_WIN_H
#define __MAIN_WIN_H
#include <Button.h>
#include <Catalog.h>
#include <Locale.h>
#include <Menu.h>
#include <Slider.h>
#include <Window.h>
#include "Controller.h"
#include "VideoView.h"
class MainWin : public BWindow
{
public:
MainWin(BRect rect);
~MainWin();
void FrameResized(float new_width, float new_height);
void Zoom(BPoint rec_position, float rec_width, float rec_height);
void DispatchMessage(BMessage *message, BHandler *handler);
void MessageReceived(BMessage *msg);
bool QuitRequested();
void MouseDown(BMessage *msg);
void MouseMoved(BMessage *msg);
void MouseUp(BMessage *msg);
status_t KeyDown(BMessage *msg);
void CreateMenu();
void SetupInterfaceMenu();
void SetupChannelMenu();
void SelectInitialInterface();
void SelectInterface(int i);
void SelectChannel(int i);
void SetInterfaceMenuMarker();
void SetChannelMenuMarker();
void VideoFormatChange(int width, int height, float width_scale, float height_scale);
void UpdateWindowTitle();
void AdjustFullscreenRenderer();
void AdjustWindowedRenderer(bool user_resized);
void ToggleFullscreen();
void ToggleKeepAspectRatio();
void ToggleAlwaysOnTop();
void ToggleNoBorder();
void ToggleNoMenu();
void ToggleNoBorderNoMenu();
void ShowContextMenu(const BPoint &screen_point);
BMenuBar * fMenuBar;
BView * fBackground;
VideoView * fVideoView;
BMenu * fFileMenu;
BMenu * fChannelMenu;
BMenu * fInterfaceMenu;
BMenu * fSettingsMenu;
BMenu * fDebugMenu;
Controller * fController;
volatile bool fIsFullscreen;
volatile bool fKeepAspectRatio;
volatile bool fAlwaysOnTop;
volatile bool fNoMenu;
volatile bool fNoBorder;
int fSourceWidth;
int fSourceHeight;
float fWidthScale;
float fHeightScale;
int fMenuBarHeight;
BRect fSavedFrame;
bool fMouseDownTracking;
BPoint fMouseDownMousePos;
BPoint fMouseDownWindowPos;
bool fFrameResizedTriggeredAutomatically;
bool fIgnoreFrameResized;
bool fFrameResizedCalled;
};
#endif