Develop and Download Open Source Software

Browse CVS Repository

Contents of /shiki/shiki/shiki.h

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


Revision 1.17 - (show annotations) (download) (as text)
Sat Feb 3 09:48:01 2007 UTC (17 years, 2 months ago) by aloha
Branch: MAIN
Changes since 1.16: +2 -2 lines
File MIME type: text/x-chdr
response Gauche 0.8.8 (so require gauche and gauche-dev >= 0.8.8)

1 /* vim: set encoding=utf8:
2 *
3 * shiki.h
4 *
5 * This file is part of Shiki.
6 *
7 * Copyright(C)2006 WAKATSUKI toshihiro
8 *
9 * Permission is hereby granted, free of charge, to any person obtaining a
10 * copy of this software and associated documentation files (the "Software"),
11 * to deal in the Software without restriction, including without limitation
12 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
13 * and/or sell copies of the Software, and to permit persons to whom the
14 * Software is furnished to do so, subject to the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be included in
17 * all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25 * SOFTWARE.
26 *
27 * $Id: shiki.h,v 1.16 2006/12/28 05:04:45 aloha Exp $
28 */
29
30 #ifndef SHIKI_H
31 #define SHIKI_H
32
33 #include<gauche.h> // require >= 0.8.8
34 #include<gtk/gtk.h>
35 #include<gdk/gdkkeysyms.h>
36
37 /* ��������������������������������������������� */
38 typedef struct {
39 const gchar *locale; /* ��������������������������������� */
40 GtkScrolledWindow *tabpage; /* ������ */
41 gchar *tabpage_label; /* ��������������������� */
42 gchar *name; /* ��������� (���������������) ������ */
43 GtkTextView *text_view; /* ��������������� */
44 GtkTextBuffer *text_buffer; /* ��������������������������������� */
45 gchar *filename; /* ������������������������������ */
46 GList *undoInfoList; /* ��������������������������������������� */
47 ScmObj env; /* ��������������������������� Scheme ������ */
48 guint delete_handler_id; /* ��������������������������������������������� ID */
49 } ShikiBuffer;
50
51 typedef struct {
52 const gchar *default_locale;
53 GtkWidget *editor_window;
54 GtkClipboard *clipboard;
55 GtkNotebook *notebook;
56 GtkWidget *statusbar;
57 GtkWidget *modeline_label;
58 GList *bufferList;
59 gint current_tabpage_num;
60 ShikiBuffer *current_tabpage_info;
61 } ShikiEditorType;
62
63 extern ShikiEditorType Shiki_editor;
64
65 /* ��������������������������������������������� */
66 #define Shiki_EDITOR_DEFAULT_LOCALE Shiki_editor.default_locale
67 #define Shiki_EDITOR_WINDOW Shiki_editor.editor_window
68 #define Shiki_EDITOR_CLIPBOARD Shiki_editor.clipboard
69 #define Shiki_EDITOR_NOTEBOOK Shiki_editor.notebook
70 #define Shiki_EDITOR_STATUSBAR Shiki_editor.statusbar
71 #define Shiki_EDITOR_MODELINE_LABEL Shiki_editor.modeline_label
72 #define Shiki_EDITOR_BUFFER_LIST Shiki_editor.bufferList
73
74 /* ��������������������������������������������������������������������������������������� */
75 #define Shiki_CURRENT_TAB_NUM Shiki_editor.current_tabpage_num
76 #define Shiki_CURRENT_TAB_INFO Shiki_editor.current_tabpage_info
77 #define Shiki_CURRENT_CES (Shiki_editor.current_tabpage_info)->locale
78 #define Shiki_CURRENT_UNDO_INFO_LIST (Shiki_editor.current_tabpage_info)->undoInfoList
79 #define Shiki_CURRENT_TAB (Shiki_editor.current_tabpage_info)->tabpage
80 #define Shiki_CURRENT_TAB_TITLE (Shiki_editor.current_tabpage_info)->tabpage_label
81 #define Shiki_CURRENT_TEXT_VIEW (Shiki_editor.current_tabpage_info)->text_view
82 #define Shiki_CURRENT_TEXT_BUFFER (Shiki_editor.current_tabpage_info)->text_buffer
83 #define Shiki_CURRENT_BASENAME (Shiki_editor.current_tabpage_info)->name
84 #define Shiki_CURRENT_FILENAME (Shiki_editor.current_tabpage_info)->filename
85 #define Shiki_CURRENT_BUFFER_ENV (Shiki_editor.current_tabpage_info)->env
86
87 /* Undo/Redo ������������������ */
88 typedef enum {
89 SHIKI_UNDO_INSERT,
90 SHIKI_UNDO_UNDO,
91 SHIKI_UNDO_DELETE,
92 SHIKI_UNDO_REDO
93 } ShikiAction;
94
95 typedef struct {
96 ShikiAction action;
97 gchar *str;
98 gint strlen;
99 gint start;
100 gint end;
101 } ShikiUndoInfo;
102
103 extern ScmClass *ShikiBufferClass;
104 void Scm_Init_xyzzylisp(ScmModule *module);
105
106 #define SHIKI_BUFFER_P(obj) SCM_XTYPEP(obj, ShikiBufferClass)
107 #define SHIKI_BUFFER_UNBOX(obj) SCM_FOREIGN_POINTER_REF(GtkTextBuffer*, obj)
108 #define SHIKI_BUFFER_BOX(ptr) Scm_MakeForeignPointer(ShikiBufferClass, ptr)
109
110 /* C API */
111 GtkTextBuffer *Shiki_new_buffer_create(gchar *filename);
112 gchar *Shiki_buffer_substring(gint start, gint end);
113 void Shiki_delete_region(gint start, gint end);
114 gint Shiki_point();
115 gint Shiki_point_max();
116 gint Shiki_point_min();
117 void Shiki_goto_char(gint offset);
118 void Shiki_forward_char();
119 void Shiki_backward_char();
120 void Shiki_goto_line(gint line);
121 void Shiki_goto_bol();
122 void Shiki_goto_eol();
123 void Shiki_forward_line(gint count);
124 const gchar *Shiki_buffer_name(GtkTextBuffer *buffer);
125 GtkTextBuffer *Shiki_get_next_buffer(GtkTextBuffer *buffer);
126 GtkTextBuffer *Shiki_get_previous_buffer(GtkTextBuffer *buffer);
127 ScmObj Shiki_buffer_list();
128 gboolean Shiki_deleted_buffer_p(GtkTextBuffer *buffer);
129 void Shiki_erase_buffer(GtkTextBuffer *buffer);
130 void Shiki_delete_buffer(GtkTextBuffer *buffer);
131 GtkTextBuffer *Shiki_find_buffer(const gchar *name);
132 const gchar *Shiki_file_name_dialog(const gchar *msg);
133 gboolean Shiki_yes_or_no_p(const gchar *msg);
134 gboolean Shiki_no_or_yes_p(const gchar *msg);
135 gboolean Shiki_need_buffer_save_p(GtkTextBuffer *buffer);
136 void Shiki_kill_buffer(GtkTextBuffer *buffer);
137 void Shiki_create_file_buffer(const gchar *filename);
138 void Shiki_open_file_dialog();
139 void Shiki_update_modeline();
140 void Shiki_undo();
141 void Shiki_redo();
142 void Shiki_msgbox(const gchar *msg);
143 void Shiki_eval_expression();
144 void Shiki_eval_last_sexp();
145
146 void Shiki_search_buffer();
147 void Shiki_replace_buffer();
148
149 void Shiki_load_file(const gchar *filename);
150 #endif

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