Beispiel #1
0
void access_token_ok_button_clicked(GtkButton *button, gpointer userdata)
{
    GtkEntry *entry =  GTK_ENTRY(userdata);
    GtkEntryBuffer *buffer = gtk_entry_get_buffer(entry);
    strncpy(accesstoken, gtk_entry_buffer_get_text(buffer), strlen(gtk_entry_buffer_get_text(buffer)));
    
}
Beispiel #2
0
void on_entry_insert( GtkEntryBuffer *buf, guint position, gchar *chars,
                                            guint n_chars, gpointer user_data )
{   // remove linefeeds from pasted text
    if ( !strchr( gtk_entry_buffer_get_text( buf ), '\n' ) )
        return;

    char* new_text = replace_string( gtk_entry_buffer_get_text( buf ), "\n", "", FALSE );
    gtk_entry_buffer_set_text( buf, new_text, -1 );
    g_free( new_text );
}
Beispiel #3
0
void set_time(GtkWidget *widget, gpointer data)
{
        R2RRun *newrun = ((NEW_DATA*) data)->newrun;
        GtkEntryBuffer *hours = ((NEW_DATA*) data)->hours_buff;
        GtkEntryBuffer *minutes = ((NEW_DATA*) data)->minutes_buff;
        GtkEntryBuffer *seconds = ((NEW_DATA*) data)->seconds_buff;

        //set_time_entry(GTK_ENTRY(widget));
        newrun->duration = 
                 + strtol(gtk_entry_buffer_get_text(seconds), NULL, 10)
                 + 60 * strtol(gtk_entry_buffer_get_text(minutes), NULL, 10)
                 + 60 * 60 * strtol(gtk_entry_buffer_get_text(hours), NULL, 10);
}
Beispiel #4
0
Datei: gui.c Projekt: hrl/AVL
int _gui_sns_people_dialog(void *self) {
    /*
     * create a people create/edit dialog, do some input check, then apply create/edit to param `self`
     *
     * */
    People **people=(People**)self;
    int rws=1;
    char title[100];
    char argi[rws*2+1][100];

    if(people == NULL) {
        strcpy(title, "新建用户");
        strcpy(argi[rws+1], "");
    } else {
        strcpy(title, "编辑用户");
        strcpy(argi[rws+1], (*people)->name);
    }
    strcpy(argi[0], title);
    strcpy(argi[1], "用户名");

    GtkWidget **dialog_result = (GtkWidget **)malloc(sizeof(GtkWidget *)*(rws*2+2));
    dialog_result = gui_create_edit_dialog(window, rws, argi, dialog_result);
    gtk_widget_show_all(dialog_result[0]);

    char validate_message[100];
    validate_message[0] = '\0';
    int result;
    GtkEntryBuffer *buffer;
    char name[100];
    while(gtk_dialog_run(GTK_DIALOG(dialog_result[0])) == GTK_RESPONSE_ACCEPT) {
        validate_message[0] = '\0';

        buffer = gtk_entry_get_buffer(GTK_ENTRY(dialog_result[2*1+1]));
        if(gtk_entry_buffer_get_length(buffer) >= 100) {
            strcpy(validate_message, "用户名过长");
        } else {
            strcpy(name, gtk_entry_buffer_get_text(buffer));
        }

        if(validate_message[0] != '\0') {
            gui_show_message(validate_message, GTK_MESSAGE_WARNING);
            continue;
        }

        if(people == NULL) {
            People *_people_tmp=NULL;
            people = &_people_tmp;
            result = people_init(SNS, people, name, 0, 0);
        } else {
            strcpy((*people)->name, name);
            result = PEOPLE_OP_SUCCESS;
        }
        break;
    }

    gtk_widget_destroy(GTK_WIDGET(dialog_result[0]));
    free(dialog_result);

    return result;
}
static void on_configure_response(GtkDialog* dialog, gint response, gpointer user_data)
{
    if (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY) {
	g_print("geany complete: modified preferences\n");
	auto self = (geanycc::PythonCompletionFramework*)user_data;

	JediCompletePluginPref* pref = JediCompletePluginPref::instance();
	// suggestion window
	pref->row_text_max =
	    gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(pref_widgets.row_text_max_spinbtn));

	pref->suggestion_window_height_max =
	    gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(pref_widgets.swin_height_max_spinbtn));

	pref->page_up_down_skip_amount =
	    gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(pref_widgets.page_up_down_skip_amount_spinbtn));
	// python
	pref->start_completion_with_dot =
	    gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pref_widgets.start_with_dot));

	pref->jedi_server_port =
	    gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(pref_widgets.port_spinbtn));

	pref->python_path = gtk_entry_buffer_get_text(pref_widgets.pypath_buffer);

	self->save_preferences();
	self->updated_preferences();
    }
}
void on_entry_insert( GtkEntryBuffer *buf, guint position, gchar *chars,
                                            guint n_chars, gpointer user_data )
{
    char* new_text = NULL;
    const char* text = gtk_entry_buffer_get_text( buf );
    if ( !text )
        return;

    if ( strchr( text, '\n' ) )
    {
        // remove linefeeds from pasted text       
        text = new_text = replace_string( text, "\n", "", FALSE );
    }
    
    // remove leading spaces for test
    while ( text[0] == ' ' )
        text++;
    
    if ( text[0] == '\'' && g_str_has_suffix( text, "'" ) && text[1] != '\0' )
    {
        // path is quoted - assume bash quote
        char* unquote = g_strdup( text + 1 );
        unquote[strlen( unquote ) - 1] = '\0';
        g_free( new_text );
        new_text = replace_string( unquote, "'\\''", "'", FALSE );
        g_free( unquote );
    }

    if ( new_text )
    {
        gtk_entry_buffer_set_text( buf, new_text, -1 );
        g_free( new_text );
    }
}
static void
_entry_text_changed(_camera_gconf_widget_t *gcw,GtkEntryBuffer *entrybuffer)
{
  const gchar *value=gtk_entry_buffer_get_text(entrybuffer);
  if(gcw->value)
    g_free(gcw->value);
  gcw->value=g_strdup(value);

}
Beispiel #8
0
void  callback_auto_dim_run ( GtkWidget *widget, gpointer data ){

	GtkEntryBuffer* buffer_dim_frames_value = (GtkEntryBuffer*)((gpointer*)data)[1];
	gint value = atoi(gtk_entry_buffer_get_text(buffer_dim_frames_value));
	value = value*25/10;
	frame_auto_dim(value, color_button, (gboolean)((gpointer*)data)[0]);
	window_update_label();
	free(data);
}
Beispiel #9
0
Datei: gui.c Projekt: hrl/AVL
int _gui_sns_tag_dialog(void *self) {
    Tag **tag = (Tag **) self;
    int rws = 1;
    char title[100];
    char argi[rws * 2 + 1][100];

    if (tag == NULL) {
        strcpy(title, "新建爱好");
        strcpy(argi[rws + 1], "");
    } else {
        strcpy(title, "编辑爱好");
        strcpy(argi[rws + 1], (*tag)->name);
    }
    strcpy(argi[0], title);
    strcpy(argi[1], "爱好名");

    GtkWidget **dialog_result = (GtkWidget **) malloc(sizeof(GtkWidget *) * (rws * 2 + 2));
    dialog_result = gui_create_edit_dialog(window, rws, argi, dialog_result);
    gtk_widget_show_all(dialog_result[0]);

    char validate_message[100];
    validate_message[0] = '\0';
    int result;
    GtkEntryBuffer *buffer;
    char name[100];
    while (gtk_dialog_run(GTK_DIALOG(dialog_result[0])) == GTK_RESPONSE_ACCEPT) {
        validate_message[0] = '\0';

        buffer = gtk_entry_get_buffer(GTK_ENTRY(dialog_result[2 * 1 + 1]));
        if (gtk_entry_buffer_get_length(buffer) >= 100) {
            strcpy(validate_message, "爱好名过长");
        } else {
            strcpy(name, gtk_entry_buffer_get_text(buffer));
        }

        if (validate_message[0] != '\0') {
            gui_show_message(validate_message, GTK_MESSAGE_WARNING);
            continue;
        }

        if (tag == NULL) {
            Tag *_tag_tmp = NULL;
            tag = &_tag_tmp;
            result = tag_init(SNS, tag, name, 0, 0);
        } else {
            strcpy((*tag)->name, name);
            result = PEOPLE_OP_SUCCESS;
        }
        break;
    }

    gtk_widget_destroy(GTK_WIDGET(dialog_result[0]));
    free(dialog_result);

    return result;
}
Beispiel #10
0
/* Get entry box text */
static void get_entry_text(struct elyapp *app, char **str)
{
    GtkEntryBuffer *buf = gtk_entry_get_buffer(GTK_ENTRY(app->gui.widg));
    const gchar *text   = gtk_entry_buffer_get_text(buf);
    printf("~%s~\n", text);
    buf                 = gtk_entry_buffer_new(0, -1);
    gtk_entry_buffer_set_max_length(buf, app->text.maxchars);
    gtk_entry_set_buffer(GTK_ENTRY(app->gui.widg), buf);
    gtk_widget_destroy(app->gui.widg);
    *str = (char*)text;
}
Beispiel #11
0
void post_blog_ok_button_clicked(GtkButton *button, gpointer userdata)
{
    GtkEntry *title_entry, *password_entry;
    GtkTextView *text_view;
    GtkEntryBuffer *title_buffer, *password_buffer;
    GtkTextBuffer *context_buffer;
    GtkTextIter start, end;
    GtkComboBoxText *permission;
    GList *list = (GList*)userdata;
    const gchar *title_string;
    const gchar *password;
    gchar *content_string, *blog_permission;
    title_entry = (GtkEntry*)list->data;
    list = list->next;
    text_view = (GtkTextView*)list->data;
    title_buffer = gtk_entry_get_buffer(title_entry);
    title_string = gtk_entry_buffer_get_text(title_buffer);
    context_buffer = gtk_text_view_get_buffer(text_view);
    gtk_text_buffer_get_start_iter(context_buffer, &start);
    gtk_text_buffer_get_end_iter(context_buffer, &end);
    content_string = gtk_text_buffer_get_text(context_buffer, &start, &end, TRUE);
    puts(title_string);
    puts("\n\n\n");
    puts(content_string);
    puts(accesstoken);
    list = list->next;
    permission = (GtkComboBoxText*)list->data;
    list = list->next;
    password_entry = (GtkEntry*)list->data;
        
    blog_permission = gtk_combo_box_text_get_active_text(permission);
    password_buffer = gtk_entry_get_buffer(password_entry);
    password = gtk_entry_buffer_get_text(password_buffer);
    g_print("password is %s\n", password);
    g_print("permission is %s\n", blog_permission);
    xiaonei_gtk_create_one_blog(accesstoken, blog_permission, title_string, content_string, password);
    
    
}
Beispiel #12
0
Datei: gui.c Projekt: hrl/AVL
int _gui_sns_get_tag_by_id_dialog(char *messages, Tag **result_tag) {
    /*
     * create a dialog to get tag by input id
     *
     * */
    int rws=1;
    char title[100];
    char argi[rws*2+1][100];

    strcpy(title, messages);
    strcpy(argi[0], title);
    strcpy(argi[1], "爱好ID");
    strcpy(argi[rws+1], "");

    GtkWidget **dialog_result = (GtkWidget **)malloc(sizeof(GtkWidget *)*(rws*2+2));
    dialog_result = gui_create_edit_dialog(window, rws, argi, dialog_result);
    gtk_widget_show_all(dialog_result[0]);

    char validate_message[100];
    validate_message[0] = '\0';
    int result;
    GtkEntryBuffer *buffer;
    char id_string[10];
    int id;
    while(gtk_dialog_run(GTK_DIALOG(dialog_result[0])) == GTK_RESPONSE_ACCEPT) {
        validate_message[0] = '\0';

        buffer = gtk_entry_get_buffer(GTK_ENTRY(dialog_result[2*1+1]));
        if(gtk_entry_buffer_get_length(buffer) >= 10) {
            strcpy(validate_message, "爱好ID过长");
        } else {
            strcpy(id_string, gtk_entry_buffer_get_text(buffer));
            id = atoi(id_string);
        }

        if(validate_message[0] != '\0') {
            gui_show_message(validate_message, GTK_MESSAGE_WARNING);
            continue;
        }

        result = sns_search_tag(SNS, id, result_tag);
        break;
    }

    gtk_widget_destroy(GTK_WIDGET(dialog_result[0]));
    free(dialog_result);

    return result;
}
static void
text_inserted (GtkEditable *editable,
               gchar       *new_text,
               gint         new_text_length,
               gint        *position,
               gpointer     user_data)
{
  GtkEntryBuffer *buffer;
  gchar* new_label;
  gint i;
  gint current_length, max_length;
  gboolean valid;

  valid = TRUE;
  buffer = gtk_entry_get_buffer (GTK_ENTRY (editable));
  current_length = gtk_entry_buffer_get_length (buffer);
  max_length = gtk_entry_get_max_length (GTK_ENTRY (editable));

  /* honor max length property */
  if (current_length + new_text_length > max_length)
    return;

  /* stop the default implementation */
  g_signal_stop_emission (editable, g_signal_lookup ("insert-text", GTK_TYPE_ENTRY), 0);

  for (i = 0; i < new_text_length; i++)
    {
      gchar c;
      c = *(new_text + i);

      /* trying to insert a non-numeric char */
      if (c < '0' || c > '9')
        {
          valid = FALSE;
          break;
        }
    }

  if (!valid)
    return;

  new_label = g_strdup_printf ("%s%s", gtk_entry_buffer_get_text (buffer), new_text);
  gtk_entry_buffer_set_text (buffer, new_label, current_length + new_text_length);
  *position = *position + new_text_length;

  g_free (new_label);
}
Beispiel #14
0
/**
 * facq_plug_dialog_get_input:
 * @dialog: A #FacqPlugDialog object.
 * @port: (allow-none) (out caller-allocates): A pointer to a #guint16 variable.
 *
 * Retrieves the user input from the @dialog. The port info is written to the
 * @port variable if not %NULL and the IP address is returned by the function.
 *
 * Returns: The IP address chosen by the user, you must free it with g_free().
 */
gchar *facq_plug_dialog_get_input(const FacqPlugDialog *dialog,guint16 *port)
{
	gchar *ret = NULL;
	GtkEntryBuffer *buf = NULL;

	if(port)
		*port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(dialog->priv->spin_button));

	buf = gtk_entry_get_buffer(GTK_ENTRY(dialog->priv->address_entry));
	if(gtk_entry_buffer_get_length(buf)){
		ret = g_strdup(gtk_entry_buffer_get_text(buf));
		if(g_strcmp0(ret,"all") == 0){
			g_free(ret);
			ret = NULL;
		}
	} else
		ret = NULL;

	return ret;
}
Beispiel #15
0
void on_main_set_filter_button_clicked(GtkWidget * gw, gpointer data)
{
	GtkEntry *filter_entry;
	gchar *filter_rule;
	filter_entry =
	    GTK_ENTRY(gtk_builder_get_object(builder, "main_filter_entry"));
	filter_rule =
	    gtk_entry_buffer_get_text(gtk_entry_get_buffer(filter_entry));

	sprintf(bpf_filter_str, "%s", filter_rule);
	/*
	 * 预编译规则,检测书写是否正确
	 */
	pcap_t *handle;
	char error_content[PCAP_ERRBUF_SIZE];
	int ret;
	struct bpf_program bpf_filter;
	bpf_u_int32 net_mask;
	bpf_u_int32 net_ip;

	pcap_lookupnet(select_dev, &net_ip, &net_mask, error_content);
	handle = pcap_open_live("eth0", BUFSIZ, 1, 0, error_content);

	ret = pcap_compile(handle, &bpf_filter, bpf_filter_str, 0, net_ip);
	if (-1 == ret) {
		g_print("%s 不符合规则\n", bpf_filter_str);
		GtkWidget *dialog;
		dialog = gtk_message_dialog_new(NULL, GTK_RESPONSE_OK,
						GTK_MESSAGE_OTHER,
						GTK_BUTTONS_OK, NULL);
		gtk_message_dialog_set_markup((GtkMessageDialog *)
					      dialog,
					      "<span foreground=\"red\" size=\"x-large\">:) 过滤规则书写不正确</span>");
		gtk_window_set_title(GTK_WINDOW(dialog), "Set Filter rule");
		gtk_dialog_run((GtkDialog *) dialog);	// show the dialog
		gtk_widget_destroy(dialog);

	}
}
Beispiel #16
0
static void
gtk_entry_buffer_get_property (GObject    *obj,
                               guint       prop_id,
                               GValue     *value,
                               GParamSpec *pspec)
{
  GtkEntryBuffer *buffer = GTK_ENTRY_BUFFER (obj);

  switch (prop_id)
    {
    case PROP_TEXT:
      g_value_set_string (value, gtk_entry_buffer_get_text (buffer));
      break;
    case PROP_LENGTH:
      g_value_set_uint (value, gtk_entry_buffer_get_length (buffer));
      break;
    case PROP_MAX_LENGTH:
      g_value_set_int (value, gtk_entry_buffer_get_max_length (buffer));
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
      break;
    }
}
Beispiel #17
0
void gen_rzut(GtkWidget *widget, gpointer nazwap)
{
    Plane *rzutnia = malloc(sizeof(Plane));
    char *nazwa_pliku = calloc(gtk_entry_buffer_get_length(nazwap)+4, sizeof(char));
    strcpy(nazwa_pliku, gtk_entry_buffer_get_text(nazwap));
    char *temp = nazwa_pliku;
    if(temp[0] == ' ' || temp[0] == '\0')
    {
        pokaz_error("Zla nazwa pliku");
        free(nazwa_pliku); free(rzutnia);
        return;
    }
    while((*temp) != '\0')
    {
        if((*temp) == '\\' || (*temp) == '/' || (*temp) == ':' || (*temp) == '*' ||
           (*temp) == '?' || (*temp) == '"' || (*temp) == '<' || (*temp) == '>' || (*temp) == '|')
        {
            pokaz_error("Zla nazwa pliku");
            free(nazwa_pliku); free(rzutnia);
            return;
        }
        temp++;
    }
    strcat(nazwa_pliku, ".ps");

    int radio1act = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio1));
    char **wart = NULL;
    if(radio1act)
    {
        double wart_abcd[4];
        wart = calloc(4, sizeof(char *));
        for(int i = 0; i < 4; i++)
        {
            wart[i] = calloc(gtk_entry_buffer_get_length(param_buf[i])+2, sizeof(char));
            strcpy(wart[i], gtk_entry_buffer_get_text(param_buf[i]));
            napraw_wejscie(wart, i);
            wart_abcd[i] = strtod(wart[i], NULL);
        }
        for(int i = 0; i < 4; i++)
            if(wart_abcd[i] == 0.0 && wart[i][0] != '0')
            {
                pokaz_error("Blad danych wejsciowych");
                for(int j = 0; j < 4; j++)
                    free(wart[j]);
                free(wart); free(nazwa_pliku); free(rzutnia);
                return;
            }

        if(wart_abcd[0] == 0.0 && wart_abcd[1] == 0.0 && wart_abcd[2] == 0.0)
        {
            pokaz_error("Parametry A, B, C nie moga byc jednoczesnie rowne 0");
            for(int j = 0; j < 4; j++)
                free(wart[j]);
            free(wart); free(nazwa_pliku); free(rzutnia);
            return;
        }
        for(int i = 0; i < 4; i++)
            rzutnia->prm[i] = wart_abcd[i];
    }
    else // radio2 aktywne
    {
        double wart_xyz[3][3];
        wart = calloc(3*3, sizeof(char *));
        for(int i = 0; i < 3*3; i++)
        {
            wart[i] = calloc(gtk_entry_buffer_get_length(pkty_buf[i/3][i-3*(i/3)])+2, sizeof(char));
            strcpy(wart[i], gtk_entry_buffer_get_text(pkty_buf[i/3][i-3*(i/3)]));
            napraw_wejscie(wart, i);
            wart_xyz[i/3][i-3*(i/3)] = strtod(wart[i], NULL);
        }
        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 3; j++)
                if(wart_xyz[i][j] == 0.0 && wart[3*i+j][0] != '0')
                {
                    pokaz_error("Blad danych wejsciowych");
                    for(int k = 0; k < 3*3; k++)
                        free(wart[k]);
                    free(wart); free(nazwa_pliku); free(rzutnia);
                    return;
                }

        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 3; j++)
                rzutnia->P[i].wsp[j] = wart_xyz[i][j];

        if(PointsIdentical(rzutnia->P[0], rzutnia->P[1]) || PointsIdentical(rzutnia->P[0], rzutnia->P[2]) ||
           PointsIdentical(rzutnia->P[1], rzutnia->P[2]) || PointsCollinear(rzutnia->P[0], rzutnia->P[1], rzutnia->P[2]))
        {
            pokaz_error("Przez podane punkty nie da sie jednoznacznie poprowadzic plaszczyzny rzutni");
            for(int k = 0; k < 3*3; k++)
                free(wart[k]);
            free(wart); free(nazwa_pliku); free(rzutnia);
            return;
        }

        ABCD_Plane(rzutnia); // liczymy reprezentacje normalna plaszczyzny rzutni
    }
    FILE *plik = NULL;
    plik = fopen(nazwa_pliku, "r");
    if(plik != NULL)
    {
        int odp = 0;
        pokaz_pytanie("Nadpisac?", "Plik o tej nazwie juz istnieje. Czy chcesz go nadpisac?", (gpointer) &odp);
        if(odp)
        {
            fclose(plik);
            plik = fopen(nazwa_pliku, "w");
            if(plik == NULL)
            {
                pokaz_error("Nie udalo sie stworzyc pliku");
                czysc_pamiec_radio(radio1act, wart);
                free(nazwa_pliku); free(rzutnia);
                return;
            }
        }
        else
        {
            czysc_pamiec_radio(radio1act, wart);
            free(nazwa_pliku); free(rzutnia);
            return;
        }
    }
    else
    {
        plik = fopen(nazwa_pliku, "w");
        if(plik == NULL)
        {
            pokaz_error("Nie udalo sie stworzyc pliku");
            czysc_pamiec_radio(radio1act, wart);
            free(nazwa_pliku); free(rzutnia);
            return;
        }
    }

    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(radio1metoda)))
        renderuj_wireframe(plik, rzutnia, lista_obj);
    else
        renderuj_hidden_face_removal(plik, rzutnia, lista_obj);

    fclose(plik);
    pokaz_info("Rysowanie rzutu zakonczone powodzeniem");
    czysc_pamiec_radio(radio1act, wart);
    free(nazwa_pliku); free(rzutnia);
}
Beispiel #18
0
void stworz_obj_et2(GtkWidget *widget, GtkWidget *dialog)
{
    GenericObj nowy_twor;
    nowy_twor.kind = nr;
    double wart_xyz[4][3];
    char **wart = calloc(4*3, sizeof(char *));
    for(int i = 0; i < (nr+1)*3; i++)
    {
        wart[i] = calloc(gtk_entry_buffer_get_length(wsp_new_obj_buf[i/3][i-3*(i/3)])+2, sizeof(char));
        strcpy(wart[i], gtk_entry_buffer_get_text(wsp_new_obj_buf[i/3][i-3*(i/3)]));
        napraw_wejscie(wart, i);
        wart_xyz[i/3][i-3*(i/3)] = strtod(wart[i], NULL);
    }
    for(int i = 0; i <= nr; i++)
        for(int j = 0; j < 3; j++)
        {
            if(wart_xyz[i][j] == 0.0 && wart[3*i+j][0] != '0')
            {
                pokaz_error("Blad danych wejsciowych");
                for(int k = 0; k < (nr+1)*3; k++)
                    free(wart[k]);
                free(wart);
                return;
            }
        }
    // udalo sie, dane poprawne
    for(int i = 0; i <= nr; i++)
        for(int j = 0; j < 3; j++)
            nowy_twor.V[i].wsp[j] = wart_xyz[i][j];

    lista_obj = wstaw_na_pocz(lista_obj, nowy_twor);

    char *str = calloc(MAX_OPIS, sizeof(char));
    if(nr == 0)
        sprintf(str, "%s {(%.1f ; %.1f ; %.1f)}", nazw_obj[nr], wart_xyz[0][0], wart_xyz[0][1], wart_xyz[0][2]);
    else if(nr == 1)
        sprintf(str, "%s {(%.1f ; %.1f ; %.1f) (%.1f ; %.1f ; %.1f)}", nazw_obj[nr], wart_xyz[0][0], wart_xyz[0][1], wart_xyz[0][2],
            wart_xyz[1][0], wart_xyz[1][1], wart_xyz[1][2]);
    else if(nr == 2)
        sprintf(str, "%s {(%.1f ; %.1f ; %.1f) (%.1f ; %.1f ; %.1f) (%.1f ; %.1f ; %.1f)}", nazw_obj[nr], wart_xyz[0][0], wart_xyz[0][1],
            wart_xyz[0][2], wart_xyz[1][0], wart_xyz[1][1], wart_xyz[1][2], wart_xyz[2][0], wart_xyz[2][1], wart_xyz[2][2]);
    else
        sprintf(str, "%s {(%.1f ; %.1f ; %.1f) (%.1f ; %.1f ; %.1f) (%.1f ; %.1f ; %.1f) (%.1f ; %.1f ; %.1f)}", nazw_obj[nr], wart_xyz[0][0],
            wart_xyz[0][1], wart_xyz[0][2], wart_xyz[1][0], wart_xyz[1][1], wart_xyz[1][2], wart_xyz[2][0], wart_xyz[2][1], wart_xyz[2][2],
            wart_xyz[3][0], wart_xyz[3][1], wart_xyz[3][2]);

    for(int i = 0; i < (nr+1)*3; i++)
        free(wart[i]);
    free(wart);

    GtkListStore *store;
    GtkTreeIter  iter;
    store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(lista_obj_gui)));

    wezel *akt_obiekt = lista_obj; // wstawialismy na poczatek, wiec lista_obj pokazuje na nasz nowy twor
    // ogolnie tu jest taki trik, ze oprocz stringa opisujacego stworzony obiekt na liscie w GUI trzymamy
    // tez wskaznik na ten obiekt, zeby potem mozna go bylo w ogole namierzyc i usunac
    gtk_list_store_append(store, &iter);
    gtk_list_store_set(store, &iter, 0, str, 1, akt_obiekt, -1);

    free(str);
    gtk_widget_destroy(dialog);
}
Beispiel #19
0
/*
 * Get text and use that to fill in the placeholder.
 */
uint8_t
fill_in_flags(char **cmd, uint8_t flags)
{
	uint8_t		 ret = 0;
	const char	*text = NULL;
	GtkWidget	*dialog, *box, *entry, *label = NULL;
	GtkEntryBuffer	*buf;
	GValue		 g_9 = G_VALUE_INIT;

	g_value_init(&g_9, G_TYPE_INT);
	g_value_set_int(&g_9, 3);

	dialog = gtk_dialog_new_with_buttons(
	    "Command options",
	    GTK_WINDOW(window),
	     GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
	     "_Close", GTK_RESPONSE_CLOSE,
	     "_Run", GTK_RESPONSE_OK,
	     NULL);
	box = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
	entry = gtk_entry_new();

	gtk_widget_set_size_request(dialog, 300, 20);
	g_object_set_property(G_OBJECT(box), "margin", &g_9);
	gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
	gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);

	if (flags & SINGLE_FILE_PLACEHOLDER)
		label = gtk_label_new("File name");

	if (flags & SINGLE_URL_PLACEHOLDER)
		label = gtk_label_new("URI");

	if (flags & MULTI_FILE_PLACEHOLDER)
		label = gtk_label_new("Files");

	if (flags & MULTI_URL_PLACEHOLDER)
		label = gtk_label_new("URIs");

	if (label) {
		gtk_box_pack_start(GTK_BOX(box), label, /* expand */ 0,
		    /* fill */ 1, /* padding */ 3);
		gtk_box_pack_start(GTK_BOX(box), entry, /* expand */ 1,
		    /* fill */ 1, /* padding */ 3);
	}

	gtk_widget_show_all(box);

	switch (gtk_dialog_run(GTK_DIALOG(dialog))) {
	case GTK_RESPONSE_OK:
		buf = gtk_entry_get_buffer(GTK_ENTRY(entry));
		text = gtk_entry_buffer_get_text(buf);

		if ((*cmd = fill_in_command(*cmd, text, flags)) == NULL) {
			warnx("fill_in_command failed");
			break;
		}

		ret = 1;

		break;
	case GTK_RESPONSE_CLOSE:
	case GTK_RESPONSE_NONE:
	case GTK_RESPONSE_DELETE_EVENT:
		break;
	default:
		warnx("unknown result from gtk_dialog_run");
		break;
	}

	gtk_widget_destroy(dialog);

	return ret;
}