#
e6a598a2 |
|
12-Sep-2021 |
Máximo Castañeda <antiswen@yahoo.es> |
ControlLook: fix clipping Remove ConstrainClippingRegion calls as they do not take into account view transformations. Clip drawing to the drawing rect, not the updated area. Fixes #12890 Change-Id: Ie76cb83e0af03213008da78407de25261daea5df Reviewed-on: https://review.haiku-os.org/c/haiku/+/4457 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
874a2a72 |
|
25-Aug-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
BControlLook: Introduce ComposeIconSize(). This takes an int32 (e.g. B_MINI_ICON or another constant) and then returns a BSize scaled appropriately, the same as ComposeSpacing() does already for the *_SPACING constants. This will be used to replace icon size computations throughout the tree.
|
#
409d65c0 |
|
01-May-2021 |
Pascal Abresch <nep@packageloss.eu> |
Decorator: Introduce Scroll bar size call Change-Id: I07f08c2893d832e431c29ae753e0a93d6e619701 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3892 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Reviewed-by: X512 <danger_mail@list.ru>
|
#
7c095f47 |
|
01-Jun-2020 |
John Scipione <jscipione@gmail.com> |
BeControlLook: Fix app integration drawing issues Update BTab::DrawTab() to pass the current index, the index of the selected tab, and the index of the first and last tabs into BControlLook::DrawActiveTab() and BControlLook::DrawInactiveTab(). This allows you to draw tabs differently in your BTab or BControlLook subclass in many different circumstances. Modify BControlLook API to add indexes to DrawActiveTab() and DrawInactiveTab() like so: void DrawActiveTab(..., int32 index = 0, int32 selected = -1, int32 first = 0, int32 last = 0); void DrawInactiveTab(..., int32 index = 0, int32 selected = -1, int32 first = 0, int32 last = 0); These extra indexes are not used by HaikuControlLook which relies only on if the tab is active or inactive to draw. Add IndexOf(BTab* tab) method to BTabView and document it to get the index of the current tab in BTab::DrawTab(). Also add a warning in the BTabView::DrawTab() method not to use the position and full parameters anymore, use BTabView::IndexOf(), BTabView::Selection(), and BTabView::TabCount() to get the info you need. Using a dynamic_cast to a BTabView in BeControlLook to determine if the view is derived from a BTabView didn't work in the case of WebPositive. Furthermore, WebPositive does custom tab drawing which needed to be updated for alternative control look. These index parameters passed from BTab to BeControlLook allow us to draw the tab like BeOS without relying on a dynamic_cast to BTabView to get the info. Reproduce the functionality described above for BTab in WebPositive's custom tabs. Eliminate no longer needed code in favor of using indexes. Update WebPositive custom tabs to use BControlLook::DrawTabFrame() instead of BControlLook::DrawInactiveTab() matching the update made in BTabView. In BeControlLook::DrawTabFrame() fill rect with base color, WebPositive doesn't draw any tab background, so it expects this work to be done for it. Eliminate hasFrames variable from WebPositive. Rename TabSelected(index) to UpdateSelection(index) in WebPositive to better reflect its purpose. Adjusted HaikuControlLook::DrawInactiveTab() to draw the tab borders more selectively. Only draw border if left border is set for top and bottom tabs or top border is set for left and right tabs. Undo no longer needed frame manipulation border drawing workaround in HaikuControlLook::DrawTabFrame(). Draw scroll bar triangle without using DrawArrowShape(). Unlike in HaikuControlLook, DrawArrowShape() is used to draw arrows in BOutlineListView and menus distinctly from how it draws arrows in scroll bars. Draw our distinct arrows in DrawSrollBarButtons() instead. This fixes overflow of time edit up-down arrows in Clock prefs and the collapse-expand arrow in Deskbar not being vertically centered. In DrawBorders() only inset if we actually draw the border. Fix alignment issues with DrawSliderThumb dots for example in MediaPlayer volume knobs. Draw using line arrays calling AddLine instead of StrokeLine in several places. DrawMenuBar() extends to draw final pixel which eliminates an extra lines at the end of menu bars. Truncate button labels better fixing a few issues for example keymap keyboard layout button labels. Button insets has been updated a bit to fix drawing issues with buttons missing a border. Using a dynamic_cast to a BButton to determine if a view is a button in BeControlLook didn't work in the case of the keymap label. Look for B_FLAT, B_HOVER, or B_DEFAULT_BUTTON flag in BeControlLook::DrawLabel() to draw the label inverted on click. Pass the B_FLAT flag from Keymap keys when drawing using BControlLook so that the label is inverted. Change-Id: I07631f4b006bdb9aeca2adc9cbdf2da54dae8e92 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2866 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
1482b250 |
|
04-Mar-2020 |
John Scipione <jscipione@gmail.com> |
IK: Update scroll bars for alternative control look Scroll bars should look and work identically to before on HaikuControlLook. Add DrawScrollBarButton() and DrawScrollBarThumb() and DrawScrollBarBorder() methods. These methods are used to draw scroll bars in a generic way so that they can be drawn differently by alternative control look's (e.g. BeControlLook). Also it gives us back drawing of scroll bar knobs. However the knob setting is not exposed in the interface in this commit. These methods are in addition to the 2 existing DrawScrollBarBackground() methods that draw the scroll bar background. One draws the area above and below the thumb and the other is called by the first to actually draw the area. The rest of the drawing besides the backgrounds was being done in BScrollBar before. To draw the scroll bar arrows and thumb we were recyling other ControlLook methods, while this worked well enough on HaikuControlLook it wasn't flexible enough for alternative control looks. DrawScrollBarButton() is used to draw the four scroll buttons and is typically (so far) used in combination with DrawArrowShape(). DrawScrollBarThumb() draws the scroll bar thumb. DrawScrollBarBorder() draws a 1px border around the entire scroll bar, potentially B_KEYBOARD_NAVIGATION_COLOR if focused (although this is feature not currently used.) Draw unscrollable scroll bars as if they were disabled including the buttons with their arrow shapes, background, and thumb. Add FBC backwords compatibility macros in ControlLook.cpp Change-Id: I9237c5ce45d17d674785111d51de951e5686306b Reviewed-on: https://review.haiku-os.org/c/haiku/+/351 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
fb3493df |
|
14-Aug-2019 |
John Scipione <jscipione@gmail.com> |
BControlLook: Move tab frame drawing into DrawTabFrame() The tab frame is drawn behind the tabs. Create a new DrawTabFrame method in BControlLook and HaikuControlLook that draws the tab frame background. Until now we've been reusing the DrawInactiveTab method to draw the tab frame in BTabView. While this works on HaikuControlLook, it doesn't work on other ControlLook's (such as BeControlLook) that draw their tab frame differently. Add FBC method to preserve binary compatibility on gcc2 and gcc4. Move DrawTabFrame method to where _ReservedControlLook1 was in header. Set rect to area of tab frame in TabView instead of doing the calculation in HaikuControlLook so that others may benefit. Change-Id: I513e238914f6d680f495659b6ec902df15555015 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1936 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
629397f2 |
|
01-May-2019 |
François Revol <revol@free.fr> |
Add basic support for loading ControlLook add-ons app_server just passes the add-on path around. Maybe we should make sure the add-on can be loaded when setting it. Change-Id: I3acd3299782a22c1666bd5435dbf3d8053e359fa Reviewed-on: https://review.haiku-os.org/c/1430 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
fd25b902 |
|
14-Aug-2018 |
Augustin Cavalier <waddlesplash@gmail.com> |
BControlLook: Add FBC padding. Fixes #14295.
|
#
fe66a314 |
|
22-Jul-2018 |
waddlesplash <waddlesplash@gmail.com> |
Revert "BScrollBar: Add lines and dots knob styles to scroll bar" This reverts commit ec1b18c58ae632444200f7e1f952ddd2e31048fa. This was not well enough reviewed, and it seems that at least some consumers of the old API (e.g. WebPositive) need more than the new one provides. Change-Id: Ie7ad1fc70dab889922424298661504b00f66d31d
|
#
ec1b18c5 |
|
14-Jul-2018 |
John Scipione <jscipione@gmail.com> |
BScrollBar: Add lines and dots knob styles to scroll bar Fixes #9137 Move scroll bar drawing into HaikuControlLook Added B_SCROLLABLE flag to BControlLook Update FakeScrollBar in Appearance to also draw using HaikuControlLook. Focus works on scroll bars again, used by FakeScrollBar... and probably nowhere else. Added private _ScrollingEnabled() convenience method to BScrollBar and use it in a few places making. Create ScrollBarPrivate.h header to share a couple of scroll bar related enums with HaikuControlLook that come from BeOS Scroll Bar prefs. Stuff arrow_direction enum into BScrollBar::Private as it has been succeeded by a similar enum already present in BControlLook and is only around now for BScrollBar::Private::DrawScrollBarButton. Change-Id: Idc31ee41de091ba45ded2f0315a004af00143803
|
#
db68ff23 |
|
10-Sep-2017 |
Augustin Cavalier <waddlesplash@gmail.com> |
Interface Kit: Make BControlLook a proper pure-virtual base class. All of its prior functionality has been moved into HaikuControlLook. This paves the way for customizeable control looks, which I intend to implement in the future as part of decorators. This is being pushed now because libbe ABI was already broken due to the Notifications changes, so this is riding that so we only have to do a mass rebuild once.
|
#
d52572b3 |
|
10-Sep-2017 |
Augustin Cavalier <waddlesplash@gmail.com> |
BControlLook: Make all public methods virtual. Solves a "TODO before R1". Breaks ABI, but almost nothing outside the tree uses it.
|
#
2332ebfd |
|
21-Jan-2017 |
Kacper Kasper <kacperkasper@gmail.com> |
ControlLook: Add side parameter to tab drawing functions. * This allows drawing tabs on any side of the view. Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
3490eda8 |
|
29-Apr-2016 |
John Scipione <jscipione@gmail.com> |
ControlLook: Rename border param to borderStyle border vs. borders is confusing. BTabView: Rename border param to borderStyle BTabView docs: rename border param to borderStyle enumerate border styles in docs
|
#
7f9368ca |
|
09-Dec-2015 |
looncraz <looncraz@looncraz.net> |
Set*UIColor, etc. The inseparable changes necessary to support live color updating across the system in a sane, safe, and performant manner. BView gains: HasSystemColors() HasDefaultColors() AdoptSystemColors() AdoptParentColors() AdoptViewColor(BView*) SetViewUIColor(color_which, float tint) SetHighUIColor(... SetLowUIColor(... ViewUIColor(float* tint) HighUIColor(... LowUIColor(... DelayedInvalidate() BWindow gains a simple helper method: IsOffscreenWindow() BMessage gains: AddColor() FindColor() GetColor() HasColor() * allegedly this API is deprecated, but I implemented it anyway ReplaceColor() SetColor() Previous private ColorTools methods are made public and moved into GraphicsDefs: mix_color, blend_color, disable_color These are fully compatible with BeOS dan0 R5.1 methods and are just code cleanup of BeOS example code under the OpenTracker license. In addition, four new colors are created: B_LINK_TEXT_COLOR B_LINK_HOVER_COLOR B_LINK_ACTIVE_COLOR B_LINK_VISITED_COLOR These changes are documented in their proper user documentation files. In addition, due to a history rewrite, B_FOLLOW_LEFT_TOP has been defined and used in lieu of B_FOLLOW_TOP | B_FOLLOW_LEFT and is included in this commit. On the app_server side, the following has changed: Add DelayedMessage - a system by which messages can be sent at a scheduled time, and can also be merged according to set rules. A single thread is used to service the message queue and multiple recipients can be set for each message. Desktop gains the ability to add message ports to a DelayedMessage so that said messages can target either all applications or all windows, as needed. Desktop maintains a BMessage which is used to queue up all pending color changes and the delayed messaging system is used to enact these changes after a short period of time has passed. This prevents abuse and allows the system to merge repeated set_ui_color events into one event for client applications, improving performance drastically. In addition, B_COLORS_UPDATED is sent to the BApplication, which forwards the message to each BWindow. This is done to improve performance over having the app_server independently informing each window. Decorator changes are live now, which required some reworking. Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
|
#
13d147b1 |
|
30-Sep-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Introduce "invalid" text controls. * MarkAsInvalid is used to enable or disable the mark * The B_INVALID BControlLook flag is used * invalid BTextControls are drawn with a red border. * You ar encouraged to let the user know more precisely what's wrong, by showing an helpful error message next to the control or in a tooltip.
|
#
a0848a19 |
|
29-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BButton: Add optional pop-up marker * Add behavior constant B_POP_UP_BEHAVIOR which adds a pop-up marker to the button (similar to that of BMenuField). * Add methods [Set]PopUpMessage(). To set/get the the message that is sent to the button's target when the pop-up marker is clicked.
|
#
a249edfb |
|
28-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BButton: Add flat property * Add methods SetFlat()/IsFlat(). A flat button doesn't draw its frame, unless the mouse is hovering over it or it is otherwise activated. * As a side effect this change also activates the hover glow that was already implemented in BControlLook, but not activated in BButton.
|
#
1b848ee7 |
|
21-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BControlLook: Add DrawLabel() variants with icon A label, a bitmap, or both can be specified.
|
#
8719e0dc |
|
21-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BControlLook: Add methods for getting insets * Update the previously unused frame_type and background_type enums. * Add methods GetFrameInsets(), GetBackgroundInsets(), GetInsets() to get the insets for a given frame type, background type, or both respectively.
|
#
df37cd4e |
|
20-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BCheckBox: Add tri-state support * Add possible control state B_CONTROL_PARTIALLY_ON and support it in BCheckBox and BControlLook. * BCheckBox: Add partialStateToOff property defining whether the partial state should transition to off. Defaults to false (i.e. partial to on).
|
#
e724b26f |
|
08-Jul-2013 |
John Scipione <jscipione@gmail.com> |
Remove enum elaborated type specifier ...from orientation params. Elaborated type specifiers are not needed for C++ code and removing them makes doxygen happy. Verified working on both gcc2h and gcc4h builds.
|
#
1b41173c |
|
06-Apr-2013 |
John Scipione <jscipione@gmail.com> |
Add diagonal arrows to ControlLook DrawArrowShape() method
|
#
a884b43b |
|
19-Mar-2012 |
John Scipione <jscipione@gmail.com> |
Added support for buttons and menuframes with rounded corners. * Not turned on for default buttons and menuframes right now. * Updated Deskcalc and Keymap to use buttons with rounded corners. * Overloaded methods with radium parameters are not virtual right now so as to not break vtables. Added /*virtual*/ before each method that should be made virtual in ControlLook.h * Added a light line to the left border of the down arrow frame on menu frames as a small visual tweak. * Replace StrokeRect() with StrokeRoundRect() when drawing the default button indicator. This gives them a rounded appearance if the button is also rounded. * Added protected methods _DrawMenuFieldBackgroundOutside and _DrawMenuFieldBackgroundInside. * Created some protected methods to get the edge, frame, and bevel colors from a passed in base color because it was a mess and I needed to calculate the colors from mutiple methods. It is much cleaner now. * Added myself to ControlLook.cpp authors list. Assigned copyright to Haiku, Inc. Stippi also retains his copyright. * Tons of style fixes. - Change all instances of `if (flags & B_FLAG)` to `if ((flags & B_FLAG) != 0)` - Reorder some methods. - Reorder includes. - Spacing. - Updated comments.
|
#
d452ff66 |
|
26-Feb-2012 |
Axel Dörfler <axeld@pinc-software.de> |
Added some reserved fields to BControlLook. * This makes future changes less troublesome, although we should also add some virtual slots there (probably just dozens of it, though, that's why I was being lazy). * Don't pass messages by value; they are copied twice this way. * Minor coding style corrections, automatic whitespace cleanup.
|
#
d63b75fa |
|
22-Feb-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Outline of labels/strings drawn to desktop * Rather than duplicating the decision taking logic involving wheter or not to draw the outline or glow in every replicant, update be_control_look to make it more generic. * The Monitoring of the background preferences is now only done in Tracker (where it was already being done). * Add a BControlLook::B_IGNORE_OUTLINE flag to avoid this new behaviour. * Remove that said logic from ActivityMonitor and use be_control_look. * Use the ignore flag in DeskCalc to avoid the outline in its case. Should fix #7716, #7291.
|
#
6648dd3c |
|
07-Jun-2011 |
Alex Wilson <yourpalal2@gmail.com> |
* Add new spacing/inset constants for the layout API. For now, leave B_USE_DEFAULT_SPACING, but this will go soon. * Rename BControlLook::ComposeItemSpacing() to ComposeSpacing(), and extend it to handle the new constants. * Adjust users of BControlLook::ComposeItemSpacing() accordingly. * part of #7447 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42025 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82ab3167 |
|
02-Sep-2010 |
Alex Wilson <yourpalal2@gmail.com> |
Add default spacing for Layouts (#5614) * introduce B_USE_DEFAULT_SPACING, which works somewhat like B_SIZE_UNSET and B_ALIGN_HORIZONTAL_UNSET * introduce static float BControlLook::ComposeItemSpacing(float spacing), which checks uses be_control_look->DefaultItemSpacing(). * modify layouts to use BControlLook::ComposeItemSpacing() in SetInsets and SetSpacing methods. * default insets are still 0, 0, 0, 0, but can be set to default spacing by passing B_USE_DEFAULT_SPACING * I've found two regressions, patches incoming, please report others on #5614. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38512 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ed212bd |
|
08-Apr-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Added TODO about possibly better way to name some constants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36081 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c4e211fe |
|
22-Jan-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Refactored a method to draw a label when the location is already known. (This one takes care of setting up the correct color.) * Added TODO about using either B_CONTROL_TEXT_COLOR, or elliminating that constant (which I am in favor of...). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35260 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20a11271 |
|
17-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a (to be virtual) DefaultItemSpacing() method to control look. This is what you should use in for example BGroupLayout as spacing/inset. * Changed the label spacing to be dependent on the font size, too (and enlarged it a bit as well). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33621 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89208c77 |
|
27-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Finished unifying the Interface Kit headers: * Fixed copyrights (puncuation and capitalization, removed authors from headers) * Updated indentation style * Unified pointer/reference style * Re-ordered some methods for better grouping where it could be done (abd adopted source accordingly) * Small coding style fixes here and there No functional change intended. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32745 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1f9fd6d8 |
|
20-Jun-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Added BSplitView drawing code to ControlLook. * BSplitView uses ControlLook to draw itself. * Small refactoring in SplitLayout to implement IsAboveSplitter(BPoint). * BSplitView updates the view cursor when the mouse is above a splitter. * Standard splitter size is now 6 pixels, which is a bit easer to hit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31137 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4f579098 |
|
28-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Introduce the possiblity to draw certain frames with alpha blending on top of an existing background. It's not supported by many frame types yet, but BButton and TextControl frames work as well as the soft recessed frame which many controls use. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29762 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
681c2e44 |
|
25-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
The button and menu field draw routines take a background color into account, which makes the resessed frame blend better with the surroundings. This can be seen best in Keymap, where a different color is set on some buttons, but the resessed frame should still be the same across all those buttons. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29716 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
74bb70ae |
|
23-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Moved the BScrollView frame drawing entirely into BControlLook. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29661 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
40a10e1c |
|
21-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Added method to draw an arrow shape like that of the BScrollBar. TODO: Adjust BScrollBar to use it. TODO: Make it virtual like the others, but I don't want to break Vision and other native Haiku apps just now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29630 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1a72cb41 |
|
18-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Make BMenuBar background drawing more flexible and also support an "activated" state. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29597 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8ee9217e |
|
24-Feb-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Improved the look of the slider triangle thumb. Still missing is the vertical version. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29311 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
83aff015 |
|
17-Feb-2009 |
Philippe Houdoin <philippe.houdoin@gmail.com> |
Fixed BTabs focus underline offset. Fixed a typo in method name. Please forgive me Stephan if I just screw your next commit... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29240 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
13cd46df |
|
16-Feb-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Stronger BMenuField popup indicator. * Softer recessed frame for BMenuField to distinguish more from BButton and make it slightly more similar to BTextControl. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29235 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2f86ba45 |
|
15-Feb-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented a new look for the Haiku interface controls. It was overheard that they looked too ninety-ish. TODO: The code behind this is work in progress. The basic idea is to extract all drawing code into a new class BControlLook, of which there is a global instance be_control_look, instantiated in InterfaceDefs.cpp. At the moment, all the old drawing code is still there, and the usage of be_control_look is inside if-bodies checking the instance against NULL. In another words, by not instanitating be_control_look, you can revert back to the old look. BControlLook's job is to provide reusable methods for drawing certain types of frames, backgrounds and labels, so that application developers can make controls that re-use the same drawing code as built-in controls and adopt to changes made there. I have added the notion of "borders". Each of the frame drawing methods can be made to draw certain borders only, which is supposed to help when controls shall visually attach. This feature is not fully explored at all ATM. TODO: Update BColumnListView header view and BStringItem text spacing. Update other apps where it makes sense to use BControlLook. For the moment, only Tracker and LaunchBox are updated. More... NOTE: The new look is not very radically different, so that existing apps do not immediately look too ugly or out of place. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29221 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
13d147b12ba4c8276daf6ecb858424d358389a16 |
|
30-Sep-2014 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Introduce "invalid" text controls. * MarkAsInvalid is used to enable or disable the mark * The B_INVALID BControlLook flag is used * invalid BTextControls are drawn with a red border. * You ar encouraged to let the user know more precisely what's wrong, by showing an helpful error message next to the control or in a tooltip.
|
#
a0848a191693aac77d3301a13dc59a27114acaa7 |
|
29-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BButton: Add optional pop-up marker * Add behavior constant B_POP_UP_BEHAVIOR which adds a pop-up marker to the button (similar to that of BMenuField). * Add methods [Set]PopUpMessage(). To set/get the the message that is sent to the button's target when the pop-up marker is clicked.
|
#
a249edfbfc6a699a22052faccd3bcdf21ee9e042 |
|
28-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BButton: Add flat property * Add methods SetFlat()/IsFlat(). A flat button doesn't draw its frame, unless the mouse is hovering over it or it is otherwise activated. * As a side effect this change also activates the hover glow that was already implemented in BControlLook, but not activated in BButton.
|
#
1b848ee7f2943f00b95a8657494592e2d0f15898 |
|
21-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BControlLook: Add DrawLabel() variants with icon A label, a bitmap, or both can be specified.
|
#
8719e0dc4bf8495cd70c2dc3d25a5165f7ea3d16 |
|
21-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BControlLook: Add methods for getting insets * Update the previously unused frame_type and background_type enums. * Add methods GetFrameInsets(), GetBackgroundInsets(), GetInsets() to get the insets for a given frame type, background type, or both respectively.
|
#
df37cd4edddd82519232cf96b7fa0e4eb7e339dc |
|
20-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BCheckBox: Add tri-state support * Add possible control state B_CONTROL_PARTIALLY_ON and support it in BCheckBox and BControlLook. * BCheckBox: Add partialStateToOff property defining whether the partial state should transition to off. Defaults to false (i.e. partial to on).
|
#
e724b26f23ad0df100a47f8d913bcdb3d54267df |
|
08-Jul-2013 |
John Scipione <jscipione@gmail.com> |
Remove enum elaborated type specifier ...from orientation params. Elaborated type specifiers are not needed for C++ code and removing them makes doxygen happy. Verified working on both gcc2h and gcc4h builds.
|
#
1b41173c8a79c210f88df52ccfe63a33ba1bc4dc |
|
06-Apr-2013 |
John Scipione <jscipione@gmail.com> |
Add diagonal arrows to ControlLook DrawArrowShape() method
|
#
a884b43bb1c7bbd60789f35934466a970fe59d9f |
|
19-Mar-2012 |
John Scipione <jscipione@gmail.com> |
Added support for buttons and menuframes with rounded corners. * Not turned on for default buttons and menuframes right now. * Updated Deskcalc and Keymap to use buttons with rounded corners. * Overloaded methods with radium parameters are not virtual right now so as to not break vtables. Added /*virtual*/ before each method that should be made virtual in ControlLook.h * Added a light line to the left border of the down arrow frame on menu frames as a small visual tweak. * Replace StrokeRect() with StrokeRoundRect() when drawing the default button indicator. This gives them a rounded appearance if the button is also rounded. * Added protected methods _DrawMenuFieldBackgroundOutside and _DrawMenuFieldBackgroundInside. * Created some protected methods to get the edge, frame, and bevel colors from a passed in base color because it was a mess and I needed to calculate the colors from mutiple methods. It is much cleaner now. * Added myself to ControlLook.cpp authors list. Assigned copyright to Haiku, Inc. Stippi also retains his copyright. * Tons of style fixes. - Change all instances of `if (flags & B_FLAG)` to `if ((flags & B_FLAG) != 0)` - Reorder some methods. - Reorder includes. - Spacing. - Updated comments.
|
#
d452ff664c6c7d1b4c429fb7b53f920f165e52f7 |
|
26-Feb-2012 |
Axel Dörfler <axeld@pinc-software.de> |
Added some reserved fields to BControlLook. * This makes future changes less troublesome, although we should also add some virtual slots there (probably just dozens of it, though, that's why I was being lazy). * Don't pass messages by value; they are copied twice this way. * Minor coding style corrections, automatic whitespace cleanup.
|
#
d63b75faf848697b07bfad9b71899e6caf9ab5bc |
|
22-Feb-2012 |
Philippe Saint-Pierre <stpere@gmail.com> |
Outline of labels/strings drawn to desktop * Rather than duplicating the decision taking logic involving wheter or not to draw the outline or glow in every replicant, update be_control_look to make it more generic. * The Monitoring of the background preferences is now only done in Tracker (where it was already being done). * Add a BControlLook::B_IGNORE_OUTLINE flag to avoid this new behaviour. * Remove that said logic from ActivityMonitor and use be_control_look. * Use the ignore flag in DeskCalc to avoid the outline in its case. Should fix #7716, #7291.
|
#
6648dd3cf1597c4fcae16fcfa76270f3acda90b6 |
|
07-Jun-2011 |
Alex Wilson <yourpalal2@gmail.com> |
* Add new spacing/inset constants for the layout API. For now, leave B_USE_DEFAULT_SPACING, but this will go soon. * Rename BControlLook::ComposeItemSpacing() to ComposeSpacing(), and extend it to handle the new constants. * Adjust users of BControlLook::ComposeItemSpacing() accordingly. * part of #7447 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42025 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82ab3167232c5c8ee53e684eddc83dc7cb60f1cc |
|
02-Sep-2010 |
Alex Wilson <yourpalal2@gmail.com> |
Add default spacing for Layouts (#5614) * introduce B_USE_DEFAULT_SPACING, which works somewhat like B_SIZE_UNSET and B_ALIGN_HORIZONTAL_UNSET * introduce static float BControlLook::ComposeItemSpacing(float spacing), which checks uses be_control_look->DefaultItemSpacing(). * modify layouts to use BControlLook::ComposeItemSpacing() in SetInsets and SetSpacing methods. * default insets are still 0, 0, 0, 0, but can be set to default spacing by passing B_USE_DEFAULT_SPACING * I've found two regressions, patches incoming, please report others on #5614. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38512 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ed212bd4393c9bd1edfd235d7030a2f7e99ec6b |
|
08-Apr-2010 |
Stephan Aßmus <superstippi@gmx.de> |
Added TODO about possibly better way to name some constants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36081 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c4e211feb65c3656c3ad7dba1b8b60e983ca1e13 |
|
22-Jan-2010 |
Stephan Aßmus <superstippi@gmx.de> |
* Refactored a method to draw a label when the location is already known. (This one takes care of setting up the correct color.) * Added TODO about using either B_CONTROL_TEXT_COLOR, or elliminating that constant (which I am in favor of...). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35260 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
20a11271d02f6e1dc373e48f62ee699d44984c35 |
|
17-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a (to be virtual) DefaultItemSpacing() method to control look. This is what you should use in for example BGroupLayout as spacing/inset. * Changed the label spacing to be dependent on the font size, too (and enlarged it a bit as well). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33621 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
89208c77f10235d43fda0c7b3fd6751db02cc12c |
|
27-Aug-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Finished unifying the Interface Kit headers: * Fixed copyrights (puncuation and capitalization, removed authors from headers) * Updated indentation style * Unified pointer/reference style * Re-ordered some methods for better grouping where it could be done (abd adopted source accordingly) * Small coding style fixes here and there No functional change intended. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32745 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1f9fd6d866bff084e6792bccc52d6eefd9470f7e |
|
20-Jun-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Added BSplitView drawing code to ControlLook. * BSplitView uses ControlLook to draw itself. * Small refactoring in SplitLayout to implement IsAboveSplitter(BPoint). * BSplitView updates the view cursor when the mouse is above a splitter. * Standard splitter size is now 6 pixels, which is a bit easer to hit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31137 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4f57909806ea0aaa8d1f4fdd36d525b6ff0fa7b7 |
|
28-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Introduce the possiblity to draw certain frames with alpha blending on top of an existing background. It's not supported by many frame types yet, but BButton and TextControl frames work as well as the soft recessed frame which many controls use. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29762 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
681c2e4425073000c01c9c97237d2615d226f401 |
|
25-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
The button and menu field draw routines take a background color into account, which makes the resessed frame blend better with the surroundings. This can be seen best in Keymap, where a different color is set on some buttons, but the resessed frame should still be the same across all those buttons. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29716 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
74bb70aef90f212c8595b81189bc726e4db592c0 |
|
23-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Moved the BScrollView frame drawing entirely into BControlLook. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29661 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
40a10e1c523af82143d16163ed48cfddabe6849f |
|
21-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Added method to draw an arrow shape like that of the BScrollBar. TODO: Adjust BScrollBar to use it. TODO: Make it virtual like the others, but I don't want to break Vision and other native Haiku apps just now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29630 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1a72cb4139bb0b6ae48a09c6dacf64018ceb694f |
|
18-Mar-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Make BMenuBar background drawing more flexible and also support an "activated" state. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29597 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8ee9217eec79eae70ae2c62280d05e08579554ae |
|
24-Feb-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Improved the look of the slider triangle thumb. Still missing is the vertical version. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29311 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
83aff015eb79ec3b8c3cff465b6f5051da18d215 |
|
17-Feb-2009 |
Philippe Houdoin <philippe.houdoin@gmail.com> |
Fixed BTabs focus underline offset. Fixed a typo in method name. Please forgive me Stephan if I just screw your next commit... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29240 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
13cd46dfa37ff39c2aeaf3b9fb1f49e1e5cb539e |
|
16-Feb-2009 |
Stephan Aßmus <superstippi@gmx.de> |
* Stronger BMenuField popup indicator. * Softer recessed frame for BMenuField to distinguish more from BButton and make it slightly more similar to BTextControl. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29235 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2f86ba45579bdc9648b232175f87edc62ab71b54 |
|
15-Feb-2009 |
Stephan Aßmus <superstippi@gmx.de> |
Implemented a new look for the Haiku interface controls. It was overheard that they looked too ninety-ish. TODO: The code behind this is work in progress. The basic idea is to extract all drawing code into a new class BControlLook, of which there is a global instance be_control_look, instantiated in InterfaceDefs.cpp. At the moment, all the old drawing code is still there, and the usage of be_control_look is inside if-bodies checking the instance against NULL. In another words, by not instanitating be_control_look, you can revert back to the old look. BControlLook's job is to provide reusable methods for drawing certain types of frames, backgrounds and labels, so that application developers can make controls that re-use the same drawing code as built-in controls and adopt to changes made there. I have added the notion of "borders". Each of the frame drawing methods can be made to draw certain borders only, which is supposed to help when controls shall visually attach. This feature is not fully explored at all ATM. TODO: Update BColumnListView header view and BStringItem text spacing. Update other apps where it makes sense to use BControlLook. For the moment, only Tracker and LaunchBox are updated. More... NOTE: The new look is not very radically different, so that existing apps do not immediately look too ugly or out of place. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29221 a95241bf-73f2-0310-859d-f6bbb57e9c96
|