2 * This file is part of gtkD.
4 * gtkD is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; either version 2.1 of the License, or
7 * (at your option) any later version.
9 * gtkD 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. See the
12 * GNU Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with gtkD; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 module sourceView
.SVTest
;
22 private import gtk
.MainWindow
;
23 private import gtk
.GtkD
;
24 private import gtk
.ScrolledWindow
;
25 private import gtk
.Widget
;
27 private import glib
.ListSG
;
29 private import gsv
.SourceView
;
30 private import gsv
.SourceBuffer
;
31 private import gsv
.SourceLanguage
;
32 private import gsv
.SourceLanguagesManager
;
34 private import gsvc
.gsvtypes
;
36 private import gsv
.SourceBuffer
;
38 private import std
.stdio
;
39 private import std
.file
;
43 * Demos for SourceView.
44 * TODO on gsv: override methods from TextView, TextBuffer, etc
47 class HelloWorld
: MainWindow
50 SourceView sourceView
;
54 super("GtkD SourceView");
57 setDefaultSize(640,400);
61 private char[] getDemoText()
66 version(Win32
) text
= cast(char[])std
.file
.read("demos\\sourceView\\SVTest.d");
67 else text
= cast(char[])std
.file
.read("demos/sourceView/SVTest.d");
69 catch ( FileException fe
)
76 private Widget
getSourceView()
78 sourceView
= new SourceView();
79 sourceView
.setShowLineNumbers(true);
81 sourceView
.setInsertSpacesInsteadOfTabs(false);
82 sourceView
.setTabsWidth(4);
83 sourceView
.setHighlightCurrentLine(true);
85 SourceBuffer sb
= sourceView
.getBuffer();
86 sb
.setText(getDemoText());
88 ScrolledWindow scWindow
= new ScrolledWindow();
89 scWindow
.add(sourceView
);
92 SourceLanguagesManager slm
= new SourceLanguagesManager();
93 ListSG list
= slm
.getAvailableLanguages();
95 writefln("%s available languages", list
.length());
99 for(int i
=0 ; i
<list
.length() ; i
++ )
101 SourceLanguage sl
= new SourceLanguage(cast(GtkSourceLanguage
*)list
.nthData(i
));
102 char[] name
= sl
.gtkSourceLanguageGetName();
107 writefln("\t[%s] %s", i
, name
);
111 if ( dLang
!is null )
113 writefln("Setting language to D");
114 sb
.setLanguage(dLang
);
115 sb
.setHighlight(true);
118 //sourceView.modifyFont("Courier", 9);
119 sourceView
.setMargin(72);
120 sourceView
.setShowMargin(true);
121 sourceView
.setAutoIndent(true);
128 private import gtkc
.Loader
;
130 void main(char[][] args
)