Author: axeld Date: 2009-12-03 13:11:14 +0100 (Thu, 03 Dec 2009) New Revision: 34457 Changeset: http://dev.haiku-os.org/changeset/34457/haiku Modified: haiku/trunk/src/preferences/cpufrequency/PreferencesWindow.h haiku/trunk/src/preferences/cpufrequency/StatusView.cpp haiku/trunk/src/preferences/cpufrequency/StatusView.h Log: * Removed superfluous B_AVOID_FRONT flag. * Renamed BCatalog member from "cat" to fCatalog. * Cleanup. Modified: haiku/trunk/src/preferences/cpufrequency/PreferencesWindow.h =================================================================== --- haiku/trunk/src/preferences/cpufrequency/PreferencesWindow.h 2009-12-03 11:56:00 UTC (rev 34456) +++ haiku/trunk/src/preferences/cpufrequency/PreferencesWindow.h 2009-12-03 12:11:14 UTC (rev 34457) @@ -5,116 +5,112 @@ * Authors: * Clemens Zeidler, haiku@xxxxxxxxxxxxxxxxxx */ - -#ifndef PREFERENCESWINDOW_h -#define PREFERENCESWINDOW_h +#ifndef PREFERENCES_WINDOW_h +#define PREFERENCES_WINDOW_h -#define DEBUG 1 -#include <Debug.h> -#if DEBUG -# define LOG(text...) PRINT((text)) -#else -# define LOG(text...) -#endif - +#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> -// headers PreferencesStorage -#include <Entry.h> -#include <FindDirectory.h> -#include <File.h> -#include <String.h> -// headers PrefFileWatcher -#include <MessageFilter.h> +#if DEBUG +# define LOG(text...) PRINT((text)) +#else +# define LOG(text...) +#endif -// 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 -{ - public: - PreferencesStorage(const char* file, - const Preferences& defaultPreferences); - ~PreferencesStorage(); +class PreferencesStorage { +public: + PreferencesStorage(const char* file, + const Preferences& defaultPreferences); + ~PreferencesStorage(); - void Revert(); - void Defaults(); + void Revert(); + void Defaults(); - BPoint WindowPosition(){return fWindowPosition;} - void SetWindowPosition(BPoint position){ - fWindowPosition = position;} - - Preferences* GetPreferences(){return &fPreferences;} - - status_t LoadPreferences(); - status_t SavePreferences(); - - BString& PreferencesFile() { return fPreferencesFile; } - status_t GetPreferencesPath(BPath &path); - - private: - BString fPreferencesFile; - - Preferences fPreferences; - Preferences fStartPreferences; - const Preferences& fDefaultPreferences; - BPoint fWindowPosition; + BPoint WindowPosition() {return fWindowPosition; } + void SetWindowPosition(BPoint position) + { fWindowPosition = position; } + + Preferences* GetPreferences() { return &fPreferences; } + + status_t LoadPreferences(); + status_t SavePreferences(); + + BString& PreferencesFile() { return fPreferencesFile; } + status_t GetPreferencesPath(BPath &path); + +private: + BString fPreferencesFile; + + Preferences fPreferences; + Preferences fStartPreferences; + const Preferences& fDefaultPreferences; + BPoint fWindowPosition; }; template<typename Preferences> -class PrefFileWatcher : public BMessageFilter -{ - public: - PrefFileWatcher(PreferencesStorage<Preferences>* storage, - BHandler* target); - ~PrefFileWatcher(); - virtual filter_result Filter(BMessage *message, BHandler **target); +class PrefFileWatcher : public BMessageFilter { +public: + PrefFileWatcher( + PreferencesStorage<Preferences>* storage, + BHandler* target); + virtual ~PrefFileWatcher(); + + virtual filter_result Filter(BMessage* message, BHandler** _target); - private: - PreferencesStorage<Preferences>* fPreferencesStorage; - node_ref fPreferencesNode; - node_ref fPreferencesDirectoryNode; - - BHandler* fTarget; +private: + PreferencesStorage<Preferences>* fPreferencesStorage; + node_ref fPreferencesNode; + node_ref fPreferencesDirectoryNode; + + BHandler* fTarget; }; template<typename Preferences> -class PreferencesWindow : public BWindow, public PreferencesStorage<Preferences> -{ - public: +class PreferencesWindow : public BWindow, + public PreferencesStorage<Preferences> { +public: PreferencesWindow(const char* title, - const char* file, - const Preferences& defaultPreferences); - ~PreferencesWindow(); - virtual void MessageReceived(BMessage *msg); - virtual bool QuitRequested(); + const char* file, + const Preferences& defaultPreferences); + virtual ~PreferencesWindow(); + virtual void MessageReceived(BMessage *msg); + virtual bool QuitRequested(); - virtual bool SetPreferencesView(BView* prefView); + virtual bool SetPreferencesView(BView* prefView); - private: - void _MoveToPosition(); - BView* fPreferencesView; - BButton* fRevertButton; - BButton* fDefaultButton; - BGroupLayout* fRootLayout; +private: + void _MoveToPosition(); + + BView* fPreferencesView; + BButton* fRevertButton; + BButton* fDefaultButton; + BGroupLayout* fRootLayout; }; @@ -122,10 +118,12 @@ const uint32 kRevertMsg = 'rems'; const uint32 kConfigChangedMsg = '&cgh'; + template<typename Preferences> PreferencesStorage<Preferences>::PreferencesStorage(const char* file, - const Preferences& defaultPreferences) - : fDefaultPreferences(defaultPreferences) + const Preferences& defaultPreferences) + : + fDefaultPreferences(defaultPreferences) { // default center position fWindowPosition.x = -1; @@ -236,23 +234,25 @@ template<typename Preferences> -PrefFileWatcher<Preferences>::PrefFileWatcher(PreferencesStorage<Preferences>* storage, - BHandler* target) - : BMessageFilter(B_PROGRAMMED_DELIVERY, B_ANY_SOURCE), - fPreferencesStorage(storage), - fTarget(target) +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 @@ || 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); @@ -305,7 +305,7 @@ stop_watching(fTarget); // and start watching the directory again watch_node(&fPreferencesDirectoryNode, B_WATCH_DIRECTORY, - fTarget); + fTarget); msg->what = kUpdatedPreferences; } break; @@ -325,17 +325,15 @@ 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), - PreferencesStorage<Preferences>(file, defaultPreferences), - fPreferencesView(NULL) + 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)); @@ -431,7 +429,7 @@ { BPoint position = PreferencesStorage<Preferences>::WindowPosition(); // center window on screen if it had a bad position - if(position.x < 0 && position.y < 0){ + if (position.x < 0 && position.y < 0){ BRect rect = BScreen().Frame(); BRect windowFrame = Frame(); position.x = (rect.Width() - windowFrame.Width()) / 2; @@ -440,4 +438,6 @@ MoveTo(position); } -#endif +#undef TR_CONTEXT + +#endif // PREFERENCES_WINDOW_h Modified: haiku/trunk/src/preferences/cpufrequency/StatusView.cpp =================================================================== --- haiku/trunk/src/preferences/cpufrequency/StatusView.cpp 2009-12-03 11:56:00 UTC (rev 34456) +++ haiku/trunk/src/preferences/cpufrequency/StatusView.cpp 2009-12-03 12:11:14 UTC (rev 34457) @@ -6,6 +6,7 @@ * Clemens Zeidler, haiku@xxxxxxxxxxxxxxxxxx */ + #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 @@ 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 @@ 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++) { @@ -345,14 +346,15 @@ // #pragma mark - -StatusView::StatusView(BRect frame, bool inDeskbar, - PreferencesStorage<freq_preferences>* storage) - : BView(frame, kDeskbarItemName, B_FOLLOW_LEFT | B_FOLLOW_TOP, +StatusView::StatusView(BRect frame, bool inDeskbar, + PreferencesStorage<freq_preferences>* storage) + : + 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 @@ void StatusView::_AboutRequested() { - BAlert *alert = new BAlert("about", cat.GetString("CPU Frequency\n" - "\twritten by Clemens Zeidler\n" - "\tCopyright 2009, Haiku, Inc.\n",TR_CONTEXT), cat.GetString("Ok",TR_CONTEXT)); + BAlert *alert = new BAlert("about", fCatalog.GetString("CPU Frequency\n" + "\twritten by Clemens Zeidler\n" + "\tCopyright 2009, Haiku, Inc.\n", TR_CONTEXT), + fCatalog.GetString("Ok", TR_CONTEXT)); BTextView *view = alert->TextView(); BFont font; @@ -487,14 +490,14 @@ 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); Modified: haiku/trunk/src/preferences/cpufrequency/StatusView.h =================================================================== --- haiku/trunk/src/preferences/cpufrequency/StatusView.h 2009-12-03 11:56:00 UTC (rev 34456) +++ haiku/trunk/src/preferences/cpufrequency/StatusView.h 2009-12-03 12:11:14 UTC (rev 34457) @@ -5,10 +5,10 @@ * Authors: * Clemens Zeidler, haiku@xxxxxxxxxxxxxxxxxx */ - #ifndef STATUS_VIEW_H #define STATUS_VIEW_H + #include <Dragger.h> #include <MessageFilter.h> #include <MessageRunner.h> @@ -19,124 +19,119 @@ #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 -{ - public: - FrequencySwitcher(CPUFreqDriverInterface* interface, - BHandler* target); - virtual ~FrequencySwitcher(); +class FrequencySwitcher : public BMessageFilter { +public: + 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); - void SetMode(const freq_preferences& pref); +private: + void _CalculateDynamicState(); + void _StartDynamicPolicy(bool start, + const freq_preferences& pref); - private: - void _CalculateDynamicState(); - void _StartDynamicPolicy(bool start, - const freq_preferences& pref); - - CPUFreqDriverInterface* fDriverInterface; - BHandler* fTarget; - BMessageRunner* fMessageRunner; - - freq_info* fCurrentFrequency; - - bool fDynamicPolicyStarted; - bigtime_t fPrevActiveTime; - bigtime_t fPrevTime; - float fSteppingThreshold; - bigtime_t fIntegrationTime; + CPUFreqDriverInterface* fDriverInterface; + BHandler* fTarget; + BMessageRunner* fMessageRunner; + + freq_info* fCurrentFrequency; + + bool fDynamicPolicyStarted; + bigtime_t fPrevActiveTime; + bigtime_t fPrevTime; + float fSteppingThreshold; + bigtime_t fIntegrationTime; }; -class FrequencyMenu : public BMessageFilter -{ - public: - FrequencyMenu(BMenu* menu, BHandler* target, - PreferencesStorage<freq_preferences>* storage, - CPUFreqDriverInterface* interface); - virtual filter_result Filter(BMessage *message, BHandler **target); +class FrequencyMenu : public BMessageFilter { +public: + FrequencyMenu(BMenu* menu, BHandler* target, + PreferencesStorage<freq_preferences>* + storage, + CPUFreqDriverInterface* interface); + virtual filter_result Filter(BMessage* message, BHandler** _target); - void UpdateMenu(); - private: - inline void _SetL1MenuLabelFrom(BMenuItem* item); + void UpdateMenu(); + +private: + inline void _SetL1MenuLabelFrom(BMenuItem* item); - BHandler* fTarget; - BMenuItem* fDynamicPerformance; - BMenuItem* fHighPerformance; - BMenuItem* fLowEnergie; - BMenu* fCustomStateMenu; - - PreferencesStorage<freq_preferences>* fStorage; - CPUFreqDriverInterface* fInterface; + BHandler* fTarget; + BMenuItem* fDynamicPerformance; + BMenuItem* fHighPerformance; + BMenuItem* fLowEnergie; + BMenu* fCustomStateMenu; + + PreferencesStorage<freq_preferences>* fStorage; + CPUFreqDriverInterface* fInterface; }; class StatusView : public BView { - public: - StatusView(BRect frame, bool inDeskbar = false, - PreferencesStorage<freq_preferences>* storage = NULL); - StatusView(BMessage* archive); - virtual ~StatusView(); +public: + StatusView(BRect frame, bool inDeskbar = false, + 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; + static StatusView* Instantiate(BMessage* archive); + virtual status_t Archive(BMessage* archive, + bool deep = true) const; - virtual void AttachedToWindow(); - virtual void DetachedFromWindow(); + virtual void AttachedToWindow(); + virtual void DetachedFromWindow(); - virtual void MessageReceived(BMessage* message); - virtual void FrameResized(float width, float height); - virtual void MouseDown(BPoint where); - virtual void Draw(BRect updateRect); + virtual void MessageReceived(BMessage* message); + virtual void FrameResized(float width, float height); + virtual void MouseDown(BPoint where); + virtual void Draw(BRect updateRect); - virtual void GetPreferredSize(float *width, float *height); - virtual void ResizeToPreferred(void); + virtual void GetPreferredSize(float *width, float *height); + virtual void ResizeToPreferred(void); + + virtual void ShowPopUpMenu(bool show = true); + + virtual void UpdateCPUFreqState(); - virtual void ShowPopUpMenu(bool show = true); - - virtual void UpdateCPUFreqState(); - - private: - void _Init(); - void _SetupNewFreqString(); - void _OpenPreferences(); - void _AboutRequested(); - void _Quit(); - - bool fInDeskbar; - - CPUFreqDriverInterface fDriverInterface; - freq_info* fCurrentFrequency; - FrequencySwitcher* fFrequencySwitcher; - - bool fShowPopUpMenu; - BPopUpMenu* fPreferencesMenu; - BMenuItem* fOpenPrefItem; - BMenuItem* fQuitItem; - - FrequencyMenu* fPreferencesMenuFilter; - bool fOwningStorage; - PreferencesStorage<freq_preferences>* fStorage; - PrefFileWatcher<freq_preferences>* fPrefFileWatcher; - - BString fFreqString; - BDragger* fDragger; +private: + void _Init(); + void _SetupNewFreqString(); + void _OpenPreferences(); + void _AboutRequested(); + void _Quit(); + + bool fInDeskbar; + + CPUFreqDriverInterface fDriverInterface; + freq_info* fCurrentFrequency; + FrequencySwitcher* fFrequencySwitcher; + + bool fShowPopUpMenu; + BPopUpMenu* fPreferencesMenu; + BMenuItem* fOpenPrefItem; + BMenuItem* fQuitItem; + + FrequencyMenu* fPreferencesMenuFilter; + bool fOwningStorage; + PreferencesStorage<freq_preferences>* fStorage; + PrefFileWatcher<freq_preferences>* fPrefFileWatcher; + + BString fFreqString; + BDragger* fDragger; - BCatalog cat; + BCatalog fCatalog; }; #endif // STATUS_VIEW_H