terminology/THEMES.md

328 lines
8.0 KiB
Markdown
Raw Normal View History

2020-11-22 03:26:14 -08:00
# Themes in Terminology
This document describes how Terminology interacts with themes and what needs
to be handled by themes.
See `ChangeLog.theme` on changes related to themes.
2020-11-22 03:26:14 -08:00
# Color classes
2020-11-22 03:26:14 -08:00
Based on the chosen color scheme, Terminology sets the following color classes
on all the following edje groups:
* `BG`: the background color of the terminal
* `FG`: the default foreground color
* `CURSOR`: the color of the cursor
* `GLOW`: the color in the UI to ouline elements
* `HIGHLIGHT`: the color used as main color when an elemeent is highlighted
* `GLOW_TXT`: text colors with some glow
* `GLOW_TXT_HIGHLIGHT`: text with glow that is highlighted
* `END_SELECTION`: on selections, the color of the handles used to expand or shrink
the area of the selection
* `TAB_MISSED`: the number of tabs where a bell has rung, tabs that need
attention
* `TAB_MISSED_OVER`: same but when the mouse is over that number
* `TAB_TITLE`: the colors of the active tab title
* `BG_SENDFILE` is the background color when there is a sendfile action. See
`man tysend`. It is set to `#404040`.
The following table explains how color classes are set from color scheme
values:
| Color Class | Object color | Outline color | Shadow color |
| -------------------- | ---------------- | ---------------- | ------------- |
| `BG` | `Colors.bg` | `Colors.bg` | `Colors.bg` |
| `FG` | `Normal.def` | `Normal.def` | `Normal.def` |
| `CURSOR` | `Colors.main` | `Colors.main` | `Colors.main` |
| `GLOW` | `Colors.main` | `Colors.main` | `Colors.main` |
| `GLOW_TXT_HIGHLIGHT` | `Colors.hl` | `Colors.main` | `Colors.main` |
| `END_SELECTION` | `Colors.end_sel` | `Colors.end_sel` | `Colors.end_sel` |
| `TAB_MISSED` | `Colors.tab_missed_1` | `Colors.tab_missed_2` | `Colors.tab_missed_3` |
| `TAB_MISSED_OVER` | `Colors.tab_missed_1` | `Colors.tab_missed_2` | `Colors.tab_missed_3` |
| `TAB_TITLE` | `Normal.def` | `Colors.tab_title_2` | `Colors.bg` |
| `BG_SENDFILE` | `#404040` | `#404040` | `#404040` |
2020-11-22 03:26:14 -08:00
Let's dive into the edje groups that Terminology uses.
# `terminology/base`
2020-11-22 03:26:14 -08:00
Windows contain group `terminology/base`.
Contains what is global to a window.
## Swallowed parts
### `terminology.content`
where `terminology/background`, or a split widget can be swallowed.
### `terminology.cmdbox`
To swallow a command box.
It reacts to the following signals:
* `cmdbox,show`
* `cmdbox,hide`
### `terminology.about`
It reacts to the following signals:
* `about,show`
* `about,hide`
### `terminology.optdetails`
Detailed settings panel.
It reacts to the following signals:
* `optdetails,show`
* `optdetails,hide`
It emits the following signal:
* `optdetails,hide,done`
### `terminology.options`
It reacts to the following signals:
* `options,show`
* `options,hide`
### `terminology.controls`
The controls box shown on right click.
It reacts to the following signals:
* `controls,show`
* `controls,hide`
## Special parts
### `youtube.txt`
A text part used to hold `Youtube channel` when the About is shown.
### `twitter.txt`
A text part used to hold `Youtube channel` when the About is shown.
## Signals emitted
### `about,twitter`
When the Twitter link on the About page is clicked.
### `about,twitter,ctx`
When the Twitter link on the About page is right-clicked.
### `about,youtube`
When the Youtube link on the About page is clicked.
### `about,youtube,ctx`
When the Youtube link on the About page is right-clicked.
### `optdetails,hide,done`
When the swallowed part `terminology.optdetails` is finally hidden.
## Signals received
### `about,show` and `about,hide`
Used to hide or show the about page, swallowed in `terminology.about`.
### `controls,show` and `controls,hide`
Used to hide or show the controls, swallowed in `terminology.controls`.
### `options,show` and `options,hide`
Used to hide or show the options panel, swallowed in `terminology.options`.
### `optdetails,show` and `optdetails,hide`
Used to hide or show the options details settings panel, swallowed in `terminology.optdetails`.
### `cmdbox,show` and `cmdbox,hide`
Used to hide or show the command box, swallowed in `terminology.cmdbox`.
# `terminology/background`
## Swallowed parts
### `terminology.content`
Here is swallowed an object of group `terminology.background`.
2020-02-07 11:09:27 -08:00
### TODO
## Special parts
### `tabdrag` and `tabmiddle`
Their geometry are used to adjust drag values.
### `drag_left_outline`, `drag_right_outline`, `drag_top_outline`, `drag_bottom_outline` and `terminology.tabregion`
Their geometry are used to know when the cursor enters them when dragging a
tab.
2020-02-07 11:09:27 -08:00
## Signal received
### `tabbar,off` and `tabbar,on`
Whether to display a tab bar. Default is off.
### `tab_btn,off` and `tab_btn,on`
Whether to display a tab button to easily navigate through tabs. Default is off.
### `drag_left,on`, `drag_right,on`, `drag_top,on`, `drag_bottom,on`
When to start an animation when the cursor enters `drag_XXXX_outline` while
dragging a tab.
### `drag_left,off`, `drag_right,off`, `drag_top,off`, `drag_bottom,off`
When to stop an animation started by the related `*,on` signals.
### `drag_over_tabs,on` and `drag_over_tabs,off`
When the mouse, while dragging a tab, enters or leaves the tab region.
2020-04-13 11:27:35 -07:00
### `grouped,on` and `grouped,off`
When input is broadcast to multiple terminals.
2020-02-07 11:09:27 -08:00
### TODO
## Signal emitted
### `tab,hdrag`
To notify that the current tab is being dragged.
### `tab,drag,stop`
To notify that the current tab is no longer being dragged.
### `tab,drag,move`
To notify that the current tab is being dragged outside of other tabs.
### TODO
# `terminology/core`
## Swallowed parts
### `terminology.background`
Actual background.
It reacts to the following signals based on the media to play in background:
* `media,off`
* `media,image`
* `media,scale`
* `media,edje`
* `media,movie`
### `terminology.tabregion`
Here is swalloed a fully transparent rectangle to move down the textgrid.
### `terminology.content`
Where actual text grid goes.
## Signal received
### `tabbar,off` and `tabbar,on`
Whether to display a tab bar. Default is off.
### `tab_btn,off` and `tab_btn,on`
Whether to display a tab button to easily navigate through tabs. Default is off.
2020-02-07 11:09:27 -08:00
### `hdrag,on` and `hdrag,off`
Whether to restrict (default) horizontal tab drag
## Signal emitted
2020-02-07 11:09:27 -08:00
### `tab,drag` and `tab,drag,stop`
To notify that the current tab is being dragged.
2020-02-25 12:32:28 -08:00
### `tab,mouse,down`
2020-02-07 11:09:27 -08:00
Whenever the left mouse button is pressed on a tab.
# `terminology/about`
## Text parts
### `terminology.text`
The text of the __About__ message.
# `terminology.tabbar_back`
An inactive tab item
## Text parts
### `terminology.title`
Title of the tab.
## Signal emitted
### `tab,activate`
When clicked on it, to notify that the user wants to go to that tab.
## Signal received
### `bell`
To mark the tab as having missed a bell.
### `bell,off`
To unmark the tab as having missed a bell.
2020-04-14 13:06:53 -07:00
### `grouped,on` and `grouped,off`
When input is broadcast to multiple terminals.
# `terminology/keybinding`
__TODO__
# `terminology/miniview`
__TODO__
# `terminology/fontpreview`
__TODO__
# `terminology/selection`
An object used when selecting text.
__TODO__
# `terminology/cursor`
__TODO__
# `terminology/cursor_bar`
__TODO__
# `terminology/cursor_underline`
__TODO__
# `terminology/sel/base`
__TODO__
# `terminology/sel/item`
__TODO__
# `terminology/link`
An object overlayd on text that is a link.
# `terminology/mediabusy`
__TODO__
# `terminology/mediactrl`
__TODO__
# `terminology/tab_drag_thumb`
A thumbnail of a tab being dragged.
## Swallowed parts
### `terminology.content`
Here is swallowed an object of group `terminology.background`.
### `terminology.title`
Title of the tab.
## Signal received
### `bell`
To mark the tab as having missed a bell.
# `terminology/color_preview`
A group to preview a color in a tooltip. The color is defined by the color
class `color_preview`.
## Swallowed part
### `name`
Name of the color being previewed