33#include <wx/statbmp.h>
34#include <wx/statusbr.h>
35#include <wx/stattext.h>
41extern unsigned char GO_NEXT_SVG_GZ[];
42extern size_t GO_NEXT_SVG_GZ_SIZE;
57 StatusBar(wxWindow *parent,
int id,
bool aiChatAvailable =
false);
89 wxWindow *GetNetworkStatusElement()
90 {
return m_networkStatus; }
92 wxWindow *GetStatusTextElement()
93 {
return m_statusTextPanel; }
95 wxWindow *GetMaximaStatusElement()
96 {
return m_maximaStatus; }
104 {
return m_aiStatus; }
118 m_maximaPercentage = percentage;
142 void UpdateStatusMaximaBusy(
MaximaStatus status, std::size_t bytesFromMaxima);
161 return m_bitmap_waitForStart;
162 case process_wont_start:
164 return m_bitmap_process_wont_start;
166 return m_bitmap_sending;
168 return m_bitmap_waiting;
169 case waitingForPrompt:
170 return m_bitmap_waitingForPrompt;
172 return m_bitmap_waitingForAuth;
174 return m_bitmap_calculating;
176 return m_bitmap_parsing;
178 return m_bitmap_transferring;
180 return m_bitmap_userinput;
182 return m_bitmap_debugging;
184 return m_bitmap_lispmode;
186 return m_bitmap_disconnected;
188 return m_bitmap_waiting;
198 if (m_statusText->GetLabel() != statusText)
199 m_statusText->SetLabel(statusText);
202 void StatusMsgDClick(wxMouseEvent &ev);
203 void OnSize(wxSizeEvent &event);
204 void OnTimerEvent(wxTimerEvent &event);
206 void HandleTimerEvent();
218 wxWindow *m_frame =
nullptr;
220 wxSize m_ppi = wxSize(75, 75);
225 float m_maximaPercentage = -1;
230 float m_oldmaximaPercentage = -1;
232 wxString m_stdToolTip;
233 wxString m_networkErrToolTip;
234 wxString m_noConnectionToolTip;
238 bool m_icon_shows_receive =
false;
240 bool m_icon_shows_transmit =
false;
241 bool m_overlayIconIsSet =
false;
243 wxPanel *m_statusTextPanel =
nullptr;
245 wxStaticText *m_statusText =
nullptr;
247 wxStaticBitmap *m_networkStatus =
nullptr;
249 wxStaticBitmap *m_maximaStatus =
nullptr;
251 bool m_aiChatAvailable =
false;
253 wxStaticBitmap *m_aiStatus =
nullptr;
258 wxString m_aiStatusDetail;
260 wxBitmap m_bitmap_ai_active;
262 wxBitmap m_bitmap_ai_busy;
264 wxBitmap m_bitmap_ai_error;
266 wxBitmap m_network_error;
268 wxBitmap m_network_offline;
270 wxBitmap m_network_transmit;
272 wxBitmap m_network_idle;
274 wxBitmap m_network_idle_inactive;
276 wxBitmap m_network_receive;
278 wxBitmap m_network_transmit_receive;
282 wxTimer ReceiveTimer;
284 wxBitmap m_bitmap_waitForStart;
285 wxBitmap m_bitmap_process_wont_start;
286 wxBitmap m_bitmap_sending;
287 wxBitmap m_bitmap_waiting;
288 wxBitmap m_bitmap_waitingForPrompt;
289 wxBitmap m_bitmap_waitingForAuth;
290 wxBitmap m_bitmap_calculating;
291 wxBitmap m_bitmap_parsing;
292 wxBitmap m_bitmap_transferring;
293 wxBitmap m_bitmap_userinput;
294 wxBitmap m_bitmap_debugging;
295 wxBitmap m_bitmap_lispmode;
296 wxBitmap m_bitmap_disconnected;
The class that draws the status bar.
Definition: StatusBar.h:47
wxWindow * GetAiStatusElement()
The AI status icon, or nullptr if aiChatAvailable was false at construction time (the AI Chat feature...
Definition: StatusBar.h:103
void UpdateBitmaps()
Update the bitmaps to the Right size for the Resolution.
Definition: StatusBar.cpp:123
void UpdateAiStatus(AiStatus status, const wxString &detail=wxString())
Update the AI status icon.
Definition: StatusBar.cpp:375
networkState
The network states that can be passed to NetworkStatus()
Definition: StatusBar.h:61
void SetMaximaCPUPercentage(float percentage)
Inform the status bar how many percents of the available CPU power maxima uses.
Definition: StatusBar.h:116
AiStatus
The states the AI status icon (4th status bar field) can be in.
Definition: StatusBar.h:71
@ Active
A provider is configured and the last request (if any) succeeded.
@ None
No AI provider is configured – the icon is hidden entirely.
@ Error
A provider is configured, but the last request to it failed.
@ Busy
A request to the provider is currently in flight – mirrors how m_maximaStatus shows a "calculating" i...
void SetStatusText(wxString statusText)
Set the left status text.
Definition: StatusBar.h:197
wxBitmap GetTrayIconBitmap(MaximaStatus status) const
The exact bitmap m_maximaStatus itself would show for this status – i.e.
Definition: StatusBar.h:158
void NetworkStatus(networkState status)
Informs the status bar about networking events.
Definition: StatusBar.cpp:461
MaximaStatus
Definition: StatusBar.h:123
@ debugging
Maxima's Lisp is stopped in a debugger (e.g. sbcl's LDB).
Definition: StatusBar.h:136
@ lispmode
Maxima's reader is in Lisp mode (after to_lisp() / a MAXIMA> prompt).
Definition: StatusBar.h:138
detail namespace with internal helper functions
Definition: json.hpp:249