Comments (1)
Is it possible for a client to design their own widget, add it to a layout, and have it rendered?
Yes, completely. There's really nothing special about the mixin implementations, but I completely understand that the whole structure is really confusing. We're thinking about how we can clean this lot up, and make it more idiomatic.
To very briefly describe the current layout:
- The top level is the theme. This is really just a factory for a number of control types that implement the interfaces in the GXUI root. The theme can tweak the control's colors and styling by changing fields and overriding some of methods of the mixins.
- The
mixins
directory holds full, un-styled implementations of the various controls. They usually 'derive' from one of the types in thebase
package. - The
mixins\base
package provides the bulk of the implementation forControl
andContainer
types. They are formed from pulling together a bunch of parts. - The
mixins\parts
package holds partial implementations of controls. i.e.Layoutable
implements theSetMargin
,Margin
,Bounds
,Layout
, andRelayout
methods the way most of controls would want. You can cherry-pick these parts into your new control to remove boilerplate code.
If it's possible, this might make for a good, simple example.
I agree more samples are usually good, but I'm wary of giving examples at this stage for things that are very likely to significantly change. I don't think anyone is happy with the way Component are currently built (the whole mixin and FooOuter stuff are like hammering a square-peg in a round hole). If we can sort this out, then I'm more than happy to create step-by-step tutorials.
If you'd like any more information on any of this, please ask away. The more information I can share, the higher chance there is that someone can offer a far better and cleaner approach to solve the same problems. :)
from gxui.
Related Issues (20)
- Resizing grid layout HOT 1
- Problem building gxui - cgo exit status and libintl-8.dll problems? HOT 3
- question freetype didn't findit HOT 3
- Error when run samples HOT 1
- Table cols and rows are reversed. HOT 7
- how to read a pixel on a canvas?
- Examples don't appear to support HiDPI screens HOT 1
- GXUI is now unmaintained HOT 7
- Writing a custom control
- Prohibition on window resizing
- TextBox and/or CodeEditor Multi-Directional Scrolling HOT 6
- Error when run sample on web HOT 2
- building using gb fails
- 官方的gui死掉了? HOT 1
- gxui Project also can restart? HOT 2
- What is the reason behind stopping the development of this project? HOT 2
- pop up box
- Build error HOT 1
- error on go get HOT 1
- possible to use gxui to create webview to load html/js/css as ui HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gxui.