~ubuntu-branches/ubuntu/saucy/bluefish/saucy

« back to all changes in this revision

Viewing changes to src/plugin_htmlbar/html.c

  • Committer: Package Import Robot
  • Author(s): Daniel Leidert
  • Date: 2013-05-09 14:36:58 UTC
  • mfrom: (17.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130509143658-kgqxj5c23oi0lk20
Tags: 2.2.4-2
* debian/control (Standards-Version): Bumped to 3.9.4.
* debian/copyright: Updated.

Show diffs side-by-side

added added

removed removed

Lines of Context:
615
615
        html_diag_destroy_cb(NULL, dg);
616
616
}
617
617
 
 
618
static gboolean
 
619
string_looks_like_url(gchar *string)
 
620
{
 
621
        if (string == NULL)
 
622
                return FALSE;
 
623
        if (strchr(string, '\n')!=NULL)
 
624
                return FALSE;
 
625
        if (strchr(string, '\t')!=NULL)
 
626
                return FALSE;
 
627
        if (strchr(string, '\r')!=NULL)
 
628
                return FALSE;
 
629
        if (strncmp(string,"http://", 7)==0 ||
 
630
                                strncmp(string,"https://", 8)==0 ||
 
631
                                strncmp(string,"ftp://", 6)==0) {
 
632
                return TRUE;
 
633
        }
 
634
        /* look for an extension and no spaces */
 
635
        if (g_regex_match_simple("^[\\./a-z0-9]+\\.[a-z]{3,5}$",string,G_REGEX_CASELESS|G_REGEX_ANCHORED,0)) {
 
636
                /*g_print("%s matches regex\n",string);*/
 
637
                return TRUE;
 
638
        }
 
639
        return FALSE;
 
640
}
 
641
 
618
642
void
619
643
quickanchor_dialog(Tbfwin * bfwin, Ttagpopup * data)
620
644
{
622
646
"onmousemove", "onmouseout", "onmouseup", "onkeydown", "onkeypress", "class", "id", "style", "lang", "title", NULL };
623
647
        gchar *custom = NULL;
624
648
        gchar *avalues[19];
 
649
        gchar *url=NULL;
625
650
        Thtml_diag *dg;
 
651
        gint so, eo;
 
652
        GList *rel_link_list = NULL, *tmplist;
 
653
 
626
654
 
627
655
        GtkWidget *noteb, *dgtable, *file_but;
628
656
        DEBUG_MSG("quickanchor_dialog, bfwin=%p, data=%p\n", bfwin, data);
633
661
        gtk_box_pack_start(GTK_BOX(dg->vbox), noteb, FALSE, FALSE, 0);
634
662
 
635
663
        dgtable = generic_table_inside_notebookframe(noteb, _("Attributes"), 9,3);
636
 
 
637
 
        {
638
 
                GList *rel_link_list = NULL, *tmplist;
639
 
                rel_link_list = list_relative_document_filenames(bfwin->current_document);
640
 
                tmplist = duplicate_stringlist(bfwin->session->urllist, 1);
641
 
                rel_link_list = g_list_concat(tmplist, rel_link_list);
642
 
 
643
 
                dg->combo[2] = html_diag_combobox_with_popdown(avalues[0], rel_link_list, 1);
644
 
 
645
 
                free_stringlist(rel_link_list);
 
664
        if (avalues[0] != NULL && avalues[0][0] != '\0') {
 
665
                url = g_strdup(avalues[0]);
 
666
        } else if (doc_get_selection(bfwin->current_document, &so, &eo)){
 
667
                gchar *tmp = doc_get_chars(bfwin->current_document, so, eo);
 
668
                /* if the current selected text is an URL, use it */
 
669
                if (string_looks_like_url(tmp)) {
 
670
                        url = tmp;
 
671
                } else {
 
672
                        g_free(tmp);
 
673
                }
646
674
        }
 
675
        rel_link_list = list_relative_document_filenames(bfwin->current_document);
 
676
        tmplist = duplicate_stringlist(bfwin->session->urllist, 1);
 
677
        rel_link_list = g_list_concat(tmplist, rel_link_list);
 
678
        dg->combo[2] = html_diag_combobox_with_popdown(url, rel_link_list, 1);
 
679
 
 
680
        free_stringlist(rel_link_list);
 
681
        g_free(url);
647
682
        file_but = file_but_new(GTK_WIDGET(gtk_bin_get_child(GTK_BIN(dg->combo[2]))), 0, bfwin);
648
683
        gtk_table_attach(GTK_TABLE(dgtable), GTK_WIDGET(file_but), 2,3, 0,1, GTK_SHRINK, GTK_SHRINK, 0,0);
649
684
        dialog_mnemonic_label_in_table(_("_HREF:"), dg->combo[2], dgtable, 0,1, 0,1);
650
685
        gtk_table_attach(GTK_TABLE(dgtable), GTK_WIDGET(GTK_BIN(dg->combo[2])), 1,2, 0,1, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 0,0);
651
686
        if (bfwin->session->targetlist == NULL) {
652
 
                bfwin->session->targetlist = list_from_arglist(TRUE, "_top", "_blank", "_parent", "_selfs", NULL);
 
687
                bfwin->session->targetlist = list_from_arglist(TRUE, "_top", "_blank", "_parent", "_self", NULL);
653
688
        }
654
689
        dg->combo[1] = html_diag_combobox_with_popdown(avalues[1], bfwin->session->targetlist, 1);
655
690
        dialog_mnemonic_label_in_table(_("_Target:"), dg->combo[1], dgtable, 0,1, 1,2);
702
737
        dialog_mnemonic_label_in_table(_("OnKe_yUp:"), dg->entry[14], dgtable, 0,1, 9,10);
703
738
 
704
739
        html_diag_finish(dg, G_CALLBACK(quickanchorok_lcb));
 
740
        gtk_widget_grab_focus(dg->combo[2]);
705
741
        if (custom)
706
742
                g_free(custom);
707
743
}
1712
1748
        thestring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[1]), cap("SRC"), thestring, NULL);
1713
1749
        thestring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[2]), cap("NAME"), thestring, NULL);
1714
1750
        thestring = insert_string_if_entry((GTK_ENTRY(dg->spin[0])), cap("FRAMEBORDER"), thestring, NULL);
1715
 
        tmp = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[3]));     
 
1751
        tmp = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[3]));
1716
1752
        if(strlen(tmp)) {
1717
1753
                thestring = g_strconcat(thestring, cap(" SCROLLING=\""), tmp, "\"",NULL);
1718
 
        } 
 
1754
        }
1719
1755
        g_free(tmp);
1720
1756
        thestring = insert_string_if_entry((GTK_ENTRY(dg->spin[1])), cap("MARGINWIDTH"), thestring, NULL);
1721
1757
        thestring = insert_string_if_entry((GTK_ENTRY(dg->spin[2])), cap("MARGINHEIGHT"), thestring, NULL);
1823
1859
        finalstring = insert_attr_if_checkbox(dg->check[3], main_v->props.xhtml == 1 ? cap("LOOP=\"loop\"") : cap("LOOP"), finalstring);
1824
1860
        finalstring = insert_attr_if_checkbox(dg->check[4], main_v->props.xhtml == 1 ? cap("MUTE=\"mute\"") : cap("MUTE"), finalstring);
1825
1861
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[0])), cap("ID"), finalstring, NULL);
1826
 
        finalstring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[3]), cap("CLASS"), finalstring, NULL);  
 
1862
        finalstring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[3]), cap("CLASS"), finalstring, NULL);
1827
1863
        finalstring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[2]), cap("PRELOAD"), finalstring, NULL);
1828
1864
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[2])), cap("STYLE"), finalstring, NULL);
1829
1865
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[3])), NULL, finalstring, NULL);
1850
1886
        Thtml_diag *dg;
1851
1887
        static gchar *tagitems[] = { "src", "preload", "id", "class", "style", NULL };
1852
1888
        gchar *tagvalues[6];
1853
 
        gchar *custom=NULL;             
 
1889
        gchar *custom=NULL;
1854
1890
 
1855
1891
        /* Values attributes lists */
1856
1892
        GList *listPreload;
1868
1904
 
1869
1905
        dg->check[1] = gtk_check_button_new();
1870
1906
        dialog_mnemonic_label_in_table(_("_Autoplay:"), dg->check[1], dgtable, 0,1, 1,2);
1871
 
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[1], 1,2, 1,2);  
 
1907
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[1], 1,2, 1,2);
1872
1908
 
1873
1909
        dg->check[2] = gtk_check_button_new();
1874
1910
        dialog_mnemonic_label_in_table(_("C_ontrols:"), dg->check[2], dgtable, 2,3, 1,2);
1875
 
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[2], 3,4, 1,2);  
 
1911
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[2], 3,4, 1,2);
1876
1912
 
1877
1913
        dg->check[3] = gtk_check_button_new();
1878
1914
        dialog_mnemonic_label_in_table(_("_Loop:"), dg->check[3], dgtable, 4,5, 1,2);
1880
1916
 
1881
1917
        dg->check[4] = gtk_check_button_new();
1882
1918
        dialog_mnemonic_label_in_table(_("M_ute:"), dg->check[4], dgtable, 7,8, 1,2);
1883
 
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[4], 8,9, 1,2);  
 
1919
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[4], 8,9, 1,2);
1884
1920
 
1885
1921
        listPreload = list_from_arglist(FALSE, "", "auto", "metadata", "none", NULL);
1886
1922
        dg->combo[2] = html_diag_combobox_with_popdown(tagvalues[1], listPreload, 1);
1894
1930
        dg->combo[3] = html_diag_combobox_with_popdown(tagvalues[3], bfwin->session->classlist, 1);
1895
1931
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->combo[3], 8,9, 2,3);
1896
1932
        dialog_mnemonic_label_in_table(_("Cl_ass:"), dg->combo[3], dgtable, 7,8, 2,3);
1897
 
        
 
1933
 
1898
1934
        dg->entry[2] = dialog_entry_in_table(tagvalues[4], dgtable, 1,8 , 3,4);
1899
1935
        dialog_mnemonic_label_in_table(_("_Style:"), dg->entry[2], dgtable, 0,1, 3,4);
1900
1936
        but = style_but_new(dg->entry[2], dg->dialog);
1917
1953
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->spin[0])), cap("HEIGHT"), finalstring, NULL);
1918
1954
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[0])), cap("ID"), finalstring, NULL);
1919
1955
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[1])), cap("STYLE"), finalstring, NULL);
1920
 
        finalstring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[0]), cap("CLASS"), finalstring, NULL);  
 
1956
        finalstring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[0]), cap("CLASS"), finalstring, NULL);
1921
1957
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[2])), NULL, finalstring, NULL);
1922
1958
        thestring = finalstring;
1923
1959
        finalstring = g_strconcat(thestring, NULL);
1941
1977
        static gchar *tagitems[] = { "height", "width", "id", "style", "class", NULL };
1942
1978
        gchar *tagvalues[6];
1943
1979
        gchar *custom=NULL;
1944
 
                
 
1980
 
1945
1981
        /* Dialog construction */
1946
1982
        dg = html_diag_new(bfwin, _("Canvas"));
1947
1983
        fill_dialogvalues(tagitems, tagvalues, &custom, (Ttagpopup *) data, dg);
1987
2023
        finalstring = insert_attr_if_checkbox(dg->check[1], main_v->props.xhtml == 1 ? cap("AUTOPLAY=\"autoplay\"") : cap("AUTOPLAY"), finalstring);
1988
2024
        finalstring = insert_attr_if_checkbox(dg->check[2], main_v->props.xhtml == 1 ? cap("CONTROLS=\"controls\"") : cap("CONTROLS"), finalstring);
1989
2025
        finalstring = insert_attr_if_checkbox(dg->check[3], main_v->props.xhtml == 1 ? cap("LOOP=\"loop\"") : cap("LOOP"), finalstring);
1990
 
        finalstring = insert_attr_if_checkbox(dg->check[4], main_v->props.xhtml == 1 ? cap("MUTE=\"mute\"") : cap("MUTE"), finalstring);        
 
2026
        finalstring = insert_attr_if_checkbox(dg->check[4], main_v->props.xhtml == 1 ? cap("MUTE=\"mute\"") : cap("MUTE"), finalstring);
1991
2027
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->spin[1])), cap("WIDTH"), finalstring, NULL);
1992
2028
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->spin[2])), cap("HEIGHT"), finalstring, NULL);
1993
2029
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[0])), cap("ID"), finalstring, NULL);
2021
2057
        static gchar *tagitems[] = { "src", "poster", "width", "height", "id", "class", "preload", "style", NULL };
2022
2058
        gchar *tagvalues[9];
2023
2059
        gchar *custom=NULL;
2024
 
                
 
2060
 
2025
2061
        /* Values attributes lists */
2026
2062
        GList *tmplist;
2027
2063
 
2046
2082
        /* autoplay */
2047
2083
        dg->check[1] = gtk_check_button_new();
2048
2084
        dialog_mnemonic_label_in_table(_("_Autoplay:"), dg->check[1], dgtable, 0,1, 2,3);
2049
 
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[1], 1,2, 2,3);  
 
2085
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[1], 1,2, 2,3);
2050
2086
 
2051
2087
        /* controls */
2052
2088
        dg->check[2] = gtk_check_button_new();
2053
2089
        dialog_mnemonic_label_in_table(_("C_ontrols:"), dg->check[2], dgtable, 2,3, 2,3);
2054
 
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[2], 3,4, 2,3);  
 
2090
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[2], 3,4, 2,3);
2055
2091
 
2056
2092
        /* loop */
2057
2093
        dg->check[3] = gtk_check_button_new();
2061
2097
        /* mute */
2062
2098
        dg->check[4] = gtk_check_button_new();
2063
2099
        dialog_mnemonic_label_in_table(_("M_ute:"), dg->check[4], dgtable, 7,8, 2,3);
2064
 
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[4], 8,9, 2,3);  
 
2100
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[4], 8,9, 2,3);
2065
2101
 
2066
2102
        /* Width */
2067
2103
        dg->spin[1] = spinbut_with_value(tagvalues[2]?tagvalues[2]:"200", 0, 10000, 1.0, 5.0);
2178
2214
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->spin[1])), cap("WIDTH"), finalstring, NULL);
2179
2215
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->spin[2])), cap("HEIGHT"), finalstring, NULL);
2180
2216
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[1])), cap("ID"), finalstring, NULL);
2181
 
        finalstring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[1]), cap("CLASS"), finalstring, NULL);  
 
2217
        finalstring = insert_string_if_combobox(GTK_COMBO_BOX(dg->combo[1]), cap("CLASS"), finalstring, NULL);
2182
2218
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[2])), cap("STYLE"), finalstring, NULL);
2183
2219
        finalstring = insert_string_if_entry((GTK_ENTRY(dg->entry[3])), NULL, finalstring, NULL);
2184
2220
        thestring = finalstring;
2299
2335
        tmplist2 = g_list_append(tmplist2, "text/plain");
2300
2336
        tmplist2 = g_list_append(tmplist2, "text/html");
2301
2337
        tmplist3 = list_from_arglist(FALSE, "UTF-8", "ISO-8859-1", "ISO-8859-15", "ARMSCII-8", "BIG5", "BIG5-HKSCS", "CP866", "EUC-JP", "EUC-KR", "EUC-TW", "GB18030", "GB2312", "GBK", "GEORGIAN-ACADEMY", "HZ", "IBM850", "IBM852", "IBM855", "IBM857", "IBM862", "IBM864", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-10", "ISO-8859-13", "ISO-8859-14", "ISO-8859-16", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-8-I", "ISO-8859-9", "ISO-IR-111", "JOHAB", "KOI8R", "KOI8U", "SHIFT_JIS", "TCVN", "TIS-620", "UHC", "VISCII", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258",NULL);
2302
 
        
 
2338
 
2303
2339
        dg->combo[0] = html_diag_combobox_with_popdown(tagvalues[0], bfwin->session->urllist, 1);
2304
2340
        but = file_but_new(GTK_WIDGET(gtk_bin_get_child(GTK_BIN(dg->combo[0]))), 0, bfwin);
2305
2341
        gtk_table_attach(GTK_TABLE(dgtable), GTK_WIDGET(but), 10,12, 0,1, GTK_SHRINK,GTK_SHRINK,0,0);
2314
2350
        dg->combo[2] = html_diag_combobox_with_popdown(tagvalues[2], tmplist2,1);
2315
2351
        dialog_mnemonic_label_in_table(_("MIME _Type:"), dg->combo[2], dgtable, 0,2, 2,3);
2316
2352
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->combo[2], 2,6, 2,3);
2317
 
        
 
2353
 
2318
2354
        dg->combo[3] = html_diag_combobox_with_popdown(tagvalues[3], tmplist3,1);
2319
2355
        dialog_mnemonic_label_in_table(_("_Charset:"), dg->combo[3], dgtable, 0,2, 3,4);
2320
2356
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->combo[3], 2,6, 3,4);
2321
 
        gtk_table_attach_defaults(GTK_TABLE(dgtable), GTK_WIDGET(gtk_label_new(_("(HTML5)"))), 7,8, 3,4);       
 
2357
        gtk_table_attach_defaults(GTK_TABLE(dgtable), GTK_WIDGET(gtk_label_new(_("(HTML5)"))), 7,8, 3,4);
2322
2358
 
2323
2359
        dg->check[0] = gtk_check_button_new();
2324
2360
        dialog_mnemonic_label_in_table(_("_Async:"), dg->check[0], dgtable, 0,1, 4,5);
2377
2413
{
2378
2414
        if (strlen(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[5])))) {
2379
2415
                gtk_widget_set_sensitive(dg->spin[3], FALSE);
2380
 
                gtk_widget_set_sensitive(dg->combo[4], FALSE);  
 
2416
                gtk_widget_set_sensitive(dg->combo[4], FALSE);
2381
2417
        } else {
2382
2418
                gtk_widget_set_sensitive(dg->spin[3], TRUE);
2383
2419
                gtk_widget_set_sensitive(dg->combo[4], TRUE);
2384
 
        }       
 
2420
        }
2385
2421
}
2386
2422
 
2387
2423
static void
2391
2427
                gtk_widget_set_sensitive(dg->entry[0], TRUE);
2392
2428
        } else {
2393
2429
                gtk_widget_set_sensitive(dg->entry[0], FALSE);
2394
 
        }       
 
2430
        }
2395
2431
}
2396
2432
 
2397
2433
static void
2401
2437
        gboolean moz, webkit;
2402
2438
        moz = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dg->check[3]));
2403
2439
        webkit = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dg->check[4]));
2404
 
        
 
2440
 
2405
2441
        thestring = g_strdup("");
2406
2442
        endstring = g_strdup("; ");
2407
2443
        finalstring = g_strdup("");
2408
2444
        if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dg->radio[0]))) {
2409
2445
                if(gtk_entry_get_text_length(GTK_ENTRY(dg->entry[0]))==0) {
2410
2446
                        finalstring = g_strdup("\n");
2411
 
                        endstring = g_strdup(";\n");    
 
2447
                        endstring = g_strdup(";\n");
2412
2448
                } else {
2413
2449
                        thestring = g_strconcat(thestring, gtk_entry_get_text(GTK_ENTRY(dg->entry[0])), " {\n",  NULL);
2414
2450
                        finalstring = g_strdup("\n}\n");
2415
2451
                        endstring = g_strdup(";\n");
2416
2452
                }
2417
 
        } 
 
2453
        }
2418
2454
        if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dg->radio[1]))) {
2419
2455
                thestring = g_strdup(" style=\"");
2420
2456
                finalstring = g_strdup("\"");
2421
2457
        }
2422
 
        
 
2458
 
2423
2459
        tmpstring = g_strdup("columns: ");
2424
2460
        if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dg->check[2]))) {
2425
 
           tmpstring =  g_strconcat(tmpstring, "auto", NULL); 
 
2461
           tmpstring =  g_strconcat(tmpstring, "auto", NULL);
2426
2462
        } else {
2427
2463
                tmpstring = g_strconcat(tmpstring, gtk_entry_get_text(GTK_ENTRY(GTK_SPIN_BUTTON(dg->spin[0]))), NULL);
2428
2464
        }
2429
2465
        if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dg->check[3]))) {
2430
 
           tmpstring =  g_strconcat(tmpstring, " auto", endstring, NULL); 
 
2466
           tmpstring =  g_strconcat(tmpstring, " auto", endstring, NULL);
2431
2467
        } else {
2432
 
                tmpstring = g_strconcat(tmpstring, " ", gtk_entry_get_text(GTK_ENTRY(GTK_SPIN_BUTTON(dg->spin[1]))), 
 
2468
                tmpstring = g_strconcat(tmpstring, " ", gtk_entry_get_text(GTK_ENTRY(GTK_SPIN_BUTTON(dg->spin[1]))),
2433
2469
                gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[0])), endstring, NULL);
2434
2470
        }
2435
2471
        thestring = g_strconcat(thestring, tmpstring, NULL);
2439
2475
 
2440
2476
        tmpstring =  g_strdup("column-gap: ");
2441
2477
        if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dg->check[4]))) {
2442
 
           tmpstring =  g_strconcat (tmpstring, "normal", endstring, NULL); 
 
2478
           tmpstring =  g_strconcat (tmpstring, "normal", endstring, NULL);
2443
2479
        } else {
2444
 
                tmpstring = g_strconcat(tmpstring, gtk_entry_get_text(GTK_ENTRY(GTK_SPIN_BUTTON(dg->spin[2]))), 
 
2480
                tmpstring = g_strconcat(tmpstring, gtk_entry_get_text(GTK_ENTRY(GTK_SPIN_BUTTON(dg->spin[2]))),
2445
2481
                gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[1])), endstring, NULL);
2446
2482
        }
2447
2483
        thestring = g_strconcat(thestring, tmpstring, NULL);
2453
2489
        tmpstring = g_strconcat(tmpstring, gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[2])), " ", NULL);
2454
2490
        tmpstring = g_strconcat(tmpstring, gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[3])), " ", NULL);
2455
2491
        if (strlen(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[5])))) {
2456
 
                tmpstring = g_strconcat(tmpstring, gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[5])), endstring, NULL); 
 
2492
                tmpstring = g_strconcat(tmpstring, gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[5])), endstring, NULL);
2457
2493
        } else {
2458
 
                tmpstring = g_strconcat(tmpstring, gtk_entry_get_text(GTK_ENTRY(GTK_SPIN_BUTTON(dg->spin[3]))), 
 
2494
                tmpstring = g_strconcat(tmpstring, gtk_entry_get_text(GTK_ENTRY(GTK_SPIN_BUTTON(dg->spin[3]))),
2459
2495
                gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dg->combo[4])), endstring, NULL);
2460
2496
        }
2461
2497
        thestring = g_strconcat(thestring, tmpstring, NULL);
2478
2514
columns_dialog(Tbfwin * bfwin, Ttagpopup * data)
2479
2515
{
2480
2516
        GtkWidget *color_but;
2481
 
        GList *tmplist =        list_from_arglist(FALSE,"em", "px", "ex", "ch", "rem", "px", "pc", "pt", 
 
2517
        GList *tmplist =        list_from_arglist(FALSE,"em", "px", "ex", "ch", "rem", "px", "pc", "pt",
2482
2518
                                "mm", "cm", "in", "%", NULL),
2483
 
                *tmplist2 = list_from_arglist(FALSE, "", "none", "hidden", "dotted", "dashed", "solid", 
2484
 
                                "double", "groove", "ridge", "inset", "outset", NULL), 
 
2519
                *tmplist2 = list_from_arglist(FALSE, "", "none", "hidden", "dotted", "dashed", "solid",
 
2520
                                "double", "groove", "ridge", "inset", "outset", NULL),
2485
2521
                *tmplist3 = list_from_arglist(FALSE, "", "thin", "medium", "thick", NULL) ;
2486
2522
        GtkWidget *dgtable;
2487
2523
        Thtml_diag *dg;
2488
 
        static gchar *tagitems[] = { "column-count", "column-width", "column-width-unit", "column-gap", 
2489
 
                                "column-gap-unit", "column-rule-color", "column-rule-style", "column-rule-width", 
 
2524
        static gchar *tagitems[] = { "column-count", "column-width", "column-width-unit", "column-gap",
 
2525
                                "column-gap-unit", "column-rule-color", "column-rule-style", "column-rule-width",
2490
2526
                                "column-rule-width-unit", "column-rule-width-var", "selectors", NULL };
2491
2527
        gchar *tagvalues[12];
2492
2528
        gchar *custom = NULL;
2493
2529
 
2494
2530
/*
2495
 
todo check buttons: 
2496
 
column-span: all (default none) 
2497
 
column-fill: auto (default balance)      
2498
 
*/      
 
2531
todo check buttons:
 
2532
column-span: all (default none)
 
2533
column-fill: auto (default balance)
 
2534
*/
2499
2535
 
2500
2536
        dg = html_diag_new(bfwin, _("CSS3 multi-column layout"));
2501
2537
        fill_dialogvalues(tagitems, tagvalues, &custom, (Ttagpopup *) data, dg);
2518
2554
        dg->combo[0] = html_diag_combobox_with_popdown_sized(tagvalues[2] ? tagvalues[2]: "%", tmplist, 0, 70);
2519
2555
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->combo[0], 2,3, 1,2);
2520
2556
        dg->check[3] = gtk_check_button_new_with_mnemonic("a_uto");
2521
 
        g_signal_connect(dg->check[3], "toggled", G_CALLBACK(columnwidth_auto_toggled_lcb), dg);        
 
2557
        g_signal_connect(dg->check[3], "toggled", G_CALLBACK(columnwidth_auto_toggled_lcb), dg);
2522
2558
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dg->check[3]), TRUE);
2523
2559
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[3], 3,4, 1,2);
2524
2560
 
2543
2579
        dg->combo[3] = html_diag_combobox_with_popdown_sized(tagvalues[6] ? tagvalues[6]: "solid", tmplist2, 0, 110);
2544
2580
        gtk_widget_set_tooltip_text(
2545
2581
                        dialog_mnemonic_label_in_table("column-rule-_style:", dg->combo[3], dgtable, 0,1, 4,5),
2546
 
                        _("None (default) or style"));  
 
2582
                        _("None (default) or style"));
2547
2583
        gtk_table_attach_defaults(GTK_TABLE(dgtable), GTK_WIDGET(GTK_BIN(dg->combo[3])), 1,2, 4,5);
2548
2584
 
2549
2585
        dg->spin[3] = spinbut_with_value(tagvalues[7] ? tagvalues[7]: "0.5", 0, 10000, 0.1, 1.0);
2559
2595
        g_signal_connect(dg->combo[5], "changed", G_CALLBACK(columnrulewidth_changed_lcb), dg);
2560
2596
        gtk_table_attach_defaults(GTK_TABLE(dgtable), GTK_WIDGET(GTK_BIN(dg->combo[5])), 3,4, 5,6);
2561
2597
        gtk_widget_set_sensitive(dg->spin[3], FALSE);
2562
 
        gtk_widget_set_sensitive(dg->combo[4], FALSE);  
 
2598
        gtk_widget_set_sensitive(dg->combo[4], FALSE);
2563
2599
 
2564
2600
        gtk_table_attach_defaults(GTK_TABLE(dgtable), GTK_WIDGET(gtk_label_new(
2565
2601
                        _("Use vendor-prefixed CSS property:"))), 0,2, 6,7);
2566
 
        dg->check[3] = gtk_check_button_new_with_mnemonic("G_ecko");    
2567
 
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[3], 2,3, 6,7);  
 
2602
        dg->check[3] = gtk_check_button_new_with_mnemonic("G_ecko");
 
2603
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[3], 2,3, 6,7);
2568
2604
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dg->check[3]), TRUE);
2569
2605
        dg->check[4] = gtk_check_button_new_with_mnemonic("Web_kit");
2570
2606
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->check[4], 3,4, 6,7);
2574
2610
        gtk_widget_set_tooltip_text(dg->radio[0],_("Add selector(s) to create a new rule"));
2575
2611
        dg->radio[1] = gtk_radio_button_new_with_mnemonic(gtk_radio_button_get_group
2576
2612
                        (GTK_RADIO_BUTTON(dg->radio[0])), _("style a_ttribute"));
2577
 
        gtk_widget_set_tooltip_text(dg->radio[1],_("Add a style attribute in tag"));            
 
2613
        gtk_widget_set_tooltip_text(dg->radio[1],_("Add a style attribute in tag"));
2578
2614
        dg->radio[2] = gtk_radio_button_new_with_mnemonic(gtk_radio_button_get_group
2579
2615
                        (GTK_RADIO_BUTTON(dg->radio[0])), _("style _values"));
2580
 
        gtk_widget_set_tooltip_text(dg->radio[2],_("Add values in a style attribute"));         
 
2616
        gtk_widget_set_tooltip_text(dg->radio[2],_("Add values in a style attribute"));
2581
2617
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dg->radio[0]), TRUE);
2582
2618
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->radio[0], 0,1, 7,8);
2583
2619
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->radio[1], 1,2, 7,8);
2584
2620
        gtk_table_attach_defaults(GTK_TABLE(dgtable), dg->radio[2], 2,4, 7,8);
2585
 
        g_signal_connect(GTK_TOGGLE_BUTTON(dg->radio[0]), "toggled", 
 
2621
        g_signal_connect(GTK_TOGGLE_BUTTON(dg->radio[0]), "toggled",
2586
2622
                                G_CALLBACK(columnselector_toggled_lcb), dg);
2587
2623
 
2588
2624
        dg->entry[0] = dialog_entry_in_table(tagvalues[10], dgtable, 1,4, 8,9);
2589
2625
        gtk_widget_set_tooltip_text(
2590
2626
                        dialog_mnemonic_label_in_table(_("Selecto_rs:"), dg->entry[0], dgtable, 0,1, 8,9),
2591
2627
                        _("Leave empty to insert declarations into an existing rule."));
2592
 
                
 
2628
 
2593
2629
        g_list_free(tmplist);
2594
2630
        g_list_free(tmplist2);
2595
2631
        g_list_free(tmplist3);