* Copyright 1999-2009 Jeremy Friesner
* Copyright 2009-2010 Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Jeremy Friesner
*/
#ifndef SHORTCUTS_WINDOW_H
#define SHORTCUTS_WINDOW_H
#include <ColumnListView.h>
#include <Entry.h>
#include <Window.h>
class BButton;
class BColumnListView;
class BFilePanel;
class BMessage;
class ShortcutsSpec;
class ShortcutsWindow : public BWindow {
public:
ShortcutsWindow();
~ShortcutsWindow();
virtual void DispatchMessage(BMessage* message,
BHandler* handler);
virtual void Quit();
virtual void MessageReceived(BMessage* message);
virtual bool QuitRequested();
enum {
ADD_HOTKEY_ITEM = 'SpKy',
REMOVE_HOTKEY_ITEM,
HOTKEY_ITEM_SELECTED,
HOTKEY_ITEM_MODIFIED,
OPEN_KEYSET,
APPEND_KEYSET,
REVERT_KEYSET,
SAVE_KEYSET,
SAVE_KEYSET_AS,
SELECT_APPLICATION,
};
private:
BMenuItem* _CreateActuatorPresetMenuItem(const char* label)
const;
void _AddNewSpec(const char* defaultCommand, uint32 keyCode = 0);
void _MarkKeySetModified();
bool _LoadKeySet(const BMessage& loadMessage);
bool _SaveKeySet(BEntry& saveEntry);
bool _GetSettingsFile(entry_ref* ref);
void _LoadWindowSettings(
const BMessage& loadMessage);
void _SaveWindowSettings(BEntry& saveEntry);
bool _GetWindowSettingsFile(entry_ref* ref);
BButton* fAddButton;
BButton* fRemoveButton;
BButton* fSaveButton;
BColumnListView* fColumnListView;
BFilePanel* fSavePanel;
BFilePanel* fOpenPanel;
BFilePanel* fSelectPanel;
BEntry fLastSaved;
bool fKeySetModified;
bool fLastOpenWasAppend;
BRow* fSelectedRow;
};
#endif