mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[experimental UI] introduce default anchor state - NONE
GitOrigin-RevId: 41f7e503e11137afa3c8b0083747dd46ece1235c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
694039c589
commit
ca0ca6e53b
@@ -228,6 +228,8 @@ action.text.anchor.left=left
|
||||
action.text.anchor.left.capitalized=Left
|
||||
action.text.anchor.right=right
|
||||
action.text.anchor.right.capitalized=Right
|
||||
action.text.anchor.none=none
|
||||
action.text.anchor.none.capitalized=None
|
||||
|
||||
checkbox.tree.accessible.name.checked=checked
|
||||
checkbox.tree.accessible.name.not.checked=not checked
|
||||
|
||||
@@ -16,6 +16,8 @@ public final class ToolWindowAnchor {
|
||||
public static final @NotNull ToolWindowAnchor LEFT = new ToolWindowAnchor("left", "action.text.anchor.left", "action.text.anchor.left.capitalized");
|
||||
public static final @NotNull ToolWindowAnchor BOTTOM = new ToolWindowAnchor("bottom", "action.text.anchor.bottom", "action.text.anchor.bottom.capitalized");
|
||||
public static final @NotNull ToolWindowAnchor RIGHT = new ToolWindowAnchor("right", "action.text.anchor.right", "action.text.anchor.right.capitalized");
|
||||
public static final @NotNull ToolWindowAnchor NONE = new ToolWindowAnchor("none", "action.text.anchor.none", "action.text.anchor.none.capitalized");
|
||||
|
||||
private final @NotNull String myText;
|
||||
|
||||
private final @NotNull String bundleKey;
|
||||
|
||||
@@ -1079,7 +1079,9 @@ open class ToolWindowManagerImpl(val project: Project) : ToolWindowManagerEx(),
|
||||
button.isSelected = windowInfoSnapshot.isVisible
|
||||
button.updatePresentation()
|
||||
addStripeButton(button, toolWindowPane.getStripeFor((contentFactory as? ToolWindowFactoryEx)?.anchor ?: info.anchor))
|
||||
toolWindow.largeStripeAnchor = button.toolWindow.largeStripeAnchor
|
||||
|
||||
toolWindow.largeStripeAnchor = if (toolWindow.largeStripeAnchor == ToolWindowAnchor.NONE) task.anchor else toolWindow.largeStripeAnchor
|
||||
|
||||
// If preloaded info is visible or active then we have to show/activate the installed
|
||||
// tool window. This step has sense only for windows which are not in the auto hide
|
||||
// mode. But if tool window was active but its mode doesn't allow to activate it again
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ open class ToolWindowToolbarProvider {
|
||||
*
|
||||
* Please ensure that registered toolwindow anchor matches [anchor].
|
||||
*/
|
||||
open fun defaultBottomToolwindows(project: Project, anchor: ToolWindowAnchor) =
|
||||
open fun defaultToolWindows(project: Project, anchor: ToolWindowAnchor) =
|
||||
when (anchor) {
|
||||
LEFT -> listOf("Project", "Commit", "Structure")
|
||||
BOTTOM -> listOf("Version Control", "Problems View", "Terminal", "Event Log")
|
||||
|
||||
@@ -613,7 +613,7 @@ public final class ToolWindowsPane extends JBLayeredPane implements UISettingsLi
|
||||
|
||||
ensureDefaultInitialized(project);
|
||||
|
||||
var largeStripeAnchor = setupDefaultLargeStripeAnchor(toolWindow);
|
||||
var largeStripeAnchor = setupDefaultLargeStripeAnchor(toolWindow, anchor);
|
||||
if (largeStripeAnchor != null) anchor = largeStripeAnchor;
|
||||
|
||||
windowInfo.setLargeStripeAnchor(anchor);
|
||||
@@ -629,8 +629,7 @@ public final class ToolWindowsPane extends JBLayeredPane implements UISettingsLi
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private ToolWindowAnchor setupDefaultLargeStripeAnchor(@NotNull ToolWindow toolWindow) {
|
||||
ToolWindowAnchor toolWindowAnchor = toolWindow.getAnchor();
|
||||
private ToolWindowAnchor setupDefaultLargeStripeAnchor(@NotNull ToolWindow toolWindow, @NotNull ToolWindowAnchor toolWindowAnchor) {
|
||||
if (toolWindowAnchor == ToolWindowAnchor.LEFT && myDefaultLeftButtons.contains(toolWindow.getId())
|
||||
|| toolWindowAnchor == ToolWindowAnchor.RIGHT && myDefaultRightButtons.contains(toolWindow.getId())
|
||||
|| toolWindowAnchor == ToolWindowAnchor.BOTTOM && myDefaultBottomButtons.contains(toolWindow.getId())) {
|
||||
@@ -646,9 +645,9 @@ public final class ToolWindowsPane extends JBLayeredPane implements UISettingsLi
|
||||
return;
|
||||
}
|
||||
|
||||
myDefaultLeftButtons = ToolWindowToolbarProvider.getInstance().defaultBottomToolwindows(project, ToolWindowAnchor.LEFT);
|
||||
myDefaultRightButtons = ToolWindowToolbarProvider.getInstance().defaultBottomToolwindows(project, ToolWindowAnchor.RIGHT);
|
||||
myDefaultBottomButtons = ToolWindowToolbarProvider.getInstance().defaultBottomToolwindows(project, ToolWindowAnchor.BOTTOM);
|
||||
myDefaultLeftButtons = ToolWindowToolbarProvider.getInstance().defaultToolWindows(project, ToolWindowAnchor.LEFT);
|
||||
myDefaultRightButtons = ToolWindowToolbarProvider.getInstance().defaultToolWindows(project, ToolWindowAnchor.RIGHT);
|
||||
myDefaultBottomButtons = ToolWindowToolbarProvider.getInstance().defaultToolWindows(project, ToolWindowAnchor.BOTTOM);
|
||||
|
||||
PropertiesComponent.getInstance(project).setValue(key, true);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ class WindowInfoImpl : Cloneable, WindowInfo, BaseState() {
|
||||
override var anchor by property(ToolWindowAnchor.LEFT) { it == ToolWindowAnchor.LEFT }
|
||||
|
||||
@get:Attribute(converter = ToolWindowAnchorConverter::class)
|
||||
override var largeStripeAnchor by property(ToolWindowAnchor.LEFT) { it == ToolWindowAnchor.LEFT }
|
||||
override var largeStripeAnchor by property(ToolWindowAnchor.NONE) { it == ToolWindowAnchor.NONE }
|
||||
|
||||
@get:Attribute("visibleOnLargeStripe")
|
||||
override var isVisibleOnLargeStripe by property(false)
|
||||
|
||||
Reference in New Issue
Block a user