1 /* morla - Copyright (C) 2005-2007 bakunin - Andrea Marchesini 2 * <bakunin@morlardf.net> 3 * 4 * This source code is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Public License as published 6 * by the Free Software Foundation; either version 2 of the License, 7 * or (at your option) any later version. 8 * 9 * This source code is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 * Please refer to the GNU Public License for more details. 13 * 14 * You should have received a copy of the GNU Public License along with 15 * this source code; if not, write to: 16 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 */ 18 19 #include <glib.h> 20 #include <glib/gstdio.h> 21 22 #include <gtk/gtk.h> 23 #include <gdk/gdkkeysyms.h> 24 25 #include <nxml.h> 26 27 #include <libxslt/transform.h> 28 #include <libxslt/xsltutils.h> 29 30 #include <redland.h> 31 32 #ifdef USE_GTKHTML 33 # include <libgtkhtml/gtkhtml.h> 34 #endif 35 36 #ifdef ENABLE_NLS 37 # include <glib/gi18n-lib.h> 38 #else 39 # define _(String) (String) 40 #endif 41 42 #ifdef G_OS_UNIX 43 # include <sys/utsname.h> 44 #endif 45 46 #ifdef USE_JS 47 # ifdef USE_NGS_JS 48 # include <js.h> 49 # elif USE_MOZILLA_JS 50 # include <jsapi.h> 51 # else 52 # error "No javascript engine selected!" 53 # endif 54 #endif 55 56 #ifdef USE_GCONF 57 # include <gconf/gconf-client.h> 58 #endif 59 60 #include "morla-module.h" 61 62 struct module_t 63 { 64 GModule *module; 65 MorlaModule *data; 66 }; 67 68 enum rdf_object_t 69 { 70 RDF_OBJECT_BLANK, 71 RDF_OBJECT_LITERAL, 72 RDF_OBJECT_RESOURCE 73 }; 74 75 enum order_t 76 { 77 ORDER_SUBJECT, 78 ORDER_SUBJECT_DEC, 79 ORDER_PREDICATE, 80 ORDER_PREDICATE_DEC, 81 ORDER_OBJECT, 82 ORDER_OBJECT_DEC 83 }; 84 85 enum nsorder_t 86 { 87 NSORDER_NAMESPACE, 88 NSORDER_NAMESPACE_DEC, 89 NSORDER_PREFIX, 90 NSORDER_PREFIX_DEC, 91 NSORDER_VISIBLE, 92 NSORDER_VISIBLE_DEC 93 }; 94 95 struct namespace_t 96 { 97 gchar *namespace; 98 GtkWidget *namespace_widget; 99 100 gchar *prefix; 101 GtkWidget *prefix_widget; 102 103 gboolean visible; 104 GtkWidget *visible_widget; 105 }; 106 107 enum rdf_format_t 108 { 109 RDF_FORMAT_XML = 0, 110 RDF_FORMAT_NTRIPLES, 111 RDF_FORMAT_TURTLE 112 }; 113 114 struct rdf_t 115 { 116 gchar *subject; 117 GtkWidget *subject_widget; 118 119 gchar *predicate; 120 GtkWidget *predicate_widget; 121 122 gchar *object; 123 GtkWidget *object_widget; 124 125 enum rdf_object_t object_type; 126 GtkWidget *object_type_widget; 127 128 gchar *lang; 129 GtkWidget *lang_widget; 130 131 gchar *datatype; 132 GtkWidget *datatype_widget; 133 }; 134 135 struct rdfs_t 136 { 137 gchar *resource; 138 gchar *prefix; 139 gchar *path; 140 141 GList *data; 142 GList *nsdata; 143 }; 144 145 struct thread_t 146 { 147 GFunc func; 148 gpointer data; 149 gint *flag; 150 }; 151 152 struct graph_data_t 153 { 154 gchar *color; 155 gchar *fontcolor; 156 gchar *style; 157 gchar *fillcolor; 158 gchar *shape; 159 gchar *fontname; 160 gint fontsize; 161 }; 162 163 enum unredo_type_t 164 { 165 UNREDO_TYPE_ADD, 166 UNREDO_TYPE_DEL, 167 UNREDO_TYPE_CHANGE 168 }; 169 170 struct unredo_change_t 171 { 172 struct rdf_t *now; 173 struct rdf_t *prev; 174 }; 175 176 struct unredo_t 177 { 178 enum unredo_type_t type; 179 GList *list; 180 }; 181 182 struct info_box_t 183 { 184 gchar *value; 185 gchar *lang; 186 }; 187 188 struct editor_data_t 189 { 190 struct editor_data_t *next; 191 192 gchar *file; 193 gchar *uri; 194 struct module_t *module_save; 195 196 enum rdf_format_t format; 197 198 GList *rdf; 199 GList *namespace; 200 201 GList *undo; 202 GList *redo; 203 204 gboolean changed; 205 206 GtkWidget *label; 207 GtkWidget *maker; 208 209 GtkWidget *list; 210 GtkWidget *nslist; 211 212 GtkWidget *subject_order; 213 GtkWidget *predicate_order; 214 GtkWidget *object_order; 215 enum order_t compare; 216 217 GtkWidget *namespace_order; 218 GtkWidget *prefix_order; 219 GtkWidget *visible_order; 220 enum nsorder_t nscompare; 221 222 gchar *node_select; 223 gchar *node_nsselect; 224 225 struct rdf_t *rdf_select; 226 }; 227 228 struct template_t 229 { 230 gchar *uri; 231 gchar *name; 232 gchar *version; 233 gchar *category; 234 GList *input; 235 }; 236 237 enum template_input_typevalue_t 238 { 239 TEMPLATE_INPUT_TYPEVALUE_NONE, 240 TEMPLATE_INPUT_TYPEVALUE_RESOURCE, 241 TEMPLATE_INPUT_TYPEVALUE_LITERAL, 242 TEMPLATE_INPUT_TYPEVALUE_ALT_RESOURCE, 243 TEMPLATE_INPUT_TYPEVALUE_ALT_LITERAL, 244 TEMPLATE_INPUT_TYPEVALUE_OTHER 245 }; 246 247 struct template_input_t 248 { 249 GList *labels; 250 GList *comments; 251 252 gchar *rdfs; 253 254 gboolean lang; 255 gboolean datatype; 256 257 gint min_cardinality; 258 gint max_cardinality; 259 260 enum template_input_typevalue_t typevalue; 261 GList *alt_typevalue; 262 gchar *other_typevalue; 263 264 gboolean visible; 265 gchar *default_value; 266 gchar *default_language; 267 gchar *default_datatype; 268 269 gchar *function_init; 270 gchar *function_check; 271 gchar *function_destroy; 272 gchar *function_save; 273 274 gboolean longtext; 275 }; 276 277 struct template_value_t 278 { 279 gchar *value; 280 gchar *lang; 281 gchar *datatype; 282 enum rdf_object_t type; 283 }; 284 285 struct update_template_t 286 { 287 gchar *uri; 288 gchar *name; 289 gchar *description; 290 gchar *author; 291 gchar *version; 292 }; 293 294 struct update_t 295 { 296 gchar *last_version; 297 GList *templates; 298 }; 299 300 enum parser_char_t 301 { 302 PARSER_CHAR_INIT = '*', 303 PARSER_CHAR_ERROR = '!', 304 PARSER_CHAR_WARNING = '_' 305 }; 306 307 struct datatype_t { 308 gchar *uri; 309 gchar *name; 310 gchar *description; 311 gboolean (*check)(gchar *, gchar *); 312 }; 313 314 struct download_t { 315 gint timeout; 316 317 gboolean verifypeer; 318 gchar *certfile; 319 gchar *certpassword; 320 gchar *cacertfile; 321 322 gchar *auth_user; 323 gchar *auth_password; 324 }; 325 326 struct tag_t 327 { 328 gchar *tag; 329 330 PangoStyle style; 331 PangoVariant variant; 332 PangoWeight weight; 333 PangoStretch stretch; 334 gdouble scale; 335 gchar *foreground; 336 gchar *background; 337 PangoUnderline underline; 338 }; 339 340 #ifdef USE_JS 341 342 # define JS_MORLA_OK 0 343 # define JS_MORLA_FAILURE 1 344 345 struct js_t 346 { 347 # ifdef USE_NGS_JS 348 JSInterpPtr interp; 349 # elif USE_MOZILLA_JS 350 JSRuntime *rt; 351 JSContext *cx; 352 JSObject *global; 353 # endif 354 GtkWidget *widget; 355 }; 356 357 #endif 358 359 #define LOCK 1 360 #define WAIT 2 361 #define UNLOCK 3 362 363 #define MORLA_COPYRIGHT "Copyright 2005-2007 - GPL - Andrea Marchesini" 364 365 #define THIS_DOCUMENT "this:document" 366 #define BLANK_NODE "blank_node:" 367 368 #define RDF_XSD "http://www.w3.org/2001/XMLSchema#" 369 370 #define RDF_TYPE "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" 371 #define RDF_ITEM "http://www.w3.org/1999/02/22-rdf-syntax-ns#_" 372 373 #define RDF_PROPERTY "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property" 374 #define RDFS_LITERAL "http://www.w3.org/2000/01/rdf-schema#Literal" 375 #define RDFS_RESOURCE "http://www.w3.org/2000/01/rdf-schema#Resource" 376 377 #define RDFS_COMMENT "http://www.w3.org/2000/01/rdf-schema#comment" 378 #define RDFS_LABEL "http://www.w3.org/2000/01/rdf-schema#label" 379 380 #define RDFS_DOMAIN "http://www.w3.org/2000/01/rdf-schema#domain" 381 #define RDFS_RANGE "http://www.w3.org/2000/01/rdf-schema#range" 382 383 #define RDF_ALT "http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt" 384 #define RDF_BAG "http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag" 385 #define RDF_SEQ "http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq" 386 387 #define OWL_O_PROPERTY "http://www.w3.org/2002/07/owl#ObjectProperty" 388 #define OWL_DT_PROPERTY "http://www.w3.org/2002/07/owl#DatatypeProperty" 389 390 #define RDF_SUBCLASSOF "http://www.w3.org/2000/01/rdf-schema#subClassOf" 391 #define RDF_SUBPROPERTYOF "http://www.w3.org/2000/01/rdf-schema#subPropertyOf" 392 393 #define MORLA_NS "http://www.morlardf.net/morla#" 394 395 #define MORLA_TEMPLATE "Template" 396 #define MORLA_INPUT "Input" 397 398 #define MORLA_HASINPUT "hasInput" 399 #define MORLA_HASVERSION "hasVersion" 400 #define MORLA_CATEGORY "category" 401 #define MORLA_HASRDFS "hasRDFS" 402 #define MORLA_TYPEVALUE "typeValue" 403 #define MORLA_MINCARD "minCardinality" 404 #define MORLA_MAXCARD "maxCardinality" 405 #define MORLA_VISIBLE "visible" 406 #define MORLA_LANGUAGE "language" 407 #define MORLA_DEFAULTLANGUAGE "defaultLanguage" 408 #define MORLA_DATATYPE "datatype" 409 #define MORLA_DEFAULTDATATYPE "defaultDatatype" 410 #define MORLA_DEFAULTVALUE "defaultValue" 411 #define MORLA_LONGTEXT "longText" 412 413 #define MORLA_FUNCTIONINIT "functionInit" 414 #define MORLA_FUNCTIONCHECK "functionCheck" 415 #define MORLA_FUNCTIONDESTROY "functionDestroy" 416 #define MORLA_FUNCTIONSAVE "functionSave" 417 418 #define MORLA_ALT_RESOURCE "AltResource" 419 #define MORLA_ALT_LITERAL "AltLiteral" 420 421 #define MORLA_WEBSITE "http://www.morlardf.net/" 422 #define MORLA_OLD_WEBSITE_1 "http://www.autistici.org/bakunin/morla/" 423 #define MORLA_OLD_WEBSITE_2 "http://autistici.org/bakunin/morla/" 424 #define MORLA_OLD_WEBSITE_3 "http://www2.autistici.org/bakunin/morla/" 425 426 #define UPDATE_URL "http://www.morlardf.net/update" 427 #define DOAP_URL "http://www.morlardf.net/doap.rdf" 428 429 #ifdef USE_GTKHTML 430 # define HELP_URL "http://www.morlardf.net/doc/" 431 #else 432 # define HELP_URL "http://morlardf.net/doc.php" 433 #endif 434 435 #define UNDO_MAX_VALUE 10 436 #define LAST_DOCUMENT_VALUE 5 437 438 extern int editor_statusbar_lock; 439 440 extern struct editor_data_t *editor_data; 441 extern GtkWidget *notebook; 442 443 extern gchar *browser_default; 444 extern gchar *viewer_default; 445 446 extern gint default_width; 447 extern gint default_height; 448 449 extern GList *thread_child; 450 extern GList *rdfs_list; 451 extern gint last_id; 452 453 extern struct graph_data_t graph_blank_node; 454 extern struct graph_data_t graph_resource_node; 455 extern struct graph_data_t graph_literal_node; 456 extern struct graph_data_t graph_edge; 457 extern gchar *graph_format; 458 459 extern gchar *normal_bg_color; 460 extern gchar *prelight_bg_color; 461 extern gchar *normal_fg_color; 462 extern gchar *prelight_fg_color; 463 464 extern GList *template_list; 465 466 extern GList *template_menus; 467 extern GtkWidget *template_toolbar; 468 469 extern GList *last_list; 470 extern GtkWidget *last_menu; 471 extern gint last_document_value; 472 473 extern GtkWidget *undo_widget[2]; 474 extern GtkWidget *redo_widget[2]; 475 extern gint undo_max_value; 476 477 extern gint update_show; 478 extern gchar *update_url; 479 480 extern gchar *blanknode_name; 481 482 extern gchar *help_url; 483 484 extern gchar *download_proxy; 485 486 #ifdef USE_GCONF 487 extern gboolean download_proxy_gconf; 488 #endif 489 490 extern gint download_proxy_port; 491 extern gchar *download_proxy_user; 492 extern gchar *download_proxy_password; 493 494 extern gboolean automatic_extensions; 495 496 extern GList *highlighting_tags; 497 extern gboolean highlighting_active; 498 499 /* edit.c */ 500 void editor_add (GtkWidget * w, 501 gpointer data); 502 503 void editor_cut (GtkWidget * w, 504 gpointer data); 505 506 void editor_copy (GtkWidget * w, 507 gpointer data); 508 509 void editor_paste (GtkWidget * w, 510 gpointer data); 511 512 void editor_delete (GtkWidget * w, 513 gpointer data); 514 515 void editor_cut_triple (GtkWidget * w, 516 gpointer data); 517 518 void editor_copy_triple (GtkWidget * w, 519 gpointer data); 520 521 void editor_delete_triple (GtkWidget * w, 522 gpointer data); 523 524 struct rdf_t * editor_triple (struct rdf_t * prev, 525 gchar * title); 526 527 void editor_merge_file (GtkWidget * w, 528 gpointer data); 529 530 void editor_merge_uri (GtkWidget * w, 531 gpointer data); 532 533 /* file.c */ 534 gboolean editor_open_file (gchar * f, 535 gchar * ff); 536 537 gboolean editor_open_uri (gchar * f, 538 struct download_t * d); 539 540 void editor_open (GtkWidget * w, 541 gpointer data); 542 543 void editor_save_as (GtkWidget * w, 544 gpointer data); 545 546 void editor_save (GtkWidget * w, 547 gpointer data); 548 549 void editor_close (GtkWidget * w, 550 gpointer data); 551 552 void editor_close_selected (GtkWidget * w, 553 struct editor_data_t * data); 554 555 void editor_new (GtkWidget * w, 556 gpointer data); 557 558 gchar * editor_tmp_file (void); 559 560 /* main.c */ 561 int editor_quit (GtkWidget * w, 562 GdkEvent * event, 563 gpointer data); 564 565 gchar * utf8 (gchar * str); 566 567 char * markup (gchar * str); 568 569 void statusbar_set (gchar * what, 570 ...); 571 572 void fatal (gchar * text, 573 ...); 574 575 void run (gchar ** a, 576 GChildWatchFunc func, 577 gpointer data); 578 579 GList * split (gchar * ar); 580 581 gchar * user_agent (void); 582 583 gchar * dot_cmd (void); 584 585 GtkWindow * main_window (void); 586 587 /* maker.c */ 588 struct editor_data_t * editor_get_data (void); 589 590 gint editor_timeout (gpointer data); 591 592 void editor_new_maker (struct editor_data_t * data); 593 594 void editor_refresh (struct editor_data_t * data); 595 596 void editor_refresh_nslist (struct editor_data_t * data); 597 598 gint editor_compare (struct rdf_t * rdf, 599 struct rdf_t * what, 600 struct editor_data_t * data); 601 602 gint editor_nscompare (struct namespace_t * ns, 603 struct namespace_t * ns2, 604 struct editor_data_t * data); 605 606 /* edit.c */ 607 void editor_view (GtkWidget * w, 608 gpointer data); 609 610 void editor_your_view (GtkWidget * w, 611 gpointer data); 612 613 void editor_preferences (GtkWidget * w, 614 gpointer data); 615 616 GList * create_no_dup (GList * ret); 617 618 GList * create_resources (struct editor_data_t * data); 619 620 GList * create_resources_by_rdfs (GList * ret); 621 622 GList * create_blank (struct editor_data_t * data); 623 624 void search_resources (GtkWidget * widget, 625 GtkWidget * entry); 626 627 gchar * search_list (GList * list, 628 GtkWindow * parent); 629 630 /* dialog.c */ 631 void dialog_msg (gchar * msg); 632 633 void dialog_msg_with_error (gchar * msg, 634 gchar * other); 635 636 int dialog_ask (gchar * msg); 637 638 int dialog_ask_with_cancel (gchar * msg); 639 640 GtkWidget * dialog_wait (GCallback callback, 641 gpointer data, 642 GtkWidget ** pb); 643 644 /* filechooser.c */ 645 void * file_chooser (gchar * str, 646 GtkSelectionMode mode, 647 GtkFileChooserAction action, 648 enum rdf_format_t * rdf); 649 650 gchar * uri_chooser (gchar * str, 651 struct download_t ** options); 652 653 /* rdf.c */ 654 librdf_world * rdf_world (void); 655 gboolean rdf_parse (gchar * what, 656 struct download_t * download, 657 gboolean this_document, 658 GList ** list, 659 enum rdf_format_t * format, 660 GString ** string); 661 662 gboolean rdf_parse_thread (gchar * resource, 663 struct download_t * download, 664 GList ** list, 665 GList ** nslist, 666 gboolean this_document, 667 enum rdf_format_t * format, 668 GString ** string); 669 670 GList * rdf_parse_stream (librdf_stream * stream); 671 672 gboolean rdf_parse_format (gchar * resource, 673 gchar * buffer, 674 gboolean this_document, 675 GList ** ret, 676 enum rdf_format_t format, 677 GString ** string); 678 679 gboolean rdf_save_file (gchar * file, 680 GList * rdf, 681 GList ** ns, 682 enum rdf_format_t format); 683 684 gboolean rdf_save_buffer (GList * rdf, 685 GList ** ns, 686 enum rdf_format_t format, 687 gchar ** buffer_ret); 688 689 gboolean rdf_is_no_saved (struct editor_data_t * data); 690 691 void rdf_free (struct rdf_t * rdf); 692 693 struct rdf_t * rdf_copy (struct rdf_t * rdf); 694 695 gboolean rdf_blank (GList * rdf, 696 gchar * t); 697 698 gboolean rdf_resource (GList * rdf, 699 gchar * t); 700 701 int rdf_error (void * dummy, 702 const char * msg, 703 va_list va); 704 705 int rdf_warning (void * dummy, 706 const char * msg, 707 va_list va); 708 709 gint rdf_log (GString ** error, 710 gchar * str, 711 enum parser_char_t c); 712 713 /* namespace.c */ 714 gboolean namespace_parse (GList * rdf, 715 GList ** list); 716 void namespace_free (struct namespace_t * ns); 717 gboolean namespace_visible (GList * ns, 718 struct rdf_t * rdf); 719 gchar * namespace_prefix (GList ** ns, 720 gchar * t); 721 gchar * namespace_create (GList * ns, 722 gchar * t); 723 724 /* browser.c */ 725 void browser (gchar * what); 726 727 void browser_website (void); 728 729 /* init.c */ 730 void init (gchar * m_config); 731 732 GList * init_highlighting (void); 733 734 void init_save (void); 735 736 /* rdfs.c */ 737 void rdfs (GtkWidget * w, 738 gpointer dummy); 739 740 gint rdfs_add (gchar * resource, 741 gchar * prefix); 742 743 gchar * rdfs_file (void); 744 745 /* graph.c */ 746 void graph_run (GtkWidget * w, 747 gpointer dummy); 748 749 void graph (struct editor_data_t * data); 750 751 void graph_save (GtkWidget * w, 752 gpointer dummy); 753 754 void graph_graphviz (void); 755 756 /* about.c */ 757 void about (GtkWidget * w, 758 gpointer dummy); 759 760 void about_libraries (void); 761 762 /* template.c */ 763 void template_update (void); 764 765 void template_import_uri (GtkWidget * w, 766 gpointer dummy); 767 768 void template_import_file (GtkWidget * w, 769 gpointer dummy); 770 771 void template (GtkWidget * w, 772 gpointer dummy); 773 774 gboolean template_import (gchar * uri, 775 struct download_t * download, 776 gboolean b1, 777 gboolean b2); 778 779 void template_save (void); 780 781 void template_save_single (GtkWidget * w, 782 struct template_t * t); 783 784 void template_open (GtkWidget * w, 785 struct template_t * t); 786 787 void template_edit (GtkWidget * w, 788 struct template_t * t); 789 790 struct template_value_t * 791 template_value_new (GtkWidget * w); 792 793 void template_value_set (GtkWidget * w, 794 struct template_value_t * 795 value); 796 797 void template_value_free (struct template_value_t * 798 value); 799 800 /* preferences.c */ 801 void preferences (void); 802 803 /* splash.c */ 804 void splash_show (void); 805 806 void splash_hide (void); 807 808 gboolean splash_showed (void); 809 810 void splash_set_text (char * str, 811 ...); 812 813 void splash_set_text_with_effect (char * str, 814 ...); 815 816 void splash_sleep (int sleep); 817 818 void splash_close_on_click (gboolean value); 819 820 /* unredo.c */ 821 struct unredo_t * unredo_new (struct editor_data_t * data, 822 enum unredo_type_t type); 823 824 void unredo_add (struct unredo_t * unredo, 825 struct rdf_t * rdf, 826 struct rdf_t * rdf2); 827 828 void unredo_destroy (struct editor_data_t * data, 829 struct unredo_t * unredo); 830 831 void unredo_undo (void); 832 833 void unredo_redo (void); 834 835 void unredo_change_value (void); 836 837 /* update.c */ 838 gint update_timer (void); 839 840 void update_search (void); 841 842 gint update_check (void); 843 844 /* merge.c */ 845 GList * merge (GList * rdf, 846 gchar * what, 847 struct download_t * download, 848 GString ** string); 849 850 void merge_graph (void); 851 852 /* navigator.c */ 853 void navigator_run (void); 854 855 void navigator_open_uri (void); 856 857 /* search.c */ 858 gboolean search (gchar * uri, 859 GList ** meta, 860 GList ** other, 861 gchar ** error); 862 863 void search_open (gchar * text, 864 void (*func) (gchar *, gpointer), 865 gpointer data); 866 867 /* last.c */ 868 void last_update (void); 869 870 void last_add (gchar * uri); 871 872 void last_change_value (void); 873 874 /* help.c */ 875 void help (void); 876 877 /* info.c */ 878 void info_selected (void); 879 880 void info_uri (void); 881 882 void info_this (void); 883 884 gboolean info_box_popup_show (GtkWidget * w, 885 GdkEventButton * event, 886 GList * list); 887 888 gboolean info_box_popup_hide (GtkWidget * w, 889 GdkEventButton * event, 890 gpointer data); 891 892 gboolean info_box_enter (GtkWidget * w, 893 GdkEventCrossing * event, 894 gpointer data); 895 896 gboolean info_box_leave (GtkWidget * w, 897 GdkEventCrossing * event, 898 gpointer data); 899 900 void info_box_free (struct info_box_t * info); 901 902 /* query.c */ 903 void query_sparql (void); 904 void query_rsql (void); 905 906 /* checks.c */ 907 void check_rasqal (void); 908 void check_redland (void); 909 910 /* datatype.c */ 911 struct datatype_t * datatype_list (void); 912 913 gboolean datatype_check (gint id, 914 gchar * what, 915 gchar * check); 916 917 void datatype_change (GtkWidget * w, 918 GtkWidget * label); 919 920 gint datatype_id (gchar * what); 921 922 gboolean datatype_exists (gchar * what); 923 924 /* download.c */ 925 gboolean download_uri (gchar * uri, 926 gchar ** buffer, 927 struct download_t * download, 928 gchar ** error); 929 930 void download_free (struct download_t * donwload); 931 932 struct download_t * download_copy (struct download_t * download); 933 934 /* ntriples.c */ 935 gchar * ntriples (librdf_node * node); 936 937 /* blanknode.c */ 938 gboolean blanknode_get (gchar * what, 939 gint * id); 940 941 gchar * blanknode_create (gint id); 942 943 /* textview.c */ 944 GtkWidget * textview_new (GCallback change, 945 gpointer data); 946 947 void textview_add_tag (GtkWidget * text, 948 gchar * tag, 949 PangoStyle style, 950 PangoVariant variant, 951 PangoWeight weight, 952 PangoStretch stretch, 953 gdouble scale, 954 gchar * foreground, 955 gchar * background, 956 PangoUnderline underline); 957 958 void textview_insert (GtkWidget * widget, 959 GtkTextIter * iter, 960 gchar * text, 961 gint len); 962 963 void textview_insert_at_cursor (GtkWidget * widget, 964 gchar * text, 965 gint len); 966 967 void textview_clean_tags (GtkWidget * widget); 968 969 /* js.c */ 970 struct js_t * js_new (void); 971 972 void js_destroy (struct js_t * js); 973 974 void js_current_widget (struct js_t * js, 975 GtkWidget * widget); 976 977 gboolean js_evaluate (struct js_t * js, 978 gchar * buffer); 979 980 /* module.c */ 981 void module_init (gchar * config); 982 983 void module_shutdown (void); 984 985 void module_menu_open (GtkMenu * menu, 986 GtkWidget * parent); 987 988 void module_menu_save (GtkMenu * menu, 989 GtkWidget * parent); 990 991 void module_menu_view (GtkMenu * menu, 992 GtkWidget * parent); 993 994 void module_run_open (GtkWidget * widget, 995 struct module_t * 996 module); 997 998 void module_run_save (GtkWidget * widget, 999 struct module_t * 1000 module); 1001 1002 struct module_t * 1003 module_default_open (void); 1004 1005 struct module_t * 1006 module_default_save (void); 1007 1008 /* gconf.c */ 1009 void morla_gconf_init (void); 1010 1011 gboolean morla_gconf_proxy (gchar ** proxy, 1012 gint * port, 1013 gchar ** user, 1014 gchar ** password, 1015 GSList ** list); 1016 1017 void morla_gconf_shutdown (void); 1018 1019 /* EOF */ 1020