static void create_plugin( GtkWidget *vbox, gint first_create ) { GdkImlibImage *krell_image; TextStyle *ts, *ts_alt; Style *panel_style, *slider_style; if ( first_create ) panel = gkrellm_panel_new0(); panel_style = gkrellm_meter_style( style_id ); slider_style = gkrellm_krell_slider_style(); krell_image = gkrellm_krell_slider_image(); krell = gkrellm_create_krell( panel, krell_image, slider_style ); gkrellm_monotonic_krell_values( krell, FALSE ); gkrellm_set_krell_full_scale( krell, MAX_LCD, 1 ); gkrellm_panel_configure( panel, NULL, panel_style ); gkrellm_panel_create( vbox, monitor, panel ); ts = gkrellm_meter_textstyle( style_id ); ts_alt = gkrellm_meter_alt_textstyle( style_id ); text = gkrellm_create_decal_text( panel, "LCD", ts_alt, panel_style, 3, -1, -1 ); if ( first_create ){ gtk_signal_connect( GTK_OBJECT(panel->drawing_area), "expose_event", (GtkSignalFunc)plug_expose_event, NULL ); gtk_signal_connect( GTK_OBJECT(panel->drawing_area), "button_press_event", (GtkSignalFunc)panel_button_press, NULL ); gtk_signal_connect( GTK_OBJECT(panel->drawing_area), "button_release_event", (GtkSignalFunc)panel_button_release, NULL ); gtk_signal_connect( GTK_OBJECT(panel->drawing_area), "motion_notify_event", (GtkSignalFunc)slider_motion, NULL ); } }
static void create_plugin(GtkWidget* vbox, gint first_create) { GkrellmStyle* style; GkrellmPiximage* krell_image; GkrellmTextstyle* ts; gint y = -1; unsigned int cpu; /* called when GKrellM is re-built at every theme or horizontal size change */ if (first_create) panel = gkrellm_panel_new0(); read_khz(); for ( cpu=0; cpu<ncpu; ++cpu ) { style = gkrellm_meter_style(style_id); /* text style */ ts = gkrellm_meter_textstyle(style_id); /* the governor text */ text_decal_gov[cpu] = gkrellm_create_decal_text(panel, "abcdefghijklmnopqrstuvwxyz", ts, style, -1, /* x = -1 places at left margin */ y, /* y = -1 places at top margin */ -1); /* w = -1 makes decal the panel width minus margins */ if (gov_enable) { governor_text[cpu] = governor[cpu]; y = text_decal_gov[cpu]->y + text_decal_gov[cpu]->h + 1; } else { governor_text[cpu] = empty; } /* the frequency text */ text_decal_freq[cpu] = gkrellm_create_decal_text(panel, "0123456789 MHz", ts, style, -1, /* x = -1 places at left margin */ y, /* y = -1 places at top margin */ -1); /* w = -1 makes decal the panel width minus margins */ y = text_decal_freq[cpu]->y + text_decal_freq[cpu]->h + 1; /* the slider */ if (slider_enable) { krell_image = gkrellm_krell_slider_piximage(); gkrellm_set_style_slider_values_default(style, y, /* y offset */ 0, 0); /* Left and right krell margins */ slider_krell[cpu] = gkrellm_create_krell(panel, krell_image, style); y = slider_krell[cpu]->y0 + slider_krell[cpu]->h_frame + 2; gkrellm_monotonic_krell_values(slider_krell[cpu], FALSE); gkrellm_set_krell_full_scale(slider_krell[cpu], slider_krell[cpu]->w_scale, 1); gkrellm_update_krell(panel, slider_krell[cpu], 0); update_slider_position(slider_krell[cpu], slider_krell[cpu]->w_scale*khz[cpu]/khz_max, cpu); } } slider_enable_current = slider_enable; gov_enable_current = gov_enable; /* configure and create the panel */ gkrellm_panel_configure(panel, "", style); gkrellm_panel_create(vbox, monitor, panel); if (first_create) { g_signal_connect(G_OBJECT (panel->drawing_area), "expose_event", G_CALLBACK(panel_expose_event), NULL); g_signal_connect(G_OBJECT(panel->drawing_area), "button_press_event", G_CALLBACK(cb_panel_press), NULL ); g_signal_connect(G_OBJECT(panel->drawing_area), "button_release_event", G_CALLBACK(cb_panel_release), NULL ); g_signal_connect(G_OBJECT(panel->drawing_area), "motion_notify_event", G_CALLBACK(cb_panel_motion), NULL); } }