On 8/1/06, Christian Neumair <[EMAIL PROTECTED]> wrote:
>
> Am Dienstag, den 01.08.2006, 19:12 +0200 schrieb rupert:
> > Im so far with my code that i want to create a table where each group
> > gets a row that has labels, buttons and textentries.
> > right now im using a GtkTable where i create the Widgets in the for
> > loop that gets the content from the keyfile, is this possible or do I
> > have to use a treeview?
>
> No, unfortunately there is currently no button implementation for tree
> views, at least none I know of.
>
> > I can compile the app but get a segfault while running, it looks like
> > this with one static row http://az-lantech.de/ubuntu/view.png.
>
> Without seeing your code, we can't really help you.


this is the part with the for loop ,
i had the idea of using a +i in the gtk_table_attach_defaults comamnd for
the placement, right now the for only has one iteration, with more it
crashes..


   GtkWidget *crypto_keys;
    gboolean *isfile=FALSE;
    gchar *startgroup;
    gchar **groups=NULL;
    //GArray *groups=NULL;
    gint i, *groupcounter=0, *grouplenght=NULL;
    GString *device, *mapper, *mountpoint, *password, *keyfile;

    crypto_keys = g_key_file_new();
    g_key_file_load_from_file(crypto_keys,
"/home/Programmierung/GTK_Projects/project_dmaster/src/crypto.ini",
G_KEY_FILE_NONE, NULL) ;

    groups = g_key_file_get_groups(crypto_keys, &grouplenght);

    //g_print("\n %d", grouplenght);

    for(i=0; i<1; i++)
    {
        //put tthe info from the keyfile in variables
        //g_print("\n %s", groups[i]);
        device = g_key_file_get_string(crypto_keys, groups[i], "device",
NULL);
        mapper = g_key_file_get_string(crypto_keys, groups[i],
"mapperdevice", NULL);
        mountpoint = g_key_file_get_string(crypto_keys, groups[i],
"mountpoint", NULL);
        password = g_key_file_get_string(crypto_keys, groups[i], "password",
NULL);
        keyfile = g_key_file_get_string(crypto_keys, groups[i], "keyfile",
NULL);
       g_print("\n %s", device);
        g_print("\n %s", mapper);
        g_print("\n %s", mountpoint);
        g_print("\n %s", password);
        g_print("\n %s", keyfile);

        //free the strings
      //  g_strfreev(groups);


        crypto_mapper_button = gtk_button_new(); //1
        gtk_box_pack_start(GTK_BOX(crypto_content_vbox), cryptohbox, FALSE,
TRUE, 0);
        pic_mapper_device =  g_object_new(GTK_TYPE_IMAGE,"file",
"pics/no.png", NULL);
        gtk_button_set_image(crypto_mapper_button, pic_mapper_device);
        gtk_button_set_relief(crypto_mapper_button, GTK_RELIEF_NONE);
        gtk_container_add(GTK_CONTAINER(crypto_mapper_button),
pic_mapper_device);

        crypto_mount_button = gtk_button_new(); //2
        pic_drive_mounted =  g_object_new(GTK_TYPE_IMAGE,"file",
"pics/mount.png", NULL);
        gtk_button_set_image(crypto_mount_button, pic_drive_mounted );
        gtk_button_set_relief(crypto_mount_button, GTK_RELIEF_NONE);
        gtk_container_add(GTK_CONTAINER(crypto_mount_button),
pic_drive_mounted);

        crypto_device = gtk_label_new(device);    //3
        crypto_volume_name = gtk_label_new(mapper);//4
        crypto_mountpoint = gtk_label_new(mountpoint);//5

        crypto_go_button = gtk_button_new_with_label("Go");

        crypto_passHbox = gtk_hbox_new(FALSE, 0);//6
        crypto_password = gtk_entry_new();
        crypto_keyfiles = gtk_label_new(keyfile);

        //decide if use a keyfile or enter the password
        if(iskey)
        gtk_box_pack_start(GTK_BOX(crypto_passHbox), crypto_keyfiles, FALSE,
TRUE, 0);
        else
        gtk_box_pack_start(GTK_BOX(crypto_passHbox), crypto_password, FALSE,
TRUE, 0);

        gtk_box_pack_start(GTK_BOX(crypto_passHbox), crypto_go_button,
FALSE, TRUE, 0);

        //pack everything into the table
        gtk_table_attach_defaults(crypto_table,
GTK_WIDGET(crypto_mapper_button), 0,1,1,2);
        gtk_table_attach_defaults(crypto_table,
GTK_WIDGET(crypto_mount_button), 1,2,1,2);
        gtk_table_attach_defaults(crypto_table, GTK_WIDGET(crypto_device),
2,3,1,2);
        gtk_table_attach_defaults(crypto_table,
GTK_WIDGET(crypto_volume_name), 3,4,1,2);
        gtk_table_attach_defaults(crypto_table,
GTK_WIDGET(crypto_mountpoint), 4,5,1,2);
        gtk_table_attach_defaults(crypto_table, GTK_WIDGET(crypto_passHbox),
5,6,1,2);



        //abfrage des init und mountstatus
    //    g_timeout_add(1000, crypto_out_device, pic_mapper_device);
    //    g_timeout_add(1000, crypto_mount_check, pic_drive_mounted);
        gtk_entry_set_visibility(crypto_password, FALSE);

        //buttonpress events, replace the NULL with the device/mountpoint
...
        g_signal_connect(G_OBJECT(crypto_mount_button),
"button_press_event", G_CALLBACK(crypto_mount_drive), NULL);
        g_signal_connect(G_OBJECT(crypto_mapper_button),
"button_press_event", G_CALLBACK(crypto_remove_mapper), NULL);
        g_signal_connect(G_OBJECT(crypto_go_button), "button_press_event",
G_CALLBACK(crypto_init_mapper), NULL);

        //eventbox

        gtk_widget_set_events(crypto_mount_button, GDK_BUTTON_PRESS_MASK);

        g_signal_connect(G_OBJECT(crypto_mount_button), "enter",
G_CALLBACK(crypto_onmouse_in), GINT_TO_POINTER(crypto_buffer));
        g_signal_connect(G_OBJECT(crypto_mount_button), "leave",
G_CALLBACK(crypto_onmouse_out), GINT_TO_POINTER(crypto_buffer));

        //function calls
        //        dev_init_status = crypto_out_device(pic_mapper_device);
        dev_init_status = crypto_out_device(pic_mapper_device);
        crypto_mount_check(pic_drive_mounted);
      //    g_print("%c", dev_init_status);

  }
        //for end

gtk_widget_show_all(crypto_table);



--
> Christian Neumair <[EMAIL PROTECTED]>
>
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to