I started trying to make scintilla work on a GTK app.
I am on linux (UBUNTU 20.10)
So I recovered scintilla and I compiled it (without any problem)
I installed 'libscintilla.so' in the directory of my application 'application / lib /'
Code: Select all
'--------------------------------------------------------------------------
#include once "gtk/gtk3.bi"
#include once "gdk/gdk3.bi"
'--------------------------------------------------------------------------
#libpath "lib/"
'#inclib "lexilla"
#inclib "scintilla"
'--------------------------------------------------------------------------
#include once "include/scintilla_defines.bi"
#include once "include/scintilla.bi"
'--------------------------------------------------------------------------
#define UNUSE_ATTR __attribute__((unused))
#define SSM(m, w, l) scintilla_send_message(sci, (m), (w), (l))
SUB sci_setup(sci as ScintillaObject ptr)
'scintilla_set_id(sci, 0)
'SSM(SCI_SETCODEPAGE, SC_CP_UTF8, 0)
'SSM(SCI_SETIMEINTERACTION, SC_IME_WINDOWED, 0)
''SSM(SCI_SETIMEINTERACTION, SC_IME_INLINE, 0)
'SSM(SCI_STYLESETCHARACTERSET, STYLE_DEFAULT, SC_CHARSET_DEFAULT)
''SSM(SCI_STYLESETFONT, STYLE_DEFAULT, (sptr_t)"Monospace")
'SSM(SCI_STYLESETFONT, STYLE_DEFAULT, cast(sptr_t, "Monospace"))
'SSM(SCI_STYLESETSIZEFRACTIONAL, STYLE_DEFAULT, 11*SC_FONT_SIZE_MULTIPLIER)
'SSM(SCI_STYLECLEARALL, 0, 0)
'SSM(SCI_SETTABWIDTH, 4, 0)
''// show line number margin
'SSM(SCI_SETMARGINWIDTHN, 0, (int)SSM(SCI_TEXTWIDTH, STYLE_LINENUMBER, (sptr_t)" 99"))
'' hide bookmark and selection margin
'SSM(SCI_SETMARGINWIDTHN, 1, 0)
'' word wrap
'SSM(SCI_SETWRAPMODE, SC_WRAP_WORD, 0)
'SSM(SCI_SETWRAPVISUALFLAGS, SC_WRAPVISUALFLAG_END, 0)
'SSM(SCI_SETWRAPINDENTMODE, SC_WRAPINDENT_INDENT, 0)
'SSM(SCI_SETLEXER, SCLEX_CPP, 0)
'SSM(SCI_SETKEYWORDS, 0, (sptr_t)"int char return")
'SSM(SCI_STYLESETFORE, SCE_C_PREPROCESSOR, 0x0080ff)
'SSM(SCI_STYLESETFORE, SCE_C_COMMENT, 0x008000)
'SSM(SCI_STYLESETFORE, SCE_C_COMMENTLINE, 0x008000)
'SSM(SCI_STYLESETFORE, SCE_C_NUMBER, 0x808000)
'SSM(SCI_STYLESETFORE, SCE_C_WORD, 0xff0000)
'SSM(SCI_STYLESETFORE, SCE_C_STRING, 0x800080)
'SSM(SCI_STYLESETBOLD, SCE_C_OPERATOR, TRUE)
'SSM(SCI_SETPROPERTY, (uptr_t)"styling.within.preprocessor", (sptr_t)"1")
'SSM(SCI_INSERTTEXT, 0, (sptr_t)
'"#include <gtk/gtk.h>\n"
'"\n"
'"int main(int argc, char **argv) {\n"
'" // show GTK version\n"
'" printf(\"GTK %d.%d.%d\\n\", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);\n"
'" return 0;\n"
'"}\n"
'"\n"
')
'char buf[128]
'int length = snprintf(buf, sizeof(buf) - 1, "// GTK %d.%d.%d\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION)
'SSM(SCI_APPENDTEXT, length, (sptr_t)buf)
END SUB
FUNCTION exit_app(widget as GtkWidget ptr, _
event_ as GdkEvent ptr, _
user_data as gpointer) AS boolean
gtk_main_quit()
RETURN false
END FUNCTION
gtk_init(NULL, NULL)
dim as GtkWidget ptr win
dim as GtkWidget ptr editor
win = gtk_window_new(GTK_WINDOW_TOPLEVEL)
g_signal_connect(G_OBJECT(win), "delete_event", G_CALLBACK(@exit_app), NULL)
gtk_window_set_title(GTK_WINDOW(win), "Scintilla GTK Test")
gtk_window_set_default_size(GTK_WINDOW(win), 500, 300)
editor = scintilla_new()
gtk_container_add(GTK_CONTAINER(win), editor)
'sci_setup(SCINTILLA(editor))
gtk_widget_show_all(win)
gtk_widget_grab_focus(editor)
gtk_main()
end 0
successful compilation
but when i execute the program
library name problem?./testscintilla: error while loading shared libraries: libscintilla.so: cannot open shared object file: No such file or directory
------------------
(program exited with code: 127)
Press return to continue
directory?
way?
other library?
other?
Thank you in advance for your help