Skip to content

Commit 2040a15

Browse files
committed
Fixed wxWidgets build failure: compilation error due to API change.
Introduced in c47cab4.
1 parent b3eb9a3 commit 2040a15

1 file changed

Lines changed: 61 additions & 21 deletions

File tree

cr3wx/src/view.cpp

Lines changed: 61 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -307,33 +307,73 @@ void cr3view::OnTimer(wxTimerEvent& event)
307307
}
308308
}
309309

310-
void cr3view::Paint()
310+
static bool getBatteryState(int& state, int& chargingConn, int& level)
311311
{
312-
//printf("cr3view::Paint() \n");
313-
int battery_state = -1;
314312
#ifdef _WIN32
313+
// update battery state
315314
SYSTEM_POWER_STATUS bstatus;
316315
BOOL pow = GetSystemPowerStatus(&bstatus);
317-
if (bstatus.BatteryFlag & 128)
318-
pow = FALSE;
319-
if (bstatus.ACLineStatus!=0 || bstatus.BatteryLifePercent==255)
320-
pow = FALSE;
321-
if ( pow )
322-
battery_state = bstatus.BatteryLifePercent;
316+
if (pow) {
317+
state = CR_BATTERY_STATE_DISCHARGING;
318+
if (bstatus.BatteryFlag & 128)
319+
state = CR_BATTERY_STATE_NO_BATTERY; // no system battery
320+
else if (bstatus.BatteryFlag & 8)
321+
state = CR_BATTERY_STATE_CHARGING; // charging
322+
chargingConn = CR_BATTERY_CHARGER_NO;
323+
if (bstatus.ACLineStatus==1)
324+
chargingConn = CR_BATTERY_CHARGER_AC; // AC power charging connected
325+
if (bstatus.BatteryLifePercent>=0 && bstatus.BatteryLifePercent<=100)
326+
level = bstatus.BatteryLifePercent;
327+
return true;
328+
}
329+
return false;
323330
#else
324-
if ( ::wxGetPowerType() == wxPOWER_BATTERY ) {
325-
int n = ::wxGetBatteryState();
326-
if ( n == wxBATTERY_NORMAL_STATE )
327-
battery_state = 100;
328-
else if ( n == wxBATTERY_LOW_STATE )
329-
battery_state = 50;
330-
else if ( n == wxBATTERY_CRITICAL_STATE )
331-
battery_state = 0;
332-
else if ( n == wxBATTERY_SHUTDOWN_STATE )
333-
battery_state = 0;
334-
};
331+
wxPowerType wxpwrtype = wxGetPowerType();
332+
switch (wxpwrtype) {
333+
case wxPOWER_SOCKET:
334+
state = CR_BATTERY_STATE_CHARGING;
335+
chargingConn = CR_BATTERY_CHARGER_AC;
336+
break;
337+
case wxPOWER_BATTERY:
338+
state = CR_BATTERY_STATE_DISCHARGING;
339+
chargingConn = CR_BATTERY_CHARGER_NO;
340+
break;
341+
default:
342+
state = CR_BATTERY_STATE_NO_BATTERY;
343+
chargingConn = CR_BATTERY_CHARGER_NO;
344+
break;
345+
}
346+
wxBatteryState wxbatstate = wxGetBatteryState();
347+
switch (wxbatstate) {
348+
case wxBATTERY_NORMAL_STATE:
349+
level = 100;
350+
break;
351+
case wxBATTERY_LOW_STATE:
352+
level = 50;
353+
break;
354+
case wxBATTERY_CRITICAL_STATE:
355+
level = 5;
356+
break;
357+
case wxBATTERY_SHUTDOWN_STATE:
358+
level = 0;
359+
break;
360+
default:
361+
level = 0;
362+
break;
363+
}
364+
return true;
335365
#endif
336-
getDocView()->setBatteryState( battery_state );
366+
}
367+
368+
void cr3view::Paint()
369+
{
370+
//printf("cr3view::Paint() \n");
371+
int battery_state;
372+
int charging_conn;
373+
int charge_level;
374+
if (getBatteryState(battery_state, charging_conn, charge_level)) {
375+
getDocView()->setBatteryState( battery_state, charging_conn, charge_level );
376+
}
337377
//_docview->Draw();
338378
UpdateScrollBar();
339379
Refresh( FALSE );

0 commit comments

Comments
 (0)