haiku/src/apps/launchbox/MainWindow.h

81 lines
1.9 KiB
C++

/*
* Copyright 2006-2011, Stephan Aßmus <superstippi@gmx.de>.
* All rights reserved. Distributed under the terms of the MIT License.
*/
#ifndef MAIN_WINDOW_H
#define MAIN_WINDOW_H
#include <Window.h>
class PadView;
enum {
MSG_SHOW_BORDER = 'shbr',
MSG_HIDE_BORDER = 'hdbr',
MSG_TOGGLE_AUTORAISE = 'tgar',
MSG_SHOW_ON_ALL_WORKSPACES = 'awrk',
MSG_SET_DESCRIPTION = 'dscr',
MSG_ADD_WINDOW = 'addw',
MSG_SETTINGS_CHANGED = 'stch',
MSG_TOGGLE_AUTOSTART = 'tast'
};
class MainWindow : public BWindow {
public:
MainWindow(const char* name, BRect frame,
bool addDefaultButtons = false);
MainWindow(const char* name, BRect frame,
BMessage* settings);
virtual ~MainWindow();
// BWindow interface
virtual bool QuitRequested();
virtual void MessageReceived(BMessage* message);
virtual void Show();
virtual void ScreenChanged(BRect frame, color_space format);
virtual void WorkspaceActivated(int32 workspace, bool active);
virtual void FrameMoved(BPoint origin);
virtual void FrameResized(float width, float height);
// MainWindow
void ToggleAutoRaise();
bool AutoRaise() const
{ return fAutoRaise; }
bool ShowOnAllWorkspaces() const
{ return fShowOnAllWorkspaces; }
BPoint ScreenPosition() const
{ return fScreenPosition; }
bool LoadSettings(const BMessage* message);
void SaveSettings(BMessage* message);
BMessage* Settings() const
{ return fSettings; }
private:
void _GetLocation();
void _AdjustLocation(BRect frame);
void _AddDefaultButtons();
void _AddEmptyButtons();
void _NotifySettingsChanged();
private:
BMessage* fSettings;
PadView* fPadView;
float fBorderDist;
BPoint fScreenPosition;
// not really the position, 0...1 = left...right
bool fAutoRaise;
bool fShowOnAllWorkspaces;
};
#endif // MAIN_WINDOW_H