static void widget_timer_input_by_command(variable *var, char *command) { FILE *infile; gchar line[512]; gint count; gint is_active; #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Entering.\n", __func__); #endif #ifdef DEBUG_CONTENT fprintf(stderr, "%s(): command: '%s'\n", __func__, command); #endif /* Opening pipe for reading... */ if (infile = widget_opencommand(command)) { /* Just one line */ if (fgets(line, 512, infile)) { /* Enforce end of string in case of max chars read */ line[512 - 1] = 0; /* Remove the trailing [CR]LFs */ for (count = strlen(line) - 1; count >= 0; count--) if (line[count] == 13 || line[count] == 10) line[count] = 0; if ((strcasecmp(line, "true") == 0) || (strcasecmp(line, "yes") == 0) || (atoi(line) == 1)) { is_active = 1; } else { is_active = 0; } gtk_widget_set_sensitive(var->Widget, is_active); } /* Close the file */ pclose(infile); } else { fprintf(stderr, "%s(): Couldn't open '%s' for reading.\n", __func__, command); } #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Exiting.\n", __func__); #endif }
static void widget_table_input_by_command(variable *var, char *filename, gint command_or_file) { FILE *infile; gchar line[512]; gint count; list_t *sliced; #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Entering.\n", __func__); #endif #if !GTK_CHECK_VERSION(3,0,0) /* gtk3: Deprecated in gtk2 and now gone */ if (command_or_file) { infile = widget_opencommand(filename); } else { infile = fopen(filename, "r"); } /* Opening pipe for reading... */ if (infile) { /* Read the file one line at a time (trailing [CR]LFs are read too) */ while (fgets(line, 512, infile) != NULL) { /* Enforce end of string in case of max chars read */ line[512 - 1] = 0; /* Remove the trailing [CR]LFs */ for (count = strlen(line) - 1; count >= 0; count--) if (line[count] == 13 || line[count] == 10) line[count] = 0; sliced = linecutter(g_strdup(line), '|'); gtk_clist_append(GTK_CLIST(var->Widget), sliced->line); if (sliced) list_t_free(sliced); /* Free linecutter memory */ } /* Close the file */ pclose(infile); } else { fprintf(stderr, "%s(): Couldn't open '%s' for reading.\n", __func__, filename); } #endif #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Exiting.\n", __func__); #endif }
void widget_progressbar_realized_callback(GtkWidget *widget, AttributeSet *Attr) { GList *element; progr_descr *descr; gchar *input; #ifdef DEBUG g_message("%s(%p, %p);", __func__, widget, Attr); #endif g_assert(GTK_IS_WIDGET(widget) && Attr != NULL); /* * If there is no input, we can return. */ if (!attributeset_is_avail(Attr, ATTR_INPUT)) return; /* * Creating the descriptor from the first input. */ input = attributeset_get_first(&element, Attr, ATTR_INPUT); descr = g_new0(progr_descr, 1); descr->Attr = Attr; descr->widget = widget; descr->shell_command = input_get_shell_command(input); descr->pipe = widget_opencommand(descr->shell_command); /* * When the widget gets destroyed we call this function to prevent * further reading the pipe and setting the destroyed progress bar. */ g_object_set_data_full(G_OBJECT(widget), "descriptor", descr, (GDestroyNotify)widget_progressbar_descriptor_destroy_notify); /* * Now we can fire up the reader thread. */ descr->thread = g_thread_create( (GThreadFunc) widget_progressbar_thread_entry, descr, FALSE, NULL); }
static void widget_entry_input_by_command(variable *var, char *command) { FILE *infile; gchar line[512]; gint count; #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Entering.\n", __func__); #endif #ifdef DEBUG_CONTENT fprintf(stderr, "%s(): command: '%s'\n", __func__, command); #endif /* Opening pipe for reading... */ if (infile = widget_opencommand(command)) { /* Just one line */ if (fgets(line, 512, infile)) { /* Enforce end of string in case of max chars read */ line[512 - 1] = 0; /* Remove the trailing [CR]LFs */ for (count = strlen(line) - 1; count >= 0; count--) if (line[count] == 13 || line[count] == 10) line[count] = 0; /* Thunor: This is all original code moved across when refactoring */ gtk_entry_set_text(GTK_ENTRY(var->Widget), (const gchar*)line); } /* Close the file */ pclose(infile); } else { fprintf(stderr, "%s(): Couldn't open '%s' for reading.\n", __func__, command); } #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Exiting.\n", __func__); #endif }
static void widget_hscale_input_by_command(variable *var, char *command) { FILE *infile; gchar line[512]; gint count; #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Entering.\n", __func__); #endif #ifdef DEBUG_CONTENT fprintf(stderr, "%s(): command: '%s'\n", __func__, command); #endif /* Opening pipe for reading... */ if (infile = widget_opencommand(command)) { /* Just one line */ if (fgets(line, 512, infile)) { /* Enforce end of string in case of max chars read */ line[512 - 1] = 0; /* Remove the trailing [CR]LFs */ for (count = strlen(line) - 1; count >= 0; count--) if (line[count] == 13 || line[count] == 10) line[count] = 0; gtk_range_set_value(GTK_RANGE(var->Widget), atof(line)); } /* Close the file */ pclose(infile); } else { fprintf(stderr, "%s(): Couldn't open '%s' for reading.\n", __func__, command); } #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Exiting.\n", __func__); #endif }
static void widget_statusbar_input_by_command(variable *var, char *command) { FILE *infile; gchar line[MESSAGE_LENGTH_MAX]; gint count; #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Entering.\n", __func__); #endif #ifdef DEBUG_CONTENT fprintf(stderr, "%s(): command: '%s'\n", __func__, command); #endif /* Opening pipe for reading... */ if (infile = widget_opencommand(command)) { /* Just one line */ if (fgets(line, MESSAGE_LENGTH_MAX, infile)) { /* Enforce end of string in case of max chars read */ line[MESSAGE_LENGTH_MAX - 1] = 0; /* Remove the trailing [CR]LFs */ for (count = strlen(line) - 1; count >= 0; count--) if (line[count] == 13 || line[count] == 10) line[count] = 0; widget_statusbar_update(var, line); } /* Close the file */ pclose(infile); } else { fprintf(stderr, "%s(): Couldn't open '%s' for reading.\n", __func__, command); } #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Exiting.\n", __func__); #endif }
static void widget_colorbutton_input_by_command(variable *var, char *command) { FILE *infile; GdkColor color; list_t *values = NULL; gchar line[512]; gint count; guint alpha; #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Entering.\n", __func__); #endif #ifdef DEBUG_CONTENT fprintf(stderr, "%s(): command: '%s'\n", __func__, command); #endif /* Opening pipe for reading... */ if (infile = widget_opencommand(command)) { /* Just one line */ if (fgets(line, 512, infile)) { /* Enforce end of string in case of max chars read */ line[512 - 1] = 0; /* Remove the trailing [CR]LFs */ for (count = strlen(line) - 1; count >= 0; count--) if (line[count] == 13 || line[count] == 10) line[count] = 0; values = linecutter(g_strdup(line), '|'); if (values->n_lines > 0) { /* Parse the RGB value to create the necessary GdkColor. * This function doesn't like trailing whitespace so it * needs to be stripped first with g_strstrip() */ if (gdk_color_parse(g_strstrip(values->line[0]), &color)) { #ifdef DEBUG_CONTENT fprintf(stderr, "%s:() valid colour found\n", __func__); #endif gtk_color_button_set_color(GTK_COLOR_BUTTON(var->Widget), &color); } } if (values->n_lines > 1) { /* Read alpha as an unsigned decimal integer */ if (sscanf(values->line[1], "%u", &alpha) == 1) { #ifdef DEBUG_CONTENT fprintf(stderr, "%s:() valid alpha=%u found\n", __func__, alpha); #endif /* This requires use-alpha="true" */ gtk_color_button_set_alpha(GTK_COLOR_BUTTON(var->Widget), alpha); } } /* Free linecutter memory */ if (values) list_t_free(values); } /* Close the file */ pclose(infile); } else { fprintf(stderr, "%s(): Couldn't open '%s' for reading.\n", __func__, command); } #ifdef DEBUG_TRANSITS fprintf(stderr, "%s(): Exiting.\n", __func__); #endif }