summary refs log tree commit diff stats
path: root/widgets/aerc.go
Commit message (Collapse)AuthorAgeFilesLines
* Add clickable tabsJeffas2019-07-111-0/+2
| | | | | | | | | | | This introduces a new interface `Clickable`. I'd imagine this would be implemented for most widgets eventually and would allow for programs run in the terminal to also have their mouse events forwarded to them. For the tabs it was relatively simple to check that the position of the click is within the boxes for the tabs. For other components I'd imagine that some state representing their currently drawn bounding box would be useful.
* Implement basic tab completion supportGregory Mullen2019-06-291-1/+5
| | | | | Tab completion currently only works on commands. Contextual completion will be added in the future.
* Fix Cc & Bcc handling in repliesDrew DeVault2019-06-211-0/+4
|
* lib/ui/tab: Add Replace methodKevin Kuehler2019-06-111-0/+4
| | | | | | Also expose a light wrapper method in aerc.go for tab replacement Signed-off-by: Kevin Kuehler <kkuehler@brave.com>
* Add :save and :pipe commands to viewerGalen Abell2019-05-271-0/+4
| | | | | | | | | * :save takes a path and saves the current message part to that location * :pipe is the same as pipe on the account page, but uses the current message part rather than the whole email (ie :pipe gzip -d) * Refactored account:pipe and extracted common pipe code to commands.util.QuickTerm * Added helper command aerc.PushError
* Show account wizard if no accounts configuredDrew DeVault2019-05-221-0/+6
|
* Fix always showing last account tabDrew DeVault2019-05-221-2/+2
|
* New account wizard, part oneDrew DeVault2019-05-211-0/+2
|
* Update internal state and draw from the same goroutineSimon Ser2019-05-191-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces a new Aerc.Tick function that should be called to refresh the internal state. This in turn makes each AccountView process worker events. The UI goroutine repeatedly refreshes the internal state before drawing a new frame. The reason for this is that many worker messages may need to be processed for a single frame, and drawing the UI is far slower than refreshing the internal state. This has been confirmed in my testing (calling Aerc.Tick only once per frame results in a slower display). Many synchronization code has been removed. We can now write widgets without having to care so much about races. The remaining sync users are: - widgets/spinner: the spinner value is updated from inside an internal goroutine - lib/ui/invalidatable: Invalidate may be called from any goroutine - lib/ui/grid: same - lib/ui/ui: an internal goroutine needs read access to UI.exit - worker/types/worker: Worker.callbacks is used for both worker and UI callbacks The exact goroutine requirements for Drawable have been documented.
* s/aerc2/aerc/gDrew DeVault2019-05-171-3/+3
|
* Add distinct keybindings for each compose viewDrew DeVault2019-05-141-2/+9
|
* Add initial compose widgetDrew DeVault2019-05-121-0/+2
|
* Make the message viewer real, part oneDrew DeVault2019-03-311-2/+0
|
* Add message view commands, :closeDrew DeVault2019-03-301-0/+2
|
* Add basic message viewer mockupDrew DeVault2019-03-301-12/+6
|
* Correct color of error messagesDrew DeVault2019-03-301-1/+1
|
* Use tcell.Style.Reverse instead of black on whiteDrew DeVault2019-03-301-1/+1
|
* Expire status errors on inputDrew DeVault2019-03-211-0/+9
|
* Use : for keybindings even when ex is overriddenDrew DeVault2019-03-211-3/+9
|
* Rig up terminal keybinding groupDrew DeVault2019-03-211-0/+2
|
* Use user's configured ex keyDrew DeVault2019-03-211-1/+3
|
* Add context-specific keybindingsDrew DeVault2019-03-211-8/+38
|
* Wrap Terminal in TermHostDrew DeVault2019-03-171-0/+5
|
* Add :term-closeDrew DeVault2019-03-171-0/+8
|
* Handle terminal title, login shellDrew DeVault2019-03-171-1/+0
|
* Implement :next-tab, :prev-tabDrew DeVault2019-03-171-0/+16
|
* Move exline handling up to aerc, add :termDrew DeVault2019-03-171-15/+114
|
* commands: handle case where no account selectedDrew DeVault2019-03-171-1/+5
|
* Add basic terminal widgetDrew DeVault2019-03-171-0/+4
|
* Implement sidebar-width config optionDrew DeVault2019-03-151-2/+1
|
* Rig up key bindingsDrew DeVault2019-03-151-1/+1
|
* Start building out command subsystemDrew DeVault2019-03-101-6/+8
|
* Fix buildElias Naur2019-02-101-1/+2
|
* Implement Container interface in widgets/Drew DeVault2019-01-201-0/+4
|
* Send commands up to the top-level aerc widgetDrew DeVault2019-01-141-8/+14
|
* Move ex line into accountDrew DeVault2019-01-131-40/+9
|
* Move status line into account, update behaviorDrew DeVault2019-01-131-6/+9
|
* Initialize worker in account widgetDrew DeVault2019-01-131-1/+6
|
* Add basic account widget, populate real acct viewsDrew DeVault2019-01-131-27/+4
|
* Apply gofmtDrew DeVault2018-06-121-8/+8
|
* Apply gofmtDrew DeVault2018-06-111-5/+5
|
* Move sidebar into account tabsDrew DeVault2018-06-111-16/+29
| | | | | This is accomplished through a bit of a hack, the statusbar is able to be a child of multiple dudes
* switch to tcell from termboxMarkus Ongyerth2018-06-011-13/+11
| | | | | | | | | | | | | This is a simple mostly straight forward switch to tcell in favor of termbox. It uses the tcell native api (not the compat layer) but does not make use of most features. Further changes should include moving to tcell's views.TextArea and the general built in widget behaviour instead of the current ad hoc implementation. Regression: Cursor isn't shown in ex-line
* Summon exline on demandDrew DeVault2018-02-271-11/+24
|
* Push commands to the status stackDrew DeVault2018-02-271-4/+3
|
* Pull main aerc UI into widgetDrew DeVault2018-02-271-0/+91