diff options
author | 2010-06-11 18:51:16 -0400 | |
---|---|---|
committer | 2010-06-11 18:51:16 -0400 | |
commit | 8e66381a040f695f4203b28bc3f1d6818d0da7a2 (patch) | |
tree | e30e8115d27b423b579e60178f36a151dc795f50 /core/gui.lua | |
parent | 7a4800f05f26067a1cef77e5431256aab4c3d675 (diff) | |
download | textadept-8e66381a040f695f4203b28bc3f1d6818d0da7a2.tar.gz textadept-8e66381a040f695f4203b28bc3f1d6818d0da7a2.zip |
Removed _G.textadept.
Created new _SCINTILLA core module.
Renamed textadept.constants to _SCINTILLA.constants
Renamed textadept.buffer_functions to _SCINTILLA.functions
Renamed textadept.buffer_properties to _SCINTILLA.properties
Created new gui core module.
Renamed textadept._print() to gui._print().
Renamed textadept.check_focused_buffer() to gui.check_focused_buffer().
Renamed textadept.clipboard_text to gui.clipboard_text.
Renamed textadept.context_menu to gui.context_menu
Renamed textadept.command_entry to gui.command_entry.
Renamed textadept.dialog to gui.dialog.
Renamed textadept.docstatusbar_text to gui.docstatusbar_text.
Renamed textadept.find to gui.find.
Renamed textadept.focused_doc_pointer to gui.focused_doc_pointer.
Renamed textadept.get_split_table() to gui.get_split_table().
Renamed textadept.gtkmenu() to gui.gtkmenu().
Renamed textadept.goto_view() to gui.goto_view().
Renamed textadept.menubar to gui.menubar.
Renamed textadept.print() to gui.print().
Renamed textadept.size to gui.size.
Renamed textadept.statusbar_text to gui.statusbar_text.
Renamed textadept.switch_buffer() to gui.switch_buffer().
Renamed textadept.title to gui.title.
Renamed textadept.buffers to _G._BUFFERS.
Renamed textadept.new_buffer() to _G.new_buffer().
Renamed textadept.quit() to _G.quit().
Renamed textadept.reset() to _G.reset().
Renamed textadept.views to _G._VIEWS.
Renamed textadept.user_dofile() to _G.user_dofile().
Renamed textadept.iconv to string.iconv.
Renamed textadept.session_file to _SESSIONFILE.
Renamed appropriate C functions.
Diffstat (limited to 'core/gui.lua')
-rw-r--r-- | core/gui.lua | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/core/gui.lua b/core/gui.lua new file mode 100644 index 00000000..e317ecd6 --- /dev/null +++ b/core/gui.lua @@ -0,0 +1,72 @@ +-- Copyright 2007-2010 Mitchell mitchell<att>caladbolg.net. See LICENSE. + +local gui = _G.gui + +-- LuaDoc is in core/.gui.lua. +function gui.check_focused_buffer(buffer) + if type(buffer) ~= 'table' or not buffer.doc_pointer then + error(locale.ERR_BUFFER_EXPECTED, 2) + elseif gui.focused_doc_pointer ~= buffer.doc_pointer then + error(locale.ERR_BUFFER_NOT_FOCUSED, 2) + end +end + +-- LuaDoc is in core/.gui.lua. +function gui._print(buffer_type, ...) + local function safe_print(...) + local message = table.concat({...}, '\t') + local message_buffer, message_buffer_index + local message_view, message_view_index + for index, buffer in ipairs(_BUFFERS) do + if buffer._type == buffer_type then + message_buffer, message_buffer_index = buffer, index + for jndex, view in ipairs(_VIEWS) do + if view.doc_pointer == message_buffer.doc_pointer then + message_view, message_view_index = view, jndex + break + end + end + break + end + end + if not message_view then + local _, message_view = view:split(false) -- horizontal split + if not message_buffer then + message_buffer = new_buffer() + message_buffer._type = buffer_type + events.emit('file_opened') + else + message_view:goto_buffer(message_buffer_index, true) + end + else + gui.goto_view(message_view_index, true) + end + message_buffer:append_text(message..'\n') + message_buffer:set_save_point() + end + pcall(safe_print, ...) -- prevent endless loops if this errors +end + +-- LuaDoc is in core/.gui.lua. +function gui.print(...) gui._print(locale.MESSAGE_BUFFER, ...) end + +-- LuaDoc is in core/.gui.lua. +function gui.switch_buffer() + local items = {} + for _, buffer in ipairs(_BUFFERS) do + local filename = buffer.filename or buffer._type or locale.UNTITLED + local dirty = buffer.dirty and '*' or '' + items[#items + 1] = dirty..filename:match('[^/\\]+$') + items[#items + 1] = filename + end + local out = + gui.dialog('filteredlist', + '--title', locale.SWITCH_BUFFERS, + '--button1', 'gtk-ok', + '--button2', 'gtk-cancel', + '--no-newline', + '--columns', 'Name', 'File', + '--items', unpack(items)) + local i = tonumber(out:match('%-?%d+$')) + if i and i >= 0 then view:goto_buffer(i + 1, true) end +end |