Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Breaking Change] Replace elmesque crate with primitive graphics widgets (see comment for more details). #626

Merged
merged 124 commits into from
Dec 12, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
347e091
Add a basic Line widget
mitchmindtree Nov 5, 2015
84d946b
Add basic Rectangle widget. Still need to make PointPath widget befor…
mitchmindtree Nov 5, 2015
5dc6cb7
Added rectangle, line, point_path, framed_rectangle, oval, circle and…
mitchmindtree Nov 8, 2015
a795f2d
Added example for primitive widgets
mitchmindtree Nov 8, 2015
2dc30f5
Make assets folder search depth deeper
mitchmindtree Nov 8, 2015
049b1b0
Expose primitive widgets
mitchmindtree Nov 8, 2015
594270e
Add primitive widgets
mitchmindtree Nov 8, 2015
77a9194
Add type and functions for diff-ing iterators, add function for findi…
mitchmindtree Nov 8, 2015
184dbd5
Add methods for stretching range and rect to some given position/point
mitchmindtree Nov 8, 2015
52d4c89
Begin changing over widgets to use primitive widgets instead of drawi…
mitchmindtree Nov 8, 2015
e3bccb9
Minor changes before switching to update master
mitchmindtree Nov 10, 2015
6c49b7c
Add picking_passthrough method to allow widgets to be instantiated tr…
mitchmindtree Nov 12, 2015
54d5b7a
Update all_widgets to use conrod Circle rather than from graphics cra…
mitchmindtree Nov 12, 2015
594655c
Fix bug where scroll offset would behave incorrectly if one widget wa…
mitchmindtree Nov 13, 2015
323856b
Simplify all_widgets example using piston_window
mitchmindtree Nov 13, 2015
11b2ddd
Clean up counter example
mitchmindtree Nov 13, 2015
aeca37f
Change Theme to use hashmap for storing unique style defaults for wid…
mitchmindtree Nov 15, 2015
c159946
Remove old draw code from button
mitchmindtree Nov 15, 2015
89c9521
Update examples to Theme breaking changes
mitchmindtree Nov 15, 2015
da009f0
Add Ui::set_widgets to more clearly distinguish between the widget se…
mitchmindtree Nov 22, 2015
6218def
Abstract TitleBar into its own widget, update to new graph::Edge::Gra…
mitchmindtree Nov 22, 2015
1df4f1b
Add a new Graphic Edge variant to the Graph and add a Widget::graphic…
mitchmindtree Nov 22, 2015
1eb323a
Add a graph method for resetting non updated widgets after the set_wi…
mitchmindtree Nov 24, 2015
c281c56
Update to latest version of daggy
mitchmindtree Nov 24, 2015
1dee75d
Publicly expose graph module
mitchmindtree Nov 24, 2015
5d9b4ae
Remove unnecessary Decodable trait import
mitchmindtree Nov 24, 2015
d820c72
Remove unnecessary Canvas import
mitchmindtree Nov 24, 2015
c855a22
Refactor graph module by simplifying Graph methods to behave as a sim…
mitchmindtree Nov 24, 2015
08347a7
Add an internal Window widget instantiated by the Ui at the beginning…
mitchmindtree Nov 25, 2015
aadfd31
Improve set_edge docs
mitchmindtree Nov 25, 2015
ac8442d
Add reset_node function to reset_non_updated_widgets function. Remove…
mitchmindtree Nov 25, 2015
2553562
Move widget is_updated logic out of the Graph and into the Ui
mitchmindtree Nov 25, 2015
86535d0
Write initial backend drawing functionality using the piston Graphics…
mitchmindtree Nov 26, 2015
195559f
Use pub KIND const and expose stuff necessary for drawing in backend …
mitchmindtree Nov 26, 2015
c516bd9
Extra helper methods on Rect for getting useful edge and dimension co…
mitchmindtree Nov 26, 2015
74d557a
Remove unnecessary Float bound from map_range args
mitchmindtree Nov 26, 2015
d4be3fe
Expose UniqueWidgetState and add downcasting helper methods for use w…
mitchmindtree Nov 26, 2015
c02e4e2
Add backend module
mitchmindtree Nov 26, 2015
9386adf
Begin changeover to backend drawing
mitchmindtree Nov 26, 2015
e51e6ae
Clean up backend module and add nicer docs. Remove direct use of grap…
mitchmindtree Nov 26, 2015
81c020c
Publicly expose backend module
mitchmindtree Nov 26, 2015
41d56cf
Draw the scroll bars
mitchmindtree Nov 27, 2015
f83c2af
Remove unnecessary bitflags crate
mitchmindtree Nov 27, 2015
f7ef900
Add new primitive widget Text
mitchmindtree Nov 27, 2015
5633fb2
Move GlyphCache into its own module and add iterators for yielding wr…
mitchmindtree Nov 27, 2015
d3a9591
Add alignment methods to Range and Rect
mitchmindtree Nov 28, 2015
a883988
Add methods for aligning Ranges and Rects to the outside of other Ran…
mitchmindtree Nov 29, 2015
d867961
Add LineBreaks, Lines and CharXs iterators for glyph_cache module
mitchmindtree Nov 30, 2015
9da591f
Add initial support for rendering multi-line text
mitchmindtree Dec 1, 2015
9dd5f72
Remove unnecessary Wrap retrieval
mitchmindtree Dec 1, 2015
9af8c24
Remove unnecessary start field from Lines
mitchmindtree Dec 1, 2015
09756ee
Expose the LineBreak iterator
mitchmindtree Dec 1, 2015
1a31ec1
Add function that checks the equality of elements yielded by two iter…
mitchmindtree Dec 1, 2015
84908c0
Fix formatting
mitchmindtree Dec 1, 2015
7e7d05c
Add walker for yielding the Rect of each line yielded by some line it…
mitchmindtree Dec 1, 2015
5e977ad
Don't include wrapped whitespace in proceeding line
mitchmindtree Dec 2, 2015
b6747c0
Fix LineBreak so that Wrap includes the number of bytes to skip to re…
mitchmindtree Dec 2, 2015
c3fb54c
Simplify LineRects::next_with_line
mitchmindtree Dec 2, 2015
9eaeaef
Simplify Range::new constructor
mitchmindtree Dec 2, 2015
0c6ba45
Move position.rs into its own directory in order to split into multip…
mitchmindtree Dec 2, 2015
4de99eb
Move Range into its own repository and add extensive docs with tests
mitchmindtree Dec 2, 2015
361479f
Move Rect into its own module. Move matrix module into its own file. …
mitchmindtree Dec 2, 2015
fba2046
Add proper support for x axis text alignment
mitchmindtree Dec 2, 2015
62a6950
Add method for getting the kid_area for a widget from the Ui
mitchmindtree Dec 2, 2015
4ed5108
Fix LineRects yielded y positions. Add line_spacing method.
mitchmindtree Dec 2, 2015
180c5dd
Show off more Text stuff
mitchmindtree Dec 2, 2015
a5ac052
Add KidAreaOf Position variant
mitchmindtree Dec 2, 2015
03298f8
Fix kid_area_of to return padded kid_area rect
mitchmindtree Dec 2, 2015
9c34ad6
Round position for text to avoid artefacts
mitchmindtree Dec 2, 2015
1ae894c
Change Button to use Text instead of Label
mitchmindtree Dec 2, 2015
832c7db
Change Button react function to FnOnce for nicer API
mitchmindtree Dec 2, 2015
97ec3d3
Update Toggle to latest graphics_widgets changes
mitchmindtree Dec 2, 2015
2e14a81
Remove unnecessary draw function from Label
mitchmindtree Dec 2, 2015
cc07a4f
Use new Text widget instead of Label
mitchmindtree Dec 3, 2015
0c794f7
Remove unnecessary draw method from Matrix Widget implementation
mitchmindtree Dec 3, 2015
9a1a10b
Use new Text widget instead of Label
mitchmindtree Dec 3, 2015
d078963
Update to latest graphics_widgets changes
mitchmindtree Dec 3, 2015
1a5b01d
Fix frame in FramedRectangle drawing. Remove unnecessary draw code fr…
mitchmindtree Dec 3, 2015
5b14708
Remove ambiguous Add and Sub impls from Range and Rect
mitchmindtree Dec 3, 2015
4f0631d
Update Slider to use graphics_widgets
mitchmindtree Dec 3, 2015
bd3d5c1
Fix Slider child widget behaviour when scrolling
mitchmindtree Dec 3, 2015
ac82d31
Clean up imports in framed_rectangle module
mitchmindtree Dec 3, 2015
40c82f7
Update NumberDialer to use graphics_widgets
mitchmindtree Dec 3, 2015
f856c7f
Move Corner into rect.rs. Add closest_corner to Rect. Add Edge to ran…
mitchmindtree Dec 3, 2015
2dc15f0
Halfway through updating XYPad to use graphics_widgets
mitchmindtree Dec 3, 2015
0bf91d5
Remove old Horizontal, Vertical, HorizontalAlign and VerticalAlign ty…
mitchmindtree Dec 8, 2015
d0110a2
Simplify and add flexibility to Position by storing and calculating P…
mitchmindtree Dec 8, 2015
002ef98
Fix bugs following update to new Position API. Remove some unnecessar…
mitchmindtree Dec 8, 2015
b72347d
Remove old commented code
mitchmindtree Dec 8, 2015
1135db8
Clean up and fix bug in Position calculations in ui.rs
mitchmindtree Dec 8, 2015
1282fd2
Clean up imports and comment out old draw method for text_box.rs
mitchmindtree Dec 8, 2015
4b9fc91
Update XYPad to new position api, clean up imports
mitchmindtree Dec 8, 2015
0f134cb
Implemented value label widget to XYPad (need to fix colour still)
mitchmindtree Dec 9, 2015
b0d3c41
Add new IndexSlot type to simplify access to unique NodeIndexs for in…
mitchmindtree Dec 9, 2015
69efd60
Fix label positioning by adding kid_area implementation
mitchmindtree Dec 9, 2015
af0aa9c
Remove unnecessary float Vec in favour of simple helper closures and …
mitchmindtree Dec 9, 2015
16439da
Updated EnvelopeEditor to latest graphics_widgets changes
mitchmindtree Dec 9, 2015
d2cca43
Remove unnecessary PointPathStyle in favour of LineStyle
mitchmindtree Dec 9, 2015
e1c9898
Use if let instead of unnecessary map
mitchmindtree Dec 9, 2015
194b09f
Remove unnecessary corner function from position module in favour of …
mitchmindtree Dec 9, 2015
4c58e7b
Update all_widgets to EnvelopeEditor changes
mitchmindtree Dec 9, 2015
9ded817
Remove old unnecessary draw methods
mitchmindtree Dec 9, 2015
73a82ea
Temporarily comment out text.rs methods that will be useful for multi…
mitchmindtree Dec 9, 2015
20c2688
Use const in slider.rs to remove magic numbers
mitchmindtree Dec 9, 2015
36a4b9c
Update TextBox to new graphics_widgets changes
mitchmindtree Dec 9, 2015
f553371
Add color module in anticipation of elmesque removal
mitchmindtree Dec 9, 2015
a973b32
Update custom_widget example to graphics_widgets changes
mitchmindtree Dec 9, 2015
637beab
Add some helper functions for color module
mitchmindtree Dec 9, 2015
3502669
Remove the elmesque crate\!
mitchmindtree Dec 9, 2015
7f80745
Remove unnecessary Label widget in favour of Text
mitchmindtree Dec 9, 2015
15d12b6
Remove rustc-serialize and json_io crates
mitchmindtree Dec 9, 2015
acf725c
Remove rustc-serialize from custom_widget example
mitchmindtree Dec 9, 2015
5139605
Remove highly fallible reset_node functionality in favour of comparin…
mitchmindtree Dec 10, 2015
c36ffb5
Remove unnecessary commented out draw code from Tabs
mitchmindtree Dec 10, 2015
3577193
Remove old unnecessary draw code
mitchmindtree Dec 10, 2015
aa5cc02
Remove old PointPathStyle stuff
mitchmindtree Dec 10, 2015
a85892b
Set lower ups for examples to avoid unnecessarily using cpu
mitchmindtree Dec 11, 2015
07e26b9
Avoid truncating and losing unique indices to nodes within the graph …
mitchmindtree Dec 11, 2015
69e4311
Add instantiation_order_idx to the widget Container type within the g…
mitchmindtree Dec 11, 2015
3cfd2a9
Remove old unnecessary position.rs helper functions (use Range and Re…
mitchmindtree Dec 11, 2015
6fcad85
Remove Option from Widget::parent argument, add Widget::no_parent to …
mitchmindtree Dec 11, 2015
0e9500d
Update README to latest changes.
mitchmindtree Dec 11, 2015
f16341f
Increment version for breaking changes
mitchmindtree Dec 11, 2015
a1f38bf
Remove unnecessary reverse in depth_order creation now that we proper…
mitchmindtree Dec 12, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]

name = "conrod"
version = "0.23.0"
version = "0.24.0"
authors = [
"Mitchell Nordine <mitchell.nordine@gmail.com>",
"Sven Nilsen <bvssvni@gmail.com>"
Expand All @@ -22,16 +22,12 @@ path = "./src/lib.rs"


[dependencies]
bitflags = "0.3.2"
time = "0.1.34"
elmesque = "0.11.0"
json_io = "0.1.2"
daggy = "0.2.0"
daggy = "0.3.0"
pistoncore-input = "0.8.0"
piston2d-graphics = "0.12.0"
num = "0.1.27"
rand = "0.3.12"
rustc-serialize = "0.3.16"
time = "0.1.34"
vecmath = "0.2.0"

[dev-dependencies]
Expand Down
33 changes: 20 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ Features
- Powerful [layout and positioning](http://docs.piston.rs/conrod/conrod/trait.Positionable.html):
- Placement - `.middle()`, `.top_left_of(CANVAS)`, etc.
- Alignment - `.align_left()`, `.align_top_of(LABEL)`, etc.
- Relative - `.down(20.0)`, `.right_from(BUTTON, 40.0)`, `.relative_xy(20.0, 42.0)`, etc.
- Absolute - `.xy(6.0, 7.0)`
- Relative - `.down(20.0)`, `.right_from(BUTTON, 40.0)`, `.xy_relative(20.0, 42.0)`, etc.
- Absolute - `.x_y(6.0, 7.0)`
- Draggable pop-up / floating canvasses - `.floating(true)`.
- [WidgetMatrix](http://docs.piston.rs/conrod/conrod/struct.WidgetMatrix.html) and [PositionMatrix](http://docs.piston.rs/conrod/conrod/struct.PositionMatrix.html) for instantiating a grid of widgets.
- Serializable [`Theme`](http://docs.piston.rs/conrod/conrod/theme/struct.Theme.html)s for unique style and layout defaults.
Expand All @@ -53,22 +53,37 @@ Features
Available Widgets
-----------------

### Primitives

- Shapes:
- Circle
- Rectangle
- Oval
- Polygon
- FramedRectangle
- Line
- PointPath
- Text (automatic line-wrapping, line spacing, etc)

### Interactive

- [Button](http://docs.piston.rs/conrod/conrod/struct.Button.html)
- [Canvas](http://docs.piston.rs/conrod/conrod/struct.Canvas.html) (Can be positioned manually or by using the [Split](http://docs.piston.rs/conrod/conrod/struct.Split.html) or [Tabs](http://docs.piston.rs/conrod/conrod/struct.Tabs.html) wrappers for auto-layout)
- [DropDownList](http://docs.piston.rs/conrod/conrod/struct.DropDownList.html)
- [EnvelopeEditor](http://docs.piston.rs/conrod/conrod/struct.EnvelopeEditor.html)
- [Label](http://docs.piston.rs/conrod/conrod/struct.Label.html)
- WidgetMatrix
- [NumberDialer](http://docs.piston.rs/conrod/conrod/struct.NumberDialer.html)
- [Slider](http://docs.piston.rs/conrod/conrod/struct.Slider.html)
- [TextBox](http://docs.piston.rs/conrod/conrod/struct.TextBox.html)
- TitleBar
- [Toggle](http://docs.piston.rs/conrod/conrod/struct.Toggle.html)
- [XYPad](http://docs.piston.rs/conrod/conrod/struct.XYPad.html)
- Custom: Conrod also provides a [Widget trait](http://docs.piston.rs/conrod/conrod/trait.Widget.html) for designing and implementing custom widgets. You can find an annotated demonstration of designing a custom widget implementation [here](https://github.com/PistonDevelopers/conrod/blob/master/examples/custom_widget.rs). All [internal widgets](https://github.com/PistonDevelopers/conrod/blob/master/src/widget) also use this same trait so they should make for decent examples. If you feel like your widget is useful enough to be included within the internal widget library, feel free to add them in a pull request :)

**To-do:**
- [Menu Bar / Tool Bar](https://github.com/PistonDevelopers/conrod/issues/417)
- [Right-click Context Menu](https://github.com/PistonDevelopers/conrod/issues/394)
- [Text Area](https://github.com/PistonDevelopers/conrod/issues/62)
- [Multi-line Text Editor](https://github.com/PistonDevelopers/conrod/issues/62)
- [Graph / Chart](https://github.com/PistonDevelopers/conrod/issues/84)
- [File/Directory Navigator](https://github.com/PistonDevelopers/conrod/issues/381)
- [Advanced graph visualisation and control](https://github.com/PistonDevelopers/mush)
Expand Down Expand Up @@ -103,7 +118,7 @@ You can add it to your project by adding this to your Cargo.toml:

```toml
[dependencies]
conrod = "*"
conrod = "X.Y.Z"
```


Expand All @@ -113,14 +128,6 @@ Dependency Graph
![dependencies](./Cargo.png)


Conrod uses Elmesque
--------------------

Conrod uses [Elmesque](https://github.com/mitchmindtree/elmesque) under the hood for its 2D
graphics and layout. You don't need to know about Elmesque to use Conrod. But if you want to
combine Conrod with your own custom Elmesque drawing, see [the example](https://github.com/PistonDevelopers/conrod/blob/master/examples/elmesque.rs).


Contributing
------------

Expand Down
Loading