Tracker: style fixes to Utilities

This commit is contained in:
John Scipione
2014-06-20 21:30:00 -04:00
parent e29e8b3b27
commit a4c3bbd3f5
2 changed files with 220 additions and 214 deletions
+24 -21
View File
@@ -241,7 +241,6 @@ PeriodicUpdatePoses::DoPeriodicUpdate(bool forceRedraw)
PeriodicUpdatePoses gPeriodicUpdatePoses; PeriodicUpdatePoses gPeriodicUpdatePoses;
} // namespace BPrivate } // namespace BPrivate
@@ -276,7 +275,7 @@ PoseInfo::PrintToStream()
} }
// #pragma mark - // #pragma mark - ExtendedPoseInfo
size_t size_t
@@ -296,8 +295,7 @@ ExtendedPoseInfo::Size(int32 count)
size_t size_t
ExtendedPoseInfo::SizeWithHeadroom() const ExtendedPoseInfo::SizeWithHeadroom() const
{ {
return sizeof(ExtendedPoseInfo) + (fNumFrames + 1) return sizeof(ExtendedPoseInfo) + (fNumFrames + 1) * sizeof(FrameLocation);
* sizeof(FrameLocation);
} }
@@ -394,7 +392,7 @@ ExtendedPoseInfo::PrintToStream()
} }
// #pragma mark - // #pragma mark - OffscreenBitmap
OffscreenBitmap::OffscreenBitmap(BRect frame) OffscreenBitmap::OffscreenBitmap(BRect frame)
@@ -475,7 +473,7 @@ OffscreenBitmap::View() const
} }
// #pragma mark - // #pragma mark - BPrivate functions
namespace BPrivate { namespace BPrivate {
@@ -553,12 +551,12 @@ FadeRGBA32Vertical(uint32* bits, int32 width, int32 height, int32 from,
} // namespace BPrivate } // namespace BPrivate
// #pragma mark - // #pragma mark - DraggableIcon
DraggableIcon::DraggableIcon(BRect rect, const char* name, DraggableIcon::DraggableIcon(BRect rect, const char* name,
const char* mimeType, icon_size size, const BMessage* message, const char* mimeType, icon_size size, const BMessage* message,
BMessenger target, uint32 resizeMask, uint32 flags) BMessenger target, uint32 resizeMask, uint32 flags)
: :
BView(rect, name, resizeMask, flags), BView(rect, name, resizeMask, flags),
fMessage(*message), fMessage(*message),
@@ -657,11 +655,11 @@ DraggableIcon::Draw(BRect)
} }
// #pragma mark - // #pragma mark - FlickerFreeStringView
FlickerFreeStringView::FlickerFreeStringView(BRect bounds, const char* name, FlickerFreeStringView::FlickerFreeStringView(BRect bounds, const char* name,
const char* text, uint32 resizeFlags, uint32 flags) const char* text, uint32 resizeFlags, uint32 flags)
: :
BStringView(bounds, name, text, resizeFlags, flags), BStringView(bounds, name, text, resizeFlags, flags),
fBitmap(NULL), fBitmap(NULL),
@@ -671,7 +669,7 @@ FlickerFreeStringView::FlickerFreeStringView(BRect bounds, const char* name,
FlickerFreeStringView::FlickerFreeStringView(BRect bounds, const char* name, FlickerFreeStringView::FlickerFreeStringView(BRect bounds, const char* name,
const char* text, BBitmap* inBitmap, uint32 resizeFlags, uint32 flags) const char* text, BBitmap* inBitmap, uint32 resizeFlags, uint32 flags)
: :
BStringView(bounds, name, text, resizeFlags, flags), BStringView(bounds, name, text, resizeFlags, flags),
fBitmap(NULL), fBitmap(NULL),
@@ -695,7 +693,7 @@ FlickerFreeStringView::Draw(BRect)
BView* offscreen = fBitmap->BeginUsing(bounds); BView* offscreen = fBitmap->BeginUsing(bounds);
if (Parent()) { if (Parent() != NULL) {
fViewColor = Parent()->ViewColor(); fViewColor = Parent()->ViewColor();
fLowColor = Parent()->ViewColor(); fLowColor = Parent()->ViewColor();
} }
@@ -714,7 +712,7 @@ FlickerFreeStringView::Draw(BRect)
else else
offscreen->FillRect(bounds, B_SOLID_LOW); offscreen->FillRect(bounds, B_SOLID_LOW);
if (Text()) { if (Text() != NULL) {
BPoint loc; BPoint loc;
font_height height; font_height height;
@@ -762,7 +760,7 @@ void
FlickerFreeStringView::AttachedToWindow() FlickerFreeStringView::AttachedToWindow()
{ {
_inherited::AttachedToWindow(); _inherited::AttachedToWindow();
if (Parent()) { if (Parent() != NULL) {
fViewColor = Parent()->ViewColor(); fViewColor = Parent()->ViewColor();
fLowColor = Parent()->ViewColor(); fLowColor = Parent()->ViewColor();
} }
@@ -793,7 +791,7 @@ FlickerFreeStringView::SetLowColor(rgb_color color)
} }
// #pragma mark - // #pragma mark - TitledSeparatorItem
TitledSeparatorItem::TitledSeparatorItem(const char* label) TitledSeparatorItem::TitledSeparatorItem(const char* label)
@@ -925,11 +923,11 @@ TitledSeparatorItem::Draw()
} }
// #pragma mark - // #pragma mark - ShortcutFilter
ShortcutFilter::ShortcutFilter(uint32 shortcutKey, uint32 shortcutModifier, ShortcutFilter::ShortcutFilter(uint32 shortcutKey, uint32 shortcutModifier,
uint32 shortcutWhat, BHandler* target) uint32 shortcutWhat, BHandler* target)
: :
BMessageFilter(B_KEY_DOWN), BMessageFilter(B_KEY_DOWN),
fShortcutKey(shortcutKey), fShortcutKey(shortcutKey),
@@ -970,12 +968,11 @@ ShortcutFilter::Filter(BMessage* message, BHandler**)
} }
// #pragma mark - // #pragma mark - BPrivate functions
namespace BPrivate { namespace BPrivate {
void void
EmbedUniqueVolumeInfo(BMessage* message, const BVolume* volume) EmbedUniqueVolumeInfo(BMessage* message, const BVolume* volume)
{ {
@@ -1522,8 +1519,11 @@ EachMenuItem(const BMenu* menu, bool recursive,
} }
// #pragma mark - PositionPassingMenuItem
PositionPassingMenuItem::PositionPassingMenuItem(const char* title, PositionPassingMenuItem::PositionPassingMenuItem(const char* title,
BMessage* message, char shortcut, uint32 modifiers) BMessage* message, char shortcut, uint32 modifiers)
: :
BMenuItem(title, message, shortcut, modifiers) BMenuItem(title, message, shortcut, modifiers)
{ {
@@ -1581,6 +1581,9 @@ PositionPassingMenuItem::Invoke(BMessage* message)
} }
// #pragma mark - BPrivate functions
bool bool
BootedInSafeMode() BootedInSafeMode()
{ {
+196 -193
View File
@@ -94,91 +94,90 @@ extern bool gLocalizedNamePreferred;
// misc typedefs, constants and structs // misc typedefs, constants and structs
// Periodically updated poses (ones with a volume space bar) register
// themselfs in this global list. This way they can be iterated over instead
// of sending around update messages.
class PeriodicUpdatePoses { class PeriodicUpdatePoses {
public: // Periodically updated poses (ones with a volume space bar) register
PeriodicUpdatePoses(); // themselfs in this global list. This way they can be iterated over instead
~PeriodicUpdatePoses(); // of sending around update messages.
public:
PeriodicUpdatePoses();
~PeriodicUpdatePoses();
typedef bool (*PeriodicUpdateCallback)(BPose* pose, void* cookie); typedef bool (*PeriodicUpdateCallback)(BPose* pose, void* cookie);
void AddPose(BPose* pose, BPoseView* poseView, void AddPose(BPose* pose, BPoseView* poseView,
PeriodicUpdateCallback callback, void* cookie); PeriodicUpdateCallback callback, void* cookie);
bool RemovePose(BPose* pose, void** cookie); bool RemovePose(BPose* pose, void** cookie);
void DoPeriodicUpdate(bool forceRedraw); void DoPeriodicUpdate(bool forceRedraw);
private: private:
struct periodic_pose { struct periodic_pose {
BPose* pose; BPose* pose;
BPoseView* pose_view; BPoseView* pose_view;
PeriodicUpdateCallback callback; PeriodicUpdateCallback callback;
void* cookie; void* cookie;
}; };
Benaphore* fLock; Benaphore* fLock;
BObjectList<periodic_pose> fPoseList; BObjectList<periodic_pose> fPoseList;
}; };
extern PeriodicUpdatePoses gPeriodicUpdatePoses; extern PeriodicUpdatePoses gPeriodicUpdatePoses;
// PoseInfo is the structure that gets saved as attributes for every node on
// disk, defining the node's position and visibility
class PoseInfo { class PoseInfo {
public: // PoseInfo is the structure that gets saved as attributes for every node
static void EndianSwap(void* castToThis); // on disk, defining the node's position and visibility
void PrintToStream(); public:
static void EndianSwap(void* castToThis);
void PrintToStream();
bool fInvisible; bool fInvisible;
ino_t fInitedDirectory; ino_t fInitedDirectory;
// For a location to be valid, fInitedDirectory has to contain // For a location to be valid, fInitedDirectory has to contain
// the inode of the items parent directory. This makes it // the inode of the items parent directory. This makes it
// impossible to for instance zip up files and extract them in // impossible to for instance zip up files and extract them in
// the same location. This should probably be reworked. // the same location. This should probably be reworked.
// Tracker could strip the file location attributes when dropping // Tracker could strip the file location attributes when dropping
// files into a closed folder. // files into a closed folder.
BPoint fLocation; BPoint fLocation;
}; };
// extends PoseInfo adding workspace support; used for desktop
// poses only
class ExtendedPoseInfo { class ExtendedPoseInfo {
public: // extends PoseInfo adding workspace support; used for desktop
size_t Size() const; // poses only
static size_t Size(int32); public:
size_t SizeWithHeadroom() const; size_t Size() const;
static size_t SizeWithHeadroom(size_t); static size_t Size(int32);
bool HasLocationForFrame(BRect) const; size_t SizeWithHeadroom() const;
BPoint LocationForFrame(BRect) const; static size_t SizeWithHeadroom(size_t);
bool SetLocationForFrame(BPoint, BRect); bool HasLocationForFrame(BRect) const;
BPoint LocationForFrame(BRect) const;
bool SetLocationForFrame(BPoint, BRect);
static void EndianSwap(void* castToThis); static void EndianSwap(void* castToThis);
void PrintToStream(); void PrintToStream();
uint32 fWorkspaces;
bool fInvisible;
bool fShowFromBootOnly;
bool fReservedBool1;
bool fReservedBool2;
int32 fReservedInt1;
int32 fReservedInt2;
int32 fReservedInt3;
int32 fReservedInt4;
int32 fReservedInt5;
int32 fNumFrames;
struct FrameLocation {
BPoint fLocation;
BRect fFrame;
uint32 fWorkspaces; uint32 fWorkspaces;
bool fInvisible; };
bool fShowFromBootOnly;
bool fReservedBool1;
bool fReservedBool2;
int32 fReservedInt1;
int32 fReservedInt2;
int32 fReservedInt3;
int32 fReservedInt4;
int32 fReservedInt5;
int32 fNumFrames; FrameLocation fLocations[0];
struct FrameLocation {
BPoint fLocation;
BRect fFrame;
uint32 fWorkspaces;
};
FrameLocation fLocations[0];
}; };
// misc functions // misc functions
@@ -224,179 +223,180 @@ extern void FadeRGBA32Vertical(uint32* bits, int32 width, int32 height,
class FlickerFreeStringView : public BStringView { class FlickerFreeStringView : public BStringView {
// adds support for offscreen bitmap drawing for string views that update // adds support for offscreen bitmap drawing for string views that update
// often this would be better implemented as an option of BStringView // often this would be better implemented as an option of BStringView
public: public:
FlickerFreeStringView(BRect bounds, const char* name, FlickerFreeStringView(BRect bounds, const char* name,
const char* text, uint32 resizeFlags = B_FOLLOW_LEFT | B_FOLLOW_TOP, const char* text, uint32 resizeFlags = B_FOLLOW_LEFT | B_FOLLOW_TOP,
uint32 flags = B_WILL_DRAW); uint32 flags = B_WILL_DRAW);
FlickerFreeStringView(BRect bounds, const char* name, FlickerFreeStringView(BRect bounds, const char* name,
const char* text, BBitmap* existingOffscreen, const char* text, BBitmap* existingOffscreen,
uint32 resizeFlags = B_FOLLOW_LEFT | B_FOLLOW_TOP, uint32 resizeFlags = B_FOLLOW_LEFT | B_FOLLOW_TOP,
uint32 flags = B_WILL_DRAW); uint32 flags = B_WILL_DRAW);
virtual ~FlickerFreeStringView(); virtual ~FlickerFreeStringView();
virtual void Draw(BRect); virtual void Draw(BRect);
virtual void AttachedToWindow(); virtual void AttachedToWindow();
virtual void SetViewColor(rgb_color); virtual void SetViewColor(rgb_color);
virtual void SetLowColor(rgb_color); virtual void SetLowColor(rgb_color);
private: private:
OffscreenBitmap* fBitmap; OffscreenBitmap* fBitmap;
rgb_color fViewColor; rgb_color fViewColor;
rgb_color fLowColor; rgb_color fLowColor;
BBitmap* fOrigBitmap; BBitmap* fOrigBitmap;
typedef BStringView _inherited; typedef BStringView _inherited;
}; };
class DraggableIcon : public BView { class DraggableIcon : public BView {
// used to determine a save location for a file // used to determine a save location for a file
public: public:
DraggableIcon(BRect, const char*, const char* mimeType, icon_size, DraggableIcon(BRect, const char*, const char* mimeType, icon_size,
const BMessage*, BMessenger, const BMessage*, BMessenger,
uint32 resizeFlags = B_FOLLOW_LEFT | B_FOLLOW_TOP, uint32 resizeFlags = B_FOLLOW_LEFT | B_FOLLOW_TOP,
uint32 flags = B_WILL_DRAW); uint32 flags = B_WILL_DRAW);
virtual ~DraggableIcon(); virtual ~DraggableIcon();
static BRect PreferredRect(BPoint offset, icon_size); static BRect PreferredRect(BPoint offset, icon_size);
void SetTarget(BMessenger); void SetTarget(BMessenger);
protected: protected:
virtual void AttachedToWindow(); virtual void AttachedToWindow();
virtual void MouseDown(BPoint); virtual void MouseDown(BPoint);
virtual void Draw(BRect); virtual void Draw(BRect);
virtual bool DragStarted(BMessage* dragMessage); virtual bool DragStarted(BMessage* dragMessage);
protected: protected:
BBitmap* fBitmap; BBitmap* fBitmap;
BMessage fMessage; BMessage fMessage;
BMessenger fTarget; BMessenger fTarget;
}; };
class PositionPassingMenuItem : public BMenuItem { class PositionPassingMenuItem : public BMenuItem {
public: public:
PositionPassingMenuItem(const char* title, BMessage*, PositionPassingMenuItem(const char* title, BMessage*,
char shortcut = 0, uint32 modifiers = 0); char shortcut = 0, uint32 modifiers = 0);
PositionPassingMenuItem(BMenu*, BMessage*); PositionPassingMenuItem(BMenu*, BMessage*);
protected: protected:
virtual status_t Invoke(BMessage* = 0); virtual status_t Invoke(BMessage* = 0);
// appends the invoke location for NewFolder, etc. to use // appends the invoke location for NewFolder, etc. to use
private: private:
typedef BMenuItem _inherited; typedef BMenuItem _inherited;
}; };
class Benaphore { class Benaphore {
// aka benaphore // aka benaphore
public: public:
Benaphore(const char* name = "Light Lock") Benaphore(const char* name = "Light Lock")
: fSemaphore(create_sem(0, name)), : fSemaphore(create_sem(0, name)),
fCount(1) fCount(1)
{ {
} }
~Benaphore() ~Benaphore()
{ {
delete_sem(fSemaphore); delete_sem(fSemaphore);
} }
bool Lock() bool Lock()
{ {
if (atomic_add(&fCount, -1) <= 0) if (atomic_add(&fCount, -1) <= 0)
return acquire_sem(fSemaphore) == B_OK; return acquire_sem(fSemaphore) == B_OK;
return true; return true;
} }
void Unlock() void Unlock()
{ {
if (atomic_add(&fCount, 1) < 0) if (atomic_add(&fCount, 1) < 0)
release_sem(fSemaphore); release_sem(fSemaphore);
} }
bool IsLocked() const bool IsLocked() const
{ {
return fCount <= 0; return fCount <= 0;
} }
private: private:
sem_id fSemaphore; sem_id fSemaphore;
int32 fCount; int32 fCount;
}; };
class SeparatorLine : public BView { class SeparatorLine : public BView {
public: public:
SeparatorLine(BPoint, float, bool vertical, const char* name = ""); SeparatorLine(BPoint, float, bool vertical, const char* name = "");
virtual void Draw(BRect bounds); virtual void Draw(BRect bounds);
}; };
class TitledSeparatorItem : public BMenuItem { class TitledSeparatorItem : public BMenuItem {
public: public:
TitledSeparatorItem(const char*); TitledSeparatorItem(const char*);
virtual ~TitledSeparatorItem(); virtual ~TitledSeparatorItem();
virtual void SetEnabled(bool state); virtual void SetEnabled(bool state);
protected: protected:
virtual void GetContentSize(float* width, float* height); virtual void GetContentSize(float* width, float* height);
virtual void Draw(); virtual void Draw();
private: private:
typedef BMenuItem _inherited; typedef BMenuItem _inherited;
}; };
class LooperAutoLocker { class LooperAutoLocker {
public: public:
LooperAutoLocker(BHandler* handler) LooperAutoLocker(BHandler* handler)
: fHandler(handler), : fHandler(handler),
fHasLock(handler->LockLooper()) fHasLock(handler->LockLooper())
{ {
} }
~LooperAutoLocker() ~LooperAutoLocker()
{ {
if (fHasLock) if (fHasLock)
fHandler->UnlockLooper(); fHandler->UnlockLooper();
} }
bool operator!() const bool operator!() const
{ {
return !fHasLock; return !fHasLock;
} }
bool IsLocked() const bool IsLocked() const
{ {
return fHasLock; return fHasLock;
} }
private: private:
BHandler* fHandler; BHandler* fHandler;
bool fHasLock; bool fHasLock;
}; };
class ShortcutFilter : public BMessageFilter { class ShortcutFilter : public BMessageFilter {
public: public:
ShortcutFilter(uint32 shortcutKey, uint32 shortcutModifier, ShortcutFilter(uint32 shortcutKey, uint32 shortcutModifier,
uint32 shortcutWhat, BHandler* target); uint32 shortcutWhat, BHandler* target);
protected: protected:
filter_result Filter(BMessage*, BHandler**); filter_result Filter(BMessage*, BHandler**);
private: private:
uint32 fShortcutKey; uint32 fShortcutKey;
uint32 fShortcutModifier; uint32 fShortcutModifier;
uint32 fShortcutWhat; uint32 fShortcutWhat;
BHandler* fTarget; BHandler* fTarget;
}; };
// iterates over all the refs in a message // iterates over all the refs in a message
entry_ref* EachEntryRef(BMessage*, entry_ref* (*)(entry_ref*, void*), entry_ref* EachEntryRef(BMessage*, entry_ref* (*)(entry_ref*, void*),
void* passThru = 0); void* passThru = 0);
@@ -447,6 +447,7 @@ bool operator!=(const rgb_color&, const rgb_color&);
#endif #endif
inline rgb_color inline rgb_color
Color(int32 r, int32 g, int32 b, int32 alpha = 255) Color(int32 r, int32 g, int32 b, int32 alpha = 255)
{ {
@@ -561,18 +562,19 @@ inline void PrintDirToStream(const BDirectory*, const char* = 0) {}
va_end(ap); va_end(ap);
} }
#define WRITELOG(_ARGS_) \ #define WRITELOG(_ARGS_) \
if (logFile == 0) \ if (logFile == 0) \
logFile = fopen("/var/log/tracker.log", "a+"); \ logFile = fopen("/var/log/tracker.log", "a+"); \
if (logFile != 0) { \ \
thread_info info; \ if (logFile != 0) { \
get_thread_info(find_thread(NULL), &info); \ thread_info info; \
PrintToLogFile("[t %Ld] \"%s\" (%s:%i) ", system_time(), \ get_thread_info(find_thread(NULL), &info); \
info.name, __FILE__, __LINE__); \ PrintToLogFile("[t %Ld] \"%s\" (%s:%i) ", system_time(), \
PrintToLogFile _ARGS_; \ info.name, __FILE__, __LINE__); \
PrintToLogFile("\n"); \ PrintToLogFile _ARGS_; \
fflush(logFile); \ PrintToLogFile("\n"); \
} fflush(logFile); \
}
#else #else
@@ -605,4 +607,5 @@ float ComputeTypeAheadScore(const char* text, const char* match,
} // namespace BPrivate } // namespace BPrivate
#endif // _UTILITIES_H #endif // _UTILITIES_H