Develop and Download Open Source Software

Browse CVS Repository

Contents of /shiki/shiki/xyzzylisp.stub

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.8 - (show annotations) (download)
Mon Nov 27 12:01:50 2006 UTC (17 years, 4 months ago) by aloha
Branch: MAIN
Changes since 1.7: +36 -0 lines
add some xyzzy lisp API

1 "#include \"shiki.h\""
2
3 (define-type <buffer> "GtkTextBuffer*" "buffer"
4 "SHIKI_BUFFER_P" "SHIKI_BUFFER_UNBOX" "SHIKI_BUFFER_BOX")
5
6 (define-cproc bufferp (buffer)
7 (call <boolean> "SHIKI_BUFFER_P"))
8
9 (define-cproc selected-buffer ()
10 (body <buffer>
11 " g_object_ref(Shiki_CURRENT_TEXT_BUFFER);
12 SCM_RESULT = Shiki_CURRENT_TEXT_BUFFER;"))
13
14 (define-cproc get-next-buffer (&optional buffer)
15 (body <buffer>
16 " if(buffer == SCM_UNBOUND)
17 SCM_RESULT = Shiki_get_next_buffer(Shiki_CURRENT_TEXT_BUFFER);
18 else if(SHIKI_BUFFER_P(buffer))
19 SCM_RESULT = Shiki_get_next_buffer(SHIKI_BUFFER_UNBOX(buffer));
20 else
21 Scm_Error(\"buffer required, but got %S\", buffer);
22 if(SCM_RESULT)
23 g_object_ref(SCM_RESULT);"))
24
25 (define-cproc buffer-lines (&optional buffer)
26 (body <int>
27 " if(buffer == SCM_UNBOUND)
28 SCM_RESULT = gtk_text_buffer_get_line_count(Shiki_CURRENT_TEXT_BUFFER);
29 else if(SHIKI_BUFFER_P(buffer))
30 SCM_RESULT = gtk_text_buffer_get_line_count(SHIKI_BUFFER_UNBOX(buffer));
31 else
32 Scm_Error(\"buffer required, but got %S\", buffer);"))
33
34 (define-cproc buffer-size (&optional buffer)
35 (body <int>
36 " if(buffer == SCM_UNBOUND)
37 SCM_RESULT = gtk_text_buffer_get_char_count(Shiki_CURRENT_TEXT_BUFFER);
38 else if(SHIKI_BUFFER_P(buffer))
39 SCM_RESULT = gtk_text_buffer_get_char_count(SHIKI_BUFFER_UNBOX(buffer));
40 else
41 Scm_Error(\"buffer required, but got %S\", buffer);"))
42
43 (define-cproc erase-buffer (&optional buffer)
44 (body <void>
45 " if(buffer == SCM_UNBOUND)
46 Shiki_erase_buffer(Shiki_CURRENT_TEXT_BUFFER);
47 else if(SHIKI_BUFFER_P(buffer))
48 Shiki_erase_buffer(SHIKI_BUFFER_UNBOX(buffer));
49 else
50 Scm_Error(\"buffer required, but got %S\", buffer);"))
51
52 (define-cproc delete-buffer (&optional buffer)
53 (body <void>
54 " if(buffer == SCM_UNBOUND)
55 Shiki_delete_buffer(Shiki_CURRENT_TEXT_BUFFER);
56 else if(SHIKI_BUFFER_P(buffer))
57 Shiki_delete_buffer(SHIKI_BUFFER_UNBOX(buffer));
58 else
59 Scm_Error(\"buffer required, but got %S\", buffer);"))
60
61 (define-cproc find-buffer (buffer_name::<const-cstring>)
62 (call <buffer>? "Shiki_find_buffer"))
63
64 (define-cproc new-buffer-create (buffer_name::<const-cstring>)
65 (expr <buffer> "Shiki_new_buffer_create(g_strdup(buffer_name))"))
66
67 (define-cproc count-buffers ()
68 (expr <int> "g_list_length(Shiki_EDITOR_BUFFER_LIST)"))
69
70 (define-cproc get-previous-buffer (&optional buffer)
71 (body <buffer>
72 " if(buffer == SCM_UNBOUND)
73 SCM_RESULT = Shiki_get_previous_buffer(Shiki_CURRENT_TEXT_BUFFER);
74 else if(SHIKI_BUFFER_P(buffer))
75 SCM_RESULT = Shiki_get_previous_buffer(SHIKI_BUFFER_UNBOX(buffer));
76 else
77 Scm_Error(\"buffer required, but got %S\", buffer);
78 if(SCM_RESULT)
79 g_object_ref(SCM_RESULT);")
80 )
81
82 (define-cproc buffer-list ()
83 (call "Shiki_buffer_list"))
84
85 (define-cproc next-buffer ()
86 (body <void> "gtk_notebook_next_page(Shiki_EDITOR_NOTEBOOK);"))
87
88 (define-cproc previous-buffer ()
89 (body <void> "gtk_notebook_prev_page(Shiki_EDITOR_NOTEBOOK);"))
90
91 (define-cproc buffer-name (buffer::<buffer>)
92 (expr <const-cstring>? "Shiki_buffer_name(buffer)"))
93
94 (define-cproc deleted-buffer-p (buffer::<buffer>)
95 (expr <boolean>? "Shiki_deleted_buffer_p(buffer)"))
96
97 (define-cproc buffer-modified-p (&optional buffer)
98 (body <boolean>
99 " if(buffer == SCM_UNBOUND)
100 SCM_RESULT = gtk_text_buffer_get_modified(Shiki_CURRENT_TEXT_BUFFER);
101 else if(SHIKI_BUFFER_P(buffer))
102 SCM_RESULT = gtk_text_buffer_get_modified(SHIKI_BUFFER_UNBOX(buffer));
103 else
104 Scm_Error(\"buffer required, but got %S\", buffer);"))
105
106 (define-cproc buffer-substring (start::<int> end::<int>)
107 (body <string>?
108 " gchar *substr = Shiki_buffer_substring(start, end);
109 if(substr)
110 SCM_RESULT = SCM_STRING(SCM_MAKE_STR_COPYING(substr));
111 else
112 SCM_RESULT = SCM_STRING(SCM_FALSE);
113 g_free(substr);"))
114
115 (define-cproc delete-region (start::<int> end::<int>)(call <void> "Shiki_delete_region"))
116
117 (define-cproc insert (char_or_string)
118 (body <void>
119 "if(SCM_CHARP(char_or_string)) {
120 gunichar u = SCM_CHAR_VALUE(char_or_string);
121 gchar *str = g_ucs4_to_utf8(&u, 1, NULL, NULL, NULL);
122 gtk_text_buffer_insert_at_cursor(Shiki_CURRENT_TEXT_BUFFER, str, -1);
123 g_free(str);
124 } else if(SCM_STRINGP(char_or_string))
125 gtk_text_buffer_insert_at_cursor(Shiki_CURRENT_TEXT_BUFFER, SCM_STRING_CONST_CSTRING(char_or_string), -1);
126 else
127 Scm_Error(\"character or string required, but got %S\", char_or_string);"))
128
129 (define-cproc point () (call <int> "Shiki_point"))
130 (define-cproc point-max () (call <int> "Shiki_point_max"))
131 (define-cproc point-min () (call <int> "Shiki_point_min"))
132 (define-cproc goto-char (offset::<int>) (call <void> "Shiki_goto_char"))
133 (define-cproc forward-char () (call <void> "Shiki_forward_char"))
134 (define-cproc backward-char () (call <void> "Shiki_backward_char"))
135 (define-cproc goto-line (line::<int>) (call <void> "Shiki_goto_line"))
136 (define-cproc goto-bol () (call <void> "Shiki_goto_bol"))
137 (define-cproc goto-eol () (call <void> "Shiki_goto_eol"))
138 (define-cproc forward-line (&optional (count::<int> 1))
139 (call <void> "Shiki_forward_line"))
140
141
142 (define-cproc file-name-dialog (&keyword (title::<const-cstring> "���������������������"))
143 (call <const-cstring>? "Shiki_file_name_dialog"))
144
145 (define-cproc yes-or-no-p (msg::<const-cstring>)
146 (call <boolean> "Shiki_yes_or_no_p"))

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26