Giter VIP home page Giter VIP logo

munin's People

Contributors

kazdragon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

gitter-badger

munin's Issues

Implement Compass Layout

A layout that aligns components according to compass points -> North, South, East, West, and Centre.

Implement a Client

A Client would be the top level UI component that is responsible for

  • The actual draw-to-client scenario (involving screens, windows, etc.)
  • Non-component UI behaviour (e.g. screen buffers, title bars, etc.)

Add readme

Should also include badges e.g. Coveralls.

Rethink relationship between Window and Canvas

Implementation of the acceptance test has shown that the relationship between the Window and the canvas upon which it is drawn is too loose. In particular, whenever the size of the window is changed, the canvas size must also change, and also a redraw must be scheduled.

There is also the side-effect that the draw function has very weird parameters. If canvas were instead a member, then many of these details would go away.

However, canvas cannot currently be a reference member, and thus cannot be injected for tests: resizing a canvas requires an assignment to a completely new canvas. Creating a new canvas function to resize it would solve this problem.

Implement Scroll Pane

A component that composes a scroll frame with a viewport to another central component.

component::draw should be const

A draw operation is not an event, and should be logically const (even if some caching operations are happening behind the scenes).

Remove enable/disable from component

It may be that a component can be enabled or disabled, but what that means is unique to the component (e.g. a button may not be clicked, a text field can be clicked but not edited, etc.)

Therefore, this should not be a generic property of component. It should instead be down to the concrete types, and only manipulable from the owners of the component.

Implement view helper function

Paradice provided a helper function called view that allowed easier composition of layouts. E.g.

auto container = view(
make_compass_layout(),
left_ui_component, compass_layout::heading::west,
right_ui_component,
compass_layout::heading::east);

Allow Compass Layout multiple components per direction

At the moment, Compass Layout expects only one component in each direction. This is how it worked in Paradice. It could be improved such that if there are multiple components in a direction, those components are "stacked", similarly to the current workaround that is, e.g. creating a compass layout with a component on the south, and the adding a container to the middle that uses a compass layout on the south, and so on.

Clean up and test Window

The piece that brings the whole together and makes everything work is the Window abstraction. Cleaning this up should involve:

  • Removing dependency on ASIO. Instead, the provided context should supply the functions needed.
  • Making sure all tests cases are covered, including interactions with the terminal, and repaint algorithms.

Document Fundamentals

This should have been done as I went along, but apparently I need to remind myself.

Implement Composite Component

A composite component is an intermediary class that allow a component to use another component (e.g. a container) as the basis for its design.

Implement Static Layout

A layout in which the preferred size is a fixed value and components are placed and sized manually.

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.