kanzakikino / w4d Goto Github PK
View Code? Open in Web Editor NEWWidgets Library for dlang.
License: GNU Lesser General Public License v3.0
Widgets Library for dlang.
License: GNU Lesser General Public License v3.0
ctrl-c/ctrl-v
Layout is too slow, because now it calculates all styles if it's not changed.
So it's necessary just to move widgets using shiftChildren, if parent size is not changed.
And resizing elements is too, add handleResize and handleMove methods to improve.
Disabled buttons should be grayed out and not clickable
Readonly buttons should just be not clickable
Toggle buttons stay pressed when you click them (much like checkboxes, just rendered as buttons)
A progress bar. Output counter part for the slider input widget.
It should at least have a normal progress state and intermediate state.
Maybe also allow labels:
[############ 80% ####### ]
See also: https://material.io/design/components/progress-indicators.html#usage
w4d.layout.exception.LayoutException@../../.dub/packages/w4d-master/w4d/src/w4d/layout/split.d(19): Failed to place the too big child.
----------------
/usr/include/dlang/dmd/std/exception.d:515 void std.exception.bailOut!(w4d.layout.exception.LayoutException).bailOut(immutable(char)[], ulong, scope const(char)[]) [0xb9727c15]
/usr/include/dlang/dmd/std/exception.d:436 bool std.exception.enforce!(w4d.layout.exception.LayoutException).enforce!(bool).enforce(bool, lazy const(char)[], immutable(char)[], ulong) [0xb971c1e6]
../../.dub/packages/w4d-master/w4d/src/w4d/layout/split.d:19 void w4d.layout.split.SplitLayout!(true).SplitLayout.updateStatus(g4d.math.vector.Vector!(float, 2u).Vector) [0xb970b549]
../../.dub/packages/w4d-master/w4d/src/w4d/layout/lineup.d:47 void w4d.layout.lineup.LineupLayout!(true).LineupLayout.place(g4d.math.vector.Vector!(float, 2u).Vector, g4d.math.vector.Vector!(float, 2u).Vector) [0xb971d0df]
../../.dub/packages/w4d-master/w4d/src/w4d/widget/base/package.d:129 g4d.math.vector.Vector!(float, 2u).Vector w4d.widget.base.Widget.layout(g4d.math.vector.Vector!(float, 2u).Vector, g4d.math.vector.Vector!(float, 2u).Vector) [0xb97108ca]
../../.dub/packages/w4d-master/w4d/src/w4d/widget/base/package.d:122 void w4d.widget.base.Widget.layout(g4d.math.vector.Vector!(int, 2u).Vector) [0xb9710854]
../../.dub/packages/w4d-master/w4d/src/w4d/widget/root.d:35 void w4d.widget.root.RootWidget.layout(g4d.math.vector.Vector!(int, 2u).Vector) [0xb9719474]
../../.dub/packages/w4d-master/w4d/src/w4d/task/window.d:114 bool w4d.task.window.Window.exec(w4d.app.App) [0xb970ef36]
../../.dub/packages/w4d-master/w4d/src/w4d/app.d:45 bool w4d.app.App.exec().__lambda1!(w4d.app.Task).__lambda1(w4d.app.Task) [0xb970a5b1]
/usr/include/dlang/dmd/std/algorithm/mutation.d:2397 w4d.app.Task[] std.algorithm.mutation.removePredStable!(w4d.app.App.exec().__lambda1, w4d.app.Task[]).removePredStable(w4d.app.Task[]) [0xb970a52c]
/usr/include/dlang/dmd/std/algorithm/mutation.d:2250 w4d.app.Task[] std.algorithm.mutation.remove!(w4d.app.App.exec().__lambda1, 2, w4d.app.Task[]).remove(w4d.app.Task[]) [0xb970a4d4]
../../.dub/packages/w4d-master/w4d/src/w4d/app.d:45 int w4d.app.App.exec() [0xb970a3e0]
source/app.d:27 _Dmain [0xb9546e5f]
this issue seems to happen a lot. Also happens in the imgviewer example when resizing around
I have this layout:
VerticalScrollPanelWidget
.contents:
PanelWidget:VerticalLineupLayout
PanelWidget:VerticalMonospacesSplitLayout {x10}
PanelWidget:HorizontalLineupLayout
TextWidget
TextWidget
TextWidget
TextWidget
the scrollbar doesn't go all the way down if the parent container is not big enough (children are clipped outside). After manually setting the {x10}
PanelWidget height to 80px it works for more sizes, but it's still broken.
Am I using the ScrollPanelWidget wrong?
Now w4d outputs warnings to console using writeln
. But the console sometimes doesn't work properly. For example, Git Bash on Windows.
So it has should support to output to files also.
Centering texts works well with GravityLayout, but I also want to center entire widgets (in my case, a table) to the parent
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.