Dropdown

Use Glamorous dropdowns to show a contextual popup associated with a UI element on click. This can be achieved by adding BrGlamorousWithDropdownAptitude BrWithDropdownAptitude subclass: #BrGlamorousWithDropdownAptitude instanceVariableNames: '' classVariableNames: '' package: 'Brick-Glamorous-Dropdown' look to any visual component, such as Button BlElement subclass: #BrButton uses: TBrEnableable + TBrLayoutAlignable + TBrLayoutResizable + TBrSizeAdjustable instanceVariableNames: 'labelModel iconModel interactiveModel' classVariableNames: '' package: 'Brick-Button - UI' .

BrGlamorousComponentsDropdowns>>#buttonWithLabel
	<gtExample>
	<return: #BrButton>
	^ BrButton new
		aptitude: BrGlamorousButtonWithLabelAptitude
				+ (BrGlamorousWithExplicitDropdownAptitude
						handle: [ BrButton new
								aptitude: BrGlamorousButtonRectangularAptitude + BrGlamorousButtonLabelAptitude;
								label: 'Click me' ]
						content: [ BlElement new
								background: (Color gray alpha: 0.2);
								size: 100 @ 100;
								margin: (BlInsets all: 10) ]);
		label: 'Click me'
        

BrGlamorousComponentsDropdowns>>#buttonWithIcon
	<gtExample>
	<return: #BrButton>
	^ BrButton new
		aptitude: BrGlamorousButtonWithIconAptitude
				+ (BrGlamorousWithExplicitDropdownAptitude
						handle: [ BrButton new
								aptitude: BrGlamorousButtonRectangularAptitude + BrGlamorousButtonIconAptitude;
								icon: BrGlamorousIcons menu ]
						content: [ BlElement new
								background: (Color gray alpha: 0.2);
								size: 100 @ 100;
								margin: (BlInsets all: 10) ]);
		icon: BrGlamorousIcons menu;
		label: 'Click me'
        

Sometimes it is necessary to hide a dropdown due to some user action, this can be achieved by firing BrDropdownHideWish BrAnchoredHideWish subclass: #BrDropdownHideWish instanceVariableNames: '' classVariableNames: '' package: 'Brick-Dropdown - Events' wish:

BrGlamorousComponentsDropdowns>>#hideDropdown
	<gtExample>
	<return: #BrButton>
	^ BrButton new
		aptitude: BrGlamorousButtonWithIconAptitude
				+ (BrGlamorousWithExplicitDropdownAptitude
						handle: [ BrButton new
								aptitude: BrGlamorousButtonRectangularAptitude + BrGlamorousButtonIconAptitude;
								icon: BrGlamorousIcons menu ]
						content: [ BrFrame new
								fitContent;
								addChild: (BrButton new
										aptitude: BrGlamorousButtonWithLabelAptitude;
										margin: (BlInsets all: 20);
										label: 'Close';
										action: [ :aButton | aButton fireEvent: BrDropdownHideWish new ]) ]);
		icon: BrGlamorousIcons menu;
		label: 'Click me'