mirror of
https://github.com/amir1376/ab-download-manager.git
synced 2025-02-20 11:43:24 +08:00
remove IconSource/Actions from desktop module and move them to shared modules
This commit is contained in:
parent
fa752d8ab8
commit
6293a378bc
@ -4,9 +4,9 @@ import com.abdownloadmanager.desktop.AppComponent
|
|||||||
import com.abdownloadmanager.desktop.di.Di
|
import com.abdownloadmanager.desktop.di.Di
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.widget.MessageDialogType
|
import com.abdownloadmanager.desktop.ui.widget.MessageDialogType
|
||||||
import com.abdownloadmanager.desktop.utils.action.AnAction
|
import ir.amirab.util.compose.action.AnAction
|
||||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
import ir.amirab.util.compose.action.MenuItem
|
||||||
import com.abdownloadmanager.desktop.utils.action.simpleAction
|
import ir.amirab.util.compose.action.simpleAction
|
||||||
import org.koin.core.component.get
|
import org.koin.core.component.get
|
||||||
|
|
||||||
private val appComponent = Di.get<AppComponent>()
|
private val appComponent = Di.get<AppComponent>()
|
||||||
|
@ -7,10 +7,10 @@ import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
|||||||
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
||||||
import com.abdownloadmanager.desktop.utils.AppInfo
|
import com.abdownloadmanager.desktop.utils.AppInfo
|
||||||
import com.abdownloadmanager.desktop.utils.ClipboardUtil
|
import com.abdownloadmanager.desktop.utils.ClipboardUtil
|
||||||
import com.abdownloadmanager.desktop.utils.action.AnAction
|
import ir.amirab.util.compose.action.AnAction
|
||||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
import ir.amirab.util.compose.action.MenuItem
|
||||||
import com.abdownloadmanager.desktop.utils.action.buildMenu
|
import ir.amirab.util.compose.action.buildMenu
|
||||||
import com.abdownloadmanager.desktop.utils.action.simpleAction
|
import ir.amirab.util.compose.action.simpleAction
|
||||||
import com.abdownloadmanager.desktop.utils.getIcon
|
import com.abdownloadmanager.desktop.utils.getIcon
|
||||||
import com.abdownloadmanager.desktop.utils.getName
|
import com.abdownloadmanager.desktop.utils.getName
|
||||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.about
|
package com.abdownloadmanager.desktop.pages.about
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalTextStyle
|
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||||
import com.abdownloadmanager.desktop.ui.ProvideTextStyle
|
import com.abdownloadmanager.utils.compose.ProvideTextStyle
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||||
import com.abdownloadmanager.desktop.utils.AppInfo
|
import com.abdownloadmanager.desktop.utils.AppInfo
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.hoverable
|
import androidx.compose.foundation.hoverable
|
||||||
@ -29,7 +29,7 @@ import androidx.compose.ui.text.font.FontWeight
|
|||||||
import androidx.compose.ui.text.style.TextDecoration
|
import androidx.compose.ui.text.style.TextDecoration
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
@ -5,7 +5,7 @@ import com.abdownloadmanager.desktop.pages.addDownload.shared.LocationTextField
|
|||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.addDownload.multiple
|
package com.abdownloadmanager.desktop.pages.addDownload.multiple
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.addDownload.DownloadUiChecker
|
import com.abdownloadmanager.desktop.pages.addDownload.DownloadUiChecker
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.*
|
import com.abdownloadmanager.desktop.ui.widget.*
|
||||||
|
@ -5,7 +5,7 @@ import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderC
|
|||||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
||||||
import androidx.compose.foundation.*
|
import androidx.compose.foundation.*
|
||||||
|
@ -8,7 +8,7 @@ import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
|||||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||||
import com.abdownloadmanager.desktop.ui.widget.IconActionButton
|
import com.abdownloadmanager.desktop.ui.widget.IconActionButton
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
||||||
import androidx.compose.foundation.*
|
import androidx.compose.foundation.*
|
||||||
@ -23,7 +23,6 @@ import androidx.compose.ui.graphics.Brush
|
|||||||
import androidx.compose.ui.unit.DpOffset
|
import androidx.compose.ui.unit.DpOffset
|
||||||
import androidx.compose.ui.unit.DpSize
|
import androidx.compose.ui.unit.DpSize
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
|
||||||
import androidx.compose.ui.window.rememberDialogState
|
import androidx.compose.ui.window.rememberDialogState
|
||||||
import ir.amirab.downloader.queue.DownloadQueue
|
import ir.amirab.downloader.queue.DownloadQueue
|
||||||
import java.awt.MouseInfo
|
import java.awt.MouseInfo
|
||||||
|
@ -4,11 +4,11 @@ import com.abdownloadmanager.desktop.pages.addDownload.shared.ExtraConfig
|
|||||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.LocationTextField
|
import com.abdownloadmanager.desktop.pages.addDownload.shared.LocationTextField
|
||||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.ShowAddToQueueDialog
|
import com.abdownloadmanager.desktop.pages.addDownload.shared.ShowAddToQueueDialog
|
||||||
import com.abdownloadmanager.desktop.pages.home.sections.category.DefinedTypeCategories
|
import com.abdownloadmanager.desktop.pages.home.sections.category.DefinedTypeCategories
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.extenallibs
|
package com.abdownloadmanager.desktop.pages.extenallibs
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.ProvideTextStyle
|
import com.abdownloadmanager.utils.compose.ProvideTextStyle
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.customtable.Table
|
import com.abdownloadmanager.desktop.ui.widget.customtable.Table
|
||||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.extenallibs
|
package com.abdownloadmanager.desktop.pages.extenallibs
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.about.MaybeLinkText
|
import com.abdownloadmanager.desktop.pages.about.MaybeLinkText
|
||||||
import com.abdownloadmanager.desktop.ui.ProvideTextStyle
|
import com.abdownloadmanager.utils.compose.ProvideTextStyle
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.border
|
import androidx.compose.foundation.border
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.home
|
package com.abdownloadmanager.desktop.pages.home
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||||
import com.abdownloadmanager.desktop.ui.widget.menu.MyDropDown
|
import com.abdownloadmanager.desktop.ui.widget.menu.MyDropDown
|
||||||
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
import ir.amirab.util.compose.action.MenuItem
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import androidx.compose.foundation.*
|
import androidx.compose.foundation.*
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
|
@ -12,9 +12,9 @@ import com.abdownloadmanager.desktop.ui.widget.NotificationType
|
|||||||
import com.abdownloadmanager.desktop.ui.widget.customtable.Sort
|
import com.abdownloadmanager.desktop.ui.widget.customtable.Sort
|
||||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
||||||
import com.abdownloadmanager.desktop.utils.*
|
import com.abdownloadmanager.desktop.utils.*
|
||||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
import ir.amirab.util.compose.action.MenuItem
|
||||||
import com.abdownloadmanager.desktop.utils.action.buildMenu
|
import ir.amirab.util.compose.action.buildMenu
|
||||||
import com.abdownloadmanager.desktop.utils.action.simpleAction
|
import ir.amirab.util.compose.action.simpleAction
|
||||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
|
@ -3,10 +3,10 @@ package com.abdownloadmanager.desktop.pages.home
|
|||||||
import com.abdownloadmanager.desktop.pages.home.sections.DownloadList
|
import com.abdownloadmanager.desktop.pages.home.sections.DownloadList
|
||||||
import com.abdownloadmanager.desktop.pages.home.sections.SearchBox
|
import com.abdownloadmanager.desktop.pages.home.sections.SearchBox
|
||||||
import com.abdownloadmanager.desktop.pages.home.sections.category.*
|
import com.abdownloadmanager.desktop.pages.home.sections.category.*
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.home.sections
|
package com.abdownloadmanager.desktop.pages.home.sections
|
||||||
|
|
||||||
import DOUBLE_CLICK_DELAY
|
import DOUBLE_CLICK_DELAY
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.widget.CheckBox
|
import com.abdownloadmanager.desktop.ui.widget.CheckBox
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||||
@ -11,7 +11,7 @@ import com.abdownloadmanager.desktop.ui.widget.customtable.styled.MyStyledTableH
|
|||||||
import com.abdownloadmanager.desktop.ui.widget.menu.LocalMenuDisabledItemBehavior
|
import com.abdownloadmanager.desktop.ui.widget.menu.LocalMenuDisabledItemBehavior
|
||||||
import com.abdownloadmanager.desktop.ui.widget.menu.MenuDisabledItemBehavior
|
import com.abdownloadmanager.desktop.ui.widget.menu.MenuDisabledItemBehavior
|
||||||
import com.abdownloadmanager.desktop.ui.widget.menu.ShowOptionsInDropDown
|
import com.abdownloadmanager.desktop.ui.widget.menu.ShowOptionsInDropDown
|
||||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
import ir.amirab.util.compose.action.MenuItem
|
||||||
import androidx.compose.foundation.*
|
import androidx.compose.foundation.*
|
||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.home.sections
|
package com.abdownloadmanager.desktop.pages.home.sections
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.MyTextField
|
import com.abdownloadmanager.desktop.ui.widget.MyTextField
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.animation.*
|
import androidx.compose.animation.*
|
||||||
import androidx.compose.animation.core.animateFloatAsState
|
import androidx.compose.animation.core.animateFloatAsState
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
|
@ -2,8 +2,8 @@ package com.abdownloadmanager.desktop.pages.home.sections
|
|||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.home.sections.SortIndicatorMode.*
|
import com.abdownloadmanager.desktop.pages.home.sections.SortIndicatorMode.*
|
||||||
import com.abdownloadmanager.desktop.pages.home.sections.category.DefinedTypeCategories
|
import com.abdownloadmanager.desktop.pages.home.sections.category.DefinedTypeCategories
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.*
|
import com.abdownloadmanager.desktop.ui.widget.*
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.home.sections.category
|
package com.abdownloadmanager.desktop.pages.home.sections.category
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.ExpandableItem
|
import com.abdownloadmanager.desktop.ui.widget.ExpandableItem
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.selection.selectable
|
import androidx.compose.foundation.selection.selectable
|
||||||
|
@ -2,11 +2,11 @@ package com.abdownloadmanager.desktop.pages.queue
|
|||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.ConfigurableGroup
|
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.ConfigurableGroup
|
||||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurableGroup
|
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurableGroup
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
|
@ -4,7 +4,7 @@ import com.abdownloadmanager.desktop.pages.settings.SettingSections.*
|
|||||||
import com.abdownloadmanager.desktop.pages.settings.configurable.*
|
import com.abdownloadmanager.desktop.pages.settings.configurable.*
|
||||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||||
import com.abdownloadmanager.desktop.storage.AppSettingsStorage
|
import com.abdownloadmanager.desktop.storage.AppSettingsStorage
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.utils.BaseComponent
|
import com.abdownloadmanager.desktop.utils.BaseComponent
|
||||||
import com.abdownloadmanager.desktop.utils.convertSpeedToHumanReadable
|
import com.abdownloadmanager.desktop.utils.convertSpeedToHumanReadable
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.settings
|
package com.abdownloadmanager.desktop.pages.settings
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurable
|
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurable
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowIcon
|
import com.abdownloadmanager.desktop.ui.customwindow.WindowIcon
|
||||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Handle
|
import com.abdownloadmanager.desktop.ui.widget.Handle
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.settings.configurable.FolderConfigurable
|
import com.abdownloadmanager.desktop.pages.settings.configurable.FolderConfigurable
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.widget.MyTextField
|
import com.abdownloadmanager.desktop.ui.widget.MyTextField
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.settings.configurable.DayOfWeekConfigurable
|
import com.abdownloadmanager.desktop.pages.settings.configurable.DayOfWeekConfigurable
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.settings.configurable.Configurable
|
import com.abdownloadmanager.desktop.pages.settings.configurable.Configurable
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
@ -28,7 +28,6 @@ import androidx.compose.ui.graphics.RectangleShape
|
|||||||
import androidx.compose.ui.layout.onGloballyPositioned
|
import androidx.compose.ui.layout.onGloballyPositioned
|
||||||
import androidx.compose.ui.platform.LocalDensity
|
import androidx.compose.ui.platform.LocalDensity
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.DpOffset
|
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.window.Popup
|
import androidx.compose.ui.window.Popup
|
||||||
import androidx.compose.ui.window.rememberComponentRectPositionProvider
|
import androidx.compose.ui.window.rememberComponentRectPositionProvider
|
||||||
|
@ -2,11 +2,11 @@ package com.abdownloadmanager.desktop.pages.singleDownloadPage
|
|||||||
|
|
||||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurable
|
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurable
|
||||||
import com.abdownloadmanager.desktop.pages.singleDownloadPage.SingleDownloadPageSections.*
|
import com.abdownloadmanager.desktop.pages.singleDownloadPage.SingleDownloadPageSections.*
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
|
@ -6,7 +6,7 @@ import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
|||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
|
@ -20,7 +20,7 @@ import com.abdownloadmanager.desktop.ui.widget.useNotification
|
|||||||
import com.abdownloadmanager.desktop.utils.AppInfo
|
import com.abdownloadmanager.desktop.utils.AppInfo
|
||||||
import com.abdownloadmanager.desktop.utils.GlobalAppExceptionHandler
|
import com.abdownloadmanager.desktop.utils.GlobalAppExceptionHandler
|
||||||
import com.abdownloadmanager.desktop.utils.ProvideGlobalExceptionHandler
|
import com.abdownloadmanager.desktop.utils.ProvideGlobalExceptionHandler
|
||||||
import com.abdownloadmanager.desktop.utils.action.buildMenu
|
import ir.amirab.util.compose.action.buildMenu
|
||||||
import com.abdownloadmanager.desktop.utils.isInDebugMode
|
import com.abdownloadmanager.desktop.utils.isInDebugMode
|
||||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.customwindow
|
package com.abdownloadmanager.desktop.ui.customwindow
|
||||||
|
|
||||||
import ir.amirab.util.customwindow.ProvideWindowSpotContainer
|
import ir.amirab.util.customwindow.ProvideWindowSpotContainer
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
//import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
//import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
|
@ -1,20 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.customwindow
|
package com.abdownloadmanager.desktop.ui.customwindow
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
|
||||||
import com.abdownloadmanager.desktop.ui.util.ScreenSurface
|
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
|
||||||
import androidx.compose.foundation.background
|
|
||||||
import androidx.compose.foundation.border
|
|
||||||
import androidx.compose.foundation.layout.*
|
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Modifier
|
|
||||||
import androidx.compose.ui.draw.clip
|
|
||||||
import androidx.compose.ui.graphics.Brush
|
|
||||||
import androidx.compose.ui.unit.dp
|
|
||||||
import androidx.compose.ui.window.*
|
import androidx.compose.ui.window.*
|
||||||
import java.awt.event.FocusListener
|
|
||||||
import java.awt.event.WindowEvent
|
import java.awt.event.WindowEvent
|
||||||
import java.awt.event.WindowFocusListener
|
import java.awt.event.WindowFocusListener
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.customwindow
|
package com.abdownloadmanager.desktop.ui.customwindow
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import androidx.compose.animation.animateColorAsState
|
import androidx.compose.animation.animateColorAsState
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.icon
|
package com.abdownloadmanager.desktop.ui.icon
|
||||||
|
|
||||||
|
import com.abdownloadmanager.utils.compose.IMyIcons
|
||||||
|
import ir.amirab.util.compose.IconSource
|
||||||
|
import com.abdownloadmanager.utils.compose.asIconSource
|
||||||
|
|
||||||
object MyIcons : IMyIcons {
|
object MyIcons : IMyIcons {
|
||||||
override val appIcon: IconSource get() = "icons/app_icon.svg".asIconSource(false)
|
override val appIcon: IconSource get() = "icons/app_icon.svg".asIconSource(false)
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.theme
|
package com.abdownloadmanager.desktop.ui.theme
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.LocalTextStyle
|
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||||
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
||||||
import com.abdownloadmanager.desktop.utils.action.buildMenu
|
import ir.amirab.util.compose.action.buildMenu
|
||||||
import com.abdownloadmanager.desktop.utils.darker
|
import com.abdownloadmanager.desktop.utils.darker
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import androidx.compose.animation.core.tween
|
import androidx.compose.animation.core.tween
|
||||||
@ -24,7 +24,6 @@ import androidx.compose.ui.unit.sp
|
|||||||
import androidx.compose.ui.window.Popup
|
import androidx.compose.ui.window.Popup
|
||||||
import androidx.compose.ui.window.PopupProperties
|
import androidx.compose.ui.window.PopupProperties
|
||||||
import androidx.compose.ui.window.rememberPopupPositionProviderAtPosition
|
import androidx.compose.ui.window.rememberPopupPositionProviderAtPosition
|
||||||
import com.abdownloadmanager.desktop.pages.settings.ThemeManager
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
fun MyColors.asMaterial2Colors(): Colors {
|
fun MyColors.asMaterial2Colors(): Colors {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.util
|
package com.abdownloadmanager.desktop.ui.util
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.border
|
import androidx.compose.foundation.border
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||||
|
@ -3,14 +3,13 @@ package com.abdownloadmanager.desktop.ui.widget
|
|||||||
import com.abdownloadmanager.desktop.AppComponent
|
import com.abdownloadmanager.desktop.AppComponent
|
||||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
@ -12,11 +12,8 @@ import androidx.compose.foundation.clickable
|
|||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
|
||||||
import androidx.compose.ui.Alignment
|
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.alpha
|
import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.LocalTextStyle
|
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.border
|
import androidx.compose.foundation.border
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import androidx.compose.animation.animateContentSize
|
import androidx.compose.animation.animateContentSize
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
@ -13,7 +13,6 @@ import androidx.compose.foundation.layout.*
|
|||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.itemsIndexed
|
import androidx.compose.foundation.lazy.itemsIndexed
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
@ -22,7 +21,6 @@ import androidx.compose.ui.draw.shadow
|
|||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
|
|
||||||
private val LocalNotification = compositionLocalOf<NotificationManager> {
|
private val LocalNotification = compositionLocalOf<NotificationManager> {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.animation.core.animateFloatAsState
|
import androidx.compose.animation.core.animateFloatAsState
|
||||||
import androidx.compose.foundation.gestures.Orientation
|
import androidx.compose.foundation.gestures.Orientation
|
||||||
import androidx.compose.foundation.hoverable
|
import androidx.compose.foundation.hoverable
|
||||||
|
@ -1,22 +1,20 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.foundation.onClick
|
import androidx.compose.foundation.onClick
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
|
||||||
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.desktop.ui.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.LocalTextStyle
|
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||||
import androidx.compose.foundation.text.BasicText
|
import androidx.compose.foundation.text.BasicText
|
||||||
import androidx.compose.foundation.text.InlineTextContent
|
import androidx.compose.foundation.text.InlineTextContent
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
@ -3,8 +3,8 @@ package com.abdownloadmanager.desktop.ui.widget.customtable
|
|||||||
import com.abdownloadmanager.desktop.pages.home.sections.SortIndicatorMode
|
import com.abdownloadmanager.desktop.pages.home.sections.SortIndicatorMode
|
||||||
import com.abdownloadmanager.desktop.pages.home.sections.isAscending
|
import com.abdownloadmanager.desktop.pages.home.sections.isAscending
|
||||||
import com.abdownloadmanager.desktop.pages.home.sections.isDescending
|
import com.abdownloadmanager.desktop.pages.home.sections.isDescending
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
|
@ -2,7 +2,7 @@ package com.abdownloadmanager.desktop.ui.widget.customtable.styled
|
|||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableScope
|
import com.abdownloadmanager.desktop.ui.widget.customtable.TableScope
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget.menu
|
package com.abdownloadmanager.desktop.ui.widget.menu
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.actions.LocalShortCutManager
|
import com.abdownloadmanager.desktop.actions.LocalShortCutManager
|
||||||
import com.abdownloadmanager.desktop.ui.ProvideTextStyle
|
import com.abdownloadmanager.utils.compose.ProvideTextStyle
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||||
import com.abdownloadmanager.desktop.utils.KeyUtil
|
import com.abdownloadmanager.desktop.utils.KeyUtil
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
import ir.amirab.util.compose.action.MenuItem
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import androidx.compose.foundation.*
|
import androidx.compose.foundation.*
|
||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
|
@ -2,7 +2,7 @@ package com.abdownloadmanager.desktop.ui.widget.menu
|
|||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
import ir.amirab.util.compose.action.MenuItem
|
||||||
import com.abdownloadmanager.desktop.utils.div
|
import com.abdownloadmanager.desktop.utils.div
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.basicMarquee
|
import androidx.compose.foundation.basicMarquee
|
||||||
|
@ -2,7 +2,7 @@ package com.abdownloadmanager.desktop.ui.widget.tray
|
|||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||||
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
||||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
import ir.amirab.util.compose.action.MenuItem
|
||||||
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.graphics.painter.Painter
|
import androidx.compose.ui.graphics.painter.Painter
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.utils
|
package com.abdownloadmanager.desktop.utils
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||||
|
|
||||||
sealed class BrowserType(
|
sealed class BrowserType(
|
||||||
@ -20,7 +20,7 @@ fun BrowserType.getName():String{
|
|||||||
BrowserType.Opera -> "Opera"
|
BrowserType.Opera -> "Opera"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fun BrowserType.getIcon():IconSource{
|
fun BrowserType.getIcon(): IconSource {
|
||||||
return when(this){
|
return when(this){
|
||||||
BrowserType.Chrome -> MyIcons.browserGoogleChrome
|
BrowserType.Chrome -> MyIcons.browserGoogleChrome
|
||||||
BrowserType.Edge -> MyIcons.browserMicrosoftEdge
|
BrowserType.Edge -> MyIcons.browserMicrosoftEdge
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
package com.abdownloadmanager.desktop.utils.action
|
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
|
||||||
import androidx.compose.runtime.getValue
|
|
||||||
import androidx.compose.runtime.mutableStateOf
|
|
||||||
import androidx.compose.runtime.setValue
|
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
|
||||||
import javax.swing.Icon
|
|
||||||
|
|
||||||
abstract class AnAction(
|
|
||||||
title: String,
|
|
||||||
icon: IconSource? = null,
|
|
||||||
) : MenuItem.SingleItem(
|
|
||||||
title=title,
|
|
||||||
icon=icon,
|
|
||||||
) {
|
|
||||||
override fun onClick() = actionPerformed()
|
|
||||||
|
|
||||||
abstract fun actionPerformed()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -25,6 +25,7 @@ include("downloader:monitor")
|
|||||||
include("integration:server")
|
include("integration:server")
|
||||||
include("shared:utils")
|
include("shared:utils")
|
||||||
include("shared:app-utils")
|
include("shared:app-utils")
|
||||||
|
include("shared:compose-utils")
|
||||||
include("shared:config")
|
include("shared:config")
|
||||||
include("shared:updater")
|
include("shared:updater")
|
||||||
include("shared:auto-start")
|
include("shared:auto-start")
|
||||||
|
@ -5,9 +5,13 @@ plugins {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":downloader:core"))
|
implementation(project(":downloader:core"))
|
||||||
api(project(":shared:config"))
|
api(project(":shared:config"))
|
||||||
|
api(project(":shared:utils"))
|
||||||
|
api(project(":shared:compose-utils"))
|
||||||
implementation(libs.androidx.datastore)
|
implementation(libs.androidx.datastore)
|
||||||
implementation(libs.kotlin.coroutines.core)
|
implementation(libs.kotlin.coroutines.core)
|
||||||
implementation(libs.kotlin.serialization.json)
|
implementation(libs.kotlin.serialization.json)
|
||||||
|
|
||||||
implementation(compose.runtime)
|
implementation(compose.runtime)
|
||||||
|
implementation(compose.foundation)
|
||||||
|
implementation(compose.ui)
|
||||||
}
|
}
|
@ -1,44 +1,7 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.icon
|
package com.abdownloadmanager.utils.compose
|
||||||
|
|
||||||
import androidx.compose.foundation.Image
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
|
||||||
import com.abdownloadmanager.desktop.ui.widget.Icon
|
|
||||||
import androidx.compose.runtime.Composable
|
|
||||||
import androidx.compose.runtime.Immutable
|
|
||||||
import androidx.compose.ui.Modifier
|
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.compose.ui.graphics.painter.Painter
|
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
import ir.amirab.util.compose.IconSource
|
||||||
import androidx.compose.ui.res.painterResource
|
|
||||||
|
|
||||||
@Immutable
|
|
||||||
sealed interface IconSource {
|
|
||||||
val value: Any
|
|
||||||
val requiredTint: Boolean
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
fun rememberPainter(): Painter
|
|
||||||
|
|
||||||
@Immutable
|
|
||||||
data class StorageIconSource(
|
|
||||||
override val value: String,
|
|
||||||
override val requiredTint: Boolean,
|
|
||||||
) : IconSource {
|
|
||||||
@Composable
|
|
||||||
override fun rememberPainter(): Painter = painterResource(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Immutable
|
|
||||||
data class VectorIconSource(
|
|
||||||
override val value: ImageVector,
|
|
||||||
override val requiredTint: Boolean,
|
|
||||||
) : IconSource {
|
|
||||||
@Composable
|
|
||||||
override fun rememberPainter(): Painter = rememberVectorPainter(value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
context (IMyIcons)
|
context (IMyIcons)
|
||||||
fun ImageVector.asIconSource(requiredTint: Boolean = true) = IconSource.VectorIconSource(this, requiredTint)
|
fun ImageVector.asIconSource(requiredTint: Boolean = true) = IconSource.VectorIconSource(this, requiredTint)
|
||||||
@ -46,32 +9,6 @@ fun ImageVector.asIconSource(requiredTint: Boolean = true) = IconSource.VectorIc
|
|||||||
context (IMyIcons)
|
context (IMyIcons)
|
||||||
fun String.asIconSource(requiredTint: Boolean = true) = IconSource.StorageIconSource(this, requiredTint)
|
fun String.asIconSource(requiredTint: Boolean = true) = IconSource.StorageIconSource(this, requiredTint)
|
||||||
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
fun MyIcon(
|
|
||||||
icon: IconSource,
|
|
||||||
contentDescription: String?,
|
|
||||||
modifier: Modifier = Modifier,
|
|
||||||
tint: Color = LocalContentColor.current.copy(alpha = LocalContentAlpha.current),
|
|
||||||
) {
|
|
||||||
val painter = icon.rememberPainter()
|
|
||||||
if (icon.requiredTint) {
|
|
||||||
Icon(
|
|
||||||
painter = painter,
|
|
||||||
contentDescription = contentDescription,
|
|
||||||
modifier = modifier,
|
|
||||||
tint = tint,
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
Image(
|
|
||||||
painter = painter,
|
|
||||||
contentDescription = contentDescription,
|
|
||||||
modifier = modifier,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
interface IMyIcons {
|
interface IMyIcons {
|
||||||
val appIcon: IconSource
|
val appIcon: IconSource
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.abdownloadmanager.desktop.ui
|
package com.abdownloadmanager.utils.compose
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.CompositionLocalProvider
|
import androidx.compose.runtime.CompositionLocalProvider
|
@ -1,7 +1,8 @@
|
|||||||
package com.abdownloadmanager.desktop.ui.widget
|
package com.abdownloadmanager.utils.compose.widget
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
import androidx.compose.foundation.Image
|
||||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||||
|
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@ -24,6 +25,7 @@ import androidx.compose.ui.semantics.contentDescription
|
|||||||
import androidx.compose.ui.semantics.role
|
import androidx.compose.ui.semantics.role
|
||||||
import androidx.compose.ui.semantics.semantics
|
import androidx.compose.ui.semantics.semantics
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import ir.amirab.util.compose.IconSource
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@NonRestartableComposable
|
@NonRestartableComposable
|
||||||
@ -98,3 +100,27 @@ private fun Size.isInfinite() = width.isInfinite() && height.isInfinite()
|
|||||||
|
|
||||||
// Default icon size, for icons with no intrinsic size information
|
// Default icon size, for icons with no intrinsic size information
|
||||||
private val DefaultIconSizeModifier = Modifier.size(24.dp)
|
private val DefaultIconSizeModifier = Modifier.size(24.dp)
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun MyIcon(
|
||||||
|
icon: IconSource,
|
||||||
|
contentDescription: String?,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
tint: Color = LocalContentColor.current.copy(alpha = LocalContentAlpha.current),
|
||||||
|
) {
|
||||||
|
val painter = icon.rememberPainter()
|
||||||
|
if (icon.requiredTint) {
|
||||||
|
Icon(
|
||||||
|
painter = painter,
|
||||||
|
contentDescription = contentDescription,
|
||||||
|
modifier = modifier,
|
||||||
|
tint = tint,
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
Image(
|
||||||
|
painter = painter,
|
||||||
|
contentDescription = contentDescription,
|
||||||
|
modifier = modifier,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
10
shared/compose-utils/build.gradle.kts
Normal file
10
shared/compose-utils/build.gradle.kts
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
plugins {
|
||||||
|
id(MyPlugins.kotlin)
|
||||||
|
id(MyPlugins.composeBase)
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
implementation(compose.runtime)
|
||||||
|
implementation(compose.foundation)
|
||||||
|
implementation(compose.ui)
|
||||||
|
implementation(project(":shared:utils"))
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package ir.amirab.util.compose
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.Immutable
|
||||||
|
import androidx.compose.ui.graphics.painter.Painter
|
||||||
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
|
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
||||||
|
import androidx.compose.ui.res.painterResource
|
||||||
|
|
||||||
|
@Immutable
|
||||||
|
sealed interface IconSource {
|
||||||
|
val value: Any
|
||||||
|
val requiredTint: Boolean
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun rememberPainter(): Painter
|
||||||
|
|
||||||
|
@Immutable
|
||||||
|
data class StorageIconSource(
|
||||||
|
override val value: String,
|
||||||
|
override val requiredTint: Boolean,
|
||||||
|
) : IconSource {
|
||||||
|
@Composable
|
||||||
|
override fun rememberPainter(): Painter = painterResource(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Immutable
|
||||||
|
data class VectorIconSource(
|
||||||
|
override val value: ImageVector,
|
||||||
|
override val requiredTint: Boolean,
|
||||||
|
) : IconSource {
|
||||||
|
@Composable
|
||||||
|
override fun rememberPainter(): Painter = rememberVectorPainter(value)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package ir.amirab.util.compose.action
|
||||||
|
|
||||||
|
import ir.amirab.util.compose.IconSource
|
||||||
|
|
||||||
|
abstract class AnAction(
|
||||||
|
title: String,
|
||||||
|
icon: IconSource? = null,
|
||||||
|
) : MenuItem.SingleItem(
|
||||||
|
title=title,
|
||||||
|
icon=icon,
|
||||||
|
) {
|
||||||
|
override fun onClick() = actionPerformed()
|
||||||
|
|
||||||
|
abstract fun actionPerformed()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
|||||||
package com.abdownloadmanager.desktop.utils.action
|
package ir.amirab.util.compose.action
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import com.abdownloadmanager.desktop.utils.asState
|
|
||||||
import androidx.compose.runtime.derivedStateOf
|
|
||||||
import androidx.compose.runtime.getValue
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
|
|
||||||
inline fun simpleAction(
|
inline fun simpleAction(
|
@ -1,6 +1,6 @@
|
|||||||
package com.abdownloadmanager.desktop.utils.action
|
package ir.amirab.util.compose.action
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
|
|
||||||
@DslMarker
|
@DslMarker
|
||||||
private annotation class MenuDsl
|
private annotation class MenuDsl
|
||||||
@ -13,7 +13,7 @@ class MenuScope {
|
|||||||
icon: IconSource? = null,
|
icon: IconSource? = null,
|
||||||
onClick: AnAction.() -> Unit,
|
onClick: AnAction.() -> Unit,
|
||||||
) {
|
) {
|
||||||
val action=simpleAction(title, icon, onClick)
|
val action= simpleAction(title, icon, onClick)
|
||||||
list.add(action)
|
list.add(action)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ class MenuScope {
|
|||||||
icon: IconSource? = null,
|
icon: IconSource? = null,
|
||||||
block: MenuScope.() -> Unit,
|
block: MenuScope.() -> Unit,
|
||||||
) {
|
) {
|
||||||
val subMenu=MenuItem.SubMenu(
|
val subMenu= MenuItem.SubMenu(
|
||||||
title = title,
|
title = title,
|
||||||
icon = icon,
|
icon = icon,
|
||||||
items = MenuScope().apply(block).build()
|
items = MenuScope().apply(block).build()
|
@ -1,6 +1,6 @@
|
|||||||
package com.abdownloadmanager.desktop.utils.action
|
package ir.amirab.util.compose.action
|
||||||
|
|
||||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
import ir.amirab.util.compose.IconSource
|
||||||
import ir.amirab.util.flow.mapStateFlow
|
import ir.amirab.util.flow.mapStateFlow
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
@ -16,7 +16,7 @@ sealed interface MenuItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface CanBeModified{
|
interface CanBeModified{
|
||||||
fun setIcon(icon:IconSource?)
|
fun setIcon(icon: IconSource?)
|
||||||
fun setTitle(title:String)
|
fun setTitle(title:String)
|
||||||
}
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user