haiku/src/apps/screenshot/ScreenshotWindow.h

87 lines
2.1 KiB
C++

/*
* Copyright 2010 Wim van der Meer <WPJvanderMeer@gmail.com>
* Copyright Karsten Heimrich, host.haiku@gmx.de.
* All rights reserved. Distributed under the terms of the MIT License.
*
* Authors:
* Karsten Heimrich
* Fredrik Modéen
* Wim van der Meer
*/
#ifndef SCREENSHOT_WINDOW_H
#define SCREENSHOT_WINDOW_H
#include <String.h>
#include <TranslationDefs.h>
#include <TranslatorFormats.h>
#include <Window.h>
class BBitmap;
class BCheckBox;
class BFilePanel;
class BMenu;
class BPath;
class BTextControl;
class BTextView;
class Utility;
class ScreenshotWindow : public BWindow {
public:
ScreenshotWindow(const Utility& utility,
bool silent, bool clipboard);
~ScreenshotWindow();
void MessageReceived(BMessage* message);
void Quit();
private:
void _NewScreenshot(bool silent = false,
bool clipboard = false,
bool ignoreDelay = false);
void _UpdatePreviewPanel();
void _DisallowChar(BTextView* textView);
void _SetupOutputPathMenu(const BMessage& settings);
void _AddItemToPathMenu(const char* path,
BString& label, int32 index, bool markItem,
uint32 shortcutKey = 0);
void _UpdateFilenameSelection();
void _SetupTranslatorMenu();
void _DisplaySaveError(BString _message);
status_t _SaveScreenshot();
void _ShowSettings(bool activate);
BString _FindValidFileName(const char* name);
BPath _GetDirectory();
void _ReadSettings();
void _WriteSettings();
const Utility& fUtility;
BView* fPreview;
BCheckBox* fActiveWindow;
BTextControl* fDelayControl;
BCheckBox* fWindowBorder;
BCheckBox* fShowCursor;
BTextControl* fNameControl;
BMenu* fTranslatorMenu;
BMenu* fOutputPathMenu;
BBitmap* fScreenshot;
BFilePanel* fOutputPathPanel;
BMenuItem* fLastSelectedPath;
BWindow* fSettingsWindow;
bigtime_t fDelay;
bool fIncludeBorder;
bool fIncludeCursor;
bool fGrabActiveWindow;
BString fOutputFilename;
BString fExtension;
int32 fImageFileType;
};
#endif // SCREENSHOT_WINDOW_H