Maxime Coste
3987463e75
Remove direct access to ui, go through client
...
Client can now update menu/info positions when the window move
around.
2016-02-27 17:23:13 +00:00
Maxime Coste
5e4f5cd2a0
Move enum option handling in enum.hh and refactor enum options
2015-11-20 09:06:53 +00:00
Maxime Coste
6840f7ce9c
Store the last used buffer in clients
...
Fixes #474
2015-11-07 18:25:49 +00:00
Maxime Coste
693d9a4861
Store key hash in IdMap
2015-09-16 20:02:12 +01:00
Maxime Coste
ae839fc471
Remove Client::window() method, use a force_redraw() one
...
We cannot assume Client::m_window is always non-null, as when
changing current buffer its temporarily null, at the point
where WinCreate hook might get called.
Fixes #382
2015-08-23 13:29:24 +01:00
Maxime Coste
3c1a325b6f
Refactor String, use a common StringOps interface, hide std::string
2015-03-10 19:50:22 +00:00
Maxime Coste
224f73d72a
Cleanup and refactor externally modified buffer reloading
...
* Correctly hide the reload dialog in every client.
* Correctly handle buffer being deleted.
2015-02-12 19:18:03 +00:00
Maxime Coste
2a878d51fd
Even more memory tracking
2015-01-14 19:16:32 +00:00
Maxime Coste
83d0813b0f
Yet more tracking
2015-01-12 13:45:44 +00:00
Maxime Coste
5b94b73152
Small code tweak
2014-12-20 18:40:17 +00:00
Maxime Coste
a3b3001d8f
Rework client pending key handling, fix insert/normal timers
2014-11-29 20:14:52 +00:00
Maxime Coste
49931fbf05
Separate events between normal and urgent ones
...
Run urgent ones while executing %sh blocks.
Fixes #236
2014-11-25 13:52:06 +00:00
Maxime Coste
3a817e2f96
Cleanup includes
2014-11-12 21:27:07 +00:00
Maxime Coste
b2407d9dfa
Add ui_options option for UserInterface configuration
...
ui_options is a std::unordered_map<String, String> that gets
forwarded to the user interface. Add support ncurses_status_on_top.
2014-11-10 23:29:16 +00:00
Maxime Coste
2204b7cf06
Defer deletion of buffers to after the event loop
...
We can have SelectionList in flights on the buffer, so mark
it for deletion by moving it in a buffer trash, and effectively
delete it later, at a point where there should not be any further
access to it.
2014-08-12 19:24:09 +01:00
Maxime Coste
e2b3dd0ca4
Tweak client redraw logic, avoid highlight if only status line changed
2014-08-12 19:19:46 +01:00
Maxime Coste
d356ae2419
Make safe_ptr able to track callstacks
...
The code stays disabled, as the performance penalty is quite
high, but can be enabled to help debugging safe pointers.
2014-08-12 19:18:10 +01:00
Maxime Coste
55866b51d7
Fix redrawing of windows when only the status line changes
2014-07-07 23:56:17 +01:00
Maxime Coste
203a7732f5
Add support for querying client environement variables
...
At connection, a remote client sends all its environement to the
server, which then provides access to client env through
kak_client_env_VAR_NAME variables in the shell.
2014-04-07 23:47:51 +01:00
Maxime Coste
c0973075fa
Get rid of Editor for good
...
ClientManager now stores only the free windows, clients take
ownership of its own.
2013-12-20 20:14:57 +00:00
Maxime Coste
8c25d62056
extract InputHandler to input_handler.{cc,hh}
2013-11-14 21:12:59 +00:00
Maxime Coste
f8cadc0c57
move Client::m_name to context, no more need for DraftUI
2013-11-14 20:51:25 +00:00
Maxime Coste
ad275d1d1c
Extract InputHandler from Client
2013-11-14 18:09:15 +00:00
Maxime Coste
03c74b7a88
Detect file external modification and ask the user whether to reload or not
...
* Buffer now store a m_fs_timestamp field.
* Client in Normal mode checks current buffer file every 500 ms, or
each time it goes back to Normal mode.
2013-10-15 18:51:31 +01:00
Maxime Coste
fe0a4f0d11
Reset normal mode when changing the current editor
2013-10-15 18:50:43 +01:00
Maxime Coste
c478a97a2f
Let InputModes describe themselves for status line display
2013-10-11 00:17:21 +01:00
Maxime Coste
560e3397e8
minor cleanup
2013-09-27 19:24:18 +01:00
Maxime Coste
7fef7ec063
Add a InputMode::on_replaced virtual method.
...
Destructors are not a good place to run mode exit hooks, as they
wont be called until the next mode trash clearing, so we now call
this virtual method on the previous mode just before it gets replaced.
2013-09-16 19:38:28 +01:00
Maxime Coste
06e06d6ea6
remove print_status from UserInterface, pass status line to draw
...
Client store the current status line. This way calls to print status
do not force the user interface to display directly.
2013-09-16 19:15:13 +01:00
Maxime Coste
49903523a7
Resurect Client::handle_available_input()
2013-09-16 18:48:41 +01:00
Maxime Coste
27a1e70b01
Rework client name change
2013-09-13 00:01:47 +02:00
Maxime Coste
823812fd1a
rename InputHandler to Client
2013-09-12 23:47:23 +02:00
Maxime Coste
4aa3a36102
rename Client to InputHandler
2012-10-17 13:14:03 +02:00
Maxime Coste
a2fd1528e6
Move last insertion from Client to Context
2012-09-26 20:07:06 +02:00
Maxime Coste
efc069b531
Extract IncrementalInserter::Mode as InsertMode
...
move ClientMode classes in a namespace due to InsertMode name collisions
2012-09-26 14:22:24 +02:00
Maxime Coste
f76323f56e
Move UserInterface out of Client into Context
2012-09-26 14:13:04 +02:00
Maxime Coste
747c14c19f
Hide more Client Mode code in the cpp
2012-09-24 19:39:40 +02:00
Maxime Coste
a312ce6dc2
extract Client virtual methods to a UserInterface class
2012-09-24 19:24:27 +02:00
Maxime Coste
0380c999c3
move Client::Mode class definition in client.cc
2012-09-24 14:03:04 +02:00
Maxime Coste
16e1c2daf9
simplify menu api
2012-09-05 19:02:06 +02:00
Maxime Coste
bf42d77469
Handle inserting in Client::InsertMode
2012-09-05 14:27:14 +02:00
Maxime Coste
b23425764e
Add client::on_next_key method to run some code when the next key arrives
2012-09-05 00:21:19 +02:00
Maxime Coste
57b89099ec
Client::MenuMode wrap through options with j/k Ctrl-n/Ctrl-p and tab
2012-09-04 00:02:50 +02:00
Maxime Coste
c61f9cbe6b
Add MenuCommand::SelectNone and use it when tab completions goes back to original string
2012-09-03 19:34:10 +02:00
Maxime Coste
b08d8719e6
move input handling, including menu and prompt, to the Client class
2012-09-03 14:22:02 +02:00
Maxime Coste
96a50e9b7d
NCurses: use menu for tab completion
2012-08-31 14:14:16 +02:00
Maxime Coste
51e80558d9
Change client menu api to give more control to the caller
2012-08-30 21:53:22 +02:00
Maxime Coste
1ca502d23d
More useable menu implementation on ncurses
2012-08-30 21:14:28 +02:00
Maxime Coste
c1fcc593a1
Store the current client in context
2012-08-15 22:36:45 +02:00
Maxime Coste
4dc9973288
Registers need a context to return their values
2012-08-05 20:13:41 +02:00