BTRFS: Implement BTree::Path and change _Find.
[haiku.git] / src / apps / powerstatus / PowerStatusView.h
blobde8919f82d1c1d048db1a771e9a896e6a2b372d8
1 /*
2 * Copyright 2006-2017, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
5 * Authors:
6 * Axel Dörfler, axeld@pinc-software.de
7 * Clemens Zeidler, haiku@Clemens-Zeidler.de
8 */
9 #ifndef POWER_STATUS_VIEW_H
10 #define POWER_STATUS_VIEW_H
13 #include <View.h>
15 #include "DriverInterface.h"
18 class BFile;
21 class PowerStatusView : public BView {
22 public:
23 PowerStatusView(
24 PowerStatusDriverInterface* interface,
25 BRect frame, int32 resizingMode,
26 int batteryID = -1, bool inDeskbar = false);
28 virtual ~PowerStatusView();
30 virtual status_t Archive(BMessage* archive, bool deep = true) const;
32 virtual void AttachedToWindow();
33 virtual void DetachedFromWindow();
35 virtual void MessageReceived(BMessage* message);
36 virtual void Draw(BRect updateRect);
37 void DrawTo(BView* view, BRect rect);
40 protected:
41 PowerStatusView(BMessage* archive);
43 virtual void Update(bool force = false);
45 void FromMessage(const BMessage* message);
46 status_t ToMessage(BMessage* message) const;
48 private:
49 void _GetBatteryInfo(int batteryID, battery_info* info);
50 void _Init();
51 void _SetLabel(char* buffer, size_t bufferLength);
52 void _DrawBattery(BView* view, BRect rect);
53 void _NotifyLowBattery();
55 protected:
56 PowerStatusDriverInterface* fDriverInterface;
58 bool fShowLabel;
59 bool fShowTime;
60 bool fShowStatusIcon;
62 int fBatteryID;
63 bool fInDeskbar;
65 battery_info fBatteryInfo;
67 int32 fPercent;
68 time_t fTimeLeft;
69 bool fOnline;
70 bool fHasBattery;
74 class PowerStatusReplicant : public PowerStatusView {
75 public:
76 PowerStatusReplicant(BRect frame,
77 int32 resizingMode, bool inDeskbar = false);
78 PowerStatusReplicant(BMessage* archive);
79 virtual ~PowerStatusReplicant();
81 static PowerStatusReplicant* Instantiate(BMessage* archive);
82 virtual status_t Archive(BMessage* archive, bool deep = true) const;
84 virtual void MessageReceived(BMessage* message);
85 virtual void MouseDown(BPoint where);
87 private:
88 void _AboutRequested();
89 void _Init();
90 void _Quit();
92 status_t _GetSettings(BFile& file, int mode);
93 void _LoadSettings();
94 void _SaveSettings();
96 void _OpenExtendedWindow();
98 private:
99 BWindow* fExtendedWindow;
100 bool fMessengerExist;
101 BMessenger* fExtWindowMessenger;
102 bool fReplicated;
106 #endif // POWER_STATUS_VIEW_H