static gboolean csm_logout_supports_system_hibernate (CsmLogoutDialog *logout_dialog) { #if defined(HAVE_SYSTEMD) return csm_system_can_hibernate (logout_dialog->priv->system); #elif defined(HAVE_OLD_UPOWER) return up_client_get_can_hibernate (logout_dialog->priv->up_client); #endif }
static void disable_unavailable_combo_items (CcPowerPanel *self, GtkComboBox *combo_box) { gboolean enabled; gboolean ret; gint value_tmp; GtkCellRenderer *renderer; GtkTreeIter iter; GtkTreeModel *model; /* setup the renderer */ renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer, "text", ACTION_MODEL_TEXT, "sensitive", ACTION_MODEL_SENSITIVE, NULL); /* get entry */ model = gtk_combo_box_get_model (combo_box); ret = gtk_tree_model_get_iter_first (model, &iter); if (!ret) return; /* disable any actions we cannot do */ do { gtk_tree_model_get (model, &iter, ACTION_MODEL_VALUE, &value_tmp, -1); switch (value_tmp) { case CSD_POWER_ACTION_SUSPEND: #if UP_CHECK_VERSION(0,99,0) enabled = cc_login1("CanSuspend"); #else enabled = cc_login1("CanSuspend") || up_client_get_can_suspend (self->priv->up_client); #endif break; case CSD_POWER_ACTION_HIBERNATE: #if UP_CHECK_VERSION(0,99,0) enabled = cc_login1("CanHibernate"); #else enabled = cc_login1("CanHibernate") || up_client_get_can_hibernate (self->priv->up_client); #endif break; default: enabled = TRUE; } gtk_list_store_set (GTK_LIST_STORE (model), &iter, ACTION_MODEL_SENSITIVE, enabled, -1); } while (gtk_tree_model_iter_next (model, &iter)); }
static gboolean gsm_logout_supports_system_hibernate (GsmLogoutDialog *logout_dialog) { gboolean ret; ret = FALSE; #ifdef HAVE_SYSTEMD if (LOGIND_RUNNING()) ret = gsm_systemd_can_hibernate (logout_dialog->priv->systemd); #endif #if defined(HAVE_SYSTEMD) && defined(HAVE_UPOWER) else #endif #ifdef HAVE_UPOWER ret = up_client_get_can_hibernate (logout_dialog->priv->up_client); #endif return ret; }
static gboolean csm_logout_supports_system_hibernate (CsmLogoutDialog *logout_dialog) { return up_client_get_can_hibernate (logout_dialog->priv->up_client); }