Another point: the tab button should be different from the regular button. Right now, I added a hack in the button drawing that goes like this: buttonNormalFillStyleFor: aButton "Return the normal button fillStyle for the given button." (aButton valueOfProperty: #noFill ifAbsent: [false]) ifTrue: [^ SolidFillStyle color: Color transparent ]. ^ self glamorousNormalFillStyleFor: aButton height: aButton height And when I create the tab button, I populate the #noFill property: (aWin newButtonFor: each getState: nil action: #actOn: arguments: {aBrowser} getEnabled: nil labelForm: each icon help: each title) valueOfProperty: #noBorder ifAbsentPut: [true]; valueOfProperty: #noFill ifAbsentPut: [true]; yourself Still, this is a hack :). Cheers, Doru On 4 Sep 2010, at 23:25, Tudor Girba wrote:
Hi again,
While working on the Glamorous Theme, I basically had to learn the design of polymorph and or the theme system. I think the structure is pretty nice, but it still requires work to offer more flexibility. I list here some of the notes I took. I would be happy to provide more feedback and even work with someone on this:
- How to control the rounded/square corners of the droplist, normal list and text boxes?
- How to control a Splitter drawing? It looks like it does not matter what we specify in separatorFillStyleFor:, it is still drawn embossed.
- How to control the menu title? I would like to be able to control the color of the title of the menu (the one that appears for example in the world menu).
- How to control the menu rendering? I would like to be able to control the fill style of the menu.
- How to control the color of the PanelMorph when the Window is not active? Right now it just gets lighter. I would like to be able to control it, but it looks impossible from the Theme.
- How to control the padding of a panel, groupbox, or tab?
- How to control the space between buttons in a toolbar?
- How to control the menu button in a toolbar? When there is a button with a menu in a toolbar, a default button is created with a gradient that cannot be controlled from the theme.
- How to control the menu close button after the menu was pinned?
- How to control the display of a splitter in a menu? The MenuLineMorph hardcodes the minWidth and minHeight. It should be delegated to the Theme.
- MorphTreeMorph needs to work with Theme (e.g., in adoptPaneColor:)
- How to control the arrows of scrollbars? In particular, we would need to be able to define the forms in the theme, not just the vertices.
- The settings for the menu rendering seem to affect the rendering of the progress bars. There should be separate entries for the two in the Theme.
- It is unclear what the ThemeSettings is for. What goes here and what goes in the Theme?
- Some icons are defined in the Theme instance variables, and some are defined in the ThemeIcons.
- Is it intended for the ThemeSettings to be subclassed?
- Some preferences from ThemeSettings are hardcoded. For example: menuShadowColor or menuTitleBorderColor.
- How to control the tick of a checkbox or of a radio button? Right now, there is a tick that gets drawn even if I specify the radioButtonSelectedForm or checkboxSelectedForm
Cheers, Doru
-- www.tudorgirba.com
"We cannot reach the flow of things unless we let go."
-- www.tudorgirba.com "Obvious things are difficult to teach."