]> gitweb.michael.orlitzky.com - xfce4-hdaps.git/blobdiff - panel-plugin/xfce4-hdaps.c
panel-plugin: whitespace cleanup.
[xfce4-hdaps.git] / panel-plugin / xfce4-hdaps.c
index 29ee3b28b5019b9b1c52bf57b94f9fd845e54e35..b00e48c7dbba00ccc9bfa2126d7cb66e5264b993 100644 (file)
@@ -1,21 +1,22 @@
 /*
  * xfce4-hdaps, an XFCE4 panel plugin for the HDAPS system.
  *
- * Copyright Michael Orlitzky
+ * Copyright (C) 2019 Michael Orlitzky
  *
- * http://michael.orlitzky.com/
+ *   http://michael.orlitzky.com/
  *
  * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details:
+ *
+ *   https://www.gnu.org/licenses/agpl-3.0.html
  *
- * http://www.fsf.org/licensing/licenses/gpl.html
  */
 
 #ifdef HAVE_CONFIG_H
 static void hdaps_construct(XfcePanelPlugin *plugin);
 
 /* Register the plugin with the panel. */
-XFCE_PANEL_PLUGIN_REGISTER_EXTERNAL(hdaps_construct);
+XFCE_PANEL_PLUGIN_REGISTER(hdaps_construct);
 
 
 void hdaps_save(XfcePanelPlugin *plugin, HdapsPlugin *hdaps) {
-  
+
   XfceRc *rc;
   gchar  *file;
 
@@ -67,15 +68,15 @@ void hdaps_save(XfcePanelPlugin *plugin, HdapsPlugin *hdaps) {
     DBG("Failed to open the configuration file. Bailing.");
     return;
   }
-  
-  
+
+
   /* Write any user-configured values to the resource file. */
   if (hdaps->device_name) {
     xfce_rc_write_entry(rc, "device_name", hdaps->device_name);
   }
-    
+
   xfce_rc_write_int_entry(rc, "poll_frequency", hdaps->poll_frequency);
-    
+
   /* close the rc file */
   xfce_rc_close(rc);
 }
@@ -112,7 +113,7 @@ void hdaps_set_icon(HdapsPlugin *hdaps, int status) {
   if (hdaps->icon) {
     gtk_widget_destroy(hdaps->icon);
   }
-  
+
   if (icon) {
     hdaps->icon = gtk_image_new_from_pixbuf(icon);
     g_object_unref(G_OBJECT(icon));
@@ -123,22 +124,21 @@ void hdaps_set_icon(HdapsPlugin *hdaps, int status) {
 
   gtk_box_pack_start(GTK_BOX(hdaps->hvbox), GTK_WIDGET(hdaps->icon), FALSE, FALSE, 0);
   gtk_widget_show(hdaps->icon);
-  
+
   return;
 }
 
 
 
 void hdaps_set_tooltip(HdapsPlugin *hdaps, int status) {
-    
   if (status == HDAPS_ERROR) {
-    gtk_tooltips_set_tip(hdaps->tooltip, hdaps->eventbox, "HDAPS Error", NULL);
+    gtk_widget_set_tooltip_text(GTK_WIDGET(hdaps->eventbox), "HDAPS Error");
   }
   else if (status == HDAPS_OFF) {
-    gtk_tooltips_set_tip(hdaps->tooltip, hdaps->eventbox, "HDAPS Off", NULL);
+    gtk_widget_set_tooltip_text(GTK_WIDGET(hdaps->eventbox), "HDAPS Off");
   }
   else {
-    gtk_tooltips_set_tip(hdaps->tooltip, hdaps->eventbox, "HDAPS On", NULL);
+    gtk_widget_set_tooltip_text(GTK_WIDGET(hdaps->eventbox), "HDAPS On");
   }
 }
 
@@ -170,7 +170,7 @@ static void hdaps_set_defaults(HdapsPlugin *hdaps) {
 
 
 static void hdaps_read(HdapsPlugin *hdaps) {
-  
+
   XfceRc      *rc;
   gchar       *file;
   const gchar *saved_device_name;
@@ -183,7 +183,7 @@ static void hdaps_read(HdapsPlugin *hdaps) {
     DBG("Retaining default settings.");
     return;
   }
-  
+
   /* Open the config file read-only. */
   rc = xfce_rc_simple_open(file, TRUE);
 
@@ -195,9 +195,9 @@ static void hdaps_read(HdapsPlugin *hdaps) {
     DBG("Retaining default settings.");
     return;
   }
-  
+
   /* Read the settings, one at a time. */
-      
+
   /* We use saved_device_name here because we need
      to dupe the string after we read it in from the
      config file. */
@@ -211,7 +211,7 @@ static void hdaps_read(HdapsPlugin *hdaps) {
   hdaps->poll_frequency = xfce_rc_read_int_entry(rc,
                                                 "poll_frequency",
                                                 DEFAULT_POLL_FREQUENCY);
-  
+
   /* And close the config file. */
   xfce_rc_close(rc);
 }
@@ -228,12 +228,12 @@ static HdapsPlugin *hdaps_new(XfcePanelPlugin *plugin) {
 
   /* The HdapsPlugin gets a copy of the  XfcePanelPlugin. */
   hdaps->plugin = plugin;
-  
+
   /* Set default values right before reading in the user's settings.
      This way, hdaps_read() doesn't have to set defaults on error
      conditions. */
   hdaps_set_defaults(hdaps);
-  
+
   /* Read any user settings into the HdapsPlugin. */
   hdaps_read(hdaps);
 
@@ -249,9 +249,14 @@ static HdapsPlugin *hdaps_new(XfcePanelPlugin *plugin) {
   hdaps->eventbox = gtk_event_box_new();
   gtk_widget_show(hdaps->eventbox);
 
+  /* Make the event box transparent. In newer versions of xfce4-panel
+     users can make the panel transparent, so we don't want to stick a
+     big opaque box on it. */
+  gtk_event_box_set_visible_window(GTK_EVENT_BOX(hdaps->eventbox), FALSE);
+
   /* Set up the hvbox for the widget, which supports
      both horizontal and vertical (hv) orientations. */
-  hdaps->hvbox = xfce_hvbox_new(orientation, FALSE, 2);
+  hdaps->hvbox = gtk_box_new(orientation, 2);
   gtk_widget_show(hdaps->hvbox);
   gtk_container_add(GTK_CONTAINER(hdaps->eventbox), hdaps->hvbox);
 
@@ -259,16 +264,8 @@ static HdapsPlugin *hdaps_new(XfcePanelPlugin *plugin) {
      so it's important that they start out n*sync. */
   hdaps->previous_status = HDAPS_OFF;
   hdaps_set_icon(hdaps, HDAPS_OFF);
-
-  /* Create the tooltip widget, and set its initial value.
-   * The first couple of lines are stolen from the battery
-   * status plugin. I make no claim as to their correctness.
-   */
-  hdaps->tooltip = gtk_tooltips_new();
-  g_object_ref(G_OBJECT(hdaps->tooltip));
-  gtk_object_sink(GTK_OBJECT(hdaps->tooltip));
   hdaps_set_tooltip(hdaps, HDAPS_OFF);
-  
+
   return hdaps;
 }
 
@@ -276,7 +273,7 @@ static HdapsPlugin *hdaps_new(XfcePanelPlugin *plugin) {
 
 static void hdaps_free(XfcePanelPlugin *plugin,
                       HdapsPlugin     *hdaps) {
-  
+
   GtkWidget *dialog;
 
     /* Destroy the dialog if it's still open. */
@@ -302,10 +299,6 @@ static void hdaps_free(XfcePanelPlugin *plugin,
     g_free(hdaps->device_name);
   }
 
-  /* Goodbye, tooltips. */
-  gtk_tooltips_set_tip(hdaps->tooltip, hdaps->eventbox, NULL, NULL);
-  g_object_unref(G_OBJECT(hdaps->tooltip));
-  
   /* ...and finally free the plugin structure. */
   panel_slice_free(HdapsPlugin, hdaps);
 }
@@ -315,9 +308,9 @@ static void hdaps_free(XfcePanelPlugin *plugin,
 static void hdaps_orientation_changed(XfcePanelPlugin *plugin,
                                      GtkOrientation   orientation,
                                      HdapsPlugin     *hdaps) {
-  
+
   /* Change the plugin's orientation. Basically magic to me. */
-  xfce_hvbox_set_orientation(XFCE_HVBOX(hdaps->hvbox), orientation);
+  gtk_orientable_set_orientation(GTK_ORIENTABLE(hdaps->hvbox), orientation);
 }
 
 
@@ -325,7 +318,7 @@ static void hdaps_orientation_changed(XfcePanelPlugin *plugin,
 static gboolean hdaps_size_changed(XfcePanelPlugin *plugin,
                                   gint             size,
                                   HdapsPlugin     *hdaps) {
-  
+
   GtkOrientation orientation;
 
   /* Get the current orientation of the plugin. */
@@ -340,6 +333,9 @@ static gboolean hdaps_size_changed(XfcePanelPlugin *plugin,
     gtk_widget_set_size_request(GTK_WIDGET(plugin), size, -1);
   }
 
+  /* This fixes an issue where the initial icon size is too small. */
+  hdaps_set_icon(hdaps, hdaps->previous_status);
+
   /* We handled the change, so we're supposed to return TRUE. */
   return TRUE;
 }
@@ -348,7 +344,7 @@ static gboolean hdaps_size_changed(XfcePanelPlugin *plugin,
 
 static gboolean hdaps_update_status(HdapsPlugin *hdaps) {
   /* This checks the status of HDAPS and updates the
-     widget accordingly. */  
+     widget accordingly. */
 
   /* This just gets the status. */
   int status = parse_int_from_file(hdaps->sysfs_file);
@@ -363,14 +359,14 @@ static gboolean hdaps_update_status(HdapsPlugin *hdaps) {
   if (status > 0) {
     status = HDAPS_ON;
   }
-  
+
   if (status != hdaps->previous_status) {
     /* And we only update the icon if we need to. */
     hdaps_set_icon(hdaps, status);
     hdaps_set_tooltip(hdaps, status);
     hdaps->previous_status = status;
   }
-    
+
   return TRUE;
 }
 
@@ -425,7 +421,7 @@ static void hdaps_construct(XfcePanelPlugin *plugin) {
 
   /* Show the "about" right-click menu item, and
      connect its event handler. */
-  xfce_panel_plugin_menu_show_about(plugin);  
+  xfce_panel_plugin_menu_show_about(plugin);
   g_signal_connect(G_OBJECT(plugin), "about",
                   G_CALLBACK(hdaps_about), hdaps);