StevensDeptECE / GrailGUI

GrailGUI is a prototype of a replacement for web programming (HTTP, HTML, CSS, JavaScript) and GUI programming. It includes a client graphical API, a browser implemented in C++ and OpenGL, a protocol to transmit metadata and data in binary, a language (XDL) to describe the binary data, and local storage to retain data on the client should that be necessary. Encrypted communications (equivalent of TLS) have not yet been implemented.
GNU General Public License v3.0
7 stars 14 forks source link

Split AxisWidget into two widgets, one to be horizontal, and the other vertical #20

Closed dkrautha closed 3 years ago

dkrautha commented 3 years ago

After working more on making vertical tick label drawing look better, AxisWidget is getting significantly more crowded with code for both horizontal and vertical drawing ending up in the same functions. At this point its probably best to split them into two separate widgets, or to subclass from some parent class that acts as an interface for the two of them.

dkrautha commented 3 years ago

We should leave issue #15 alone for now until this issue is closed, as any changes made to #15 now will have to be overwritten once this is closed.

dkrautha commented 3 years ago

In designing VerticalAxisWidget, there's a need to have one StyledMultiShape, and two MultiTexts, one to be horizontal to draw the vertically descending tick labels, and the other to draw the axis title vertically. This doesn't follow the convention of Widget2D, so I'll be switching to using SuperWidget2D.

dkrautha commented 3 years ago

So I broke something in MultiText and despite reversing my changes to be 1-to-1 with main and building clean, I could not get text to be rendered to the screen anymore. I'm closing this issue because of that as well as the changes were likely going to increase complexity of using axes anyway by having double the number of possible objects.