void update_text_controls() { gfloat tmp1 = 0.0; gfloat tmp2 = 0.0; gchar *tmpbuf0 = NULL; gchar *tmpbuf = NULL; GtkWidget * widget = NULL; MtxGaugeFace *g = NULL; GdkColor color; if (GTK_IS_WIDGET(gauge)) g = MTX_GAUGE_FACE(gauge); else return; if (!toplevel) return; hold_handlers = TRUE; widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"precision_spin")); mtx_gauge_face_get_attribute(g, PRECISION, &tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),(gint)tmp1); mtx_gauge_face_get_attribute(g, VALUE_FONTSCALE, &tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"value_font_scale_spin")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); mtx_gauge_face_get_attribute(g, VALUE_XPOS, &tmp1); mtx_gauge_face_get_attribute(g, VALUE_YPOS, &tmp2); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"value_xpos_spin")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"value_ypos_spin")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp2); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"value_font_button")); tmpbuf0 = mtx_gauge_face_get_value_font(g); tmpbuf = g_strdup_printf("%s 13",tmpbuf0); gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget),tmpbuf); g_free(tmpbuf0); g_free(tmpbuf); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"show_value_check")); mtx_gauge_face_get_attribute(g, SHOW_VALUE, &tmp1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),(gint)tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"value_color_day_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_VALUE_FONT_DAY, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"value_color_nite_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_VALUE_FONT_NITE, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); hold_handlers = FALSE; }
EXPORT gboolean animate_gauge(GtkWidget *widget, gpointer data) { gfloat lower = 0.0; gfloat upper = 0.0; if (!GTK_IS_WIDGET(gauge)) return FALSE; gtk_widget_set_sensitive(widget,FALSE); mtx_gauge_face_get_attribute(MTX_GAUGE_FACE(gauge), LBOUND, &lower); mtx_gauge_face_get_attribute(MTX_GAUGE_FACE(gauge), UBOUND, &upper); mtx_gauge_face_set_value(MTX_GAUGE_FACE (gauge),lower); g_timeout_add(20,(GtkFunction)sweep_gauge, (gpointer)gauge); return TRUE; }
gboolean sweep_gauge(gpointer data) { static gfloat lower = 0.0; static gfloat upper = 0.0; gfloat interval = 0.0; gfloat cur_val = 0.0; GladeXML *xml = NULL; GtkWidget *button = NULL; static gboolean rising = TRUE; GtkWidget * gauge = NULL; gauge = (GtkWidget *)data; if (!GTK_IS_WIDGET(gauge)) return FALSE; mtx_gauge_face_get_attribute(MTX_GAUGE_FACE(gauge), LBOUND, &lower); mtx_gauge_face_get_attribute(MTX_GAUGE_FACE(gauge), UBOUND, &upper); interval = (upper-lower)/75.0; mtx_gauge_face_get_value(MTX_GAUGE_FACE (gauge), &cur_val); if (cur_val >= upper) rising = FALSE; if (cur_val <= lower) rising = TRUE; if (rising) cur_val+=interval; else cur_val-=interval; mtx_gauge_face_set_value (MTX_GAUGE_FACE (gauge),cur_val); if (cur_val <= lower) { /* This cancels the timeout once one full complete sweep * of the gauge */ xml = glade_get_widget_tree(gauge->parent); button = glade_xml_get_widget(xml,"animate_button"); gtk_widget_set_sensitive(button,TRUE); mtx_gauge_face_set_value (MTX_GAUGE_FACE (gauge),lower); return FALSE; } else return TRUE; }
G_MODULE_EXPORT gboolean create_warning_span_event(GtkWidget * widget, gpointer data) { GtkBuilder *warnings; GtkWidget *dialog = NULL; GtkWidget *spinner = NULL; GtkWidget *tmpwidget = NULL; GtkWidget *cbutton = NULL; MtxWarningRange *range = NULL; gfloat lbound = 0.0; gfloat ubound = 0.0; gchar * filename = NULL; gint result = 0; GError *error = NULL; gchar *pathstub = NULL; if (!GTK_IS_WIDGET(gauge)) return FALSE; pathstub = g_build_filename(GAUGEDESIGNER_GLADE_DIR,"w_range.ui",NULL); filename = get_file(NULL,pathstub,NULL); g_free(pathstub); if (filename) { warnings = gtk_builder_new(); if(!gtk_builder_add_from_file(warnings,filename,&error)) { g_warning ("Couldn't load builder file: %s", error->message); g_error_free(error); exit(-1); } g_free(filename); } else { printf("Can't locate primary ui file!!!!\n"); exit(-1); } gtk_builder_connect_signals(warnings,NULL); dialog = GTK_WIDGET (gtk_builder_get_object(warnings,"w_range_dialog")); cbutton = GTK_WIDGET (gtk_builder_get_object(warnings,"range_day_colorbutton")); gtk_color_button_set_color(GTK_COLOR_BUTTON(cbutton),&white); cbutton = GTK_WIDGET (gtk_builder_get_object(warnings,"range_nite_colorbutton")); gtk_color_button_set_color(GTK_COLOR_BUTTON(cbutton),&black); if (!GTK_IS_WIDGET(dialog)) { return FALSE; } /* Set the controls to sane ranges corresponding to the gauge */ mtx_gauge_face_get_attribute(MTX_GAUGE_FACE(gauge), LBOUND, &lbound); mtx_gauge_face_get_attribute(MTX_GAUGE_FACE(gauge), UBOUND, &ubound); spinner = GTK_WIDGET (gtk_builder_get_object(warnings,"range_lowpoint_spin")); OBJ_SET(spinner,"builder",warnings); gtk_spin_button_set_range(GTK_SPIN_BUTTON(spinner),lbound,ubound); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinner),(ubound-lbound)/2.0); spinner = GTK_WIDGET (gtk_builder_get_object(warnings,"range_highpoint_spin")); OBJ_SET(spinner,"builder",warnings); gtk_spin_button_set_range(GTK_SPIN_BUTTON(spinner),lbound,ubound); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinner),ubound); result = gtk_dialog_run(GTK_DIALOG(dialog)); switch (result) { case GTK_RESPONSE_APPLY: range = g_new0(MtxWarningRange, 1); range->lowpoint = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(warnings,"range_lowpoint_spin"))); range->highpoint = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(warnings,"range_highpoint_spin"))); range->inset = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(warnings,"range_inset_spin"))); range->lwidth = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(warnings,"range_lwidth_spin"))); gtk_color_button_get_color(GTK_COLOR_BUTTON(gtk_builder_get_object(warnings,"range_day_colorbutton")),&range->color[MTX_DAY]); gtk_color_button_get_color(GTK_COLOR_BUTTON(gtk_builder_get_object(warnings,"range_nite_colorbutton")),&range->color[MTX_NITE]); changed = TRUE; mtx_gauge_face_set_warning_range_struct(MTX_GAUGE_FACE(gauge),range); g_free(range); update_onscreen_w_ranges(); break; default: break; } if (GTK_IS_WIDGET(dialog)) gtk_widget_destroy(dialog); return (FALSE); }
void update_onscreen_w_ranges() { GtkWidget *container = NULL; static GtkWidget *table = NULL; GtkWidget *dummy = NULL; GtkWidget *label = NULL; GtkWidget *button = NULL; GtkWidget *img = NULL; GtkAdjustment *adj = NULL; guint i = 0; gint y = 1; gfloat low = 0.0; gfloat high = 0.0; MtxWarningRange *range = NULL; GArray * array = NULL; if ((!toplevel) || (!GTK_IS_WIDGET(gauge))) return; array = (GArray *)mtx_gauge_face_get_warning_ranges(MTX_GAUGE_FACE(gauge)); container = GTK_WIDGET (gtk_builder_get_object(toplevel,"warning_range_viewport")); if (!GTK_IS_WIDGET(container)) { printf("color range viewport invalid!!\n"); return; } y=1; if (GTK_IS_WIDGET(table)) gtk_widget_destroy(table); table = gtk_table_new(2,7,FALSE); gtk_container_add(GTK_CONTAINER(container),table); if (array->len > 0) { /* Create headers */ label = gtk_label_new("Low"); gtk_table_attach(GTK_TABLE(table),label,1,2,0,1,GTK_EXPAND,GTK_SHRINK,0,0); label = gtk_label_new("High"); gtk_table_attach(GTK_TABLE(table),label,2,3,0,1,GTK_EXPAND,GTK_SHRINK,0,0); label = gtk_label_new("Inset"); gtk_table_attach(GTK_TABLE(table),label,3,4,0,1,GTK_EXPAND,GTK_SHRINK,0,0); label = gtk_label_new("LWidth"); gtk_table_attach(GTK_TABLE(table),label,4,5,0,1,GTK_EXPAND,GTK_SHRINK,0,0); label = gtk_label_new("Day Color"); gtk_table_attach(GTK_TABLE(table),label,5,6,0,1,GTK_EXPAND,GTK_SHRINK,0,0); label = gtk_label_new("Night Color"); gtk_table_attach(GTK_TABLE(table),label,6,7,0,1,GTK_EXPAND,GTK_SHRINK,0,0); } /* Repopulate the table with the current ranges... */ for (i=0;i<array->len; i++) { range = g_array_index(array,MtxWarningRange *, i); button = gtk_button_new(); img = gtk_image_new_from_stock("gtk-close",GTK_ICON_SIZE_MENU); gtk_container_add(GTK_CONTAINER(button),img); OBJ_SET((button),"range_index",GINT_TO_POINTER(i)); g_signal_connect(G_OBJECT(button),"clicked", G_CALLBACK(remove_w_range),NULL); gtk_table_attach(GTK_TABLE(table),button,0,1,y,y+1,(GtkAttachOptions)0,(GtkAttachOptions)0,0,0); mtx_gauge_face_get_attribute(MTX_GAUGE_FACE(gauge), LBOUND, &low); mtx_gauge_face_get_attribute(MTX_GAUGE_FACE(gauge), UBOUND, &high); dummy = gtk_spin_button_new_with_range(low,high,(high-low)/100); OBJ_SET(dummy,"index",GINT_TO_POINTER(i)); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dummy),range->lowpoint); g_signal_connect(G_OBJECT(dummy),"value_changed", G_CALLBACK(alter_w_range_data),GINT_TO_POINTER(WR_LOWPOINT)); gtk_table_attach(GTK_TABLE(table),dummy,1,2,y,y+1,GTK_SHRINK,GTK_SHRINK,0,0); dummy = gtk_spin_button_new_with_range(low,high,(high-low)/100); OBJ_SET(dummy,"index",GINT_TO_POINTER(i)); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dummy),range->highpoint); g_signal_connect(G_OBJECT(dummy),"value_changed", G_CALLBACK(alter_w_range_data),GINT_TO_POINTER(WR_HIGHPOINT)); gtk_table_attach(GTK_TABLE(table),dummy,2,3,y,y+1,GTK_SHRINK,GTK_SHRINK,0,0); dummy = gtk_spin_button_new_with_range(0,1,0.001); OBJ_SET(dummy,"index",GINT_TO_POINTER(i)); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dummy),range->inset); g_signal_connect(G_OBJECT(dummy),"value_changed", G_CALLBACK(alter_w_range_data),GINT_TO_POINTER(WR_INSET)); gtk_table_attach(GTK_TABLE(table),dummy,3,4,y,y+1,GTK_SHRINK,GTK_SHRINK,0,0); dummy = gtk_spin_button_new_with_range(0,1,0.001); OBJ_SET(dummy,"index",GINT_TO_POINTER(i)); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dummy),range->lwidth); g_signal_connect(G_OBJECT(dummy),"value_changed", G_CALLBACK(alter_w_range_data),GINT_TO_POINTER(WR_LWIDTH)); gtk_table_attach(GTK_TABLE(table),dummy,4,5,y,y+1,GTK_SHRINK,GTK_SHRINK,0,0); dummy = gtk_color_button_new_with_color(&range->color[MTX_DAY]); OBJ_SET(dummy,"index",GINT_TO_POINTER(i)); g_signal_connect(G_OBJECT(dummy),"color_set", G_CALLBACK(alter_w_range_data),GINT_TO_POINTER(WR_COLOR_DAY)); gtk_table_attach(GTK_TABLE(table),dummy,5,6,y,y+1,GTK_SHRINK,GTK_SHRINK,0,0); dummy = gtk_color_button_new_with_color(&range->color[MTX_NITE]); OBJ_SET(dummy,"index",GINT_TO_POINTER(i)); g_signal_connect(G_OBJECT(dummy),"color_set", G_CALLBACK(alter_w_range_data),GINT_TO_POINTER(WR_COLOR_NITE)); gtk_table_attach(GTK_TABLE(table),dummy,6,7,y,y+1,GTK_SHRINK,GTK_SHRINK,0,0); y++; } /* Scroll to end */ dummy = GTK_WIDGET (gtk_builder_get_object(toplevel,"crange_swin")); adj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(dummy)); gtk_adjustment_set_value(adj,gtk_adjustment_get_upper(adj)); gtk_widget_show_all(container); }
G_MODULE_EXPORT gboolean tg_spin_button_handler(GtkWidget *widget, gpointer data) { gint tmpi = 0; gfloat tmpf = 0.0; gfloat lbound = 0.0; gfloat ubound = 0.0; gfloat angle = 0.0; gfloat sweep = 0.0; gfloat tmp3 = 0.0; gfloat percent = 0.0; gfloat newval = 0.0; GtkWidget *lowpartner = NULL; GtkWidget *highpartner = NULL; MtxGaugeFace *g = NULL; gint handler = (GINT)OBJ_GET((widget),"spin_handler"); tmpf = (gfloat)gtk_spin_button_get_value((GtkSpinButton *)widget); tmpi = (gint)(tmpf+0.00001); if (GTK_IS_WIDGET(gauge)) g = MTX_GAUGE_FACE(gauge); else return FALSE; if (hold_handlers) return TRUE; switch (handler) { case ADJ_LOW_UNIT_PARTNER: lowpartner = OBJ_GET((widget),"lowpartner"); highpartner = OBJ_GET((widget),"highpartner"); if ((!GTK_IS_WIDGET(lowpartner)) || (!GTK_IS_WIDGET(highpartner))) break; mtx_gauge_face_get_attribute(g,START_ANGLE,&angle); mtx_gauge_face_get_attribute(g,SWEEP_ANGLE,&sweep); percent = (tmpf-angle)/(sweep); mtx_gauge_face_get_attribute(g,LBOUND,&lbound); mtx_gauge_face_get_attribute(g,UBOUND,&ubound); newval = ((ubound-lbound)*percent)+lbound; gtk_spin_button_set_value(GTK_SPIN_BUTTON(lowpartner),newval); tmp3 = gtk_spin_button_get_value(GTK_SPIN_BUTTON(OBJ_GET((widget),"high_angle"))); percent = tmp3/sweep+((tmpf-angle)/sweep); newval = ((ubound-lbound)*percent)+lbound; gtk_spin_button_set_value(GTK_SPIN_BUTTON(highpartner),newval); break; case ADJ_HIGH_UNIT_PARTNER: highpartner = OBJ_GET((widget),"highpartner"); tmp3 = gtk_spin_button_get_value(GTK_SPIN_BUTTON(OBJ_GET((widget),"low_angle"))); if (!GTK_IS_WIDGET(highpartner)) break; mtx_gauge_face_get_attribute(g,START_ANGLE,&angle); mtx_gauge_face_get_attribute(g,SWEEP_ANGLE,&sweep); percent = tmpf/sweep+((tmp3-angle)/sweep); mtx_gauge_face_get_attribute(g,LBOUND,&lbound); mtx_gauge_face_get_attribute(g,UBOUND,&ubound); newval = ((ubound-lbound)*percent)+lbound; gtk_spin_button_set_value(GTK_SPIN_BUTTON(highpartner),newval); break; case ADJ_START_ANGLE_PARTNER: lowpartner = OBJ_GET((widget),"lowpartner"); if (!GTK_IS_WIDGET(lowpartner)) break; mtx_gauge_face_get_attribute(g,LBOUND,&lbound); mtx_gauge_face_get_attribute(g,UBOUND,&ubound); percent = (tmpf-lbound)/(ubound-lbound); mtx_gauge_face_get_attribute(g,START_ANGLE,&angle); mtx_gauge_face_get_attribute(g,SWEEP_ANGLE,&sweep); newval = ((sweep)*percent)+angle; gtk_spin_button_set_value(GTK_SPIN_BUTTON(lowpartner),newval); break; case ADJ_SWEEP_ANGLE_PARTNER: highpartner = OBJ_GET((widget),"highpartner"); if (!GTK_IS_WIDGET(highpartner)) break; tmp3 = gtk_spin_button_get_value(GTK_SPIN_BUTTON(OBJ_GET((widget),"start_angle"))); mtx_gauge_face_get_attribute(g,LBOUND,&lbound); mtx_gauge_face_get_attribute(g,UBOUND,&ubound); percent = (tmpf-lbound)/(ubound-lbound); mtx_gauge_face_get_attribute(g,START_ANGLE,&angle); mtx_gauge_face_get_attribute(g,SWEEP_ANGLE,&sweep); newval = ((percent*sweep)+angle)-tmp3; gtk_spin_button_set_value(GTK_SPIN_BUTTON(highpartner),newval); break; } return (TRUE); }
void update_general_controls() { gfloat tmp1 = 0.0; GtkWidget * widget = NULL; MtxGaugeFace *g = NULL; GdkColor color; if (GTK_IS_WIDGET(gauge)) g = MTX_GAUGE_FACE(gauge); else return; if (!toplevel) return; hold_handlers = TRUE; mtx_gauge_face_get_attribute(g,ROTATION,&tmp1); if (tmp1 == MTX_ROT_CW) widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"cw_rbutton")); else if (tmp1 == MTX_ROT_CCW) widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"ccw_rbutton")); else widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"cw_rbutton")); gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(widget),TRUE); mtx_gauge_face_get_attribute(g,ANTIALIAS,&tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"antialiased_check")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),(gint)tmp1); mtx_gauge_face_get_attribute(g,TATTLETALE,&tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"tattletale_check")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),(gint)tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"tattletale_alpha_spin")); mtx_gauge_face_get_attribute(g,TATTLETALE_ALPHA,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"needle_length_spin")); mtx_gauge_face_get_attribute(g,NEEDLE_LENGTH,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"needle_width_spin")); mtx_gauge_face_get_attribute(g,NEEDLE_WIDTH,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"needle_tip_width_spin")); mtx_gauge_face_get_attribute(g,NEEDLE_TIP_WIDTH,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"needle_tail_width_spin")); mtx_gauge_face_get_attribute(g,NEEDLE_TAIL_WIDTH,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"needle_tail_spin")); mtx_gauge_face_get_attribute(g,NEEDLE_TAIL,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"start_angle_spin")); mtx_gauge_face_get_attribute(g,START_ANGLE,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"sweep_angle_spin")); mtx_gauge_face_get_attribute(g,SWEEP_ANGLE,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"lbound_spin")); mtx_gauge_face_get_attribute(g,LBOUND,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"ubound_spin")); mtx_gauge_face_get_attribute(g,UBOUND,&tmp1); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tmp1); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"background_color_day_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_BG_DAY, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"background_color_nite_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_BG_NITE, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"needle_color_day_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_NEEDLE_DAY, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"needle_color_nite_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_NEEDLE_NITE, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"gradient_begin_color_day_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_GRADIENT_BEGIN_DAY, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"gradient_begin_color_nite_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_GRADIENT_BEGIN_NITE, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"gradient_end_color_day_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_GRADIENT_END_DAY, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"gradient_end_color_nite_button")); (void)mtx_gauge_face_get_color(g,GAUGE_COL_GRADIENT_END_NITE, &color); gtk_color_button_set_color(GTK_COLOR_BUTTON(widget), &color); widget = GTK_WIDGET (gtk_builder_get_object(toplevel,"daytime_radiobutton")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),mtx_gauge_face_get_daytime_mode(g)); hold_handlers = FALSE; }
G_MODULE_EXPORT gboolean create_tick_group_event(GtkWidget * widget, gpointer data) { GtkWidget *dialog = NULL; GtkWidget *dummy = NULL; MtxTickGroup *tgroup = NULL; gchar * filename = NULL; gfloat tmp1 = 0.0; gfloat tmp2 = 0.0; gint result = 0; MtxGaugeFace *g = NULL; GError *error = NULL; if (GTK_IS_WIDGET(gauge)) g = MTX_GAUGE_FACE(gauge); if (!GTK_IS_WIDGET(gauge)) return FALSE; filename = get_file(g_build_filename(GAUGEDESIGNER_GLADE_DIR,"tgroup.ui",NULL),NULL); if (filename) { tgroups = gtk_builder_new(); if(!gtk_builder_add_from_file(tgroups,filename, &error)) { g_warning ("Couldn't load builder file: %s", error->message); g_error_free(error); exit(-1); } g_free(filename); } else { printf("Can't locate primary ui file!!!!\n"); exit(-1); } gtk_builder_connect_signals(tgroups,NULL); dialog = GTK_WIDGET (gtk_builder_get_object(tgroups,"tgroup_dialog")); gtk_color_button_set_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_text_day_colorbutton")),&white); gtk_color_button_set_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_text_nite_colorbutton")),&black); gtk_color_button_set_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_maj_tick_day_colorbutton")),&white); gtk_color_button_set_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_maj_tick_nite_colorbutton")),&black); gtk_color_button_set_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_min_tick_day_colorbutton")),&white); gtk_color_button_set_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_min_tick_nite_colorbutton")),&black); OBJ_SET((gtk_builder_get_object(tgroups,"tg_start_angle_spin")),"lowpartner",gtk_builder_get_object(tgroups,"tg_lowpoint_spin")); OBJ_SET((gtk_builder_get_object(tgroups,"tg_start_angle_spin")),"highpartner",gtk_builder_get_object(tgroups,"tg_highpoint_spin")); OBJ_SET((gtk_builder_get_object(tgroups,"tg_start_angle_spin")),"high_angle",gtk_builder_get_object(tgroups,"tg_sweep_angle_spin")); OBJ_SET((gtk_builder_get_object(tgroups,"tg_start_angle_spin")),"spin_handler", GINT_TO_POINTER(ADJ_LOW_UNIT_PARTNER)); OBJ_SET((gtk_builder_get_object(tgroups,"tg_sweep_angle_spin")),"highpartner",gtk_builder_get_object(tgroups,"tg_highpoint_spin")); OBJ_SET((gtk_builder_get_object(tgroups,"tg_sweep_angle_spin")),"low_angle",gtk_builder_get_object(tgroups,"tg_start_angle_spin")); OBJ_SET((gtk_builder_get_object(tgroups,"tg_sweep_angle_spin")),"spin_handler", GINT_TO_POINTER(ADJ_HIGH_UNIT_PARTNER)); OBJ_SET((gtk_builder_get_object(tgroups,"tg_lowpoint_spin")),"lowpartner",gtk_builder_get_object(tgroups,"tg_start_angle_spin")); OBJ_SET((gtk_builder_get_object(tgroups,"tg_lowpoint_spin")),"spin_handler", GINT_TO_POINTER(ADJ_START_ANGLE_PARTNER)); OBJ_SET((gtk_builder_get_object(tgroups,"tg_highpoint_spin")),"highpartner",gtk_builder_get_object(tgroups,"tg_sweep_angle_spin")); OBJ_SET((gtk_builder_get_object(tgroups,"tg_highpoint_spin")),"start_angle",gtk_builder_get_object(tgroups,"tg_start_angle_spin")); OBJ_SET((gtk_builder_get_object(tgroups,"tg_highpoint_spin")),"spin_handler", GINT_TO_POINTER(ADJ_SWEEP_ANGLE_PARTNER)); if (MTX_IS_GAUGE_FACE(g)) { mtx_gauge_face_get_attribute(g,START_ANGLE,&tmp1); mtx_gauge_face_get_attribute(g,SWEEP_ANGLE,&tmp2); dummy = GTK_WIDGET(gtk_builder_get_object(tgroups,"tg_start_angle_spin")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dummy),tmp1); dummy = GTK_WIDGET(gtk_builder_get_object(tgroups,"tg_sweep_angle_spin")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(dummy),tmp2); } if (!GTK_IS_WIDGET(dialog)) { return FALSE; } result = gtk_dialog_run(GTK_DIALOG(dialog)); switch (result) { case GTK_RESPONSE_APPLY: tgroup = g_new0(MtxTickGroup, 1); tgroup->font = (gchar *)gtk_font_button_get_font_name (GTK_FONT_BUTTON(gtk_builder_get_object(tgroups,"tg_tick_fontbutton"))); tgroup->font = g_strchomp(g_strdelimit(tgroup->font,"0123456789",' ')); tgroup->text = gtk_editable_get_chars(GTK_EDITABLE(gtk_builder_get_object(tgroups,"tg_tick_textentry")),0,-1); gtk_color_button_get_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_text_day_colorbutton")),&tgroup->text_color[MTX_DAY]); gtk_color_button_get_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_text_nite_colorbutton")),&tgroup->text_color[MTX_NITE]); tgroup->font_scale = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_font_scale_spin"))); tgroup->text_inset = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_text_inset_spin"))); gtk_color_button_get_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_maj_tick_day_colorbutton")),&tgroup->maj_tick_color[MTX_DAY]); gtk_color_button_get_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_maj_tick_nite_colorbutton")),&tgroup->maj_tick_color[MTX_NITE]); gtk_color_button_get_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_min_tick_day_colorbutton")),&tgroup->min_tick_color[MTX_DAY]); gtk_color_button_get_color(GTK_COLOR_BUTTON(gtk_builder_get_object(tgroups,"tg_min_tick_nite_colorbutton")),&tgroup->min_tick_color[MTX_NITE]); tgroup->maj_tick_inset = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_maj_tick_inset_spin"))); tgroup->min_tick_inset = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_min_tick_inset_spin"))); tgroup->maj_tick_width = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_maj_tick_width_spin"))); tgroup->min_tick_width = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_min_tick_width_spin"))); tgroup->maj_tick_length = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_maj_tick_length_spin"))); tgroup->min_tick_length = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_min_tick_length_spin"))); tgroup->start_angle = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_start_angle_spin"))); tgroup->sweep_angle = gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_sweep_angle_spin"))); tgroup->num_maj_ticks = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_num_maj_ticks_spin"))); tgroup->num_min_ticks = (gint)gtk_spin_button_get_value(GTK_SPIN_BUTTON(gtk_builder_get_object(tgroups,"tg_num_min_ticks_spin"))); changed = TRUE; mtx_gauge_face_set_tick_group_struct(MTX_GAUGE_FACE(gauge),tgroup); g_free(tgroup->text); g_free(tgroup); update_onscreen_tgroups(); break; default: break; } if (GTK_IS_WIDGET(dialog)) gtk_widget_destroy(dialog); return (FALSE); }