Giter Club home page Giter Club logo

w4d's People

Contributors

kanzakikino avatar webfreak001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

webfreak001

w4d's Issues

Optimize layout.

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.

ToDo

  • Add handleResize/handleMove to Layoutable interface.
  • Implement handleResize/handleMove methods to Widget.
  • Change Layout to just moving, if parent size isn't changed.

Failed to place the too big child.

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

ScrollPanelWidget not working properly

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?

Implement Logger.

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.

Disabled, readonly, toggle buttons

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)

GravityLayout issue.

Describe the bug
Widgets placed by GravityLayout may protrudes to outside of client area of the parent.
So the widgets sometimes don't react to mouse action.

deepinscreenshot_select-area_20180820001702
And this layouting is not expected. Removing the spaces of the widgets, or so on is expected.

Allow children on GravityLayout

Centering texts works well with GravityLayout, but I also want to center entire widgets (in my case, a table) to the parent

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.