Patch by Vasilis Kaoutsis:

* Style cleanup.
* Renamed class GebsPreferences to Preferences.
* Made NoiseBarMenuItem::fBusyWaiting/fLost private and added getters
  and setters.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23498 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-01-13 21:07:14 +00:00
parent 993976312b
commit 46e13cfc0c
20 changed files with 253 additions and 193 deletions
+5 -5
View File
@@ -34,13 +34,13 @@ AutoIcon::~AutoIcon()
BBitmap* BBitmap*
AutoIcon::bitmap() AutoIcon::Bitmap()
{ {
if (fBitmap == NULL) { if (fBitmap == NULL) {
#ifdef HAIKU_TARGET_PLATFORM_HAIKU #ifdef HAIKU_TARGET_PLATFORM_HAIKU
fBitmap = new BBitmap (BRect (0, 0, 15, 15), B_RGBA32); fBitmap = new BBitmap(BRect(0, 0, 15, 15), B_RGBA32);
#else #else
fBitmap = new BBitmap (BRect (0, 0, 15, 15), B_CMAP8); fBitmap = new BBitmap(BRect(0, 0, 15, 15), B_CMAP8);
#endif #endif
if (fSignature) { if (fSignature) {
entry_ref ref; entry_ref ref;
@@ -48,9 +48,9 @@ AutoIcon::bitmap()
if (BNodeInfo::GetTrackerIcon(&ref, fBitmap, B_MINI_ICON) != B_OK) if (BNodeInfo::GetTrackerIcon(&ref, fBitmap, B_MINI_ICON) != B_OK)
fBitmap->SetBits(k_app_mini, 256, 0, B_CMAP8); fBitmap->SetBits(k_app_mini, 256, 0, B_CMAP8);
} }
if (fbits) if (fbits)
fBitmap->SetBits (fbits, 256, 0, B_CMAP8); fBitmap->SetBits(fbits, 256, 0, B_CMAP8);
} }
return fBitmap; return fBitmap;
} }
+21 -5
View File
@@ -28,18 +28,34 @@ class BBitmap;
class AutoIcon { class AutoIcon {
public: public:
AutoIcon(const char* signature) AutoIcon(const char* signature)
: fSignature (signature), fbits (0), fBitmap (0) {} :
fSignature(signature),
fbits(0),
fBitmap(0)
{
}
AutoIcon(const uchar* bits) AutoIcon(const uchar* bits)
: fSignature (0), fbits (bits), fBitmap (0) {} :
fSignature(0),
fbits(bits),
fBitmap(0)
{
}
~AutoIcon(); ~AutoIcon();
operator BBitmap*() { return bitmap(); } operator BBitmap*()
BBitmap* bitmap(); {
return Bitmap();
}
BBitmap* Bitmap();
private: private:
const char* fSignature; const char* fSignature;
const uchar* fbits; const uchar* fbits;
BBitmap * fBitmap; BBitmap* fBitmap;
}; };
#endif // _AUTO_ICON_H_ #endif // _AUTO_ICON_H_
+41 -33
View File
@@ -29,44 +29,47 @@
#include <Roster.h> #include <Roster.h>
#include <parsedate.h> #include <parsedate.h>
// --------------------------------------------------------------
IconMenuItem::IconMenuItem(BBitmap* icon, const char* title, IconMenuItem::IconMenuItem(BBitmap* icon, const char* title,
BMessage* msg, bool drawText, bool purge) BMessage* msg, bool drawText, bool purge)
:BMenuItem(title, msg), fIcon(icon), fDrawText(drawText), fPurge(purge) : BMenuItem(title, msg),
fIcon(icon),
fDrawText(drawText),
fPurge(purge)
{ {
if (!fIcon) if (!fIcon)
DefaultIcon(NULL); DefaultIcon(NULL);
} }
// --------------------------------------------------------------
IconMenuItem::IconMenuItem(BBitmap* icon, BMenu* menu, bool drawText, bool purge) IconMenuItem::IconMenuItem(BBitmap* icon, BMenu* menu, bool drawText, bool purge)
:BMenuItem(menu), fIcon(icon), fDrawText(drawText), fPurge(purge) : BMenuItem(menu),
fIcon(icon),
fDrawText(drawText),
fPurge(purge)
{ {
if (!fIcon) if (!fIcon)
DefaultIcon(NULL); DefaultIcon(NULL);
} }
// --------------------------------------------------------------
IconMenuItem::IconMenuItem(const char* mime, const char* title, BMessage* msg, bool drawText) IconMenuItem::IconMenuItem(const char* mime, const char* title, BMessage* msg, bool drawText)
:BMenuItem(title, msg), fIcon(NULL), fDrawText(drawText) : BMenuItem(title, msg),
fIcon(NULL),
fDrawText(drawText)
{ {
DefaultIcon(mime); DefaultIcon(mime);
} }
// --------------------------------------------------------------
IconMenuItem::~IconMenuItem() IconMenuItem::~IconMenuItem()
{ {
if (fPurge && fIcon) if (fPurge && fIcon)
delete fIcon; delete fIcon;
} }
// --------------------------------------------------------------
void IconMenuItem::DrawContent() void IconMenuItem::DrawContent()
{ {
BPoint loc; BPoint loc;
@@ -80,15 +83,17 @@ void IconMenuItem::DrawContent()
} }
} }
// --------------------------------------------------------------
void IconMenuItem::Highlight(bool hilited) void
IconMenuItem::Highlight(bool hilited)
{ {
BMenuItem::Highlight(hilited); BMenuItem::Highlight(hilited);
DrawIcon(); DrawIcon();
} }
// --------------------------------------------------------------
void IconMenuItem::DrawIcon() void
IconMenuItem::DrawIcon()
{ {
// TODO: exact code duplication with TeamBarMenuItem::DrawIcon() // TODO: exact code duplication with TeamBarMenuItem::DrawIcon()
if (!fIcon) if (!fIcon)
@@ -112,8 +117,9 @@ void IconMenuItem::DrawIcon()
menu->SetDrawingMode(B_OP_COPY); menu->SetDrawingMode(B_OP_COPY);
} }
// --------------------------------------------------------------
void IconMenuItem::GetContentSize(float* width, float* height) void
IconMenuItem::GetContentSize(float* width, float* height)
{ {
BMenuItem::GetContentSize(width, height); BMenuItem::GetContentSize(width, height);
int limit = IconMenuItem::MinHeight(); int limit = IconMenuItem::MinHeight();
@@ -125,25 +131,26 @@ void IconMenuItem::GetContentSize(float* width, float* height)
*width = 16; *width = 16;
} }
// --------------------------------------------------------------
void IconMenuItem::DefaultIcon(const char* mime) void
IconMenuItem::DefaultIcon(const char* mime)
{ {
BRect r(0, 0, 15, 15); BRect rect(0, 0, 15, 15);
fIcon = new BBitmap(r, B_COLOR_8_BIT); fIcon = new BBitmap(rect, B_COLOR_8_BIT);
if (mime) { if (mime) {
BMimeType mimeType(mime); BMimeType mimeType(mime);
if (mimeType.GetIcon(fIcon, B_MINI_ICON)!=B_OK) if (mimeType.GetIcon(fIcon, B_MINI_ICON) != B_OK)
fDrawText = true; fDrawText = true;
} else { } else {
app_info info; app_info info;
be_app->GetAppInfo(&info); be_app->GetAppInfo(&info);
if (BNodeInfo::GetTrackerIcon(&info.ref, fIcon, B_MINI_ICON)!=B_OK) if (BNodeInfo::GetTrackerIcon(&info.ref, fIcon, B_MINI_ICON) != B_OK)
fDrawText = true; fDrawText = true;
} }
fPurge = true; fPurge = true;
} }
// --------------------------------------------------------------
int IconMenuItem::MinHeight() int IconMenuItem::MinHeight()
{ {
static int minheight = -1; static int minheight = -1;
@@ -152,17 +159,18 @@ int IconMenuItem::MinHeight()
return minheight; return minheight;
} }
// --------------------------------------------------------------
bool before_dano() bool
before_dano()
{ {
static int old_version = -1; static int old_version = -1;
if (old_version < 0) if (old_version < 0) {
{
system_info sys_info; system_info sys_info;
get_system_info(&sys_info); get_system_info(&sys_info);
time_t kernelTime = parsedate(sys_info.kernel_build_date, time(NULL)); time_t kernelTime = parsedate(sys_info.kernel_build_date, time(NULL));
struct tm * date = gmtime(&kernelTime); struct tm* date = gmtime(&kernelTime);
old_version = (date->tm_year < 101 || date->tm_year == 101 && date->tm_mon < 10); old_version = (date->tm_year < 101 || date->tm_year == 101 && date->tm_mon < 10);
} }
return old_version; return old_version;
} }
+22 -20
View File
@@ -21,38 +21,40 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#ifndef _ICON_MENU_ITEM_H_ #ifndef _ICON_MENU_ITEM_H_
#define _ICON_MENU_ITEM_H_ #define _ICON_MENU_ITEM_H_
#include <MenuItem.h> #include <MenuItem.h>
class BBitmap; class BBitmap;
//---------------------------------------------------------------
class IconMenuItem : public BMenuItem { class IconMenuItem : public BMenuItem {
public:
IconMenuItem(BBitmap*, const char* title,
BMessage*, bool drawText = true, bool purge = false);
public: IconMenuItem(BBitmap*, BMenu*, bool drawText = true,
IconMenuItem(BBitmap*, const char* title, bool purge = false);
BMessage*, bool drawText = true, bool purge = false);
IconMenuItem(BBitmap*, BMenu*,
bool drawText = true, bool purge = false);
IconMenuItem(const char* mime, const char* title, BMessage*,
bool drawText = true);
virtual ~IconMenuItem();
virtual void DrawContent();
virtual void Highlight(bool isHighlighted);
virtual void GetContentSize(float* width, float* height);
static int MinHeight();
private: IconMenuItem(const char* mime, const char* title, BMessage*,
void DefaultIcon(const char* mime); bool drawText = true);
void DrawIcon();
BBitmap* fIcon; virtual ~IconMenuItem();
bool fDrawText; virtual void DrawContent();
bool fPurge; virtual void Highlight(bool isHighlighted);
virtual void GetContentSize(float* width, float* height);
static int MinHeight();
private:
void DefaultIcon(const char* mime);
void DrawIcon();
BBitmap* fIcon;
bool fDrawText;
bool fPurge;
}; };
bool before_dano(); bool before_dano();
@@ -25,19 +25,20 @@
class KernelMemoryBarMenuItem : public BMenuItem { class KernelMemoryBarMenuItem : public BMenuItem {
public: public:
KernelMemoryBarMenuItem(system_info& systemInfo); KernelMemoryBarMenuItem(system_info& systemInfo);
virtual void DrawContent(); virtual void DrawContent();
virtual void GetContentSize(float* _width, float* _height); virtual void GetContentSize(float* _width, float* _height);
void DrawBar(bool force); void DrawBar(bool force);
void UpdateSituation(float commitedMemory, float totalWriteMemory); void UpdateSituation(float commitedMemory, float totalWriteMemory);
private: private:
float fTotalWriteMemory; float fTotalWriteMemory;
float fPhsysicalMemory; float fPhsysicalMemory;
float fCommitedMemory; float fCommitedMemory;
double fLastSum; double fLastSum;
float fGrenze1; float fGrenze1;
float fGrenze2; float fGrenze2;
}; };
#endif // _KERNEL_MEMORY_BAR_MENU_ITEM_H_ #endif // _KERNEL_MEMORY_BAR_MENU_ITEM_H_
+2 -3
View File
@@ -35,8 +35,7 @@
float gMemoryTextWidth; float gMemoryTextWidth;
MemoryBarMenu::MemoryBarMenu(const char* name, info_pack* infos, MemoryBarMenu::MemoryBarMenu(const char* name, info_pack* infos, system_info& systemInfo)
system_info& systemInfo)
: BMenu(name), : BMenu(name),
fFirstShow(true) fFirstShow(true)
{ {
@@ -94,7 +93,7 @@ MemoryBarMenu::Pulse()
int lastRecycle = 0; int lastRecycle = 0;
int firstRecycle = 0; int firstRecycle = 0;
int k; int k;
MemoryBarMenuItem *item; MemoryBarMenuItem* item;
int total = 0; int total = 0;
for (k = 1; (item = (MemoryBarMenuItem*)ItemAt(k)) != NULL; k++) { for (k = 1; (item = (MemoryBarMenuItem*)ItemAt(k)) != NULL; k++) {
int m = item->UpdateSituation(commitedMemory); int m = item->UpdateSituation(commitedMemory);
+7 -6
View File
@@ -16,8 +16,8 @@
License along with this library; if not, write to the Free Software License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#ifndef _MEMORY_BAR_MENU_H_ #ifndef MEMORY_BAR_MENU_H
#define _MEMORY_BAR_MENU_H_ #define MEMORY_BAR_MENU_H
#include "Utilities.h" #include "Utilities.h"
@@ -27,16 +27,17 @@
class MemoryBarMenuItem; class MemoryBarMenuItem;
typedef struct { typedef struct {
MemoryBarMenuItem* item; MemoryBarMenuItem* item;
int index; int index;
} MRecycleItem; } MRecycleItem;
class MemoryBarMenu : public BMenu { class MemoryBarMenu : public BMenu {
public: public:
MemoryBarMenu(const char* name, info_pack* infos, MemoryBarMenu(const char* name, info_pack* infos, system_info& systemInfo);
system_info& systemInfo); virtual ~MemoryBarMenu();
virtual ~MemoryBarMenu();
virtual void Draw(BRect updateRect); virtual void Draw(BRect updateRect);
virtual void Pulse(); virtual void Pulse();
@@ -52,4 +53,4 @@ class MemoryBarMenu : public BMenu {
extern float gMemoryTextWidth; extern float gMemoryTextWidth;
#endif // _MEMORY_BAR_MENU_H_ #endif // MEMORY_BAR_MENU_H
@@ -244,20 +244,20 @@ MemoryBarMenuItem::UpdateSituation(int commitedMemory)
void void
MemoryBarMenuItem::BarUpdate() MemoryBarMenuItem::BarUpdate()
{ {
area_info ainfo; area_info areaInfo;
int32 cookie = 0; int32 cookie = 0;
size_t lram_size = 0; size_t lram_size = 0;
size_t lwram_size = 0; size_t lwram_size = 0;
bool exists = false; bool exists = false;
while (get_next_area_info(fTeamID, &cookie, &ainfo) == B_OK) { while (get_next_area_info(fTeamID, &cookie, &areaInfo) == B_OK) {
exists = true; exists = true;
lram_size += ainfo.ram_size; lram_size += areaInfo.ram_size;
// TODO: this won't work this way anymore under Haiku! // TODO: this won't work this way anymore under Haiku!
// int zone = (int (ainfo.address) & 0xf0000000) >> 24; // int zone = (int (areaInfo.address) & 0xf0000000) >> 24;
if ((ainfo.protection & B_WRITE_AREA) != 0) if ((areaInfo.protection & B_WRITE_AREA) != 0)
lwram_size += ainfo.ram_size; lwram_size += areaInfo.ram_size;
// && (zone & 0xf0) != 0xA0 // Exclude media buffers // && (zone & 0xf0) != 0xA0 // Exclude media buffers
// && (fTeamID != gAppServerTeamID || zone != 0x90)) // Exclude app_server side of bitmaps // && (fTeamID != gAppServerTeamID || zone != 0x90)) // Exclude app_server side of bitmaps
} }
@@ -287,4 +287,3 @@ MemoryBarMenuItem::Reset(char* name, team_id team, BBitmap* icon,
fIcon = icon; fIcon = icon;
Init(); Init();
} }
@@ -46,17 +46,19 @@ NoiseBarMenuItem::DrawContent()
void void
NoiseBarMenuItem::DrawBar(bool force) NoiseBarMenuItem::DrawBar(bool force)
{ {
bool selected = IsSelected (); bool selected = IsSelected();
BRect frame = Frame(); BRect frame = Frame();
BMenu* menu = Menu (); BMenu* menu = Menu();
frame.right -= 24; frame.right -= 24;
frame.left = frame.right-kBarWidth; frame.left = frame.right - kBarWidth;
frame.top += 5; frame.top += 5;
frame.bottom = frame.top+8; frame.bottom = frame.top + 8;
if (fBusyWaiting < 0) if (fBusyWaiting < 0)
return; return;
if (fGrenze1 < 0) if (fGrenze1 < 0)
force = true; force = true;
if (force) { if (force) {
if (selected) if (selected)
menu->SetHighColor(gFrameColorSelected); menu->SetHighColor(gFrameColorSelected);
@@ -64,6 +66,7 @@ NoiseBarMenuItem::DrawBar(bool force)
menu->SetHighColor(gFrameColor); menu->SetHighColor(gFrameColor);
menu->StrokeRect(frame); menu->StrokeRect(frame);
} }
frame.InsetBy(1, 1); frame.InsetBy(1, 1);
BRect r = frame; BRect r = frame;
float grenze1 = frame.left+(frame.right-frame.left)*fBusyWaiting; float grenze1 = frame.left+(frame.right-frame.left)*fBusyWaiting;
@@ -119,5 +122,5 @@ NoiseBarMenuItem::GetContentSize(float* width, float* height)
BMenuItem::GetContentSize(width, height); BMenuItem::GetContentSize(width, height);
if (*height < 16) if (*height < 16)
*height = 16; *height = 16;
*width += 20+kBarWidth; *width += 20 + kBarWidth;
} }
+26 -11
View File
@@ -27,21 +27,36 @@
#include <MenuItem.h> #include <MenuItem.h>
//---------------------------------------------------------------
class NoiseBarMenuItem : public BMenuItem { class NoiseBarMenuItem : public BMenuItem {
public:
NoiseBarMenuItem();
public: virtual void DrawContent();
NoiseBarMenuItem(); virtual void GetContentSize(float* width, float* height);
virtual void DrawContent();
virtual void GetContentSize(float* width, float* height);
void DrawBar(bool force);
double fBusyWaiting;
double fLost;
private: void DrawBar(bool force);
float fGrenze1;
float fGrenze2; double BusyWaiting() const
{
return fBusyWaiting;
}
void SetBusyWaiting(double busyWaiting)
{
fBusyWaiting = busyWaiting;
}
void SetLost(double lost)
{
fLost = lost;
}
private:
double fBusyWaiting;
double fLost;
float fGrenze1;
float fGrenze2;
}; };
#endif // _NOISE_BAR_MENU_ITEM_H_ #endif // _NOISE_BAR_MENU_ITEM_H_
+2 -3
View File
@@ -36,7 +36,7 @@ PCWindow::PCWindow()
: BWindow(BRect(100, 150, 131, 181), "ProcessController", B_TITLED_WINDOW, : BWindow(BRect(100, 150, 131, 181), "ProcessController", B_TITLED_WINDOW,
B_NOT_H_RESIZABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS) B_NOT_H_RESIZABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS)
{ {
GebsPreferences preferences(kPreferencesFileName); Preferences preferences(kPreferencesFileName);
preferences.SaveInt32(kCurrentVersion, kVersionName); preferences.SaveInt32(kCurrentVersion, kVersionName);
preferences.LoadWindowPosition(this, kPosPrefName); preferences.LoadWindowPosition(this, kPosPrefName);
@@ -70,11 +70,10 @@ PCWindow::~PCWindow()
bool bool
PCWindow::QuitRequested() PCWindow::QuitRequested()
{ {
GebsPreferences tPreferences(kPreferencesFileName); Preferences tPreferences(kPreferencesFileName);
tPreferences.SaveInt32(kCurrentVersion, kVersionName); tPreferences.SaveInt32(kCurrentVersion, kVersionName);
tPreferences.SaveWindowPosition(this, kPosPrefName); tPreferences.SaveWindowPosition(this, kPosPrefName);
be_app->PostMessage(B_QUIT_REQUESTED); be_app->PostMessage(B_QUIT_REQUESTED);
return true; return true;
} }
+1 -1
View File
@@ -76,7 +76,7 @@ PCApplication::~PCApplication()
void void
PCApplication::ReadyToRun() PCApplication::ReadyToRun()
{ {
GebsPreferences preferences(kPreferencesFileName); Preferences preferences(kPreferencesFileName);
int32 version = 0; int32 version = 0;
preferences.ReadInt32(version, kVersionName); preferences.ReadInt32(version, kVersionName);
if (version != kCurrentVersion) { if (version != kCurrentVersion) {
+24 -24
View File
@@ -21,6 +21,10 @@
#include "Preferences.h" #include "Preferences.h"
#include "Utilities.h" #include "Utilities.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Alert.h> #include <Alert.h>
#include <Directory.h> #include <Directory.h>
#include <File.h> #include <File.h>
@@ -29,12 +33,8 @@
#include <Mime.h> #include <Mime.h>
#include <Path.h> #include <Path.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Preferences::Preferences(const char* name, const char* signature, bool doSave)
GebsPreferences::GebsPreferences(const char* name, const char* signature, bool doSave)
: BMessage('Pref'), BLocker("Preferences", true), : BMessage('Pref'), BLocker("Preferences", true),
fSavePreferences(doSave) fSavePreferences(doSave)
{ {
@@ -61,7 +61,7 @@ GebsPreferences::GebsPreferences(const char* name, const char* signature, bool d
} }
GebsPreferences::GebsPreferences(const entry_ref &ref, const char* signature, bool doSave) Preferences::Preferences(const entry_ref &ref, const char* signature, bool doSave)
: BMessage('Pref'), BLocker("Preferences", true), : BMessage('Pref'), BLocker("Preferences", true),
fSavePreferences(doSave) fSavePreferences(doSave)
{ {
@@ -82,7 +82,7 @@ GebsPreferences::GebsPreferences(const entry_ref &ref, const char* signature, bo
} }
GebsPreferences::~GebsPreferences() Preferences::~Preferences()
{ {
if (fSavePreferences) { if (fSavePreferences) {
BFile file; BFile file;
@@ -101,7 +101,7 @@ GebsPreferences::~GebsPreferences()
Flatten(&file); Flatten(&file);
if (fSignature) { if (fSignature) {
file.WriteAttr("BEOS:TYPE", B_MIME_STRING_TYPE, 0, fSignature, file.WriteAttr("BEOS:TYPE", B_MIME_STRING_TYPE, 0, fSignature,
strlen(fSignature)+1); strlen(fSignature) + 1);
} }
} else { } else {
// implement saving somewhere else! // implement saving somewhere else!
@@ -119,7 +119,7 @@ GebsPreferences::~GebsPreferences()
status_t status_t
GebsPreferences::MakeEmpty() Preferences::MakeEmpty()
{ {
Lock(); Lock();
status_t status = BMessage::MakeEmpty(); status_t status = BMessage::MakeEmpty();
@@ -129,7 +129,7 @@ GebsPreferences::MakeEmpty()
void void
GebsPreferences::SaveWindowPosition(BWindow* window, const char* name) Preferences::SaveWindowPosition(BWindow* window, const char* name)
{ {
Lock(); Lock();
@@ -144,7 +144,7 @@ GebsPreferences::SaveWindowPosition(BWindow* window, const char* name)
void void
GebsPreferences::LoadWindowPosition(BWindow* window, const char* name) Preferences::LoadWindowPosition(BWindow* window, const char* name)
{ {
Lock(); Lock();
@@ -159,7 +159,7 @@ GebsPreferences::LoadWindowPosition(BWindow* window, const char* name)
void void
GebsPreferences::SaveWindowFrame(BWindow* window, const char* name) Preferences::SaveWindowFrame(BWindow* window, const char* name)
{ {
Lock(); Lock();
@@ -174,7 +174,7 @@ GebsPreferences::SaveWindowFrame(BWindow* window, const char* name)
void void
GebsPreferences::LoadWindowFrame(BWindow* window, const char* name) Preferences::LoadWindowFrame(BWindow* window, const char* name)
{ {
Lock(); Lock();
@@ -190,7 +190,7 @@ GebsPreferences::LoadWindowFrame(BWindow* window, const char* name)
void void
GebsPreferences::SaveInt32(int32 value, const char* name) Preferences::SaveInt32(int32 value, const char* name)
{ {
Lock(); Lock();
@@ -204,7 +204,7 @@ GebsPreferences::SaveInt32(int32 value, const char* name)
bool bool
GebsPreferences::ReadInt32(int32 &val, const char* name) Preferences::ReadInt32(int32 &val, const char* name)
{ {
Lock(); Lock();
int32 readVal; int32 readVal;
@@ -217,7 +217,7 @@ GebsPreferences::ReadInt32(int32 &val, const char* name)
void void
GebsPreferences::SaveFloat(float val, const char* name) Preferences::SaveFloat(float val, const char* name)
{ {
Lock(); Lock();
if (HasFloat(name)) if (HasFloat(name))
@@ -229,11 +229,11 @@ GebsPreferences::SaveFloat(float val, const char* name)
bool bool
GebsPreferences::ReadFloat(float &val, const char* name) Preferences::ReadFloat(float &val, const char* name)
{ {
Lock(); Lock();
float readVal; float readVal;
bool found = FindFloat(name, &readVal)==B_OK; bool found = FindFloat(name, &readVal) == B_OK;
if (found) if (found)
val = readVal; val = readVal;
Unlock(); Unlock();
@@ -242,7 +242,7 @@ GebsPreferences::ReadFloat(float &val, const char* name)
void void
GebsPreferences::SaveRect(BRect &rect, const char* name) Preferences::SaveRect(BRect& rect, const char* name)
{ {
Lock(); Lock();
if (HasRect(name)) if (HasRect(name))
@@ -254,11 +254,11 @@ GebsPreferences::SaveRect(BRect &rect, const char* name)
BRect & BRect &
GebsPreferences::ReadRect(BRect &rect, const char* name) Preferences::ReadRect(BRect& rect, const char* name)
{ {
Lock(); Lock();
BRect loaded; BRect loaded;
if (FindRect(name, &loaded)==B_OK) if (FindRect(name, &loaded) == B_OK)
rect = loaded; rect = loaded;
Unlock(); Unlock();
return rect; return rect;
@@ -266,7 +266,7 @@ GebsPreferences::ReadRect(BRect &rect, const char* name)
void void
GebsPreferences::SaveString(BString &string, const char* name) Preferences::SaveString(BString &string, const char* name)
{ {
Lock(); Lock();
if (HasString(name)) if (HasString(name))
@@ -278,7 +278,7 @@ GebsPreferences::SaveString(BString &string, const char* name)
void void
GebsPreferences::SaveString(const char* string, const char* name) Preferences::SaveString(const char* string, const char* name)
{ {
Lock(); Lock();
if (HasString(name)) if (HasString(name))
@@ -290,7 +290,7 @@ GebsPreferences::SaveString(const char* string, const char* name)
bool bool
GebsPreferences::ReadString(BString &string, const char* name) Preferences::ReadString(BString &string, const char* name)
{ {
Lock(); Lock();
bool loaded = FindString(name, &string) == B_OK; bool loaded = FindString(name, &string) == B_OK;
+32 -31
View File
@@ -21,42 +21,43 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#ifndef PREFERENCES_H
#define PREFERENCES_H
#ifndef _Preferences_H_
#define _Preferences_H_
#include <Window.h>
#include <Message.h>
#include <Locker.h> #include <Locker.h>
#include <Message.h>
#include <Window.h>
class GebsPreferences : public BMessage, public BLocker {
public: class Preferences : public BMessage, public BLocker {
GebsPreferences (const char* thename, const char* thesignature=NULL, bool doSave=true); public:
GebsPreferences (const entry_ref &ref, const char* thesignature=NULL, bool doSave=true); Preferences(const char* thename, const char* thesignature = NULL, bool doSave = true);
~GebsPreferences (); Preferences(const entry_ref& ref, const char* thesignature = NULL, bool doSave = true);
status_t MakeEmpty (); ~Preferences();
void SaveWindowPosition (BWindow* window, const char* name); status_t MakeEmpty();
void LoadWindowPosition (BWindow* window, const char* name); void SaveWindowPosition(BWindow* window, const char* name);
void SaveWindowFrame (BWindow* window, const char* name); void LoadWindowPosition(BWindow* window, const char* name);
void LoadWindowFrame (BWindow* window, const char* name); void SaveWindowFrame(BWindow* window, const char* name);
void SaveInt32 (int32 val, const char* name); void LoadWindowFrame(BWindow* window, const char* name);
bool ReadInt32 (int32 &val, const char* name); void SaveInt32(int32 val, const char* name);
void SaveFloat (float val, const char* name); bool ReadInt32(int32& val, const char* name);
bool ReadFloat (float &val, const char* name); void SaveFloat(float val, const char* name);
void SaveRect (BRect &rect, const char* name); bool ReadFloat(float& val, const char* name);
BRect& ReadRect (BRect &rect, const char* name); void SaveRect(BRect& rect, const char* name);
void SaveString (BString &string, const char* name); BRect& ReadRect(BRect& rect, const char* name);
void SaveString (const char* string, const char* name); void SaveString(BString& string, const char* name);
bool ReadString (BString &string, const char* name); void SaveString(const char* string, const char* name);
bool fNewPreferences; bool ReadString(BString& string, const char* name);
bool fSavePreferences;
char *fName; private:
char *fSignature; bool fNewPreferences;
entry_ref *fSettingsFile; bool fSavePreferences;
char* fName;
char* fSignature;
entry_ref* fSettingsFile;
}; };
extern GebsPreferences gPreferences; extern Preferences gPreferences;
// ggPreferences.LoadWindowPosition(this, kPosPrefName); // ggPreferences.LoadWindowPosition(this, kPosPrefName);
// ggPreferences.SaveWindowPosition(this, kPosPrefName); // ggPreferences.SaveWindowPosition(this, kPosPrefName);
@@ -64,4 +65,4 @@ extern GebsPreferences gPreferences;
// ggPreferences.LoadWindowFrame(this, frame); // ggPreferences.LoadWindowFrame(this, frame);
// ggPreferences.SaveWindowFrame(this, frame); // ggPreferences.SaveWindowFrame(this, frame);
#endif // _Preferences_H_ #endif // PREFERENCES_H
@@ -417,7 +417,7 @@ ProcessController::AttachedToWindow()
else else
SetViewColor(kBlack); SetViewColor(kBlack);
GebsPreferences tPreferences(kPreferencesFileName, NULL, false); Preferences tPreferences(kPreferencesFileName, NULL, false);
DefaultColors(); DefaultColors();
system_info info; system_info info;
+1 -1
View File
@@ -28,7 +28,7 @@
class QuitMenu : public BMenu { class QuitMenu : public BMenu {
public: public:
QuitMenu(const char* title, info_pack* infos, int infosCount); QuitMenu(const char* title, info_pack* infos, int infosCount);
virtual void AttachedToWindow(); virtual void AttachedToWindow();
virtual void DetachedFromWindow(); virtual void DetachedFromWindow();
virtual void MessageReceived(BMessage *msg); virtual void MessageReceived(BMessage *msg);
+9 -6
View File
@@ -103,7 +103,7 @@ TeamBarMenu::Pulse()
k -= lastRecycle; k -= lastRecycle;
lastRecycle = 0; lastRecycle = 0;
} }
total += item->fUser+item->fKernel; total += item->fUser + item->fKernel;
} }
} }
@@ -126,7 +126,7 @@ TeamBarMenu::Pulse()
j++; j++;
if (j == fTeamCount) { if (j == fTeamCount) {
fTeamCount += 10; fTeamCount += 10;
fTeamList = (team_id*)realloc(fTeamList, sizeof(team_id)*fTeamCount); fTeamList = (team_id*)realloc(fTeamList, sizeof(team_id) * fTeamCount);
} }
fTeamList[j] = infos.team_info.team; fTeamList[j] = infos.team_info.team;
if (!get_team_name_and_icon(infos, true)) { if (!get_team_name_and_icon(infos, true)) {
@@ -165,16 +165,19 @@ TeamBarMenu::Pulse()
// Delete the items that haven't been recycled. // Delete the items that haven't been recycled.
if (firstRecycle < lastRecycle) if (firstRecycle < lastRecycle)
RemoveItems(IndexOf(fRecycleList[firstRecycle].item), lastRecycle-firstRecycle, true); RemoveItems(IndexOf(fRecycleList[firstRecycle].item), lastRecycle - firstRecycle, true);
total /= gCPUcount; total /= gCPUcount;
total = 1-total; total = 1 - total;
fLastTotalTime = system_time(); fLastTotalTime = system_time();
NoiseBarMenuItem* noiseItem; NoiseBarMenuItem* noiseItem;
if ((noiseItem = (NoiseBarMenuItem*)ItemAt(0)) != NULL) { if ((noiseItem = (NoiseBarMenuItem*)ItemAt(0)) != NULL) {
noiseItem->fBusyWaiting = 0; noiseItem->SetBusyWaiting(0);
noiseItem->fLost = (total >= 0 ? total : 0); if (total >= 0)
noiseItem->SetLost(total);
else
noiseItem->SetLost(0);
noiseItem->DrawBar(false); noiseItem->DrawBar(false);
} }
+17 -10
View File
@@ -17,6 +17,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include "TeamBarMenuItem.h" #include "TeamBarMenuItem.h"
#include "Colors.h" #include "Colors.h"
@@ -30,8 +31,8 @@
#define B_USAGE_SELF 0 #define B_USAGE_SELF 0
TeamBarMenuItem::TeamBarMenuItem(BMenu *menu, BMessage *kill_team, team_id team, TeamBarMenuItem::TeamBarMenuItem(BMenu* menu, BMessage* kill_team, team_id team,
BBitmap* icon, bool deleteIcon) BBitmap* icon, bool deleteIcon)
: BMenuItem(menu, kill_team), : BMenuItem(menu, kill_team),
fTeamID(team), fTeamID(team),
fIcon(icon), fIcon(icon),
@@ -44,8 +45,8 @@ TeamBarMenuItem::TeamBarMenuItem(BMenu *menu, BMessage *kill_team, team_id team,
void void
TeamBarMenuItem::Init() TeamBarMenuItem::Init()
{ {
team_info tminfo; team_info teamInfo;
get_team_info(fTeamID, &tminfo); get_team_info(fTeamID, &teamInfo);
get_team_usage_info(fTeamID, B_USAGE_SELF, &fTeamUsageInfo); get_team_usage_info(fTeamID, B_USAGE_SELF, &fTeamUsageInfo);
if (fTeamID == B_SYSTEM_TEAM) { if (fTeamID == B_SYSTEM_TEAM) {
thread_info thinfos; thread_info thinfos;
@@ -139,8 +140,8 @@ TeamBarMenuItem::DrawBar(bool force)
frame.InsetBy(1, 1); frame.InsetBy(1, 1);
BRect r = frame; BRect r = frame;
float grenze1 = frame.left+(frame.right-frame.left)*fKernel/gCPUcount; float grenze1 = frame.left + (frame.right - frame.left) * fKernel / gCPUcount;
float grenze2 = frame.left+(frame.right-frame.left)*(fKernel+fUser)/gCPUcount; float grenze2 = frame.left + (frame.right - frame.left) * (fKernel + fUser) / gCPUcount;
if (grenze1 > frame.right) if (grenze1 > frame.right)
grenze1 = frame.right; grenze1 = frame.right;
if (grenze2 > frame.right) if (grenze2 > frame.right)
@@ -199,7 +200,7 @@ TeamBarMenuItem::GetContentSize(float* width, float* height)
BMenuItem::GetContentSize(width, height); BMenuItem::GetContentSize(width, height);
if (*height < 16) if (*height < 16)
*height = 16; *height = 16;
*width += 40+kBarWidth; *width += 40 + kBarWidth;
} }
@@ -219,8 +220,12 @@ TeamBarMenuItem::BarUpdate()
usage.user_time = idle; usage.user_time = idle;
idle -= fTeamUsageInfo.user_time; idle -= fTeamUsageInfo.user_time;
} }
fKernel = double(usage.kernel_time-fTeamUsageInfo.kernel_time-idle)/double(now-fLastTime);
fUser = double(usage.user_time-fTeamUsageInfo.user_time)/double(now-fLastTime); fKernel = double(usage.kernel_time - fTeamUsageInfo.kernel_time - idle)
/ double(now - fLastTime);
fUser = double(usage.user_time - fTeamUsageInfo.user_time) / double(now - fLastTime);
if (fKernel < 0) if (fKernel < 0)
fKernel = 0; fKernel = 0;
fLastTime = now; fLastTime = now;
@@ -237,11 +242,13 @@ TeamBarMenuItem::Reset(char* name, team_id team, BBitmap* icon, bool deleteIcon)
SetLabel(name); SetLabel(name);
fTeamID = team; fTeamID = team;
Init(); Init();
if (fDeleteIcon) if (fDeleteIcon)
delete fIcon; delete fIcon;
fDeleteIcon = deleteIcon; fDeleteIcon = deleteIcon;
fIcon = icon; fIcon = icon;
Message()->ReplaceInt32("team", team); Message()->ReplaceInt32("team", team);
((ThreadBarMenu*) Submenu())->Reset(team); ((ThreadBarMenu*)Submenu())->Reset(team);
BarUpdate(); BarUpdate();
} }
+3 -2
View File
@@ -27,8 +27,9 @@ class BBitmap;
class TeamBarMenuItem : public BMenuItem { class TeamBarMenuItem : public BMenuItem {
public: public:
TeamBarMenuItem(BMenu *menu, BMessage *kill_team, TeamBarMenuItem(BMenu* menu, BMessage* kill_team, team_id team,
team_id team, BBitmap* icon, bool deleteIcon); BBitmap* icon, bool deleteIcon);
virtual ~TeamBarMenuItem(); virtual ~TeamBarMenuItem();
virtual void DrawContent(); virtual void DrawContent();
@@ -57,13 +57,15 @@ ThreadBarMenuItem::DrawBar(bool force)
BRect frame = Frame(); BRect frame = Frame();
BMenu* menu = Menu(); BMenu* menu = Menu();
frame.right -= 24; frame.right -= 24;
frame.left = frame.right-kBarWidth; frame.left = frame.right - kBarWidth;
frame.top += 3; frame.top += 3;
frame.bottom = frame.top+8; frame.bottom = frame.top + 8;
if (fKernel < 0) if (fKernel < 0)
return; return;
if (fGrenze1 < 0) if (fGrenze1 < 0)
force = true; force = true;
if (force) { if (force) {
if (selected) if (selected)
menu->SetHighColor(gFrameColorSelected); menu->SetHighColor(gFrameColorSelected);
@@ -71,17 +73,20 @@ ThreadBarMenuItem::DrawBar(bool force)
menu->SetHighColor(gFrameColor); menu->SetHighColor(gFrameColor);
menu->StrokeRect(frame); menu->StrokeRect(frame);
} }
frame.InsetBy(1, 1); frame.InsetBy(1, 1);
BRect r = frame; BRect r = frame;
float grenze1 = frame.left+(frame.right-frame.left)*fKernel; float grenze1 = frame.left + (frame.right - frame.left) * fKernel;
float grenze2 = frame.left+(frame.right-frame.left)*(fKernel+fUser); float grenze2 = frame.left + (frame.right - frame.left) * (fKernel + fUser);
if (grenze1 > frame.right) if (grenze1 > frame.right)
grenze1 = frame.right; grenze1 = frame.right;
if (grenze2 > frame.right) if (grenze2 > frame.right)
grenze2 = frame.right; grenze2 = frame.right;
r.right = grenze1; r.right = grenze1;
if (!force) if (!force)
r.left = fGrenze1; r.left = fGrenze1;
if (r.left < r.right) { if (r.left < r.right) {
if (selected) if (selected)
menu->SetHighColor(gKernelColorSelected); menu->SetHighColor(gKernelColorSelected);
@@ -89,6 +94,7 @@ ThreadBarMenuItem::DrawBar(bool force)
menu->SetHighColor(gKernelColor); menu->SetHighColor(gKernelColor);
menu->FillRect(r); menu->FillRect(r);
} }
r.left = grenze1; r.left = grenze1;
r.right = grenze2; r.right = grenze2;
if (!force) { if (!force) {
@@ -127,7 +133,7 @@ ThreadBarMenuItem::GetContentSize(float* width, float* height)
BMenuItem::GetContentSize(width, height); BMenuItem::GetContentSize(width, height);
// if (*height < 16) // if (*height < 16)
// *height = 16; // *height = 16;
*width += 10+kBarWidth; *width += 10 + kBarWidth;
} }
@@ -135,11 +141,11 @@ void
ThreadBarMenuItem::Highlight(bool on) ThreadBarMenuItem::Highlight(bool on)
{ {
if (on) { if (on) {
PriorityMenu * popup = (PriorityMenu *) Submenu (); PriorityMenu* popup = (PriorityMenu*)Submenu();
if (popup) if (popup)
popup->Update (fThreadInfo.priority); popup->Update(fThreadInfo.priority);
} }
BMenuItem::Highlight (on); BMenuItem::Highlight(on);
} }
@@ -149,8 +155,8 @@ ThreadBarMenuItem::BarUpdate()
thread_info info; thread_info info;
if (get_thread_info(fThreadID, &info) == B_OK) { if (get_thread_info(fThreadID, &info) == B_OK) {
bigtime_t now = system_time(); bigtime_t now = system_time();
fKernel = double(info.kernel_time-fThreadInfo.kernel_time)/double(now-fLastTime); fKernel = double(info.kernel_time - fThreadInfo.kernel_time) / double(now - fLastTime);
fUser = double(info.user_time-fThreadInfo.user_time)/double(now-fLastTime); fUser = double(info.user_time - fThreadInfo.user_time) / double(now - fLastTime);
if (fThreadID <= gCPUcount) { if (fThreadID <= gCPUcount) {
fUser += fKernel; fUser += fKernel;
fKernel = 0; fKernel = 0;
@@ -159,7 +165,7 @@ ThreadBarMenuItem::BarUpdate()
fThreadInfo.kernel_time = info.kernel_time; fThreadInfo.kernel_time = info.kernel_time;
fLastTime = now; fLastTime = now;
if (IsSelected ()) { if (IsSelected ()) {
PriorityMenu * popup = (PriorityMenu *) Submenu (); PriorityMenu* popup = (PriorityMenu*)Submenu();
if (popup && info.priority != fThreadInfo.priority) if (popup && info.priority != fThreadInfo.priority)
popup->Update (info.priority); popup->Update (info.priority);
} }
@@ -167,4 +173,3 @@ ThreadBarMenuItem::BarUpdate()
} else } else
fKernel = -1; fKernel = -1;
} }