//
// WORefMenu.hh for pekwm
// Copyright (C) 2004 Claes Nasten <pekdon{@}pekdon{.}net>
//
// This program is licensed under the GNU GPL.
// See the LICENSE file for more information.
//

#include "../config.h"
#ifdef MENUS

#include "PWinObj.hh"
#include "PDecor.hh"
#include "PMenu.hh"
#include "WORefMenu.hh"

#include "PScreen.hh"
#include "Client.hh"

using std::string;

//! @brief WORefMenu constructor
//! @param scr Pointer to PScreen
//! @param theme Pointer to Theme
//! @param name Title of menu, defaults to beeing empty
WORefMenu::WORefMenu(PScreen *scr, Theme *theme, const std::string &name) : PMenu(scr->getDpy(), theme, name),
_wo_ref(NULL), _title_base(name),
_title_pre(" ["), _title_post("]")
{
}

//! @brief WORefMenu destructor
WORefMenu::~WORefMenu(void)
{
}

//! @brief Sets the reference and updates the title
void
WORefMenu::setWORef(PWinObj *wo)
{
	_wo_ref = wo;

	string title = _title_base;

	// if of client type, add the clients named to the title
	if ((_wo_ref != NULL) && (_wo_ref->getType() == PWinObj::WO_CLIENT)) {
		Client *client = static_cast<Client*>(wo);
		title += _title_pre + client->getTitle()->getVisible() + _title_post;
	}

	setTitle(title);
}

#endif // MENUS


syntax highlighted by Code2HTML, v. 0.9.1