static Bubblemon * create_gui (XfcePanelPlugin *plugin) { GtkWidget *frame, *ebox; GtkOrientation orientation; Bubblemon *base = g_new0(Bubblemon, 1); orientation = xfce_panel_plugin_get_orientation(plugin); base->plugin=plugin; base->bubblemon=bubblemon_init(); bubblemon_plugin_fill(base, plugin); ebox = gtk_event_box_new(); gtk_container_add( GTK_CONTAINER( plugin ), ebox ); base->box = xfce_hvbox_new(orientation, FALSE, 0); gtk_container_add(GTK_CONTAINER(ebox), base->box); base->frame_widget = frame = gtk_frame_new( NULL ); gtk_box_pack_end( GTK_BOX(base->box), frame, TRUE, TRUE, 0); gtk_container_add( GTK_CONTAINER( frame ), GTK_WIDGET( base->draw_area ) ); update_orientation(plugin, orientation, base); gtk_widget_show_all(ebox); return base; }
static TimeOutPlugin* time_out_new (XfcePanelPlugin *plugin) { TimeOutPlugin *time_out; GtkOrientation orientation; /* Allocate memory for the plugin structure */ time_out = panel_slice_new0 (TimeOutPlugin); /* Store pointer to the plugin */ time_out->plugin = plugin; /* Create lock screen */ time_out->lock_screen = time_out_lock_screen_new (); /* Connect to 'postpone' signal of the lock screen */ g_signal_connect (G_OBJECT (time_out->lock_screen), "postpone", G_CALLBACK (time_out_postpone), time_out); /* Connect to 'resume' signal of the lock screen */ g_signal_connect (G_OBJECT (time_out->lock_screen), "resume", G_CALLBACK (time_out_resume), time_out); /* Create countdowns */ time_out->break_countdown = time_out_countdown_new (); time_out->lock_countdown = time_out_countdown_new (); /* Connect to break countdown signals */ g_signal_connect (G_OBJECT (time_out->break_countdown), "update", G_CALLBACK (time_out_break_countdown_update), time_out); g_signal_connect (G_OBJECT (time_out->break_countdown), "finish", G_CALLBACK (time_out_break_countdown_finish), time_out); /* Connect to lock countdown signals */ g_signal_connect (G_OBJECT (time_out->lock_countdown), "update", G_CALLBACK (time_out_lock_countdown_update), time_out); g_signal_connect (G_OBJECT (time_out->lock_countdown), "finish", G_CALLBACK (time_out_lock_countdown_finish), time_out); /* Get the current orientation */ orientation = xfce_panel_plugin_get_orientation (plugin); /* Create event box to catch user events */ time_out->ebox = gtk_event_box_new (); gtk_event_box_set_visible_window(GTK_EVENT_BOX(time_out->ebox), FALSE); gtk_widget_show (time_out->ebox); /* Create flexible box which can do both, horizontal and vertical layout */ time_out->hvbox = xfce_hvbox_new (orientation, FALSE, 2); gtk_container_add (GTK_CONTAINER (time_out->ebox), time_out->hvbox); gtk_widget_show (time_out->hvbox); /* Create time out icon */ time_out->panel_icon = gtk_image_new_from_icon_name ("xfce4-time-out-plugin", GTK_ICON_SIZE_DIALOG); gtk_image_set_pixel_size (GTK_IMAGE (time_out->panel_icon), xfce_panel_plugin_get_size (time_out->plugin) - 8); gtk_box_pack_start (GTK_BOX (time_out->hvbox), time_out->panel_icon, TRUE, TRUE, 0); gtk_widget_show (time_out->panel_icon); /* Create label for displaying the remaining time until the next break */ time_out->time_label = gtk_label_new (_("Inactive")); gtk_misc_set_alignment (GTK_MISC (time_out->time_label), 0.5, 0.5); gtk_box_pack_start (GTK_BOX (time_out->hvbox), time_out->time_label, TRUE, TRUE, 0); gtk_widget_show (time_out->time_label); return time_out; }
static WindowckPlugin * windowck_new(XfcePanelPlugin *plugin) { WindowckPlugin *wckp; GtkOrientation orientation; GtkWidget *label; /* allocate memory for the plugin structure */ wckp = g_slice_new0 (WindowckPlugin); /* pointer to plugin */ wckp->plugin = plugin; /* read the user settings */ windowck_read(wckp); /* get the current orientation */ orientation = xfce_panel_plugin_get_orientation(plugin); /* not needed for shrink mode */ if (!wckp->prefs->size_mode == SHRINK) xfce_panel_plugin_set_shrink (plugin, TRUE); /* create some panel widgets */ wckp->ebox = gtk_event_box_new(); gtk_event_box_set_visible_window(GTK_EVENT_BOX(wckp->ebox), FALSE); gtk_widget_set_name(wckp->ebox, "XfceWindowckPlugin"); wckp->alignment = gtk_alignment_new (0.5, 0.5, 0, 0); wckp->hvbox = xfce_hvbox_new(orientation, FALSE, 2); /* some wckp widgets */ label = gtk_label_new(""); wckp->title = GTK_LABEL (label); create_icon (wckp); gtk_box_pack_start (GTK_BOX(wckp->hvbox), label, TRUE, TRUE, 0); if (wckp->prefs->icon_on_right) { gtk_box_reorder_child (GTK_BOX (wckp->hvbox), GTK_WIDGET(wckp->icon->eventbox), 1); } gtk_container_add(GTK_CONTAINER(wckp->alignment), GTK_WIDGET(wckp->hvbox)); gtk_container_add(GTK_CONTAINER(wckp->ebox), wckp->alignment); /* show widgets */ gtk_widget_show(wckp->ebox); gtk_widget_show(wckp->alignment); gtk_widget_show(wckp->hvbox); gtk_widget_show(label); return wckp; }
/** * construct_workspaces: * @plugin: the xfce plugin object * * Create the plugin. * * Returns: the plugin */ static i3WorkspacesPlugin * construct_workspaces(XfcePanelPlugin *plugin) { i3WorkspacesPlugin *i3_workspaces; GtkOrientation orientation; /* allocate memory for the plugin structure */ i3_workspaces = panel_slice_new0(i3WorkspacesPlugin); /* pointer to plugin */ i3_workspaces->plugin = plugin; /* plugin configuration */ i3_workspaces->config = i3_workspaces_config_new(); i3_workspaces_config_load(i3_workspaces->config, plugin); /* get the current orientation */ orientation = xfce_panel_plugin_get_orientation (plugin); /* create some panel widgets */ i3_workspaces->ebox = gtk_event_box_new(); gtk_widget_show(i3_workspaces->ebox); /* listen for scroll events */ gtk_widget_add_events(i3_workspaces->ebox, GDK_SCROLL_MASK); g_signal_connect(G_OBJECT(i3_workspaces->ebox), "scroll-event", G_CALLBACK(on_workspace_scrolled), i3_workspaces); i3_workspaces->hvbox = xfce_hvbox_new(orientation, FALSE, 2); gtk_widget_show(i3_workspaces->hvbox); gtk_container_add(GTK_CONTAINER(i3_workspaces->ebox), i3_workspaces->hvbox); i3_workspaces->workspace_buttons = g_hash_table_new(g_direct_hash, g_direct_equal); GError *err = NULL; i3_workspaces->i3wm = i3wm_construct(&err); if (NULL != err) { //TODO: error_state_on(); recover_from_disconnect(i3_workspaces); //TODO: error_state_off(); } connect_callbacks(i3_workspaces); add_workspaces(i3_workspaces); return i3_workspaces; }
static void places_button_construct(PlacesButton *self, XfcePanelPlugin *plugin) { GtkOrientation orientation; g_assert(XFCE_IS_PANEL_PLUGIN(plugin)); g_object_ref(plugin); self->plugin = plugin; /* from libxfce4panel */ GTK_WIDGET_UNSET_FLAGS(self, GTK_CAN_DEFAULT|GTK_CAN_FOCUS); gtk_button_set_relief(GTK_BUTTON(self), GTK_RELIEF_NONE); gtk_button_set_focus_on_click(GTK_BUTTON(self), FALSE); self->alignment = gtk_alignment_new (0.0, 0.5, 1.0, 1.0); gtk_container_add(GTK_CONTAINER(self), self->alignment); gtk_widget_show(self->alignment); orientation = xfce_panel_plugin_get_orientation(self->plugin); self->box = xfce_hvbox_new(orientation, FALSE, BOX_SPACING); gtk_container_set_border_width(GTK_CONTAINER(self->box), 0); gtk_container_add(GTK_CONTAINER(self->alignment), self->box); gtk_widget_show(self->box); places_button_resize(self); #ifdef HAS_PANEL_49 g_signal_connect(G_OBJECT(plugin), "mode-changed", G_CALLBACK(places_button_mode_changed), self); #else g_signal_connect(G_OBJECT(plugin), "orientation-changed", G_CALLBACK(places_button_orientation_changed), self); #endif g_signal_connect(G_OBJECT(plugin), "size-changed", G_CALLBACK(places_button_size_changed), self); self->style_set_id = g_signal_connect(G_OBJECT(self), "style-set", G_CALLBACK(places_button_theme_changed), NULL); self->screen_changed_id = g_signal_connect(G_OBJECT(self), "screen-changed", G_CALLBACK(places_button_theme_changed), NULL); }
static i3WorkspacesPlugin * i3_workspaces_new (XfcePanelPlugin *plugin) { i3WorkspacesPlugin *i3_workspaces; GtkOrientation orientation; GtkWidget *label; /* allocate memory for the plugin structure */ i3_workspaces = panel_slice_new0 (i3WorkspacesPlugin); /* pointer to plugin */ i3_workspaces->plugin = plugin; /* get the current orientation */ orientation = xfce_panel_plugin_get_orientation (plugin); /* create some panel widgets */ i3_workspaces->ebox = gtk_event_box_new (); gtk_widget_show (i3_workspaces->ebox); i3_workspaces->hvbox = xfce_hvbox_new (orientation, FALSE, 2); gtk_widget_show (i3_workspaces->hvbox); gtk_container_add (GTK_CONTAINER (i3_workspaces->ebox), i3_workspaces->hvbox); i3_workspaces->i3wm = i3wm_construct(); i3_workspaces->buttons = (GtkWidget **) g_malloc0(sizeof(GtkWidget *) * I3_WORKSPACE_N); i3wm_set_workspace_created_callback(i3_workspaces->i3wm, i3_on_workspace_created, i3_workspaces); i3wm_set_workspace_destroyed_callback(i3_workspaces->i3wm, i3_on_workspace_destroyed, i3_workspaces); i3wm_set_workspace_focused_callback(i3_workspaces->i3wm, i3_on_workspace_focused, i3_workspaces); i3wm_set_workspace_blurred_callback(i3_workspaces->i3wm, i3_on_workspace_blurred, i3_workspaces); i3_add_workspaces(i3_workspaces); return i3_workspaces; }