static int pager_constructor(plugin_instance *plug) { pager_priv *pg; ENTER; pg = (pager_priv *) plug; #ifdef EXTRA_DEBUG cp = pg; signal(SIGUSR2, sig_usr); #endif pg->htable = g_hash_table_new (g_int_hash, g_int_equal); pg->box = plug->panel->my_box_new(TRUE, 1); gtk_container_set_border_width (GTK_CONTAINER (pg->box), 0); gtk_widget_show(pg->box); gtk_bgbox_set_background(plug->pwid, BG_STYLE, 0, 0); gtk_container_set_border_width (GTK_CONTAINER (plug->pwid), BORDER); gtk_container_add(GTK_CONTAINER(plug->pwid), pg->box); pg->ratio = (gfloat)gdk_screen_width() / (gfloat)gdk_screen_height(); if (plug->panel->orientation == GTK_ORIENTATION_HORIZONTAL) { pg->dah = plug->panel->ah - 2 * BORDER; pg->daw = (gfloat) pg->dah * pg->ratio; } else { pg->daw = plug->panel->aw - 2 * BORDER; pg->dah = (gfloat) pg->daw / pg->ratio; } pg->wallpaper = 1; //pg->scaley = (gfloat)pg->dh / (gfloat)gdk_screen_height(); //pg->scalex = (gfloat)pg->dw / (gfloat)gdk_screen_width(); XCG(plug->xc, "showwallpaper", &pg->wallpaper, enum, bool_enum); if (pg->wallpaper) { pg->fbbg = fb_bg_get_for_display(); DBG("get fbbg %p\n", pg->fbbg); g_signal_connect(G_OBJECT(pg->fbbg), "changed", G_CALLBACK(pager_bg_changed), pg); } pager_rebuild_all(fbev, pg); gdk_window_add_filter(NULL, (GdkFilterFunc)pager_event_filter, pg ); g_signal_connect (G_OBJECT (fbev), "current_desktop", G_CALLBACK (do_net_current_desktop), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "active_window", G_CALLBACK (do_net_active_window), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "number_of_desktops", G_CALLBACK (pager_rebuild_all), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "client_list_stacking", G_CALLBACK (do_net_client_list_stacking), (gpointer) pg); RET(1); }
static int pager_wnck_constructor(Plugin *plug, char **fp) { pager *pg; ENTER; pg = g_new0(pager, 1); g_return_val_if_fail(pg != NULL, 0); plug->priv = pg; pg->plugin = plug; plug->pwid = gtk_event_box_new(); GTK_WIDGET_SET_FLAGS( plug->pwid, GTK_NO_WINDOW ); pg->htable = g_hash_table_new (g_int_hash, g_int_equal); pg->box = wnck_pager_new(NULL); g_return_val_if_fail(pg->box != NULL, 0); //set orientation wnck_pager_set_orientation (WNCK_PAGER (pg->box),pg->plugin->panel->orientation); wnck_pager_set_n_rows (WNCK_PAGER (pg->box), 1); //pager->rows); wnck_pager_set_display_mode (WNCK_PAGER (pg->box),WNCK_PAGER_DISPLAY_CONTENT); //pager->show_names ? WNCK_PAGER_DISPLAY_NAME : WNCK_PAGER_DISPLAY_CONTENT); //gtk_widget_show (pg->box); //gtk_container_add (GTK_CONTAINER (plugin), pg->box); gtk_container_set_border_width (GTK_CONTAINER (pg->box), 2); gtk_widget_show(pg->box); gtk_container_set_border_width (GTK_CONTAINER (plug->pwid), 1); gtk_container_add(GTK_CONTAINER(plug->pwid), pg->box); pg->eb = pg->box; pg->ratio = (gfloat)gdk_screen_width() / (gfloat)gdk_screen_height(); pg->scaley = (gfloat)pg->dh / (gfloat)gdk_screen_height(); pg->scalex = (gfloat)pg->dw / (gfloat)gdk_screen_width(); pager_rebuild_all(fbev, pg); //do_net_current_desktop(fbev, pg); //do_net_client_list_stacking(fbev, pg); gdk_window_add_filter(NULL, (GdkFilterFunc)pager_event_filter, pg ); g_signal_connect (G_OBJECT (fbev), "current_desktop", G_CALLBACK (do_net_current_desktop), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "active_window", G_CALLBACK (do_net_active_window), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "number_of_desktops", G_CALLBACK (pager_rebuild_all), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "client_list_stacking", G_CALLBACK (do_net_client_list_stacking), (gpointer) pg); RET(1); }
static int pager_constructor(plugin *plug) { pager *pg; ENTER; pg = g_new0(pager, 1); g_return_val_if_fail(pg != NULL, 0); plug->priv = pg; pg->htable = g_hash_table_new (g_int_hash, g_int_equal); pg->box = plug->panel->my_box_new(TRUE, 1); gtk_container_set_border_width (GTK_CONTAINER (pg->box), 0); gtk_widget_show(pg->box); gtk_bgbox_set_background(plug->pwid, BG_STYLE, 0, 0); gtk_container_set_border_width (GTK_CONTAINER (plug->pwid), 1); gtk_container_add(GTK_CONTAINER(plug->pwid), pg->box); pg->eb = pg->box; pg->ratio = (gfloat)gdk_screen_width() / (gfloat)gdk_screen_height(); pg->scaley = (gfloat)pg->dh / (gfloat)gdk_screen_height(); pg->scalex = (gfloat)pg->dw / (gfloat)gdk_screen_width(); pager_rebuild_all(fbev, pg); //do_net_current_desktop(fbev, pg); //do_net_client_list_stacking(fbev, pg); gdk_window_add_filter(NULL, (GdkFilterFunc)pager_event_filter, pg ); g_signal_connect (G_OBJECT (fbev), "current_desktop", G_CALLBACK (do_net_current_desktop), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "active_window", G_CALLBACK (do_net_active_window), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "number_of_desktops", G_CALLBACK (pager_rebuild_all), (gpointer) pg); g_signal_connect (G_OBJECT (fbev), "client_list_stacking", G_CALLBACK (do_net_client_list_stacking), (gpointer) pg); RET(1); }