Toolbar Class Reference#include <Toolbar.hh>
Inheritance diagram for Toolbar:
List of all members.
|
Public Types |
| enum | Placement {
TOPLEFT = 1,
BOTTOMLEFT,
TOPCENTER,
BOTTOMCENTER,
TOPRIGHT,
BOTTOMRIGHT,
LEFTCENTER,
LEFTBOTTOM,
LEFTTOP,
RIGHTCENTER,
RIGHTBOTTOM,
RIGHTTOP
} |
| | Toolbar placement on the screen.
|
Public Member Functions |
|
| Toolbar (BScreen &screen, FbTk::XLayer &layer, size_t width=200) |
| | Create a toolbar on the screen with specific width.
|
|
void | raise () |
|
void | lower () |
|
void | updateVisibleState () |
|
void | toggleHidden () |
|
void | moveToLayer (int layernum) |
|
void | saveOnHead (int head) |
|
void | edit () |
| | enter edit mode on workspace label
|
|
void | reconfigure () |
| void | setPlacement (Placement where) |
|
void | update (FbTk::Subject *subj) |
|
FbTk::XLayerItem & | layerItem () |
|
const FbTk::Menu & | menu () const |
|
FbTk::Menu & | menu () |
|
FbTk::Menu & | placementMenu () |
|
const FbTk::Menu & | placementMenu () const |
|
FbTk::Menu & | layermenu () |
|
const FbTk::Menu & | layermenu () const |
|
bool | isHidden () const |
| | are we hidden?
|
|
bool | doAutoHide () const |
| | do we auto hide the toolbar?
|
|
const FbTk::FbWindow & | window () const |
| | X window of the toolbar.
|
|
BScreen & | screen () |
|
const BScreen & | screen () const |
|
unsigned int | width () const |
|
unsigned int | height () const |
|
unsigned int | exposedHeight () const |
|
int | x () const |
|
int | y () const |
|
Placement | placement () const |
|
const ToolbarTheme & | theme () const |
| | pointer to iconbar if it got one, else 0
|
|
ToolbarTheme & | theme () |
|
bool | isVertical () const |
|
int | getOnHead () const |
|
|
void | buttonPressEvent (XButtonEvent &be) |
|
void | buttonReleaseEvent (XButtonEvent &be) |
|
void | enterNotifyEvent (XCrossingEvent &ce) |
|
void | leaveNotifyEvent (XCrossingEvent &ce) |
|
void | exposeEvent (XExposeEvent &ee) |
| void | handleEvent (XEvent &event) |
Detailed Description
The toolbar. Handles iconbar, workspace name view and clock view
Definition at line 76 of file fluxbox.cc.
Member Function Documentation
| void Toolbar::handleEvent |
( |
XEvent & |
event |
) |
[virtual] |
|
|
|
! TODO: change this
Definition at line 567 of file Toolbar.cc.
References ToolbarTheme::bevelWidth(), ToolbarTheme::border(), ToolbarTheme::height(), ToolFactory::maxFontHeight(), theme(), BorderTheme::width(), and BScreen::width().
00567 {
00568
00569 switch (where) {
00570 case LEFTTOP:
00571 case LEFTCENTER:
00572 case LEFTBOTTOM:
00573 case RIGHTTOP:
00574 case RIGHTCENTER:
00575 case RIGHTBOTTOM:
00576 where = BOTTOMCENTER;
00577 break;
00578 default:
00579 break;
00580 }
00581
00582 *m_rc_placement = where;
00583 int head_x = 0,
00584 head_y = 0,
00585 head_w = screen().width(),
00586 head_h = screen().height();
00587
00588 if (screen().hasXinerama()) {
00589 int head = *m_rc_on_head;
00590 head_x = screen().getHeadX(head);
00591 head_y = screen().getHeadY(head);
00592 head_w = screen().getHeadWidth(head);
00593 head_h = screen().getHeadHeight(head);
00594 }
00595
00596 frame.width = head_w * (*m_rc_width_percent) / 100;
00598
00599 unsigned int max_height = m_tool_factory.maxFontHeight();
00600
00601 if (theme().height() > 0)
00602 max_height = theme().height();
00603
00604 if (*m_rc_height > 0 && *m_rc_height < 100)
00605 max_height = *m_rc_height;
00606
00607 frame.height = max_height;
00608
00609 frame.height += 2;
00610 frame.height += (frame.bevel_w * 2);
00611
00612 int bevel_width = theme().bevelWidth();
00613 int border_width = theme().border().width();
00614
00615
00616 if (isVertical()) {
00617 frame.width = frame.height;
00618 frame.height = head_h * (*m_rc_width_percent) / 100;
00619
00620 }
00621
00622
00623
00624 if (bevel_width <= border_width)
00625 bevel_width = border_width + 1;
00626
00627 switch (where) {
00628 case TOPLEFT:
00629 frame.x = head_x;
00630 frame.y = head_y;
00631 frame.x_hidden = head_x;
00632 frame.y_hidden = head_y + bevel_width - border_width - frame.height;
00633 if (m_shape.get())
00634 m_shape->setPlaces(Shape::BOTTOMRIGHT | Shape::BOTTOMLEFT);
00635 break;
00636
00637 case BOTTOMLEFT:
00638 frame.x = head_x;
00639 frame.y = head_y + head_h - frame.height - border_width*2;
00640 frame.x_hidden = head_x;
00641 frame.y_hidden = head_y + head_h - bevel_width - border_width;
00642 if (m_shape.get())
00643 m_shape->setPlaces(Shape::TOPRIGHT | Shape::TOPLEFT);
00644 break;
00645
00646 case TOPCENTER:
00647 frame.x = head_x + (head_w - frame.width) / 2;
00648 frame.y = head_y;
00649 frame.x_hidden = frame.x;
00650 frame.y_hidden = head_y + bevel_width - border_width - frame.height;
00651 if (m_shape.get())
00652 m_shape->setPlaces(Shape::BOTTOMRIGHT | Shape::BOTTOMLEFT);
00653 break;
00654 case TOPRIGHT:
00655 frame.x = head_x + head_w - frame.width - border_width*2;
00656 frame.y = head_y;
00657 frame.x_hidden = frame.x;
00658 if (m_shape.get())
00659 m_shape->setPlaces(Shape::BOTTOMRIGHT | Shape::BOTTOMLEFT);
00660 break;
00661
00662 case BOTTOMRIGHT:
00663 frame.x = head_x + head_w - frame.width - border_width*2;
00664 frame.y = head_y + head_h - frame.height - border_width*2;
00665 frame.x_hidden = frame.x;
00666 frame.y_hidden = head_y + head_h - bevel_width - border_width;
00667 if (m_shape.get())
00668 m_shape->setPlaces(Shape::TOPRIGHT | Shape::TOPLEFT);
00669 break;
00670
00671 case BOTTOMCENTER:
00672 default:
00673 frame.x = head_x + (head_w - frame.width) / 2;
00674 frame.y = head_y + head_h - frame.height - border_width*2;
00675 frame.x_hidden = frame.x;
00676 frame.y_hidden = head_y + head_h - bevel_width - border_width;
00677 if (m_shape.get())
00678 m_shape->setPlaces(Shape::TOPRIGHT | Shape::TOPLEFT);
00679 break;
00680 case LEFTCENTER:
00681 frame.x = head_x;
00682 frame.y = head_y + (head_h - frame.height)/2;
00683 frame.x_hidden = frame.x - frame.width + bevel_width + border_width;
00684 frame.y_hidden = frame.y;
00685 if (m_shape.get())
00686 m_shape->setPlaces(Shape::TOPRIGHT | Shape::BOTTOMRIGHT);
00687 break;
00688 case LEFTTOP:
00689 frame.x = head_x;
00690 frame.y = head_y;
00691 frame.x_hidden = frame.x - frame.width + bevel_width + border_width;
00692 frame.y_hidden = frame.y;
00693 if (m_shape.get())
00694 m_shape->setPlaces(Shape::TOPRIGHT | Shape::BOTTOMRIGHT);
00695 break;
00696 case LEFTBOTTOM:
00697 frame.x = head_x;
00698 frame.y = head_y + head_h - frame.height - border_width*2;
00699 frame.x_hidden = frame.x - frame.width + bevel_width + border_width;
00700 frame.y_hidden = frame.y;
00701 if (m_shape.get())
00702 m_shape->setPlaces(Shape::TOPRIGHT | Shape::BOTTOMRIGHT);
00703 break;
00704 case RIGHTCENTER:
00705 frame.x = head_x + head_w - frame.width - border_width*2;
00706 frame.y = head_y + (head_h - frame.height)/2;
00707 frame.x_hidden = frame.x + frame.width - bevel_width - border_width;
00708 frame.y_hidden = frame.y;
00709 if (m_shape.get())
00710 m_shape->setPlaces(Shape::TOPLEFT | Shape::BOTTOMLEFT);
00711 break;
00712 case RIGHTTOP:
00713 frame.x = head_x + head_w - frame.width - border_width*2;
00714 frame.y = head_y;
00715 frame.x_hidden = frame.x + frame.width - bevel_width - border_width;
00716 frame.y_hidden = frame.y;
00717 if (m_shape.get())
00718 m_shape->setPlaces(Shape::TOPLEFT | Shape::BOTTOMLEFT);
00719 break;
00720 case RIGHTBOTTOM:
00721 frame.x = head_x + head_w - frame.width - border_width*2;
00722 frame.y = head_y + head_h - frame.height - border_width*2;
00723 frame.x_hidden = frame.x + frame.width - bevel_width - border_width;
00724 frame.y_hidden = frame.y;
00725 if (m_shape.get())
00726 m_shape->setPlaces(Shape::TOPLEFT | Shape::BOTTOMLEFT);
00727 break;
00728 }
00729 }
|
The documentation for this class was generated from the following files:
Fluxbox CVS-Jan-2003
|
|
|