示例#1
0
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 );
	}
}
示例#2
0
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);
  }
}