ClientBar Class Reference

#include <clientbar.h>

Inherits Bar.

Inheritance diagram for ClientBar:

Inheritance graph
[legend]
Collaboration diagram for ClientBar:

Collaboration graph
[legend]
List of all members.

Public Types

enum  Mode { PAGER, CLIENTINFO }

Public Member Functions

 ClientBar (Monitor *monitor, Rectangle *rect)
 ~ClientBar ()
virtual void illuminate ()
virtual void handleMotionNotify (XMotionEvent *event)
virtual void handleButtonPress (XButtonEvent *event)
virtual void handleButtonRelease (XButtonEvent *event)
void toggleMenuMode ()
void setMode (Mode mode)
Mode mode () const
Menu * menu () const

Private Member Functions

void updateClientInfo ()
void updateClientPager ()
void updateModeButton ()
void updateMenuButton ()
void invokeClickedThing (int xPosition)

Private Attributes

bool isModeButtonPressed_
bool isMenuButtonPressed_
Mode mode_
Menu * menu_

Detailed Description

Represents the floating app bar of NCWM.

Definition at line 17 of file clientbar.h.


Member Enumeration Documentation

enum ClientBar::Mode

Enumerator:
PAGER 
CLIENTINFO 

Definition at line 21 of file clientbar.h.


Constructor & Destructor Documentation

ClientBar::ClientBar ( Monitor *  monitor,
Rectangle *  rect 
)

Definition at line 26 of file clientbar.cpp.

References isMenuButtonPressed_, isModeButtonPressed_, menu_, mode_, Widget::monitor(), and PAGER.

Here is the call graph for this function:

ClientBar::~ClientBar (  ) 

Definition at line 34 of file clientbar.cpp.


Member Function Documentation

void ClientBar::illuminate (  )  [virtual]

Implements Bar.

Definition at line 37 of file clientbar.cpp.

References Theme::BAR_BACKGROUND, Theme::BAR_SHADOW, Theme::BAR_SHINE, Theme::BAR_TEXT, Bar::drawBorder(), Widget::isVisible(), Bar::label_, LOGDEBUG, mode_, PAGER, Label::setText(), Rectangle::setWidth(), Rectangle::setX(), Bar::theme_, Label::update(), updateClientInfo(), updateClientPager(), updateMenuButton(), updateModeButton(), and Rectangle::width().

Referenced by handleButtonRelease(), handleMotionNotify(), Client::handlePropertyNotify(), invokeClickedThing(), Actions::toggleClientBarMode(), toggleMenuMode(), and Monitor::updateBars().

Here is the call graph for this function:

void ClientBar::handleMotionNotify ( XMotionEvent *  event  )  [virtual]

Implements Bar.

Definition at line 283 of file clientbar.cpp.

References illuminate(), and isModeButtonPressed_.

Here is the call graph for this function:

void ClientBar::handleButtonPress ( XButtonEvent *  event  )  [virtual]

Implements Bar.

Definition at line 263 of file clientbar.cpp.

References Container< P, LT, LTI, T >::focused(), invokeClickedThing(), Widget::monitor(), Widget::window(), and XCORE.

Here is the call graph for this function:

void ClientBar::handleButtonRelease ( XButtonEvent *  event  )  [virtual]

Implements Bar.

Definition at line 230 of file clientbar.cpp.

References Container< P, LT, LTI, T >::focused(), illuminate(), Singleton< Validators >::instance(), isMenuButtonPressed_, isModeButtonPressed_, Widget::monitor(), toggleMenuMode(), Workspace::toggleMode(), Validators::validateToggleMode(), and Widget::window().

Here is the call graph for this function:

void ClientBar::toggleMenuMode (  ) 

Definition at line 251 of file clientbar.cpp.

References Menu::hide(), illuminate(), isMenuButtonPressed_, Widget::isVisible(), menu_, and Menu::show().

Referenced by Menu::escape(), and handleButtonRelease().

Here is the call graph for this function:

void ClientBar::setMode ( Mode  mode  ) 

Definition at line 342 of file clientbar.cpp.

References mode_.

Referenced by Actions::toggleClientBarMode().

ClientBar::Mode ClientBar::mode (  )  const

Definition at line 346 of file clientbar.cpp.

References mode_.

Referenced by Actions::toggleClientBarMode().

Menu * ClientBar::menu (  )  const

Definition at line 338 of file clientbar.cpp.

References menu_.

Referenced by Monitor::menuWindow().

void ClientBar::updateClientInfo (  )  [private]

Definition at line 204 of file clientbar.cpp.

References Monitor::buttonWidth(), Draw::drawStickyNotifier(), Container< P, LT, LTI, T >::focused(), Widget::gc(), Bar::isButtonVisible_, Bar::label_, Theme::LABEL_BACKGROUND_FOCUSSED, Theme::LABEL_SHADOW_FOCUSSED, Theme::LABEL_SHINE_FOCUSSED, Theme::LABEL_TEXT_FOCUSSED, Client::mode(), Widget::monitor(), Thing::name(), Label::setText(), Rectangle::setWidth(), Rectangle::setX(), Client::STICKY, Label::textWidth(), Bar::theme_, Workspace::topClient(), Label::update(), Rectangle::width(), and Widget::window().

Referenced by illuminate().

Here is the call graph for this function:

void ClientBar::updateClientPager (  )  [private]

Definition at line 63 of file clientbar.cpp.

References Container< P, LT, LTI, T >::begin(), Monitor::buttonWidth(), Draw::drawStickyNotifier(), Container< P, LT, LTI, T >::end(), Workspace::floatingClients(), Container< P, LT, LTI, T >::focused(), Theme::FOCUSREQ_BACKGROUND, Theme::FOCUSREQ_SHADOW, Theme::FOCUSREQ_SHINE, Theme::FOCUSREQ_TEXT, Widget::gc(), Bar::isButtonVisible_, Bar::label_, Widget::monitor(), Label::setText(), Rectangle::setWidth(), Rectangle::setX(), Container< P, LT, LTI, T >::size(), Client::STICKY, Theme::TAB_BACKGROUND_ACTIVE_FOCUSSED, Theme::TAB_BACKGROUND_ACTIVE_NORMAL, Theme::TAB_SHADOW_ACTIVE_FOCUSSED, Theme::TAB_SHADOW_ACTIVE_NORMAL, Theme::TAB_SHINE_ACTIVE_FOCUSSED, Theme::TAB_SHINE_ACTIVE_NORMAL, Theme::TAB_TEXT_ACTIVE_FOCUSSED, Theme::TAB_TEXT_ACTIVE_NORMAL, Label::textWidth(), Bar::theme_, Label::update(), Rectangle::width(), Widget::window(), and Rectangle::x().

Referenced by illuminate().

Here is the call graph for this function:

void ClientBar::updateModeButton (  )  [private]

Definition at line 148 of file clientbar.cpp.

References Theme::BUTTON_BACKGROUND_NORMAL, Theme::BUTTON_BACKGROUND_PRESSED, Theme::BUTTON_SHADOW_BORDER_NORMAL, Theme::BUTTON_SHADOW_BORDER_PRESSED, Theme::BUTTON_SHADOW_FIGURE_NORMAL, Theme::BUTTON_SHADOW_FIGURE_PRESSED, Theme::BUTTON_SHINE_BORDER_NORMAL, Theme::BUTTON_SHINE_BORDER_PRESSED, Theme::BUTTON_SHINE_FIGURE_NORMAL, Theme::BUTTON_SHINE_FIGURE_PRESSED, Draw::drawFloatButton(), Draw::drawMaxButton(), Workspace::floatingClients(), Container< P, LT, LTI, T >::focused(), Workspace::focusedFrame(), Widget::gc(), Bar::isButtonVisible_, Workspace::isFrameMode(), isModeButtonPressed_, Bar::label_, Widget::monitor(), Label::setText(), Rectangle::setWidth(), Rectangle::setX(), Container< P, LT, LTI, T >::size(), Bar::theme_, Rectangle::width(), and Widget::window().

Referenced by illuminate().

Here is the call graph for this function:

void ClientBar::updateMenuButton (  )  [private]

Definition at line 120 of file clientbar.cpp.

References Theme::BUTTON_BACKGROUND_NORMAL, Theme::BUTTON_BACKGROUND_PRESSED, Theme::BUTTON_SHADOW_BORDER_NORMAL, Theme::BUTTON_SHADOW_BORDER_PRESSED, Theme::BUTTON_SHADOW_FIGURE_NORMAL, Theme::BUTTON_SHADOW_FIGURE_PRESSED, Theme::BUTTON_SHINE_BORDER_NORMAL, Theme::BUTTON_SHINE_BORDER_PRESSED, Theme::BUTTON_SHINE_FIGURE_NORMAL, Theme::BUTTON_SHINE_FIGURE_PRESSED, Draw::drawMenuButton(), Widget::gc(), Bar::isButtonVisible_, isMenuButtonPressed_, Bar::label_, Widget::monitor(), Label::setText(), Rectangle::setWidth(), Rectangle::setX(), Bar::theme_, and Widget::window().

Referenced by illuminate().

Here is the call graph for this function:

void ClientBar::invokeClickedThing ( int  xPosition  )  [private]

Definition at line 291 of file clientbar.cpp.

References Container< P, LT, LTI, T >::begin(), Monitor::buttonWidth(), Container< P, LT, LTI, T >::end(), Workspace::floatingClients(), Workspace::focus(), Container< P, LT, LTI, T >::focused(), illuminate(), Bar::isButtonVisible_, isMenuButtonPressed_, isModeButtonPressed_, mode_, Widget::monitor(), PAGER, Container< P, LT, LTI, T >::size(), and Rectangle::width().

Referenced by handleButtonPress().

Here is the call graph for this function:


Member Data Documentation

bool ClientBar::isModeButtonPressed_ [private]

Definition at line 47 of file clientbar.h.

Referenced by ClientBar(), handleButtonRelease(), handleMotionNotify(), invokeClickedThing(), and updateModeButton().

bool ClientBar::isMenuButtonPressed_ [private]

Definition at line 48 of file clientbar.h.

Referenced by ClientBar(), handleButtonRelease(), invokeClickedThing(), toggleMenuMode(), and updateMenuButton().

Mode ClientBar::mode_ [private]

Definition at line 49 of file clientbar.h.

Referenced by ClientBar(), illuminate(), invokeClickedThing(), mode(), and setMode().

Menu* ClientBar::menu_ [private]

Definition at line 50 of file clientbar.h.

Referenced by ClientBar(), menu(), and toggleMenuMode().


The documentation for this class was generated from the following files:
Generated on Thu May 24 15:20:03 2007 for ncwm by  doxygen 1.5.1