Beispiel #1
0
static gint cb_panel_press(GtkWidget* widget, GdkEventButton* ev,
                           gpointer data) {
  GkrellmKrell *k;

  if (ev->button == 3) {
    gkrellm_open_config_window(monitor);
    return TRUE;
  }

  unsigned int cpu;
  for ( cpu=0; cpu<ncpu; ++cpu ) {
    /* Check if button was pressed within the space taken
       up by the slider krell.
    */
    slider_in_motion[cpu] = NULL;
    k = slider_krell[cpu];
    if ( slider_enable_current &&
         ev->x >  k->x0 &&
         ev->x <= k->x0 + k->w_scale &&
         ev->y >= k->y0 &&
         ev->y <= k->y0 + k->h_frame ) {
      slider_in_motion[cpu] = k;
    }

    if (slider_in_motion[cpu]) {
      update_slider_position(slider_in_motion[cpu], (gint) ev->x, cpu);
    }

    /* Check if button was pressed within the space taken
       up by the governor text
    */
    if (gov_enable_current && 
        ev->x > text_decal_gov[cpu]->x &&
        ev->x <= text_decal_gov[cpu]->x + text_decal_gov[cpu]->w &&
        ev->y >= text_decal_gov[cpu]->y &&
        ev->y <= text_decal_gov[cpu]->y + text_decal_gov[cpu]->h) {
      /* toggle governor */
      if(controls_coupled) {
        unsigned int icpu;
        for ( icpu=0; icpu<ncpu; ++icpu ) {
          next_governor(icpu);
        }
      } else {
        next_governor(cpu);
      }
    }
  }

  return TRUE;
}
Beispiel #2
0
static gint cb_panel_motion(GtkWidget* widget, GdkEventMotion* ev,
                            gpointer data) {
  GdkModifierType state;

  unsigned int cpu;
  for ( cpu=0; cpu<ncpu; ++cpu ) {
    if (slider_in_motion[cpu]) {
      /* Check if button is still pressed, in case missed button_release*/
      state = ev->state;
      if (!(state & GDK_BUTTON1_MASK)) {
        slider_in_motion[cpu] = NULL;
      } else {
        update_slider_position(slider_in_motion[cpu], (gint) ev->x, cpu);
      }
    }
  }
  return TRUE;
}
void PluginSlider::wheelEvent( QWheelEvent* e )
{
	if (e->orientation() == Qt::Vertical) {
		if (e->delta() > 0) {
			m_value += m_stepvalue;
			if (m_value > m_max) {
				m_value = m_max;
			}
		}
		if (e->delta() < 0) {
			m_value -= m_stepvalue;
			if (m_value < m_min) {
				m_value = m_min;
			}
		}
		
		update_slider_position();
	}
}
void PluginSlider::reset_default_value()
{
	m_value = m_port->get_default_value();
	update_slider_position();
}
Beispiel #5
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);
  }
}