Lines Matching refs:tab

87 	// We need to draw a few things: the tab, the borders,
111 MacDecorator::RegionAt(BPoint where, int32& tab) const
113 // Let the base class version identify hits of the buttons and the tab.
114 Region region = Decorator::RegionAt(where, tab);
140 Decorator::Tab* tab
142 if (tab != NULL) {
143 tab->isHighlighted = highlight != 0;
149 memset(&tab->closeBitmaps, 0, sizeof(tab->closeBitmaps));
154 memset(&tab->minimizeBitmaps, 0,
155 sizeof(tab->minimizeBitmaps));
161 memset(&tab->zoomBitmaps, 0, sizeof(tab->zoomBitmaps));
214 // calculate our tab rect
221 // TODO the tab is drawn in a fixed height for now
229 Decorator::Tab* tab = fTabList.ItemAt(i);
231 tab->tabRect = fTitleBarRect;
234 tab->zoomRect = fTitleBarRect;
235 tab->zoomRect.left = tab->zoomRect.right - 12;
236 tab->zoomRect.bottom = tab->zoomRect.top + 12;
237 tab->zoomRect.OffsetBy(-4, 4);
239 tab->closeRect = tab->zoomRect;
240 tab->minimizeRect = tab->zoomRect;
242 tab->closeRect.OffsetTo(fTitleBarRect.left + 4,
245 tab->zoomRect.OffsetBy(0 - (tab->zoomRect.Width() + 4), 0);
246 if (Title(tab) != NULL && fDrawingEngine != NULL) {
247 tab->truncatedTitle = Title(tab);
249 tab->truncatedTitleLength
250 = (int32)fDrawingEngine->StringWidth(Title(tab),
251 strlen(Title(tab)));
253 if (tab->truncatedTitleLength < (tab->zoomRect.left
254 - tab->closeRect.right - 10)) {
256 tab->textOffset = int(((tab->zoomRect.left - 5)
257 - (tab->closeRect.right + 5)) / 2);
258 tab->textOffset -= int(tab->truncatedTitleLength / 2);
261 tab->textOffset += int(tab->closeRect.right + 5
264 tab->textOffset = int(tab->closeRect.right) + 5;
266 tab->textOffset = 0;
270 Decorator::Tab* tab = fTabList.ItemAt(i);
272 tab->tabRect.Set(0.0, 0.0, -1.0, -1.0);
273 tab->closeRect.Set(0.0, 0.0, -1.0, -1.0);
274 tab->zoomRect.Set(0.0, 0.0, -1.0, -1.0);
275 tab->minimizeRect.Set(0.0, 0.0, -1.0, -1.0);
355 // Draw the top side of the frame that is not in the tab
491 MacDecorator::_DrawTab(Decorator::Tab* tab, BRect invalid)
493 // If a window has a tab, this will draw it and any buttons which are
495 if (!tab->tabRect.IsValid() || !invalid.Intersects(tab->tabRect))
498 BRect rect(tab->tabRect);
502 if (IsFocus(tab)) {
523 if ((tab->flags & B_NOT_CLOSABLE) == 0)
524 left = tab->closeRect.right;
526 left = tab->tabRect.left;
529 if ((tab->flags & B_NOT_ZOOMABLE) == 0)
530 right = tab->zoomRect.left;
531 else if ((tab->flags & B_NOT_MINIMIZABLE) == 0)
532 right = tab->minimizeRect.left;
534 right = tab->tabRect.right;
536 if (tab->tabRect.left + tab->textOffset > left + 5) {
541 BPoint offset(left + 5, tab->closeRect.top);
542 BPoint pt2(tab->tabRect.left + tab->textOffset - 5,
543 tab->closeRect.top);
553 offset.Set(left + 6, tab->closeRect.top + 1);
554 pt2.Set(tab->tabRect.left + tab->textOffset - 4,
555 tab->closeRect.top + 1);
567 offset.Set(tab->tabRect.left + tab->textOffset
568 + tab->truncatedTitleLength + 3, tab->zoomRect.top);
569 pt2.Set(right - 8, tab->zoomRect.top);
580 offset.Set(tab->tabRect.left + tab->textOffset
581 + tab->truncatedTitleLength + 4, tab->zoomRect.top + 1);
582 pt2.Set(right - 7, tab->zoomRect.top + 1);
594 _DrawButtons(tab, rect);
607 _DrawTitle(tab, tab->tabRect);
612 MacDecorator::_DrawButtons(Decorator::Tab* tab, const BRect& invalid)
614 if ((tab->flags & B_NOT_CLOSABLE) == 0
615 && invalid.Intersects(tab->closeRect)) {
616 _DrawClose(tab, false, tab->closeRect);
618 if ((tab->flags & B_NOT_MINIMIZABLE) == 0
619 && invalid.Intersects(tab->minimizeRect)) {
620 _DrawMinimize(tab, false, tab->minimizeRect);
622 if ((tab->flags & B_NOT_ZOOMABLE) == 0
623 && invalid.Intersects(tab->zoomRect)) {
624 _DrawZoom(tab, false, tab->zoomRect);
630 MacDecorator::_DrawTitle(Decorator::Tab* tab, BRect rect)
632 fDrawingEngine->SetHighColor(IsFocus(tab)
637 tab->truncatedTitle = Title(tab);
638 fDrawState.Font().TruncateString(&tab->truncatedTitle, B_TRUNCATE_END,
639 (tab->zoomRect.left - 5) - (tab->closeRect.right + 5));
642 fDrawingEngine->DrawString(tab->truncatedTitle, tab->truncatedTitle.Length(),
643 BPoint(fTitleBarRect.left + tab->textOffset,
644 tab->closeRect.bottom - 1));
649 MacDecorator::_DrawClose(Decorator::Tab* tab, bool direct, BRect r)
651 _DrawButton(tab, direct, r, tab->closePressed);
656 MacDecorator::_DrawZoom(Decorator::Tab* tab, bool direct, BRect rect)
658 _DrawButton(tab, direct, rect, tab->zoomPressed);
671 MacDecorator::_DrawMinimize(Decorator::Tab* tab, bool direct, BRect rect)
673 _DrawButton(tab, direct, rect, tab->minimizePressed);
683 MacDecorator::_SetTitle(Tab* tab, const char* string, BRegion* updateRegion)
689 BRect rect = TabRect(tab);
696 rect = rect | TabRect(tab);
713 Decorator::Tab* tab = fTabList.ItemAt(i);
714 tab->zoomRect.OffsetBy(offset);
715 tab->minimizeRect.OffsetBy(offset);
716 tab->closeRect.OffsetBy(offset);
717 tab->tabRect.OffsetBy(offset);
755 Decorator::Tab* tab = new(std::nothrow) Decorator::Tab;
756 if (tab == NULL)
761 _SetFocus(tab);
762 return tab;
866 MacDecorator::_DrawButton(Decorator::Tab* tab, bool direct, BRect r,