* Removed superfluous B_AVOID_FRONT flag.

* Renamed BCatalog member from "cat" to fCatalog.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34457 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2009-12-03 12:11:14 +00:00
parent f7d3982857
commit b69c120bfd
3 changed files with 219 additions and 221 deletions
@@ -5,12 +5,27 @@
* Authors:
* Clemens Zeidler, [email protected]
*/
#ifndef PREFERENCES_WINDOW_h
#define PREFERENCES_WINDOW_h
#ifndef PREFERENCESWINDOW_h
#define PREFERENCESWINDOW_h
#define DEBUG 1
#include <Application.h>
#include <Button.h>
#include <Catalog.h>
#include <Debug.h>
#include <Entry.h>
#include <FindDirectory.h>
#include <File.h>
#include <GroupView.h>
#include <Locale.h>
#include <MessageFilter.h>
#include <NodeMonitor.h>
#include <Path.h>
#include <Screen.h>
#include <SpaceLayoutItem.h>
#include <String.h>
#include <Window.h>
#if DEBUG
# define LOG(text...) PRINT((text))
@@ -18,36 +33,15 @@
# define LOG(text...)
#endif
#include <Button.h>
#include <Catalog.h>
#include <Locale.h>
#include <NodeMonitor.h>
#include <Path.h>
#include <Window.h>
// headers PreferencesStorage
#include <Entry.h>
#include <FindDirectory.h>
#include <File.h>
#include <String.h>
// headers PrefFileWatcher
#include <MessageFilter.h>
// headers PreferencesWindow
#include <Application.h>
#include <GroupView.h>
#include <Screen.h>
#include <SpaceLayoutItem.h>
#define TR_CONTEXT "Pref Window"
// messages PrefFileWatcher
const uint32 kUpdatedPreferences = '&UdP';
template<typename Preferences>
class PreferencesStorage
{
class PreferencesStorage {
public:
PreferencesStorage(const char* file,
const Preferences& defaultPreferences);
@@ -57,8 +51,8 @@ class PreferencesStorage
void Defaults();
BPoint WindowPosition() {return fWindowPosition; }
void SetWindowPosition(BPoint position){
fWindowPosition = position;}
void SetWindowPosition(BPoint position)
{ fWindowPosition = position; }
Preferences* GetPreferences() { return &fPreferences; }
@@ -79,13 +73,14 @@ class PreferencesStorage
template<typename Preferences>
class PrefFileWatcher : public BMessageFilter
{
class PrefFileWatcher : public BMessageFilter {
public:
PrefFileWatcher(PreferencesStorage<Preferences>* storage,
PrefFileWatcher(
PreferencesStorage<Preferences>* storage,
BHandler* target);
~PrefFileWatcher();
virtual filter_result Filter(BMessage *message, BHandler **target);
virtual ~PrefFileWatcher();
virtual filter_result Filter(BMessage* message, BHandler** _target);
private:
PreferencesStorage<Preferences>* fPreferencesStorage;
@@ -97,13 +92,13 @@ class PrefFileWatcher : public BMessageFilter
template<typename Preferences>
class PreferencesWindow : public BWindow, public PreferencesStorage<Preferences>
{
class PreferencesWindow : public BWindow,
public PreferencesStorage<Preferences> {
public:
PreferencesWindow(const char* title,
const char* file,
const Preferences& defaultPreferences);
~PreferencesWindow();
virtual ~PreferencesWindow();
virtual void MessageReceived(BMessage *msg);
virtual bool QuitRequested();
@@ -111,6 +106,7 @@ class PreferencesWindow : public BWindow, public PreferencesStorage<Preferences>
private:
void _MoveToPosition();
BView* fPreferencesView;
BButton* fRevertButton;
BButton* fDefaultButton;
@@ -122,10 +118,12 @@ const uint32 kDefaultMsg = 'dems';
const uint32 kRevertMsg = 'rems';
const uint32 kConfigChangedMsg = '&cgh';
template<typename Preferences>
PreferencesStorage<Preferences>::PreferencesStorage(const char* file,
const Preferences& defaultPreferences)
: fDefaultPreferences(defaultPreferences)
:
fDefaultPreferences(defaultPreferences)
{
// default center position
fWindowPosition.x = -1;
@@ -236,23 +234,25 @@ PreferencesStorage<Preferences>::SavePreferences()
template<typename Preferences>
PrefFileWatcher<Preferences>::PrefFileWatcher(PreferencesStorage<Preferences>* storage,
BHandler* target)
: BMessageFilter(B_PROGRAMMED_DELIVERY, B_ANY_SOURCE),
PrefFileWatcher<Preferences>::PrefFileWatcher(
PreferencesStorage<Preferences>* storage, BHandler* target)
:
BMessageFilter(B_PROGRAMMED_DELIVERY, B_ANY_SOURCE),
fPreferencesStorage(storage),
fTarget(target)
{
BPath path;
find_directory(B_USER_SETTINGS_DIRECTORY, &path);
BEntry entry(path.Path());
entry.GetNodeRef(&fPreferencesDirectoryNode);
watch_node(&fPreferencesDirectoryNode, B_WATCH_DIRECTORY,
fTarget);
if (entry.GetNodeRef(&fPreferencesDirectoryNode) == B_OK)
watch_node(&fPreferencesDirectoryNode, B_WATCH_DIRECTORY, fTarget);
path.Append(fPreferencesStorage->PreferencesFile().String());
entry.SetTo(path.Path());
entry.GetNodeRef(&fPreferencesNode);
watch_node(&fPreferencesNode, B_WATCH_STAT,
fTarget);
if (entry.GetNodeRef(&fPreferencesNode) == B_OK)
watch_node(&fPreferencesNode, B_WATCH_STAT, fTarget);
}
@@ -278,12 +278,12 @@ PrefFileWatcher<Preferences>::Filter(BMessage *msg, BHandler **target)
|| msg->FindInt32("opcode", &opcode) != B_OK)
return result;
switch(opcode)
{
switch (opcode) {
case B_ENTRY_MOVED:
msg->FindInt64("to directory", dir);
if (dir != fPreferencesDirectoryNode.node)
break;
// supposed to fall through
case B_ENTRY_CREATED:
msg->FindString("name", &name);
@@ -325,17 +325,15 @@ PrefFileWatcher<Preferences>::Filter(BMessage *msg, BHandler **target)
template<typename Preferences>
PreferencesWindow<Preferences>::PreferencesWindow(const char* title,
const char* file,
const Preferences& defaultPreferences)
: BWindow(BRect(50, 50, 400, 350), title, B_TITLED_WINDOW,
B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_AVOID_FRONT
| B_ASYNCHRONOUS_CONTROLS),
const char* file, const Preferences& defaultPreferences)
:
BWindow(BRect(50, 50, 400, 350), title, B_TITLED_WINDOW,
B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS),
PreferencesStorage<Preferences>(file, defaultPreferences),
fPreferencesView(NULL)
{
BGroupView* buttonView = new BGroupView(B_HORIZONTAL);
fDefaultButton = new BButton(TR("Defaults"),
new BMessage(kDefaultMsg));
fDefaultButton = new BButton(TR("Defaults"), new BMessage(kDefaultMsg));
buttonView->AddChild(fDefaultButton);
buttonView->GetLayout()->AddItem(BSpaceLayoutItem::CreateHorizontalStrut(7));
@@ -440,4 +438,6 @@ PreferencesWindow<Preferences>::_MoveToPosition()
MoveTo(position);
}
#endif
#undef TR_CONTEXT
#endif // PREFERENCES_WINDOW_h
+18 -15
View File
@@ -6,6 +6,7 @@
* Clemens Zeidler, [email protected]
*/
#include "StatusView.h"
#include <string.h>
@@ -24,12 +25,11 @@
#include "CPUFrequencyView.h"
#define TR_CONTEXT "Status view"
extern "C" _EXPORT BView *instantiate_deskbar_item(void);
#define TR_CONTEXT "Status view"
#define MAX_FREQ_STRING "9999MHz"
// messages FrequencySwitcher
@@ -48,7 +48,8 @@ const char* kDeskbarItemName = "CPUFreqStatusView";
FrequencySwitcher::FrequencySwitcher(CPUFreqDriverInterface* interface,
BHandler* target)
: BMessageFilter(B_PROGRAMMED_DELIVERY, B_ANY_SOURCE),
:
BMessageFilter(B_PROGRAMMED_DELIVERY, B_ANY_SOURCE),
fDriverInterface(interface),
fTarget(target),
fMessageRunner(NULL),
@@ -194,21 +195,21 @@ FrequencyMenu::FrequencyMenu(BMenu* menu, BHandler* target,
fStorage(storage),
fInterface(interface)
{
BCatalog cat("x-vnd.Haiku-CPUFrequencyPref");
BCatalog catalog("x-vnd.Haiku-CPUFrequencyPref");
fDynamicPerformance = new BMenuItem(
cat.GetString("Dynamic Performance",TR_CONTEXT),
catalog.GetString("Dynamic Performance",TR_CONTEXT),
new BMessage(kMsgPolicyDynamic));
fHighPerformance = new BMenuItem(
cat.GetString("High Performance",TR_CONTEXT),
catalog.GetString("High Performance",TR_CONTEXT),
new BMessage(kMsgPolicyPerformance));
fLowEnergie = new BMenuItem(cat.GetString("Low Energy",TR_CONTEXT),
fLowEnergie = new BMenuItem(catalog.GetString("Low Energy",TR_CONTEXT),
new BMessage(kMsgPolicyLowEnergy));
menu->AddItem(fDynamicPerformance);
menu->AddItem(fHighPerformance);
menu->AddItem(fLowEnergie);
fCustomStateMenu = new BMenu(cat.GetString("Set State",TR_CONTEXT));
fCustomStateMenu = new BMenu(catalog.GetString("Set State",TR_CONTEXT));
StateList* stateList = fInterface->GetCpuFrequencyStates();
for (int i = 0; i < stateList->CountItems(); i++) {
@@ -347,12 +348,13 @@ FrequencyMenu::UpdateMenu()
StatusView::StatusView(BRect frame, bool inDeskbar,
PreferencesStorage<freq_preferences>* storage)
: BView(frame, kDeskbarItemName, B_FOLLOW_LEFT | B_FOLLOW_TOP,
:
BView(frame, kDeskbarItemName, B_FOLLOW_LEFT | B_FOLLOW_TOP,
B_WILL_DRAW | B_FRAME_EVENTS),
fInDeskbar(inDeskbar),
fCurrentFrequency(NULL),
fDragger(NULL),
cat("x-vnd.Haiku-CPUFrequencyPref")
fCatalog("x-vnd.Haiku-CPUFrequencyPref")
{
if (!inDeskbar) {
// we were obviously added to a standard window - let's add a dragger
@@ -405,9 +407,10 @@ StatusView::~StatusView()
void
StatusView::_AboutRequested()
{
BAlert *alert = new BAlert("about", cat.GetString("CPU Frequency\n"
BAlert *alert = new BAlert("about", fCatalog.GetString("CPU Frequency\n"
"\twritten by Clemens Zeidler\n"
"\tCopyright 2009, Haiku, Inc.\n",TR_CONTEXT), cat.GetString("Ok",TR_CONTEXT));
"\tCopyright 2009, Haiku, Inc.\n", TR_CONTEXT),
fCatalog.GetString("Ok", TR_CONTEXT));
BTextView *view = alert->TextView();
BFont font;
@@ -487,14 +490,14 @@ StatusView::AttachedToWindow()
fPreferencesMenu->SetFont(be_plain_font);
fPreferencesMenu->AddSeparatorItem();
fOpenPrefItem = new BMenuItem(
cat.GetString("Open Speedstep Preferences" B_UTF8_ELLIPSIS, TR_CONTEXT),
fOpenPrefItem = new BMenuItem(fCatalog.GetString(
"Open Speedstep Preferences" B_UTF8_ELLIPSIS, TR_CONTEXT),
new BMessage(kMsgOpenSSPreferences));
fPreferencesMenu->AddItem(fOpenPrefItem);
fOpenPrefItem->SetTarget(this);
if (fInDeskbar) {
fQuitItem= new BMenuItem(cat.GetString("Quit", TR_CONTEXT),
fQuitItem= new BMenuItem(fCatalog.GetString("Quit", TR_CONTEXT),
new BMessage(B_QUIT_REQUESTED));
fPreferencesMenu->AddItem(fQuitItem);
fQuitItem->SetTarget(this);
+15 -20
View File
@@ -5,10 +5,10 @@
* Authors:
* Clemens Zeidler, [email protected]
*/
#ifndef STATUS_VIEW_H
#define STATUS_VIEW_H
#include <Dragger.h>
#include <MessageFilter.h>
#include <MessageRunner.h>
@@ -19,27 +19,19 @@
#include "DriverInterface.h"
#include "PreferencesWindow.h"
#define DEBUG 1
#include <Debug.h>
#if DEBUG
# define LOG(text...) PRINT((text))
#else
# define LOG(text...)
#endif
extern const char* kDeskbarItemName;
extern const char* kAddonSignature;
class FrequencySwitcher : public BMessageFilter
{
class FrequencySwitcher : public BMessageFilter {
public:
FrequencySwitcher(CPUFreqDriverInterface* interface,
FrequencySwitcher(
CPUFreqDriverInterface* interface,
BHandler* target);
virtual ~FrequencySwitcher();
virtual filter_result Filter(BMessage *message, BHandler **target);
virtual filter_result Filter(BMessage* message, BHandler** _target);
void SetMode(const freq_preferences& pref);
@@ -62,15 +54,16 @@ class FrequencySwitcher : public BMessageFilter
};
class FrequencyMenu : public BMessageFilter
{
class FrequencyMenu : public BMessageFilter {
public:
FrequencyMenu(BMenu* menu, BHandler* target,
PreferencesStorage<freq_preferences>* storage,
PreferencesStorage<freq_preferences>*
storage,
CPUFreqDriverInterface* interface);
virtual filter_result Filter(BMessage *message, BHandler **target);
virtual filter_result Filter(BMessage* message, BHandler** _target);
void UpdateMenu();
private:
inline void _SetL1MenuLabelFrom(BMenuItem* item);
@@ -88,12 +81,14 @@ class FrequencyMenu : public BMessageFilter
class StatusView : public BView {
public:
StatusView(BRect frame, bool inDeskbar = false,
PreferencesStorage<freq_preferences>* storage = NULL);
PreferencesStorage<freq_preferences>*
storage = NULL);
StatusView(BMessage* archive);
virtual ~StatusView();
static StatusView* Instantiate(BMessage* archive);
virtual status_t Archive(BMessage* archive, bool deep = true) const;
virtual status_t Archive(BMessage* archive,
bool deep = true) const;
virtual void AttachedToWindow();
virtual void DetachedFromWindow();
@@ -136,7 +131,7 @@ class StatusView : public BView {
BString fFreqString;
BDragger* fDragger;
BCatalog cat;
BCatalog fCatalog;
};
#endif // STATUS_VIEW_H