VerticalScrollbar for desktop, alignment bug

This commit is contained in:
dotmg 2025-11-29 05:01:36 +01:00
parent be1b541faa
commit 707d128906
16 changed files with 12 additions and 37605 deletions

View file

@ -2,10 +2,12 @@ package mg.dot.feufaro.ui
import androidx.compose.foundation.ScrollState import androidx.compose.foundation.ScrollState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@Composable @Composable
actual fun MyVerticalScrollbar ( actual fun MyVerticalScrollbar (
scrollState: ScrollState, scrollState: ScrollState,
modifier: Modifier,
content: @Composable () -> Unit content: @Composable () -> Unit
){ ){
content() content()

File diff suppressed because it is too large Load diff

View file

@ -1,823 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 4.0.2 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
<score-partwise version="4.0.2">
<identification>
<encoding>
<software>Audiveris 5.3.1</software>
<supports type="yes" element="print" attribute="new-system" value="yes"></supports>
<supports type="yes" element="print" attribute="new-page" value="yes"></supports>
<software>ProxyMusic 4.0.2</software>
<encoding-date>2025-06-28</encoding-date>
</encoding>
<source>/home/mahefa/Images/10-2.jpg</source>
<miscellaneous>
<miscellaneous-field name="source-file">/home/mahefa/Images/10-2.jpg</miscellaneous-field>
<miscellaneous-field name="source-sheet-1">1</miscellaneous-field>
</miscellaneous>
</identification>
<defaults>
<scaling>
<millimeters>5.7573</millimeters>
<tenths>40</tenths>
</scaling>
<page-layout>
<page-height>344</page-height>
<page-width>1059</page-width>
<page-margins type="both">
<left-margin>80</left-margin>
<right-margin>80</right-margin>
<top-margin>80</top-margin>
<bottom-margin>80</bottom-margin>
</page-margins>
</page-layout>
<lyric-font font-family="Sans Serif" font-size="10"></lyric-font>
</defaults>
<part-list>
<score-part id="P1">
<part-name>Voice</part-name>
<part-abbreviation>Voice</part-abbreviation>
<score-instrument id="P1-I1">
<instrument-name>Voice Oohs</instrument-name>
</score-instrument>
<midi-instrument id="P1-I1">
<midi-channel>1</midi-channel>
<midi-program>54</midi-program>
<volume>78</volume>
</midi-instrument>
</score-part>
<score-part id="P2">
<part-name>Voice</part-name>
<part-abbreviation>Voice</part-abbreviation>
<score-instrument id="P2-I1">
<instrument-name>Voice Oohs</instrument-name>
</score-instrument>
<midi-instrument id="P2-I1">
<midi-channel>2</midi-channel>
<midi-program>54</midi-program>
<volume>78</volume>
</midi-instrument>
</score-part>
</part-list>
<!--= = = = = = = = = = = = = = = = = = = = = = = = = = = = =-->
<part id="P1">
<!--=======================================================-->
<measure number="1" width="328">
<print>
<system-layout>
<system-margins>
<left-margin>8</left-margin>
<right-margin>-19</right-margin>
</system-margins>
<top-system-distance>-22</top-system-distance>
</system-layout>
<measure-numbering>system</measure-numbering>
</print>
<attributes>
<divisions>1</divisions>
<key>
<fifths>2</fifths>
</key>
<clef>
<sign>G</sign>
<line>2</line>
</clef>
<staff-details print-object="yes"></staff-details>
</attributes>
<direction placement="above">
<direction-type>
<words></words>
</direction-type>
<sound tempo="120"></sound>
</direction>
<note default-x="92">
<pitch>
<step>B</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="12">up</stem>
</note>
<note default-x="178">
<pitch>
<step>C</step>
<alter>1</alter>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="8">up</stem>
</note>
<note default-x="177">
<chord/>
<pitch>
<step>A</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="8">up</stem>
</note>
<note default-x="243">
<pitch>
<step>F</step>
<alter>1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="19">up</stem>
</note>
<note default-x="242">
<chord/>
<pitch>
<step>D</step>
<octave>5</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="19">up</stem>
</note>
<note default-x="286">
<pitch>
<step>F</step>
<alter>1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="15">up</stem>
</note>
<note default-x="286">
<chord/>
<pitch>
<step>C</step>
<alter>1</alter>
<octave>5</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="15">up</stem>
</note>
<backup>
<duration>6</duration>
</backup>
<note default-x="91">
<pitch>
<step>F</step>
<alter>1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-62">down</stem>
<notations>
<articulations>
<staccato default-y="-24" placement="above"></staccato>
</articulations>
<slur type="start" number="1" default-x="5" default-y="-50" placement="below" bezier-x="9" bezier-y="-8"></slur>
</notations>
</note>
<note default-x="134">
<pitch>
<step>E</step>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-68">down</stem>
<notations>
<slur type="stop" number="1" default-x="-5" default-y="-55" bezier-x="-11" bezier-y="-5"></slur>
</notations>
</note>
</measure>
<!--=======================================================-->
<measure number="2" width="275">
<note default-x="18">
<pitch>
<step>B</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="12">up</stem>
</note>
<note default-x="103">
<pitch>
<step>A</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="8">up</stem>
</note>
<note default-x="189">
<pitch>
<step>B</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="4">up</stem>
<lyric number="1" default-y="-108" placement="below">
<syllabic>single</syllabic>
<text>al</text>
</lyric>
</note>
<note default-x="189">
<chord/>
<pitch>
<step>G</step>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="4">up</stem>
</note>
<note default-x="233">
<pitch>
<step>D</step>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="1">up</stem>
<lyric number="1" default-y="-108" placement="below">
<syllabic>single</syllabic>
<text>le</text>
</lyric>
</note>
<note default-x="233">
<chord/>
<pitch>
<step>F</step>
<alter>1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="1">up</stem>
</note>
<backup>
<duration>6</duration>
</backup>
<note default-x="16">
<pitch>
<step>F</step>
<alter>1</alter>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-62">down</stem>
<notations>
<articulations>
<staccato default-y="-24" placement="above"></staccato>
</articulations>
<slur type="start" number="1" default-x="4" default-y="-50" placement="below" bezier-x="9" bezier-y="-8"></slur>
</notations>
</note>
<note default-x="59">
<pitch>
<step>E</step>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-68">down</stem>
<notations>
<slur type="stop" number="1" default-x="-5" default-y="-56" bezier-x="-11" bezier-y="-5"></slur>
</notations>
</note>
<note default-x="102">
<pitch>
<step>E</step>
<octave>4</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-68">down</stem>
<notations>
<articulations>
<staccato default-y="-94" placement="below"></staccato>
</articulations>
<slur type="start" number="1" default-x="5" default-y="-55" placement="below" bezier-x="7" bezier-y="-11"></slur>
</notations>
</note>
<note default-x="146">
<pitch>
<step>B</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-82">down</stem>
<notations>
<slur type="stop" number="1" default-x="-5" default-y="-70" bezier-x="-13" bezier-y="-2"></slur>
</notations>
</note>
</measure>
<!--=======================================================-->
<measure number="3" width="198">
<note default-x="17">
<pitch>
<step>E</step>
<octave>4</octave>
</pitch>
<duration>6</duration>
<voice>1</voice>
<type>whole</type>
<dot/>
</note>
<note default-x="89">
<pitch>
<step>C</step>
<alter>1</alter>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
<notations>
<slur type="stop" number="1" default-x="8" default-y="-61" bezier-x="-16" bezier-y="-7"></slur>
</notations>
</note>
<backup>
<duration>10</duration>
</backup>
<note default-x="43">
<pitch>
<step>D</step>
<octave>4</octave>
</pitch>
<duration>2</duration>
<voice>2</voice>
<type>half</type>
<stem default-y="-72">down</stem>
<notations>
<slur type="start" number="1" default-x="4" default-y="-60" placement="below" bezier-x="16" bezier-y="-8"></slur>
</notations>
<lyric number="1" default-y="-109" placement="below">
<syllabic>single</syllabic>
<text>lu</text>
</lyric>
</note>
</measure>
<!--=======================================================-->
<measure number="4" width="109">
<note default-x="21">
<pitch>
<step>D</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
<lyric number="1" default-y="-108" placement="below">
<syllabic>single</syllabic>
<text>ia!</text>
</lyric>
</note>
<backup>
<duration>4</duration>
</backup>
<note default-x="39">
<pitch>
<step>D</step>
<octave>4</octave>
</pitch>
<duration>4</duration>
<voice>2</voice>
<type>whole</type>
</note>
<barline location="right">
<bar-style>light-heavy</bar-style>
</barline>
</measure>
</part>
<!--= = = = = = = = = = = = = = = = = = = = = = = = = = = = =-->
<part id="P2">
<!--=======================================================-->
<measure number="1" width="328">
<print>
<system-layout>
<system-margins>
<left-margin>8</left-margin>
<right-margin>-19</right-margin>
</system-margins>
<top-system-distance>-22</top-system-distance>
</system-layout>
<staff-layout number="1">
<staff-distance>124</staff-distance>
</staff-layout>
<measure-numbering>none</measure-numbering>
</print>
<attributes>
<divisions>1</divisions>
<key>
<fifths>2</fifths>
</key>
<clef>
<sign>F</sign>
<line>4</line>
</clef>
<staff-details print-object="yes"></staff-details>
</attributes>
<note default-x="90">
<pitch>
<step>D</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-51">down</stem>
</note>
<note default-x="90">
<chord/>
<pitch>
<step>A</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-51">down</stem>
<notations>
<slur type="start" number="1" default-x="6" default-y="12" placement="above" bezier-x="14" bezier-y="8"></slur>
</notations>
</note>
<note default-x="134">
<pitch>
<step>E</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-47">down</stem>
</note>
<note default-x="134">
<chord/>
<pitch>
<step>G</step>
<alter>1</alter>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<accidental>sharp</accidental>
<stem default-y="-47">down</stem>
<notations>
<slur type="stop" number="1" default-x="6" default-y="9" bezier-x="-13" bezier-y="9"></slur>
</notations>
</note>
<note default-x="177">
<pitch>
<step>A</step>
<octave>2</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="-63">down</stem>
</note>
<note default-x="177">
<chord/>
<pitch>
<step>A</step>
<octave>3</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="-63">down</stem>
</note>
<note default-x="241">
<pitch>
<step>B</step>
<octave>2</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-59">down</stem>
</note>
<note default-x="241">
<chord/>
<pitch>
<step>A</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-59">down</stem>
</note>
<note default-x="285">
<pitch>
<step>C</step>
<alter>1</alter>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-55">down</stem>
</note>
<note default-x="284">
<chord/>
<pitch>
<step>A</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-55">down</stem>
</note>
</measure>
<!--=======================================================-->
<measure number="2" width="275">
<note default-x="14">
<pitch>
<step>F</step>
<alter>1</alter>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-44">down</stem>
<notations>
<slur type="start" number="1" default-x="17" default-y="6" placement="above" bezier-x="6" bezier-y="11"></slur>
</notations>
</note>
<note default-x="59">
<pitch>
<step>E</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-47">down</stem>
</note>
<note default-x="59">
<chord/>
<pitch>
<step>G</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-47">down</stem>
<notations>
<slur type="stop" number="1" default-x="4" default-y="6" bezier-x="-6" bezier-y="11"></slur>
</notations>
</note>
<note default-x="144">
<pitch>
<step>F</step>
<alter>1</alter>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-44">down</stem>
<notations>
<slur type="stop" number="1" default-x="1" default-y="-1" bezier-x="-6" bezier-y="11"></slur>
</notations>
</note>
<note default-x="189">
<pitch>
<step>E</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-47">down</stem>
</note>
<note default-x="189">
<chord/>
<pitch>
<step>G</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-47">down</stem>
</note>
<note default-x="232">
<pitch>
<step>F</step>
<alter>1</alter>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-44">down</stem>
</note>
<note default-x="231">
<chord/>
<pitch>
<step>A</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>1</voice>
<type>quarter</type>
<stem default-y="-44">down</stem>
</note>
<backup>
<duration>5</duration>
</backup>
<note default-x="14">
<pitch>
<step>D</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-54">down</stem>
</note>
<note default-x="102">
<pitch>
<step>C</step>
<alter>1</alter>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-55">down</stem>
</note>
<note default-x="102">
<chord/>
<pitch>
<step>E</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-55">down</stem>
<notations>
<slur type="start" number="1" default-x="11" default-y="-1" placement="above" bezier-x="6" bezier-y="11"></slur>
</notations>
</note>
<note default-x="146">
<pitch>
<step>D</step>
<octave>3</octave>
</pitch>
<duration>1</duration>
<voice>2</voice>
<type>quarter</type>
<stem default-y="-54">down</stem>
</note>
</measure>
<!--=======================================================-->
<measure number="3" width="198">
<note default-x="17">
<pitch>
<step>G</step>
<octave>3</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="-40">down</stem>
<notations>
<slur type="start" number="1" default-x="6" default-y="-29" placement="below" bezier-x="32" bezier-y="-19"></slur>
</notations>
</note>
<note default-x="17">
<chord/>
<pitch>
<step>B</step>
<octave>3</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="-40">down</stem>
<notations>
<slur type="start" number="2" default-x="6" default-y="17" placement="above" bezier-x="32" bezier-y="24"></slur>
</notations>
</note>
<note default-x="87">
<pitch>
<step>A</step>
<octave>3</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="-35">down</stem>
</note>
<note default-x="145">
<pitch>
<step>A</step>
<octave>2</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="-63">down</stem>
<notations>
<slur type="stop" number="1" default-x="-6" default-y="-50" bezier-x="-36" bezier-y="-8"></slur>
</notations>
</note>
<note default-x="145">
<chord/>
<pitch>
<step>G</step>
<octave>3</octave>
</pitch>
<duration>2</duration>
<voice>1</voice>
<type>half</type>
<stem default-y="-63">down</stem>
<notations>
<slur type="stop" number="2" default-x="6" default-y="14" bezier-x="-31" bezier-y="26"></slur>
</notations>
</note>
<backup>
<duration>6</duration>
</backup>
<forward>
<duration>2</duration>
<voice>2</voice>
</forward>
<note default-x="87">
<pitch>
<step>A</step>
<octave>3</octave>
</pitch>
<duration>2</duration>
<voice>2</voice>
<type>half</type>
<stem default-y="28">up</stem>
<notations>
<slur type="continue" number="1" default-x="-18" default-y="21" placement="above" bezier-x2="6" bezier-y2="11"></slur>
<slur type="stop" number="1" default-x="14" default-y="21" bezier-x="-6" bezier-y="11"></slur>
</notations>
</note>
</measure>
<!--=======================================================-->
<measure number="4" width="109">
<note default-x="20">
<pitch>
<step>F</step>
<alter>1</alter>
<octave>3</octave>
</pitch>
<duration>4</duration>
<voice>1</voice>
<type>whole</type>
</note>
<backup>
<duration>4</duration>
</backup>
<note default-x="20">
<pitch>
<step>D</step>
<octave>3</octave>
</pitch>
<duration>4</duration>
<voice>2</voice>
<type>whole</type>
</note>
<barline location="right">
<bar-style>light-heavy</bar-style>
</barline>
</measure>
</part>
</score-partwise>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -187,6 +187,7 @@ object ScreenSolfa : Screen {
} }
MyVerticalScrollbar( MyVerticalScrollbar(
scrollState, scrollState,
modifier = Modifier.align(Alignment.CenterEnd)
) {} ) {}
} }
} }

View file

@ -2,9 +2,11 @@ package mg.dot.feufaro.ui
import androidx.compose.foundation.ScrollState import androidx.compose.foundation.ScrollState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@Composable @Composable
expect fun MyVerticalScrollbar ( expect fun MyVerticalScrollbar (
scrollState: ScrollState, scrollState: ScrollState,
content: @Composable () -> Unit modifier: Modifier = Modifier,
content: @Composable () -> Unit,
) )

View file

@ -5,6 +5,7 @@ import androidx.compose.foundation.VerticalScrollbar
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.fillMaxHeight import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.rememberScrollbarAdapter import androidx.compose.foundation.rememberScrollbarAdapter
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
@ -14,13 +15,14 @@ import androidx.compose.ui.graphics.Color
@Composable @Composable
actual fun MyVerticalScrollbar ( actual fun MyVerticalScrollbar (
scrollState: ScrollState, scrollState: ScrollState,
content: @Composable () -> Unit modifier: Modifier,
content: @Composable () -> Unit,
) { ) {
Box { Box ( modifier = Modifier.fillMaxSize()){
content()
VerticalScrollbar( VerticalScrollbar(
adapter = rememberScrollbarAdapter(scrollState = scrollState), adapter = rememberScrollbarAdapter(scrollState = scrollState),
modifier = Modifier.fillMaxHeight(0.5f).background(Color.Green).align(Alignment.CenterEnd) modifier = modifier.fillMaxHeight(0.5f).background(Color.Green)
) )
//content()
} }
} }