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.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.widget.MessageDialogType
|
||||
import com.abdownloadmanager.desktop.utils.action.AnAction
|
||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
||||
import com.abdownloadmanager.desktop.utils.action.simpleAction
|
||||
import ir.amirab.util.compose.action.AnAction
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import ir.amirab.util.compose.action.simpleAction
|
||||
import org.koin.core.component.get
|
||||
|
||||
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.utils.AppInfo
|
||||
import com.abdownloadmanager.desktop.utils.ClipboardUtil
|
||||
import com.abdownloadmanager.desktop.utils.action.AnAction
|
||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
||||
import com.abdownloadmanager.desktop.utils.action.buildMenu
|
||||
import com.abdownloadmanager.desktop.utils.action.simpleAction
|
||||
import ir.amirab.util.compose.action.AnAction
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import ir.amirab.util.compose.action.buildMenu
|
||||
import ir.amirab.util.compose.action.simpleAction
|
||||
import com.abdownloadmanager.desktop.utils.getIcon
|
||||
import com.abdownloadmanager.desktop.utils.getName
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
|
@ -1,14 +1,14 @@
|
||||
package com.abdownloadmanager.desktop.pages.about
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.LocalTextStyle
|
||||
import com.abdownloadmanager.desktop.ui.ProvideTextStyle
|
||||
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||
import com.abdownloadmanager.utils.compose.ProvideTextStyle
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
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.clickable
|
||||
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.TextOverflow
|
||||
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
|
||||
|
||||
@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.widget.ActionButton
|
||||
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.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.addDownload.multiple
|
||||
|
||||
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.myTextSizes
|
||||
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.theme.myColors
|
||||
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.windowUtil.moveSafe
|
||||
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.IconActionButton
|
||||
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.windowUtil.moveSafe
|
||||
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.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.compose.ui.window.rememberDialogState
|
||||
import ir.amirab.downloader.queue.DownloadQueue
|
||||
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.ShowAddToQueueDialog
|
||||
import com.abdownloadmanager.desktop.pages.home.sections.category.DefinedTypeCategories
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
|
@ -1,10 +1,10 @@
|
||||
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.widget.customtable.Table
|
||||
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.layout.*
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.pages.extenallibs
|
||||
|
||||
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.myTextSizes
|
||||
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 androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
|
@ -1,14 +1,14 @@
|
||||
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.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.MyDropDown
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import androidx.compose.foundation.*
|
||||
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.TableState
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
||||
import com.abdownloadmanager.desktop.utils.action.buildMenu
|
||||
import com.abdownloadmanager.desktop.utils.action.simpleAction
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import ir.amirab.util.compose.action.buildMenu
|
||||
import ir.amirab.util.compose.action.simpleAction
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
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.SearchBox
|
||||
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.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.home.sections
|
||||
|
||||
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.widget.CheckBox
|
||||
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.MenuDisabledItemBehavior
|
||||
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.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.*
|
||||
|
@ -1,11 +1,11 @@
|
||||
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.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
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.core.animateFloatAsState
|
||||
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.category.DefinedTypeCategories
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.pages.home.sections.category
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
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.layout.*
|
||||
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.RenderConfigurableGroup
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
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.repository.AppRepository
|
||||
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.utils.BaseComponent
|
||||
import com.abdownloadmanager.desktop.utils.convertSpeedToHumanReadable
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings
|
||||
|
||||
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.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.widget.Handle
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
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.widget.MyTextField
|
||||
import androidx.compose.foundation.clickable
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
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.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
|
@ -1,9 +1,9 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.Configurable
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
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.platform.LocalDensity
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.DpOffset
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.Popup
|
||||
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.singleDownloadPage.SingleDownloadPageSections.*
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
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.myTextSizes
|
||||
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 androidx.compose.foundation.background
|
||||
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.GlobalAppExceptionHandler
|
||||
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.mvi.HandleEffects
|
||||
import androidx.compose.runtime.*
|
||||
|
@ -1,9 +1,9 @@
|
||||
package com.abdownloadmanager.desktop.ui.customwindow
|
||||
|
||||
import ir.amirab.util.customwindow.ProvideWindowSpotContainer
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
//import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
|
@ -1,20 +1,7 @@
|
||||
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.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 java.awt.event.FocusListener
|
||||
import java.awt.event.WindowEvent
|
||||
import java.awt.event.WindowFocusListener
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.ui.customwindow
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import androidx.compose.animation.animateColorAsState
|
||||
|
@ -1,5 +1,9 @@
|
||||
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 {
|
||||
override val appIcon: IconSource get() = "icons/app_icon.svg".asIconSource(false)
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
package com.abdownloadmanager.desktop.ui.theme
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.LocalTextStyle
|
||||
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||
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.div
|
||||
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.PopupProperties
|
||||
import androidx.compose.ui.window.rememberPopupPositionProviderAtPosition
|
||||
import com.abdownloadmanager.desktop.pages.settings.ThemeManager
|
||||
|
||||
/*
|
||||
fun MyColors.asMaterial2Colors(): Colors {
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.ui.util
|
||||
|
||||
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.layout.Column
|
||||
import androidx.compose.runtime.Composable
|
||||
|
@ -1,10 +1,10 @@
|
||||
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.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
|
@ -1,10 +1,10 @@
|
||||
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.theme.myColors
|
||||
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.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
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.ui.customwindow.CustomWindow
|
||||
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.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.collectAsState
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
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.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.draw.clip
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.LocalTextStyle
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
|
||||
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.border
|
||||
import androidx.compose.foundation.layout.*
|
||||
|
@ -1,10 +1,10 @@
|
||||
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.theme.myColors
|
||||
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 androidx.compose.animation.animateContentSize
|
||||
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.itemsIndexed
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
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.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import kotlinx.coroutines.*
|
||||
|
||||
private val LocalNotification = compositionLocalOf<NotificationManager> {
|
||||
|
@ -1,9 +1,9 @@
|
||||
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.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import androidx.compose.animation.core.animateFloatAsState
|
||||
import androidx.compose.foundation.gestures.Orientation
|
||||
import androidx.compose.foundation.hoverable
|
||||
|
@ -1,22 +1,20 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.icon.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
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.layout.*
|
||||
import androidx.compose.foundation.onClick
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
|
||||
|
||||
@Composable
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.LocalTextStyle
|
||||
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||
import androidx.compose.foundation.text.BasicText
|
||||
import androidx.compose.foundation.text.InlineTextContent
|
||||
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.isAscending
|
||||
import com.abdownloadmanager.desktop.pages.home.sections.isDescending
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
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.widget.customtable.TableScope
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.padding
|
||||
|
@ -1,16 +1,16 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget.menu
|
||||
|
||||
import com.abdownloadmanager.desktop.actions.LocalShortCutManager
|
||||
import com.abdownloadmanager.desktop.ui.ProvideTextStyle
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcon
|
||||
import com.abdownloadmanager.utils.compose.ProvideTextStyle
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.utils.KeyUtil
|
||||
import com.abdownloadmanager.desktop.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.WithContentColor
|
||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import androidx.compose.foundation.*
|
||||
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.myTextSizes
|
||||
import com.abdownloadmanager.desktop.utils.action.MenuItem
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import androidx.compose.foundation.background
|
||||
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.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 androidx.compose.runtime.*
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.utils
|
||||
|
||||
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
|
||||
|
||||
sealed class BrowserType(
|
||||
@ -20,7 +20,7 @@ fun BrowserType.getName():String{
|
||||
BrowserType.Opera -> "Opera"
|
||||
}
|
||||
}
|
||||
fun BrowserType.getIcon():IconSource{
|
||||
fun BrowserType.getIcon(): IconSource {
|
||||
return when(this){
|
||||
BrowserType.Chrome -> MyIcons.browserGoogleChrome
|
||||
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("shared:utils")
|
||||
include("shared:app-utils")
|
||||
include("shared:compose-utils")
|
||||
include("shared:config")
|
||||
include("shared:updater")
|
||||
include("shared:auto-start")
|
||||
|
@ -5,9 +5,13 @@ plugins {
|
||||
dependencies {
|
||||
implementation(project(":downloader:core"))
|
||||
api(project(":shared:config"))
|
||||
api(project(":shared:utils"))
|
||||
api(project(":shared:compose-utils"))
|
||||
implementation(libs.androidx.datastore)
|
||||
implementation(libs.kotlin.coroutines.core)
|
||||
implementation(libs.kotlin.serialization.json)
|
||||
|
||||
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.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)
|
||||
}
|
||||
}
|
||||
import ir.amirab.util.compose.IconSource
|
||||
|
||||
context (IMyIcons)
|
||||
fun ImageVector.asIconSource(requiredTint: Boolean = true) = IconSource.VectorIconSource(this, requiredTint)
|
||||
@ -46,32 +9,6 @@ fun ImageVector.asIconSource(requiredTint: Boolean = true) = IconSource.VectorIc
|
||||
context (IMyIcons)
|
||||
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 {
|
||||
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.CompositionLocalProvider
|
@ -1,7 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
package com.abdownloadmanager.utils.compose.widget
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.LocalContentColor
|
||||
import androidx.compose.foundation.Image
|
||||
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.size
|
||||
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.semantics
|
||||
import androidx.compose.ui.unit.dp
|
||||
import ir.amirab.util.compose.IconSource
|
||||
|
||||
@Composable
|
||||
@NonRestartableComposable
|
||||
@ -98,3 +100,27 @@ private fun Size.isInfinite() = width.isInfinite() && height.isInfinite()
|
||||
|
||||
// Default icon size, for icons with no intrinsic size information
|
||||
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 com.abdownloadmanager.desktop.utils.asState
|
||||
import androidx.compose.runtime.derivedStateOf
|
||||
import androidx.compose.runtime.getValue
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import kotlinx.coroutines.flow.*
|
||||
|
||||
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
|
||||
private annotation class MenuDsl
|
||||
@ -13,7 +13,7 @@ class MenuScope {
|
||||
icon: IconSource? = null,
|
||||
onClick: AnAction.() -> Unit,
|
||||
) {
|
||||
val action=simpleAction(title, icon, onClick)
|
||||
val action= simpleAction(title, icon, onClick)
|
||||
list.add(action)
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ class MenuScope {
|
||||
icon: IconSource? = null,
|
||||
block: MenuScope.() -> Unit,
|
||||
) {
|
||||
val subMenu=MenuItem.SubMenu(
|
||||
val subMenu= MenuItem.SubMenu(
|
||||
title = title,
|
||||
icon = icon,
|
||||
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 androidx.compose.runtime.*
|
||||
import kotlinx.coroutines.flow.*
|
||||
@ -16,7 +16,7 @@ sealed interface MenuItem {
|
||||
}
|
||||
|
||||
interface CanBeModified{
|
||||
fun setIcon(icon:IconSource?)
|
||||
fun setIcon(icon: IconSource?)
|
||||
fun setTitle(title:String)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user