|
@@ -3,6 +3,7 @@
|
|
|
[frontend.components.svg :as svg]
|
|
|
[frontend.context.i18n :refer [t]]
|
|
|
[frontend.state :as state]
|
|
|
+ [frontend.ui :as ui]
|
|
|
[rum.core :as rum]))
|
|
|
|
|
|
(defn minimize
|
|
@@ -17,24 +18,35 @@
|
|
|
[]
|
|
|
(ipc/ipc "window-close"))
|
|
|
|
|
|
+(defn toggle-fullscreen
|
|
|
+ []
|
|
|
+ (ipc/ipc "window-toggle-fullscreen"))
|
|
|
+
|
|
|
(rum/defc container < rum/reactive
|
|
|
[]
|
|
|
- (let [maximized? (state/sub :electron/window-maximized?)]
|
|
|
+ (let [maximized? (state/sub :electron/window-maximized?)
|
|
|
+ fullscreen? (state/sub :electron/window-fullscreen?)]
|
|
|
[:div.window-controls.flex
|
|
|
- [:button.button.icon.minimize
|
|
|
- {:title (t :window/minimize)
|
|
|
- :on-click minimize}
|
|
|
- (svg/window-minimize)]
|
|
|
+ (if fullscreen?
|
|
|
+ [:button.button.icon.fullscreen-toggle
|
|
|
+ {:title (t :window/exit-fullscreen)
|
|
|
+ :on-click toggle-fullscreen}
|
|
|
+ (ui/icon "arrows-minimize")]
|
|
|
+ [:<>
|
|
|
+ [:button.button.icon.minimize
|
|
|
+ {:title (t :window/minimize)
|
|
|
+ :on-click minimize}
|
|
|
+ (svg/window-minimize)]
|
|
|
|
|
|
- [:button.button.icon.maximize-toggle
|
|
|
- {:title (if maximized? (t :window/restore) (t :window/maximize))
|
|
|
- :class (if maximized? "restore" "maximize")
|
|
|
- :on-click toggle-maximized}
|
|
|
- (if maximized?
|
|
|
- (svg/window-restore)
|
|
|
- (svg/window-maximize))]
|
|
|
+ [:button.button.icon.maximize-toggle
|
|
|
+ {:title (if maximized? (t :window/restore) (t :window/maximize))
|
|
|
+ :class (if maximized? "restore" "maximize")
|
|
|
+ :on-click toggle-maximized}
|
|
|
+ (if maximized?
|
|
|
+ (svg/window-restore)
|
|
|
+ (svg/window-maximize))]
|
|
|
|
|
|
- [:button.button.icon.close
|
|
|
- {:title (t :window/close)
|
|
|
- :on-click close}
|
|
|
- (svg/window-close)]]))
|
|
|
+ [:button.button.icon.close
|
|
|
+ {:title (t :window/close)
|
|
|
+ :on-click close}
|
|
|
+ (svg/window-close)]])]))
|