madpink / mp-livecode-controls Goto Github PK
View Code? Open in Web Editor NEWMadPink's Uber-Controls Widget for Livecode
License: Creative Commons Attribution Share Alike 4.0 International
MadPink's Uber-Controls Widget for Livecode
License: Creative Commons Attribution Share Alike 4.0 International
Instead of homogeneous control sets, allow configuration of multiple kinds of controls in the same set.
oo much space at the bottom, too little space at the top.
Appears that controlBufferV is only adding space to the bottom and not the top.
Everything looks properly spaced when set to 0.
-Sliders
-Switches
-Progress Bars
-Numeric Up/Down
-Button Bar
Handle of slider stops moving when hitting the lowest limit (but not the highest)
Sliders default data in place
Add for all other controls
forceRedraw is semi-useful for testing, but at this point it might be obsolete
if forceRedraw is removed, manualRedraw would need to be removed
(if kept, add to wiki and help docs)
Need to increase the area where a user can grasp the handle
Property is not being set correctly when widget is created. Have kludge in place for now, but need to track down why it is happening
Add property for prefix and/or suffix for the value.
e.g. 50%
Add the Action Wheel style as an alternative to the Action button bar.
seems to eventually draw correctly, but not all the time... needs prodding
Idea: small customizable box to display something. For example:
None of the variables indicate why it does not work.
Thought: set font sizes get scaled at certain intervals . (or percents)
can this be done taking both height and width into account?
Duplicate properties
Too much space at the bottom, too little space at the top.
Appears that controlBufferV is only adding space to the bottom and not the top.
Everything looks properly spaced when set to 0.
Fixed height buttons and multiple columns are not displaying correctly.
Not sure where to put tabs, and if they will play well with bottom buttons, title and input boxes.
General plan of action:
-separate array of data for tabs
-variable and/or property to keep track of which tab is selected
-boolean property to show or hide tabs
-each tab reads in a saved control set to mData
Movement of the handle stops when the upper or lower limit is reached and it requires regrasping in order to move again. Also, sometimes it gets stuck.
Use center circle as "Confirmation button"
Needs to be tested: array key "props" when added to myData should update individual properties throughout.
Test in:
Add secondary color to one side of the handle.
The handle can also be removed and this can function as a progress bar (add to sliderType)
To add new icons with LCS, you need to get iconData, add it and then set iconData again.
Need to add an option to add an SVG path using the correct keys without taking and setting the entire array.
In some revision, the fixed spacing stopped working, regardless of column size
Add button bar layout option that will produce a pin pad. Use in conjunction with #14 to draw circles to represent input.
Numeric Up/Down stalls when it hits min value, will not increase. (works fine when max is hit)
currently a circle, can be defaulted to circle SVG
will need to add myData prop for this
It seems as though when you press a button and it is hilighted, it may stay hilighted.
Possibly due to movement out of the box that the button is in?
` 1. create "inner circle": subtract radius of button's circle from radius of main circle
tRadiusInnerCircle = tRigRad-tLilRad
calculate angle at which the center of each button will be:
put the number of elements in mData into tCount
tCicleLocation[buttonnum]["angle"] = (tCount)/(2*pi())
calcualte x & y for the center of each circle:
tCircleLocation[buttonnum]["x"] = tLilRad * (
-- tBigRad is the radius of the main circle across the widget
if my width > my height then
put my height/2 into tBigRad
else
put my width/2 into tBigRad
end if
-- tLilRad is the radius of each small button around the edge
put tBigRad/4 into tLilRad
-- finding the corrdinates of the center of the main cirle
put my width/2 into tBigX
put my height/2 into tBigY
put point [(my width/2),(my height/2)] into tCenter
fill circle path centered at tCenter with radius tBigRad on this canvas
-- create an "inner circle" by subtracting the radius of a button from the radius of the main circle
put tBigRad - tLilRad into tInnerRad
-- calculate angle in radians from the for the center of each button
put (the number of elements in mData)/(2 * pi()) into tButtonAngles
repeat with tButtonNumber from 1 up to the number of elements in mData
put tInnerRad * (tButtonNumber-1 * tButtonAngles) into tAngle
put tBigX * cos(tAngle * pi()) into tButtonX
put tBigY * sin(tAngle * pi()) into tButtonY
put point [tButtonX, tButtonY] into tButtonCenter
fill circle path centered at tButtonCenter with radius tLilRad on this canvas
end repeat
`
-in some places, truth value is held in strings instead of Boolean values
-started doing this because of array issues... will this cause issues when setting myData with boolean values?
AYA-encoded input for myData, so flat text will be added and converted into an array for myData .
Under certain circumstances, the slider can change the value of the Numeric Up/Down; and vice versa.
Animate the interaction of controls. For example, animate a switch once pressed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.