fix: Wrap format pre/suffix within cmd

This commit is contained in:
Michael Carlberg 2016-12-05 05:32:10 +01:00
parent 1a48f825d1
commit 3854515521
7 changed files with 38 additions and 21 deletions

View File

@ -55,7 +55,7 @@ class builder {
void underline(const string& color = "");
void underline_close();
void cmd(mousebtn index, string action, bool condition = true);
void cmd_close();
void cmd_close(bool condition = true);
protected:
string background_hex();

View File

@ -503,9 +503,11 @@ void builder::cmd(mousebtn index, string action, bool condition) {
/**
* Close command tag
*/
void builder::cmd_close() {
void builder::cmd_close(bool condition) {
if (condition) {
tag_close(syntaxtag::A);
}
}
/**
* Get default background hex string

View File

@ -39,6 +39,11 @@ namespace modules {
* Wrap the output with defined mouse actions
*/
string ipc_module::get_output() {
// Get the module output early so that
// the format prefix/suffix also gets wrapper
// with the cmd handlers
string output{module::get_output()};
if (!m_actions[mousebtn::LEFT].empty()) {
m_builder->cmd(mousebtn::LEFT, m_actions[mousebtn::LEFT]);
}
@ -55,7 +60,7 @@ namespace modules {
m_builder->cmd(mousebtn::SCROLL_DOWN, m_actions[mousebtn::SCROLL_DOWN]);
}
m_builder->append(module::get_output());
m_builder->append(output);
return m_builder->flush();
}

View File

@ -123,13 +123,17 @@ namespace modules {
m_output += m_ellipsis ? "..." : "";
}
auto counter_str = to_string(m_counter);
string output{module::get_output()};
OUTPUT_ACTION(mousebtn::LEFT);
OUTPUT_ACTION(mousebtn::MIDDLE);
OUTPUT_ACTION(mousebtn::RIGHT);
OUTPUT_ACTION(mousebtn::SCROLL_UP);
OUTPUT_ACTION(mousebtn::SCROLL_DOWN);
m_builder->append(module::get_output());
m_builder->append(output);
return m_builder->flush();
}

View File

@ -25,6 +25,11 @@ namespace modules {
}
string text_module::get_output() {
// Get the module output early so that
// the format prefix/suffix also gets wrapper
// with the cmd handlers
string output{module::get_output()};
auto click_left = m_conf.get<string>(name(), "click-left", "");
auto click_middle = m_conf.get<string>(name(), "click-middle", "");
auto click_right = m_conf.get<string>(name(), "click-right", "");
@ -47,7 +52,7 @@ namespace modules {
m_builder->cmd(mousebtn::SCROLL_DOWN, scroll_down);
}
m_builder->append(module::get_output());
m_builder->append(output);
return m_builder->flush();
}

View File

@ -174,16 +174,16 @@ namespace modules {
}
string volume_module::get_output() {
// Get the module output early so that
// the format prefix/suffix also gets wrapper
// with the cmd handlers
string output{module::get_output()};
m_builder->cmd(mousebtn::LEFT, EVENT_TOGGLE_MUTE);
m_builder->cmd(mousebtn::SCROLL_UP, EVENT_VOLUME_UP, !m_muted && m_volume < 100);
m_builder->cmd(mousebtn::SCROLL_DOWN, EVENT_VOLUME_DOWN, !m_muted && m_volume > 0);
if (!m_muted && m_volume < 100) {
m_builder->cmd(mousebtn::SCROLL_UP, EVENT_VOLUME_UP);
}
if (!m_muted && m_volume > 0) {
m_builder->cmd(mousebtn::SCROLL_DOWN, EVENT_VOLUME_DOWN);
}
m_builder->append(module::get_output());
m_builder->append(output);
return m_builder->flush();
}

View File

@ -137,14 +137,15 @@ namespace modules {
* Generate the module output
*/
string xbacklight_module::get_output() {
if (m_scroll && m_percentage < 100) {
m_builder->cmd(mousebtn::SCROLL_UP, EVENT_SCROLLUP);
}
if (m_scroll && m_percentage > 0) {
m_builder->cmd(mousebtn::SCROLL_DOWN, EVENT_SCROLLDOWN);
}
// Get the module output early so that
// the format prefix/suffix also gets wrapper
// with the cmd handlers
string output{module::get_output()};
m_builder->append(static_module::get_output());
m_builder->cmd(mousebtn::SCROLL_UP, EVENT_SCROLLUP, m_scroll && m_percentage < 100);
m_builder->cmd(mousebtn::SCROLL_DOWN, EVENT_SCROLLDOWN, m_scroll && m_percentage > 0);
m_builder->append(output);
return m_builder->flush();
}